tntd 2.7.2 → 2.7.4
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/LICENSE +21 -0
- package/README.md +72 -0
- package/es/actions/index.js +12 -0
- package/es/actions/index.js.map +1 -0
- package/es/actions/index.less +70 -0
- package/es/affix/index.js +2 -1
- package/es/alert/index.js +2 -1
- package/es/anchor/index.js +2 -1
- package/es/array-input/icon.js +6 -24
- package/es/array-input/index.js +119 -203
- package/es/auth-context/index.js +2 -1
- package/es/auto-complete/index.js +2 -1
- package/es/avatar/index.js +2 -1
- package/es/back-top/index.js +2 -1
- package/es/badge/index.js +2 -1
- package/es/breadcrumb/index.js +2 -1
- package/es/button/index.js +2 -1
- package/es/calendar/index.js +2 -1
- package/es/card/index.js +2 -1
- package/es/carousel/index.js +2 -1
- package/es/cascader/index.js +2 -1
- package/es/check-card/group.js +149 -0
- package/es/check-card/group.js.map +1 -0
- package/es/check-card/index.js +120 -0
- package/es/check-card/index.js.map +1 -0
- package/es/check-card/index.less +179 -0
- package/es/checkbox/checkbox-group.js +2 -1
- package/es/checkbox/index.js +2 -1
- package/es/col/index.js +2 -1
- package/es/collapse/index.js +2 -1
- package/es/color-picker/ColorPicker.js +81 -127
- package/es/color-picker/ColorPicker.js.map +1 -1
- package/es/color-picker/index.js +5 -8
- package/es/color-picker/index.less +5 -1
- package/es/columns/index.js +30 -66
- package/es/columns/style/index.js +2 -1
- package/es/comment/index.js +2 -1
- package/es/config-provider/DisabledContext.js +5 -9
- package/es/config-provider/SizeContext.js +3 -7
- package/es/config-provider/config-provider.js +2 -1
- package/es/ellipsis/index.js +13 -3
- package/es/ellipsis/index.js.map +1 -1
- package/es/ellipsis/index.less +2 -2
- package/es/handle/index.js +20 -9
- package/es/handle/index.js.map +1 -1
- package/es/handle/index.less +1 -1
- package/es/index.js +7 -0
- package/es/index.js.map +1 -1
- package/es/index.less +5 -0
- package/es/locale/en_US.js +3 -1
- package/es/locale/en_US.js.map +1 -1
- package/es/locale/zh_CN.js +3 -1
- package/es/locale/zh_CN.js.map +1 -1
- package/es/mention/index.js +4 -0
- package/es/mention/index.js.map +1 -0
- package/es/page/Box.js +1 -1
- package/es/page/Box.js.map +1 -1
- package/es/page/index.js +2 -2
- package/es/page/index.js.map +1 -1
- package/es/page/index.less +5 -5
- package/es/prev-locale.js +1 -1
- package/es/prev-locale.js.map +1 -1
- package/es/query-form/Field/SelectInput.js +2 -2
- package/es/query-form/Field/SelectInput.js.map +1 -1
- package/es/query-form/Field/index.js +2 -1
- package/es/query-form/Field/index.js.map +1 -1
- package/es/query-list-scene/QueryForm.js +2 -2
- package/es/query-list-scene/QueryForm.js.map +1 -1
- package/es/segmented/index.js +50 -0
- package/es/segmented/index.js.map +1 -0
- package/es/segmented/index.less +138 -0
- package/es/switch/switch.js.map +1 -1
- package/es/table/constants.js +53 -0
- package/es/table/constants.js.map +1 -1
- package/es/table/context.js.map +1 -1
- package/es/table/hooks/use-column-setting.js.map +1 -1
- package/es/table/table.js +107 -6
- package/es/table/table.js.map +1 -1
- package/es/table/table.less +3 -1
- package/es/table/total-shower.js +6 -0
- package/es/table/total-shower.js.map +1 -0
- package/es/title/index.js +5 -5
- package/es/title/index.js.map +1 -1
- package/es/title/index.less +10 -10
- package/es/tntd-form/Form.js +13 -1
- package/es/tntd-form/Form.js.map +1 -1
- package/es/tntd-form/TntdForm/components/Item.js +42 -30
- package/es/tntd-form/TntdForm/components/ItemComp.js +167 -158
- package/es/tntd-form/TntdForm/components/List.js +89 -78
- package/es/tntd-form/TntdForm/index.js +38 -33
- package/es/tntd-form/TntdForm/interface.js +1 -2
- package/es/tntd-form/TntdForm/store.js +1 -2
- package/es/tntd-form/TntdForm/utils.js +158 -168
- package/es/tntd-form/tntd-form.stories.js +7 -5
- package/es/tntd-form/tntd-form.stories.js.map +1 -1
- package/es/tntd-layout/HeaderActions.js +1 -1
- package/es/tntd-layout/HeaderActions.js.map +1 -1
- package/es/tntd-modal/index.js +54 -21
- package/es/tntd-modal/index.js.map +1 -1
- package/es/tntd-modal/index.less +83 -63
- package/es/tree-select/index.js.map +1 -1
- package/es/utils/index.js +1 -0
- package/es/utils/index.js.map +1 -1
- package/es/utils/simple-template.js +11 -0
- package/es/utils/simple-template.js.map +1 -0
- package/es/water-mark/index.js +99 -0
- package/es/water-mark/index.js.map +1 -0
- package/lib/actions/index.d.ts +15 -0
- package/lib/actions/index.d.ts.map +1 -0
- package/lib/actions/index.js +17 -0
- package/lib/actions/index.js.map +1 -0
- package/lib/actions/index.less +70 -0
- package/lib/check-card/group.d.ts +130 -0
- package/lib/check-card/group.d.ts.map +1 -0
- package/lib/check-card/group.js +179 -0
- package/lib/check-card/group.js.map +1 -0
- package/lib/check-card/index.d.ts +136 -0
- package/lib/check-card/index.d.ts.map +1 -0
- package/lib/check-card/index.js +148 -0
- package/lib/check-card/index.js.map +1 -0
- package/lib/check-card/index.less +179 -0
- package/lib/color-picker/ColorPicker.js +1 -1
- package/lib/color-picker/ColorPicker.js.map +1 -1
- package/lib/color-picker/index.less +5 -1
- package/lib/ellipsis/index.d.ts.map +1 -1
- package/lib/ellipsis/index.js +13 -3
- package/lib/ellipsis/index.js.map +1 -1
- package/lib/ellipsis/index.less +2 -2
- package/lib/handle/index.d.ts.map +1 -1
- package/lib/handle/index.js +20 -9
- package/lib/handle/index.js.map +1 -1
- package/lib/handle/index.less +1 -1
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +11 -1
- package/lib/index.js.map +1 -1
- package/lib/index.less +5 -0
- package/lib/locale/default.d.ts +1 -0
- package/lib/locale/default.d.ts.map +1 -1
- package/lib/locale/en_US.d.ts +1 -0
- package/lib/locale/en_US.d.ts.map +1 -1
- package/lib/locale/en_US.js +3 -1
- package/lib/locale/en_US.js.map +1 -1
- package/lib/locale/zh_CN.d.ts +1 -0
- package/lib/locale/zh_CN.d.ts.map +1 -1
- package/lib/locale/zh_CN.js +3 -1
- package/lib/locale/zh_CN.js.map +1 -1
- package/lib/mention/index.js +25 -0
- package/lib/page/Box.js +1 -1
- package/lib/page/Box.js.map +1 -1
- package/lib/page/index.js +2 -2
- package/lib/page/index.js.map +1 -1
- package/lib/page/index.less +5 -5
- package/lib/prev-locale.js +1 -1
- package/lib/prev-locale.js.map +1 -1
- package/lib/query-form/Field/SelectInput.d.ts.map +1 -1
- package/lib/query-form/Field/SelectInput.js +2 -2
- package/lib/query-form/Field/SelectInput.js.map +1 -1
- package/lib/query-form/Field/index.d.ts.map +1 -1
- package/lib/query-form/Field/index.js +2 -1
- package/lib/query-form/Field/index.js.map +1 -1
- package/lib/query-list-scene/QueryForm.d.ts +1 -1
- package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
- package/lib/query-list-scene/QueryForm.js +2 -2
- package/lib/query-list-scene/QueryForm.js.map +1 -1
- package/lib/segmented/index.d.ts +23 -0
- package/lib/segmented/index.d.ts.map +1 -0
- package/lib/segmented/index.js +78 -0
- package/lib/segmented/index.js.map +1 -0
- package/lib/segmented/index.less +138 -0
- package/lib/switch/switch.d.ts +1 -1
- package/lib/switch/switch.d.ts.map +1 -1
- package/lib/switch/switch.js.map +1 -1
- package/lib/table/constants.d.ts +2 -0
- package/lib/table/constants.d.ts.map +1 -1
- package/lib/table/constants.js +54 -1
- package/lib/table/constants.js.map +1 -1
- package/lib/table/context.d.ts +1 -0
- package/lib/table/context.d.ts.map +1 -1
- package/lib/table/context.js.map +1 -1
- package/lib/table/hooks/use-column-setting.d.ts +4 -1
- package/lib/table/hooks/use-column-setting.d.ts.map +1 -1
- package/lib/table/hooks/use-column-setting.js.map +1 -1
- package/lib/table/table.d.ts +2 -1
- package/lib/table/table.d.ts.map +1 -1
- package/lib/table/table.js +107 -6
- package/lib/table/table.js.map +1 -1
- package/lib/table/table.less +3 -1
- package/lib/table/total-shower.d.ts +9 -0
- package/lib/table/total-shower.d.ts.map +1 -0
- package/lib/table/total-shower.js +13 -0
- package/lib/table/total-shower.js.map +1 -0
- package/lib/title/index.d.ts +11 -1
- package/lib/title/index.d.ts.map +1 -1
- package/lib/title/index.js +5 -5
- package/lib/title/index.js.map +1 -1
- package/lib/title/index.less +10 -10
- package/lib/tntd-form/Form.d.ts.map +1 -1
- package/lib/tntd-form/Form.js +12 -0
- package/lib/tntd-form/Form.js.map +1 -1
- package/lib/tntd-form/TntdForm/components/Item.js +55 -61
- package/lib/tntd-form/TntdForm/components/ItemComp.js +203 -190
- package/lib/tntd-form/TntdForm/components/List.js +118 -111
- package/lib/tntd-form/TntdForm/index.js +61 -67
- package/lib/tntd-form/TntdForm/interface.js +4 -2
- package/lib/tntd-form/TntdForm/store.js +8 -7
- package/lib/tntd-form/TntdForm/utils.js +182 -184
- package/lib/tntd-form/tntd-form.stories.d.ts.map +1 -1
- package/lib/tntd-form/tntd-form.stories.js +7 -5
- package/lib/tntd-form/tntd-form.stories.js.map +1 -1
- package/lib/tntd-layout/HeaderActions.js +1 -1
- package/lib/tntd-layout/HeaderActions.js.map +1 -1
- package/lib/tntd-modal/index.d.ts +15 -2
- package/lib/tntd-modal/index.d.ts.map +1 -1
- package/lib/tntd-modal/index.js +58 -23
- package/lib/tntd-modal/index.js.map +1 -1
- package/lib/tntd-modal/index.less +83 -63
- package/lib/tree-select/index.d.ts +7 -5
- package/lib/tree-select/index.d.ts.map +1 -1
- package/lib/tree-select/index.js.map +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/simple-template.d.ts +9 -0
- package/lib/utils/simple-template.d.ts.map +1 -0
- package/lib/utils/simple-template.js +15 -0
- package/lib/utils/simple-template.js.map +1 -0
- package/lib/water-mark/index.d.ts +49 -0
- package/lib/water-mark/index.d.ts.map +1 -0
- package/lib/water-mark/index.js +129 -0
- package/lib/water-mark/index.js.map +1 -0
- package/package.json +21 -3
- package/es/_util/colors.js +0 -3
- package/es/_util/colors.js.map +0 -1
- package/es/_util/easings.js +0 -9
- package/es/_util/easings.js.map +0 -1
- package/es/_util/getDataOrAriaProps.js +0 -8
- package/es/_util/getDataOrAriaProps.js.map +0 -1
- package/es/_util/getScroll.js +0 -14
- package/es/_util/getScroll.js.map +0 -1
- package/es/_util/interopDefault.js +0 -5
- package/es/_util/interopDefault.js.map +0 -1
- package/es/_util/isNumeric.js +0 -4
- package/es/_util/isNumeric.js.map +0 -1
- package/es/_util/motion.js +0 -22
- package/es/_util/motion.js.map +0 -1
- package/es/_util/openAnimation.js +0 -51
- package/es/_util/openAnimation.js.map +0 -1
- package/es/_util/raf.js +0 -25
- package/es/_util/raf.js.map +0 -1
- package/es/_util/reactNode.js +0 -6
- package/es/_util/reactNode.js.map +0 -1
- package/es/_util/ref.js +0 -15
- package/es/_util/ref.js.map +0 -1
- package/es/_util/responsiveObserve.js +0 -82
- package/es/_util/responsiveObserve.js.map +0 -1
- package/es/_util/scrollTo.js +0 -29
- package/es/_util/scrollTo.js.map +0 -1
- package/es/_util/styleChecker.js +0 -12
- package/es/_util/styleChecker.js.map +0 -1
- package/es/_util/throttleByAnimationFrame.js +0 -40
- package/es/_util/throttleByAnimationFrame.js.map +0 -1
- package/es/_util/transButton.js +0 -103
- package/es/_util/transButton.js.map +0 -1
- package/es/_util/triggerEvent.js +0 -8
- package/es/_util/triggerEvent.js.map +0 -1
- package/es/_util/type.js +0 -3
- package/es/_util/type.js.map +0 -1
- package/es/_util/warning.js +0 -5
- package/es/_util/warning.js.map +0 -1
- package/es/_util/wave.js +0 -228
- package/es/_util/wave.js.map +0 -1
- package/es/config-provider/context.js +0 -41
- package/es/config-provider/context.js.map +0 -1
- package/es/tntd-form/__tests__/demo-extend.test.js +0 -3
- package/es/tntd-form/__tests__/demo-extend.test.js.map +0 -1
- package/es/tntd-form/__tests__/demo.test.js +0 -3
- package/es/tntd-form/__tests__/demo.test.js.map +0 -1
- package/es/tntd-form/__tests__/image.test.js +0 -5
- package/es/tntd-form/__tests__/image.test.js.map +0 -1
- package/es/tntd-form/__tests__/index.test.js +0 -957
- package/es/tntd-form/__tests__/index.test.js.map +0 -1
- package/es/tntd-form/__tests__/list-noStyle.test.js +0 -41
- package/es/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
- package/es/tntd-form/__tests__/list.test.js +0 -164
- package/es/tntd-form/__tests__/list.test.js.map +0 -1
- package/es/tntd-form/__tests__/ref.test.js +0 -45
- package/es/tntd-form/__tests__/ref.test.js.map +0 -1
- package/es/tntd-form/__tests__/type.test.js +0 -74
- package/es/tntd-form/__tests__/type.test.js.map +0 -1
- package/lib/_util/colors.d.ts +0 -3
- package/lib/_util/colors.d.ts.map +0 -1
- package/lib/_util/colors.js +0 -7
- package/lib/_util/colors.js.map +0 -1
- package/lib/_util/easings.d.ts +0 -2
- package/lib/_util/easings.d.ts.map +0 -1
- package/lib/_util/easings.js +0 -14
- package/lib/_util/easings.js.map +0 -1
- package/lib/_util/getDataOrAriaProps.d.ts +0 -2
- package/lib/_util/getDataOrAriaProps.d.ts.map +0 -1
- package/lib/_util/getDataOrAriaProps.js +0 -13
- package/lib/_util/getDataOrAriaProps.js.map +0 -1
- package/lib/_util/getScroll.d.ts +0 -2
- package/lib/_util/getScroll.d.ts.map +0 -1
- package/lib/_util/getScroll.js +0 -18
- package/lib/_util/getScroll.js.map +0 -1
- package/lib/_util/interopDefault.d.ts +0 -2
- package/lib/_util/interopDefault.d.ts.map +0 -1
- package/lib/_util/interopDefault.js +0 -9
- package/lib/_util/interopDefault.js.map +0 -1
- package/lib/_util/isNumeric.d.ts +0 -3
- package/lib/_util/isNumeric.d.ts.map +0 -1
- package/lib/_util/isNumeric.js +0 -7
- package/lib/_util/isNumeric.js.map +0 -1
- package/lib/_util/motion.d.ts +0 -24
- package/lib/_util/motion.d.ts.map +0 -1
- package/lib/_util/motion.js +0 -17
- package/lib/_util/motion.js.map +0 -1
- package/lib/_util/openAnimation.d.ts +0 -7
- package/lib/_util/openAnimation.d.ts.map +0 -1
- package/lib/_util/openAnimation.js +0 -58
- package/lib/_util/openAnimation.js.map +0 -1
- package/lib/_util/raf.d.ts +0 -10
- package/lib/_util/raf.d.ts.map +0 -1
- package/lib/_util/raf.js +0 -34
- package/lib/_util/raf.js.map +0 -1
- package/lib/_util/reactNode.d.ts +0 -3
- package/lib/_util/reactNode.d.ts.map +0 -1
- package/lib/_util/reactNode.js +0 -31
- package/lib/_util/reactNode.js.map +0 -1
- package/lib/_util/ref.d.ts +0 -4
- package/lib/_util/ref.d.ts.map +0 -1
- package/lib/_util/ref.js +0 -22
- package/lib/_util/ref.js.map +0 -1
- package/lib/_util/responsiveObserve.d.ts +0 -14
- package/lib/_util/responsiveObserve.d.ts.map +0 -1
- package/lib/_util/responsiveObserve.js +0 -83
- package/lib/_util/responsiveObserve.js.map +0 -1
- package/lib/_util/scrollTo.d.ts +0 -11
- package/lib/_util/scrollTo.d.ts.map +0 -1
- package/lib/_util/scrollTo.js +0 -34
- package/lib/_util/scrollTo.js.map +0 -1
- package/lib/_util/styleChecker.d.ts +0 -4
- package/lib/_util/styleChecker.d.ts.map +0 -1
- package/lib/_util/styleChecker.js +0 -14
- package/lib/_util/styleChecker.js.map +0 -1
- package/lib/_util/throttleByAnimationFrame.d.ts +0 -6
- package/lib/_util/throttleByAnimationFrame.d.ts.map +0 -1
- package/lib/_util/throttleByAnimationFrame.js +0 -49
- package/lib/_util/throttleByAnimationFrame.js.map +0 -1
- package/lib/_util/transButton.d.ts +0 -21
- package/lib/_util/transButton.d.ts.map +0 -1
- package/lib/_util/transButton.js +0 -112
- package/lib/_util/transButton.js.map +0 -1
- package/lib/_util/triggerEvent.d.ts +0 -2
- package/lib/_util/triggerEvent.d.ts.map +0 -1
- package/lib/_util/triggerEvent.js +0 -12
- package/lib/_util/triggerEvent.js.map +0 -1
- package/lib/_util/type.d.ts +0 -4
- package/lib/_util/type.d.ts.map +0 -1
- package/lib/_util/type.js +0 -9
- package/lib/_util/type.js.map +0 -1
- package/lib/_util/warning.d.ts +0 -5
- package/lib/_util/warning.d.ts.map +0 -1
- package/lib/_util/warning.js +0 -28
- package/lib/_util/warning.js.map +0 -1
- package/lib/_util/wave.d.ts +0 -26
- package/lib/_util/wave.d.ts.map +0 -1
- package/lib/_util/wave.js +0 -249
- package/lib/_util/wave.js.map +0 -1
- package/lib/config-provider/context.d.ts +0 -61
- package/lib/config-provider/context.d.ts.map +0 -1
- package/lib/config-provider/context.js +0 -64
- package/lib/config-provider/context.js.map +0 -1
- package/lib/tntd-form/TntdForm/components/Item.d.ts +0 -5
- package/lib/tntd-form/TntdForm/components/Item.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/components/Item.js.map +0 -1
- package/lib/tntd-form/TntdForm/components/ItemComp.d.ts +0 -5
- package/lib/tntd-form/TntdForm/components/ItemComp.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/components/ItemComp.js.map +0 -1
- package/lib/tntd-form/TntdForm/components/List.d.ts +0 -5
- package/lib/tntd-form/TntdForm/components/List.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/components/List.js.map +0 -1
- package/lib/tntd-form/TntdForm/index.d.ts +0 -10
- package/lib/tntd-form/TntdForm/index.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/index.js.map +0 -1
- package/lib/tntd-form/TntdForm/interface.d.ts +0 -93
- package/lib/tntd-form/TntdForm/interface.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/interface.js.map +0 -1
- package/lib/tntd-form/TntdForm/store.d.ts +0 -4
- package/lib/tntd-form/TntdForm/store.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/store.js.map +0 -1
- package/lib/tntd-form/TntdForm/utils.d.ts +0 -48
- package/lib/tntd-form/TntdForm/utils.d.ts.map +0 -1
- package/lib/tntd-form/TntdForm/utils.js.map +0 -1
- package/lib/tntd-form/__tests__/demo-extend.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/demo-extend.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/demo-extend.test.js +0 -5
- package/lib/tntd-form/__tests__/demo-extend.test.js.map +0 -1
- package/lib/tntd-form/__tests__/demo.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/demo.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/demo.test.js +0 -8
- package/lib/tntd-form/__tests__/demo.test.js.map +0 -1
- package/lib/tntd-form/__tests__/image.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/image.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/image.test.js +0 -7
- package/lib/tntd-form/__tests__/image.test.js.map +0 -1
- package/lib/tntd-form/__tests__/index.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/index.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/index.test.js +0 -981
- package/lib/tntd-form/__tests__/index.test.js.map +0 -1
- package/lib/tntd-form/__tests__/list-noStyle.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/list-noStyle.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/list-noStyle.test.js +0 -46
- package/lib/tntd-form/__tests__/list-noStyle.test.js.map +0 -1
- package/lib/tntd-form/__tests__/list.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/list.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/list.test.js +0 -169
- package/lib/tntd-form/__tests__/list.test.js.map +0 -1
- package/lib/tntd-form/__tests__/ref.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/ref.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/ref.test.js +0 -50
- package/lib/tntd-form/__tests__/ref.test.js.map +0 -1
- package/lib/tntd-form/__tests__/type.test.d.ts +0 -2
- package/lib/tntd-form/__tests__/type.test.d.ts.map +0 -1
- package/lib/tntd-form/__tests__/type.test.js +0 -98
- package/lib/tntd-form/__tests__/type.test.js.map +0 -1
package/es/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.js"],"names":[],"mappings":"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","sourcesContent":["export * from './checkAuth'\nexport * from './findMenuInfoByPath'\nexport * from './simple-template'\n\nexport const isGroupMenu = (menu) => menu?.children && !menu?.path\n\nexport const getSelectedMenuInfo = (selectedKey, menus = []) => {\n let subMenu\n let menu\n let parentMenus = []\n\n if (selectedKey) {\n traverseTree(menus, (node, pnode, pnodes) => {\n if (!isGroupMenu(node) && node.code === selectedKey) {\n subMenu = node\n menu = pnode\n parentMenus = pnodes\n return false\n }\n })\n } else {\n // 默认找到第一个菜单项\n traverseTree(menus, (node, pnode, pnodes) => {\n if (!isGroupMenu(node)) {\n subMenu = node\n menu = pnode\n parentMenus = pnodes\n return false\n }\n })\n }\n\n return {\n subMenu,\n menu,\n parentMenus,\n }\n}\n\nexport const hasLevel3 = (menus) => {\n return menus?.some((menu) => menu?.children?.some((item) => item?.children?.length))\n}\n\nexport const isNewTabMenu = (menu) => {\n const { target, path } = menu || {}\n\n return target === '_blank' || (/^http/i.test(path) && /blankType=newTarget/.test(path))\n}\n\nexport const openInNewTab = (path) => {\n window.open(path, '_blank')\n}\n\nexport const traverseTree = (treeData, callback, pnode, pnodes = []) => {\n ;(treeData || []).every((node, index) => {\n let result\n\n if (callback) {\n result = callback(\n node,\n pnode,\n pnodes?.length ? pnodes : [pnode].filter((item) => !!item),\n index\n )\n }\n\n // 回调函数返回false则终止遍历\n if (result !== false) {\n node && traverseTree(node.children || [], callback, node, [node, ...pnodes])\n }\n\n return result !== false\n })\n\n return treeData\n}\n\nexport const safeParseJSON = (str, defaultObj) => {\n let result\n\n try {\n result = JSON.parse(str)\n } catch (err) {\n console.warn('json parse error:', err)\n result = typeof defaultObj === 'undefined' ? str : defaultObj\n }\n\n return result || defaultObj\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 简单的模板替换
|
|
3
|
+
*
|
|
4
|
+
* @param template
|
|
5
|
+
* @param data
|
|
6
|
+
* @returns
|
|
7
|
+
*/
|
|
8
|
+
export function simpleTemplate(template, data = {}) {
|
|
9
|
+
return template === null || template === void 0 ? void 0 : template.replace(/\${(.*?)}/g, (match, key) => data[key.trim()].toString());
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=simple-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-template.js","sourceRoot":"","sources":["../../src/utils/simple-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,QAAiB,EAAE,OAAwC,EAAE;IAC1F,OAAO,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AACrF,CAAC","sourcesContent":["/**\n * 简单的模板替换\n *\n * @param template\n * @param data\n * @returns\n */\nexport function simpleTemplate(template?: string, data: Record<string, string | number> = {}) {\n return template?.replace(/\\${(.*?)}/g, (match, key) => data[key.trim()].toString())\n}\n"]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import cn from 'classnames';
|
|
2
|
+
import React, { useEffect, useState } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* 返回当前显示设备的物理像素分辨率与CSS像素分辨率之比
|
|
5
|
+
*
|
|
6
|
+
* @param context
|
|
7
|
+
* @see api 有些废弃了,其实类型 CanvasRenderingContext2D
|
|
8
|
+
*/
|
|
9
|
+
const getPixelRatio = (context) => {
|
|
10
|
+
if (!context) {
|
|
11
|
+
return 1;
|
|
12
|
+
}
|
|
13
|
+
const backingStore = context.backingStorePixelRatio ||
|
|
14
|
+
context.webkitBackingStorePixelRatio ||
|
|
15
|
+
context.mozBackingStorePixelRatio ||
|
|
16
|
+
context.msBackingStorePixelRatio ||
|
|
17
|
+
context.oBackingStorePixelRatio ||
|
|
18
|
+
1;
|
|
19
|
+
return (window.devicePixelRatio || 1) / backingStore;
|
|
20
|
+
};
|
|
21
|
+
export const Watermark = (props) => {
|
|
22
|
+
const { children, style, className, markStyle, markClassName,
|
|
23
|
+
// antd 内容层 zIndex 基本上在 10 以下 https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335
|
|
24
|
+
zIndex = 9, gapX = 212, gapY = 222, width = 120, height = 64, rotate = -22, // 默认旋转 -22 度
|
|
25
|
+
image, content, offsetLeft, offsetTop, fontStyle = 'normal', textAlign = 'center', fontWeight = 'normal', fontColor = 'rgba(0,0,0,.15)', fontSize = 14, fontFamily = 'sans-serif', prefixCls = 'tntd-watermark', } = props;
|
|
26
|
+
const wrapperCls = cn([`${prefixCls}-wrapper`, className]);
|
|
27
|
+
const watermarkCls = cn([prefixCls, markClassName]);
|
|
28
|
+
const [base64Url, setBase64Url] = useState('');
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
const canvas = document.createElement('canvas');
|
|
31
|
+
const ctx = canvas.getContext('2d');
|
|
32
|
+
const ratio = getPixelRatio(ctx);
|
|
33
|
+
const canvasWidth = `${(gapX + width) * ratio}px`;
|
|
34
|
+
const canvasHeight = `${(gapY + height) * ratio}px`;
|
|
35
|
+
const canvasOffsetLeft = offsetLeft || gapX / 2;
|
|
36
|
+
const canvasOffsetTop = offsetTop || gapY / 2;
|
|
37
|
+
canvas.setAttribute('width', canvasWidth);
|
|
38
|
+
canvas.setAttribute('height', canvasHeight);
|
|
39
|
+
if (ctx) {
|
|
40
|
+
// 旋转字符 rotate
|
|
41
|
+
ctx.translate(canvasOffsetLeft * ratio, canvasOffsetTop * ratio);
|
|
42
|
+
ctx.rotate((Math.PI / 180) * Number(rotate));
|
|
43
|
+
const markWidth = width * ratio;
|
|
44
|
+
const markHeight = height * ratio;
|
|
45
|
+
if (image) {
|
|
46
|
+
const img = new Image();
|
|
47
|
+
img.crossOrigin = 'anonymous';
|
|
48
|
+
img.referrerPolicy = 'no-referrer';
|
|
49
|
+
img.src = image;
|
|
50
|
+
img.onload = () => {
|
|
51
|
+
ctx.drawImage(img, 0, 0, markWidth, markHeight);
|
|
52
|
+
setBase64Url(canvas.toDataURL());
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
else if (content) {
|
|
56
|
+
const markSize = Number(fontSize) * ratio;
|
|
57
|
+
ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`;
|
|
58
|
+
ctx.fillStyle = fontColor;
|
|
59
|
+
ctx.textAlign = textAlign;
|
|
60
|
+
if (Array.isArray(content)) {
|
|
61
|
+
content === null || content === void 0 ? void 0 : content.forEach((item, index) => ctx.fillText(item, 0, index * markSize));
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
ctx.fillText(content, 0, 0);
|
|
65
|
+
}
|
|
66
|
+
setBase64Url(canvas.toDataURL());
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// eslint-disable-next-line no-console
|
|
71
|
+
console.error('当前环境不支持Canvas');
|
|
72
|
+
}
|
|
73
|
+
}, [
|
|
74
|
+
gapX,
|
|
75
|
+
gapY,
|
|
76
|
+
offsetLeft,
|
|
77
|
+
offsetTop,
|
|
78
|
+
rotate,
|
|
79
|
+
fontStyle,
|
|
80
|
+
textAlign,
|
|
81
|
+
fontWeight,
|
|
82
|
+
width,
|
|
83
|
+
height,
|
|
84
|
+
fontFamily,
|
|
85
|
+
fontColor,
|
|
86
|
+
image,
|
|
87
|
+
content,
|
|
88
|
+
fontSize,
|
|
89
|
+
]);
|
|
90
|
+
return (React.createElement("div", { style: Object.assign({ position: 'relative' }, style), className: wrapperCls },
|
|
91
|
+
children,
|
|
92
|
+
React.createElement("div", { className: watermarkCls, style: Object.assign(Object.assign({ zIndex, position: 'absolute', left: 0, top: 0, width: '100%', height: '100%', backgroundSize: `${gapX + width}px`, pointerEvents: 'none', backgroundRepeat: 'repeat' }, (base64Url
|
|
93
|
+
? {
|
|
94
|
+
backgroundImage: `url('${base64Url}')`,
|
|
95
|
+
}
|
|
96
|
+
: {})), markStyle) })));
|
|
97
|
+
};
|
|
98
|
+
export default Watermark;
|
|
99
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/water-mark/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import cn from 'classnames'\nimport React, { useEffect, useState } from 'react'\n\nexport interface WatermarkProps {\n /** 类名 */\n className?: string\n /** 样式 */\n style?: React.CSSProperties\n /** 水印样式 */\n markStyle?: React.CSSProperties\n /** 水印类名 */\n markClassName?: string\n /** 水印之间的水平间距 */\n gapX?: number\n /** 水印之间的垂直间距 */\n gapY?: number\n /** 追加的水印元素的z-index */\n zIndex?: number\n /** 水印的宽度 */\n width?: number\n /** 水印的高度 */\n height?: number\n /** 水印在canvas 画布上绘制的垂直偏移量,正常情况下,水印绘制在中间位置, 即 offsetTop = gapY / 2 */\n offsetTop?: number // 水印图片距离绘制 canvas 单元的顶部距离\n /** 水印在canvas 画布上绘制的水平偏移量, 正常情况下,水印绘制在中间位置, 即 offsetTop = gapX / 2 */\n offsetLeft?: number\n /** 水印绘制时,旋转的角度,单位 ° */\n rotate?: number\n /** ClassName 前缀 */\n prefixCls?: string\n /** 高清印图片源, 为了高清屏幕显示,建议使用 2倍或3倍图,优先使用图片渲染水印。 */\n image?: string\n /** 水印文字内容 */\n content?: string | string[]\n /** 文字颜色 */\n fontColor?: string\n /** 文字样式 */\n fontStyle?: 'none' | 'normal' | 'italic' | 'oblique'\n /** 文字对齐 */\n textAlign?: 'left' | 'center' | 'right'\n /** 文字族 */\n fontFamily?: string\n /** 文字粗细 */\n fontWeight?: 'normal' | 'light' | 'weight' | number\n /** 文字大小 */\n fontSize?: number | string\n\n children?: React.ReactNode\n}\n/**\n * 返回当前显示设备的物理像素分辨率与CSS像素分辨率之比\n *\n * @param context\n * @see api 有些废弃了,其实类型 CanvasRenderingContext2D\n */\nconst getPixelRatio = (context: any) => {\n if (!context) {\n return 1\n }\n const backingStore =\n context.backingStorePixelRatio ||\n context.webkitBackingStorePixelRatio ||\n context.mozBackingStorePixelRatio ||\n context.msBackingStorePixelRatio ||\n context.oBackingStorePixelRatio ||\n 1\n return (window.devicePixelRatio || 1) / backingStore\n}\n\nexport const Watermark: React.FC<WatermarkProps> = (props) => {\n const {\n children,\n style,\n className,\n markStyle,\n markClassName,\n // antd 内容层 zIndex 基本上在 10 以下 https://github.com/ant-design/ant-design/blob/6192403b2ce517c017f9e58a32d58774921c10cd/components/style/themes/default.less#L335\n zIndex = 9,\n gapX = 212,\n gapY = 222,\n width = 120,\n height = 64,\n rotate = -22, // 默认旋转 -22 度\n image,\n content,\n offsetLeft,\n offsetTop,\n fontStyle = 'normal',\n textAlign = 'center',\n fontWeight = 'normal',\n fontColor = 'rgba(0,0,0,.15)',\n fontSize = 14,\n fontFamily = 'sans-serif',\n prefixCls = 'tntd-watermark',\n } = props\n\n const wrapperCls = cn([`${prefixCls}-wrapper`, className])\n const watermarkCls = cn([prefixCls, markClassName])\n const [base64Url, setBase64Url] = useState('')\n\n useEffect(() => {\n const canvas = document.createElement('canvas')\n const ctx = canvas.getContext('2d')\n const ratio = getPixelRatio(ctx)\n\n const canvasWidth = `${(gapX + width) * ratio}px`\n const canvasHeight = `${(gapY + height) * ratio}px`\n const canvasOffsetLeft = offsetLeft || gapX / 2\n const canvasOffsetTop = offsetTop || gapY / 2\n\n canvas.setAttribute('width', canvasWidth)\n canvas.setAttribute('height', canvasHeight)\n\n if (ctx) {\n // 旋转字符 rotate\n ctx.translate(canvasOffsetLeft * ratio, canvasOffsetTop * ratio)\n ctx.rotate((Math.PI / 180) * Number(rotate))\n const markWidth = width * ratio\n const markHeight = height * ratio\n\n if (image) {\n const img = new Image()\n img.crossOrigin = 'anonymous'\n img.referrerPolicy = 'no-referrer'\n img.src = image\n img.onload = () => {\n ctx.drawImage(img, 0, 0, markWidth, markHeight)\n setBase64Url(canvas.toDataURL())\n }\n } else if (content) {\n const markSize = Number(fontSize) * ratio\n ctx.font = `${fontStyle} normal ${fontWeight} ${markSize}px/${markHeight}px ${fontFamily}`\n ctx.fillStyle = fontColor\n ctx.textAlign = textAlign\n if (Array.isArray(content)) {\n content?.forEach((item: string, index: number) => ctx.fillText(item, 0, index * markSize))\n } else {\n ctx.fillText(content, 0, 0)\n }\n setBase64Url(canvas.toDataURL())\n }\n } else {\n // eslint-disable-next-line no-console\n console.error('当前环境不支持Canvas')\n }\n }, [\n gapX,\n gapY,\n offsetLeft,\n offsetTop,\n rotate,\n fontStyle,\n textAlign,\n fontWeight,\n width,\n height,\n fontFamily,\n fontColor,\n image,\n content,\n fontSize,\n ])\n\n return (\n <div\n style={{\n position: 'relative',\n ...style,\n }}\n className={wrapperCls}\n >\n {children}\n <div\n className={watermarkCls}\n style={{\n zIndex,\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n backgroundSize: `${gapX + width}px`,\n pointerEvents: 'none',\n backgroundRepeat: 'repeat',\n ...(base64Url\n ? {\n backgroundImage: `url('${base64Url}')`,\n }\n : {}),\n ...markStyle,\n }}\n />\n </div>\n )\n}\n\nexport default Watermark\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import './index.less';
|
|
3
|
+
export interface ProCardActionsProps {
|
|
4
|
+
/**
|
|
5
|
+
* 自定义前缀
|
|
6
|
+
*
|
|
7
|
+
* @ignore
|
|
8
|
+
*/
|
|
9
|
+
prefixCls?: string;
|
|
10
|
+
/** 操作按钮 */
|
|
11
|
+
actions?: React.ReactNode[] | React.ReactNode;
|
|
12
|
+
}
|
|
13
|
+
declare const ProCardActions: React.FC<ProCardActionsProps>;
|
|
14
|
+
export default ProCardActions;
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,cAAc,CAAA;AAErB,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW;IACX,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,SAAS,CAAA;CAC9C;AAED,QAAA,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAmBjD,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
require("./index.less");
|
|
9
|
+
const ProCardActions = (props) => {
|
|
10
|
+
const { actions, prefixCls } = props;
|
|
11
|
+
if (Array.isArray(actions) && (actions === null || actions === void 0 ? void 0 : actions.length)) {
|
|
12
|
+
return (react_1.default.createElement("ul", { className: (0, classnames_1.default)(`${prefixCls}-actions`) }, actions.map((action, index) => (react_1.default.createElement("li", { style: { width: `${100 / actions.length}%`, padding: 0, margin: 0 }, key: `action-${index}`, className: (0, classnames_1.default)(`${prefixCls}-actions-item`) }, action)))));
|
|
13
|
+
}
|
|
14
|
+
return react_1.default.createElement("ul", { className: (0, classnames_1.default)(`${prefixCls}-actions`) }, actions);
|
|
15
|
+
};
|
|
16
|
+
exports.default = ProCardActions;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.tsx"],"names":[],"mappings":";;;;;AAAA,4DAAmC;AACnC,kDAAyB;AACzB,wBAAqB;AAarB,MAAM,cAAc,GAAkC,CAAC,KAAK,EAAE,EAAE;IAC9D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;IAEpC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,CAAA,EAAE;QAC7C,OAAO,CACL,sCAAI,SAAS,EAAE,IAAA,oBAAU,EAAC,GAAG,SAAS,UAAU,CAAC,IAC9C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAC9B,sCACE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EACnE,GAAG,EAAE,UAAU,KAAK,EAAE,EACtB,SAAS,EAAE,IAAA,oBAAU,EAAC,GAAG,SAAS,eAAe,CAAC,IAEjD,MAAM,CACJ,CACN,CAAC,CACC,CACN,CAAA;KACF;IACD,OAAO,sCAAI,SAAS,EAAE,IAAA,oBAAU,EAAC,GAAG,SAAS,UAAU,CAAC,IAAG,OAAO,CAAM,CAAA;AAC1E,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA","sourcesContent":["import classNames from 'classnames'\nimport React from 'react'\nimport './index.less'\n\nexport interface ProCardActionsProps {\n /**\n * 自定义前缀\n *\n * @ignore\n */\n prefixCls?: string\n /** 操作按钮 */\n actions?: React.ReactNode[] | React.ReactNode\n}\n\nconst ProCardActions: React.FC<ProCardActionsProps> = (props) => {\n const { actions, prefixCls } = props\n\n if (Array.isArray(actions) && actions?.length) {\n return (\n <ul className={classNames(`${prefixCls}-actions`)}>\n {actions.map((action, index) => (\n <li\n style={{ width: `${100 / actions.length}%`, padding: 0, margin: 0 }}\n key={`action-${index}`}\n className={classNames(`${prefixCls}-actions-item`)}\n >\n {action}\n </li>\n ))}\n </ul>\n )\n }\n return <ul className={classNames(`${prefixCls}-actions`)}>{actions}</ul>\n}\n\nexport default ProCardActions\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
.tntd-card-actions {
|
|
2
|
+
margin-block:0;
|
|
3
|
+
margin-inline:0;
|
|
4
|
+
padding-block:0;
|
|
5
|
+
padding-inline:0;
|
|
6
|
+
list-style:none;
|
|
7
|
+
display:flex;
|
|
8
|
+
gap:8px;
|
|
9
|
+
background:#ffffff;
|
|
10
|
+
border-block-start:1px solid rgba(5,5,5,0.06);
|
|
11
|
+
min-height:42px;
|
|
12
|
+
}
|
|
13
|
+
.tntd-card-actions>* {
|
|
14
|
+
align-items:center;
|
|
15
|
+
justify-content:center;
|
|
16
|
+
flex:1;
|
|
17
|
+
display:flex;
|
|
18
|
+
cursor:pointer;
|
|
19
|
+
color:rgba(42,46,54,0.65);
|
|
20
|
+
transition:color 0.3s;
|
|
21
|
+
}
|
|
22
|
+
.tntd-card-actions>*:hover {
|
|
23
|
+
color:#468fff;
|
|
24
|
+
}
|
|
25
|
+
.tntd-card-actions>li>div {
|
|
26
|
+
flex:1;
|
|
27
|
+
width:100%;
|
|
28
|
+
margin-block:12px;
|
|
29
|
+
margin-inline:0;
|
|
30
|
+
color:rgba(42,46,54,0.65);
|
|
31
|
+
text-align:center;
|
|
32
|
+
}
|
|
33
|
+
.tntd-card-actions>li>div a {
|
|
34
|
+
color:rgba(42,46,54,0.65);
|
|
35
|
+
transition:color 0.3s;
|
|
36
|
+
}
|
|
37
|
+
.tntd-card-actions>li>div a:hover {
|
|
38
|
+
color:#468fff;
|
|
39
|
+
}
|
|
40
|
+
.tntd-card-actions>li>div div {
|
|
41
|
+
position:relative;
|
|
42
|
+
display:block;
|
|
43
|
+
min-width:32px;
|
|
44
|
+
font-size:14px;
|
|
45
|
+
line-height:1.5714285714285714;
|
|
46
|
+
cursor:pointer;
|
|
47
|
+
}
|
|
48
|
+
.tntd-card-actions>li>div div:hover {
|
|
49
|
+
color:#468fff;
|
|
50
|
+
transition:color 0.3s;
|
|
51
|
+
}
|
|
52
|
+
.tntd-card-actions>li>div div a:not(.ant-btn),
|
|
53
|
+
.tntd-card-actions>li>div div >.anticon {
|
|
54
|
+
display:inline-block;
|
|
55
|
+
width:100%;
|
|
56
|
+
color:rgba(42,46,54,0.65);
|
|
57
|
+
line-height:22px;
|
|
58
|
+
transition:color 0.3s;
|
|
59
|
+
}
|
|
60
|
+
.tntd-card-actions>li>div div a:not(.ant-btn):hover,
|
|
61
|
+
.tntd-card-actions>li>div div >.anticon:hover {
|
|
62
|
+
color:#468fff;
|
|
63
|
+
}
|
|
64
|
+
.tntd-card-actions>li>div div .anticon {
|
|
65
|
+
font-size:16px;
|
|
66
|
+
line-height:22px;
|
|
67
|
+
}
|
|
68
|
+
.tntd-card-actions>li>div:not(:last-child) {
|
|
69
|
+
border-inline-end:1px solid rgba(5,5,5,0.06);
|
|
70
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type CheckCardValueType = string | number | boolean;
|
|
3
|
+
export declare type CheckGroupValueType = CheckCardValueType[] | CheckCardValueType | undefined;
|
|
4
|
+
export interface CheckCardOptionType {
|
|
5
|
+
/**
|
|
6
|
+
* 标题展示
|
|
7
|
+
*
|
|
8
|
+
* @title 标题
|
|
9
|
+
*/
|
|
10
|
+
title?: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* 选项值
|
|
13
|
+
*
|
|
14
|
+
* @title 值
|
|
15
|
+
*/
|
|
16
|
+
value: CheckCardValueType;
|
|
17
|
+
/**
|
|
18
|
+
* 描述展示
|
|
19
|
+
*
|
|
20
|
+
* @title 描述
|
|
21
|
+
*/
|
|
22
|
+
description?: React.ReactNode;
|
|
23
|
+
/**
|
|
24
|
+
* 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高
|
|
25
|
+
*
|
|
26
|
+
* @default default
|
|
27
|
+
* @title 组件尺寸
|
|
28
|
+
*/
|
|
29
|
+
size?: 'large' | 'default' | 'small';
|
|
30
|
+
/**
|
|
31
|
+
* 左侧头像展示,可以是一个链接也可以是是一个 ReactNode
|
|
32
|
+
*
|
|
33
|
+
* @title 左侧头像区域
|
|
34
|
+
*/
|
|
35
|
+
avatar?: React.ReactNode;
|
|
36
|
+
/**
|
|
37
|
+
* 图片封面默认,该模式下其他展示值被忽略
|
|
38
|
+
*
|
|
39
|
+
* @title 图片封面
|
|
40
|
+
*/
|
|
41
|
+
cover?: React.ReactNode;
|
|
42
|
+
/**
|
|
43
|
+
* 不可用
|
|
44
|
+
*
|
|
45
|
+
* @default false
|
|
46
|
+
* @title 不可用
|
|
47
|
+
*/
|
|
48
|
+
disabled?: boolean;
|
|
49
|
+
/** Change 回调 */
|
|
50
|
+
onChange?: (checked: boolean) => void;
|
|
51
|
+
}
|
|
52
|
+
export interface AbstractCheckCardGroupProps {
|
|
53
|
+
/** @ignore */
|
|
54
|
+
prefixCls?: string;
|
|
55
|
+
/** @ignore */
|
|
56
|
+
className?: string;
|
|
57
|
+
/** 指定可选项 */
|
|
58
|
+
options?: (CheckCardOptionType | string)[];
|
|
59
|
+
/** 整组失效 */
|
|
60
|
+
disabled?: boolean;
|
|
61
|
+
/** @ignore */
|
|
62
|
+
style?: React.CSSProperties;
|
|
63
|
+
/**
|
|
64
|
+
* 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高
|
|
65
|
+
*
|
|
66
|
+
* @default default
|
|
67
|
+
*/
|
|
68
|
+
size?: 'large' | 'default' | 'small';
|
|
69
|
+
/**
|
|
70
|
+
* @acceptions CheckCard
|
|
71
|
+
* @ignore
|
|
72
|
+
*/
|
|
73
|
+
children?: React.ReactNode;
|
|
74
|
+
}
|
|
75
|
+
export declare const CardLoading: React.FC<{
|
|
76
|
+
prefixCls: string;
|
|
77
|
+
}>;
|
|
78
|
+
export interface CheckCardGroupProps extends AbstractCheckCardGroupProps {
|
|
79
|
+
/**
|
|
80
|
+
* 是否多选
|
|
81
|
+
*
|
|
82
|
+
* @title 是否多选
|
|
83
|
+
*/
|
|
84
|
+
multiple?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* 默认选中的选项
|
|
87
|
+
*
|
|
88
|
+
* @title 默认选中的选项
|
|
89
|
+
*/
|
|
90
|
+
defaultValue?: CheckGroupValueType;
|
|
91
|
+
/**
|
|
92
|
+
* 指定选中的选项
|
|
93
|
+
*
|
|
94
|
+
* @title 指定选中的选项
|
|
95
|
+
*/
|
|
96
|
+
value?: CheckGroupValueType;
|
|
97
|
+
/**
|
|
98
|
+
* 当卡片组内容还在加载中时,可以用 loading 展示一个占位
|
|
99
|
+
*
|
|
100
|
+
* @title 加载中
|
|
101
|
+
*/
|
|
102
|
+
loading?: boolean;
|
|
103
|
+
/**
|
|
104
|
+
* 是否显示边框
|
|
105
|
+
*
|
|
106
|
+
* @title 显示边框
|
|
107
|
+
*/
|
|
108
|
+
bordered?: boolean;
|
|
109
|
+
/** 变化时回调函数 */
|
|
110
|
+
onChange?: (checkedValue: CheckGroupValueType) => void;
|
|
111
|
+
}
|
|
112
|
+
export interface CheckCardGroupState {
|
|
113
|
+
value: CheckGroupValueType;
|
|
114
|
+
registeredValues: CheckCardValueType[];
|
|
115
|
+
}
|
|
116
|
+
export interface CheckCardGroupConnextType {
|
|
117
|
+
toggleOption?: (option: CheckCardOptionType) => void;
|
|
118
|
+
value?: any;
|
|
119
|
+
disabled?: boolean;
|
|
120
|
+
size?: 'default' | 'large' | 'small';
|
|
121
|
+
loading?: boolean;
|
|
122
|
+
bordered?: boolean;
|
|
123
|
+
multiple?: boolean;
|
|
124
|
+
registerValue?: (value: any) => void;
|
|
125
|
+
cancelValue?: (value: any) => void;
|
|
126
|
+
}
|
|
127
|
+
export declare const CheckCardGroupConnext: React.Context<CheckCardGroupConnextType | null>;
|
|
128
|
+
declare const CheckCardGroup: React.FC<CheckCardGroupProps>;
|
|
129
|
+
export default CheckCardGroup;
|
|
130
|
+
//# sourceMappingURL=group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.d.ts","sourceRoot":"","sources":["../../src/check-card/group.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.CheckCardGroupConnext = exports.CardLoading = void 0;
|
|
41
|
+
const useMergedState_1 = __importDefault(require("rc-util/lib/hooks/useMergedState"));
|
|
42
|
+
const index_1 = require("../index");
|
|
43
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
44
|
+
const lodash_1 = require("lodash");
|
|
45
|
+
const react_1 = __importStar(require("react"));
|
|
46
|
+
const index_2 = __importDefault(require("./index"));
|
|
47
|
+
const CardLoading = ({ prefixCls }) => {
|
|
48
|
+
const loadingBlockClass = `${prefixCls}-loading-block`;
|
|
49
|
+
return (react_1.default.createElement("div", { className: `${prefixCls}-loading-content` },
|
|
50
|
+
react_1.default.createElement(index_1.Row, { gutter: {
|
|
51
|
+
xs: 8,
|
|
52
|
+
sm: 8,
|
|
53
|
+
md: 8,
|
|
54
|
+
lg: 12,
|
|
55
|
+
} },
|
|
56
|
+
react_1.default.createElement(index_1.Col, { span: 22 },
|
|
57
|
+
react_1.default.createElement("div", { className: loadingBlockClass }))),
|
|
58
|
+
react_1.default.createElement(index_1.Row, { gutter: 8 },
|
|
59
|
+
react_1.default.createElement(index_1.Col, { span: 8 },
|
|
60
|
+
react_1.default.createElement("div", { className: loadingBlockClass })),
|
|
61
|
+
react_1.default.createElement(index_1.Col, { span: 14 },
|
|
62
|
+
react_1.default.createElement("div", { className: loadingBlockClass }))),
|
|
63
|
+
react_1.default.createElement(index_1.Row, { gutter: 8 },
|
|
64
|
+
react_1.default.createElement(index_1.Col, { span: 6 },
|
|
65
|
+
react_1.default.createElement("div", { className: loadingBlockClass })),
|
|
66
|
+
react_1.default.createElement(index_1.Col, { span: 16 },
|
|
67
|
+
react_1.default.createElement("div", { className: loadingBlockClass }))),
|
|
68
|
+
react_1.default.createElement(index_1.Row, { gutter: 8 },
|
|
69
|
+
react_1.default.createElement(index_1.Col, { span: 13 },
|
|
70
|
+
react_1.default.createElement("div", { className: loadingBlockClass })),
|
|
71
|
+
react_1.default.createElement(index_1.Col, { span: 9 },
|
|
72
|
+
react_1.default.createElement("div", { className: loadingBlockClass }))),
|
|
73
|
+
react_1.default.createElement(index_1.Row, { gutter: 8 },
|
|
74
|
+
react_1.default.createElement(index_1.Col, { span: 4 },
|
|
75
|
+
react_1.default.createElement("div", { className: loadingBlockClass })),
|
|
76
|
+
react_1.default.createElement(index_1.Col, { span: 3 },
|
|
77
|
+
react_1.default.createElement("div", { className: loadingBlockClass })),
|
|
78
|
+
react_1.default.createElement(index_1.Col, { span: 14 },
|
|
79
|
+
react_1.default.createElement("div", { className: loadingBlockClass })))));
|
|
80
|
+
};
|
|
81
|
+
exports.CardLoading = CardLoading;
|
|
82
|
+
exports.CheckCardGroupConnext = (0, react_1.createContext)(null);
|
|
83
|
+
const CheckCardGroup = (props) => {
|
|
84
|
+
const { prefixCls: customizePrefixCls, className, style, options = [], loading = false, multiple = false, bordered = true, onChange } = props, restProps = __rest(props, ["prefixCls", "className", "style", "options", "loading", "multiple", "bordered", "onChange"]);
|
|
85
|
+
const getOptions = (0, react_1.useCallback)(() => {
|
|
86
|
+
return options === null || options === void 0 ? void 0 : options.map((option) => {
|
|
87
|
+
if (typeof option === 'string') {
|
|
88
|
+
return {
|
|
89
|
+
title: option,
|
|
90
|
+
value: option,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return option;
|
|
94
|
+
});
|
|
95
|
+
}, [options]);
|
|
96
|
+
const prefixCls = 'tntd-checkcard';
|
|
97
|
+
const groupPrefixCls = `${prefixCls}-group`;
|
|
98
|
+
const domProps = (0, lodash_1.omit)(restProps, ['children', 'defaultValue', 'value', 'disabled', 'size']);
|
|
99
|
+
const [stateValue, setStateValue] = (0, useMergedState_1.default)(props.defaultValue, {
|
|
100
|
+
value: props.value,
|
|
101
|
+
onChange: props.onChange,
|
|
102
|
+
});
|
|
103
|
+
const registerValueMap = (0, react_1.useRef)(new Map());
|
|
104
|
+
const registerValue = (value) => {
|
|
105
|
+
var _a;
|
|
106
|
+
(_a = registerValueMap.current) === null || _a === void 0 ? void 0 : _a.set(value, true);
|
|
107
|
+
};
|
|
108
|
+
const cancelValue = (value) => {
|
|
109
|
+
var _a;
|
|
110
|
+
(_a = registerValueMap.current) === null || _a === void 0 ? void 0 : _a.delete(value);
|
|
111
|
+
};
|
|
112
|
+
const toggleOption = (option) => {
|
|
113
|
+
var _a;
|
|
114
|
+
if (!multiple) {
|
|
115
|
+
let changeValue;
|
|
116
|
+
changeValue = stateValue;
|
|
117
|
+
// 单选模式
|
|
118
|
+
if (changeValue === option.value) {
|
|
119
|
+
changeValue = undefined;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
changeValue = option.value;
|
|
123
|
+
}
|
|
124
|
+
setStateValue === null || setStateValue === void 0 ? void 0 : setStateValue(changeValue);
|
|
125
|
+
}
|
|
126
|
+
if (multiple) {
|
|
127
|
+
let changeValue = [];
|
|
128
|
+
const stateValues = stateValue;
|
|
129
|
+
const hasOption = stateValues === null || stateValues === void 0 ? void 0 : stateValues.includes(option.value);
|
|
130
|
+
changeValue = [...(stateValues || [])];
|
|
131
|
+
if (!hasOption) {
|
|
132
|
+
changeValue.push(option.value);
|
|
133
|
+
}
|
|
134
|
+
if (hasOption) {
|
|
135
|
+
changeValue = changeValue.filter((itemValue) => itemValue !== option.value);
|
|
136
|
+
}
|
|
137
|
+
const newOptions = getOptions();
|
|
138
|
+
const newValue = (_a = changeValue === null || changeValue === void 0 ? void 0 : changeValue.filter((val) => registerValueMap.current.has(val))) === null || _a === void 0 ? void 0 : _a.sort((a, b) => {
|
|
139
|
+
const indexA = newOptions.findIndex((opt) => opt.value === a);
|
|
140
|
+
const indexB = newOptions.findIndex((opt) => opt.value === b);
|
|
141
|
+
return indexA - indexB;
|
|
142
|
+
});
|
|
143
|
+
setStateValue(newValue);
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const children = (0, react_1.useMemo)(() => {
|
|
147
|
+
if (loading) {
|
|
148
|
+
return new Array(options.length || react_1.default.Children.toArray(props.children).length || 1)
|
|
149
|
+
.fill(0)
|
|
150
|
+
.map((_, index) => react_1.default.createElement(index_2.default, { key: index, loading: true }));
|
|
151
|
+
}
|
|
152
|
+
if (options && options.length > 0) {
|
|
153
|
+
const optionValue = stateValue;
|
|
154
|
+
return getOptions().map((option) => {
|
|
155
|
+
var _a;
|
|
156
|
+
return (react_1.default.createElement(index_2.default, { key: option.value.toString(), disabled: option.disabled, size: (_a = option.size) !== null && _a !== void 0 ? _a : props.size, value: option.value, checked: multiple
|
|
157
|
+
? optionValue === null || optionValue === void 0 ? void 0 : optionValue.includes(option.value)
|
|
158
|
+
: optionValue === option.value, onChange: option.onChange, title: option.title, avatar: option.avatar, description: option.description, cover: option.cover }));
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return props.children;
|
|
162
|
+
}, [getOptions, loading, multiple, options, props.children, props.size, stateValue]);
|
|
163
|
+
const classString = (0, classnames_1.default)(groupPrefixCls, className);
|
|
164
|
+
return (react_1.default.createElement(exports.CheckCardGroupConnext.Provider, { value: {
|
|
165
|
+
toggleOption,
|
|
166
|
+
bordered,
|
|
167
|
+
value: stateValue,
|
|
168
|
+
disabled: props.disabled,
|
|
169
|
+
size: props.size,
|
|
170
|
+
loading: props.loading,
|
|
171
|
+
multiple: props.multiple,
|
|
172
|
+
// https://github.com/ant-design/ant-design/issues/16376
|
|
173
|
+
registerValue,
|
|
174
|
+
cancelValue,
|
|
175
|
+
} },
|
|
176
|
+
react_1.default.createElement("div", Object.assign({ className: classString, style: style }, domProps), children)));
|
|
177
|
+
};
|
|
178
|
+
exports.default = CheckCardGroup;
|
|
179
|
+
//# sourceMappingURL=group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../src/check-card/group.tsx"],"names":[],"mappings":"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","sourcesContent":["import useMountMergeState from 'rc-util/lib/hooks/useMergedState'\nimport { Col, ConfigProvider, Row } from '../index'\n\nimport classNames from 'classnames'\nimport { omit } from 'lodash'\n\nimport React, { createContext, useCallback, useMemo, useRef } from 'react'\nimport CheckCard from './index'\n\nexport type CheckCardValueType = string | number | boolean\n\nexport type CheckGroupValueType = CheckCardValueType[] | CheckCardValueType | undefined\n\nexport interface CheckCardOptionType {\n /**\n * 标题展示\n *\n * @title 标题\n */\n title?: React.ReactNode\n /**\n * 选项值\n *\n * @title 值\n */\n value: CheckCardValueType\n /**\n * 描述展示\n *\n * @title 描述\n */\n description?: React.ReactNode\n /**\n * 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高\n *\n * @default default\n * @title 组件尺寸\n */\n size?: 'large' | 'default' | 'small'\n /**\n * 左侧头像展示,可以是一个链接也可以是是一个 ReactNode\n *\n * @title 左侧头像区域\n */\n avatar?: React.ReactNode\n /**\n * 图片封面默认,该模式下其他展示值被忽略\n *\n * @title 图片封面\n */\n cover?: React.ReactNode\n /**\n * 不可用\n *\n * @default false\n * @title 不可用\n */\n disabled?: boolean\n /** Change 回调 */\n onChange?: (checked: boolean) => void\n}\n\nexport interface AbstractCheckCardGroupProps {\n /** @ignore */\n prefixCls?: string\n /** @ignore */\n className?: string\n /** 指定可选项 */\n options?: (CheckCardOptionType | string)[]\n /** 整组失效 */\n disabled?: boolean\n /** @ignore */\n style?: React.CSSProperties\n /**\n * 组件尺寸,支持大,中,小三种默认尺寸,用户可以自定义宽高\n *\n * @default default\n */\n size?: 'large' | 'default' | 'small'\n\n /**\n * @acceptions CheckCard\n * @ignore\n */\n children?: React.ReactNode\n}\n\nexport const CardLoading: React.FC<{\n prefixCls: string\n}> = ({ prefixCls }) => {\n const loadingBlockClass = `${prefixCls}-loading-block`\n return (\n <div className={`${prefixCls}-loading-content`}>\n <Row\n gutter={{\n xs: 8,\n sm: 8,\n md: 8,\n lg: 12,\n }}\n >\n <Col span={22}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={8}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={14}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={6}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={16}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={13}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={9}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n <Row gutter={8}>\n <Col span={4}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={3}>\n <div className={loadingBlockClass} />\n </Col>\n <Col span={14}>\n <div className={loadingBlockClass} />\n </Col>\n </Row>\n </div>\n )\n}\n\nexport interface CheckCardGroupProps extends AbstractCheckCardGroupProps {\n /**\n * 是否多选\n *\n * @title 是否多选\n */\n multiple?: boolean\n /**\n * 默认选中的选项\n *\n * @title 默认选中的选项\n */\n defaultValue?: CheckGroupValueType\n /**\n * 指定选中的选项\n *\n * @title 指定选中的选项\n */\n value?: CheckGroupValueType\n /**\n * 当卡片组内容还在加载中时,可以用 loading 展示一个占位\n *\n * @title 加载中\n */\n loading?: boolean\n /**\n * 是否显示边框\n *\n * @title 显示边框\n */\n bordered?: boolean\n /** 变化时回调函数 */\n onChange?: (checkedValue: CheckGroupValueType) => void\n}\n\nexport interface CheckCardGroupState {\n value: CheckGroupValueType\n registeredValues: CheckCardValueType[]\n}\n\nexport interface CheckCardGroupConnextType {\n toggleOption?: (option: CheckCardOptionType) => void\n value?: any\n disabled?: boolean\n size?: 'default' | 'large' | 'small'\n loading?: boolean\n bordered?: boolean\n multiple?: boolean\n registerValue?: (value: any) => void\n cancelValue?: (value: any) => void\n}\n\nexport const CheckCardGroupConnext = createContext<CheckCardGroupConnextType | null>(null)\n\nconst CheckCardGroup: React.FC<CheckCardGroupProps> = (props) => {\n const {\n prefixCls: customizePrefixCls,\n className,\n style,\n options = [],\n loading = false,\n multiple = false,\n bordered = true,\n onChange,\n ...restProps\n } = props\n\n const getOptions = useCallback(() => {\n return (options as CheckCardOptionType[])?.map((option) => {\n if (typeof option === 'string') {\n return {\n title: option,\n value: option,\n } as CheckCardOptionType\n }\n return option\n })\n }, [options])\n\n const prefixCls = 'tntd-checkcard'\n const groupPrefixCls = `${prefixCls}-group`\n const domProps = omit(restProps, ['children', 'defaultValue', 'value', 'disabled', 'size'])\n\n const [stateValue, setStateValue] = useMountMergeState<\n CheckCardValueType[] | CheckCardValueType | undefined\n >(props.defaultValue, {\n value: props.value,\n onChange: props.onChange,\n })\n\n const registerValueMap = useRef<Map<CheckCardValueType, any>>(new Map())\n\n const registerValue = (value: string) => {\n registerValueMap.current?.set(value, true)\n }\n\n const cancelValue = (value: string) => {\n registerValueMap.current?.delete(value)\n }\n\n const toggleOption = (option: CheckCardOptionType) => {\n if (!multiple) {\n let changeValue\n\n changeValue = stateValue\n // 单选模式\n if (changeValue === option.value) {\n changeValue = undefined\n } else {\n changeValue = option.value\n }\n setStateValue?.(changeValue)\n }\n\n if (multiple) {\n let changeValue = []\n const stateValues = stateValue as CheckCardValueType[]\n const hasOption = stateValues?.includes(option.value)\n changeValue = [...(stateValues || [])]\n if (!hasOption) {\n changeValue.push(option.value)\n }\n if (hasOption) {\n changeValue = changeValue.filter((itemValue) => itemValue !== option.value)\n }\n const newOptions = getOptions()\n const newValue = changeValue\n ?.filter((val) => registerValueMap.current.has(val))\n ?.sort((a, b) => {\n const indexA = newOptions.findIndex((opt) => opt.value === a)\n const indexB = newOptions.findIndex((opt) => opt.value === b)\n return indexA - indexB\n })\n\n setStateValue(newValue)\n }\n }\n\n const children = useMemo((): React.ReactNode => {\n if (loading) {\n return new Array(options.length || React.Children.toArray(props.children).length || 1)\n .fill(0)\n .map((_, index) => <CheckCard key={index} loading />) as React.ReactNode[]\n }\n\n if (options && options.length > 0) {\n const optionValue = stateValue as CheckCardValueType[] | CheckCardValueType\n return getOptions().map((option) => (\n <CheckCard\n key={option.value.toString()}\n disabled={option.disabled}\n size={option.size ?? props.size}\n value={option.value}\n checked={\n multiple\n ? (optionValue as CheckCardValueType[])?.includes(option.value)\n : (optionValue as CheckCardValueType) === option.value\n }\n onChange={option.onChange}\n title={option.title}\n avatar={option.avatar}\n description={option.description}\n cover={option.cover}\n />\n )) as React.ReactNode[]\n }\n return props.children as React.ReactNode\n }, [getOptions, loading, multiple, options, props.children, props.size, stateValue])\n\n const classString = classNames(groupPrefixCls, className)\n\n return (\n <CheckCardGroupConnext.Provider\n value={{\n toggleOption,\n bordered,\n value: stateValue,\n disabled: props.disabled,\n size: props.size,\n loading: props.loading,\n multiple: props.multiple,\n // https://github.com/ant-design/ant-design/issues/16376\n registerValue,\n cancelValue,\n }}\n >\n <div className={classString} style={style} {...domProps}>\n {children}\n </div>\n </CheckCardGroupConnext.Provider>\n )\n}\n\nexport default CheckCardGroup\n"]}
|