amis 1.8.0-beta.5 → 1.8.0-beta.9
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/lib/Schema.d.ts +9 -2
- package/lib/Schema.js.map +1 -1
- package/lib/actions/PageAction.d.ts +32 -0
- package/lib/actions/PageAction.js +72 -0
- package/lib/actions/PageAction.js.map +13 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +1 -0
- package/lib/actions/index.js.map +2 -2
- package/lib/components/CalendarMobile.d.ts +84 -84
- package/lib/components/Cascader.d.ts +2 -0
- package/lib/components/Cascader.js +28 -12
- package/lib/components/Cascader.js.map +2 -2
- package/lib/components/Checkbox.js +2 -2
- package/lib/components/Checkbox.js.map +2 -2
- package/lib/components/Collapse.d.ts +20 -20
- package/lib/components/DatePicker.d.ts +84 -84
- package/lib/components/DatePicker.js +5 -5
- package/lib/components/DatePicker.js.map +2 -2
- package/lib/components/Drawer.js +1 -1
- package/lib/components/Drawer.js.map +2 -2
- package/lib/components/ListGroup.d.ts +21 -21
- package/lib/components/Modal.js +1 -1
- package/lib/components/Modal.js.map +2 -2
- package/lib/components/Overlay.d.ts +1 -0
- package/lib/components/Overlay.js +4 -3
- package/lib/components/Overlay.js.map +2 -2
- package/lib/components/PullRefresh.d.ts +86 -0
- package/lib/components/PullRefresh.js +135 -0
- package/lib/components/PullRefresh.js.map +13 -0
- package/lib/components/Spinner.d.ts +200 -107
- package/lib/components/Spinner.js +30 -26
- package/lib/components/Spinner.js.map +2 -2
- package/lib/components/Tooltip.d.ts +4 -0
- package/lib/components/Tooltip.js +6 -4
- package/lib/components/Tooltip.js.map +2 -2
- package/lib/components/TooltipWrapper.d.ts +60 -4
- package/lib/components/TooltipWrapper.js +27 -8
- package/lib/components/TooltipWrapper.js.map +2 -2
- package/lib/components/Transfer.d.ts +84 -84
- package/lib/components/TransferDropDown.d.ts +84 -84
- package/lib/components/Tree.d.ts +87 -85
- package/lib/components/Tree.js +13 -5
- package/lib/components/Tree.js.map +2 -2
- package/lib/components/TreeSelection.d.ts +84 -84
- package/lib/components/calendar/TimeView.d.ts +1 -0
- package/lib/components/calendar/TimeView.js +7 -0
- package/lib/components/calendar/TimeView.js.map +2 -2
- package/lib/components/condition-builder/Expression.d.ts +1 -0
- package/lib/components/condition-builder/Expression.js +4 -4
- package/lib/components/condition-builder/Expression.js.map +2 -2
- package/lib/components/condition-builder/Field.d.ts +1 -0
- package/lib/components/condition-builder/Field.js +3 -2
- package/lib/components/condition-builder/Field.js.map +2 -2
- package/lib/components/condition-builder/Group.d.ts +1 -0
- package/lib/components/condition-builder/Group.js +2 -2
- package/lib/components/condition-builder/Group.js.map +2 -2
- package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
- package/lib/components/condition-builder/GroupOrItem.js +2 -2
- package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
- package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
- package/lib/components/condition-builder/InputSwitch.js +2 -2
- package/lib/components/condition-builder/InputSwitch.js.map +2 -2
- package/lib/components/condition-builder/Item.d.ts +1 -0
- package/lib/components/condition-builder/Item.js +9 -8
- package/lib/components/condition-builder/Item.js.map +2 -2
- package/lib/components/condition-builder/Value.d.ts +1 -0
- package/lib/components/condition-builder/Value.js +5 -5
- package/lib/components/condition-builder/Value.js.map +2 -2
- package/lib/components/condition-builder/index.d.ts +1 -0
- package/lib/components/condition-builder/index.js +2 -2
- package/lib/components/condition-builder/index.js.map +2 -2
- package/lib/components/formula/Editor.d.ts +87 -85
- package/lib/components/formula/Editor.js +10 -6
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.js +3 -1
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +5 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +5 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +5 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/renderers/CRUD.js +1 -1
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Form/Combo.d.ts +2 -1
- package/lib/renderers/Form/Combo.js +51 -14
- package/lib/renderers/Form/Combo.js.map +2 -2
- package/lib/renderers/Form/DiffEditor.d.ts +1 -0
- package/lib/renderers/Form/InputCity.d.ts +84 -84
- package/lib/renderers/Form/InputDate.js +10 -3
- package/lib/renderers/Form/InputDate.js.map +2 -2
- package/lib/renderers/Form/InputDateRange.js +12 -3
- package/lib/renderers/Form/InputDateRange.js.map +2 -2
- package/lib/renderers/Form/InputFile.js +13 -5
- package/lib/renderers/Form/InputFile.js.map +2 -2
- package/lib/renderers/Form/InputImage.js +12 -4
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +5 -1
- package/lib/renderers/Form/InputMonthRange.js.map +2 -2
- package/lib/renderers/Form/InputText.js +8 -4
- package/lib/renderers/Form/InputText.js.map +2 -2
- package/lib/renderers/Form/InputTree.d.ts +5 -0
- package/lib/renderers/Form/InputTree.js +51 -2
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/Item.d.ts +68 -70
- package/lib/renderers/Form/Item.js.map +2 -2
- package/lib/renderers/Form/NestedSelect.d.ts +4 -0
- package/lib/renderers/Form/NestedSelect.js +14 -5
- package/lib/renderers/Form/NestedSelect.js.map +2 -2
- package/lib/renderers/Form/Options.js +61 -27
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/Select.js +4 -2
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/TreeSelect.d.ts +11 -2
- package/lib/renderers/Form/TreeSelect.js +56 -10
- package/lib/renderers/Form/TreeSelect.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js +3 -3
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Nav.d.ts +82 -67
- package/lib/renderers/Nav.js +47 -11
- package/lib/renderers/Nav.js.map +2 -2
- package/lib/renderers/Page.d.ts +20 -0
- package/lib/renderers/Page.js +51 -14
- package/lib/renderers/Page.js.map +2 -2
- package/lib/renderers/Service.d.ts +2 -0
- package/lib/renderers/Service.js +52 -20
- package/lib/renderers/Service.js.map +2 -2
- package/lib/renderers/Spinner.d.ts +58 -2
- package/lib/renderers/Spinner.js +8 -1
- package/lib/renderers/Spinner.js.map +2 -2
- package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
- package/lib/renderers/Table/ColumnToggler.js +11 -6
- package/lib/renderers/Table/ColumnToggler.js.map +2 -2
- package/lib/renderers/Table/TableCell.js +27 -1
- package/lib/renderers/Table/TableCell.js.map +2 -2
- package/lib/renderers/Table/index.d.ts +1 -0
- package/lib/renderers/Table/index.js +19 -11
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/TooltipWrapper.d.ts +31 -6
- package/lib/renderers/TooltipWrapper.js +18 -8
- package/lib/renderers/TooltipWrapper.js.map +2 -2
- package/lib/renderers/Wizard.js +23 -14
- package/lib/renderers/Wizard.js.map +2 -2
- package/lib/store/crud.js +23 -13
- package/lib/store/crud.js.map +2 -2
- package/lib/themes/ang-ie11.css +313 -100
- package/lib/themes/ang.css +322 -103
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +429 -216
- package/lib/themes/antd.css +323 -104
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +424 -211
- package/lib/themes/cxd.css +324 -105
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +313 -100
- package/lib/themes/dark.css +322 -103
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +424 -211
- package/lib/themes/default.css +324 -105
- package/lib/themes/default.css.map +1 -1
- package/lib/types.d.ts +3 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/ColorScale.d.ts +19 -0
- package/lib/utils/ColorScale.js +104 -0
- package/lib/utils/ColorScale.js.map +13 -0
- package/lib/utils/api.js +20 -4
- package/lib/utils/api.js.map +2 -2
- package/lib/utils/dom.d.ts +1 -1
- package/lib/utils/dom.js +7 -5
- package/lib/utils/dom.js.map +2 -2
- package/package.json +3 -2
- package/schema.json +29645 -29137
- package/scss/_properties.scss +33 -15
- package/scss/components/_column-toggler.scss +21 -11
- package/scss/components/_formula.scss +1 -1
- package/scss/components/_nav.scss +51 -6
- package/scss/components/_pull-refresh.scss +25 -0
- package/scss/components/_spinner.scss +134 -56
- package/scss/components/_tooltip.scss +4 -9
- package/scss/components/form/_checks.scss +1 -0
- package/scss/components/form/_combo.scss +13 -1
- package/scss/components/form/_date-range.scss +11 -2
- package/scss/components/form/_date.scss +11 -0
- package/scss/components/form/_file.scss +4 -0
- package/scss/components/form/_form.scss +15 -8
- package/scss/components/form/_transfer.scss +3 -2
- package/scss/themes/_antd-variables.scss +1 -1
- package/scss/themes/_common.scss +1 -0
- package/scss/themes/_cxd-variables.scss +2 -2
- package/sdk/ang-ie11.css +286 -80
- package/sdk/ang.css +294 -82
- package/sdk/antd-ie11.css +402 -196
- package/sdk/antd.css +295 -83
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/cxd-ie11.css +397 -191
- package/sdk/cxd.css +296 -84
- package/sdk/dark-ie11.css +286 -80
- package/sdk/dark.css +294 -82
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +5 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +17 -17
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +397 -191
- package/sdk/sdk.css +296 -84
- package/sdk/sdk.js +1300 -1260
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/Schema.ts +10 -0
- package/src/actions/PageAction.ts +62 -0
- package/src/actions/index.ts +1 -0
- package/src/components/Cascader.tsx +37 -11
- package/src/components/Checkbox.tsx +1 -1
- package/src/components/DatePicker.tsx +7 -5
- package/src/components/Drawer.tsx +1 -0
- package/src/components/Modal.tsx +1 -0
- package/src/components/Overlay.tsx +6 -3
- package/src/components/PullRefresh.tsx +197 -0
- package/src/components/Spinner.tsx +77 -42
- package/src/components/Tooltip.tsx +12 -3
- package/src/components/TooltipWrapper.tsx +120 -33
- package/src/components/Tree.tsx +19 -5
- package/src/components/calendar/TimeView.tsx +12 -0
- package/src/components/condition-builder/Expression.tsx +6 -1
- package/src/components/condition-builder/Field.tsx +5 -1
- package/src/components/condition-builder/Group.tsx +4 -1
- package/src/components/condition-builder/GroupOrItem.tsx +4 -1
- package/src/components/condition-builder/InputSwitch.tsx +4 -1
- package/src/components/condition-builder/Item.tsx +28 -4
- package/src/components/condition-builder/Value.tsx +7 -1
- package/src/components/condition-builder/index.tsx +4 -2
- package/src/components/formula/Editor.tsx +20 -15
- package/src/components/formula/Picker.tsx +9 -5
- package/src/locale/de-DE.ts +5 -1
- package/src/locale/en-US.ts +5 -1
- package/src/locale/zh-CN.ts +5 -1
- package/src/renderers/CRUD.tsx +1 -1
- package/src/renderers/Form/Combo.tsx +102 -46
- package/src/renderers/Form/InputDate.tsx +18 -4
- package/src/renderers/Form/InputDateRange.tsx +19 -2
- package/src/renderers/Form/InputFile.tsx +16 -4
- package/src/renderers/Form/InputImage.tsx +15 -3
- package/src/renderers/Form/InputMonthRange.tsx +7 -1
- package/src/renderers/Form/InputText.tsx +14 -2
- package/src/renderers/Form/InputTree.tsx +40 -2
- package/src/renderers/Form/Item.tsx +6 -0
- package/src/renderers/Form/NestedSelect.tsx +23 -4
- package/src/renderers/Form/Options.tsx +26 -7
- package/src/renderers/Form/Select.tsx +5 -3
- package/src/renderers/Form/TreeSelect.tsx +47 -9
- package/src/renderers/Form/wrapControl.tsx +2 -2
- package/src/renderers/Nav.tsx +230 -32
- package/src/renderers/Page.tsx +89 -33
- package/src/renderers/Service.tsx +62 -27
- package/src/renderers/Spinner.tsx +85 -3
- package/src/renderers/Table/ColumnToggler.tsx +36 -11
- package/src/renderers/Table/TableCell.tsx +39 -1
- package/src/renderers/Table/index.tsx +34 -21
- package/src/renderers/TooltipWrapper.tsx +64 -28
- package/src/renderers/Wizard.tsx +36 -25
- package/src/store/crud.ts +10 -0
- package/src/types.ts +4 -0
- package/src/utils/ColorScale.ts +138 -0
- package/src/utils/api.ts +26 -4
- package/src/utils/dom.tsx +7 -6
package/lib/components/Modal.js
CHANGED
@@ -94,7 +94,7 @@ var Modal = /** @class */ (function (_super) {
|
|
94
94
|
Modal.prototype.render = function () {
|
95
95
|
var _this = this;
|
96
96
|
var _a = this.props, className = _a.className, contentClassName = _a.contentClassName, children = _a.children, container = _a.container, show = _a.show, size = _a.size, overlay = _a.overlay, cx = _a.classnames;
|
97
|
-
return (react_1.default.createElement(Transition_1.default, { mountOnEnter: true, unmountOnExit: true, in: show, timeout: 500, onEnter: this.handleEnter, onExited: this.handleExited, onEntered: this.handleEntered }, function (status) {
|
97
|
+
return (react_1.default.createElement(Transition_1.default, { mountOnEnter: true, unmountOnExit: true, appear: true, in: show, timeout: 500, onEnter: this.handleEnter, onExited: this.handleExited, onEntered: this.handleEntered }, function (status) {
|
98
98
|
var _a;
|
99
99
|
return (react_1.default.createElement(Portal_1.default, { container: container },
|
100
100
|
react_1.default.createElement("div", { ref: _this.modalRef, role: "dialog", className: cx("amis-dialog-widget Modal", (_a = {},
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/Modal.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;;;AAEH,6DAA0B;AAC1B,2FAK2C;AAC3C,8EAA2C;AAC3C,+CAA8D;AAC9D,kCAA6D;AAC7D,iCAA6B;AAC7B,oCAAkD;AAClD,0CAA4D;AAiB5D,IAAM,UAAU;IAGd,GAAC,qBAAQ,IAAG,IAAI;IAChB,GAAC,oBAAO,IAAG,IAAI;IACf,GAAC,oBAAO,IAAG,KAAK;OACjB,CAAC;AACF;IAA2B,sCAAuC;IAAlE;QAAA,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Modal\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport Transition, {\n ENTERED,\n ENTERING,\n EXITING,\n EXITED\n} from 'react-transition-group/Transition';\nimport Portal from 'react-overlays/Portal';\nimport {current, addModal, removeModal} from './ModalManager';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {Icon} from './icons';\nimport {LocaleProps, localeable} from '../locale';\nimport {autobind, getScrollbarWidth} from '../utils/helper';\n\nexport interface ModalProps extends ThemeProps, LocaleProps {\n className?: string;\n contentClassName?: string;\n size?: any;\n overlay?: boolean;\n onHide: (e: any) => void;\n closeOnEsc?: boolean;\n closeOnOutside?: boolean;\n container?: any;\n show?: boolean;\n disabled?: boolean;\n onExited?: () => void;\n onEntered?: () => void;\n}\nexport interface ModalState {}\nconst fadeStyles: {\n [propName: string]: string;\n} = {\n [ENTERING]: 'in',\n [ENTERED]: 'in',\n [EXITING]: 'out'\n};\nexport class Modal extends React.Component<ModalProps, ModalState> {\n static defaultProps = {\n container: document.body,\n size: '',\n overlay: true\n };\n\n isRootClosed = false;\n modalDom: HTMLElement;\n\n static Header = themeable(\n localeable(\n ({\n classnames: cx,\n className,\n showCloseButton,\n onClose,\n children,\n classPrefix,\n translate: __,\n ...rest\n }: ThemeProps &\n LocaleProps & {\n className?: string;\n showCloseButton?: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-header', className)}>\n {showCloseButton !== false ? (\n <a\n data-tooltip={__('Dialog.close')}\n data-position=\"left\"\n onClick={onClose}\n className={cx('Modal-close')}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n {children}\n </div>\n )\n )\n );\n\n static Title = themeable(\n ({\n classnames: cx,\n className,\n children,\n classPrefix,\n ...rest\n }: ThemeProps & {\n className?: string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-title', className)}>\n {children}\n </div>\n )\n );\n\n static Body = themeable(\n ({\n classnames: cx,\n className,\n children,\n classPrefix,\n ...rest\n }: ThemeProps & {\n className?: string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-body', className)}>\n {children}\n </div>\n )\n );\n\n static Footer = themeable(\n ({\n classnames: cx,\n className,\n children,\n classPrefix,\n ...rest\n }: ThemeProps & {\n className?: string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-footer', className)}>\n {children}\n </div>\n )\n );\n\n componentDidMount() {\n if (this.props.show) {\n this.handleEnter();\n this.handleEntered();\n }\n\n document.body.addEventListener('click', this.handleRootClickCapture, true);\n document.body.addEventListener('click', this.handleRootClick);\n }\n\n componentWillUnmount() {\n if (this.props.show) {\n this.handleExited();\n }\n\n document.body.removeEventListener('click', this.handleRootClick);\n document.body.removeEventListener(\n 'click',\n this.handleRootClickCapture,\n true\n );\n }\n\n handleEnter = () => {\n document.body.classList.add(`is-modalOpened`);\n if (\n window.innerWidth - document.documentElement.clientWidth > 0 ||\n document.body.scrollHeight > document.body.clientHeight\n ) {\n const scrollbarWidth = getScrollbarWidth();\n document.body.style.width = `calc(100% - ${scrollbarWidth}px)`;\n }\n };\n\n handleEntered = () => {\n const onEntered = this.props.onEntered;\n\n onEntered && onEntered();\n };\n handleExited = () => {\n const onExited = this.props.onExited;\n onExited && onExited();\n setTimeout(() => {\n if (!document.querySelector('.amis-dialog-widget')) {\n document.body.classList.remove(`is-modalOpened`);\n document.body.style.width = '';\n }\n }, 200);\n };\n\n modalRef = (ref: any) => {\n this.modalDom = ref;\n const {classPrefix: ns} = this.props;\n if (ref) {\n addModal(this);\n (ref as HTMLElement).classList.add(`${ns}Modal--${current()}th`);\n } else {\n removeModal(this);\n }\n };\n\n @autobind\n handleRootClickCapture(e: MouseEvent) {\n const target = e.target as HTMLElement;\n const {closeOnOutside, classPrefix: ns} = this.props;\n const isLeftButton =\n (e.button === 1 && window.event !== null) || e.button === 0;\n\n this.isRootClosed = !!(\n isLeftButton &&\n closeOnOutside &&\n target &&\n this.modalDom &&\n ((!this.modalDom.contains(target) && !target.closest('[role=dialog]')) ||\n (target.matches(`.${ns}Modal`) && target === this.modalDom))\n ); // 干脆过滤掉来自弹框里面的点击\n }\n\n @autobind\n handleRootClick(e: MouseEvent) {\n const {onHide} = this.props;\n this.isRootClosed && !e.defaultPrevented && onHide(e);\n }\n\n render() {\n const {\n className,\n contentClassName,\n children,\n container,\n show,\n size,\n overlay,\n classnames: cx\n } = this.props;\n\n return (\n <Transition\n mountOnEnter\n unmountOnExit\n in={show}\n timeout={500}\n onEnter={this.handleEnter}\n onExited={this.handleExited}\n onEntered={this.handleEntered}\n >\n {(status: string) => (\n <Portal container={container}>\n <div\n ref={this.modalRef}\n role=\"dialog\"\n className={cx(\n `amis-dialog-widget Modal`,\n {\n [`Modal--${size}`]: size\n },\n className\n )}\n >\n {overlay ? (\n <div className={cx(`Modal-overlay`, fadeStyles[status])} />\n ) : null}\n <div\n className={cx(\n `Modal-content`,\n contentClassName,\n fadeStyles[status]\n )}\n >\n {status === EXITED ? null : children}\n </div>\n </div>\n </Portal>\n )}\n </Transition>\n );\n }\n}\n\nconst FinalModal = themeable(localeable(Modal));\n\nexport default FinalModal as typeof FinalModal & {\n Header: typeof Modal.Header;\n Title: typeof Modal.Title;\n Body: typeof Modal.Body;\n Footer: typeof Modal.Footer;\n};\n"
|
11
|
+
"/**\n * @file Modal\n * @description\n * @author fex\n */\n\nimport React from 'react';\nimport Transition, {\n ENTERED,\n ENTERING,\n EXITING,\n EXITED\n} from 'react-transition-group/Transition';\nimport Portal from 'react-overlays/Portal';\nimport {current, addModal, removeModal} from './ModalManager';\nimport {ClassNamesFn, themeable, ThemeProps} from '../theme';\nimport {Icon} from './icons';\nimport {LocaleProps, localeable} from '../locale';\nimport {autobind, getScrollbarWidth} from '../utils/helper';\n\nexport interface ModalProps extends ThemeProps, LocaleProps {\n className?: string;\n contentClassName?: string;\n size?: any;\n overlay?: boolean;\n onHide: (e: any) => void;\n closeOnEsc?: boolean;\n closeOnOutside?: boolean;\n container?: any;\n show?: boolean;\n disabled?: boolean;\n onExited?: () => void;\n onEntered?: () => void;\n}\nexport interface ModalState {}\nconst fadeStyles: {\n [propName: string]: string;\n} = {\n [ENTERING]: 'in',\n [ENTERED]: 'in',\n [EXITING]: 'out'\n};\nexport class Modal extends React.Component<ModalProps, ModalState> {\n static defaultProps = {\n container: document.body,\n size: '',\n overlay: true\n };\n\n isRootClosed = false;\n modalDom: HTMLElement;\n\n static Header = themeable(\n localeable(\n ({\n classnames: cx,\n className,\n showCloseButton,\n onClose,\n children,\n classPrefix,\n translate: __,\n ...rest\n }: ThemeProps &\n LocaleProps & {\n className?: string;\n showCloseButton?: boolean;\n onClose?: () => void;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-header', className)}>\n {showCloseButton !== false ? (\n <a\n data-tooltip={__('Dialog.close')}\n data-position=\"left\"\n onClick={onClose}\n className={cx('Modal-close')}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n ) : null}\n {children}\n </div>\n )\n )\n );\n\n static Title = themeable(\n ({\n classnames: cx,\n className,\n children,\n classPrefix,\n ...rest\n }: ThemeProps & {\n className?: string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-title', className)}>\n {children}\n </div>\n )\n );\n\n static Body = themeable(\n ({\n classnames: cx,\n className,\n children,\n classPrefix,\n ...rest\n }: ThemeProps & {\n className?: string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-body', className)}>\n {children}\n </div>\n )\n );\n\n static Footer = themeable(\n ({\n classnames: cx,\n className,\n children,\n classPrefix,\n ...rest\n }: ThemeProps & {\n className?: string;\n children?: React.ReactNode;\n } & React.HTMLAttributes<HTMLDivElement>) => (\n <div {...rest} className={cx('Modal-footer', className)}>\n {children}\n </div>\n )\n );\n\n componentDidMount() {\n if (this.props.show) {\n this.handleEnter();\n this.handleEntered();\n }\n\n document.body.addEventListener('click', this.handleRootClickCapture, true);\n document.body.addEventListener('click', this.handleRootClick);\n }\n\n componentWillUnmount() {\n if (this.props.show) {\n this.handleExited();\n }\n\n document.body.removeEventListener('click', this.handleRootClick);\n document.body.removeEventListener(\n 'click',\n this.handleRootClickCapture,\n true\n );\n }\n\n handleEnter = () => {\n document.body.classList.add(`is-modalOpened`);\n if (\n window.innerWidth - document.documentElement.clientWidth > 0 ||\n document.body.scrollHeight > document.body.clientHeight\n ) {\n const scrollbarWidth = getScrollbarWidth();\n document.body.style.width = `calc(100% - ${scrollbarWidth}px)`;\n }\n };\n\n handleEntered = () => {\n const onEntered = this.props.onEntered;\n\n onEntered && onEntered();\n };\n handleExited = () => {\n const onExited = this.props.onExited;\n onExited && onExited();\n setTimeout(() => {\n if (!document.querySelector('.amis-dialog-widget')) {\n document.body.classList.remove(`is-modalOpened`);\n document.body.style.width = '';\n }\n }, 200);\n };\n\n modalRef = (ref: any) => {\n this.modalDom = ref;\n const {classPrefix: ns} = this.props;\n if (ref) {\n addModal(this);\n (ref as HTMLElement).classList.add(`${ns}Modal--${current()}th`);\n } else {\n removeModal(this);\n }\n };\n\n @autobind\n handleRootClickCapture(e: MouseEvent) {\n const target = e.target as HTMLElement;\n const {closeOnOutside, classPrefix: ns} = this.props;\n const isLeftButton =\n (e.button === 1 && window.event !== null) || e.button === 0;\n\n this.isRootClosed = !!(\n isLeftButton &&\n closeOnOutside &&\n target &&\n this.modalDom &&\n ((!this.modalDom.contains(target) && !target.closest('[role=dialog]')) ||\n (target.matches(`.${ns}Modal`) && target === this.modalDom))\n ); // 干脆过滤掉来自弹框里面的点击\n }\n\n @autobind\n handleRootClick(e: MouseEvent) {\n const {onHide} = this.props;\n this.isRootClosed && !e.defaultPrevented && onHide(e);\n }\n\n render() {\n const {\n className,\n contentClassName,\n children,\n container,\n show,\n size,\n overlay,\n classnames: cx\n } = this.props;\n\n return (\n <Transition\n mountOnEnter\n unmountOnExit\n appear\n in={show}\n timeout={500}\n onEnter={this.handleEnter}\n onExited={this.handleExited}\n onEntered={this.handleEntered}\n >\n {(status: string) => (\n <Portal container={container}>\n <div\n ref={this.modalRef}\n role=\"dialog\"\n className={cx(\n `amis-dialog-widget Modal`,\n {\n [`Modal--${size}`]: size\n },\n className\n )}\n >\n {overlay ? (\n <div className={cx(`Modal-overlay`, fadeStyles[status])} />\n ) : null}\n <div\n className={cx(\n `Modal-content`,\n contentClassName,\n fadeStyles[status]\n )}\n >\n {status === EXITED ? null : children}\n </div>\n </div>\n </Portal>\n )}\n </Transition>\n );\n }\n}\n\nconst FinalModal = themeable(localeable(Modal));\n\nexport default FinalModal as typeof FinalModal & {\n Header: typeof Modal.Header;\n Title: typeof Modal.Title;\n Body: typeof Modal.Body;\n Footer: typeof Modal.Footer;\n};\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -15,6 +15,7 @@ interface OverlayProps {
|
|
15
15
|
container?: React.ReactNode | Function;
|
16
16
|
target?: React.ReactNode | Function;
|
17
17
|
watchTargetSizeChange?: boolean;
|
18
|
+
offset?: [number, number];
|
18
19
|
onEnter?(node: HTMLElement): any;
|
19
20
|
onEntering?(node: HTMLElement): any;
|
20
21
|
onEntered?(node: HTMLElement): any;
|
@@ -82,7 +82,7 @@ var Position = /** @class */ (function (_super) {
|
|
82
82
|
}));
|
83
83
|
}
|
84
84
|
}
|
85
|
-
this.setState((0, dom_1.calculatePosition)(this.props.placement, overlay, target, container, this.props.containerPadding));
|
85
|
+
this.setState((0, dom_1.calculatePosition)(this.props.placement, overlay, target, container, this.props.containerPadding, this.props.offset));
|
86
86
|
};
|
87
87
|
Position.prototype.componentDidMount = function () {
|
88
88
|
this.updatePosition(this.getTarget());
|
@@ -149,7 +149,7 @@ var Overlay = /** @class */ (function (_super) {
|
|
149
149
|
}
|
150
150
|
};
|
151
151
|
Overlay.prototype.render = function () {
|
152
|
-
var _a = this.props, container = _a.container, containerPadding = _a.containerPadding, target = _a.target, placement = _a.placement, shouldUpdatePosition = _a.shouldUpdatePosition, rootClose = _a.rootClose, children = _a.children, watchTargetSizeChange = _a.watchTargetSizeChange, Transition = _a.transition, props = (0, tslib_1.__rest)(_a, ["container", "containerPadding", "target", "placement", "shouldUpdatePosition", "rootClose", "children", "watchTargetSizeChange", "transition"]);
|
152
|
+
var _a = this.props, container = _a.container, containerPadding = _a.containerPadding, target = _a.target, placement = _a.placement, shouldUpdatePosition = _a.shouldUpdatePosition, rootClose = _a.rootClose, children = _a.children, watchTargetSizeChange = _a.watchTargetSizeChange, Transition = _a.transition, offset = _a.offset, props = (0, tslib_1.__rest)(_a, ["container", "containerPadding", "target", "placement", "shouldUpdatePosition", "rootClose", "children", "watchTargetSizeChange", "transition", "offset"]);
|
153
153
|
var mountOverlay = props.show || (Transition && !this.state.exited);
|
154
154
|
if (!mountOverlay) {
|
155
155
|
// Don't bother showing anything if we don't have to.
|
@@ -165,7 +165,8 @@ var Overlay = /** @class */ (function (_super) {
|
|
165
165
|
containerPadding: containerPadding,
|
166
166
|
target: target,
|
167
167
|
placement: placement,
|
168
|
-
shouldUpdatePosition: shouldUpdatePosition
|
168
|
+
shouldUpdatePosition: shouldUpdatePosition,
|
169
|
+
offset: offset
|
169
170
|
}, { ref: this.positionRef }), child));
|
170
171
|
if (Transition) {
|
171
172
|
var onExit = props.onExit, onExiting = props.onExiting, onEnter = props.onEnter, onEntering = props.onEntering, onEntered = props.onEntered;
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/components/Overlay.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";AAAA;;;;GAIG;;;AAEH,8EAA2C;AAC3C,uEAAoC;AACpC,kEAAgD;AAChD,0DAA0C;AAC1C,oCAA4E;AAC5E,0CAAgE;AAChE,wDAAsE;AACtE,gDAA6C;AAE7C,SAAS,QAAQ,CAAC,IAAiB,EAAE,QAAoB;IACvD,IAAM,OAAO,GAAG;QACd,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC;IACF,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,OAAO;QACL,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC;AACJ,CAAC;AAED;IAAuB,yCAAyB;IAa9C,kBAAY,KAAU;QAAtB,YACE,kBAAM,KAAK,CAAC,SAUb;
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"/**\n * @file Overlay\n * @description\n * @author fex\n */\n\nimport Portal from 'react-overlays/Portal';\nimport classNames from 'classnames';\nimport ReactDOM, {findDOMNode} from 'react-dom';\nimport React, {cloneElement} from 'react';\nimport {calculatePosition, getContainer, ownerDocument} from '../utils/dom';\nimport {autobind, getScrollParent, noop} from '../utils/helper';\nimport {resizeSensor, getComputedStyle} from '../utils/resize-sensor';\nimport {RootClose} from '../utils/RootClose';\n\nfunction onScroll(elem: HTMLElement, callback: () => void) {\n const handler = () => {\n requestAnimationFrame(callback);\n };\n elem.addEventListener('scroll', handler);\n return function () {\n elem.removeEventListener('scroll', handler);\n };\n}\n\nclass Position extends React.Component<any, any> {\n props: any;\n _lastTarget: any;\n resizeDispose: Array<() => void>;\n watchedTarget: any;\n setState: (state: any) => void;\n\n static defaultProps = {\n containerPadding: 0,\n placement: 'right',\n shouldUpdatePosition: false\n };\n\n constructor(props: any) {\n super(props);\n\n this.state = {\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n };\n\n this._lastTarget = null;\n }\n\n updatePosition(target: any) {\n this._lastTarget = target;\n\n if (!target) {\n return this.setState({\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n });\n }\n\n const watchTargetSizeChange = this.props.watchTargetSizeChange;\n const overlay = findDOMNode(this as any) as HTMLElement;\n const container = getContainer(\n this.props.container,\n ownerDocument(this).body\n );\n\n if (\n (!this.watchedTarget || this.watchedTarget !== target) &&\n getComputedStyle(target, 'position') !== 'static'\n ) {\n this.resizeDispose?.forEach(fn => fn());\n this.watchedTarget = target;\n this.resizeDispose = [\n watchTargetSizeChange !== false\n ? resizeSensor(target, () => this.updatePosition(target))\n : noop,\n resizeSensor(overlay, () => this.updatePosition(target))\n ];\n\n const scrollParent = getScrollParent(target);\n if (scrollParent && container.contains(scrollParent)) {\n this.resizeDispose.push(\n onScroll(scrollParent, () => {\n this.updatePosition(target);\n })\n );\n }\n }\n\n this.setState(\n calculatePosition(\n this.props.placement,\n overlay,\n target,\n container,\n this.props.containerPadding\n )\n );\n }\n\n componentDidMount() {\n this.updatePosition(this.getTarget());\n }\n\n getTarget = () => {\n const {target} = this.props;\n const targetElement = typeof target === 'function' ? target() : target;\n return (targetElement && ReactDOM.findDOMNode(targetElement)) || null;\n };\n\n componentDidUpdate(prevProps: any) {\n this.maybeUpdatePosition(this.props.placement !== prevProps.placement);\n }\n\n maybeUpdatePosition = (placementChanged: any) => {\n const target = this.getTarget();\n\n if (\n !this.props.shouldUpdatePosition &&\n target === this._lastTarget &&\n !placementChanged\n ) {\n return;\n }\n\n this.updatePosition(target);\n };\n\n componentWillUnmount() {\n this.resizeDispose?.forEach(fn => fn());\n }\n\n render() {\n const {children, className, ...props} = this.props;\n const {positionLeft, positionTop, ...arrowPosition} = this.state;\n\n // These should not be forwarded to the child.\n delete props.target;\n delete props.container;\n delete props.containerPadding;\n delete props.shouldUpdatePosition;\n\n const child = React.Children.only(children);\n return cloneElement(child, {\n ...props,\n ...arrowPosition,\n // FIXME: Don't forward `positionLeft` and `positionTop` via both props\n // and `props.style`.\n positionLeft,\n positionTop,\n className: classNames(className, child.props.className),\n style: {\n ...child.props.style,\n left: positionLeft,\n top: positionTop\n }\n });\n }\n}\n\ninterface OverlayProps {\n placement?: string;\n show?: boolean;\n transition?: React.ElementType;\n containerPadding?: number;\n shouldUpdatePosition?: boolean;\n rootClose?: boolean;\n onHide?(props: any, ...args: any[]): any;\n container?: React.ReactNode | Function;\n target?: React.ReactNode | Function;\n watchTargetSizeChange?: boolean;\n
|
11
|
+
"/**\n * @file Overlay\n * @description\n * @author fex\n */\n\nimport Portal from 'react-overlays/Portal';\nimport classNames from 'classnames';\nimport ReactDOM, {findDOMNode} from 'react-dom';\nimport React, {cloneElement} from 'react';\nimport {calculatePosition, getContainer, ownerDocument} from '../utils/dom';\nimport {autobind, getScrollParent, noop} from '../utils/helper';\nimport {resizeSensor, getComputedStyle} from '../utils/resize-sensor';\nimport {RootClose} from '../utils/RootClose';\n\nfunction onScroll(elem: HTMLElement, callback: () => void) {\n const handler = () => {\n requestAnimationFrame(callback);\n };\n elem.addEventListener('scroll', handler);\n return function () {\n elem.removeEventListener('scroll', handler);\n };\n}\n\nclass Position extends React.Component<any, any> {\n props: any;\n _lastTarget: any;\n resizeDispose: Array<() => void>;\n watchedTarget: any;\n setState: (state: any) => void;\n\n static defaultProps = {\n containerPadding: 0,\n placement: 'right',\n shouldUpdatePosition: false\n };\n\n constructor(props: any) {\n super(props);\n\n this.state = {\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n };\n\n this._lastTarget = null;\n }\n\n updatePosition(target: any) {\n this._lastTarget = target;\n\n if (!target) {\n return this.setState({\n positionLeft: 0,\n positionTop: 0,\n arrowOffsetLeft: null,\n arrowOffsetTop: null\n });\n }\n\n const watchTargetSizeChange = this.props.watchTargetSizeChange;\n const overlay = findDOMNode(this as any) as HTMLElement;\n const container = getContainer(\n this.props.container,\n ownerDocument(this).body\n );\n\n if (\n (!this.watchedTarget || this.watchedTarget !== target) &&\n getComputedStyle(target, 'position') !== 'static'\n ) {\n this.resizeDispose?.forEach(fn => fn());\n this.watchedTarget = target;\n this.resizeDispose = [\n watchTargetSizeChange !== false\n ? resizeSensor(target, () => this.updatePosition(target))\n : noop,\n resizeSensor(overlay, () => this.updatePosition(target))\n ];\n\n const scrollParent = getScrollParent(target);\n if (scrollParent && container.contains(scrollParent)) {\n this.resizeDispose.push(\n onScroll(scrollParent, () => {\n this.updatePosition(target);\n })\n );\n }\n }\n\n this.setState(\n calculatePosition(\n this.props.placement,\n overlay,\n target,\n container,\n this.props.containerPadding,\n this.props.offset\n )\n );\n }\n\n componentDidMount() {\n this.updatePosition(this.getTarget());\n }\n\n getTarget = () => {\n const {target} = this.props;\n const targetElement = typeof target === 'function' ? target() : target;\n return (targetElement && ReactDOM.findDOMNode(targetElement)) || null;\n };\n\n componentDidUpdate(prevProps: any) {\n this.maybeUpdatePosition(this.props.placement !== prevProps.placement);\n }\n\n maybeUpdatePosition = (placementChanged: any) => {\n const target = this.getTarget();\n\n if (\n !this.props.shouldUpdatePosition &&\n target === this._lastTarget &&\n !placementChanged\n ) {\n return;\n }\n\n this.updatePosition(target);\n };\n\n componentWillUnmount() {\n this.resizeDispose?.forEach(fn => fn());\n }\n\n render() {\n const {children, className, ...props} = this.props;\n const {positionLeft, positionTop, ...arrowPosition} = this.state;\n\n // These should not be forwarded to the child.\n delete props.target;\n delete props.container;\n delete props.containerPadding;\n delete props.shouldUpdatePosition;\n\n const child = React.Children.only(children);\n return cloneElement(child, {\n ...props,\n ...arrowPosition,\n // FIXME: Don't forward `positionLeft` and `positionTop` via both props\n // and `props.style`.\n positionLeft,\n positionTop,\n className: classNames(className, child.props.className),\n style: {\n ...child.props.style,\n left: positionLeft,\n top: positionTop\n }\n });\n }\n}\n\ninterface OverlayProps {\n placement?: string;\n show?: boolean;\n transition?: React.ElementType;\n containerPadding?: number;\n shouldUpdatePosition?: boolean;\n rootClose?: boolean;\n onHide?(props: any, ...args: any[]): any;\n container?: React.ReactNode | Function;\n target?: React.ReactNode | Function;\n watchTargetSizeChange?: boolean;\n offset?: [number, number];\n onEnter?(node: HTMLElement): any;\n onEntering?(node: HTMLElement): any;\n onEntered?(node: HTMLElement): any;\n onExit?(node: HTMLElement): any;\n onExiting?(node: HTMLElement): any;\n onExited?(node: HTMLElement): any;\n}\ninterface OverlayState {\n exited: boolean;\n}\nexport default class Overlay extends React.Component<\n OverlayProps,\n OverlayState\n> {\n static defaultProps = {\n placement: 'auto'\n };\n constructor(props: OverlayProps) {\n super(props as any);\n\n this.state = {\n exited: !props.show\n };\n }\n\n position: any = null;\n positionRef = (position: any) => {\n this.position = position;\n };\n\n updatePosition() {\n this.position?.maybeUpdatePosition(true);\n }\n\n componentDidUpdate(prevProps: OverlayProps) {\n const props = this.props;\n if (prevProps.show !== props.show && props.show) {\n this.setState({exited: false});\n } else if (props.transition !== prevProps.transition && !props.transition) {\n // Otherwise let handleHidden take care of marking exited.\n this.setState({exited: true});\n }\n }\n\n @autobind\n onHiddenListener(node: HTMLElement) {\n this.setState({exited: true});\n\n if (this.props.onExited) {\n this.props.onExited(node);\n }\n }\n\n render() {\n const {\n container,\n containerPadding,\n target,\n placement,\n shouldUpdatePosition,\n rootClose,\n children,\n watchTargetSizeChange,\n transition: Transition,\n offset,\n ...props\n } = this.props;\n\n const mountOverlay = props.show || (Transition && !this.state.exited);\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n let child = children;\n\n // Position is be inner-most because it adds inline styles into the child,\n // which the other wrappers don't forward correctly.\n child = (\n // @ts-ignore\n <Position\n {...{\n container,\n containerPadding,\n target,\n placement,\n shouldUpdatePosition,\n offset\n }}\n ref={this.positionRef}\n >\n {child}\n </Position>\n );\n\n if (Transition) {\n let {onExit, onExiting, onEnter, onEntering, onEntered} = props;\n\n // This animates the child node by injecting props, so it must precede\n // anything that adds a wrapping div.\n child = (\n <Transition\n in={props.show}\n appear\n onExit={onExit}\n onExiting={onExiting}\n onExited={this.onHiddenListener}\n onEnter={onEnter}\n onEntering={onEntering}\n onEntered={onEntered}\n >\n {child}\n </Transition>\n );\n }\n\n // This goes after everything else because it adds a wrapping div.\n if (rootClose) {\n return (\n // @ts-ignore\n <Portal container={container}>\n <RootClose onRootClose={props.onHide}>\n {(ref: any) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n ref: ref\n });\n }\n\n return <div ref={ref}>{child}</div>;\n }}\n </RootClose>\n </Portal>\n );\n }\n\n // @ts-ignore\n return <Portal container={container}>{child}</Portal>;\n }\n}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -0,0 +1,86 @@
|
|
1
|
+
/**
|
2
|
+
* @file PullRefresh.tsx
|
3
|
+
* @description 下拉刷新
|
4
|
+
* @author hongyang03
|
5
|
+
*/
|
6
|
+
/// <reference types="hoist-non-react-statics" />
|
7
|
+
import React from 'react';
|
8
|
+
import { ClassNamesFn } from '../theme';
|
9
|
+
import { TranslateFn } from '../locale';
|
10
|
+
export interface PullRefreshProps {
|
11
|
+
classnames: ClassNamesFn;
|
12
|
+
classPrefix: string;
|
13
|
+
translate: TranslateFn;
|
14
|
+
disabled?: boolean;
|
15
|
+
pullingText?: string;
|
16
|
+
loosingText?: string;
|
17
|
+
loadingText?: string;
|
18
|
+
successText?: string;
|
19
|
+
onRefresh?: () => void;
|
20
|
+
loading?: boolean;
|
21
|
+
successDuration?: number;
|
22
|
+
loadingDuration?: number;
|
23
|
+
}
|
24
|
+
declare type statusText = 'normal' | 'pulling' | 'loosing' | 'success' | 'loading';
|
25
|
+
export interface PullRefreshState {
|
26
|
+
status: statusText;
|
27
|
+
offsetY: number;
|
28
|
+
}
|
29
|
+
declare const _default: {
|
30
|
+
new (props: (Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps) | Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>): {
|
31
|
+
render(): JSX.Element;
|
32
|
+
context: any;
|
33
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
34
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
35
|
+
readonly props: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps> & Readonly<{
|
36
|
+
children?: React.ReactNode;
|
37
|
+
}>;
|
38
|
+
state: Readonly<{}>;
|
39
|
+
refs: {
|
40
|
+
[key: string]: React.ReactInstance;
|
41
|
+
};
|
42
|
+
componentDidMount?(): void;
|
43
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
44
|
+
componentWillUnmount?(): void;
|
45
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
46
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
|
47
|
+
componentDidUpdate?(prevProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
48
|
+
componentWillMount?(): void;
|
49
|
+
UNSAFE_componentWillMount?(): void;
|
50
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
|
51
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
|
52
|
+
componentWillUpdate?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
53
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
54
|
+
};
|
55
|
+
new (props: Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps, context: any): {
|
56
|
+
render(): JSX.Element;
|
57
|
+
context: any;
|
58
|
+
setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
|
59
|
+
forceUpdate(callback?: (() => void) | undefined): void;
|
60
|
+
readonly props: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps> & Readonly<{
|
61
|
+
children?: React.ReactNode;
|
62
|
+
}>;
|
63
|
+
state: Readonly<{}>;
|
64
|
+
refs: {
|
65
|
+
[key: string]: React.ReactInstance;
|
66
|
+
};
|
67
|
+
componentDidMount?(): void;
|
68
|
+
shouldComponentUpdate?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): boolean;
|
69
|
+
componentWillUnmount?(): void;
|
70
|
+
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
|
71
|
+
getSnapshotBeforeUpdate?(prevProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>): any;
|
72
|
+
componentDidUpdate?(prevProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, prevState: Readonly<{}>, snapshot?: any): void;
|
73
|
+
componentWillMount?(): void;
|
74
|
+
UNSAFE_componentWillMount?(): void;
|
75
|
+
componentWillReceiveProps?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
|
76
|
+
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextContext: any): void;
|
77
|
+
componentWillUpdate?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
78
|
+
UNSAFE_componentWillUpdate?(nextProps: Readonly<Omit<PullRefreshProps & React.RefAttributes<{}>, keyof import("../theme").ThemeProps> & import("../theme").ThemeOutterProps>, nextState: Readonly<{}>, nextContext: any): void;
|
79
|
+
};
|
80
|
+
displayName: string;
|
81
|
+
contextType: React.Context<string>;
|
82
|
+
ComposedComponent: React.ComponentType<React.ForwardRefExoticComponent<PullRefreshProps & React.RefAttributes<{}>>>;
|
83
|
+
} & import("hoist-non-react-statics").NonReactStatics<React.ForwardRefExoticComponent<PullRefreshProps & React.RefAttributes<{}>>, {}> & {
|
84
|
+
ComposedComponent: React.ForwardRefExoticComponent<PullRefreshProps & React.RefAttributes<{}>>;
|
85
|
+
};
|
86
|
+
export default _default;
|
@@ -0,0 +1,135 @@
|
|
1
|
+
"use strict";
|
2
|
+
/**
|
3
|
+
* @file PullRefresh.tsx
|
4
|
+
* @description 下拉刷新
|
5
|
+
* @author hongyang03
|
6
|
+
*/
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
8
|
+
var tslib_1 = require("tslib");
|
9
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
10
|
+
var theme_1 = require("../theme");
|
11
|
+
var hooks_1 = require("../hooks");
|
12
|
+
var use_touch_1 = (0, tslib_1.__importDefault)(require("../hooks/use-touch"));
|
13
|
+
var icons_1 = require("./icons");
|
14
|
+
var defaultProps = {
|
15
|
+
successDuration: 0,
|
16
|
+
loadingDuration: 0
|
17
|
+
};
|
18
|
+
var defaultHeaderHeight = 28;
|
19
|
+
var PullRefresh = (0, react_1.forwardRef)(function (props, ref) {
|
20
|
+
var cx = props.classnames, __ = props.translate, children = props.children, successDuration = props.successDuration, loadingDuration = props.loadingDuration;
|
21
|
+
var refreshText = {
|
22
|
+
pullingText: __('pullRefresh.pullingText'),
|
23
|
+
loosingText: __('pullRefresh.loosingText'),
|
24
|
+
loadingText: __('pullRefresh.loadingText'),
|
25
|
+
successText: __('pullRefresh.successText')
|
26
|
+
};
|
27
|
+
var touch = (0, use_touch_1.default)();
|
28
|
+
(0, react_1.useEffect)(function () {
|
29
|
+
if (props.loading === false) {
|
30
|
+
loadSuccess();
|
31
|
+
}
|
32
|
+
}, [props.loading]);
|
33
|
+
var _a = (0, hooks_1.useSetState)({
|
34
|
+
status: 'normal',
|
35
|
+
offsetY: 0
|
36
|
+
}), state = _a[0], updateState = _a[1];
|
37
|
+
var isTouchable = function () {
|
38
|
+
return (!props.disabled &&
|
39
|
+
state.status !== 'loading' &&
|
40
|
+
state.status !== 'success');
|
41
|
+
};
|
42
|
+
var ease = function (distance) {
|
43
|
+
var pullDistance = defaultHeaderHeight;
|
44
|
+
if (distance > pullDistance) {
|
45
|
+
if (distance < pullDistance * 2) {
|
46
|
+
distance = pullDistance + (distance - pullDistance) / 2;
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
distance = pullDistance * 1.5 + (distance - pullDistance * 2) / 4;
|
50
|
+
}
|
51
|
+
}
|
52
|
+
return Math.round(distance);
|
53
|
+
};
|
54
|
+
var setStatus = function (distance, isLoading) {
|
55
|
+
var pullDistance = defaultHeaderHeight;
|
56
|
+
var status = 'normal';
|
57
|
+
if (isLoading) {
|
58
|
+
status = 'loading';
|
59
|
+
}
|
60
|
+
else if (distance === 0) {
|
61
|
+
status = 'normal';
|
62
|
+
}
|
63
|
+
else if (distance < pullDistance) {
|
64
|
+
status = 'pulling';
|
65
|
+
}
|
66
|
+
else {
|
67
|
+
status = 'loosing';
|
68
|
+
}
|
69
|
+
updateState({ offsetY: distance, status: status });
|
70
|
+
};
|
71
|
+
var loadSuccess = function () {
|
72
|
+
if (!successDuration) {
|
73
|
+
setStatus(0);
|
74
|
+
return;
|
75
|
+
}
|
76
|
+
updateState({ status: 'success' });
|
77
|
+
setTimeout(function () {
|
78
|
+
setStatus(0);
|
79
|
+
}, successDuration);
|
80
|
+
};
|
81
|
+
var onTouchStart = function (event) {
|
82
|
+
event.stopPropagation();
|
83
|
+
if (isTouchable() && state.offsetY === 0) {
|
84
|
+
touch.start(event);
|
85
|
+
updateState({});
|
86
|
+
}
|
87
|
+
};
|
88
|
+
var onTouchMove = function (event) {
|
89
|
+
event.stopPropagation();
|
90
|
+
if (isTouchable()) {
|
91
|
+
touch.move(event);
|
92
|
+
updateState({});
|
93
|
+
if (touch.isVertical() && touch.deltaY > 0) {
|
94
|
+
setStatus(ease(touch.deltaY));
|
95
|
+
}
|
96
|
+
}
|
97
|
+
return false;
|
98
|
+
};
|
99
|
+
var onTouchEnd = function (event) {
|
100
|
+
event.stopPropagation();
|
101
|
+
if (isTouchable() && state.offsetY > 0) {
|
102
|
+
if (state.status === 'loosing') {
|
103
|
+
if (loadingDuration) {
|
104
|
+
setStatus(defaultHeaderHeight, true);
|
105
|
+
}
|
106
|
+
else {
|
107
|
+
setStatus(0);
|
108
|
+
}
|
109
|
+
props.onRefresh && props.onRefresh();
|
110
|
+
}
|
111
|
+
else {
|
112
|
+
setStatus(0);
|
113
|
+
}
|
114
|
+
}
|
115
|
+
};
|
116
|
+
var transformStyle = {
|
117
|
+
transform: "translate3d(0, ".concat(state.offsetY, "px, 0)"),
|
118
|
+
touchAction: 'none'
|
119
|
+
};
|
120
|
+
var getStatusText = function (status) {
|
121
|
+
if (status === 'normal') {
|
122
|
+
return '';
|
123
|
+
}
|
124
|
+
return props["".concat(status, "Text")] || refreshText["".concat(status, "Text")];
|
125
|
+
};
|
126
|
+
return (react_1.default.createElement("div", { className: cx('PullRefresh'), onTouchStart: onTouchStart, onTouchMove: onTouchMove, onTouchEnd: onTouchEnd, onTouchCancel: onTouchEnd },
|
127
|
+
react_1.default.createElement("div", { className: cx('PullRefresh-wrap'), style: transformStyle },
|
128
|
+
react_1.default.createElement("div", { className: cx('PullRefresh-header') },
|
129
|
+
state.status === 'loading' && (react_1.default.createElement(icons_1.Icon, { icon: "loading-outline", className: "icon loading-icon" })),
|
130
|
+
getStatusText(state.status)),
|
131
|
+
children)));
|
132
|
+
});
|
133
|
+
PullRefresh.defaultProps = defaultProps;
|
134
|
+
exports.default = (0, theme_1.themeable)(PullRefresh);
|
135
|
+
//# sourceMappingURL=./components/PullRefresh.js.map
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"version": 3,
|
3
|
+
"file": "PullRefresh.js",
|
4
|
+
"sourceRoot": "",
|
5
|
+
"sources": [
|
6
|
+
"/src/components/PullRefresh.tsx"
|
7
|
+
],
|
8
|
+
"names": [],
|
9
|
+
"mappings": ";AAAA;;;;GAIG;;;AAEH,0DAAmD;AACnD,kCAAiD;AACjD,kCAAqC;AACrC,8EAA0C;AAC1C,iCAA6B;AAyB7B,IAAM,YAAY,GAAG;IACnB,eAAe,EAAE,CAAC;IAClB,eAAe,EAAE,CAAC;CACnB,CAAC;AAEF,IAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,IAAM,WAAW,GAAG,IAAA,kBAAU,EAAuB,UAAC,KAAK,EAAE,GAAG;IAE5D,IAAY,EAAE,GAKZ,KAAK,WALO,EACH,EAAE,GAIX,KAAK,UAJM,EACb,QAAQ,GAGN,KAAK,SAHC,EACR,eAAe,GAEb,KAAK,gBAFQ,EACf,eAAe,GACb,KAAK,gBADQ,CACP;IAEV,IAAM,WAAW,GAAG;QAClB,WAAW,EAAE,EAAE,CAAC,yBAAyB,CAAC;QAC1C,WAAW,EAAE,EAAE,CAAC,yBAAyB,CAAC;QAC1C,WAAW,EAAE,EAAE,CAAC,yBAAyB,CAAC;QAC1C,WAAW,EAAE,EAAE,CAAC,yBAAyB,CAAC;KAC3C,CAAC;IAEF,IAAM,KAAK,GAAG,IAAA,mBAAQ,GAAE,CAAC;IAEzB,IAAA,iBAAS,EAAC;QACR,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE;YAC3B,WAAW,EAAE,CAAC;SACf;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAA,KAAuB,IAAA,mBAAW,EAAC;QACvC,MAAM,EAAE,QAAQ;QAChB,OAAO,EAAE,CAAC;KACS,CAAC,EAHf,KAAK,QAAA,EAAE,WAAW,QAGH,CAAC;IAEvB,IAAM,WAAW,GAAG;QAClB,OAAO,CACL,CAAC,KAAK,CAAC,QAAQ;YACf,KAAK,CAAC,MAAM,KAAK,SAAS;YAC1B,KAAK,CAAC,MAAM,KAAK,SAAS,CAC3B,CAAC;IACJ,CAAC,CAAC;IAEF,IAAM,IAAI,GAAG,UAAC,QAAgB;QAC5B,IAAM,YAAY,GAAG,mBAAmB,CAAC;QAEzC,IAAI,QAAQ,GAAG,YAAY,EAAE;YAC3B,IAAI,QAAQ,GAAG,YAAY,GAAG,CAAC,EAAE;gBAC/B,QAAQ,GAAG,YAAY,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;aACzD;iBAAM;gBACL,QAAQ,GAAG,YAAY,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aACnE;SACF;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,IAAM,SAAS,GAAG,UAAC,QAAgB,EAAE,SAAmB;QACtD,IAAM,YAAY,GAAG,mBAAmB,CAAC;QACzC,IAAI,MAAM,GAAe,QAAQ,CAAC;QAElC,IAAI,SAAS,EAAE;YACb,MAAM,GAAG,SAAS,CAAC;SACpB;aAAM,IAAI,QAAQ,KAAK,CAAC,EAAE;YACzB,MAAM,GAAG,QAAQ,CAAC;SACnB;aAAM,IAAI,QAAQ,GAAG,YAAY,EAAE;YAClC,MAAM,GAAG,SAAS,CAAC;SACpB;aAAM;YACL,MAAM,GAAG,SAAS,CAAC;SACpB;QAED,WAAW,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAA,EAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,eAAe,EAAE;YACpB,SAAS,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;SACR;QACD,WAAW,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,CAAC,CAAC;QAEjC,UAAU,CAAC;YACT,SAAS,CAAC,CAAC,CAAC,CAAC;QACf,CAAC,EAAE,eAAe,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAM,YAAY,GAAG,UAAC,KAAU;QAC9B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;YACxC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnB,WAAW,CAAC,EAAE,CAAC,CAAC;SACjB;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG,UAAC,KAAU;QAC7B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,WAAW,EAAE,EAAE;YACjB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClB,WAAW,CAAC,EAAE,CAAC,CAAC;YAChB,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1C,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;aAC/B;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAM,UAAU,GAAG,UAAC,KAAU;QAC5B,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,WAAW,EAAE,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE;YACtC,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;gBAC9B,IAAI,eAAe,EAAE;oBACnB,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;iBACtC;qBAAM;oBACL,SAAS,CAAC,CAAC,CAAC,CAAC;iBACd;gBACD,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;aACtC;iBAAM;gBACL,SAAS,CAAC,CAAC,CAAC,CAAC;aACd;SACF;IACH,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACrB,SAAS,EAAE,yBAAkB,KAAK,CAAC,OAAO,WAAQ;QAClD,WAAW,EAAE,MAAM;KACpB,CAAC;IAEF,IAAM,aAAa,GAAG,UAAC,MAAkB;QACvC,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,KAAK,CAAC,UAAG,MAAM,SAAM,CAAC,IAAI,WAAW,CAAC,UAAG,MAAM,SAAM,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,OAAO,CACL,uCACE,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAC5B,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,UAAU;QAEzB,uCAAK,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,cAAc;YAC3D,uCAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC;gBACrC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAC7B,8BAAC,YAAI,IAAC,IAAI,EAAC,iBAAiB,EAAC,SAAS,EAAC,mBAAmB,GAAG,CAC9D;gBACA,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CACxB;YACL,QAAQ,CACL,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,WAAW,CAAC,YAAY,GAAG,YAAY,CAAC;AAExC,kBAAe,IAAA,iBAAS,EAAC,WAAW,CAAC,CAAC",
|
10
|
+
"sourcesContent": [
|
11
|
+
"/**\n * @file PullRefresh.tsx\n * @description 下拉刷新\n * @author hongyang03\n */\n\nimport React, {forwardRef, useEffect} from 'react';\nimport {ClassNamesFn, themeable} from '../theme';\nimport {useSetState} from '../hooks';\nimport useTouch from '../hooks/use-touch';\nimport {Icon} from './icons';\nimport {TranslateFn} from '../locale';\n\nexport interface PullRefreshProps {\n classnames: ClassNamesFn;\n classPrefix: string;\n translate: TranslateFn;\n disabled?: boolean;\n pullingText?: string;\n loosingText?: string;\n loadingText?: string;\n successText?: string;\n onRefresh?: () => void;\n loading?: boolean;\n successDuration?: number;\n loadingDuration?: number;\n}\n\ntype statusText = 'normal' | 'pulling' | 'loosing' | 'success' | 'loading';\n\nexport interface PullRefreshState {\n status: statusText;\n offsetY: number;\n}\n\nconst defaultProps = {\n successDuration: 0,\n loadingDuration: 0\n};\n\nconst defaultHeaderHeight = 28;\n\nconst PullRefresh = forwardRef<{}, PullRefreshProps>((props, ref) => {\n const {\n classnames: cx,\n translate: __,\n children,\n successDuration,\n loadingDuration\n } = props;\n\n const refreshText = {\n pullingText: __('pullRefresh.pullingText'),\n loosingText: __('pullRefresh.loosingText'),\n loadingText: __('pullRefresh.loadingText'),\n successText: __('pullRefresh.successText')\n };\n\n const touch = useTouch();\n\n useEffect(() => {\n if (props.loading === false) {\n loadSuccess();\n }\n }, [props.loading]);\n\n const [state, updateState] = useSetState({\n status: 'normal',\n offsetY: 0\n } as PullRefreshState);\n\n const isTouchable = () => {\n return (\n !props.disabled &&\n state.status !== 'loading' &&\n state.status !== 'success'\n );\n };\n\n const ease = (distance: number) => {\n const pullDistance = defaultHeaderHeight;\n\n if (distance > pullDistance) {\n if (distance < pullDistance * 2) {\n distance = pullDistance + (distance - pullDistance) / 2;\n } else {\n distance = pullDistance * 1.5 + (distance - pullDistance * 2) / 4;\n }\n }\n\n return Math.round(distance);\n };\n\n const setStatus = (distance: number, isLoading?: boolean) => {\n const pullDistance = defaultHeaderHeight;\n let status: statusText = 'normal';\n\n if (isLoading) {\n status = 'loading';\n } else if (distance === 0) {\n status = 'normal';\n } else if (distance < pullDistance) {\n status = 'pulling';\n } else {\n status = 'loosing';\n }\n\n updateState({offsetY: distance, status});\n };\n\n const loadSuccess = () => {\n if (!successDuration) {\n setStatus(0);\n return;\n }\n updateState({status: 'success'});\n\n setTimeout(() => {\n setStatus(0);\n }, successDuration);\n };\n\n const onTouchStart = (event: any) => {\n event.stopPropagation();\n\n if (isTouchable() && state.offsetY === 0) {\n touch.start(event);\n updateState({});\n }\n };\n\n const onTouchMove = (event: any) => {\n event.stopPropagation();\n\n if (isTouchable()) {\n touch.move(event);\n updateState({});\n if (touch.isVertical() && touch.deltaY > 0) {\n setStatus(ease(touch.deltaY));\n }\n }\n return false;\n };\n\n const onTouchEnd = (event: any) => {\n event.stopPropagation();\n\n if (isTouchable() && state.offsetY > 0) {\n if (state.status === 'loosing') {\n if (loadingDuration) {\n setStatus(defaultHeaderHeight, true);\n } else {\n setStatus(0);\n }\n props.onRefresh && props.onRefresh();\n } else {\n setStatus(0);\n }\n }\n };\n\n const transformStyle = {\n transform: `translate3d(0, ${state.offsetY}px, 0)`,\n touchAction: 'none'\n };\n\n const getStatusText = (status: statusText) => {\n if (status === 'normal') {\n return '';\n }\n return props[`${status}Text`] || refreshText[`${status}Text`];\n };\n\n return (\n <div\n className={cx('PullRefresh')}\n onTouchStart={onTouchStart}\n onTouchMove={onTouchMove}\n onTouchEnd={onTouchEnd}\n onTouchCancel={onTouchEnd}\n >\n <div className={cx('PullRefresh-wrap')} style={transformStyle}>\n <div className={cx('PullRefresh-header')}>\n {state.status === 'loading' && (\n <Icon icon=\"loading-outline\" className=\"icon loading-icon\" />\n )}\n {getStatusText(state.status)}\n </div>\n {children}\n </div>\n </div>\n );\n});\n\nPullRefresh.defaultProps = defaultProps;\n\nexport default themeable(PullRefresh);\n"
|
12
|
+
]
|
13
|
+
}
|