tntd 2.6.7 → 2.7.0
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/_util/colors.js +3 -0
- package/es/_util/colors.js.map +1 -0
- package/es/_util/easings.js +9 -0
- package/es/_util/easings.js.map +1 -0
- package/es/_util/getDataOrAriaProps.js +8 -0
- package/es/_util/getDataOrAriaProps.js.map +1 -0
- package/es/_util/getScroll.js +14 -0
- package/es/_util/getScroll.js.map +1 -0
- package/es/_util/interopDefault.js +5 -0
- package/es/_util/interopDefault.js.map +1 -0
- package/es/_util/isNumeric.js +4 -0
- package/es/_util/isNumeric.js.map +1 -0
- package/es/_util/motion.js +22 -0
- package/es/_util/motion.js.map +1 -0
- package/es/_util/openAnimation.js +51 -0
- package/es/_util/openAnimation.js.map +1 -0
- package/es/_util/raf.js +25 -0
- package/es/_util/raf.js.map +1 -0
- package/es/_util/reactNode.js +6 -0
- package/es/_util/reactNode.js.map +1 -0
- package/es/_util/ref.js +15 -0
- package/es/_util/ref.js.map +1 -0
- package/es/_util/responsiveObserve.js +82 -0
- package/es/_util/responsiveObserve.js.map +1 -0
- package/es/_util/scrollTo.js +29 -0
- package/es/_util/scrollTo.js.map +1 -0
- package/es/_util/styleChecker.js +12 -0
- package/es/_util/styleChecker.js.map +1 -0
- package/es/_util/throttleByAnimationFrame.js +40 -0
- package/es/_util/throttleByAnimationFrame.js.map +1 -0
- package/es/_util/transButton.js +103 -0
- package/es/_util/transButton.js.map +1 -0
- package/es/_util/triggerEvent.js +8 -0
- package/es/_util/triggerEvent.js.map +1 -0
- package/es/_util/type.js +3 -0
- package/es/_util/type.js.map +1 -0
- package/es/_util/warning.js +5 -0
- package/es/_util/warning.js.map +1 -0
- package/es/_util/wave.js +228 -0
- package/es/_util/wave.js.map +1 -0
- package/es/affix/index.js +1 -2
- package/es/alert/index.js +1 -2
- package/es/anchor/index.js +1 -2
- package/es/array-input/icon.js +24 -6
- package/es/array-input/index.js +203 -119
- package/es/auth-context/index.js +1 -2
- package/es/auto-complete/index.js +1 -2
- package/es/avatar/index.js +1 -2
- package/es/back-top/index.js +1 -2
- package/es/badge/index.js +1 -2
- package/es/breadcrumb/index.js +1 -2
- package/es/button/index.js +1 -2
- package/es/calendar/index.js +1 -2
- package/es/card/index.js +1 -2
- package/es/carousel/index.js +1 -2
- package/es/cascader/index.js +6 -3
- package/es/cascader/index.js.map +1 -1
- package/es/checkbox/checkbox-group.js +5 -0
- package/es/checkbox/checkbox-group.js.map +1 -0
- package/es/checkbox/index.js +6 -2
- package/es/checkbox/index.js.map +1 -1
- package/es/col/index.js +1 -2
- package/es/collapse/index.js +1 -2
- package/es/color-picker/ColorPicker.js +126 -80
- package/es/color-picker/index.js +8 -5
- package/es/columns/index.js +66 -30
- package/es/columns/style/index.js +1 -2
- package/es/comment/index.js +1 -2
- package/es/config-provider/DisabledContext.js +12 -0
- package/es/config-provider/DisabledContext.js.map +1 -0
- package/es/config-provider/SizeContext.js +9 -0
- package/es/config-provider/SizeContext.js.map +1 -0
- package/es/config-provider/config-provider.js +1 -2
- package/es/config-provider/context.js +41 -0
- package/es/config-provider/context.js.map +1 -0
- package/es/config-provider/index.js +4 -0
- package/es/config-provider/index.js.map +1 -1
- package/es/connect/index.js +26 -0
- package/es/connect/index.js.map +1 -0
- package/es/date-picker/index.js +11 -1
- package/es/date-picker/index.js.map +1 -1
- package/es/input/input.js +37 -25
- package/es/input/input.js.map +1 -1
- package/es/input-number/index.js +3 -1
- package/es/input-number/index.js.map +1 -1
- package/es/preview-text/index.js +195 -0
- package/es/preview-text/index.js.map +1 -0
- package/es/preview-text/index.less +3 -0
- package/es/query-form/index.js.map +1 -1
- package/es/radio/index.js +3 -0
- package/es/radio/index.js.map +1 -1
- package/es/radio/radio-group.js +6 -0
- package/es/radio/radio-group.js.map +1 -0
- package/es/select/index.js.map +1 -1
- package/es/select/select.js +17 -5
- package/es/select/select.js.map +1 -1
- package/es/switch/index.js +2 -3
- package/es/switch/index.js.map +1 -1
- package/es/switch/switch.js +9 -0
- package/es/switch/switch.js.map +1 -0
- package/es/table/table.less +2 -0
- package/es/time-picker/index.js +3 -1
- package/es/time-picker/index.js.map +1 -1
- package/es/tntd-form/ErrorList.js +53 -0
- package/es/tntd-form/ErrorList.js.map +1 -0
- package/es/tntd-form/Form.js +101 -0
- package/es/tntd-form/Form.js.map +1 -0
- package/es/tntd-form/FormItem/ItemHolder.js +135 -0
- package/es/tntd-form/FormItem/ItemHolder.js.map +1 -0
- package/es/tntd-form/FormItem/index.js +238 -0
- package/es/tntd-form/FormItem/index.js.map +1 -0
- package/es/tntd-form/FormItemInput.js +38 -0
- package/es/tntd-form/FormItemInput.js.map +1 -0
- package/es/tntd-form/FormItemLabel.js +73 -0
- package/es/tntd-form/FormItemLabel.js.map +1 -0
- package/es/tntd-form/FormList.js +34 -0
- package/es/tntd-form/FormList.js.map +1 -0
- package/es/tntd-form/TntdForm/components/ItemComp.js +2 -2
- package/es/tntd-form/TntdForm/components/ItemComp.js.map +1 -1
- package/es/tntd-form/__tests__/demo-extend.test.js +3 -0
- package/es/tntd-form/__tests__/demo-extend.test.js.map +1 -0
- package/es/tntd-form/__tests__/demo.test.js +3 -0
- package/es/tntd-form/__tests__/demo.test.js.map +1 -0
- package/es/tntd-form/__tests__/image.test.js +5 -0
- package/es/tntd-form/__tests__/image.test.js.map +1 -0
- package/es/tntd-form/__tests__/index.test.js +957 -0
- package/es/tntd-form/__tests__/index.test.js.map +1 -0
- package/es/tntd-form/__tests__/list-noStyle.test.js +41 -0
- package/es/tntd-form/__tests__/list-noStyle.test.js.map +1 -0
- package/es/tntd-form/__tests__/list.test.js +164 -0
- package/es/tntd-form/__tests__/list.test.js.map +1 -0
- package/es/tntd-form/__tests__/ref.test.js +45 -0
- package/es/tntd-form/__tests__/ref.test.js.map +1 -0
- package/es/tntd-form/__tests__/type.test.js +74 -0
- package/es/tntd-form/__tests__/type.test.js.map +1 -0
- package/es/tntd-form/_util/motion.js +38 -0
- package/es/tntd-form/_util/motion.js.map +1 -0
- package/es/tntd-form/_util/reactNode.js +15 -0
- package/es/tntd-form/_util/reactNode.js.map +1 -0
- package/es/tntd-form/_util/scrollTo.js +35 -0
- package/es/tntd-form/_util/scrollTo.js.map +1 -0
- package/es/tntd-form/_util/type.js +4 -0
- package/es/tntd-form/_util/type.js.map +1 -0
- package/es/tntd-form/_util/warning.js +6 -0
- package/es/tntd-form/_util/warning.js.map +1 -0
- package/es/tntd-form/_util/wave.js +168 -0
- package/es/tntd-form/_util/wave.js.map +1 -0
- package/es/tntd-form/context.js +35 -0
- package/es/tntd-form/context.js.map +1 -0
- package/es/tntd-form/hooks/useDebounce.js +14 -0
- package/es/tntd-form/hooks/useDebounce.js.map +1 -0
- package/es/tntd-form/hooks/useForm.js +35 -0
- package/es/tntd-form/hooks/useForm.js.map +1 -0
- package/es/tntd-form/hooks/useFormInstance.js +7 -0
- package/es/tntd-form/hooks/useFormInstance.js.map +1 -0
- package/es/tntd-form/hooks/useFormItemStatus.js +10 -0
- package/es/tntd-form/hooks/useFormItemStatus.js.map +1 -0
- package/es/tntd-form/hooks/useFrameState.js +38 -0
- package/es/tntd-form/hooks/useFrameState.js.map +1 -0
- package/es/tntd-form/hooks/useItemRef.js +19 -0
- package/es/tntd-form/hooks/useItemRef.js.map +1 -0
- package/es/tntd-form/index.js +17 -1
- package/es/tntd-form/index.js.map +1 -1
- package/es/tntd-form/interface.js +3 -0
- package/es/tntd-form/interface.js.map +1 -0
- package/es/tntd-form/style/components.less +16 -0
- package/es/tntd-form/style/horizontal.less +26 -0
- package/es/tntd-form/style/index.js +6 -0
- package/es/tntd-form/style/index.js.map +1 -0
- package/es/tntd-form/style/index.less +342 -0
- package/es/tntd-form/style/inline.less +40 -0
- package/es/tntd-form/style/mixin.less +90 -0
- package/es/tntd-form/style/rtl.less +204 -0
- package/es/tntd-form/style/status.less +45 -0
- package/es/tntd-form/style/vertical.less +95 -0
- package/es/tntd-form/tntd-form.stories.js +426 -0
- package/es/tntd-form/tntd-form.stories.js.map +1 -0
- package/es/tntd-form/util.js +21 -0
- package/es/tntd-form/util.js.map +1 -0
- package/es/tntd-form/validateMessagesContext.js +6 -0
- package/es/tntd-form/validateMessagesContext.js.map +1 -0
- package/es/tree-select/index.js +4 -1
- package/es/tree-select/index.js.map +1 -1
- package/es/upload/index.js +6 -1
- package/es/upload/index.js.map +1 -1
- package/lib/_util/colors.d.ts +3 -0
- package/lib/_util/colors.d.ts.map +1 -0
- package/lib/_util/colors.js +7 -0
- package/lib/_util/colors.js.map +1 -0
- package/lib/_util/easings.d.ts +2 -0
- package/lib/_util/easings.d.ts.map +1 -0
- package/lib/_util/easings.js +14 -0
- package/lib/_util/easings.js.map +1 -0
- package/lib/_util/getDataOrAriaProps.d.ts +2 -0
- package/lib/_util/getDataOrAriaProps.d.ts.map +1 -0
- package/lib/_util/getDataOrAriaProps.js +13 -0
- package/lib/_util/getDataOrAriaProps.js.map +1 -0
- package/lib/_util/getScroll.d.ts +2 -0
- package/lib/_util/getScroll.d.ts.map +1 -0
- package/lib/_util/getScroll.js +18 -0
- package/lib/_util/getScroll.js.map +1 -0
- package/lib/_util/interopDefault.d.ts +2 -0
- package/lib/_util/interopDefault.d.ts.map +1 -0
- package/lib/_util/interopDefault.js +9 -0
- package/lib/_util/interopDefault.js.map +1 -0
- package/lib/_util/isNumeric.d.ts +3 -0
- package/lib/_util/isNumeric.d.ts.map +1 -0
- package/lib/_util/isNumeric.js +7 -0
- package/lib/_util/isNumeric.js.map +1 -0
- package/lib/_util/motion.d.ts +24 -0
- package/lib/_util/motion.d.ts.map +1 -0
- package/lib/_util/motion.js +17 -0
- package/lib/_util/motion.js.map +1 -0
- package/lib/_util/openAnimation.d.ts +7 -0
- package/lib/_util/openAnimation.d.ts.map +1 -0
- package/lib/_util/openAnimation.js +58 -0
- package/lib/_util/openAnimation.js.map +1 -0
- package/lib/_util/raf.d.ts +10 -0
- package/lib/_util/raf.d.ts.map +1 -0
- package/lib/_util/raf.js +34 -0
- package/lib/_util/raf.js.map +1 -0
- package/lib/_util/reactNode.d.ts +3 -0
- package/lib/_util/reactNode.d.ts.map +1 -0
- package/lib/_util/reactNode.js +31 -0
- package/lib/_util/reactNode.js.map +1 -0
- package/lib/_util/ref.d.ts +4 -0
- package/lib/_util/ref.d.ts.map +1 -0
- package/lib/_util/ref.js +22 -0
- package/lib/_util/ref.js.map +1 -0
- package/lib/_util/responsiveObserve.d.ts +14 -0
- package/lib/_util/responsiveObserve.d.ts.map +1 -0
- package/lib/_util/responsiveObserve.js +83 -0
- package/lib/_util/responsiveObserve.js.map +1 -0
- package/lib/_util/scrollTo.d.ts +11 -0
- package/lib/_util/scrollTo.d.ts.map +1 -0
- package/lib/_util/scrollTo.js +34 -0
- package/lib/_util/scrollTo.js.map +1 -0
- package/lib/_util/styleChecker.d.ts +4 -0
- package/lib/_util/styleChecker.d.ts.map +1 -0
- package/lib/_util/styleChecker.js +14 -0
- package/lib/_util/styleChecker.js.map +1 -0
- package/lib/_util/throttleByAnimationFrame.d.ts +6 -0
- package/lib/_util/throttleByAnimationFrame.d.ts.map +1 -0
- package/lib/_util/throttleByAnimationFrame.js +49 -0
- package/lib/_util/throttleByAnimationFrame.js.map +1 -0
- package/lib/_util/transButton.d.ts +21 -0
- package/lib/_util/transButton.d.ts.map +1 -0
- package/lib/_util/transButton.js +112 -0
- package/lib/_util/transButton.js.map +1 -0
- package/lib/_util/triggerEvent.d.ts +2 -0
- package/lib/_util/triggerEvent.d.ts.map +1 -0
- package/lib/_util/triggerEvent.js +12 -0
- package/lib/_util/triggerEvent.js.map +1 -0
- package/lib/_util/type.d.ts +4 -0
- package/lib/_util/type.d.ts.map +1 -0
- package/lib/_util/type.js +9 -0
- package/lib/_util/type.js.map +1 -0
- package/lib/_util/warning.d.ts +5 -0
- package/lib/_util/warning.d.ts.map +1 -0
- package/lib/_util/warning.js +28 -0
- package/lib/_util/warning.js.map +1 -0
- package/lib/_util/wave.d.ts +26 -0
- package/lib/_util/wave.d.ts.map +1 -0
- package/lib/_util/wave.js +249 -0
- package/lib/_util/wave.js.map +1 -0
- package/lib/affix/index.js +5 -1
- package/lib/affix/index.js.map +1 -1
- package/lib/alert/index.js +5 -1
- package/lib/alert/index.js.map +1 -1
- package/lib/anchor/index.js +5 -1
- package/lib/anchor/index.js.map +1 -1
- package/lib/array-input/index.js +5 -1
- package/lib/array-input/index.js.map +1 -1
- package/lib/auto-complete/index.js +5 -1
- package/lib/auto-complete/index.js.map +1 -1
- package/lib/avatar/index.js +5 -1
- package/lib/avatar/index.js.map +1 -1
- package/lib/back-top/index.js +5 -1
- package/lib/back-top/index.js.map +1 -1
- package/lib/badge/index.js +5 -1
- package/lib/badge/index.js.map +1 -1
- package/lib/breadcrumb/index.js +5 -1
- package/lib/breadcrumb/index.js.map +1 -1
- package/lib/button/index.js +5 -1
- package/lib/button/index.js.map +1 -1
- package/lib/calendar/index.js +5 -1
- package/lib/calendar/index.js.map +1 -1
- package/lib/card/index.js +5 -1
- package/lib/card/index.js.map +1 -1
- package/lib/carousel/index.js +5 -1
- package/lib/carousel/index.js.map +1 -1
- package/lib/cascader/index.d.ts +6 -1
- package/lib/cascader/index.d.ts.map +1 -1
- package/lib/cascader/index.js +11 -2
- package/lib/cascader/index.js.map +1 -1
- package/lib/checkbox/checkbox-group.d.ts +8 -0
- package/lib/checkbox/checkbox-group.d.ts.map +1 -0
- package/lib/checkbox/checkbox-group.js +11 -0
- package/lib/checkbox/checkbox-group.js.map +1 -0
- package/lib/checkbox/index.d.ts +1 -0
- package/lib/checkbox/index.d.ts.map +1 -1
- package/lib/checkbox/index.js +10 -1
- package/lib/checkbox/index.js.map +1 -1
- package/lib/col/index.js +5 -1
- package/lib/col/index.js.map +1 -1
- package/lib/collapse/index.js +5 -1
- package/lib/collapse/index.js.map +1 -1
- package/lib/color-picker/ColorPicker.js +5 -1
- package/lib/color-picker/ColorPicker.js.map +1 -1
- package/lib/comment/index.js +5 -1
- package/lib/comment/index.js.map +1 -1
- package/lib/config-provider/DisabledContext.d.ts +10 -0
- package/lib/config-provider/DisabledContext.d.ts.map +1 -0
- package/lib/config-provider/DisabledContext.js +35 -0
- package/lib/config-provider/DisabledContext.js.map +1 -0
- package/lib/config-provider/SizeContext.d.ts +10 -0
- package/lib/config-provider/SizeContext.d.ts.map +1 -0
- package/lib/config-provider/SizeContext.js +32 -0
- package/lib/config-provider/SizeContext.js.map +1 -0
- package/lib/config-provider/context.d.ts +61 -0
- package/lib/config-provider/context.d.ts.map +1 -0
- package/lib/config-provider/context.js +64 -0
- package/lib/config-provider/context.js.map +1 -0
- package/lib/config-provider/index.d.ts +1 -0
- package/lib/config-provider/index.d.ts.map +1 -1
- package/lib/config-provider/index.js +9 -1
- package/lib/config-provider/index.js.map +1 -1
- package/lib/connect/index.d.ts +12 -0
- package/lib/connect/index.d.ts.map +1 -0
- package/lib/connect/index.js +32 -0
- package/lib/connect/index.js.map +1 -0
- package/lib/date-picker/index.d.ts +6 -1
- package/lib/date-picker/index.d.ts.map +1 -1
- package/lib/date-picker/index.js +17 -2
- package/lib/date-picker/index.js.map +1 -1
- package/lib/descriptions/descriptions.d.ts +1 -1
- package/lib/descriptions/descriptions.d.ts.map +1 -1
- package/lib/descriptions/descriptions.js +5 -1
- package/lib/descriptions/descriptions.js.map +1 -1
- package/lib/descriptions/index.js +5 -1
- package/lib/descriptions/index.js.map +1 -1
- package/lib/development-login/LoginModal.js +5 -1
- package/lib/development-login/LoginModal.js.map +1 -1
- package/lib/development-login/index.js +5 -1
- package/lib/development-login/index.js.map +1 -1
- package/lib/divider/index.js +5 -1
- package/lib/divider/index.js.map +1 -1
- package/lib/drawer/index.js +5 -1
- package/lib/drawer/index.js.map +1 -1
- package/lib/dropdown/index.js +5 -1
- package/lib/dropdown/index.js.map +1 -1
- package/lib/ellipsis/index.js +5 -1
- package/lib/ellipsis/index.js.map +1 -1
- package/lib/empty/empty.js +5 -1
- package/lib/empty/empty.js.map +1 -1
- package/lib/empty/index.js +5 -1
- package/lib/empty/index.js.map +1 -1
- package/lib/exception/index.js +5 -1
- package/lib/exception/index.js.map +1 -1
- package/lib/form/index.js +5 -1
- package/lib/form/index.js.map +1 -1
- package/lib/handle/index.js +5 -1
- package/lib/handle/index.js.map +1 -1
- package/lib/icon/index.js +5 -1
- package/lib/icon/index.js.map +1 -1
- package/lib/img/index.js +5 -1
- package/lib/img/index.js.map +1 -1
- package/lib/input/index.js +5 -1
- package/lib/input/index.js.map +1 -1
- package/lib/input/input.d.ts +22 -8
- package/lib/input/input.d.ts.map +1 -1
- package/lib/input/input.js +61 -27
- package/lib/input/input.js.map +1 -1
- package/lib/input-number/index.d.ts +7 -2
- package/lib/input-number/index.d.ts.map +1 -1
- package/lib/input-number/index.js +8 -2
- package/lib/input-number/index.js.map +1 -1
- package/lib/label/index.js +5 -1
- package/lib/label/index.js.map +1 -1
- package/lib/layout/index.js +5 -1
- package/lib/layout/index.js.map +1 -1
- package/lib/list/index.js +5 -1
- package/lib/list/index.js.map +1 -1
- package/lib/loading-button/index.js +5 -1
- package/lib/loading-button/index.js.map +1 -1
- package/lib/locale/index.js +5 -1
- package/lib/locale/index.js.map +1 -1
- package/lib/locale-provider/index.js +5 -1
- package/lib/locale-provider/index.js.map +1 -1
- package/lib/mentions/index.js +5 -1
- package/lib/mentions/index.js.map +1 -1
- package/lib/menu/index.js +5 -1
- package/lib/menu/index.js.map +1 -1
- package/lib/message/index.js +5 -1
- package/lib/message/index.js.map +1 -1
- package/lib/modal/index.js +5 -1
- package/lib/modal/index.js.map +1 -1
- package/lib/modal/modal.js +5 -1
- package/lib/modal/modal.js.map +1 -1
- package/lib/notification/index.js +5 -1
- package/lib/notification/index.js.map +1 -1
- package/lib/page-header/index.js +5 -1
- package/lib/page-header/index.js.map +1 -1
- package/lib/pagination/index.js +5 -1
- package/lib/pagination/index.js.map +1 -1
- package/lib/popconfirm/index.js +5 -1
- package/lib/popconfirm/index.js.map +1 -1
- package/lib/popover/index.js +5 -1
- package/lib/popover/index.js.map +1 -1
- package/lib/preview-text/index.d.ts +20 -0
- package/lib/preview-text/index.d.ts.map +1 -0
- package/lib/preview-text/index.js +224 -0
- package/lib/preview-text/index.js.map +1 -0
- package/lib/preview-text/index.less +3 -0
- package/lib/progress/index.js +5 -1
- package/lib/progress/index.js.map +1 -1
- package/lib/query-form/Field/Select.js +5 -1
- package/lib/query-form/Field/Select.js.map +1 -1
- package/lib/query-form/Field/SelectInput.js +5 -1
- package/lib/query-form/Field/SelectInput.js.map +1 -1
- package/lib/query-form/Field/fieldsMap.d.ts +2 -2
- package/lib/query-form/Field/index.d.ts +6 -0
- package/lib/query-form/Field/index.d.ts.map +1 -1
- package/lib/query-form/Field/index.js +5 -1
- package/lib/query-form/Field/index.js.map +1 -1
- package/lib/query-form/index.d.ts +9 -0
- package/lib/query-form/index.d.ts.map +1 -1
- package/lib/query-form/index.js +5 -1
- package/lib/query-form/index.js.map +1 -1
- package/lib/query-list-scene/List.d.ts +13 -0
- package/lib/query-list-scene/List.d.ts.map +1 -1
- package/lib/query-list-scene/List.js +5 -1
- package/lib/query-list-scene/List.js.map +1 -1
- package/lib/query-list-scene/QueryForm.d.ts +3 -0
- package/lib/query-list-scene/QueryForm.d.ts.map +1 -1
- package/lib/query-list-scene/QueryListScene.d.ts +1 -0
- package/lib/query-list-scene/QueryListScene.d.ts.map +1 -1
- package/lib/radio/index.d.ts.map +1 -1
- package/lib/radio/index.js +8 -1
- package/lib/radio/index.js.map +1 -1
- package/lib/radio/radio-group.d.ts +8 -0
- package/lib/radio/radio-group.d.ts.map +1 -0
- package/lib/radio/radio-group.js +11 -0
- package/lib/radio/radio-group.js.map +1 -0
- package/lib/rate/index.js +5 -1
- package/lib/rate/index.js.map +1 -1
- package/lib/result/index.js +5 -1
- package/lib/result/index.js.map +1 -1
- package/lib/row/index.js +5 -1
- package/lib/row/index.js.map +1 -1
- package/lib/select/index.d.ts +2 -1
- package/lib/select/index.d.ts.map +1 -1
- package/lib/select/index.js +5 -1
- package/lib/select/index.js.map +1 -1
- package/lib/select/select.d.ts +20 -6
- package/lib/select/select.d.ts.map +1 -1
- package/lib/select/select.js +41 -7
- package/lib/select/select.js.map +1 -1
- package/lib/skeleton/index.js +5 -1
- package/lib/skeleton/index.js.map +1 -1
- package/lib/slider/index.js +5 -1
- package/lib/slider/index.js.map +1 -1
- package/lib/spin/index.js +5 -1
- package/lib/spin/index.js.map +1 -1
- package/lib/statistic/index.js +5 -1
- package/lib/statistic/index.js.map +1 -1
- package/lib/steps/index.js +5 -1
- package/lib/steps/index.js.map +1 -1
- package/lib/steps/steps.js +5 -1
- package/lib/steps/steps.js.map +1 -1
- package/lib/svg-components/illustration-403.d.ts +1 -1
- package/lib/svg-components/illustration-403.js +5 -1
- package/lib/svg-components/illustration-403.js.map +1 -1
- package/lib/svg-components/illustration-404.d.ts +1 -1
- package/lib/svg-components/illustration-404.js +5 -1
- package/lib/svg-components/illustration-404.js.map +1 -1
- package/lib/svg-components/illustration-500.d.ts +1 -1
- package/lib/svg-components/illustration-500.js +5 -1
- package/lib/svg-components/illustration-500.js.map +1 -1
- package/lib/svg-components/illustration-empty.d.ts +1 -1
- package/lib/svg-components/illustration-empty.js +5 -1
- package/lib/svg-components/illustration-empty.js.map +1 -1
- package/lib/svg-components/illustration-failure.d.ts +1 -1
- package/lib/svg-components/illustration-failure.js +5 -1
- package/lib/svg-components/illustration-failure.js.map +1 -1
- package/lib/svg-components/illustration-no-access.d.ts +1 -1
- package/lib/svg-components/illustration-no-access.js +5 -1
- package/lib/svg-components/illustration-no-access.js.map +1 -1
- package/lib/svg-components/illustration-no-chart.d.ts +1 -1
- package/lib/svg-components/illustration-no-chart.js +5 -1
- package/lib/svg-components/illustration-no-chart.js.map +1 -1
- package/lib/svg-components/illustration-no-result.d.ts +1 -1
- package/lib/svg-components/illustration-no-result.js +5 -1
- package/lib/svg-components/illustration-no-result.js.map +1 -1
- package/lib/svg-components/illustration-offline.d.ts +1 -1
- package/lib/svg-components/illustration-offline.js +5 -1
- package/lib/svg-components/illustration-offline.js.map +1 -1
- package/lib/svg-components/illustration-success.d.ts +1 -1
- package/lib/svg-components/illustration-success.js +5 -1
- package/lib/svg-components/illustration-success.js.map +1 -1
- package/lib/switch/index.d.ts +2 -3
- package/lib/switch/index.d.ts.map +1 -1
- package/lib/switch/index.js +7 -4
- package/lib/switch/index.js.map +1 -1
- package/lib/switch/switch.d.ts +10 -0
- package/lib/switch/switch.d.ts.map +1 -0
- package/lib/switch/switch.js +29 -0
- package/lib/switch/switch.js.map +1 -0
- package/lib/table/assets/image-loading-background.d.ts +1 -1
- package/lib/table/assets/image-loading-background.js +5 -1
- package/lib/table/assets/image-loading-background.js.map +1 -1
- package/lib/table/assets/image-loading.d.ts +1 -1
- package/lib/table/assets/image-loading.js +5 -1
- package/lib/table/assets/image-loading.js.map +1 -1
- package/lib/table/hooks/index.js +5 -1
- package/lib/table/hooks/index.js.map +1 -1
- package/lib/table/index.js +5 -1
- package/lib/table/index.js.map +1 -1
- package/lib/table/table.js +5 -1
- package/lib/table/table.js.map +1 -1
- package/lib/table/table.less +2 -0
- package/lib/tabs/index.js +5 -1
- package/lib/tabs/index.js.map +1 -1
- package/lib/tag/index.js +5 -1
- package/lib/tag/index.js.map +1 -1
- package/lib/time-picker/index.d.ts +7 -2
- package/lib/time-picker/index.d.ts.map +1 -1
- package/lib/time-picker/index.js +8 -2
- package/lib/time-picker/index.js.map +1 -1
- package/lib/timeline/index.js +5 -1
- package/lib/timeline/index.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js +5 -1
- package/lib/tntd-cascader/AntdCascader/component/DisabledContext.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js +5 -1
- package/lib/tntd-cascader/AntdCascader/component/FormItemInputContext.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/SizeContext.js +5 -1
- package/lib/tntd-cascader/AntdCascader/component/SizeContext.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js +5 -1
- package/lib/tntd-cascader/AntdCascader/component/defaultRenderEmpty.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/getIcons.js +5 -1
- package/lib/tntd-cascader/AntdCascader/component/getIcons.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js +5 -1
- package/lib/tntd-cascader/AntdCascader/component/useCompactItemContext.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/config/utils.d.ts +1 -1
- package/lib/tntd-cascader/AntdCascader/config/warning.js +5 -1
- package/lib/tntd-cascader/AntdCascader/config/warning.js.map +1 -1
- package/lib/tntd-cascader/AntdCascader/index.js +5 -1
- package/lib/tntd-cascader/AntdCascader/index.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/Cascader.js +5 -1
- package/lib/tntd-cascader/rc-cascader/Cascader.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js +5 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/Checkbox.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.js +5 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/Column.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/index.js +5 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/index.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js +5 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/useActive.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js +5 -1
- package/lib/tntd-cascader/rc-cascader/OptionList/useKeyboard.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/context.js +5 -1
- package/lib/tntd-cascader/rc-cascader/context.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js +5 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useDisplayValues.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js +5 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useEntities.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js +5 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useMissingValues.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js +5 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useRefFunc.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js +5 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchConfig.js.map +1 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js +5 -1
- package/lib/tntd-cascader/rc-cascader/hooks/useSearchOptions.js.map +1 -1
- package/lib/tntd-form/ErrorList.d.ts +13 -0
- package/lib/tntd-form/ErrorList.d.ts.map +1 -0
- package/lib/tntd-form/ErrorList.js +82 -0
- package/lib/tntd-form/ErrorList.js.map +1 -0
- package/lib/tntd-form/Form.d.ts +36 -0
- package/lib/tntd-form/Form.d.ts.map +1 -0
- package/lib/tntd-form/Form.js +132 -0
- package/lib/tntd-form/Form.js.map +1 -0
- package/lib/tntd-form/FormItem/ItemHolder.d.ts +18 -0
- package/lib/tntd-form/FormItem/ItemHolder.d.ts.map +1 -0
- package/lib/tntd-form/FormItem/ItemHolder.js +164 -0
- package/lib/tntd-form/FormItem/ItemHolder.js.map +1 -0
- package/lib/tntd-form/FormItem/index.d.ts +36 -0
- package/lib/tntd-form/FormItem/index.d.ts.map +1 -0
- package/lib/tntd-form/FormItem/index.js +266 -0
- package/lib/tntd-form/FormItem/index.js.map +1 -0
- package/lib/tntd-form/FormItemInput.d.ts +30 -0
- package/lib/tntd-form/FormItemInput.d.ts.map +1 -0
- package/lib/tntd-form/FormItemInput.js +66 -0
- package/lib/tntd-form/FormItemInput.js.map +1 -0
- package/lib/tntd-form/FormItemLabel.d.ts +24 -0
- package/lib/tntd-form/FormItemLabel.d.ts.map +1 -0
- package/lib/tntd-form/FormItemLabel.js +101 -0
- package/lib/tntd-form/FormItemLabel.js.map +1 -0
- package/lib/tntd-form/FormList.d.ts +26 -0
- package/lib/tntd-form/FormList.d.ts.map +1 -0
- package/lib/tntd-form/FormList.js +62 -0
- package/lib/tntd-form/FormList.js.map +1 -0
- package/lib/tntd-form/TntdForm/components/Item.js +5 -1
- package/lib/tntd-form/TntdForm/components/Item.js.map +1 -1
- package/lib/tntd-form/TntdForm/components/ItemComp.js +7 -3
- package/lib/tntd-form/TntdForm/components/ItemComp.js.map +1 -1
- package/lib/tntd-form/TntdForm/components/List.js +5 -1
- package/lib/tntd-form/TntdForm/components/List.js.map +1 -1
- package/lib/tntd-form/TntdForm/index.js +5 -1
- package/lib/tntd-form/TntdForm/index.js.map +1 -1
- package/lib/tntd-form/__tests__/demo-extend.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/demo-extend.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/demo-extend.test.js +5 -0
- package/lib/tntd-form/__tests__/demo-extend.test.js.map +1 -0
- package/lib/tntd-form/__tests__/demo.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/demo.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/demo.test.js +8 -0
- package/lib/tntd-form/__tests__/demo.test.js.map +1 -0
- package/lib/tntd-form/__tests__/image.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/image.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/image.test.js +7 -0
- package/lib/tntd-form/__tests__/image.test.js.map +1 -0
- package/lib/tntd-form/__tests__/index.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/index.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/index.test.js +981 -0
- package/lib/tntd-form/__tests__/index.test.js.map +1 -0
- package/lib/tntd-form/__tests__/list-noStyle.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/list-noStyle.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/list-noStyle.test.js +46 -0
- package/lib/tntd-form/__tests__/list-noStyle.test.js.map +1 -0
- package/lib/tntd-form/__tests__/list.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/list.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/list.test.js +169 -0
- package/lib/tntd-form/__tests__/list.test.js.map +1 -0
- package/lib/tntd-form/__tests__/ref.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/ref.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/ref.test.js +50 -0
- package/lib/tntd-form/__tests__/ref.test.js.map +1 -0
- package/lib/tntd-form/__tests__/type.test.d.ts +2 -0
- package/lib/tntd-form/__tests__/type.test.d.ts.map +1 -0
- package/lib/tntd-form/__tests__/type.test.js +98 -0
- package/lib/tntd-form/__tests__/type.test.js.map +1 -0
- package/lib/tntd-form/_util/motion.d.ts +9 -0
- package/lib/tntd-form/_util/motion.d.ts.map +1 -0
- package/lib/tntd-form/_util/motion.js +42 -0
- package/lib/tntd-form/_util/motion.js.map +1 -0
- package/lib/tntd-form/_util/reactNode.d.ts +9 -0
- package/lib/tntd-form/_util/reactNode.d.ts.map +1 -0
- package/lib/tntd-form/_util/reactNode.js +44 -0
- package/lib/tntd-form/_util/reactNode.js.map +1 -0
- package/lib/tntd-form/_util/scrollTo.d.ts +1 -0
- package/lib/tntd-form/_util/scrollTo.d.ts.map +1 -0
- package/lib/tntd-form/_util/scrollTo.js +35 -0
- package/lib/tntd-form/_util/scrollTo.js.map +1 -0
- package/lib/tntd-form/_util/type.d.ts +4 -0
- package/lib/tntd-form/_util/type.d.ts.map +1 -0
- package/lib/tntd-form/_util/type.js +9 -0
- package/lib/tntd-form/_util/type.js.map +1 -0
- package/lib/tntd-form/_util/warning.d.ts +5 -0
- package/lib/tntd-form/_util/warning.d.ts.map +1 -0
- package/lib/tntd-form/_util/warning.js +32 -0
- package/lib/tntd-form/_util/warning.js.map +1 -0
- package/lib/tntd-form/_util/wave.d.ts +1 -0
- package/lib/tntd-form/_util/wave.d.ts.map +1 -0
- package/lib/tntd-form/_util/wave.js +168 -0
- package/lib/tntd-form/_util/wave.js.map +1 -0
- package/lib/tntd-form/context.d.ts +51 -0
- package/lib/tntd-form/context.d.ts.map +1 -0
- package/lib/tntd-form/context.js +66 -0
- package/lib/tntd-form/context.js.map +1 -0
- package/lib/tntd-form/hooks/useDebounce.d.ts +2 -0
- package/lib/tntd-form/hooks/useDebounce.d.ts.map +1 -0
- package/lib/tntd-form/hooks/useDebounce.js +40 -0
- package/lib/tntd-form/hooks/useDebounce.js.map +1 -0
- package/lib/tntd-form/hooks/useForm.d.ts +16 -0
- package/lib/tntd-form/hooks/useForm.d.ts.map +1 -0
- package/lib/tntd-form/hooks/useForm.js +64 -0
- package/lib/tntd-form/hooks/useForm.js.map +1 -0
- package/lib/tntd-form/hooks/useFormInstance.d.ts +3 -0
- package/lib/tntd-form/hooks/useFormInstance.d.ts.map +1 -0
- package/lib/tntd-form/hooks/useFormInstance.js +10 -0
- package/lib/tntd-form/hooks/useFormInstance.js.map +1 -0
- package/lib/tntd-form/hooks/useFormItemStatus.d.ts +7 -0
- package/lib/tntd-form/hooks/useFormItemStatus.d.ts.map +1 -0
- package/lib/tntd-form/hooks/useFormItemStatus.js +15 -0
- package/lib/tntd-form/hooks/useFormItemStatus.js.map +1 -0
- package/lib/tntd-form/hooks/useFrameState.d.ts +4 -0
- package/lib/tntd-form/hooks/useFrameState.d.ts.map +1 -0
- package/lib/tntd-form/hooks/useFrameState.js +67 -0
- package/lib/tntd-form/hooks/useFrameState.js.map +1 -0
- package/lib/tntd-form/hooks/useItemRef.d.ts +4 -0
- package/lib/tntd-form/hooks/useItemRef.d.ts.map +1 -0
- package/lib/tntd-form/hooks/useItemRef.js +45 -0
- package/lib/tntd-form/hooks/useItemRef.js.map +1 -0
- package/lib/tntd-form/index.d.ts +23 -1
- package/lib/tntd-form/index.d.ts.map +1 -1
- package/lib/tntd-form/index.js +40 -3
- package/lib/tntd-form/index.js.map +1 -1
- package/lib/tntd-form/interface.d.ts +4 -0
- package/lib/tntd-form/interface.d.ts.map +1 -0
- package/lib/tntd-form/interface.js +5 -0
- package/lib/tntd-form/interface.js.map +1 -0
- package/lib/tntd-form/style/components.less +16 -0
- package/lib/tntd-form/style/horizontal.less +26 -0
- package/lib/tntd-form/style/index.d.ts +5 -0
- package/lib/tntd-form/style/index.d.ts.map +1 -0
- package/lib/tntd-form/style/index.js +8 -0
- package/lib/tntd-form/style/index.js.map +1 -0
- package/lib/tntd-form/style/index.less +342 -0
- package/lib/tntd-form/style/inline.less +40 -0
- package/lib/tntd-form/style/mixin.less +90 -0
- package/lib/tntd-form/style/rtl.less +204 -0
- package/lib/tntd-form/style/status.less +45 -0
- package/lib/tntd-form/style/vertical.less +95 -0
- package/lib/tntd-form/tntd-form.stories.d.ts +33 -0
- package/lib/tntd-form/tntd-form.stories.d.ts.map +1 -0
- package/lib/tntd-form/tntd-form.stories.js +455 -0
- package/lib/tntd-form/tntd-form.stories.js.map +1 -0
- package/lib/tntd-form/util.d.ts +4 -0
- package/lib/tntd-form/util.d.ts.map +1 -0
- package/lib/tntd-form/util.js +26 -0
- package/lib/tntd-form/util.js.map +1 -0
- package/lib/tntd-form/validateMessagesContext.d.ts +5 -0
- package/lib/tntd-form/validateMessagesContext.d.ts.map +1 -0
- package/lib/tntd-form/validateMessagesContext.js +8 -0
- package/lib/tntd-form/validateMessagesContext.js.map +1 -0
- package/lib/tntd-layout/AppList.js +5 -1
- package/lib/tntd-layout/AppList.js.map +1 -1
- package/lib/tntd-layout/Application.js +5 -1
- package/lib/tntd-layout/Application.js.map +1 -1
- package/lib/tntd-layout/Avatar.js +5 -1
- package/lib/tntd-layout/Avatar.js.map +1 -1
- package/lib/tntd-layout/CompatibleLanguage.js +5 -1
- package/lib/tntd-layout/CompatibleLanguage.js.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Avatar.js +5 -1
- package/lib/tntd-layout/EnterpriseLayout/Avatar.js.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Language.js +5 -1
- package/lib/tntd-layout/EnterpriseLayout/Language.js.map +1 -1
- package/lib/tntd-layout/EnterpriseLayout/Theme.js +5 -1
- package/lib/tntd-layout/EnterpriseLayout/Theme.js.map +1 -1
- package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js +5 -1
- package/lib/tntd-layout/GlobalNavigation/NavigationPopup.js.map +1 -1
- package/lib/tntd-layout/GlobalNavigation/index.js +5 -1
- package/lib/tntd-layout/GlobalNavigation/index.js.map +1 -1
- package/lib/tntd-layout/Header.js +5 -1
- package/lib/tntd-layout/Header.js.map +1 -1
- package/lib/tntd-layout/HeaderActions.js +5 -1
- package/lib/tntd-layout/HeaderActions.js.map +1 -1
- package/lib/tntd-layout/HeaderNavs.js +5 -1
- package/lib/tntd-layout/HeaderNavs.js.map +1 -1
- package/lib/tntd-layout/HeaderTabs.js +5 -1
- package/lib/tntd-layout/HeaderTabs.js.map +1 -1
- package/lib/tntd-layout/Language.js +5 -1
- package/lib/tntd-layout/Language.js.map +1 -1
- package/lib/tntd-layout/Layout.js +5 -1
- package/lib/tntd-layout/Layout.js.map +1 -1
- package/lib/tntd-layout/Logo.js +5 -1
- package/lib/tntd-layout/Logo.js.map +1 -1
- package/lib/tntd-layout/OrgAppList.js +5 -1
- package/lib/tntd-layout/OrgAppList.js.map +1 -1
- package/lib/tntd-layout/SideMenu.js +5 -1
- package/lib/tntd-layout/SideMenu.js.map +1 -1
- package/lib/tntd-layout/Theme.js +5 -1
- package/lib/tntd-layout/Theme.js.map +1 -1
- package/lib/tntd-layout/index.js +5 -1
- package/lib/tntd-layout/index.js.map +1 -1
- package/lib/tntd-layout/paaslayout/CompactSideMenu.js +5 -1
- package/lib/tntd-layout/paaslayout/CompactSideMenu.js.map +1 -1
- package/lib/tntd-layout/paaslayout/Header.js +5 -1
- package/lib/tntd-layout/paaslayout/Header.js.map +1 -1
- package/lib/tntd-layout/paaslayout/SideMenu.js +5 -1
- package/lib/tntd-layout/paaslayout/SideMenu.js.map +1 -1
- package/lib/tntd-layout/paaslayout/index.js +5 -1
- package/lib/tntd-layout/paaslayout/index.js.map +1 -1
- package/lib/tntd-modal/index.js +5 -1
- package/lib/tntd-modal/index.js.map +1 -1
- package/lib/tntd-select/DropDownWrap.d.ts +10 -0
- package/lib/tntd-select/DropDownWrap.d.ts.map +1 -1
- package/lib/tntd-select/DropDownWrap.js +5 -1
- package/lib/tntd-select/DropDownWrap.js.map +1 -1
- package/lib/tntd-select/index.d.ts +12 -1
- package/lib/tntd-select/index.d.ts.map +1 -1
- package/lib/tntd-select/index.js +5 -1
- package/lib/tntd-select/index.js.map +1 -1
- package/lib/tooltip/index.js +5 -1
- package/lib/tooltip/index.js.map +1 -1
- package/lib/transfer/index.js +5 -1
- package/lib/transfer/index.js.map +1 -1
- package/lib/tree/index.js +5 -1
- package/lib/tree/index.js.map +1 -1
- package/lib/tree-select/index.d.ts +7 -1
- package/lib/tree-select/index.d.ts.map +1 -1
- package/lib/tree-select/index.js +10 -2
- package/lib/tree-select/index.js.map +1 -1
- package/lib/typography/index.js +5 -1
- package/lib/typography/index.js.map +1 -1
- package/lib/upload/index.d.ts +6 -1
- package/lib/upload/index.d.ts.map +1 -1
- package/lib/upload/index.js +11 -2
- package/lib/upload/index.js.map +1 -1
- package/lib/utils/index.js +5 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/version/index.js +5 -1
- package/lib/version/index.js.map +1 -1
- package/package.json +7 -4
- package/themes/default/variables.less +43 -0
- package/es/mention/index.js +0 -5
- package/es/mention/index.js.map +0 -1
- package/lib/mention/index.d.ts +0 -5
- package/lib/mention/index.d.ts.map +0 -1
- package/lib/mention/index.js +0 -20
- package/lib/mention/index.js.map +0 -1
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { Field, FieldContext, ListContext } from 'rc-field-form';
|
|
2
|
+
import useState from 'rc-util/lib/hooks/useState';
|
|
3
|
+
import { supportRef } from 'rc-util/lib/ref';
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { useContext } from 'react';
|
|
6
|
+
import useFormItemStatus from '../hooks/useFormItemStatus';
|
|
7
|
+
import { ConfigContext } from '../../config-provider';
|
|
8
|
+
import DisabledContext from '../../config-provider/DisabledContext';
|
|
9
|
+
import { cloneElement, isValidElement } from '../_util/reactNode';
|
|
10
|
+
import { tuple } from '../_util/type';
|
|
11
|
+
import warning from '../_util/warning';
|
|
12
|
+
import { FormContext, NoStyleItemContext } from '../context';
|
|
13
|
+
import useFrameState from '../hooks/useFrameState';
|
|
14
|
+
import useItemRef from '../hooks/useItemRef';
|
|
15
|
+
import { getFieldId, toArray } from '../util';
|
|
16
|
+
import ItemHolder from './ItemHolder';
|
|
17
|
+
const NAME_SPLIT = '__SPLIT__';
|
|
18
|
+
const ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '');
|
|
19
|
+
const MemoInput = React.memo(({ children }) => children, (prev, next) => prev.value === next.value &&
|
|
20
|
+
prev.update === next.update &&
|
|
21
|
+
prev.childProps.length === next.childProps.length &&
|
|
22
|
+
prev.childProps.every((value, index) => value === next.childProps[index]));
|
|
23
|
+
function hasValidName(name) {
|
|
24
|
+
if (name === null) {
|
|
25
|
+
warning(false, 'Form.Item', '`null` is passed as `name` property');
|
|
26
|
+
}
|
|
27
|
+
return !(name === undefined || name === null);
|
|
28
|
+
}
|
|
29
|
+
function genEmptyMeta() {
|
|
30
|
+
return {
|
|
31
|
+
errors: [],
|
|
32
|
+
warnings: [],
|
|
33
|
+
touched: false,
|
|
34
|
+
validating: false,
|
|
35
|
+
validated: false,
|
|
36
|
+
name: [],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function InternalFormItem(props) {
|
|
40
|
+
var _a, _b, _c, _d;
|
|
41
|
+
const { name, noStyle, dependencies, prefixCls: customizePrefixCls, shouldUpdate, rules, children, required, label, messageVariables, trigger = 'onChange', validateTrigger, hidden, } = props;
|
|
42
|
+
// TODO
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
const { getPrefixCls } = useContext(ConfigContext);
|
|
45
|
+
const { name: formName } = useContext(FormContext);
|
|
46
|
+
const isRenderProps = typeof children === 'function';
|
|
47
|
+
const notifyParentMetaChange = useContext(NoStyleItemContext);
|
|
48
|
+
const contextDisabled = useContext(DisabledContext);
|
|
49
|
+
const { readonly: contextReadonly } = useContext(FormContext);
|
|
50
|
+
const { validateTrigger: contextValidateTrigger } = useContext(FieldContext);
|
|
51
|
+
const mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : contextValidateTrigger;
|
|
52
|
+
const hasName = hasValidName(name);
|
|
53
|
+
const prefixCls = getPrefixCls('form', customizePrefixCls);
|
|
54
|
+
// ========================= MISC =========================
|
|
55
|
+
// Get `noStyle` required info
|
|
56
|
+
const listContext = React.useContext(ListContext);
|
|
57
|
+
const fieldKeyPathRef = React.useRef();
|
|
58
|
+
// ======================== Errors ========================
|
|
59
|
+
// >>>>> Collect sub field errors
|
|
60
|
+
const [subFieldErrors, setSubFieldErrors] = useFrameState({});
|
|
61
|
+
// >>>>> Current field errors
|
|
62
|
+
const [meta, setMeta] = useState(() => genEmptyMeta());
|
|
63
|
+
const onMetaChange = (nextMeta) => {
|
|
64
|
+
// This keyInfo is not correct when field is removed
|
|
65
|
+
// Since origin keyManager no longer keep the origin key anymore
|
|
66
|
+
// Which means we need cache origin one and reuse when removed
|
|
67
|
+
const keyInfo = listContext === null || listContext === void 0 ? void 0 : listContext.getKey(nextMeta.name);
|
|
68
|
+
// Destroy will reset all the meta
|
|
69
|
+
setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true);
|
|
70
|
+
// Bump to parent since noStyle
|
|
71
|
+
if (noStyle && notifyParentMetaChange) {
|
|
72
|
+
let namePath = nextMeta.name;
|
|
73
|
+
if (!nextMeta.destroy) {
|
|
74
|
+
if (keyInfo !== undefined) {
|
|
75
|
+
const [fieldKey, restPath] = keyInfo;
|
|
76
|
+
namePath = [fieldKey, ...restPath];
|
|
77
|
+
fieldKeyPathRef.current = namePath;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
// Use origin cache data
|
|
82
|
+
namePath = fieldKeyPathRef.current || namePath;
|
|
83
|
+
}
|
|
84
|
+
notifyParentMetaChange(nextMeta, namePath);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
// >>>>> Collect noStyle Field error to the top FormItem
|
|
88
|
+
const onSubItemMetaChange = (subMeta, uniqueKeys) => {
|
|
89
|
+
// Only `noStyle` sub item will trigger
|
|
90
|
+
setSubFieldErrors((prevSubFieldErrors) => {
|
|
91
|
+
const clone = Object.assign({}, prevSubFieldErrors);
|
|
92
|
+
// name: ['user', 1] + key: [4] = ['user', 4]
|
|
93
|
+
const mergedNamePath = [...subMeta.name.slice(0, -1), ...uniqueKeys];
|
|
94
|
+
const mergedNameKey = mergedNamePath.join(NAME_SPLIT);
|
|
95
|
+
if (subMeta.destroy) {
|
|
96
|
+
// Remove
|
|
97
|
+
delete clone[mergedNameKey];
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Update
|
|
101
|
+
clone[mergedNameKey] = subMeta;
|
|
102
|
+
}
|
|
103
|
+
return clone;
|
|
104
|
+
});
|
|
105
|
+
};
|
|
106
|
+
// >>>>> Get merged errors
|
|
107
|
+
const [mergedErrors, mergedWarnings] = React.useMemo(() => {
|
|
108
|
+
const errorList = [...meta.errors];
|
|
109
|
+
const warningList = [...meta.warnings];
|
|
110
|
+
Object.values(subFieldErrors).forEach((subFieldError) => {
|
|
111
|
+
errorList.push(...(subFieldError.errors || []));
|
|
112
|
+
warningList.push(...(subFieldError.warnings || []));
|
|
113
|
+
});
|
|
114
|
+
return [errorList, warningList];
|
|
115
|
+
}, [subFieldErrors, meta.errors, meta.warnings]);
|
|
116
|
+
// ===================== Children Ref =====================
|
|
117
|
+
const getItemRef = useItemRef();
|
|
118
|
+
// ======================== Render ========================
|
|
119
|
+
function renderLayout(baseChildren, fieldId, isRequired) {
|
|
120
|
+
if (noStyle && !hidden) {
|
|
121
|
+
return baseChildren;
|
|
122
|
+
}
|
|
123
|
+
return (React.createElement(ItemHolder, Object.assign({ key: "row" }, props, { prefixCls: prefixCls, fieldId: fieldId, isRequired: isRequired, errors: mergedErrors, warnings: mergedWarnings, meta: meta,
|
|
124
|
+
// TODO
|
|
125
|
+
// @ts-ignore
|
|
126
|
+
onSubItemMetaChange: onSubItemMetaChange }), baseChildren));
|
|
127
|
+
}
|
|
128
|
+
if (!hasName && !isRenderProps && !dependencies) {
|
|
129
|
+
if (isValidElement(children)) {
|
|
130
|
+
return renderLayout(cloneElement(children, Object.assign(Object.assign({}, children.props), { disabled: (_b = (_a = children.props) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : contextDisabled, readonly: (_d = (_c = children.props) === null || _c === void 0 ? void 0 : _c.readonly) !== null && _d !== void 0 ? _d : contextReadonly })));
|
|
131
|
+
}
|
|
132
|
+
return renderLayout(children);
|
|
133
|
+
}
|
|
134
|
+
let variables = {};
|
|
135
|
+
if (typeof label === 'string') {
|
|
136
|
+
variables.label = label;
|
|
137
|
+
}
|
|
138
|
+
else if (name) {
|
|
139
|
+
variables.label = String(name);
|
|
140
|
+
}
|
|
141
|
+
if (messageVariables) {
|
|
142
|
+
variables = Object.assign(Object.assign({}, variables), messageVariables);
|
|
143
|
+
}
|
|
144
|
+
// >>>>> With Field
|
|
145
|
+
return (React.createElement(Field, Object.assign({}, props, { messageVariables: variables, trigger: trigger, validateTrigger: mergedValidateTrigger, onMetaChange: onMetaChange }), (control, renderMeta, context) => {
|
|
146
|
+
var _a, _b, _c, _d;
|
|
147
|
+
const mergedName = toArray(name).length && renderMeta ? renderMeta.name : [];
|
|
148
|
+
const fieldId = getFieldId(mergedName, formName);
|
|
149
|
+
const isRequired = required !== undefined
|
|
150
|
+
? required
|
|
151
|
+
: !!(rules &&
|
|
152
|
+
rules.some((rule) => {
|
|
153
|
+
if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
if (typeof rule === 'function') {
|
|
157
|
+
const ruleEntity = rule(context);
|
|
158
|
+
return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly;
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
}));
|
|
162
|
+
// ======================= Children =======================
|
|
163
|
+
const mergedControl = Object.assign({}, control);
|
|
164
|
+
let childNode = null;
|
|
165
|
+
warning(!(shouldUpdate && dependencies), 'Form.Item', "`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.");
|
|
166
|
+
if (Array.isArray(children) && hasName) {
|
|
167
|
+
warning(false, 'Form.Item', 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.');
|
|
168
|
+
childNode = children;
|
|
169
|
+
}
|
|
170
|
+
else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {
|
|
171
|
+
warning(!!(shouldUpdate || dependencies), 'Form.Item', 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.');
|
|
172
|
+
warning(!hasName, 'Form.Item', 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.');
|
|
173
|
+
}
|
|
174
|
+
else if (dependencies && !isRenderProps && !hasName) {
|
|
175
|
+
warning(false, 'Form.Item', 'Must set `name` or use a render function when `dependencies` is set.');
|
|
176
|
+
}
|
|
177
|
+
else if (isValidElement(children)) {
|
|
178
|
+
warning(children.props.defaultValue === undefined, 'Form.Item', '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.');
|
|
179
|
+
const childProps = Object.assign(Object.assign(Object.assign({}, children.props), mergedControl), { disabled: (_b = (_a = children.props) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : contextDisabled });
|
|
180
|
+
if (contextReadonly !== undefined) {
|
|
181
|
+
childProps.readonly = (_d = (_c = children.props) === null || _c === void 0 ? void 0 : _c.readonly) !== null && _d !== void 0 ? _d : contextReadonly;
|
|
182
|
+
}
|
|
183
|
+
if (!childProps.id) {
|
|
184
|
+
childProps.id = fieldId;
|
|
185
|
+
}
|
|
186
|
+
if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {
|
|
187
|
+
const describedbyArr = [];
|
|
188
|
+
if (props.help || mergedErrors.length > 0) {
|
|
189
|
+
describedbyArr.push(`${fieldId}_help`);
|
|
190
|
+
}
|
|
191
|
+
if (props.extra) {
|
|
192
|
+
describedbyArr.push(`${fieldId}_extra`);
|
|
193
|
+
}
|
|
194
|
+
childProps['aria-describedby'] = describedbyArr.join(' ');
|
|
195
|
+
}
|
|
196
|
+
if (mergedErrors.length > 0) {
|
|
197
|
+
childProps['aria-invalid'] = 'true';
|
|
198
|
+
}
|
|
199
|
+
if (isRequired) {
|
|
200
|
+
childProps['aria-required'] = 'true';
|
|
201
|
+
}
|
|
202
|
+
if (supportRef(children)) {
|
|
203
|
+
childProps.ref = getItemRef(mergedName, children);
|
|
204
|
+
}
|
|
205
|
+
// We should keep user origin event handler
|
|
206
|
+
const triggers = new Set([...toArray(trigger), ...toArray(mergedValidateTrigger)]);
|
|
207
|
+
triggers.forEach((eventName) => {
|
|
208
|
+
childProps[eventName] = (...args) => {
|
|
209
|
+
var _a, _b, _c;
|
|
210
|
+
(_a = mergedControl[eventName]) === null || _a === void 0 ? void 0 : _a.call(mergedControl, ...args);
|
|
211
|
+
// @ts-ignore
|
|
212
|
+
(_c = (_b = children === null || children === void 0 ? void 0 : children.props) === null || _b === void 0 ? void 0 : _b[eventName]) === null || _c === void 0 ? void 0 : _c.call(_b, ...args);
|
|
213
|
+
};
|
|
214
|
+
});
|
|
215
|
+
// List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender
|
|
216
|
+
const watchingChildProps = [
|
|
217
|
+
childProps['aria-required'],
|
|
218
|
+
childProps['aria-invalid'],
|
|
219
|
+
childProps['aria-describedby'],
|
|
220
|
+
childProps.disabled,
|
|
221
|
+
childProps.readonly,
|
|
222
|
+
];
|
|
223
|
+
childNode = (React.createElement(MemoInput, { value: mergedControl[props.valuePropName || 'value'], update: children, childProps: watchingChildProps }, cloneElement(children, childProps)));
|
|
224
|
+
}
|
|
225
|
+
else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {
|
|
226
|
+
childNode = children(context);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
warning(!mergedName.length, 'Form.Item', '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.');
|
|
230
|
+
childNode = children;
|
|
231
|
+
}
|
|
232
|
+
return renderLayout(childNode, fieldId, isRequired);
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
const FormItem = InternalFormItem;
|
|
236
|
+
FormItem.useStatus = useFormItemStatus;
|
|
237
|
+
export default FormItem;
|
|
238
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tntd-form/FormItem/index.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { FormInstance } from 'rc-field-form'\nimport { Field, FieldContext, ListContext } from 'rc-field-form'\nimport type { FieldProps } from 'rc-field-form/lib/Field'\nimport type { Meta, NamePath } from 'rc-field-form/lib/interface'\nimport useState from 'rc-util/lib/hooks/useState'\nimport { supportRef } from 'rc-util/lib/ref'\nimport * as React from 'react'\nimport { useContext } from 'react'\nimport useFormItemStatus from '../hooks/useFormItemStatus'\nimport { ConfigContext } from '../../config-provider'\nimport DisabledContext from '../../config-provider/DisabledContext'\nimport { cloneElement, isValidElement } from '../_util/reactNode'\nimport { tuple } from '../_util/type'\nimport warning from '../_util/warning'\nimport { FormContext, NoStyleItemContext } from '../context'\nimport type { FormItemInputProps } from '../FormItemInput'\nimport type { FormItemLabelProps, LabelTooltipType } from '../FormItemLabel'\nimport useFrameState from '../hooks/useFrameState'\nimport useItemRef from '../hooks/useItemRef'\nimport { getFieldId, toArray } from '../util'\nimport ItemHolder from './ItemHolder'\n\nconst NAME_SPLIT = '__SPLIT__'\n\ninterface FieldError {\n errors: string[]\n warnings: string[]\n}\n\nconst ValidateStatuses = tuple('success', 'warning', 'error', 'validating', '')\nexport type ValidateStatus = typeof ValidateStatuses[number]\n\ntype RenderChildren<Values = any> = (form: FormInstance<Values>) => React.ReactNode\ntype RcFieldProps<Values = any> = Omit<FieldProps<Values>, 'children'>\ntype ChildrenType<Values = any> = RenderChildren<Values> | React.ReactNode\n\ninterface MemoInputProps {\n value: any\n update: any\n children: React.ReactNode\n childProps: any[]\n}\n\nconst MemoInput = React.memo(\n ({ children }: MemoInputProps) => children as JSX.Element,\n (prev, next) =>\n prev.value === next.value &&\n prev.update === next.update &&\n prev.childProps.length === next.childProps.length &&\n prev.childProps.every((value, index) => value === next.childProps[index])\n)\n\nexport interface FormItemProps<Values = any>\n extends FormItemLabelProps,\n FormItemInputProps,\n RcFieldProps<Values> {\n prefixCls?: string\n noStyle?: boolean\n style?: React.CSSProperties\n className?: string\n children?: ChildrenType<Values>\n id?: string\n hasFeedback?: boolean\n validateStatus?: ValidateStatus\n required?: boolean\n hidden?: boolean\n initialValue?: any\n messageVariables?: Record<string, string>\n tooltip?: LabelTooltipType\n /** @deprecated No need anymore */\n fieldKey?: React.Key | React.Key[]\n}\n\nfunction hasValidName(name?: NamePath): boolean {\n if (name === null) {\n warning(false, 'Form.Item', '`null` is passed as `name` property')\n }\n return !(name === undefined || name === null)\n}\n\nfunction genEmptyMeta(): Meta {\n return {\n errors: [],\n warnings: [],\n touched: false,\n validating: false,\n validated: false,\n name: [],\n }\n}\n\nfunction InternalFormItem<Values = any>(props: FormItemProps<Values>): React.ReactElement {\n const {\n name,\n noStyle,\n dependencies,\n prefixCls: customizePrefixCls,\n shouldUpdate,\n rules,\n children,\n required,\n label,\n messageVariables,\n trigger = 'onChange',\n validateTrigger,\n hidden,\n } = props\n // TODO\n // @ts-ignore\n const { getPrefixCls } = useContext(ConfigContext)\n const { name: formName } = useContext(FormContext)\n const isRenderProps = typeof children === 'function'\n const notifyParentMetaChange = useContext(NoStyleItemContext)\n const contextDisabled = useContext(DisabledContext)\n const { readonly: contextReadonly } = useContext(FormContext)\n\n const { validateTrigger: contextValidateTrigger } = useContext(FieldContext)\n const mergedValidateTrigger =\n validateTrigger !== undefined ? validateTrigger : contextValidateTrigger\n\n const hasName = hasValidName(name)\n\n const prefixCls = getPrefixCls('form', customizePrefixCls)\n\n // ========================= MISC =========================\n // Get `noStyle` required info\n const listContext = React.useContext(ListContext)\n const fieldKeyPathRef = React.useRef<React.Key[]>()\n\n // ======================== Errors ========================\n // >>>>> Collect sub field errors\n const [subFieldErrors, setSubFieldErrors] = useFrameState<Record<string, FieldError>>({})\n\n // >>>>> Current field errors\n const [meta, setMeta] = useState<Meta>(() => genEmptyMeta())\n\n const onMetaChange = (nextMeta: Meta & { destroy?: boolean }) => {\n // This keyInfo is not correct when field is removed\n // Since origin keyManager no longer keep the origin key anymore\n // Which means we need cache origin one and reuse when removed\n const keyInfo = listContext?.getKey(nextMeta.name)\n\n // Destroy will reset all the meta\n setMeta(nextMeta.destroy ? genEmptyMeta() : nextMeta, true)\n\n // Bump to parent since noStyle\n if (noStyle && notifyParentMetaChange) {\n let namePath = nextMeta.name\n\n if (!nextMeta.destroy) {\n if (keyInfo !== undefined) {\n const [fieldKey, restPath] = keyInfo\n namePath = [fieldKey, ...restPath]\n fieldKeyPathRef.current = namePath\n }\n } else {\n // Use origin cache data\n namePath = fieldKeyPathRef.current || namePath\n }\n notifyParentMetaChange(nextMeta, namePath)\n }\n }\n\n // >>>>> Collect noStyle Field error to the top FormItem\n const onSubItemMetaChange = (subMeta: Meta & { destroy: boolean }, uniqueKeys: React.Key[]) => {\n // Only `noStyle` sub item will trigger\n setSubFieldErrors((prevSubFieldErrors) => {\n const clone = {\n ...prevSubFieldErrors,\n }\n\n // name: ['user', 1] + key: [4] = ['user', 4]\n const mergedNamePath = [...subMeta.name.slice(0, -1), ...uniqueKeys]\n const mergedNameKey = mergedNamePath.join(NAME_SPLIT)\n\n if (subMeta.destroy) {\n // Remove\n delete clone[mergedNameKey]\n } else {\n // Update\n clone[mergedNameKey] = subMeta\n }\n\n return clone\n })\n }\n\n // >>>>> Get merged errors\n const [mergedErrors, mergedWarnings] = React.useMemo(() => {\n const errorList: string[] = [...meta.errors]\n const warningList: string[] = [...meta.warnings]\n\n Object.values(subFieldErrors).forEach((subFieldError) => {\n errorList.push(...(subFieldError.errors || []))\n warningList.push(...(subFieldError.warnings || []))\n })\n\n return [errorList, warningList]\n }, [subFieldErrors, meta.errors, meta.warnings])\n\n // ===================== Children Ref =====================\n const getItemRef = useItemRef()\n\n // ======================== Render ========================\n function renderLayout(\n baseChildren: React.ReactNode,\n fieldId?: string,\n isRequired?: boolean\n ): React.ReactNode {\n if (noStyle && !hidden) {\n return baseChildren\n }\n\n return (\n <ItemHolder\n key=\"row\"\n {...props}\n prefixCls={prefixCls}\n fieldId={fieldId}\n isRequired={isRequired}\n errors={mergedErrors}\n warnings={mergedWarnings}\n meta={meta}\n // TODO\n // @ts-ignore\n onSubItemMetaChange={onSubItemMetaChange}\n >\n {baseChildren}\n </ItemHolder>\n )\n }\n\n if (!hasName && !isRenderProps && !dependencies) {\n if (isValidElement(children)) {\n return renderLayout(\n cloneElement(children, {\n ...children.props,\n disabled: children.props?.disabled ?? contextDisabled,\n readonly: children.props?.readonly ?? contextReadonly,\n })\n ) as JSX.Element\n }\n return renderLayout(children) as JSX.Element\n }\n\n let variables: Record<string, string> = {}\n if (typeof label === 'string') {\n variables.label = label\n } else if (name) {\n variables.label = String(name)\n }\n if (messageVariables) {\n variables = { ...variables, ...messageVariables }\n }\n\n // >>>>> With Field\n return (\n <Field\n {...props}\n messageVariables={variables}\n trigger={trigger}\n validateTrigger={mergedValidateTrigger}\n onMetaChange={onMetaChange}\n >\n {(control, renderMeta, context) => {\n const mergedName = toArray(name).length && renderMeta ? renderMeta.name : []\n const fieldId = getFieldId(mergedName, formName)\n\n const isRequired =\n required !== undefined\n ? required\n : !!(\n rules &&\n rules.some((rule) => {\n if (rule && typeof rule === 'object' && rule.required && !rule.warningOnly) {\n return true\n }\n if (typeof rule === 'function') {\n const ruleEntity = rule(context)\n return ruleEntity && ruleEntity.required && !ruleEntity.warningOnly\n }\n return false\n })\n )\n\n // ======================= Children =======================\n const mergedControl: typeof control = {\n ...control,\n }\n\n let childNode: React.ReactNode = null\n\n warning(\n !(shouldUpdate && dependencies),\n 'Form.Item',\n \"`shouldUpdate` and `dependencies` shouldn't be used together. See https://u.ant.design/form-deps.\"\n )\n if (Array.isArray(children) && hasName) {\n warning(\n false,\n 'Form.Item',\n 'A `Form.Item` with a `name` prop must have a single child element. For information on how to render more complex form items, see https://u.ant.design/complex-form-item.'\n )\n childNode = children\n } else if (isRenderProps && (!(shouldUpdate || dependencies) || hasName)) {\n warning(\n !!(shouldUpdate || dependencies),\n 'Form.Item',\n 'A `Form.Item` with a render function must have either `shouldUpdate` or `dependencies`.'\n )\n warning(\n !hasName,\n 'Form.Item',\n 'A `Form.Item` with a render function cannot be a field, and thus cannot have a `name` prop.'\n )\n } else if (dependencies && !isRenderProps && !hasName) {\n warning(\n false,\n 'Form.Item',\n 'Must set `name` or use a render function when `dependencies` is set.'\n )\n } else if (isValidElement(children)) {\n warning(\n children.props.defaultValue === undefined,\n 'Form.Item',\n '`defaultValue` will not work on controlled Field. You should use `initialValues` of Form instead.'\n )\n\n const childProps = {\n ...children.props,\n ...mergedControl,\n disabled: children.props?.disabled ?? contextDisabled,\n }\n\n if (contextReadonly !== undefined) {\n childProps.readonly = children.props?.readonly ?? contextReadonly\n }\n\n if (!childProps.id) {\n childProps.id = fieldId\n }\n\n if (props.help || mergedErrors.length > 0 || mergedWarnings.length > 0 || props.extra) {\n const describedbyArr = []\n if (props.help || mergedErrors.length > 0) {\n describedbyArr.push(`${fieldId}_help`)\n }\n if (props.extra) {\n describedbyArr.push(`${fieldId}_extra`)\n }\n childProps['aria-describedby'] = describedbyArr.join(' ')\n }\n\n if (mergedErrors.length > 0) {\n childProps['aria-invalid'] = 'true'\n }\n\n if (isRequired) {\n childProps['aria-required'] = 'true'\n }\n\n if (supportRef(children)) {\n childProps.ref = getItemRef(mergedName, children)\n }\n\n // We should keep user origin event handler\n const triggers = new Set<string>([...toArray(trigger), ...toArray(mergedValidateTrigger)])\n\n triggers.forEach((eventName) => {\n childProps[eventName] = (...args: any[]) => {\n mergedControl[eventName]?.(...args)\n // @ts-ignore\n children?.props?.[eventName]?.(...args)\n }\n })\n\n // List of props that need to be watched for changes -> if changes are detected in MemoInput -> rerender\n const watchingChildProps = [\n childProps['aria-required'],\n childProps['aria-invalid'],\n childProps['aria-describedby'],\n childProps.disabled,\n childProps.readonly,\n ]\n\n childNode = (\n <MemoInput\n value={mergedControl[props.valuePropName || 'value']}\n update={children}\n childProps={watchingChildProps}\n >\n {cloneElement(children, childProps)}\n </MemoInput>\n )\n } else if (isRenderProps && (shouldUpdate || dependencies) && !hasName) {\n childNode = (children as RenderChildren)(context)\n } else {\n warning(\n !mergedName.length,\n 'Form.Item',\n '`name` is only used for validate React element. If you are using Form.Item as layout display, please remove `name` instead.'\n )\n childNode = children as React.ReactNode\n }\n\n return renderLayout(childNode, fieldId, isRequired)\n }}\n </Field>\n )\n}\n\ntype InternalFormItemType = typeof InternalFormItem\n\ntype CompoundedComponent = InternalFormItemType & {\n useStatus: typeof useFormItemStatus\n}\n\nconst FormItem = InternalFormItem as CompoundedComponent\nFormItem.useStatus = useFormItemStatus\n\nexport default FormItem\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import classNames from 'classnames';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import Col from '../col';
|
|
4
|
+
import { FormContext, FormItemPrefixContext } from './context';
|
|
5
|
+
import ErrorList from './ErrorList';
|
|
6
|
+
const FormItemInput = (props) => {
|
|
7
|
+
const { prefixCls, status, wrapperCol, children, errors, warnings, _internalItemRender: formItemRender, extra, help, fieldId, marginBottom, onErrorVisibleChanged, } = props;
|
|
8
|
+
const baseClassName = `${prefixCls}-item`;
|
|
9
|
+
const formContext = React.useContext(FormContext);
|
|
10
|
+
const mergedWrapperCol = wrapperCol || formContext.wrapperCol || {};
|
|
11
|
+
const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className);
|
|
12
|
+
// Pass to sub FormItem should not with col info
|
|
13
|
+
const subFormContext = React.useMemo(() => (Object.assign({}, formContext)), [formContext]);
|
|
14
|
+
delete subFormContext.labelCol;
|
|
15
|
+
delete subFormContext.wrapperCol;
|
|
16
|
+
const inputDom = (React.createElement("div", { className: `${baseClassName}-control-input` },
|
|
17
|
+
React.createElement("div", { className: `${baseClassName}-control-input-content` }, children)));
|
|
18
|
+
const formItemContext = React.useMemo(() => ({ prefixCls, status }), [prefixCls, status]);
|
|
19
|
+
const errorListDom = marginBottom !== null || errors.length || warnings.length ? (React.createElement("div", { style: { display: 'flex', flexWrap: 'nowrap' } },
|
|
20
|
+
React.createElement(FormItemPrefixContext.Provider, { value: formItemContext },
|
|
21
|
+
React.createElement(ErrorList, { fieldId: fieldId, errors: errors, warnings: warnings, help: help, helpStatus: status, className: `${baseClassName}-explain-connected`, onVisibleChanged: onErrorVisibleChanged })),
|
|
22
|
+
!!marginBottom && React.createElement("div", { style: { width: 0, height: marginBottom } }))) : null;
|
|
23
|
+
const extraProps = {};
|
|
24
|
+
if (fieldId) {
|
|
25
|
+
extraProps.id = `${fieldId}_extra`;
|
|
26
|
+
}
|
|
27
|
+
// If extra = 0, && will goes wrong
|
|
28
|
+
// 0&&error -> 0
|
|
29
|
+
const extraDom = extra ? (React.createElement("div", Object.assign({}, extraProps, { className: `${baseClassName}-extra` }), extra)) : null;
|
|
30
|
+
const dom = formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? (formItemRender.render(props, { input: inputDom, errorList: errorListDom, extra: extraDom })) : (React.createElement(React.Fragment, null,
|
|
31
|
+
inputDom,
|
|
32
|
+
errorListDom,
|
|
33
|
+
extraDom));
|
|
34
|
+
return (React.createElement(FormContext.Provider, { value: subFormContext },
|
|
35
|
+
React.createElement(Col, Object.assign({}, mergedWrapperCol, { className: className }), dom)));
|
|
36
|
+
};
|
|
37
|
+
export default FormItemInput;
|
|
38
|
+
//# sourceMappingURL=FormItemInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormItemInput.js","sourceRoot":"","sources":["../../src/tntd-form/FormItemInput.tsx"],"names":[],"mappings":"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","sourcesContent":["import classNames from 'classnames'\nimport * as React from 'react'\n// import type { ColProps } from '../grid/col';\n// import Col from '../grid/col';\nimport type { ColProps } from '../col'\nimport Col from '../col'\nimport { FormContext, FormItemPrefixContext } from './context'\nimport ErrorList from './ErrorList'\nimport type { ValidateStatus } from './FormItem'\n\ninterface FormItemInputMiscProps {\n prefixCls: string\n children: React.ReactNode\n errors: React.ReactNode[]\n warnings: React.ReactNode[]\n marginBottom?: number | null\n onErrorVisibleChanged?: (visible: boolean) => void\n /** @internal do not use in any of your production. */\n _internalItemRender?: {\n mark: string\n render: (\n props: FormItemInputProps & FormItemInputMiscProps,\n domList: {\n input: JSX.Element\n errorList: JSX.Element | null\n extra: JSX.Element | null\n }\n ) => React.ReactNode\n }\n}\n\nexport interface FormItemInputProps {\n wrapperCol?: ColProps\n extra?: React.ReactNode\n status?: ValidateStatus\n help?: React.ReactNode\n fieldId?: string\n}\n\nconst FormItemInput: React.FC<FormItemInputProps & FormItemInputMiscProps> = (props) => {\n const {\n prefixCls,\n status,\n wrapperCol,\n children,\n errors,\n warnings,\n _internalItemRender: formItemRender,\n extra,\n help,\n fieldId,\n marginBottom,\n onErrorVisibleChanged,\n } = props\n const baseClassName = `${prefixCls}-item`\n\n const formContext = React.useContext(FormContext)\n\n const mergedWrapperCol: ColProps = wrapperCol || formContext.wrapperCol || {}\n\n const className = classNames(`${baseClassName}-control`, mergedWrapperCol.className)\n\n // Pass to sub FormItem should not with col info\n const subFormContext = React.useMemo(() => ({ ...formContext }), [formContext])\n delete subFormContext.labelCol\n delete subFormContext.wrapperCol\n\n const inputDom = (\n <div className={`${baseClassName}-control-input`}>\n <div className={`${baseClassName}-control-input-content`}>{children}</div>\n </div>\n )\n const formItemContext = React.useMemo(() => ({ prefixCls, status }), [prefixCls, status])\n const errorListDom =\n marginBottom !== null || errors.length || warnings.length ? (\n <div style={{ display: 'flex', flexWrap: 'nowrap' }}>\n <FormItemPrefixContext.Provider value={formItemContext}>\n <ErrorList\n fieldId={fieldId}\n errors={errors}\n warnings={warnings}\n help={help}\n helpStatus={status}\n className={`${baseClassName}-explain-connected`}\n onVisibleChanged={onErrorVisibleChanged}\n />\n </FormItemPrefixContext.Provider>\n {!!marginBottom && <div style={{ width: 0, height: marginBottom }} />}\n </div>\n ) : null\n\n const extraProps: { id?: string } = {}\n\n if (fieldId) {\n extraProps.id = `${fieldId}_extra`\n }\n\n // If extra = 0, && will goes wrong\n // 0&&error -> 0\n const extraDom = extra ? (\n <div {...extraProps} className={`${baseClassName}-extra`}>\n {extra}\n </div>\n ) : null\n\n const dom =\n formItemRender && formItemRender.mark === 'pro_table_render' && formItemRender.render ? (\n formItemRender.render(props, { input: inputDom, errorList: errorListDom, extra: extraDom })\n ) : (\n <>\n {inputDom}\n {errorListDom}\n {extraDom}\n </>\n )\n return (\n <FormContext.Provider value={subFormContext}>\n <Col {...mergedWrapperCol} className={className}>\n {dom}\n </Col>\n </FormContext.Provider>\n )\n}\n\nexport default FormItemInput\n"]}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import Icon from '../icon';
|
|
13
|
+
import classNames from 'classnames';
|
|
14
|
+
import * as React from 'react';
|
|
15
|
+
import Col from '../col';
|
|
16
|
+
import Tooltip from '../tooltip';
|
|
17
|
+
import { FormContext } from './context';
|
|
18
|
+
function toTooltipProps(tooltip) {
|
|
19
|
+
if (!tooltip) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
if (typeof tooltip === 'object' && !React.isValidElement(tooltip)) {
|
|
23
|
+
return tooltip;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
title: tooltip,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const FormItemLabel = ({ prefixCls, label, htmlFor, labelCol, labelAlign, colon, required, requiredMark, tooltip, }) => {
|
|
30
|
+
// const [formLocale] = useLocaleReceiver('Form');
|
|
31
|
+
if (!label)
|
|
32
|
+
return null;
|
|
33
|
+
return (React.createElement(FormContext.Consumer, { key: "label" }, ({ vertical, labelAlign: contextLabelAlign, labelCol: contextLabelCol, labelWrap, colon: contextColon, }) => {
|
|
34
|
+
const mergedLabelCol = labelCol || contextLabelCol || {};
|
|
35
|
+
const mergedLabelAlign = labelAlign || contextLabelAlign;
|
|
36
|
+
const labelClsBasic = `${prefixCls}-item-label`;
|
|
37
|
+
const labelColClassName = classNames(labelClsBasic, mergedLabelAlign === 'left' && `${labelClsBasic}-left`, mergedLabelCol.className, {
|
|
38
|
+
[`${labelClsBasic}-wrap`]: !!labelWrap,
|
|
39
|
+
});
|
|
40
|
+
let labelChildren = label;
|
|
41
|
+
// Keep label is original where there should have no colon
|
|
42
|
+
const computedColon = colon === true || (contextColon !== false && colon !== false);
|
|
43
|
+
const haveColon = computedColon && !vertical;
|
|
44
|
+
// Remove duplicated user input colon
|
|
45
|
+
if (haveColon && typeof label === 'string' && label.trim() !== '') {
|
|
46
|
+
labelChildren = label.replace(/[:|:]\s*$/, '');
|
|
47
|
+
}
|
|
48
|
+
// Tooltip
|
|
49
|
+
const tooltipProps = toTooltipProps(tooltip);
|
|
50
|
+
if (tooltipProps) {
|
|
51
|
+
const { icon = React.createElement(Icon, { type: "question-circle" }) } = tooltipProps, restTooltipProps = __rest(tooltipProps, ["icon"]);
|
|
52
|
+
const tooltipNode = (React.createElement(Tooltip, Object.assign({}, restTooltipProps), React.cloneElement(icon, { className: `${prefixCls}-item-tooltip`, title: '' })));
|
|
53
|
+
labelChildren = (React.createElement(React.Fragment, null,
|
|
54
|
+
labelChildren,
|
|
55
|
+
tooltipNode));
|
|
56
|
+
}
|
|
57
|
+
// Add required mark if optional
|
|
58
|
+
if (requiredMark === 'optional' && !required) {
|
|
59
|
+
labelChildren = (React.createElement(React.Fragment, null,
|
|
60
|
+
labelChildren,
|
|
61
|
+
React.createElement("span", { className: `${prefixCls}-item-optional`, title: "" })));
|
|
62
|
+
}
|
|
63
|
+
const labelClassName = classNames({
|
|
64
|
+
[`${prefixCls}-item-required`]: required,
|
|
65
|
+
[`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',
|
|
66
|
+
[`${prefixCls}-item-no-colon`]: !computedColon,
|
|
67
|
+
});
|
|
68
|
+
return (React.createElement(Col, Object.assign({}, mergedLabelCol, { className: labelColClassName }),
|
|
69
|
+
React.createElement("label", { htmlFor: htmlFor, className: labelClassName, title: typeof label === 'string' ? label : '' }, labelChildren)));
|
|
70
|
+
}));
|
|
71
|
+
};
|
|
72
|
+
export default FormItemLabel;
|
|
73
|
+
//# sourceMappingURL=FormItemLabel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormItemLabel.js","sourceRoot":"","sources":["../../src/tntd-form/FormItemLabel.tsx"],"names":[],"mappings":"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","sourcesContent":["import Icon from '../icon'\nimport classNames from 'classnames'\nimport * as React from 'react'\n// import type { ColProps } from '../grid/col';\n// import Col from '../grid/col';\nimport type { ColProps } from '../col'\nimport Col from '../col'\n// import { useLocaleReceiver } from '../locale-provider/LocaleReceiver';\n// import defaultLocale from '../locale/default';\nimport type { TooltipProps } from '../tooltip'\nimport Tooltip from '../tooltip'\nimport type { FormContextProps } from './context'\nimport { FormContext } from './context'\nimport type { RequiredMark } from './Form'\nimport type { FormLabelAlign } from './interface'\n\nexport type WrapperTooltipProps = TooltipProps & {\n icon?: React.ReactElement\n}\n\nexport type LabelTooltipType = WrapperTooltipProps | React.ReactNode\n\nfunction toTooltipProps(tooltip: LabelTooltipType): WrapperTooltipProps | null {\n if (!tooltip) {\n return null\n }\n\n if (typeof tooltip === 'object' && !React.isValidElement(tooltip)) {\n return tooltip as WrapperTooltipProps\n }\n\n return {\n title: tooltip,\n }\n}\n\nexport interface FormItemLabelProps {\n colon?: boolean\n htmlFor?: string\n label?: React.ReactNode\n labelAlign?: FormLabelAlign\n labelCol?: ColProps\n requiredMark?: RequiredMark\n tooltip?: LabelTooltipType\n}\n\nconst FormItemLabel: React.FC<FormItemLabelProps & { required?: boolean; prefixCls: string }> = ({\n prefixCls,\n label,\n htmlFor,\n labelCol,\n labelAlign,\n colon,\n required,\n requiredMark,\n tooltip,\n}) => {\n // const [formLocale] = useLocaleReceiver('Form');\n\n if (!label) return null\n\n return (\n <FormContext.Consumer key=\"label\">\n {({\n vertical,\n labelAlign: contextLabelAlign,\n labelCol: contextLabelCol,\n labelWrap,\n colon: contextColon,\n }: FormContextProps) => {\n const mergedLabelCol: ColProps = labelCol || contextLabelCol || {}\n\n const mergedLabelAlign: FormLabelAlign | undefined = labelAlign || contextLabelAlign\n\n const labelClsBasic = `${prefixCls}-item-label`\n const labelColClassName = classNames(\n labelClsBasic,\n mergedLabelAlign === 'left' && `${labelClsBasic}-left`,\n mergedLabelCol.className,\n {\n [`${labelClsBasic}-wrap`]: !!labelWrap,\n }\n )\n\n let labelChildren = label\n // Keep label is original where there should have no colon\n const computedColon = colon === true || (contextColon !== false && colon !== false)\n const haveColon = computedColon && !vertical\n // Remove duplicated user input colon\n if (haveColon && typeof label === 'string' && (label as string).trim() !== '') {\n labelChildren = (label as string).replace(/[:|:]\\s*$/, '')\n }\n\n // Tooltip\n const tooltipProps = toTooltipProps(tooltip)\n if (tooltipProps) {\n const { icon = <Icon type=\"question-circle\" />, ...restTooltipProps } = tooltipProps\n const tooltipNode = (\n <Tooltip {...restTooltipProps}>\n {React.cloneElement(icon, { className: `${prefixCls}-item-tooltip`, title: '' })}\n </Tooltip>\n )\n\n labelChildren = (\n <>\n {labelChildren}\n {tooltipNode}\n </>\n )\n }\n\n // Add required mark if optional\n if (requiredMark === 'optional' && !required) {\n labelChildren = (\n <>\n {labelChildren}\n <span className={`${prefixCls}-item-optional`} title=\"\">\n {/* {formLocale?.optional || defaultLocale.Form?.optional} */}\n </span>\n </>\n )\n }\n\n const labelClassName = classNames({\n [`${prefixCls}-item-required`]: required,\n [`${prefixCls}-item-required-mark-optional`]: requiredMark === 'optional',\n [`${prefixCls}-item-no-colon`]: !computedColon,\n })\n\n return (\n <Col {...mergedLabelCol} className={labelColClassName}>\n <label\n htmlFor={htmlFor}\n className={labelClassName}\n title={typeof label === 'string' ? label : ''}\n >\n {labelChildren}\n </label>\n </Col>\n )\n }}\n </FormContext.Consumer>\n )\n}\n\nexport default FormItemLabel\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { List } from 'rc-field-form';
|
|
13
|
+
import * as React from 'react';
|
|
14
|
+
import { ConfigContext } from '../config-provider';
|
|
15
|
+
import warning from './_util/warning';
|
|
16
|
+
import { FormItemPrefixContext } from './context';
|
|
17
|
+
const FormList = (_a) => {
|
|
18
|
+
var { prefixCls: customizePrefixCls, children } = _a, props = __rest(_a, ["prefixCls", "children"]);
|
|
19
|
+
warning(!!props.name, 'Form.List', 'Miss `name` prop.');
|
|
20
|
+
// TODO
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
const { getPrefixCls } = React.useContext(ConfigContext);
|
|
23
|
+
const prefixCls = getPrefixCls('form', customizePrefixCls);
|
|
24
|
+
const contextValue = React.useMemo(() => ({
|
|
25
|
+
prefixCls,
|
|
26
|
+
status: 'error',
|
|
27
|
+
}), [prefixCls]);
|
|
28
|
+
return (React.createElement(List, Object.assign({}, props), (fields, operation, meta) => (React.createElement(FormItemPrefixContext.Provider, { value: contextValue }, children(fields.map((field) => (Object.assign(Object.assign({}, field), { fieldKey: field.key }))), operation, {
|
|
29
|
+
errors: meta.errors,
|
|
30
|
+
warnings: meta.warnings,
|
|
31
|
+
})))));
|
|
32
|
+
};
|
|
33
|
+
export default FormList;
|
|
34
|
+
//# sourceMappingURL=FormList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormList.js","sourceRoot":"","sources":["../../src/tntd-form/FormList.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAEpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,OAAO,MAAM,iBAAiB,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AA2BjD,MAAM,QAAQ,GAA4B,CAAC,EAI1C,EAAE,EAAE;QAJsC,EACzC,SAAS,EAAE,kBAAkB,EAC7B,QAAQ,OAET,EADI,KAAK,cAHiC,yBAI1C,CADS;IAER,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAA;IAEvD,OAAO;IACP,aAAa;IACb,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;IAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC;QACL,SAAS;QACT,MAAM,EAAE,OAAgB;KACzB,CAAC,EACF,CAAC,SAAS,CAAC,CACZ,CAAA;IAED,OAAO,CACL,oBAAC,IAAI,oBAAK,KAAK,GACZ,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAC5B,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IAChD,QAAQ,CACP,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCAAM,KAAK,KAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,IAAG,CAAC,EAC1D,SAAS,EACT;QACE,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CACF,CAC8B,CAClC,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA","sourcesContent":["import { List } from 'rc-field-form'\nimport type { StoreValue, ValidatorRule } from 'rc-field-form/lib/interface'\nimport * as React from 'react'\nimport { ConfigContext } from '../config-provider'\nimport warning from './_util/warning'\nimport { FormItemPrefixContext } from './context'\n\nexport interface FormListFieldData {\n name: number\n key: number\n /** @deprecated No need anymore Use key instead */\n fieldKey?: number\n}\n\nexport interface FormListOperation {\n add: (defaultValue?: StoreValue, insertIndex?: number) => void\n remove: (index: number | number[]) => void\n move: (from: number, to: number) => void\n}\n\nexport interface FormListProps {\n prefixCls?: string\n name: string | number | (string | number)[]\n rules?: ValidatorRule[]\n initialValue?: any[]\n children: (\n fields: FormListFieldData[],\n operation: FormListOperation,\n meta: { errors: React.ReactNode[]; warnings: React.ReactNode[] }\n ) => React.ReactNode\n}\n\nconst FormList: React.FC<FormListProps> = ({\n prefixCls: customizePrefixCls,\n children,\n ...props\n}) => {\n warning(!!props.name, 'Form.List', 'Miss `name` prop.')\n\n // TODO\n // @ts-ignore\n const { getPrefixCls } = React.useContext(ConfigContext)\n const prefixCls = getPrefixCls('form', customizePrefixCls)\n const contextValue = React.useMemo(\n () => ({\n prefixCls,\n status: 'error' as const,\n }),\n [prefixCls]\n )\n\n return (\n <List {...props}>\n {(fields, operation, meta) => (\n <FormItemPrefixContext.Provider value={contextValue}>\n {children(\n fields.map((field) => ({ ...field, fieldKey: field.key })),\n operation,\n {\n errors: meta.errors,\n warnings: meta.warnings,\n }\n )}\n </FormItemPrefixContext.Provider>\n )}\n </List>\n )\n}\n\nexport default FormList\n"]}
|
|
@@ -142,10 +142,10 @@ const ItemComp = React.forwardRef(({ name, children, style, initialValue, rules,
|
|
|
142
142
|
}, []);
|
|
143
143
|
// 默认方法
|
|
144
144
|
const handleChange = (e) => {
|
|
145
|
-
var _a
|
|
145
|
+
var _a;
|
|
146
146
|
let val;
|
|
147
147
|
if (typeof e === 'object') {
|
|
148
|
-
val = (
|
|
148
|
+
val = (_a = e === null || e === void 0 ? void 0 : e.target) === null || _a === void 0 ? void 0 : _a.value;
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
151
|
val = e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemComp.js","sourceRoot":"","sources":["../../../../src/tntd-form/TntdForm/components/ItemComp.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGlE,MAAM,QAAQ,GAAwB,KAAK,CAAC,UAAU,CACpD,CACE,EACE,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,IAAI,EACJ,UAAU,EACV,aAAa,EACb,SAAS,GACV,EACD,GAAG,EACH,EAAE;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAoB,SAAS,CAAC,CAAA;IAChE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAA;IACvE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IAEtD,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9B,SAAS,EAAE,GAAG,EAAE;YACd,UAAU,CAAC,CAAC,OAAO,CAAC,CAAA;QACtB,CAAC;KACF,CAAC,CAAC,CAAA;IAEH,sDAAsD;IACtD,SAAS,CAAC,GAAG,EAAE;;QACb,MAAM,OAAO,GAAG,MAAA,QAAQ,CAAC,IAAI,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAA;QACzC,IAAI,YAAY,EAAE;YAChB,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;SAClD;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC/B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACtB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;wBACrD,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG;4BACnC,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;4BACrC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;yBACzB,CAAA;qBACF;yBAAM;wBACL,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;qBAChE;gBACH,CAAC,CAAC,CAAA;aACH;SACF;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAA;IAElD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;YACtD,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;;gBAChD,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAG,CAAC,CAAC,kDAAI,CAAA;YAC7B,CAAC,CAAC,CAAA;SACH;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAEtE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;;gBACjB,MAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAG,CAAC,CAAC,kDAAI,CAAA;YAC7B,CAAC,CAAC,CAAA;SACH;IACH,CAAC,CAAA;IAED;;;;;OAKG;IACH,MAAM,gBAAgB,GAAG,CAAC,IAAuB,EAAE,KAAwB,EAAE,EAAE;QAC7E,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAM;QACtD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;QAE3B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAA;gBACnC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,GAAG,EAAE;oBACrC,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;oBAC3C,WAAW,CAAC,KAAK,CAAC,CAAA;oBAClB,OAAO,KAAK,CAAA;gBACd,CAAC,CAAA;aACF;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;oBACnB,CAAC,CAAC,CAAC,EAAE;wBACH,KAAK;wBACL,SAAS,EAAE,GAAG,EAAE;4BACd,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;4BAC3C,WAAW,CAAC,KAAK,CAAC,CAAA;4BAClB,OAAO,KAAK,CAAA;wBACd,CAAC;wBACD,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;wBACtB,QAAQ,EAAE,SAAS;qBACpB;iBACF,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,yBAAyB;IACzB,uFAAuF;IACvF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAM;QACtD,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;QAE3B,MAAM,OAAO,GAAkB;YAC7B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC1C,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACd,WAAW,CAAC,KAAK,CAAC,CAAA;gBAClB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAA;gBACZ,YAAY,EAAE,CAAA;YAChB,CAAC;YACD,SAAS,EAAE,GAAG,EAAE;gBACd,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBAC3C,WAAW,CAAC,KAAK,CAAC,CAAA;gBAClB,OAAO,KAAK,CAAA;YACd,CAAC;YACD,KAAK;YACL,QAAQ;SACT,CAAA;QACD,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;aAChC;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;oBACnB,CAAC,CAAC,CAAC,EAAE,OAAO;iBACb,CAAA;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAA;IAEjC,mCAAmC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,YAAY,EAAE;YAChB,QAAQ,CAAC,YAAY,CAAC,CAAA;YACtB,gBAAgB,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;YACpC,YAAY,EAAE,CAAA;SACf;IACH,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAA;IAElB,YAAY;IACZ,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;QACnD,aAAa;QACb,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;QAEnF,QAAQ,CAAC,MAAM,CAAC,CAAA;QAChB,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC9B,YAAY,EAAE,CAAA;IAChB,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;IACP,MAAM,YAAY,GAAG,CACnB,CAIa,EACb,EAAE;;QACF,IAAI,GAAG,CAAA;QACP,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACzB,GAAG,GAAG,MAAA,MAAC,CAAmF,0CACtF,MAAM,0CAAE,KAAK,CAAA;SAClB;aAAM;YACL,GAAG,GAAG,CAAC,CAAA;SACR;QACD,QAAQ,CAAC,GAAG,CAAC,CAAA;QACb,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACzC,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,YAAY,EAAE,CAAA;IAChB,CAAC,CAAA;IAED,OAAO,CACL,6BACE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,0BAA0B,EACvF,KAAK,EAAE,KAAK;QAEX,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;;YACtC,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;gBAC/B,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,kBAC7B,KAAK;oBACL,IAAI,EACJ,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,MAAA,QAAQ,CAAC,IAAI,CAAC,0CAAE,IAAI,CAAC,GAAG,CAAC,IAClC,KAAK,CAAC,KAAK,EACd,CAAA;aACH;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;QACD,QAAQ,IAAI,6BAAK,SAAS,EAAC,8CAA8C,IAAE,QAAQ,CAAO,CACvF,CACP,CAAA;AACH,CAAC,CACF,CAAA;AAED,SAAS,aAAa,CAAC,SAAoB,EAAE,SAAoB;IAC/D,IAAI,CAAC,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;QACpE,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,eAAe,IAAI,CAAC,QAAQ,CAAC,CAAA","sourcesContent":["/*\n * @Descripttion: TntdForm.Item进行性能优化\n * @Author: 郑泳健\n * @Date: 2023-02-23 12:47:28\n * @LastEditors: 郑泳健\n * @LastEditTime: 2023-04-06 17:45:35\n */\n\nimport React, { useState, memo, useEffect, useImperativeHandle } from 'react'\nimport { getNames, handleCheckItem, getInitValue } from '../utils'\nimport type { IFormItem, IFormItemData, TinitialValueType, IChildrenCompFun } from '../interface'\n\nconst ItemComp: React.FC<IFormItem> = React.forwardRef<IChildrenCompFun, IFormItem>(\n (\n {\n name,\n children,\n style,\n initialValue,\n rules,\n shouldUpdate,\n dependencies,\n form,\n updateRefs,\n initialValues,\n compsRefs,\n },\n ref\n ) => {\n const [value, setValue] = useState<TinitialValueType>(undefined)\n const [errorMsg, setErrorMsg] = useState<string | undefined>(undefined)\n const [refresh, setRefresh] = useState<boolean>(false)\n\n useImperativeHandle(ref, () => ({\n onRefresh: () => {\n setRefresh(!refresh)\n },\n }))\n\n /** 根据shouldUpdate 和 dependencies收集修改某个字段后需要同步更新的字段 */\n useEffect(() => {\n const nameStr = getNames(name)?.join('.')\n if (shouldUpdate) {\n updateRefs.current.shouldUpdateList.push(nameStr)\n }\n\n if (Array.isArray(dependencies)) {\n const arr = dependencies.map((i) => getNames(i).join('.'))\n if (Array.isArray(arr)) {\n arr.forEach((i) => {\n if (Array.isArray(updateRefs.current.dependencies[i])) {\n updateRefs.current.dependencies[i] = [\n ...updateRefs.current.dependencies[i],\n getNames(name).join('.'),\n ]\n } else {\n updateRefs.current.dependencies[i] = [getNames(name).join('.')]\n }\n })\n }\n }\n }, [shouldUpdate, dependencies, name, updateRefs])\n\n const updateRender = () => {\n if (Array.isArray(updateRefs.current.shouldUpdateList)) {\n updateRefs.current.shouldUpdateList.forEach((i) => {\n compsRefs?.current?.[i]?.()\n })\n }\n const list = updateRefs.current.dependencies[getNames(name).join('.')]\n\n if (Array.isArray(list)) {\n list.forEach((i) => {\n compsRefs?.current?.[i]?.()\n })\n }\n }\n\n /**\n * 动态修改form内部的值,为啥不在useEffect里面处理的原因是子组件的useEffect会比父组件useEffect先执行,需要保证在子组件useEffect监听value变化的时候获取到的formData永远是最新的\n * @param name\n * @param value\n * @returns\n */\n const generateFormData = (name: string[] | string, value: TinitialValueType) => {\n if (!name || !form || typeof name !== 'object') return\n const [str, ...rest] = name\n\n rest.forEach((i) => {\n if (form.formData[str]) {\n form.formData[str][i].value = value\n form.formData[str][i].checkItem = () => {\n const error = handleCheckItem(value, rules)\n setErrorMsg(error)\n return error\n }\n } else {\n form.formData[str] = {\n [i]: {\n value,\n checkItem: () => {\n const error = handleCheckItem(value, rules)\n setErrorMsg(error)\n return error\n },\n setItemValue: () => {},\n errorMsg: undefined,\n },\n }\n }\n })\n }\n\n // 为了给最外层提供方法去校验,比如保存的时候.\n // 这里依赖不要添加value,因为子组件的useEffect会比父组件useEffect先执行,如果添加了依赖value会导致子组件获取到的formData永远是上一次的\n useEffect(() => {\n if (!name || !form || typeof name !== 'object') return\n const [str, ...rest] = name\n\n const addItem: IFormItemData = {\n setItemValue: (_val, callback) => {\n const error = handleCheckItem(_val, rules)\n setValue(_val)\n setErrorMsg(error)\n callback?.()\n updateRender()\n },\n checkItem: () => {\n const error = handleCheckItem(value, rules)\n setErrorMsg(error)\n return error\n },\n value,\n errorMsg,\n }\n rest.forEach((i) => {\n if (form.formData[str]) {\n form.formData[str][i] = addItem\n } else {\n form.formData[str] = {\n [i]: addItem,\n }\n }\n })\n }, [rules, name, errorMsg, form])\n\n /** 这段代码不能删除,当增加/删除列的时候有些默认值需要更新 */\n useEffect(() => {\n if (initialValue) {\n setValue(initialValue)\n generateFormData(name, initialValue)\n updateRender()\n }\n }, [initialValue])\n\n // 初始化设置默认值,\n useEffect(() => {\n const initValue = getInitValue(initialValues, name)\n // @ts-ignore\n const _value = ['', null, undefined].includes(initValue) ? initialValue : initValue\n\n setValue(_value)\n generateFormData(name, _value)\n updateRender()\n }, [])\n\n // 默认方法\n const handleChange = (\n e:\n | React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>\n | string\n | number\n | undefined\n ) => {\n let val\n if (typeof e === 'object') {\n val = (e as React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>)\n ?.target?.value\n } else {\n val = e\n }\n setValue(val)\n generateFormData(name, val)\n const error = handleCheckItem(val, rules)\n setErrorMsg(error)\n updateRender()\n }\n\n return (\n <div\n className={errorMsg ? 'has-error custom-form-item-wrapper' : 'custom-form-item-wrapper'}\n style={style}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n value,\n form,\n onChange: handleChange,\n 'data-key': getNames(name)?.join('.'),\n ...child.props,\n })\n }\n return null\n })}\n {errorMsg && <div className=\"ant-form-explain ant-form-item-explain-error\">{errorMsg}</div>}\n </div>\n )\n }\n)\n\nfunction arePropsEqual(prevProps: IFormItem, nextProps: IFormItem) {\n if (!nextProps.shouldUpdate && Array.isArray(nextProps.dependencies)) {\n return true\n }\n\n return false\n}\n\nexport default memo(ItemComp)\n"]}
|
|
1
|
+
{"version":3,"file":"ItemComp.js","sourceRoot":"","sources":["../../../../src/tntd-form/TntdForm/components/ItemComp.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * @Descripttion: TntdForm.Item进行性能优化\n * @Author: 郑泳健\n * @Date: 2023-02-23 12:47:28\n * @LastEditors: 郑泳健\n * @LastEditTime: 2023-04-06 17:45:35\n */\n\nimport React, { useState, memo, useEffect, useImperativeHandle } from 'react'\nimport { getNames, handleCheckItem, getInitValue } from '../utils'\nimport type { IFormItem, IFormItemData, TinitialValueType, IChildrenCompFun } from '../interface'\n\nconst ItemComp: React.FC<IFormItem> = React.forwardRef<IChildrenCompFun, IFormItem>(\n (\n {\n name,\n children,\n style,\n initialValue,\n rules,\n shouldUpdate,\n dependencies,\n form,\n updateRefs,\n initialValues,\n compsRefs,\n },\n ref\n ) => {\n const [value, setValue] = useState<TinitialValueType>(undefined)\n const [errorMsg, setErrorMsg] = useState<string | undefined>(undefined)\n const [refresh, setRefresh] = useState<boolean>(false)\n\n useImperativeHandle(ref, () => ({\n onRefresh: () => {\n setRefresh(!refresh)\n },\n }))\n\n /** 根据shouldUpdate 和 dependencies收集修改某个字段后需要同步更新的字段 */\n useEffect(() => {\n const nameStr = getNames(name)?.join('.')\n if (shouldUpdate) {\n updateRefs.current.shouldUpdateList.push(nameStr)\n }\n\n if (Array.isArray(dependencies)) {\n const arr = dependencies.map((i) => getNames(i).join('.'))\n if (Array.isArray(arr)) {\n arr.forEach((i) => {\n if (Array.isArray(updateRefs.current.dependencies[i])) {\n updateRefs.current.dependencies[i] = [\n ...updateRefs.current.dependencies[i],\n getNames(name).join('.'),\n ]\n } else {\n updateRefs.current.dependencies[i] = [getNames(name).join('.')]\n }\n })\n }\n }\n }, [shouldUpdate, dependencies, name, updateRefs])\n\n const updateRender = () => {\n if (Array.isArray(updateRefs.current.shouldUpdateList)) {\n updateRefs.current.shouldUpdateList.forEach((i) => {\n compsRefs?.current?.[i]?.()\n })\n }\n const list = updateRefs.current.dependencies[getNames(name).join('.')]\n\n if (Array.isArray(list)) {\n list.forEach((i) => {\n compsRefs?.current?.[i]?.()\n })\n }\n }\n\n /**\n * 动态修改form内部的值,为啥不在useEffect里面处理的原因是子组件的useEffect会比父组件useEffect先执行,需要保证在子组件useEffect监听value变化的时候获取到的formData永远是最新的\n * @param name\n * @param value\n * @returns\n */\n const generateFormData = (name: string[] | string, value: TinitialValueType) => {\n if (!name || !form || typeof name !== 'object') return\n const [str, ...rest] = name\n\n rest.forEach((i) => {\n if (form.formData[str]) {\n form.formData[str][i].value = value\n form.formData[str][i].checkItem = () => {\n const error = handleCheckItem(value, rules)\n setErrorMsg(error)\n return error\n }\n } else {\n form.formData[str] = {\n [i]: {\n value,\n checkItem: () => {\n const error = handleCheckItem(value, rules)\n setErrorMsg(error)\n return error\n },\n setItemValue: () => {},\n errorMsg: undefined,\n },\n }\n }\n })\n }\n\n // 为了给最外层提供方法去校验,比如保存的时候.\n // 这里依赖不要添加value,因为子组件的useEffect会比父组件useEffect先执行,如果添加了依赖value会导致子组件获取到的formData永远是上一次的\n useEffect(() => {\n if (!name || !form || typeof name !== 'object') return\n const [str, ...rest] = name\n\n const addItem: IFormItemData = {\n setItemValue: (_val, callback) => {\n const error = handleCheckItem(_val, rules)\n setValue(_val)\n setErrorMsg(error)\n callback?.()\n updateRender()\n },\n checkItem: () => {\n const error = handleCheckItem(value, rules)\n setErrorMsg(error)\n return error\n },\n value,\n errorMsg,\n }\n rest.forEach((i) => {\n if (form.formData[str]) {\n form.formData[str][i] = addItem\n } else {\n form.formData[str] = {\n [i]: addItem,\n }\n }\n })\n }, [rules, name, errorMsg, form])\n\n /** 这段代码不能删除,当增加/删除列的时候有些默认值需要更新 */\n useEffect(() => {\n if (initialValue) {\n setValue(initialValue)\n generateFormData(name, initialValue)\n updateRender()\n }\n }, [initialValue])\n\n // 初始化设置默认值,\n useEffect(() => {\n const initValue = getInitValue(initialValues, name)\n // @ts-ignore\n const _value = ['', null, undefined].includes(initValue) ? initialValue : initValue\n\n setValue(_value)\n generateFormData(name, _value)\n updateRender()\n }, [])\n\n // 默认方法\n const handleChange = (\n e:\n | React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>\n | string\n | number\n | undefined\n ) => {\n let val\n if (typeof e === 'object') {\n val = (e as React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement>)\n ?.target?.value\n } else {\n val = e\n }\n setValue(val)\n generateFormData(name, val)\n const error = handleCheckItem(val, rules)\n setErrorMsg(error)\n updateRender()\n }\n\n return (\n <div\n className={errorMsg ? 'has-error custom-form-item-wrapper' : 'custom-form-item-wrapper'}\n style={style}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n value,\n form,\n onChange: handleChange,\n 'data-key': getNames(name)?.join('.'),\n ...child.props,\n })\n }\n return null\n })}\n {errorMsg && <div className=\"ant-form-explain ant-form-item-explain-error\">{errorMsg}</div>}\n </div>\n )\n }\n)\n\nfunction arePropsEqual(prevProps: IFormItem, nextProps: IFormItem) {\n if (!nextProps.shouldUpdate && Array.isArray(nextProps.dependencies)) {\n return true\n }\n\n return false\n}\n\nexport default memo(ItemComp)\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo-extend.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/demo-extend.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { extendTest } from '../../../tests/shared/demoTest';\n\nextendTest('form', { skip: ['complex-form-control.md', 'dep-debug.md'] });\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/demo.test.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gCAAgC,CAAC;AAEtD,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,EAAE,cAAc,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import demoTest from '../../../tests/shared/demoTest';\n\ndemoTest('form', { skip: ['complex-form-control.md', 'dep-debug.md'] });\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.test.js","sourceRoot":"","sources":["../../../src/tntd-form/__tests__/image.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,aAAa,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC","sourcesContent":["import { imageDemoTest } from '../../../tests/shared/imageTest';\n\ndescribe('Form image', () => {\n imageDemoTest('form', { skip: ['complex-form-control.md'] });\n});\n"]}
|