tntd 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.js +1 -0
- package/es/index.js.map +1 -1
- package/es/locale/en_US.js +3 -0
- package/es/locale/en_US.js.map +1 -1
- package/es/locale/zh_CN.js +3 -0
- package/es/locale/zh_CN.js.map +1 -1
- package/es/page/index.js +1 -1
- package/es/page/index.js.map +1 -1
- package/es/prev-locale.js +7 -1
- package/es/prev-locale.js.map +1 -1
- package/es/steps/index.js +2 -2
- package/es/steps/index.js.map +1 -1
- package/es/steps/steps.js +46 -0
- package/es/steps/steps.js.map +1 -0
- package/es/steps/style/nav.less +158 -64
- package/es/tntd-cascader/AntdCascader/component/DisabledContext.js +8 -0
- package/es/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js +3 -0
- package/es/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/component/SizeContext.js +3 -0
- package/es/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/component/context.js +14 -0
- package/es/tntd-cascader/AntdCascader/component/context.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +20 -0
- package/es/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/component/getIcons.js +52 -0
- package/es/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js +24 -0
- package/es/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/config/utils.js +24 -0
- package/es/tntd-cascader/AntdCascader/config/utils.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/config/warning.js +15 -0
- package/es/tntd-cascader/AntdCascader/config/warning.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/index.css +2327 -0
- package/es/tntd-cascader/AntdCascader/index.js +149 -0
- package/es/tntd-cascader/AntdCascader/index.js.map +1 -0
- package/es/tntd-cascader/AntdCascader/interface.js +5 -0
- package/es/tntd-cascader/AntdCascader/interface.js.map +1 -0
- package/es/tntd-cascader/img/no-data-s.png +0 -0
- package/es/tntd-cascader/index.js +2 -0
- package/es/tntd-cascader/index.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/Cascader.js +270 -0
- package/es/tntd-cascader/rc-cascader/Cascader.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js +14 -0
- package/es/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/OptionList/Column.js +126 -0
- package/es/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/OptionList/index.js +140 -0
- package/es/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/OptionList/useActive.js +24 -0
- package/es/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +145 -0
- package/es/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/context.js +4 -0
- package/es/tntd-cascader/rc-cascader/context.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +41 -0
- package/es/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/hooks/useEntities.js +30 -0
- package/es/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js +19 -0
- package/es/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js +15 -0
- package/es/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +26 -0
- package/es/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +46 -0
- package/es/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/index.js +3 -0
- package/es/tntd-cascader/rc-cascader/index.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/index.less +19 -0
- package/es/tntd-cascader/rc-cascader/utils/commonUtil.js +41 -0
- package/es/tntd-cascader/rc-cascader/utils/commonUtil.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/utils/treeUtil.js +37 -0
- package/es/tntd-cascader/rc-cascader/utils/treeUtil.js.map +1 -0
- package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +30 -0
- package/es/tntd-cascader/rc-cascader/utils/warningPropsUtil.js.map +1 -0
- package/es/tntd-layout/Avatar.js +25 -19
- package/es/tntd-layout/Avatar.js.map +1 -1
- package/es/tntd-layout/EnterpriseLayout/Avatar.js +10 -8
- package/es/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
- package/es/tntd-layout/EnterpriseLayout/Language.js +5 -4
- package/es/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
- package/es/tntd-layout/EnterpriseLayout/Theme.js +7 -6
- package/es/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
- package/es/tntd-layout/HeaderActions.js +5 -4
- package/es/tntd-layout/HeaderActions.js.map +1 -1
- package/es/tntd-layout/Layout.js +2 -2
- package/es/tntd-layout/Layout.js.map +1 -1
- package/es/tntd-layout/SideMenu.js.map +1 -1
- package/es/tntd-layout/index.js +2 -2
- package/es/tntd-layout/index.js.map +1 -1
- package/es/tntd-layout/storage.js +10 -2
- package/es/tntd-layout/storage.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/locale/default.d.ts +3 -0
- package/lib/locale/default.d.ts.map +1 -1
- package/lib/locale/en_US.d.ts +3 -0
- package/lib/locale/en_US.d.ts.map +1 -1
- package/lib/locale/en_US.js +3 -0
- package/lib/locale/en_US.js.map +1 -1
- package/lib/locale/zh_CN.d.ts +3 -0
- package/lib/locale/zh_CN.d.ts.map +1 -1
- package/lib/locale/zh_CN.js +3 -0
- package/lib/locale/zh_CN.js.map +1 -1
- package/lib/page/index.js +1 -1
- package/lib/page/index.js.map +1 -1
- package/lib/prev-locale.d.ts +6 -0
- package/lib/prev-locale.d.ts.map +1 -1
- package/lib/prev-locale.js +7 -1
- package/lib/prev-locale.js.map +1 -1
- package/lib/steps/index.d.ts +2 -2
- package/lib/steps/index.d.ts.map +1 -1
- package/lib/steps/index.js +3 -6
- package/lib/steps/index.js.map +1 -1
- package/lib/steps/steps.d.ts +12 -0
- package/lib/steps/steps.d.ts.map +1 -0
- package/lib/steps/steps.js +67 -0
- package/lib/steps/steps.js.map +1 -0
- package/lib/steps/style/nav.less +158 -64
- package/lib/tntd-cascader/AntdCascader/component/DisabledContext.d.ts +10 -0
- package/lib/tntd-cascader/AntdCascader/component/DisabledContext.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +35 -0
- package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.d.ts +4 -0
- package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +29 -0
- package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/SizeContext.d.ts +4 -0
- package/lib/tntd-cascader/AntdCascader/component/SizeContext.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +29 -0
- package/lib/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/context.d.ts +42 -0
- package/lib/tntd-cascader/AntdCascader/component/context.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/context.js +20 -0
- package/lib/tntd-cascader/AntdCascader/component/context.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts +5 -0
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +48 -0
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/getIcons.d.ts +25 -0
- package/lib/tntd-cascader/AntdCascader/component/getIcons.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/getIcons.js +78 -0
- package/lib/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.d.ts +9 -0
- package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +54 -0
- package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +6 -0
- package/lib/tntd-cascader/AntdCascader/config/utils.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/config/utils.js +34 -0
- package/lib/tntd-cascader/AntdCascader/config/utils.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/config/warning.d.ts +4 -0
- package/lib/tntd-cascader/AntdCascader/config/warning.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/config/warning.js +40 -0
- package/lib/tntd-cascader/AntdCascader/config/warning.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/index.css +2327 -0
- package/lib/tntd-cascader/AntdCascader/index.d.ts +44 -0
- package/lib/tntd-cascader/AntdCascader/index.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/index.js +177 -0
- package/lib/tntd-cascader/AntdCascader/index.js.map +1 -0
- package/lib/tntd-cascader/AntdCascader/interface.d.ts +25 -0
- package/lib/tntd-cascader/AntdCascader/interface.d.ts.map +1 -0
- package/lib/tntd-cascader/AntdCascader/interface.js +9 -0
- package/lib/tntd-cascader/AntdCascader/interface.js.map +1 -0
- package/lib/tntd-cascader/img/no-data-s.png +0 -0
- package/lib/tntd-cascader/index.d.ts +2 -0
- package/lib/tntd-cascader/index.d.ts.map +1 -0
- package/lib/tntd-cascader/index.js +9 -0
- package/lib/tntd-cascader/index.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/Cascader.d.ts +92 -0
- package/lib/tntd-cascader/rc-cascader/Cascader.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/Cascader.js +298 -0
- package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.d.ts +10 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +43 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts +26 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +156 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts +5 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/index.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/index.js +168 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useActive.d.ts +7 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useActive.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +52 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.d.ts +6 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +173 -0
- package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/context.d.ts +26 -0
- package/lib/tntd-cascader/rc-cascader/context.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/context.js +29 -0
- package/lib/tntd-cascader/rc-cascader/context.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.d.ts +11 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +66 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useEntities.d.ts +11 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useEntities.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +55 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.d.ts +4 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +44 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.d.ts +6 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +41 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.d.ts +3 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +55 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.d.ts +5 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +72 -0
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/index.d.ts +4 -0
- package/lib/tntd-cascader/rc-cascader/index.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/index.js +8 -0
- package/lib/tntd-cascader/rc-cascader/index.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/index.less +19 -0
- package/lib/tntd-cascader/rc-cascader/utils/commonUtil.d.ts +11 -0
- package/lib/tntd-cascader/rc-cascader/utils/commonUtil.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js +50 -0
- package/lib/tntd-cascader/rc-cascader/utils/commonUtil.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/utils/treeUtil.d.ts +10 -0
- package/lib/tntd-cascader/rc-cascader/utils/treeUtil.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js +42 -0
- package/lib/tntd-cascader/rc-cascader/utils/treeUtil.js.map +1 -0
- package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.d.ts +5 -0
- package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.d.ts.map +1 -0
- package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js +37 -0
- package/lib/tntd-cascader/rc-cascader/utils/warningPropsUtil.js.map +1 -0
- package/lib/tntd-layout/Avatar.d.ts.map +1 -1
- package/lib/tntd-layout/Avatar.js +25 -19
- package/lib/tntd-layout/Avatar.js.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Avatar.d.ts.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Avatar.js +10 -8
- package/lib/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Language.js +4 -3
- package/lib/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Theme.js +6 -5
- package/lib/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
- package/lib/tntd-layout/HeaderActions.js +5 -4
- package/lib/tntd-layout/HeaderActions.js.map +1 -1
- package/lib/tntd-layout/Layout.js +2 -2
- package/lib/tntd-layout/Layout.js.map +1 -1
- package/lib/tntd-layout/SideMenu.js.map +1 -1
- package/lib/tntd-layout/index.d.ts.map +1 -1
- package/lib/tntd-layout/index.js +2 -2
- package/lib/tntd-layout/index.js.map +1 -1
- package/lib/tntd-layout/storage.d.ts +3 -2
- package/lib/tntd-layout/storage.d.ts.map +1 -1
- package/lib/tntd-layout/storage.js +15 -3
- package/lib/tntd-layout/storage.js.map +1 -1
- package/package.json +11 -2
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { toPathOptions } from '../utils/treeUtil';
|
|
3
|
+
export default (options, fieldNames) => {
|
|
4
|
+
return React.useCallback((rawValues) => {
|
|
5
|
+
const missingValues = [];
|
|
6
|
+
const existsValues = [];
|
|
7
|
+
rawValues.forEach((valueCell) => {
|
|
8
|
+
const pathOptions = toPathOptions(valueCell, options, fieldNames);
|
|
9
|
+
if (pathOptions.every((opt) => opt.option)) {
|
|
10
|
+
existsValues.push(valueCell);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
missingValues.push(valueCell);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
return [existsValues, missingValues];
|
|
17
|
+
}, [options, fieldNames]);
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=useMissingValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMissingValues.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/hooks/useMissingValues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,eAAe,CAAC,OAA4B,EAAE,UAA8B,EAAE,EAAE;IAC9E,OAAO,KAAK,CAAC,WAAW,CACtB,CAAC,SAA4B,EAA0C,EAAE;QACvE,MAAM,aAAa,GAAsB,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAsB,EAAE,CAAC;QAE3C,SAAS,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;YAC9B,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAClE,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAC1C,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC9B;iBAAM;gBACL,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAC/B;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC,EACD,CAAC,OAAO,EAAE,UAAU,CAAC,CACtB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport type { SingleValueType, DefaultOptionType, InternalFieldNames } from '../Cascader';\nimport { toPathOptions } from '../utils/treeUtil';\n\nexport default (options: DefaultOptionType[], fieldNames: InternalFieldNames) => {\n return React.useCallback(\n (rawValues: SingleValueType[]): [SingleValueType[], SingleValueType[]] => {\n const missingValues: SingleValueType[] = [];\n const existsValues: SingleValueType[] = [];\n\n rawValues.forEach((valueCell) => {\n const pathOptions = toPathOptions(valueCell, options, fieldNames);\n if (pathOptions.every((opt) => opt.option)) {\n existsValues.push(valueCell);\n } else {\n missingValues.push(valueCell);\n }\n });\n\n return [existsValues, missingValues];\n },\n [options, fieldNames],\n );\n};\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Same as `React.useCallback` but always return a memoized function
|
|
5
|
+
* but redirect to real function.
|
|
6
|
+
*/
|
|
7
|
+
export default function useRefFunc(callback) {
|
|
8
|
+
const funcRef = React.useRef();
|
|
9
|
+
funcRef.current = callback;
|
|
10
|
+
const cacheFn = React.useCallback((...args) => {
|
|
11
|
+
return funcRef.current(...args);
|
|
12
|
+
}, []);
|
|
13
|
+
return cacheFn;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=useRefFunc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRefFunc.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/hooks/useRefFunc.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAoC,QAAW;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAK,CAAC;IAClC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE3B,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,IAAW,EAAE,EAAE;QACnD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,OAAc,CAAC;AACxB,CAAC","sourcesContent":["// @ts-nocheck\nimport * as React from 'react';\n\n/**\n * Same as `React.useCallback` but always return a memoized function\n * but redirect to real function.\n */\nexport default function useRefFunc<T extends (...args: any[]) => any>(callback: T): T {\n const funcRef = React.useRef<T>();\n funcRef.current = callback;\n\n const cacheFn = React.useCallback((...args: any[]) => {\n return funcRef.current(...args);\n }, []);\n\n return cacheFn as any;\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import warning from 'rc-util/lib/warning';
|
|
4
|
+
// Convert `showSearch` to unique config
|
|
5
|
+
export default function useSearchConfig(showSearch) {
|
|
6
|
+
return React.useMemo(() => {
|
|
7
|
+
if (!showSearch) {
|
|
8
|
+
return [false, {}];
|
|
9
|
+
}
|
|
10
|
+
let searchConfig = {
|
|
11
|
+
matchInputWidth: true,
|
|
12
|
+
limit: 50,
|
|
13
|
+
};
|
|
14
|
+
if (showSearch && typeof showSearch === 'object') {
|
|
15
|
+
searchConfig = Object.assign(Object.assign({}, searchConfig), showSearch);
|
|
16
|
+
}
|
|
17
|
+
if (searchConfig.limit <= 0) {
|
|
18
|
+
delete searchConfig.limit;
|
|
19
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
20
|
+
warning(false, "'limit' of showSearch should be positive number or false.");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return [true, searchConfig];
|
|
24
|
+
}, [showSearch]);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=useSearchConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearchConfig.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/hooks/useSearchConfig.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAG1C,wCAAwC;AACxC,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,UAAwC;IAC9E,OAAO,KAAK,CAAC,OAAO,CAA4B,GAAG,EAAE;QACnD,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACpB;QAED,IAAI,YAAY,GAAmB;YACjC,eAAe,EAAE,IAAI;YACrB,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAChD,YAAY,mCACP,YAAY,GACZ,UAAU,CACd,CAAC;SACH;QAED,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,EAAE;YAC3B,OAAO,YAAY,CAAC,KAAK,CAAC;YAE1B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;gBACzC,OAAO,CAAC,KAAK,EAAE,2DAA2D,CAAC,CAAC;aAC7E;SACF;QAED,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;AACnB,CAAC","sourcesContent":["// @ts-nocheck\nimport * as React from 'react';\nimport warning from 'rc-util/lib/warning';\nimport type { CascaderProps, ShowSearchType } from '../Cascader';\n\n// Convert `showSearch` to unique config\nexport default function useSearchConfig(showSearch?: CascaderProps['showSearch']) {\n return React.useMemo<[boolean, ShowSearchType]>(() => {\n if (!showSearch) {\n return [false, {}];\n }\n\n let searchConfig: ShowSearchType = {\n matchInputWidth: true,\n limit: 50,\n };\n\n if (showSearch && typeof showSearch === 'object') {\n searchConfig = {\n ...searchConfig,\n ...showSearch,\n };\n }\n\n if (searchConfig.limit <= 0) {\n delete searchConfig.limit;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"'limit' of showSearch should be positive number or false.\");\n }\n }\n\n return [true, searchConfig];\n }, [showSearch]);\n}\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export const SEARCH_MARK = '__rc_cascader_search_mark__';
|
|
3
|
+
const defaultFilter = (search, options, { label }) => options.some((opt) => String(opt[label]).toLowerCase().includes(search.toLowerCase()));
|
|
4
|
+
const defaultRender = (inputValue, path, prefixCls, fieldNames) => path.map((opt) => opt[fieldNames.label]).join(' / ');
|
|
5
|
+
export default (search, options, fieldNames, prefixCls, config, changeOnSelect) => {
|
|
6
|
+
const { filter = defaultFilter, render = defaultRender, limit = 50, sort } = config;
|
|
7
|
+
return React.useMemo(() => {
|
|
8
|
+
const filteredOptions = [];
|
|
9
|
+
if (!search) {
|
|
10
|
+
return [];
|
|
11
|
+
}
|
|
12
|
+
function dig(list, pathOptions) {
|
|
13
|
+
list.forEach((option) => {
|
|
14
|
+
// Perf saving when `sort` is disabled and `limit` is provided
|
|
15
|
+
if (!sort && limit > 0 && filteredOptions.length >= limit) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const connectedPathOptions = [...pathOptions, option];
|
|
19
|
+
const children = option[fieldNames.children];
|
|
20
|
+
// If current option is filterable
|
|
21
|
+
if (
|
|
22
|
+
// If is leaf option
|
|
23
|
+
!children ||
|
|
24
|
+
children.length === 0 ||
|
|
25
|
+
// If is changeOnSelect
|
|
26
|
+
changeOnSelect) {
|
|
27
|
+
if (filter(search, connectedPathOptions, { label: fieldNames.label })) {
|
|
28
|
+
filteredOptions.push(Object.assign(Object.assign({}, option), { [fieldNames.label]: render(search, connectedPathOptions, prefixCls, fieldNames), [SEARCH_MARK]: connectedPathOptions }));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (children) {
|
|
32
|
+
dig(option[fieldNames.children], connectedPathOptions);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
dig(options, []);
|
|
37
|
+
// Do sort
|
|
38
|
+
if (sort) {
|
|
39
|
+
filteredOptions.sort((a, b) => {
|
|
40
|
+
return sort(a[SEARCH_MARK], b[SEARCH_MARK], search, fieldNames);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
return limit > 0 ? filteredOptions.slice(0, limit) : filteredOptions;
|
|
44
|
+
}, [search, options, fieldNames, prefixCls, render, changeOnSelect, filter, sort, limit]);
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=useSearchOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSearchOptions.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/hooks/useSearchOptions.ts"],"names":[],"mappings":"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","sourcesContent":["// @ts-nocheck\nimport type { DefaultOptionType, ShowSearchType, InternalFieldNames } from '../Cascader';\nimport * as React from 'react';\n\nexport const SEARCH_MARK = '__rc_cascader_search_mark__';\n\nconst defaultFilter: ShowSearchType['filter'] = (search, options, { label }) =>\n options.some((opt) => String(opt[label]).toLowerCase().includes(search.toLowerCase()));\n\nconst defaultRender: ShowSearchType['render'] = (inputValue, path, prefixCls, fieldNames) =>\n path.map((opt) => opt[fieldNames.label]).join(' / ');\n\nexport default (\n search: string,\n options: DefaultOptionType[],\n fieldNames: InternalFieldNames,\n prefixCls: string,\n config: ShowSearchType,\n changeOnSelect: boolean,\n) => {\n const { filter = defaultFilter, render = defaultRender, limit = 50, sort } = config;\n\n return React.useMemo(() => {\n const filteredOptions: DefaultOptionType[] = [];\n if (!search) {\n return [];\n }\n\n function dig(list: DefaultOptionType[], pathOptions: DefaultOptionType[]) {\n list.forEach((option) => {\n // Perf saving when `sort` is disabled and `limit` is provided\n if (!sort && limit > 0 && filteredOptions.length >= limit) {\n return;\n }\n\n const connectedPathOptions = [...pathOptions, option];\n const children = option[fieldNames.children];\n\n // If current option is filterable\n if (\n // If is leaf option\n !children ||\n children.length === 0 ||\n // If is changeOnSelect\n changeOnSelect\n ) {\n if (filter(search, connectedPathOptions, { label: fieldNames.label })) {\n filteredOptions.push({\n ...option,\n [fieldNames.label as 'label']: render(\n search,\n connectedPathOptions,\n prefixCls,\n fieldNames,\n ),\n [SEARCH_MARK]: connectedPathOptions,\n });\n }\n }\n\n if (children) {\n dig(option[fieldNames.children] as DefaultOptionType[], connectedPathOptions);\n }\n });\n }\n\n dig(options, []);\n\n // Do sort\n if (sort) {\n filteredOptions.sort((a, b) => {\n return sort(a[SEARCH_MARK], b[SEARCH_MARK], search, fieldNames);\n });\n }\n\n return limit > 0 ? filteredOptions.slice(0, limit as number) : filteredOptions;\n }, [search, options, fieldNames, prefixCls, render, changeOnSelect, filter, sort, limit]);\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tntd-cascader/rc-cascader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAWlC,eAAe,QAAQ,CAAC","sourcesContent":["import Cascader from './Cascader';\n\nexport type {\n CascaderProps,\n FieldNames,\n ShowSearchType,\n DefaultOptionType,\n BaseOptionType,\n SingleCascaderProps,\n MultipleCascaderProps,\n} from './Cascader';\nexport default Cascader;\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.tntd-cascader-menu {
|
|
2
|
+
.rc-virtual-list {
|
|
3
|
+
width: 120px;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.rc-virtual-list-full {
|
|
7
|
+
width: auto;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.tntd-cascader-menu-item {
|
|
11
|
+
display: flex;
|
|
12
|
+
.tntd-cascader-menu-item-content {
|
|
13
|
+
flex: 1;
|
|
14
|
+
overflow: hidden;
|
|
15
|
+
white-space: nowrap;
|
|
16
|
+
text-overflow: ellipsis;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export const VALUE_SPLIT = '__RC_CASCADER_SPLIT__';
|
|
2
|
+
export const SHOW_PARENT = 'SHOW_PARENT';
|
|
3
|
+
export const SHOW_CHILD = 'SHOW_CHILD';
|
|
4
|
+
export function toPathKey(value) {
|
|
5
|
+
return value.join(VALUE_SPLIT);
|
|
6
|
+
}
|
|
7
|
+
export function toPathKeys(value) {
|
|
8
|
+
return value.map(toPathKey);
|
|
9
|
+
}
|
|
10
|
+
export function toPathValueStr(pathKey) {
|
|
11
|
+
return pathKey.split(VALUE_SPLIT);
|
|
12
|
+
}
|
|
13
|
+
export function fillFieldNames(fieldNames) {
|
|
14
|
+
const { label, value, children } = fieldNames || {};
|
|
15
|
+
const val = value || 'value';
|
|
16
|
+
return {
|
|
17
|
+
label: label || 'label',
|
|
18
|
+
value: val,
|
|
19
|
+
key: val,
|
|
20
|
+
children: children || 'children',
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function isLeaf(option, fieldNames) {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
// @ts-ignore
|
|
26
|
+
return (_a = option.isLeaf) !== null && _a !== void 0 ? _a : !((_b = option[fieldNames.children]) === null || _b === void 0 ? void 0 : _b.length);
|
|
27
|
+
}
|
|
28
|
+
export function scrollIntoParentView(element) {
|
|
29
|
+
const parent = element.parentElement;
|
|
30
|
+
if (!parent) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.
|
|
34
|
+
if (elementToParent - parent.scrollTop < 0) {
|
|
35
|
+
parent.scrollTo({ top: elementToParent });
|
|
36
|
+
}
|
|
37
|
+
else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {
|
|
38
|
+
parent.scrollTo({ top: elementToParent + element.offsetHeight - parent.offsetHeight });
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=commonUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commonUtil.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/utils/commonUtil.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,WAAW,GAAG,uBAAuB,CAAC;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,UAAU,GAAG,YAAY,CAAC;AAEvC,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAwB;IACjD,OAAO,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,UAAuB;IACpD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,IAAI,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,KAAK,IAAI,OAAO,CAAC;IAC7B,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,OAAO;QACvB,KAAK,EAAE,GAAG;QACV,GAAG,EAAE,GAAG;QACR,QAAQ,EAAE,QAAQ,IAAI,UAAU;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,MAAyB,EAAE,UAAsB;;IACtE,aAAa;IACb,OAAO,MAAA,MAAM,CAAC,MAAM,mCAAI,CAAC,CAAA,MAAA,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,0CAAE,MAAM,CAAA,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IACrC,IAAI,CAAC,MAAM,EAAE;QACX,OAAO;KACR;IAED,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,kCAAkC;IAChG,IAAI,eAAe,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE;QAC1C,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC,CAAC;KAC3C;SAAM,IAAI,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE;QAC1F,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;KACxF;AACH,CAAC","sourcesContent":["import type {\n DefaultOptionType,\n FieldNames,\n InternalFieldNames,\n SingleValueType,\n} from '../Cascader';\n\nexport const VALUE_SPLIT = '__RC_CASCADER_SPLIT__';\nexport const SHOW_PARENT = 'SHOW_PARENT';\nexport const SHOW_CHILD = 'SHOW_CHILD';\n\nexport function toPathKey(value: SingleValueType) {\n return value.join(VALUE_SPLIT);\n}\n\nexport function toPathKeys(value: SingleValueType[]) {\n return value.map(toPathKey);\n}\n\nexport function toPathValueStr(pathKey: string) {\n return pathKey.split(VALUE_SPLIT);\n}\n\nexport function fillFieldNames(fieldNames?: FieldNames): InternalFieldNames {\n const { label, value, children } = fieldNames || {};\n const val = value || 'value';\n return {\n label: label || 'label',\n value: val,\n key: val,\n children: children || 'children',\n };\n}\n\nexport function isLeaf(option: DefaultOptionType, fieldNames: FieldNames) {\n // @ts-ignore\n return option.isLeaf ?? !option[fieldNames.children]?.length;\n}\n\nexport function scrollIntoParentView(element: HTMLElement) {\n const parent = element.parentElement;\n if (!parent) {\n return;\n }\n\n const elementToParent = element.offsetTop - parent.offsetTop; // offsetParent may not be parent.\n if (elementToParent - parent.scrollTop < 0) {\n parent.scrollTo({ top: elementToParent });\n } else if (elementToParent + element.offsetHeight - parent.scrollTop > parent.offsetHeight) {\n parent.scrollTo({ top: elementToParent + element.offsetHeight - parent.offsetHeight });\n }\n}\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { SHOW_CHILD } from './commonUtil';
|
|
2
|
+
export function formatStrategyValues(pathKeys, getKeyPathEntities, showCheckedStrategy) {
|
|
3
|
+
const valueSet = new Set(pathKeys);
|
|
4
|
+
const keyPathEntities = getKeyPathEntities();
|
|
5
|
+
return pathKeys.filter((key) => {
|
|
6
|
+
const entity = keyPathEntities[key];
|
|
7
|
+
const parent = entity ? entity.parent : null;
|
|
8
|
+
const children = entity ? entity.children : null;
|
|
9
|
+
return showCheckedStrategy === SHOW_CHILD
|
|
10
|
+
? !(children && children.some((child) => child.key && valueSet.has(child.key)))
|
|
11
|
+
: !(parent && !parent.node.disabled && valueSet.has(parent.key));
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export function toPathOptions(valueCells, options, fieldNames,
|
|
15
|
+
// Used for loadingKeys which saved loaded keys as string
|
|
16
|
+
stringMode = false) {
|
|
17
|
+
var _a;
|
|
18
|
+
let currentList = options;
|
|
19
|
+
const valueOptions = [];
|
|
20
|
+
for (let i = 0; i < valueCells.length; i += 1) {
|
|
21
|
+
const valueCell = valueCells[i];
|
|
22
|
+
const foundIndex = currentList === null || currentList === void 0 ? void 0 : currentList.findIndex((option) => {
|
|
23
|
+
const val = option[fieldNames.value];
|
|
24
|
+
return stringMode ? String(val) === String(valueCell) : val === valueCell;
|
|
25
|
+
});
|
|
26
|
+
const foundOption = foundIndex !== -1 ? currentList === null || currentList === void 0 ? void 0 : currentList[foundIndex] : null;
|
|
27
|
+
valueOptions.push({
|
|
28
|
+
value: (_a = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.value]) !== null && _a !== void 0 ? _a : valueCell,
|
|
29
|
+
index: foundIndex,
|
|
30
|
+
// @ts-ignore
|
|
31
|
+
option: foundOption,
|
|
32
|
+
});
|
|
33
|
+
currentList = foundOption === null || foundOption === void 0 ? void 0 : foundOption[fieldNames.children];
|
|
34
|
+
}
|
|
35
|
+
return valueOptions;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=treeUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"treeUtil.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/utils/treeUtil.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CAClC,QAAqB,EACrB,kBAA+B,EAC/B,mBAAwC;IAExC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;IAE7C,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjD,OAAO,mBAAmB,KAAK,UAAU;YACvC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAA2B,EAC3B,OAA4B,EAC5B,UAA8B;AAC9B,yDAAyD;AACzD,UAAU,GAAG,KAAK;;IAElB,IAAI,WAAW,GAAG,OAAO,CAAC;IAC1B,MAAM,YAAY,GAIZ,EAAE,CAAC;IAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,YAAY,CAAC,IAAI,CAAC;YAChB,KAAK,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,UAAU,CAAC,KAAK,CAAC,mCAAI,SAAS;YACnD,KAAK,EAAE,UAAU;YACjB,aAAa;YACb,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QAEH,WAAW,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;KAClD;IAED,OAAO,YAAY,CAAC;AACtB,CAAC","sourcesContent":["import type {\n SingleValueType,\n DefaultOptionType,\n InternalFieldNames,\n ShowCheckedStrategy,\n} from '../Cascader';\nimport type { GetEntities } from '../hooks/useEntities';\nimport { SHOW_CHILD } from './commonUtil';\n\nexport function formatStrategyValues(\n pathKeys: React.Key[],\n getKeyPathEntities: GetEntities,\n showCheckedStrategy: ShowCheckedStrategy,\n) {\n const valueSet = new Set(pathKeys);\n const keyPathEntities = getKeyPathEntities();\n\n return pathKeys.filter((key) => {\n const entity = keyPathEntities[key];\n const parent = entity ? entity.parent : null;\n const children = entity ? entity.children : null;\n\n return showCheckedStrategy === SHOW_CHILD\n ? !(children && children.some((child) => child.key && valueSet.has(child.key)))\n : !(parent && !parent.node.disabled && valueSet.has(parent.key));\n });\n}\n\nexport function toPathOptions(\n valueCells: SingleValueType,\n options: DefaultOptionType[],\n fieldNames: InternalFieldNames,\n // Used for loadingKeys which saved loaded keys as string\n stringMode = false,\n) {\n let currentList = options;\n const valueOptions: {\n value: SingleValueType[number];\n index: number;\n option: DefaultOptionType;\n }[] = [];\n\n for (let i = 0; i < valueCells.length; i += 1) {\n const valueCell = valueCells[i];\n const foundIndex = currentList?.findIndex((option) => {\n const val = option[fieldNames.value];\n return stringMode ? String(val) === String(valueCell) : val === valueCell;\n });\n const foundOption = foundIndex !== -1 ? currentList?.[foundIndex] : null;\n\n valueOptions.push({\n value: foundOption?.[fieldNames.value] ?? valueCell,\n index: foundIndex,\n // @ts-ignore\n option: foundOption,\n });\n\n currentList = foundOption?.[fieldNames.children];\n }\n\n return valueOptions;\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import warning from 'rc-util/lib/warning';
|
|
3
|
+
function warningProps(props) {
|
|
4
|
+
const { onPopupVisibleChange, popupVisible, popupClassName, popupPlacement } = props;
|
|
5
|
+
warning(!onPopupVisibleChange, '`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.');
|
|
6
|
+
warning(popupVisible === undefined, '`popupVisible` is deprecated. Please use `open` instead.');
|
|
7
|
+
warning(popupClassName === undefined, '`popupClassName` is deprecated. Please use `dropdownClassName` instead.');
|
|
8
|
+
warning(popupPlacement === undefined, '`popupPlacement` is deprecated. Please use `placement` instead.');
|
|
9
|
+
}
|
|
10
|
+
// value in Cascader options should not be null
|
|
11
|
+
export function warningNullOptions(options, fieldNames) {
|
|
12
|
+
if (options) {
|
|
13
|
+
const recursiveOptions = (optionsList) => {
|
|
14
|
+
for (let i = 0; i < optionsList.length; i++) {
|
|
15
|
+
const option = optionsList[i];
|
|
16
|
+
if (option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.value] === null) {
|
|
17
|
+
warning(false, '`value` in Cascader options should not be `null`.');
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children]) &&
|
|
21
|
+
recursiveOptions(option[fieldNames === null || fieldNames === void 0 ? void 0 : fieldNames.children])) {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
recursiveOptions(options);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export default warningProps;
|
|
30
|
+
//# sourceMappingURL=warningPropsUtil.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"warningPropsUtil.js","sourceRoot":"","sources":["../../../../src/tntd-cascader/rc-cascader/utils/warningPropsUtil.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAG1C,SAAS,YAAY,CAAC,KAA4B;IAChD,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IAErF,OAAO,CACL,CAAC,oBAAoB,EACrB,qFAAqF,CACtF,CAAC;IACF,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,0DAA0D,CAAC,CAAC;IAChG,OAAO,CACL,cAAc,KAAK,SAAS,EAC5B,yEAAyE,CAC1E,CAAC;IACF,OAAO,CACL,cAAc,KAAK,SAAS,EAC5B,iEAAiE,CAClE,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,kBAAkB,CAAC,OAA4B,EAAE,UAAsB;IACrF,IAAI,OAAO,EAAE;QACX,MAAM,gBAAgB,GAAG,CAAC,WAAgC,EAAE,EAAE;YAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAE9B,IAAI,MAAM,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,KAAK,IAAI,EAAE;oBACtC,OAAO,CAAC,KAAK,EAAE,mDAAmD,CAAC,CAAC;oBACpE,OAAO,IAAI,CAAC;iBACb;gBAED,IACE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,CAAC;oBAC3C,gBAAgB,CAAC,MAAM,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,CAAC,EAC9C;oBACA,OAAO,IAAI,CAAC;iBACb;aACF;QACH,CAAC,CAAC;QAEF,gBAAgB,CAAC,OAAO,CAAC,CAAC;KAC3B;AACH,CAAC;AAED,eAAe,YAAY,CAAC","sourcesContent":["// @ts-nocheck\nimport warning from 'rc-util/lib/warning';\nimport type { DefaultOptionType, FieldNames, InternalCascaderProps } from '../Cascader';\n\nfunction warningProps(props: InternalCascaderProps) {\n const { onPopupVisibleChange, popupVisible, popupClassName, popupPlacement } = props;\n\n warning(\n !onPopupVisibleChange,\n '`onPopupVisibleChange` is deprecated. Please use `onDropdownVisibleChange` instead.',\n );\n warning(popupVisible === undefined, '`popupVisible` is deprecated. Please use `open` instead.');\n warning(\n popupClassName === undefined,\n '`popupClassName` is deprecated. Please use `dropdownClassName` instead.',\n );\n warning(\n popupPlacement === undefined,\n '`popupPlacement` is deprecated. Please use `placement` instead.',\n );\n}\n\n// value in Cascader options should not be null\nexport function warningNullOptions(options: DefaultOptionType[], fieldNames: FieldNames) {\n if (options) {\n const recursiveOptions = (optionsList: DefaultOptionType[]) => {\n for (let i = 0; i < optionsList.length; i++) {\n const option = optionsList[i];\n\n if (option[fieldNames?.value] === null) {\n warning(false, '`value` in Cascader options should not be `null`.');\n return true;\n }\n\n if (\n Array.isArray(option[fieldNames?.children]) &&\n recursiveOptions(option[fieldNames?.children])\n ) {\n return true;\n }\n }\n };\n\n recursiveOptions(options);\n }\n}\n\nexport default warningProps;\n"]}
|
package/es/tntd-layout/Avatar.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import deleteAllCookiesFactory from 'delete-all-cookies';
|
|
2
1
|
import React, { useContext } from 'react';
|
|
3
2
|
import styled, { createGlobalStyle } from 'styled-components';
|
|
4
3
|
import { get } from 'lodash';
|
|
5
|
-
import
|
|
4
|
+
import '../button';
|
|
6
5
|
import Popover from '../popover';
|
|
6
|
+
import Row from '../row';
|
|
7
|
+
import Divider from '../divider';
|
|
7
8
|
import ActionsContext from './ActionsContext';
|
|
8
9
|
import images from './images';
|
|
10
|
+
import { getLanguageStore, clearLoginCookie } from './storage';
|
|
9
11
|
const Avatar = styled.li `
|
|
10
12
|
margin-right: 0;
|
|
11
13
|
font-size: 0;
|
|
@@ -59,14 +61,17 @@ const UserInfoWrapper = styled.div `
|
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
63
|
.user-info-footer {
|
|
62
|
-
border-top: 1px solid
|
|
63
|
-
background-color: #
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
border-top: ${(props) => `1px solid ${props.theme.dividerColor}`};
|
|
65
|
+
background-color: #fff;
|
|
66
|
+
height: 36px;
|
|
67
|
+
line-height: 36px;
|
|
68
|
+
padding: 0 15px;
|
|
69
|
+
font-size: 12px;
|
|
70
|
+
color: ${(props) => `${props.theme.primaryColor}`};
|
|
71
|
+
a {
|
|
72
|
+
flex: 1;
|
|
73
|
+
text-align: center;
|
|
74
|
+
color: ${(props) => `${props.theme.primaryColor}`};
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
`;
|
|
@@ -75,22 +80,23 @@ const UserInfoContent = (props) => {
|
|
|
75
80
|
const { getText } = useContext(ActionsContext);
|
|
76
81
|
return (React.createElement(UserInfoWrapper, { className: "user-info-setting-wrap" },
|
|
77
82
|
React.createElement("div", { className: "user-info-body" },
|
|
78
|
-
React.createElement("p", { className: "user-info-body-username" }, userInfo.userName || '
|
|
79
|
-
React.createElement("p", { className: "user-info-body-account" }, userInfo.account),
|
|
83
|
+
React.createElement("p", { className: "user-info-body-username" }, userInfo.userName || getText('nameNull')),
|
|
84
|
+
React.createElement("p", { className: "user-info-body-account" }, userInfo.account)),
|
|
85
|
+
React.createElement(Row, { className: "user-info-footer", type: "flex", justify: "space-between", align: "middle" },
|
|
80
86
|
React.createElement("a", { onClick: onPersonalSetting, href: "/bridge/userCenter?currentTab=1" }, getText('personalSettings')),
|
|
81
|
-
React.createElement(
|
|
82
|
-
|
|
83
|
-
React.createElement(
|
|
87
|
+
React.createElement(Divider, { type: "vertical" }),
|
|
88
|
+
React.createElement("a", { onClick: onChangePassword, href: "/bridge/userCenter?currentTab=2", style: getLanguageStore() === 'en' ? { flex: 2 } : {} }, getText('changePwd')),
|
|
89
|
+
React.createElement(Divider, { type: "vertical" }),
|
|
90
|
+
React.createElement("a", { className: "user-info-footer-signout", onClick: () => {
|
|
84
91
|
if (onLogout) {
|
|
85
92
|
onLogout();
|
|
86
|
-
|
|
93
|
+
clearLoginCookie();
|
|
87
94
|
}
|
|
88
95
|
else {
|
|
89
|
-
|
|
96
|
+
clearLoginCookie();
|
|
90
97
|
window.location.href = `/user/login?callbackUrl=${window.encodeURI(location.href)}`;
|
|
91
98
|
}
|
|
92
|
-
} },
|
|
93
|
-
React.createElement("a", null, getText('signOut'))))));
|
|
99
|
+
} }, getText('signOut')))));
|
|
94
100
|
};
|
|
95
101
|
export default (props) => {
|
|
96
102
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/tntd-layout/Avatar.js"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/tntd-layout/Avatar.js"],"names":[],"mappings":"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","sourcesContent":["import React, { useContext } from 'react'\nimport styled, { createGlobalStyle } from 'styled-components'\nimport { get } from 'lodash'\nimport Button from '../button'\nimport Popover from '../popover'\nimport Row from '../row'\nimport Divider from '../divider'\nimport ActionsContext from './ActionsContext'\nimport images from './images'\nimport { getLanguageStore, clearLoginCookie } from './storage'\n\nconst Avatar = styled.li`\n margin-right: 0;\n font-size: 0;\n img {\n width: 26px;\n height: 26px;\n border-radius: 50%;\n cursor: pointer;\n .large-size & {\n width: 32px;\n height: 32px;\n }\n }\n`\n\nconst GlobalStyle = createGlobalStyle`\n .tnt-layout-personal-popover {\n .ant-popover-inner-content {\n padding: 0;\n }\n }\n`\n\nconst UserInfoWrapper = styled.div`\n min-width: 235px;\n z-index: 1;\n background-color: #fff;\n border-radius: 4px;\n\n .isInIframe & {\n display: none;\n }\n\n .user-info-body {\n padding: 30px 20px 20px 24px;\n line-height: 16px;\n .user-info-body-username {\n margin-top: 0px;\n font-size: 16px;\n color: #333;\n font-weight: normal;\n margin-bottom: 10px;\n line-height: 16px;\n }\n .user-info-body-account {\n margin-top: 0px;\n color: #666;\n margin-bottom: 14px;\n line-height: 16px;\n }\n a {\n margin-right: 16px;\n }\n }\n .user-info-footer {\n border-top: ${(props) => `1px solid ${props.theme.dividerColor}`};\n background-color: #fff;\n height: 36px;\n line-height: 36px;\n padding: 0 15px;\n font-size: 12px;\n color: ${(props) => `${props.theme.primaryColor}`};\n a {\n flex: 1;\n text-align: center;\n color: ${(props) => `${props.theme.primaryColor}`};\n }\n }\n`\n\nconst UserInfoContent = (props) => {\n const {\n userInfo,\n onLogout,\n onChangePassword = () => true,\n onPersonalSetting = () => true,\n } = props\n const { getText } = useContext(ActionsContext)\n\n return (\n <UserInfoWrapper className=\"user-info-setting-wrap\">\n <div className=\"user-info-body\">\n <p className=\"user-info-body-username\">{userInfo.userName || getText('nameNull')}</p>\n <p className=\"user-info-body-account\">{userInfo.account}</p>\n </div>\n <Row className=\"user-info-footer\" type=\"flex\" justify=\"space-between\" align=\"middle\">\n <a onClick={onPersonalSetting} href=\"/bridge/userCenter?currentTab=1\">\n {getText('personalSettings')}\n </a>\n <Divider type=\"vertical\" />\n <a\n onClick={onChangePassword}\n href=\"/bridge/userCenter?currentTab=2\"\n style={getLanguageStore() === 'en' ? { flex: 2 } : {}}\n >\n {getText('changePwd')}\n </a>\n <Divider type=\"vertical\" />\n <a\n className=\"user-info-footer-signout\"\n onClick={() => {\n if (onLogout) {\n onLogout()\n clearLoginCookie()\n } else {\n clearLoginCookie()\n window.location.href = `/user/login?callbackUrl=${window.encodeURI(location.href)}`\n }\n }}\n >\n {getText('signOut')}\n </a>\n </Row>\n </UserInfoWrapper>\n )\n}\n\nexport default (props) => {\n const { userInfo = {} } = props\n const { avatar } = userInfo\n\n return (\n <Avatar>\n <Popover\n popupClassName=\"tnt-layout-personal-popover\"\n placement=\"bottomRight\"\n title={null}\n content={<UserInfoContent {...props} />}\n trigger=\"click\"\n >\n {avatar ? (\n <img\n src={\n avatar.indexOf('base64') > 0 ? avatar : get(images[avatar], 'default', images[avatar])\n }\n onError={(e) => {\n e.target.onerror = null\n e.target.src = images.empty?.default || images.empty\n }}\n />\n ) : (\n <img src={images.empty?.default || images.empty} />\n )}\n </Popover>\n <GlobalStyle />\n </Avatar>\n )\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import deleteAllCookiesFactory from 'delete-all-cookies';
|
|
2
1
|
import { get } from 'lodash';
|
|
3
|
-
import React from 'react';
|
|
2
|
+
import React, { useContext } from 'react';
|
|
4
3
|
import styled, { createGlobalStyle } from 'styled-components';
|
|
5
4
|
import images from '../images';
|
|
5
|
+
import ActionsContext from '../ActionsContext';
|
|
6
6
|
import Language from './Language';
|
|
7
7
|
import Theme from './Theme';
|
|
8
|
+
import { getLanguageStore, clearLoginCookie } from '../storage';
|
|
8
9
|
import Divider from '../../divider';
|
|
9
10
|
import Popover from '../../popover';
|
|
10
11
|
import Row from '../../row';
|
|
@@ -82,29 +83,30 @@ const UserInfoWrapper = styled.div `
|
|
|
82
83
|
`;
|
|
83
84
|
const UserInfoContent = (props) => {
|
|
84
85
|
const { userInfo, config = {}, onLogout, onChangePassword = () => true, onPersonalSetting = () => true, onLanguageChange, onThemeChange, } = props;
|
|
86
|
+
const { getText } = useContext(ActionsContext);
|
|
85
87
|
const { language = true } = config || {};
|
|
86
88
|
return (React.createElement(UserInfoWrapper, { className: "user-info-setting-wrap" },
|
|
87
89
|
React.createElement("ul", { className: "user-info-body" },
|
|
88
90
|
React.createElement("li", { className: "user-info-body-username" },
|
|
89
|
-
userInfo.userName || '
|
|
91
|
+
userInfo.userName || getText('nameNull'),
|
|
90
92
|
React.createElement("span", { className: "user-info-body-account" }, userInfo.account)),
|
|
91
93
|
language && React.createElement(Language, { language: userInfo.lang, onChange: onLanguageChange }),
|
|
92
94
|
React.createElement(Theme, { theme: userInfo.theme, onChange: onThemeChange })),
|
|
93
95
|
React.createElement(Row, { className: "user-info-footer", type: "flex", justify: "space-between", align: "middle" },
|
|
94
|
-
React.createElement("a", { onClick: onPersonalSetting, href: "/bridge/userCenter?currentTab=1" },
|
|
96
|
+
React.createElement("a", { onClick: onPersonalSetting, href: "/bridge/userCenter?currentTab=1" }, getText('personalSettings')),
|
|
95
97
|
React.createElement(Divider, { type: "vertical" }),
|
|
96
|
-
React.createElement("a", { onClick: onChangePassword, href: "/bridge/userCenter?currentTab=2" },
|
|
98
|
+
React.createElement("a", { onClick: onChangePassword, href: "/bridge/userCenter?currentTab=2", style: getLanguageStore() === 'en' ? { flex: 2 } : {} }, getText('changePwd')),
|
|
97
99
|
React.createElement(Divider, { type: "vertical" }),
|
|
98
100
|
React.createElement("a", { className: "user-info-footer-signout", onClick: () => {
|
|
99
101
|
if (onLogout) {
|
|
100
102
|
onLogout();
|
|
101
|
-
|
|
103
|
+
clearLoginCookie();
|
|
102
104
|
}
|
|
103
105
|
else {
|
|
104
|
-
|
|
106
|
+
clearLoginCookie();
|
|
105
107
|
window.location.href = `/user/login?callbackUrl=${window.encodeURI(location.href)}`;
|
|
106
108
|
}
|
|
107
|
-
} },
|
|
109
|
+
} }, getText('signOut')))));
|
|
108
110
|
};
|
|
109
111
|
export default (props) => {
|
|
110
112
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../../src/tntd-layout/EnterpriseLayout/Avatar.js"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../../src/tntd-layout/EnterpriseLayout/Avatar.js"],"names":[],"mappings":"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","sourcesContent":["import { get } from 'lodash'\nimport React, { useContext } from 'react'\nimport styled, { createGlobalStyle } from 'styled-components'\nimport images from '../images'\nimport ActionsContext from '../ActionsContext'\nimport Language from './Language'\nimport Theme from './Theme'\nimport { getLanguageStore, clearLoginCookie } from '../storage'\nimport Divider from '../../divider'\nimport Popover from '../../popover'\nimport Row from '../../row'\n\nconst Avatar = styled.li`\n margin-right: 0;\n font-size: 0;\n img {\n width: 26px;\n height: 26px;\n border-radius: 50%;\n cursor: pointer;\n .large-size & {\n width: 32px;\n height: 32px;\n }\n }\n`\n\nconst GlobalStyle = createGlobalStyle`\n .tnt-layout-personal-popover {\n .ant-popover-inner-content {\n padding: 0;\n }\n }\n`\n\nconst UserInfoWrapper = styled.div`\n width: 330px;\n z-index: 1;\n background-color: #fff;\n border-radius: 4px;\n box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.1);\n .isInIframe & {\n display: none;\n }\n\n .user-info-body {\n padding: 20px 15px;\n line-height: 16px;\n list-style: none;\n margin: 0;\n .user-info-body-username {\n margin-top: 0px;\n font-family: PingFangSC-Regular;\n font-weight: normal;\n font-size: 14px;\n color: ${(props) => `${props.theme.primaryTextColor}`};\n line-height: 14px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .user-info-body-account {\n margin-top: 0px;\n font-family: PingFangSC-Regular;\n font-size: 12px;\n color: #8b919e;\n margin-bottom: 14px;\n line-height: 14px;\n margin-left: 10px;\n }\n }\n .user-info-footer {\n border-top: ${(props) => `1px solid ${props.theme.dividerColor}`};\n background-color: #fff;\n height: 36px;\n line-height: 36px;\n padding: 0 15px;\n font-size: 12px;\n color: ${(props) => `${props.theme.primaryColor}`};\n a {\n flex: 1;\n text-align: center;\n color: ${(props) => `${props.theme.primaryColor}`};\n }\n }\n`\n\nconst UserInfoContent = (props) => {\n const {\n userInfo,\n config = {},\n onLogout,\n onChangePassword = () => true,\n onPersonalSetting = () => true,\n onLanguageChange,\n onThemeChange,\n } = props\n const { getText } = useContext(ActionsContext)\n const { language = true } = config || {}\n return (\n <UserInfoWrapper className=\"user-info-setting-wrap\">\n <ul className=\"user-info-body\">\n <li className=\"user-info-body-username\">\n {userInfo.userName || getText('nameNull')}\n <span className=\"user-info-body-account\">{userInfo.account}</span>\n </li>\n {language && <Language language={userInfo.lang} onChange={onLanguageChange} />}\n <Theme theme={userInfo.theme} onChange={onThemeChange} />\n </ul>\n <Row className=\"user-info-footer\" type=\"flex\" justify=\"space-between\" align=\"middle\">\n <a onClick={onPersonalSetting} href=\"/bridge/userCenter?currentTab=1\">\n {getText('personalSettings')}\n </a>\n <Divider type=\"vertical\" />\n <a\n onClick={onChangePassword}\n href=\"/bridge/userCenter?currentTab=2\"\n style={getLanguageStore() === 'en' ? { flex: 2 } : {}}\n >\n {getText('changePwd')}\n </a>\n <Divider type=\"vertical\" />\n <a\n className=\"user-info-footer-signout\"\n onClick={() => {\n if (onLogout) {\n onLogout()\n clearLoginCookie()\n } else {\n clearLoginCookie()\n window.location.href = `/user/login?callbackUrl=${window.encodeURI(location.href)}`\n }\n }}\n >\n {getText('signOut')}\n </a>\n </Row>\n </UserInfoWrapper>\n )\n}\n\nexport default (props) => {\n const { userInfo = {} } = props\n const { avatar } = userInfo\n\n return (\n <Avatar>\n <Popover\n popupClassName=\"tnt-layout-personal-popover\"\n placement=\"bottomRight\"\n title={null}\n content={<UserInfoContent {...props} />}\n trigger=\"click\"\n >\n {avatar ? (\n <img\n src={\n avatar.indexOf('base64') > 0 ? avatar : get(images[avatar], 'default', images[avatar])\n }\n onError={(e) => {\n e.target.onerror = null\n e.target.src = images.empty?.default || images.empty\n }}\n />\n ) : (\n <img src={images.empty?.default || images.empty} />\n )}\n </Popover>\n <GlobalStyle />\n </Avatar>\n )\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { useState, useMemo } from 'react';
|
|
2
2
|
import styled, { withTheme } from 'styled-components';
|
|
3
3
|
import { get } from 'lodash';
|
|
4
4
|
import Iconfont from '../Iconfont';
|
|
@@ -53,13 +53,14 @@ export default withTheme((props) => {
|
|
|
53
53
|
};
|
|
54
54
|
const [language = 'cn', setLanguage] = useState(getLanguage());
|
|
55
55
|
const switchLanguage = () => {
|
|
56
|
-
const lang = language
|
|
56
|
+
const lang = language !== 'en' ? 'en' : 'cn';
|
|
57
57
|
setLanguage(lang);
|
|
58
58
|
setLanguageStore(lang);
|
|
59
59
|
onChange && onChange(lang);
|
|
60
60
|
};
|
|
61
|
+
const otherLanguage = useMemo(() => language === 'cn' ? 'en' : 'cn', [language]);
|
|
61
62
|
return (React.createElement(Language, { onClick: switchLanguage },
|
|
62
|
-
React.createElement(Iconfont, { type: `flag-${
|
|
63
|
-
React.createElement("span", null, get(languagesMap[
|
|
63
|
+
React.createElement(Iconfont, { type: `flag-${otherLanguage}` }),
|
|
64
|
+
React.createElement("span", null, get(languagesMap[otherLanguage], 'name'))));
|
|
64
65
|
});
|
|
65
66
|
//# sourceMappingURL=Language.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../src/tntd-layout/EnterpriseLayout/Language.js"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Language.js","sourceRoot":"","sources":["../../../src/tntd-layout/EnterpriseLayout/Language.js"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useMemo } from 'react'\nimport styled, { withTheme } from 'styled-components'\nimport { get } from 'lodash'\nimport Iconfont from '../Iconfont'\nimport { setLanguageStore, getLanguageStore } from '../storage'\n\nconst languages = [\n { value: 'cn', name: '中文' },\n { value: 'en', name: 'EN ' },\n]\nconst languagesMap = languages.reduce((acc, cur) => {\n acc[cur.value] = cur\n return acc\n}, {})\n\nconst Language = styled.li`\n display: inline-block;\n padding: 0 10px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n background: #ffffff;\n border: 1px solid #e1e6ee;\n border-radius: 2px;\n font-family: PingFangSC-Regular;\n color: #17233d;\n font-size: ${({ theme: { size } }) => (size === 'large' ? '14px' : '12px')};\n cursor: pointer;\n margin-top: 8px;\n\n .tnt-icon {\n font-size: ${({ theme: { size } }) => (size === 'large' ? '24px' : '20px')};\n margin-right: 4px;\n }\n\n span {\n position: relative;\n font-size: ${({ theme: { size } }) => (size === 'large' ? '14px' : '12px')};\n top: ${({ theme: { size } }) => (size === 'large' ? '-3px' : '-2px')};\n font-family: auto;\n }\n\n .isInIframe & {\n display: none;\n }\n`\n\nexport default withTheme((props) => {\n const { onChange } = props\n const getLanguage = () => {\n let lang = getLanguageStore() || props.language\n\n if (!languagesMap[lang]) {\n lang = get(languages, '0.value')\n }\n\n return lang\n }\n const [language = 'cn', setLanguage] = useState(getLanguage())\n const switchLanguage = () => {\n const lang = language !== 'en' ? 'en' : 'cn'\n\n setLanguage(lang)\n setLanguageStore(lang)\n onChange && onChange(lang)\n }\n\nconst otherLanguage = useMemo(()=> language === 'cn' ? 'en' : 'cn',[language]);\n\n return (\n <Language onClick={switchLanguage}>\n <Iconfont type={`flag-${otherLanguage}`} />\n <span>{get(languagesMap[otherLanguage], 'name')}</span>\n </Language>\n )\n})\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useState } from 'react';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
|
-
import { getThemeStore, setThemeStore } from '../storage';
|
|
3
|
+
import { getThemeStore, setThemeStore, getLanguageStore } from '../storage';
|
|
4
4
|
import Row from '../../row';
|
|
5
|
+
import '../../tntd-icon';
|
|
5
6
|
const Theme = styled.li `
|
|
6
7
|
margin-top: 20px;
|
|
7
8
|
.user-info-body-theme-row {
|
|
@@ -53,9 +54,9 @@ const Theme = styled.li `
|
|
|
53
54
|
}
|
|
54
55
|
`;
|
|
55
56
|
const themes = [
|
|
56
|
-
{ value: 'themeS3', label: '科技蓝' },
|
|
57
|
-
{ value: 'themeS2', label: '暗夜黑' },
|
|
58
|
-
{ value: 'themeS1', label: '极致白' },
|
|
57
|
+
{ value: 'themeS3', label: '科技蓝', enLabel: 'Blue' },
|
|
58
|
+
{ value: 'themeS2', label: '暗夜黑', enLabel: 'Black' },
|
|
59
|
+
{ value: 'themeS1', label: '极致白', enLabel: 'White' },
|
|
59
60
|
];
|
|
60
61
|
export default (props) => {
|
|
61
62
|
const { onChange } = props;
|
|
@@ -70,8 +71,8 @@ export default (props) => {
|
|
|
70
71
|
onChange(theme);
|
|
71
72
|
};
|
|
72
73
|
return (React.createElement(Theme, null,
|
|
73
|
-
React.createElement(Row, { type: "flex", justify: "space-between", className: "user-info-body-theme-row" }, themes.map(({ value, label }) => (React.createElement("div", { className: value, onClick: changeTheme.bind(this, value) },
|
|
74
|
-
label,
|
|
74
|
+
React.createElement(Row, { type: "flex", justify: "space-between", className: "user-info-body-theme-row" }, themes.map(({ value, label, enLabel }) => (React.createElement("div", { className: value, onClick: changeTheme.bind(this, value) },
|
|
75
|
+
getLanguageStore() === 'en' ? enLabel : label,
|
|
75
76
|
theme === value && React.createElement("span", { className: "icon-checked-wrap" })))))));
|
|
76
77
|
};
|
|
77
78
|
//# sourceMappingURL=Theme.js.map
|