amis 1.9.1-beta.13 → 1.9.1-beta.17
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/Root.js +2 -2
- package/lib/Root.js.map +1 -1
- package/lib/RootRenderer.js +1 -1
- package/lib/RootRenderer.js.map +1 -1
- package/lib/SchemaRenderer.js +4 -4
- package/lib/SchemaRenderer.js.map +1 -1
- package/lib/Scoped.js +1 -1
- package/lib/Scoped.js.map +1 -1
- package/lib/WithRootStore.js +1 -1
- package/lib/WithRootStore.js.map +1 -1
- package/lib/WithStore.js +1 -1
- package/lib/WithStore.js.map +1 -1
- package/lib/actions/AjaxAction.js +1 -1
- package/lib/actions/AjaxAction.js.map +1 -1
- package/lib/actions/Decorators.js +1 -1
- package/lib/actions/Decorators.js.map +1 -1
- package/lib/actions/EmailAction.js +1 -1
- package/lib/actions/EmailAction.js.map +1 -1
- package/lib/actions/LoopAction.js +2 -2
- package/lib/actions/LoopAction.js.map +1 -1
- package/lib/compat.js +1 -1
- package/lib/compat.js.map +1 -1
- package/lib/components/Alert2.d.ts +10 -10
- package/lib/components/Alert2.js +2 -2
- package/lib/components/Alert2.js.map +1 -1
- package/lib/components/AnchorNav.js +1 -1
- package/lib/components/AnchorNav.js.map +1 -1
- package/lib/components/ArrayInput.js +2 -2
- package/lib/components/ArrayInput.js.map +1 -1
- package/lib/components/AsideNav.js +4 -4
- package/lib/components/AsideNav.js.map +1 -1
- package/lib/components/Avatar.js +3 -3
- package/lib/components/Avatar.js.map +1 -1
- package/lib/components/Badge.js +10 -10
- package/lib/components/Badge.js.map +1 -1
- package/lib/components/BaiduMapPicker.js +1 -1
- package/lib/components/BaiduMapPicker.js.map +1 -1
- package/lib/components/Breadcrumb.js +1 -1
- package/lib/components/Breadcrumb.js.map +1 -1
- package/lib/components/Button.js +3 -3
- package/lib/components/Button.js.map +1 -1
- package/lib/components/CalendarMobile.js +2 -2
- package/lib/components/CalendarMobile.js.map +1 -1
- package/lib/components/Card.js +1 -1
- package/lib/components/Card.js.map +1 -1
- package/lib/components/ChainedSelection.js +1 -1
- package/lib/components/ChainedSelection.js.map +1 -1
- package/lib/components/Checkbox.js +2 -2
- package/lib/components/Checkbox.js.map +1 -1
- package/lib/components/Collapse.js +3 -3
- package/lib/components/Collapse.js.map +1 -1
- package/lib/components/ColorPicker.js +5 -5
- package/lib/components/ColorPicker.js.map +1 -1
- package/lib/components/ContextMenu.js +3 -3
- package/lib/components/ContextMenu.js.map +1 -1
- package/lib/components/DatePicker.js +3 -3
- package/lib/components/DatePicker.js.map +1 -1
- package/lib/components/DateRangePicker.js +14 -14
- package/lib/components/DateRangePicker.js.map +1 -1
- package/lib/components/Drawer.js +10 -10
- package/lib/components/Drawer.js.map +1 -1
- package/lib/components/Editor.js +3 -3
- package/lib/components/Editor.js.map +1 -1
- package/lib/components/GridNav.js +11 -11
- package/lib/components/GridNav.js.map +1 -1
- package/lib/components/InputBox.js +1 -1
- package/lib/components/InputBox.js.map +1 -1
- package/lib/components/Layout.js +1 -1
- package/lib/components/Layout.js.map +1 -1
- package/lib/components/ListGroup.js +1 -1
- package/lib/components/ListGroup.js.map +1 -1
- package/lib/components/Modal.js +4 -4
- package/lib/components/Modal.js.map +1 -1
- package/lib/components/MonthRangePicker.js +13 -13
- package/lib/components/MonthRangePicker.js.map +1 -1
- package/lib/components/NumberInput.js +3 -3
- package/lib/components/NumberInput.js.map +1 -1
- package/lib/components/Picker.js +4 -4
- package/lib/components/Picker.js.map +1 -1
- package/lib/components/PickerColumn.js +4 -4
- package/lib/components/PickerColumn.js.map +1 -1
- package/lib/components/PopOver.js +2 -2
- package/lib/components/PopOver.js.map +1 -1
- package/lib/components/PopUp.js +10 -10
- package/lib/components/PopUp.js.map +1 -1
- package/lib/components/Progress.js +5 -5
- package/lib/components/Progress.js.map +1 -1
- package/lib/components/PullRefresh.js +2 -2
- package/lib/components/PullRefresh.js.map +1 -1
- package/lib/components/Radios.d.ts +10 -10
- package/lib/components/Radios.js +2 -2
- package/lib/components/Radios.js.map +1 -1
- package/lib/components/Range.js +1 -1
- package/lib/components/Range.js.map +1 -1
- package/lib/components/Rating.js +1 -1
- package/lib/components/Rating.js.map +1 -1
- package/lib/components/ResultBox.js +2 -2
- package/lib/components/ResultBox.js.map +1 -1
- package/lib/components/ResultList.js +5 -5
- package/lib/components/ResultList.js.map +1 -1
- package/lib/components/ResultTreeList.js +1 -1
- package/lib/components/ResultTreeList.js.map +1 -1
- package/lib/components/SearchBox.d.ts +40 -40
- package/lib/components/Select.d.ts +389 -193
- package/lib/components/Select.js +14 -12
- package/lib/components/Select.js.map +2 -2
- package/lib/components/SparkLine.js +3 -3
- package/lib/components/SparkLine.js.map +1 -1
- package/lib/components/Spinner.js +2 -2
- package/lib/components/Spinner.js.map +1 -1
- package/lib/components/Steps.js +3 -3
- package/lib/components/Steps.js.map +1 -1
- package/lib/components/Switch.js +2 -2
- package/lib/components/Switch.js.map +1 -1
- package/lib/components/Tabs.js +5 -5
- package/lib/components/Tabs.js.map +1 -1
- package/lib/components/Tag.js +3 -3
- package/lib/components/Tag.js.map +1 -1
- package/lib/components/Textarea.js +2 -2
- package/lib/components/Textarea.js.map +1 -1
- package/lib/components/Timeline.js +1 -1
- package/lib/components/Timeline.js.map +1 -1
- package/lib/components/TimelineItem.js +3 -3
- package/lib/components/TimelineItem.js.map +1 -1
- package/lib/components/Toast.js +3 -3
- package/lib/components/Toast.js.map +1 -1
- package/lib/components/Tooltip.js +1 -1
- package/lib/components/Tooltip.js.map +1 -1
- package/lib/components/TransferSearch.js +1 -1
- package/lib/components/TransferSearch.js.map +1 -1
- package/lib/components/Tree.js +5 -5
- package/lib/components/Tree.js.map +1 -1
- package/lib/components/TreeSelection.js +2 -2
- package/lib/components/TreeSelection.js.map +1 -1
- package/lib/components/UserSelect.js +4 -4
- package/lib/components/UserSelect.js.map +1 -1
- package/lib/components/WithRemoteConfig.js +1 -1
- package/lib/components/WithRemoteConfig.js.map +1 -1
- package/lib/components/WithStore.js +1 -1
- package/lib/components/WithStore.js.map +1 -1
- package/lib/components/calendar/DaysView.js +2 -2
- package/lib/components/calendar/DaysView.js.map +1 -1
- package/lib/components/calendar/QuartersView.js +1 -1
- package/lib/components/calendar/QuartersView.js.map +1 -1
- package/lib/components/calendar/TimeView.js +2 -2
- package/lib/components/calendar/TimeView.js.map +1 -1
- package/lib/components/condition-builder/Group.js +2 -2
- package/lib/components/condition-builder/Group.js.map +1 -1
- package/lib/components/condition-builder/GroupOrItem.js +1 -1
- package/lib/components/condition-builder/GroupOrItem.js.map +1 -1
- package/lib/components/formula/Editor.d.ts +44 -40
- package/lib/components/formula/Editor.js +20 -9
- package/lib/components/formula/Editor.js.map +2 -2
- package/lib/components/formula/Picker.d.ts +88 -41
- package/lib/components/formula/Picker.js +49 -22
- package/lib/components/formula/Picker.js.map +2 -2
- package/lib/components/formula/VariableList.js +7 -7
- package/lib/components/formula/VariableList.js.map +1 -1
- package/lib/components/formula/plugin.js +1 -1
- package/lib/components/formula/plugin.js.map +1 -1
- package/lib/components/icons.js +1 -1
- package/lib/components/icons.js.map +1 -1
- package/lib/components/schema-editor/SchemaVariableList.js +1 -1
- package/lib/components/schema-editor/SchemaVariableList.js.map +1 -1
- package/lib/components/table/Cell.js +2 -2
- package/lib/components/table/Cell.js.map +1 -1
- package/lib/components/table/HeadCellFilter.js +1 -1
- package/lib/components/table/HeadCellFilter.js.map +1 -1
- package/lib/components/table/HeadCellSelect.js +1 -1
- package/lib/components/table/HeadCellSelect.js.map +1 -1
- package/lib/components/table/index.js +9 -9
- package/lib/components/table/index.js.map +1 -1
- package/lib/components/virtual-list/SizeAndPositionManager.js +4 -4
- package/lib/components/virtual-list/SizeAndPositionManager.js.map +1 -1
- package/lib/env.js +1 -1
- package/lib/env.js.map +1 -1
- package/lib/factory.js +3 -3
- package/lib/factory.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/locale/de-DE.js +1 -1
- package/lib/locale/de-DE.js.map +2 -2
- package/lib/locale/en-US.js +1 -1
- package/lib/locale/en-US.js.map +2 -2
- package/lib/locale/zh-CN.js +1 -1
- package/lib/locale/zh-CN.js.map +2 -2
- package/lib/locale.js +1 -1
- package/lib/locale.js.map +1 -1
- package/lib/renderers/Action.js +2 -1
- package/lib/renderers/Action.js.map +2 -2
- package/lib/renderers/AnchorNav.js +1 -1
- package/lib/renderers/AnchorNav.js.map +1 -1
- package/lib/renderers/App.js +2 -2
- package/lib/renderers/App.js.map +1 -1
- package/lib/renderers/Audio.js +2 -2
- package/lib/renderers/Audio.js.map +1 -1
- package/lib/renderers/CRUD.js +11 -8
- package/lib/renderers/CRUD.js.map +2 -2
- package/lib/renderers/Card.js +6 -6
- package/lib/renderers/Card.js.map +1 -1
- package/lib/renderers/Cards.js +10 -10
- package/lib/renderers/Cards.js.map +1 -1
- package/lib/renderers/Carousel.js +2 -2
- package/lib/renderers/Carousel.js.map +1 -1
- package/lib/renderers/Chart.js +2 -2
- package/lib/renderers/Chart.js.map +1 -1
- package/lib/renderers/Dialog.js +5 -5
- package/lib/renderers/Dialog.js.map +1 -1
- package/lib/renderers/Divider.js +1 -1
- package/lib/renderers/Divider.js.map +1 -1
- package/lib/renderers/Drawer.js +4 -4
- package/lib/renderers/Drawer.js.map +1 -1
- package/lib/renderers/DropDownButton.js +5 -5
- package/lib/renderers/DropDownButton.js.map +1 -1
- package/lib/renderers/Each.js +1 -1
- package/lib/renderers/Each.js.map +1 -1
- package/lib/renderers/Flex.js +2 -2
- package/lib/renderers/Flex.js.map +1 -1
- package/lib/renderers/Form/ButtonGroupSelect.js +4 -4
- package/lib/renderers/Form/ButtonGroupSelect.js.map +1 -1
- package/lib/renderers/Form/ButtonToolbar.js +1 -1
- package/lib/renderers/Form/ButtonToolbar.js.map +1 -1
- package/lib/renderers/Form/ChainedSelect.js +2 -2
- package/lib/renderers/Form/ChainedSelect.js.map +1 -1
- package/lib/renderers/Form/ChartRadios.js +1 -1
- package/lib/renderers/Form/ChartRadios.js.map +1 -1
- package/lib/renderers/Form/Checkbox.js +1 -1
- package/lib/renderers/Form/Checkbox.js.map +1 -1
- package/lib/renderers/Form/Combo.js +8 -8
- package/lib/renderers/Form/Combo.js.map +1 -1
- package/lib/renderers/Form/DiffEditor.js +2 -2
- package/lib/renderers/Form/DiffEditor.js.map +1 -1
- package/lib/renderers/Form/Editor.js +4 -4
- package/lib/renderers/Form/Editor.js.map +1 -1
- package/lib/renderers/Form/FieldSet.js +1 -1
- package/lib/renderers/Form/FieldSet.js.map +1 -1
- package/lib/renderers/Form/Group.js +4 -4
- package/lib/renderers/Form/Group.js.map +1 -1
- package/lib/renderers/Form/IconPicker.js +2 -2
- package/lib/renderers/Form/IconPicker.js.map +1 -1
- package/lib/renderers/Form/InputColor.js +1 -1
- package/lib/renderers/Form/InputColor.js.map +1 -1
- package/lib/renderers/Form/InputDateRange.js +1 -1
- package/lib/renderers/Form/InputDateRange.js.map +1 -1
- package/lib/renderers/Form/InputFile.js +5 -5
- package/lib/renderers/Form/InputFile.js.map +1 -1
- package/lib/renderers/Form/InputFormula.d.ts +6 -2
- package/lib/renderers/Form/InputFormula.js +4 -3
- package/lib/renderers/Form/InputFormula.js.map +2 -2
- package/lib/renderers/Form/InputGroup.js +1 -1
- package/lib/renderers/Form/InputGroup.js.map +1 -1
- package/lib/renderers/Form/InputImage.js +2 -2
- package/lib/renderers/Form/InputImage.js.map +2 -2
- package/lib/renderers/Form/InputMonthRange.js +1 -1
- package/lib/renderers/Form/InputMonthRange.js.map +1 -1
- package/lib/renderers/Form/InputNumber.js +2 -2
- package/lib/renderers/Form/InputNumber.js.map +1 -1
- package/lib/renderers/Form/InputQuarterRange.js +1 -1
- package/lib/renderers/Form/InputQuarterRange.js.map +1 -1
- package/lib/renderers/Form/InputRange.js +2 -2
- package/lib/renderers/Form/InputRange.js.map +1 -1
- package/lib/renderers/Form/InputRepeat.js +2 -2
- package/lib/renderers/Form/InputRepeat.js.map +1 -1
- package/lib/renderers/Form/InputRichText.js +2 -2
- package/lib/renderers/Form/InputRichText.js.map +1 -1
- package/lib/renderers/Form/InputSubForm.js +5 -5
- package/lib/renderers/Form/InputSubForm.js.map +1 -1
- package/lib/renderers/Form/InputTable.js +2 -2
- package/lib/renderers/Form/InputTable.js.map +1 -1
- package/lib/renderers/Form/InputTag.js +1 -1
- package/lib/renderers/Form/InputTag.js.map +1 -1
- package/lib/renderers/Form/InputText.js +12 -12
- package/lib/renderers/Form/InputText.js.map +1 -1
- package/lib/renderers/Form/InputTree.d.ts +4 -0
- package/lib/renderers/Form/InputTree.js +3 -3
- package/lib/renderers/Form/InputTree.js.map +2 -2
- package/lib/renderers/Form/InputYearRange.js +1 -1
- package/lib/renderers/Form/InputYearRange.js.map +1 -1
- package/lib/renderers/Form/Item.js +7 -7
- package/lib/renderers/Form/Item.js.map +1 -1
- package/lib/renderers/Form/ListSelect.js +2 -2
- package/lib/renderers/Form/ListSelect.js.map +1 -1
- package/lib/renderers/Form/NestedSelect.js +1 -1
- package/lib/renderers/Form/NestedSelect.js.map +1 -1
- package/lib/renderers/Form/Options.js +2 -2
- package/lib/renderers/Form/Options.js.map +1 -1
- package/lib/renderers/Form/Picker.js +3 -3
- package/lib/renderers/Form/Picker.js.map +1 -1
- package/lib/renderers/Form/Radios.js +1 -1
- package/lib/renderers/Form/Radios.js.map +1 -1
- package/lib/renderers/Form/Select.d.ts +8 -0
- package/lib/renderers/Form/Select.js +3 -3
- package/lib/renderers/Form/Select.js.map +2 -2
- package/lib/renderers/Form/Static.js +1 -1
- package/lib/renderers/Form/Static.js.map +1 -1
- package/lib/renderers/Form/TabsTransfer.js +1 -1
- package/lib/renderers/Form/TabsTransfer.js.map +1 -1
- package/lib/renderers/Form/TabsTransferPicker.js +1 -1
- package/lib/renderers/Form/TabsTransferPicker.js.map +1 -1
- package/lib/renderers/Form/Transfer.js +3 -3
- package/lib/renderers/Form/Transfer.js.map +1 -1
- package/lib/renderers/Form/TreeSelect.js +4 -4
- package/lib/renderers/Form/TreeSelect.js.map +1 -1
- package/lib/renderers/Form/index.js +6 -6
- package/lib/renderers/Form/index.js.map +1 -1
- package/lib/renderers/Grid.js +7 -7
- package/lib/renderers/Grid.js.map +1 -1
- package/lib/renderers/Grid2D.js +1 -1
- package/lib/renderers/Grid2D.js.map +1 -1
- package/lib/renderers/HBox.js +5 -5
- package/lib/renderers/HBox.js.map +1 -1
- package/lib/renderers/IFrame.js +1 -1
- package/lib/renderers/IFrame.js.map +1 -1
- package/lib/renderers/Icon.js +3 -3
- package/lib/renderers/Icon.js.map +1 -1
- package/lib/renderers/Image.js +3 -3
- package/lib/renderers/Image.js.map +1 -1
- package/lib/renderers/List.js +14 -14
- package/lib/renderers/List.js.map +1 -1
- package/lib/renderers/Mapping.js +1 -1
- package/lib/renderers/Mapping.js.map +1 -1
- package/lib/renderers/Operation.js +1 -1
- package/lib/renderers/Operation.js.map +1 -1
- package/lib/renderers/Page.js +7 -7
- package/lib/renderers/Page.js.map +1 -1
- package/lib/renderers/Panel.js +2 -2
- package/lib/renderers/Panel.js.map +1 -1
- package/lib/renderers/PopOver.js +2 -2
- package/lib/renderers/PopOver.js.map +1 -1
- package/lib/renderers/Portlet.js +10 -10
- package/lib/renderers/Portlet.js.map +1 -1
- package/lib/renderers/Property.js +3 -3
- package/lib/renderers/Property.js.map +1 -1
- package/lib/renderers/QRCode.js +1 -1
- package/lib/renderers/QRCode.js.map +1 -1
- package/lib/renderers/QuickEdit.js +11 -11
- package/lib/renderers/QuickEdit.js.map +1 -1
- package/lib/renderers/Remark.js +1 -1
- package/lib/renderers/Remark.js.map +1 -1
- package/lib/renderers/Service.js +2 -2
- package/lib/renderers/Service.js.map +1 -1
- package/lib/renderers/Status.js +1 -1
- package/lib/renderers/Status.js.map +1 -1
- package/lib/renderers/Table/ColumnToggler.js +5 -5
- package/lib/renderers/Table/ColumnToggler.js.map +1 -1
- package/lib/renderers/Table/HeadCellFilterDropdown.js +2 -2
- package/lib/renderers/Table/HeadCellFilterDropdown.js.map +1 -1
- package/lib/renderers/Table/HeadCellSearchDropdown.js +2 -2
- package/lib/renderers/Table/HeadCellSearchDropdown.js.map +1 -1
- package/lib/renderers/Table/ItemActionsWrapper.js +2 -2
- package/lib/renderers/Table/ItemActionsWrapper.js.map +1 -1
- package/lib/renderers/Table/TableBody.js +3 -3
- package/lib/renderers/Table/TableBody.js.map +1 -1
- package/lib/renderers/Table/TableContent.js +1 -1
- package/lib/renderers/Table/TableContent.js.map +1 -1
- package/lib/renderers/Table/TableRow.js +4 -4
- package/lib/renderers/Table/TableRow.js.map +1 -1
- package/lib/renderers/Table/index.js +30 -29
- package/lib/renderers/Table/index.js.map +2 -2
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +1 -1
- package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +1 -1
- package/lib/renderers/Table-v2/index.js +5 -5
- package/lib/renderers/Table-v2/index.js.map +1 -1
- package/lib/renderers/TableView.js +4 -4
- package/lib/renderers/TableView.js.map +1 -1
- package/lib/renderers/Tabs.d.ts +6 -2
- package/lib/renderers/Tabs.js +25 -4
- package/lib/renderers/Tabs.js.map +2 -2
- package/lib/renderers/Tasks.js +1 -1
- package/lib/renderers/Tasks.js.map +1 -1
- package/lib/renderers/Tpl.js +1 -1
- package/lib/renderers/Tpl.js.map +1 -1
- package/lib/renderers/VBox.js +2 -2
- package/lib/renderers/VBox.js.map +1 -1
- package/lib/renderers/Video.js +4 -4
- package/lib/renderers/Video.js.map +1 -1
- package/lib/renderers/Wizard.js +7 -7
- package/lib/renderers/Wizard.js.map +1 -1
- package/lib/renderers/Wrapper.js +1 -1
- package/lib/renderers/Wrapper.js.map +1 -1
- package/lib/store/app.js +3 -3
- package/lib/store/app.js.map +1 -1
- package/lib/store/crud.js +1 -1
- package/lib/store/crud.js.map +1 -1
- package/lib/store/form.js +2 -2
- package/lib/store/form.js.map +1 -1
- package/lib/store/formItem.js +3 -3
- package/lib/store/formItem.js.map +1 -1
- package/lib/store/node.js +2 -2
- package/lib/store/node.js.map +1 -1
- package/lib/store/table-v2.js +7 -7
- package/lib/store/table-v2.js.map +1 -1
- package/lib/store/table.js +6 -6
- package/lib/store/table.js.map +1 -1
- package/lib/theme.js +1 -1
- package/lib/theme.js.map +1 -1
- package/lib/themes/ang-ie11.css +49 -27
- package/lib/themes/ang.css +44 -21
- package/lib/themes/ang.css.map +1 -1
- package/lib/themes/antd-ie11.css +49 -27
- package/lib/themes/antd.css +44 -21
- package/lib/themes/antd.css.map +1 -1
- package/lib/themes/cxd-ie11.css +49 -27
- package/lib/themes/cxd.css +44 -21
- package/lib/themes/cxd.css.map +1 -1
- package/lib/themes/dark-ie11.css +49 -27
- package/lib/themes/dark.css +44 -21
- package/lib/themes/dark.css.map +1 -1
- package/lib/themes/default-ie11.css +49 -27
- package/lib/themes/default.css +44 -21
- package/lib/themes/default.css.map +1 -1
- package/lib/utils/ColorScale.js +4 -4
- package/lib/utils/ColorScale.js.map +1 -1
- package/lib/utils/api.js +7 -7
- package/lib/utils/api.js.map +1 -1
- package/lib/utils/autobind.js +2 -2
- package/lib/utils/autobind.js.map +1 -1
- package/lib/utils/columnsSplit.js +2 -2
- package/lib/utils/columnsSplit.js.map +1 -1
- package/lib/utils/debug.js +13 -13
- package/lib/utils/debug.js.map +1 -1
- package/lib/utils/dom.js +1 -1
- package/lib/utils/dom.js.map +1 -1
- package/lib/utils/filter-schema.js +1 -1
- package/lib/utils/filter-schema.js.map +1 -1
- package/lib/utils/formula.js +5 -4
- package/lib/utils/formula.js.map +2 -2
- package/lib/utils/helper.js +6 -6
- package/lib/utils/helper.js.map +1 -1
- package/lib/utils/resize-sensor.js +1 -1
- package/lib/utils/resize-sensor.js.map +1 -1
- package/lib/utils/style.js +1 -1
- package/lib/utils/style.js.map +1 -1
- package/lib/utils/tpl-builtin.js +1 -1
- package/lib/utils/tpl-builtin.js.map +1 -1
- package/lib/utils/tpl-lodash.js +1 -1
- package/lib/utils/tpl-lodash.js.map +1 -1
- package/lib/utils/tpl.js +2 -2
- package/lib/utils/tpl.js.map +1 -1
- package/lib/utils/validations.js +2 -2
- package/lib/utils/validations.js.map +1 -1
- package/package.json +2 -2
- package/schema.json +240 -361
- package/scss/components/_formula.scss +45 -4
- package/scss/components/form/_checks.scss +47 -44
- package/scss/components/form/_date.scss +28 -19
- package/scss/components/form/_select.scss +3 -2
- package/sdk/ang-ie11.css +56 -29
- package/sdk/ang.css +51 -23
- package/sdk/antd-ie11.css +56 -29
- package/sdk/antd.css +51 -23
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +18 -18
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +3 -3
- package/sdk/cxd-ie11.css +56 -29
- package/sdk/cxd.css +51 -23
- package/sdk/dark-ie11.css +56 -29
- package/sdk/dark.css +51 -23
- package/sdk/exceljs.js +1 -1
- package/sdk/locale/de-DE.js +2 -2
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +3 -3
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk-ie11.css +56 -29
- package/sdk/sdk.css +51 -23
- package/sdk/sdk.js +1655 -1767
- package/sdk/thirds/hls.js/hls.js +19 -19
- package/sdk/thirds/mpegts.js/mpegts.js +2 -2
- package/sdk/tinymce.js +57 -57
- package/src/components/Select.tsx +14 -12
- package/src/components/formula/Editor.tsx +51 -23
- package/src/components/formula/Picker.tsx +67 -9
- package/src/locale/de-DE.ts +2 -2
- package/src/locale/en-US.ts +2 -2
- package/src/locale/zh-CN.ts +1 -1
- package/src/renderers/Action.tsx +2 -1
- package/src/renderers/CRUD.tsx +2 -0
- package/src/renderers/Form/InputFormula.tsx +11 -3
- package/src/renderers/Form/InputImage.tsx +4 -2
- package/src/renderers/Form/InputTree.tsx +7 -0
- package/src/renderers/Form/Select.tsx +13 -0
- package/src/renderers/Table/index.tsx +9 -7
- package/src/renderers/Tabs.tsx +33 -3
- package/src/utils/formula.ts +5 -3
@@ -6,7 +6,7 @@
|
|
6
6
|
"/src/renderers/Form/InputGroup.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAI1B,6CAK4B;AAE5B,yFAA0D;AAC1D,+BAAmE;AA0BnE;IAAgC,2CAG/B;IACC,oBAAY,KAAsB;QAAlC,YACE,kBAAM,KAAK,CAAC,SAQb;QANC,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAC/C,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAE7C,KAAI,CAAC,KAAK,GAAG;YACX,SAAS,EAAE,KAAK;SACjB,CAAC;;IACJ,CAAC;IAED,gCAAW,GAAX;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,+BAAU,GAAV;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;IACL,CAAC;IAED,kCAAa,GAAb,UAAc,OAAY,EAAE,KAAU,EAAE,UAAgB;QAChD,IAAA,KAAqB,IAAI,CAAC,KAAK,EAA9B,MAAM,YAAA,EAAE,QAAQ,cAAc,CAAC;QAEtC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAC;SACb;QAED,IAAM,SAAS,GAAQ,OAAO,CAAC;QAE/B,OAAO,MAAM,CAAC,
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
11
|
"import React from 'react';\nimport {Renderer, RendererProps} from '../../factory';\nimport {Schema} from '../../types';\nimport Collapse from '../Collapse';\nimport {\n makeColumnClassBuild,\n makeHorizontalDeeper,\n isVisible,\n isDisabled\n} from '../../utils/helper';\nimport cx from 'classnames';\nimport getExprProperties from '../../utils/filter-schema';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport {IFormItemStore, IFormStore} from '../../store/form';\nimport {SchemaClassName, SchemaCollection, SchemaObject} from '../../Schema';\n\n/**\n * InputGroup\n * 文档:https://baidu.gitee.io/amis/docs/components/form/input-group\n */\nexport interface InputGroupControlSchema extends FormBaseControl {\n type: 'input-group';\n\n /**\n * FormItem 集合\n */\n body: SchemaCollection;\n}\n\nexport interface InputGroupProps extends FormControlProps {\n body: Array<any>;\n formStore: IFormStore;\n}\n\ninterface InputGroupState {\n isFocused: boolean;\n}\n\nexport class InputGroup extends React.Component<\n InputGroupProps,\n InputGroupState\n> {\n constructor(props: InputGroupProps) {\n super(props);\n\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n\n this.state = {\n isFocused: false\n };\n }\n\n handleFocus() {\n this.setState({\n isFocused: true\n });\n }\n\n handleBlur() {\n this.setState({\n isFocused: false\n });\n }\n\n renderControl(control: any, index: any, otherProps?: any) {\n const {render, onChange} = this.props;\n\n if (!control) {\n return null;\n }\n\n const subSchema: any = control;\n\n return render(`${index}`, subSchema, {\n onChange,\n ...otherProps\n });\n }\n\n validate() {\n const {formItem} = this.props;\n\n const errors: Array<string> = [];\n\n // issue 处理这个,按理不需要这么弄。\n formItem?.subFormItems.forEach((item: IFormItemStore) => {\n if (item.errors.length) {\n errors.push(...item.errors);\n }\n });\n\n return errors.length ? errors : '';\n }\n\n render() {\n let {\n body,\n controls,\n className,\n mode,\n horizontal,\n formMode,\n formHorizontal,\n data,\n classnames: cx\n } = this.props;\n\n formMode = mode || formMode;\n let inputs: Array<any> = Array.isArray(controls) ? controls : body;\n if (!Array.isArray(inputs)) {\n inputs = [];\n }\n\n inputs = inputs.filter(item => {\n if (item && (item.hidden || item.visible === false)) {\n return false;\n }\n\n const exprProps = getExprProperties(item || {}, data);\n if (exprProps.hidden || exprProps.visible === false) {\n return false;\n }\n\n return true;\n });\n\n let horizontalDeeper =\n horizontal ||\n (formHorizontal\n ? makeHorizontalDeeper(formHorizontal as any, inputs.length)\n : undefined);\n return (\n <div\n className={cx(`InputGroup`, className, {\n 'is-focused': this.state.isFocused\n })}\n >\n {inputs.map((control, index) => {\n const isAddOn = ~[\n 'icon',\n 'plain',\n 'tpl',\n 'button',\n 'submit',\n 'reset'\n ].indexOf(control && control.type);\n\n let dom = this.renderControl(control, index, {\n formHorizontal: horizontalDeeper,\n formMode: 'normal',\n inputOnly: true,\n key: index,\n onFocus: this.handleFocus,\n onBlur: this.handleBlur\n });\n\n return isAddOn ? (\n <span\n key={index}\n className={cx(\n control.addOnclassName,\n ~['button', 'submit', 'reset'].indexOf(control && control.type)\n ? 'InputGroup-btn'\n : 'InputGroup-addOn'\n )}\n >\n {dom}\n </span>\n ) : (\n dom\n );\n })}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-group',\n strictMode: false\n})\nexport default class InputGroupRenderer extends InputGroup {}\n"
|
12
12
|
]
|
@@ -179,7 +179,7 @@ var ImageControl = /** @class */ (function (_super) {
|
|
179
179
|
// : files.slice(0, 1)
|
180
180
|
// });
|
181
181
|
env.alert(__('File.invalidType', {
|
182
|
-
files: files.map(function (file) { return "\u300C"
|
182
|
+
files: files.map(function (file) { return "\u300C" + file.name + "\u300D"; }).join(' '),
|
183
183
|
accept: accept
|
184
184
|
}));
|
185
185
|
};
|
@@ -831,7 +831,7 @@ var ImageControl = /** @class */ (function (_super) {
|
|
831
831
|
react_1.default.createElement("div", { key: "info", className: cx('ImageControl-itemInfo', fixedSize ? 'ImageControl-fixed-size' : '', fixedSize ? fixedSizeClassName : '') },
|
832
832
|
react_1.default.createElement("div", { className: cx('ImageControl-progress') },
|
833
833
|
react_1.default.createElement("span", { style: {
|
834
|
-
width:
|
834
|
+
width: Math.round(file.progress * 100) + "%"
|
835
835
|
}, className: cx('ImageControl-progressValue') })),
|
836
836
|
react_1.default.createElement("p", null, __('File.uploading'))))) : (react_1.default.createElement(react_1.default.Fragment, null,
|
837
837
|
react_1.default.createElement(Image_1.default, { key: "image", className: cx('ImageControl-image', fixedSize ? 'Image-thumb--fixed-size' : ''), onLoad: _this_1.handleImageLoaded.bind(_this_1, key), src: file.preview || file.url, alt: file.name, thumbMode: thumbMode, thumbRatio: thumbRatio, overlays: react_1.default.createElement(react_1.default.Fragment, null,
|
@@ -6,8 +6,8 @@
|
|
6
6
|
"/src/renderers/Form/InputImage.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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",
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
|
-
"import React, {Suspense} from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\n// import 'cropperjs/dist/cropper.css';\nconst Cropper = React.lazy(() => import('react-cropper'));\nimport DropZone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport 'blueimp-canvastoblob';\nimport find from 'lodash/find';\nimport {Payload, Action} from '../../types';\nimport {buildApi} from '../../utils/api';\nimport {\n createObject,\n qsstringify,\n guid,\n isEmpty,\n qsparse\n} from '../../utils/helper';\nimport {Icon} from '../../components/icons';\nimport Button from '../../components/Button';\nimport accepts from 'attr-accept';\nimport {getNameFromUrl} from './InputFile';\nimport ImageComponent, {ImageThumbProps} from '../Image';\nimport {TranslateFn} from '../../locale';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {\n SchemaApi,\n SchemaClassName,\n SchemaTokenizeableString,\n SchemaUrlPath\n} from '../../Schema';\nimport {filter} from '../../utils/tpl';\nimport isPlainObject from 'lodash/isPlainObject';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\n/**\n * Image 图片上传控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/image\n */\nexport interface ImageControlSchema extends FormBaseControl {\n /**\n * 指定为图片上传控件\n */\n type: 'input-image';\n\n /**\n * 默认展示图片的链接\n */\n src?: SchemaUrlPath;\n\n /**\n * 默认展示图片的类名\n */\n imageClassName?: string;\n\n /**\n * 配置接收的图片类型\n *\n * 建议直接填写文件后缀\n * 如:.txt,.csv\n *\n * 多个类型用逗号隔开。\n */\n accept?: string;\n\n /**\n * 默认都是通过用户选择图片后上传返回图片地址,如果开启此选项,则可以允许用户图片地址。\n */\n allowInput?: boolean;\n\n /**\n * 是否自动开始上传\n */\n autoUpload?: boolean;\n\n /**\n * 选择图片按钮的 CSS 类名\n */\n btnClassName?: SchemaClassName;\n\n /**\n * 上传按钮的 CSS 类名\n */\n btnUploadClassName?: SchemaClassName;\n\n /**\n * @deprecated\n */\n compress?: boolean;\n\n /**\n * @deprecated\n */\n compressOptions?: {\n maxHeight?: number;\n maxWidth?: number;\n };\n\n crop?:\n | boolean\n | {\n /**\n * 默认 `1` 即 `1:1`\n *\n * 留空将不限制\n */\n aspectRatio?: number;\n\n guides?: boolean;\n dragMode?: string;\n viewMode?: number;\n rotatable?: boolean;\n scalable?: boolean;\n };\n\n /**\n * 裁剪后的图片类型\n */\n cropFormat?: string;\n\n /**\n * 裁剪后的质量\n */\n cropQuality?: number;\n\n /**\n * 是否允许二次裁剪。\n */\n reCropable?: boolean;\n\n /**\n * 是否隐藏上传按钮\n */\n hideUploadButton?: boolean;\n\n /**\n * 限制图片大小,超出不让上传。\n */\n limit?: {\n /**\n * 比率不对时的提示文字\n */\n aspectRatioLabel?: string;\n /**\n * 限制比率\n */\n aspectRatio?: number;\n\n /**\n * 限制图片高度\n */\n height?: number;\n\n /**\n * 限制图片宽度\n */\n width?: number;\n\n /**\n * 限制图片最大高度\n */\n maxHeight?: number;\n\n /**\n * 限制图片最大宽度\n */\n maxWidth?: number;\n\n /**\n * 限制图片最小高度\n */\n minHeight?: number;\n\n /**\n * 限制图片最小宽度\n */\n minWidth?: number;\n };\n\n /**\n * 最多的个数\n */\n maxLength?: number;\n\n /**\n * 默认没有限制,当设置后,文件大小大于此值将不允许上传。\n */\n maxSize?: number;\n\n /**\n * 默认 `/api/upload` 如果想自己存储,请设置此选项。\n */\n receiver?: SchemaApi;\n\n /**\n * 默认为 false, 开启后,允许用户输入压缩选项。\n *\n * @deprecated\n */\n showCompressOptions?: boolean;\n\n /**\n * 是否为多选\n */\n multiple?: boolean;\n\n /**\n * 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。\n * 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 清除时设置的值\n */\n resetValue?: any;\n\n /**\n * 缩路图展示模式\n */\n thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';\n\n /**\n * 缩路图展示比率。\n */\n thumbRatio?: '1:1' | '4:3' | '16:9';\n\n /**\n * 上传后把其他字段同步到表单内部。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n\n /**\n * 初始化时是否把其他字段同步到表单内部。\n */\n initAutoFill?: boolean;\n\n /**\n * 默认占位图图片地址\n */\n frameImage?: SchemaUrlPath;\n\n /**\n * 是否开启固定尺寸\n */\n fixedSize?: boolean;\n\n /**\n * 固定尺寸的 CSS类名\n */\n fixedSizeClassName?: SchemaClassName;\n}\n\nlet preventEvent = (e: any) => e.stopPropagation();\n\nexport interface ImageProps\n extends FormControlProps,\n Omit<\n ImageControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n onImageEnlarge?: (\n info: Pick<ImageThumbProps, 'src' | 'originalSrc' | 'title' | 'caption'> & {\n index?: number;\n list?: Array<\n Pick<ImageThumbProps, 'src' | 'originalSrc' | 'title' | 'caption'>\n >;\n }\n ) => void;\n}\n\nexport interface ImageState {\n uploading: boolean;\n locked: boolean;\n lockedReason?: string;\n files: Array<FileValue | FileX>;\n crop?: any;\n error?: string;\n cropFile?: FileValue;\n cropFileName?: string; // 主要是用于后续上传的时候获得用户名\n submitOnChange?: boolean;\n frameImageWidth?: number;\n}\n\nexport interface FileValue {\n value?: any;\n state: 'init' | 'error' | 'pending' | 'uploading' | 'uploaded' | 'invalid';\n url?: string;\n error?: string;\n info?: {\n width: number;\n height: number;\n len?: number;\n };\n [propName: string]: any;\n}\n\nexport interface FileX extends File {\n id?: string | number;\n preview?: string;\n state?: 'init' | 'error' | 'pending' | 'uploading' | 'uploaded' | 'invalid';\n progress?: number;\n [propName: string]: any;\n}\n\nexport type InputImageRendererEvent = 'change' | 'success' | 'fail' | 'remove';\nexport type InputImageRendererAction = 'clear';\n\nexport default class ImageControl extends React.Component<\n ImageProps,\n ImageState\n> {\n static defaultProps = {\n limit: undefined,\n accept: 'image/jpeg, image/jpg, image/png, image/gif',\n receiver: '/api/upload',\n hideUploadButton: false,\n placeholder: 'Image.placeholder',\n joinValues: true,\n extractValue: false,\n delimiter: ',',\n autoUpload: true,\n multiple: false\n };\n\n static formatFileSize(\n size: number | string,\n units = [' B', ' KB', ' M', ' G']\n ) {\n size = parseInt(size as string, 10) || 0;\n\n while (size > 1024 && units.length > 1) {\n size /= 1024;\n units.shift();\n }\n\n return size.toFixed(2) + units[0];\n }\n\n static valueToFile(\n value: string | object,\n props?: ImageProps\n ): FileValue | undefined {\n return value\n ? {\n ...(typeof value === 'string'\n ? {\n value,\n url: value,\n id: guid()\n }\n : value),\n state: 'init'\n }\n : undefined;\n }\n\n static sizeInfo(\n width: number | undefined,\n height: number | undefined,\n __: TranslateFn\n ): string {\n if (!width) {\n return __('Image.height', {height: height});\n } else if (!height) {\n return __('Image.width', {width: width});\n }\n\n return __('Image.size', {width, height});\n }\n\n state: ImageState = {\n uploading: false,\n locked: false,\n files: []\n };\n\n files: Array<FileValue | FileX> = [];\n fileUploadCancelExecutors: Array<{\n file: any;\n executor: () => void;\n }> = [];\n cropper: Cropper;\n dropzone = React.createRef<any>();\n frameImageRef = React.createRef<any>();\n current: FileValue | FileX | null = null;\n resolve?: (value?: any) => void;\n emitValue: any;\n unmounted = false;\n initAutoFill: boolean;\n\n constructor(props: ImageProps) {\n super(props);\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const multiple = props.multiple;\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n let files: Array<FileValue> = [];\n this.initAutoFill = !!props.initAutoFill;\n\n if (value) {\n // files = (multiple && Array.isArray(value) ? value : joinValues ? (value as string).split(delimiter) : [value])\n files = (\n Array.isArray(value)\n ? value\n : joinValues && typeof value === 'string' && multiple\n ? (value as string).split(delimiter)\n : [value]\n )\n .map(item => ImageControl.valueToFile(item) as FileValue)\n .filter(item => item);\n }\n\n this.state = {\n ...this.state,\n files: (this.files = files),\n crop: this.buildCrop(props),\n frameImageWidth: 0\n };\n\n this.sendFile = this.sendFile.bind(this);\n this.removeFile = this.removeFile.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleCrop = this.handleCrop.bind(this);\n this.handleDropRejected = this.handleDropRejected.bind(this);\n this.cancelCrop = this.cancelCrop.bind(this);\n this.rotatableCrop = this.rotatableCrop.bind(this);\n this.handleImageLoaded = this.handleImageLoaded.bind(this);\n this.handleFrameImageLoaded = this.handleFrameImageLoaded.bind(this);\n this.startUpload = this.startUpload.bind(this);\n this.stopUpload = this.stopUpload.bind(this);\n this.toggleUpload = this.toggleUpload.bind(this);\n this.tick = this.tick.bind(this);\n this.onChange = this.onChange.bind(this);\n this.addFiles = this.addFiles.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handlePaste = this.handlePaste.bind(this);\n this.syncAutoFill = this.syncAutoFill.bind(this);\n }\n\n componentDidMount() {\n this.syncAutoFill();\n }\n\n componentDidUpdate(prevProps: ImageProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value && this.emitValue !== props.value) {\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const multiple = props.multiple;\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n\n let files: Array<FileValue> = [];\n\n if (value) {\n files = (\n Array.isArray(value)\n ? value\n : joinValues && typeof value === 'string' && multiple\n ? (value as string).split(delimiter)\n : [value]\n )\n .map(item => {\n let obj = ImageControl.valueToFile(item, props) as FileValue;\n let org;\n\n if (\n obj &&\n (org = find(\n this.files,\n item => (item as FileValue).value === obj.value\n ))\n ) {\n obj = {\n ...org,\n ...obj,\n id: org.id || obj.id\n };\n }\n\n return obj;\n })\n .filter(item => item);\n }\n\n this.setState(\n {\n files: (this.files = files)\n },\n this.syncAutoFill\n );\n } else if (prevProps.value !== props.value && !this.initAutoFill) {\n this.initAutoFill = true;\n this.syncAutoFill();\n }\n\n if (prevProps.crop !== props.crop) {\n this.setState({\n crop: this.buildCrop(props)\n });\n }\n }\n\n componentWillUnmount() {\n this.unmounted = true;\n }\n\n buildCrop(props: ImageProps) {\n let crop = props.crop;\n const __ = this.props.translate;\n\n if (crop && props.multiple) {\n props.env && props.env.alert && props.env.alert(__('Image.configError'));\n return null;\n }\n\n if (crop === true) {\n crop = {};\n }\n\n if (crop) {\n crop = {\n aspectRatio: undefined, // 默认不限制\n guides: true,\n dragMode: 'move',\n viewMode: 1,\n rotatable: true,\n scalable: true,\n ...crop\n };\n }\n\n return crop;\n }\n\n handleDropRejected(\n rejectedFiles: FileRejection[],\n evt: React.DragEvent<any>\n ) {\n if (evt.type !== 'change' && evt.type !== 'drop') {\n return;\n }\n const {multiple, env, accept, translate: __} = this.props;\n\n const files = rejectedFiles.map(fileRejection => ({\n ...fileRejection.file,\n state: 'invalid',\n id: guid(),\n name: fileRejection.file.name\n }));\n\n // this.setState({\n // files: this.files = multiple\n // ? this.files.concat(files)\n // : this.files.length\n // ? this.files\n // : files.slice(0, 1)\n // });\n\n env.alert(\n __('File.invalidType', {\n files: files.map((file: any) => `「${file.name}」`).join(' '),\n accept\n })\n );\n }\n\n startUpload(retry: boolean = false) {\n if (this.state.uploading) {\n return;\n }\n\n this.setState(\n {\n uploading: true,\n locked: true,\n files: (this.files = this.files.map(file => {\n if (retry && file.state === 'error') {\n file.state = 'pending';\n file.progress = 0;\n }\n\n return file;\n }))\n },\n this.tick\n );\n }\n\n toggleUpload() {\n return this.state.uploading ? this.stopUpload() : this.startUpload();\n }\n\n stopUpload() {\n if (!this.state.uploading) {\n return;\n }\n\n this.setState({\n uploading: false\n });\n }\n\n tick() {\n if (this.current || !this.state.uploading) {\n return;\n }\n\n const env = this.props.env;\n const __ = this.props.translate;\n const file = find(this.files, item => item.state === 'pending') as FileX;\n if (file) {\n this.current = file;\n\n file.state = 'uploading';\n this.setState(\n {\n files: (this.files = this.files.concat())\n },\n () =>\n this.sendFile(\n file as FileX,\n (error, file, obj) => {\n const files = this.files.concat();\n const idx = files.indexOf(file);\n\n if (!~idx) {\n return;\n }\n\n let newFile: FileX | FileValue = file;\n\n if (error) {\n newFile.state =\n file.state !== 'uploading' ? file.state : 'error';\n newFile.error = error;\n\n if (!this.props.multiple && newFile.state === 'invalid') {\n files.splice(idx, 1);\n this.current = null;\n\n return this.setState(\n {\n files: (this.files = files),\n error: error\n },\n this.tick\n );\n }\n\n env.notify('error', error || __('File.errorRetry'));\n } else {\n newFile = {\n name: file.name || this.state.cropFileName,\n ...obj,\n preview: file.preview\n } as FileValue;\n }\n files.splice(idx, 1, newFile);\n this.current = null;\n this.setState(\n {\n files: (this.files = files)\n },\n this.tick\n );\n },\n progress => {\n const files = this.files.concat();\n const idx = files.indexOf(file);\n\n if (!~idx) {\n return;\n }\n\n // file 是个非 File 对象,先不copy了直接改。\n file.progress = progress;\n this.setState({\n files: (this.files = files)\n });\n }\n )\n );\n } else {\n this.setState(\n {\n uploading: false,\n locked: false\n },\n () => {\n this.onChange(!!this.resolve);\n\n if (this.resolve) {\n this.resolve(\n this.files.some(file => file.state === 'error')\n ? __('File.errorRetry')\n : null\n );\n this.resolve = undefined;\n }\n }\n );\n }\n }\n\n async removeFile(file: FileValue, index: number) {\n const files = this.files.concat();\n const dispatcher = await this.dispatchEvent('remove', file);\n if (dispatcher?.prevented) {\n return;\n }\n this.removeFileCanelExecutor(file, true);\n files.splice(index, 1);\n\n const isUploading = this.current === file;\n if (isUploading) {\n this.current = null;\n }\n\n this.setState(\n {\n files: (this.files = files)\n },\n isUploading ? this.tick : this.onChange\n );\n }\n\n previewImage(file: FileX, index: number, e: React.MouseEvent<any>) {\n const {onImageEnlarge} = this.props;\n\n if (onImageEnlarge) {\n const files = this.files;\n e.preventDefault();\n\n onImageEnlarge({\n src: (file.preview || file.url) as string,\n originalSrc: (file.preview || file.url) as string,\n index,\n list: files.map(file => ({\n src: (file.preview || file.url) as string,\n originalSrc: (file.preview || file.url) as string,\n title: file.name || getNameFromUrl(file.value || file.url)\n }))\n });\n }\n }\n\n editImage(index: number) {\n const files = this.files;\n\n this.setState({\n cropFile: {\n preview: files[index].preview || (files[index].url as string),\n name: files[index].name,\n state: 'init'\n },\n cropFileName: files[index].name\n });\n }\n\n async onChange(changeImmediately?: boolean) {\n const {\n multiple,\n onChange,\n joinValues,\n extractValue,\n delimiter,\n valueField\n } = this.props;\n\n const files = this.files.filter(\n file => file.state == 'uploaded' || file.state == 'init'\n );\n\n let newValue: any = files.length\n ? joinValues\n ? files[0].value\n : files[0]\n : '';\n\n if (multiple) {\n newValue = joinValues\n ? files.map(item => item.value).join(delimiter)\n : extractValue\n ? files.map(item => item.value)\n : files;\n } else {\n newValue = joinValues\n ? newValue.value || newValue\n : extractValue\n ? newValue[valueField || 'value']\n : newValue;\n }\n\n const dispatcher = await this.dispatchEvent('change');\n if (dispatcher?.prevented) {\n return;\n }\n\n onChange((this.emitValue = newValue || ''), undefined, changeImmediately);\n this.syncAutoFill();\n }\n\n syncAutoFill() {\n const {autoFill, multiple, onBulkChange, data, name} = this.props;\n // 排除自身的字段,否则会无限更新state\n const excludeSelfAutoFill = omit(autoFill, name || '');\n\n if (!isEmpty(excludeSelfAutoFill) && onBulkChange && this.initAutoFill) {\n const files = this.state.files.filter(\n file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)\n );\n const toSync = dataMapping(\n excludeSelfAutoFill,\n multiple\n ? {\n items: files\n }\n : files[0]\n );\n\n Object.keys(toSync).forEach(key => {\n if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {\n toSync[key] = merge({}, data[key], toSync[key]);\n }\n });\n onBulkChange(toSync);\n }\n }\n\n handleSelect() {\n this.dropzone.current && this.dropzone.current.open();\n }\n\n handleRetry(index: number) {\n const files = this.files.concat();\n const file = files[index];\n\n if (file.state !== 'invalid' && file.state !== 'error') {\n return;\n }\n\n file.state = 'pending';\n file.progress = 0;\n\n this.setState(\n {\n files: files\n },\n this.startUpload\n );\n }\n\n handleDrop(files: Array<FileX>) {\n const {multiple, crop} = this.props;\n\n if (crop && !multiple) {\n const file = files[0] as any;\n if (!file.preview || !file.url) {\n file.preview = window.URL.createObjectURL(file);\n }\n\n return this.setState({\n cropFile: file,\n cropFileName: file.name\n });\n }\n\n this.addFiles(files);\n }\n\n handlePaste(e: React.ClipboardEvent<any>) {\n const event = e.nativeEvent as any;\n const files: Array<FileX> = [];\n const items = event.clipboardData.items;\n const accept = this.props.accept || '*';\n\n [].slice.call(items).forEach((item: DataTransferItem) => {\n let blob: FileX;\n\n if (\n item.kind !== 'file' ||\n !(blob = item.getAsFile() as File) ||\n !accepts(blob, accept)\n ) {\n return;\n }\n\n blob.id = guid();\n files.push(blob);\n });\n\n this.handleDrop(files);\n }\n\n handleCrop() {\n const {cropFormat, cropQuality} = this.props;\n this.cropper.getCroppedCanvas().toBlob(\n (file: File) => {\n this.addFiles([file]);\n this.setState({\n cropFile: undefined,\n locked: false,\n lockedReason: ''\n });\n },\n cropFormat || 'image/png',\n cropQuality || 1\n );\n }\n\n cancelCrop() {\n this.setState(\n {\n cropFile: undefined,\n cropFileName: undefined,\n locked: false,\n lockedReason: ''\n },\n this.onChange\n );\n }\n\n rotatableCrop() {\n this.cropper.rotate(45);\n }\n\n addFiles(files: Array<FileX>) {\n if (!files.length) {\n return;\n }\n\n const {multiple, maxLength, maxSize, accept, translate: __} = this.props;\n let currentFiles = this.files;\n\n if (!multiple && currentFiles.length) {\n currentFiles = [];\n }\n\n const allowed =\n (multiple\n ? maxLength\n ? maxLength\n : files.length + currentFiles.length\n : 1) - currentFiles.length;\n const inputFiles: Array<FileX> = [];\n\n [].slice.call(files, 0, allowed).forEach((file: FileX) => {\n if (maxSize && file.size > maxSize) {\n this.props.env.alert(\n __('File.maxSize', {\n filename: file.name,\n actualSize: ImageControl.formatFileSize(file.size),\n maxSize: ImageControl.formatFileSize(maxSize)\n })\n );\n return;\n }\n\n file.state = 'pending';\n file.id = guid();\n if (!file.preview || !file.url) {\n file.preview = URL.createObjectURL(file);\n }\n inputFiles.push(file);\n });\n\n if (!inputFiles.length) {\n return;\n }\n\n this.setState(\n {\n error: undefined,\n files: (this.files = currentFiles.concat(inputFiles)),\n locked: true\n },\n () => {\n const {autoUpload} = this.props;\n\n if (autoUpload) {\n this.startUpload();\n }\n }\n );\n }\n\n sendFile(\n file: FileX,\n cb: (error: null | string, file: FileX, obj?: FileValue) => void,\n onProgress: (progress: number) => void\n ) {\n const {limit, translate: __} = this.props;\n\n if (!limit) {\n return this._upload(file, cb, onProgress);\n }\n\n const image = new Image();\n image.onload = async () => {\n const width = image.width;\n const height = image.height;\n let error = '';\n\n if (\n (limit.width && limit.width != width) ||\n (limit.height && limit.height != height)\n ) {\n error = __('Image.sizeNotEqual', {\n info: ImageControl.sizeInfo(limit.width, limit.height, __)\n });\n } else if (\n (limit.maxWidth && limit.maxWidth < width) ||\n (limit.maxHeight && limit.maxHeight < height)\n ) {\n error = __('Image.limitMax', {\n info: ImageControl.sizeInfo(limit.maxWidth, limit.maxHeight, __)\n });\n } else if (\n (limit.minWidth && limit.minWidth > width) ||\n (limit.minHeight && limit.minHeight > height)\n ) {\n error = __('Image.limitMin', {\n info: ImageControl.sizeInfo(limit.minWidth, limit.minHeight, __)\n });\n } else if (\n limit.aspectRatio &&\n Math.abs(width / height - limit.aspectRatio) > 0.01\n ) {\n error = __(limit.aspectRatioLabel || 'Image.limitRatio', {\n ratio: (+limit.aspectRatio).toFixed(2)\n });\n }\n\n if (error) {\n file.state = 'invalid';\n const dispatcher = await this.dispatchEvent('fail', {file, error});\n if (dispatcher?.prevented) {\n return;\n }\n cb(error, file);\n } else {\n this._upload(file, cb, onProgress);\n }\n };\n image.src = (file.preview || file.url) as string;\n }\n\n _upload(\n file: FileX,\n cb: (error: null | string, file: Blob, obj?: FileValue) => void,\n onProgress: (progress: number) => void\n ) {\n const __ = this.props.translate;\n this._send(file, this.props.receiver as string, {}, onProgress)\n .then(async (ret: Payload) => {\n if (ret.status && (ret as any).status !== '0') {\n throw new Error(ret.msg || __('File.errorRetry'));\n }\n\n const obj: FileValue = {\n ...ret.data,\n state: 'uploaded'\n };\n obj.value = obj.value || obj.url;\n\n const dispatcher = await this.dispatchEvent('success', {\n ...file,\n value: obj.value,\n state: 'uploaded'\n });\n if (dispatcher?.prevented) {\n return;\n }\n cb(null, file, obj);\n })\n .catch(async error => {\n const dispatcher = await this.dispatchEvent('fail', {\n file,\n error\n });\n if (dispatcher?.prevented) {\n return;\n }\n cb(error.message || __('File.errorRetry'), file);\n });\n }\n\n async _send(\n file: Blob,\n receiver: string,\n params: object,\n onProgress: (progress: number) => void\n ): Promise<Payload> {\n const fd = new FormData();\n const data = this.props.data;\n const api = buildApi(receiver, createObject(data, params), {\n method: 'post'\n });\n const fileField = this.props.fileField || 'file';\n\n const idx = api.url.indexOf('?');\n\n if (~idx && params) {\n params = {\n ...qsparse(api.url.substring(idx + 1)),\n ...params\n };\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else if (params) {\n api.url += '?' + qsstringify(params);\n }\n\n if (api.data) {\n qsstringify(api.data)\n .split('&')\n .filter(item => item !== '')\n .forEach(item => {\n let parts = item.split('=');\n fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n }\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fd.append(fileField, file, (file as File).name || this.state.cropFileName);\n\n const env = this.props.env;\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n try {\n return await env.fetcher(api, fd, {\n method: 'post',\n cancelExecutor: (cancelExecutor: () => void) => {\n // 记录取消器,取消的时候要调用\n this.fileUploadCancelExecutors.push({\n file: file,\n executor: cancelExecutor\n });\n },\n onUploadProgress: (event: {loaded: number; total: number}) =>\n onProgress(event.loaded / event.total)\n });\n } finally {\n this.removeFileCanelExecutor(file);\n }\n }\n\n removeFileCanelExecutor(file: any, execute = false) {\n this.fileUploadCancelExecutors = this.fileUploadCancelExecutors.filter(\n item => {\n if (execute && item.file === file) {\n item.executor();\n }\n\n return item.file !== file;\n }\n );\n }\n\n handleClick() {\n (this.refs.dropzone as any).open();\n }\n\n handleImageLoaded(index: number, e: React.UIEvent<any>) {\n const imgDom = e.currentTarget;\n const img = new Image();\n img.onload = () => {\n delete (img as any).onload;\n const files = this.files.concat();\n const file = files[index];\n\n if (!file) {\n return;\n }\n\n file.info = {\n ...file.info,\n width: img.width,\n height: img.height\n };\n\n files.splice(index, 1, file);\n const needUploading = !!(\n this.current || find(files, file => file.state === 'pending')\n );\n\n this.unmounted ||\n this.setState(\n {\n files: (this.files = files)\n },\n !needUploading ? this.onChange : undefined\n );\n };\n img.src = imgDom.src;\n }\n\n handleFrameImageLoaded(e: React.UIEvent<any>) {\n const imgDom = e.currentTarget;\n const img = new Image();\n const {clientHeight} = this.frameImageRef.current;\n\n const _this = this;\n img.onload = function () {\n const ratio = (this as any).width / (this as any).height;\n const finalWidth = (ratio * (clientHeight - 2)).toFixed(2);\n _this.setState({\n frameImageWidth: +finalWidth\n });\n };\n img.src = imgDom.src;\n }\n\n validate(): any {\n const __ = this.props.translate;\n\n if (this.state.locked && this.state.lockedReason) {\n return this.state.lockedReason;\n } else if (this.state.cropFile) {\n return new Promise(resolve => {\n this.resolve = resolve;\n this.handleCrop();\n });\n } else if (\n this.state.uploading ||\n this.files.some(item => item.state === 'pending')\n ) {\n return new Promise(resolve => {\n this.resolve = resolve;\n this.startUpload();\n });\n } else if (this.files.some(item => item.state === 'error')) {\n return __('File.errorRetry');\n }\n }\n\n async dispatchEvent(e: string, data?: Record<string, any>) {\n const {dispatchEvent} = this.props;\n const getEventData = (item: Record<string, any>) => ({\n name: item.path || item.name,\n value: item.value,\n state: item.state,\n error: item.error\n });\n const value = data\n ? getEventData(data)\n : this.files.map(item => getEventData(item));\n return dispatchEvent(e, createObject(this.props.data, {file: value}));\n }\n\n // 动作\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n this.files = [];\n onChange('');\n }\n }\n\n render() {\n const {\n className,\n classnames: cx,\n placeholder,\n disabled,\n multiple,\n accept,\n maxLength,\n autoUpload,\n hideUploadButton,\n thumbMode,\n thumbRatio,\n reCropable,\n frameImage,\n fixedSize,\n fixedSizeClassName,\n translate: __\n } = this.props;\n const {files, error, crop, uploading, cropFile, frameImageWidth} =\n this.state;\n let frameImageStyle: any = {};\n if (fixedSizeClassName && frameImageWidth && fixedSize) {\n frameImageStyle.width = frameImageWidth;\n }\n const filterFrameImage = filter(frameImage, this.props.data, '| raw');\n\n const hasPending = files.some(file => file.state == 'pending');\n return (\n <div className={cx(`ImageControl`, className)}>\n {cropFile ? (\n <div className={cx('ImageControl-cropperWrapper')}>\n <Suspense fallback={<div>...</div>}>\n <Cropper\n {...crop}\n onInitialized={instance => {\n this.cropper = instance;\n }}\n src={cropFile.preview}\n />\n </Suspense>\n <div className={cx('ImageControl-croperToolbar')}>\n {crop.rotatable && (\n <a\n className={cx('ImageControl-cropRotatable')}\n onClick={this.rotatableCrop}\n data-tooltip={__('rotate')}\n data-position=\"left\"\n >\n <Icon icon=\"retry\" className=\"icon\" />\n </a>\n )}\n <a\n className={cx('ImageControl-cropCancel')}\n onClick={this.cancelCrop}\n data-tooltip={__('cancel')}\n data-position=\"left\"\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n <a\n className={cx('ImageControl-cropConfirm')}\n onClick={this.handleCrop}\n data-tooltip={__('confirm')}\n data-position=\"left\"\n >\n <Icon icon=\"check\" className=\"icon\" />\n </a>\n </div>\n </div>\n ) : (\n <DropZone\n key=\"drop-zone\"\n ref={this.dropzone}\n onDrop={this.handleDrop}\n onDropRejected={this.handleDropRejected}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n >\n {({\n getRootProps,\n getInputProps,\n isDragActive,\n isDragAccept,\n isDragReject,\n isFocused\n }) => (\n <div\n {...getRootProps({\n onClick: preventEvent,\n onPaste: this.handlePaste,\n className: cx('ImageControl-dropzone', {\n 'is-disabled': disabled,\n 'is-empty': !files.length,\n 'is-active': isDragActive\n })\n })}\n >\n <input {...getInputProps()} />\n\n {isDragActive || isDragAccept || isDragReject ? (\n <div\n className={cx('ImageControl-acceptTip', {\n 'is-accept': isDragAccept,\n 'is-reject': isDragReject\n })}\n >\n {__('Image.dragDrop')}\n </div>\n ) : (\n <>\n {files && files.length\n ? files.map((file, key) => (\n <div\n key={file.id || key}\n className={cx(\n 'ImageControl-item',\n {\n 'is-uploaded': file.state !== 'uploading',\n 'is-invalid':\n file.state === 'error' ||\n file.state === 'invalid'\n },\n fixedSize ? 'ImageControl-fixed-size' : '',\n fixedSize ? fixedSizeClassName : ''\n )}\n style={frameImageStyle}\n >\n {file.state === 'invalid' ||\n file.state === 'error' ? (\n <div className={cx('Image--thumb')}>\n <div className={cx('Image-thumbWrap')}>\n <div\n className={cx(\n 'Image-thumb',\n 'ImageControl-filename'\n )}\n >\n <Icon icon=\"image\" className=\"icon\" />\n <span\n title={\n file.name ||\n getNameFromUrl(file.value || file.url)\n }\n >\n {file.name ||\n getNameFromUrl(file.value || file.url)}\n </span>\n </div>\n\n <div className={cx('Image-overlay')}>\n <a\n data-tooltip={__('File.repick')}\n data-position=\"bottom\"\n onClick={this.handleRetry.bind(this, key)}\n >\n <Icon icon=\"upload\" className=\"icon\" />\n </a>\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.clear')}\n data-position=\"bottom\"\n onClick={this.removeFile.bind(\n this,\n file,\n key\n )}\n >\n <Icon icon=\"remove\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n </div>\n </div>\n ) : file.state === 'uploading' ? (\n <>\n <a\n onClick={this.removeFile.bind(\n this,\n file,\n key\n )}\n key=\"clear\"\n className={cx('ImageControl-itemClear')}\n data-tooltip={__('Select.clear')}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n <div\n key=\"info\"\n className={cx(\n 'ImageControl-itemInfo',\n fixedSize ? 'ImageControl-fixed-size' : '',\n fixedSize ? fixedSizeClassName : ''\n )}\n >\n <div className={cx('ImageControl-progress')}>\n <span\n style={{\n width: `${Math.round(\n file.progress * 100\n )}%`\n }}\n className={cx(\n 'ImageControl-progressValue'\n )}\n />\n </div>\n <p>{__('File.uploading')}</p>\n </div>\n </>\n ) : (\n <>\n <ImageComponent\n key=\"image\"\n className={cx(\n 'ImageControl-image',\n fixedSize ? 'Image-thumb--fixed-size' : ''\n )}\n onLoad={this.handleImageLoaded.bind(\n this,\n key\n )}\n src={file.preview || file.url}\n alt={file.name}\n thumbMode={thumbMode}\n thumbRatio={thumbRatio}\n overlays={\n <>\n {/* {file.info ? (\n [\n <div key=\"info\">\n {file.info.width} x{' '}\n {file.info.height}\n </div>,\n file.info.len ? (\n <div key=\"size\">\n {ImageControl.formatFileSize(\n file.info.len\n )}\n </div>\n ) : null\n ]\n ) : (\n <div>...</div>\n )} */}\n\n <a\n data-tooltip={__('Image.zoomIn')}\n data-position=\"bottom\"\n target=\"_blank\"\n rel=\"noopener\"\n href={file.url || file.preview}\n onClick={this.previewImage.bind(\n this,\n file,\n key\n )}\n >\n <Icon icon=\"view\" className=\"icon\" />\n </a>\n\n {!!crop &&\n reCropable !== false &&\n !disabled ? (\n <a\n data-tooltip={__('Image.crop')}\n data-position=\"bottom\"\n onClick={this.editImage.bind(\n this,\n key\n )}\n >\n <Icon\n icon=\"pencil\"\n className=\"icon\"\n />\n </a>\n ) : null}\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.upload')}\n data-position=\"bottom\"\n onClick={this.handleSelect}\n >\n <Icon\n icon=\"upload\"\n className=\"icon\"\n />\n </a>\n ) : null}\n \n {!disabled ? (\n <a\n data-tooltip={__('Select.clear')}\n data-position=\"bottom\"\n onClick={this.removeFile.bind(\n this,\n file,\n key\n )}\n >\n <Icon\n icon=\"remove\"\n className=\"icon\"\n />\n </a>\n ) : null}\n {/* <a\n data-tooltip={\n file.name ||\n getNameFromUrl(file.value || file.url)\n }\n data-position=\"bottom\"\n target=\"_blank\"\n >\n <Icon icon=\"info\" className=\"icon\" />\n </a> */}\n </>\n }\n />\n </>\n )}\n </div>\n ))\n : null}\n\n {(multiple && (!maxLength || files.length < maxLength)) ||\n (!multiple && !files.length) ? (\n <label\n className={cx(\n 'ImageControl-addBtn',\n {\n 'is-disabled': disabled\n },\n fixedSize ? 'ImageControl-fixed-size' : '',\n fixedSize ? fixedSizeClassName : ''\n )}\n style={frameImageStyle}\n onClick={this.handleSelect}\n data-tooltip={__(placeholder)}\n data-position=\"right\"\n ref={this.frameImageRef}\n >\n {filterFrameImage ? (\n <ImageComponent\n key=\"upload-default-image\"\n src={filterFrameImage}\n className={cx(\n fixedSize ? 'Image-thumb--fixed-size' : ''\n )}\n onLoad={this.handleFrameImageLoaded.bind(this)}\n thumbMode={thumbMode}\n thumbRatio={thumbRatio}\n />\n ) : (\n <>\n <Icon icon=\"plus-fine\" className=\"icon\" />\n <span className={cx('ImageControl-addBtn-text')}>{__('Image.upload')}</span>\n </>\n )}\n\n {isFocused ? (\n <span className={cx('ImageControl-pasteTip')}>\n {__('Image.pasteTip')}\n </span>\n ) : null}\n </label>\n ) : null}\n\n {!autoUpload && !hideUploadButton && files.length ? (\n <Button\n level=\"default\"\n className={cx('ImageControl-uploadBtn')}\n disabled={!hasPending}\n onClick={this.toggleUpload}\n >\n {__(uploading ? 'File.pause' : 'File.start')}\n </Button>\n ) : null}\n\n {error ? (\n <div className={cx('ImageControl-errorMsg')}>{error}</div>\n ) : null}\n </>\n )}\n </div>\n )}\n </DropZone>\n )}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-image',\n sizeMutable: false\n})\nexport class ImageControlRenderer extends ImageControl {}\n"
|
11
|
+
"import React, {Suspense} from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\n// import 'cropperjs/dist/cropper.css';\nconst Cropper = React.lazy(() => import('react-cropper'));\nimport DropZone from 'react-dropzone';\nimport {FileRejection} from 'react-dropzone';\nimport 'blueimp-canvastoblob';\nimport find from 'lodash/find';\nimport {Payload, Action} from '../../types';\nimport {buildApi} from '../../utils/api';\nimport {\n createObject,\n qsstringify,\n guid,\n isEmpty,\n qsparse\n} from '../../utils/helper';\nimport {Icon} from '../../components/icons';\nimport Button from '../../components/Button';\nimport accepts from 'attr-accept';\nimport {getNameFromUrl} from './InputFile';\nimport ImageComponent, {ImageThumbProps} from '../Image';\nimport {TranslateFn} from '../../locale';\nimport {dataMapping} from '../../utils/tpl-builtin';\nimport {\n SchemaApi,\n SchemaClassName,\n SchemaTokenizeableString,\n SchemaUrlPath\n} from '../../Schema';\nimport {filter} from '../../utils/tpl';\nimport isPlainObject from 'lodash/isPlainObject';\nimport merge from 'lodash/merge';\nimport omit from 'lodash/omit';\n\n/**\n * Image 图片上传控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/image\n */\nexport interface ImageControlSchema extends FormBaseControl {\n /**\n * 指定为图片上传控件\n */\n type: 'input-image';\n\n /**\n * 默认展示图片的链接\n */\n src?: SchemaUrlPath;\n\n /**\n * 默认展示图片的类名\n */\n imageClassName?: string;\n\n /**\n * 配置接收的图片类型\n *\n * 建议直接填写文件后缀\n * 如:.txt,.csv\n *\n * 多个类型用逗号隔开。\n */\n accept?: string;\n\n /**\n * 默认都是通过用户选择图片后上传返回图片地址,如果开启此选项,则可以允许用户图片地址。\n */\n allowInput?: boolean;\n\n /**\n * 是否自动开始上传\n */\n autoUpload?: boolean;\n\n /**\n * 选择图片按钮的 CSS 类名\n */\n btnClassName?: SchemaClassName;\n\n /**\n * 上传按钮的 CSS 类名\n */\n btnUploadClassName?: SchemaClassName;\n\n /**\n * @deprecated\n */\n compress?: boolean;\n\n /**\n * @deprecated\n */\n compressOptions?: {\n maxHeight?: number;\n maxWidth?: number;\n };\n\n crop?:\n | boolean\n | {\n /**\n * 默认 `1` 即 `1:1`\n *\n * 留空将不限制\n */\n aspectRatio?: number;\n\n guides?: boolean;\n dragMode?: string;\n viewMode?: number;\n rotatable?: boolean;\n scalable?: boolean;\n };\n\n /**\n * 裁剪后的图片类型\n */\n cropFormat?: string;\n\n /**\n * 裁剪后的质量\n */\n cropQuality?: number;\n\n /**\n * 是否允许二次裁剪。\n */\n reCropable?: boolean;\n\n /**\n * 是否隐藏上传按钮\n */\n hideUploadButton?: boolean;\n\n /**\n * 限制图片大小,超出不让上传。\n */\n limit?: {\n /**\n * 比率不对时的提示文字\n */\n aspectRatioLabel?: string;\n /**\n * 限制比率\n */\n aspectRatio?: number;\n\n /**\n * 限制图片高度\n */\n height?: number;\n\n /**\n * 限制图片宽度\n */\n width?: number;\n\n /**\n * 限制图片最大高度\n */\n maxHeight?: number;\n\n /**\n * 限制图片最大宽度\n */\n maxWidth?: number;\n\n /**\n * 限制图片最小高度\n */\n minHeight?: number;\n\n /**\n * 限制图片最小宽度\n */\n minWidth?: number;\n };\n\n /**\n * 最多的个数\n */\n maxLength?: number;\n\n /**\n * 默认没有限制,当设置后,文件大小大于此值将不允许上传。\n */\n maxSize?: number;\n\n /**\n * 默认 `/api/upload` 如果想自己存储,请设置此选项。\n */\n receiver?: SchemaApi;\n\n /**\n * 默认为 false, 开启后,允许用户输入压缩选项。\n *\n * @deprecated\n */\n showCompressOptions?: boolean;\n\n /**\n * 是否为多选\n */\n multiple?: boolean;\n\n /**\n * 单选模式:当用户选中某个选项时,选项中的 value 将被作为该表单项的值提交,否则,整个选项对象都会作为该表单项的值提交。\n * 多选模式:选中的多个选项的 `value` 会通过 `delimiter` 连接起来,否则直接将以数组的形式提交值。\n */\n joinValues?: boolean;\n\n /**\n * 分割符\n */\n delimiter?: string;\n\n /**\n * 开启后将选中的选项 value 的值封装为数组,作为当前表单项的值。\n */\n extractValue?: boolean;\n\n /**\n * 清除时设置的值\n */\n resetValue?: any;\n\n /**\n * 缩路图展示模式\n */\n thumbMode?: 'w-full' | 'h-full' | 'contain' | 'cover';\n\n /**\n * 缩路图展示比率。\n */\n thumbRatio?: '1:1' | '4:3' | '16:9';\n\n /**\n * 上传后把其他字段同步到表单内部。\n */\n autoFill?: {\n [propName: string]: SchemaTokenizeableString;\n };\n\n /**\n * 初始化时是否把其他字段同步到表单内部。\n */\n initAutoFill?: boolean;\n\n /**\n * 默认占位图图片地址\n */\n frameImage?: SchemaUrlPath;\n\n /**\n * 是否开启固定尺寸\n */\n fixedSize?: boolean;\n\n /**\n * 固定尺寸的 CSS类名\n */\n fixedSizeClassName?: SchemaClassName;\n}\n\nlet preventEvent = (e: any) => e.stopPropagation();\n\nexport interface ImageProps\n extends FormControlProps,\n Omit<\n ImageControlSchema,\n 'type' | 'className' | 'descriptionClassName' | 'inputClassName'\n > {\n onImageEnlarge?: (\n info: Pick<ImageThumbProps, 'src' | 'originalSrc' | 'title' | 'caption'> & {\n index?: number;\n list?: Array<\n Pick<ImageThumbProps, 'src' | 'originalSrc' | 'title' | 'caption'>\n >;\n }\n ) => void;\n}\n\nexport interface ImageState {\n uploading: boolean;\n locked: boolean;\n lockedReason?: string;\n files: Array<FileValue | FileX>;\n crop?: any;\n error?: string;\n cropFile?: FileValue;\n cropFileName?: string; // 主要是用于后续上传的时候获得用户名\n submitOnChange?: boolean;\n frameImageWidth?: number;\n}\n\nexport interface FileValue {\n value?: any;\n state: 'init' | 'error' | 'pending' | 'uploading' | 'uploaded' | 'invalid';\n url?: string;\n error?: string;\n info?: {\n width: number;\n height: number;\n len?: number;\n };\n [propName: string]: any;\n}\n\nexport interface FileX extends File {\n id?: string | number;\n preview?: string;\n state?: 'init' | 'error' | 'pending' | 'uploading' | 'uploaded' | 'invalid';\n progress?: number;\n [propName: string]: any;\n}\n\nexport type InputImageRendererEvent = 'change' | 'success' | 'fail' | 'remove';\nexport type InputImageRendererAction = 'clear';\n\nexport default class ImageControl extends React.Component<\n ImageProps,\n ImageState\n> {\n static defaultProps = {\n limit: undefined,\n accept: 'image/jpeg, image/jpg, image/png, image/gif',\n receiver: '/api/upload',\n hideUploadButton: false,\n placeholder: 'Image.placeholder',\n joinValues: true,\n extractValue: false,\n delimiter: ',',\n autoUpload: true,\n multiple: false\n };\n\n static formatFileSize(\n size: number | string,\n units = [' B', ' KB', ' M', ' G']\n ) {\n size = parseInt(size as string, 10) || 0;\n\n while (size > 1024 && units.length > 1) {\n size /= 1024;\n units.shift();\n }\n\n return size.toFixed(2) + units[0];\n }\n\n static valueToFile(\n value: string | object,\n props?: ImageProps\n ): FileValue | undefined {\n return value\n ? {\n ...(typeof value === 'string'\n ? {\n value,\n url: value,\n id: guid()\n }\n : value),\n state: 'init'\n }\n : undefined;\n }\n\n static sizeInfo(\n width: number | undefined,\n height: number | undefined,\n __: TranslateFn\n ): string {\n if (!width) {\n return __('Image.height', {height: height});\n } else if (!height) {\n return __('Image.width', {width: width});\n }\n\n return __('Image.size', {width, height});\n }\n\n state: ImageState = {\n uploading: false,\n locked: false,\n files: []\n };\n\n files: Array<FileValue | FileX> = [];\n fileUploadCancelExecutors: Array<{\n file: any;\n executor: () => void;\n }> = [];\n cropper: Cropper;\n dropzone = React.createRef<any>();\n frameImageRef = React.createRef<any>();\n current: FileValue | FileX | null = null;\n resolve?: (value?: any) => void;\n emitValue: any;\n unmounted = false;\n initAutoFill: boolean;\n\n constructor(props: ImageProps) {\n super(props);\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const multiple = props.multiple;\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n let files: Array<FileValue> = [];\n this.initAutoFill = !!props.initAutoFill;\n\n if (value) {\n // files = (multiple && Array.isArray(value) ? value : joinValues ? (value as string).split(delimiter) : [value])\n files = (\n Array.isArray(value)\n ? value\n : joinValues && typeof value === 'string' && multiple\n ? (value as string).split(delimiter)\n : [value]\n )\n .map(item => ImageControl.valueToFile(item) as FileValue)\n .filter(item => item);\n }\n\n this.state = {\n ...this.state,\n files: (this.files = files),\n crop: this.buildCrop(props),\n frameImageWidth: 0\n };\n\n this.sendFile = this.sendFile.bind(this);\n this.removeFile = this.removeFile.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleCrop = this.handleCrop.bind(this);\n this.handleDropRejected = this.handleDropRejected.bind(this);\n this.cancelCrop = this.cancelCrop.bind(this);\n this.rotatableCrop = this.rotatableCrop.bind(this);\n this.handleImageLoaded = this.handleImageLoaded.bind(this);\n this.handleFrameImageLoaded = this.handleFrameImageLoaded.bind(this);\n this.startUpload = this.startUpload.bind(this);\n this.stopUpload = this.stopUpload.bind(this);\n this.toggleUpload = this.toggleUpload.bind(this);\n this.tick = this.tick.bind(this);\n this.onChange = this.onChange.bind(this);\n this.addFiles = this.addFiles.bind(this);\n this.handleSelect = this.handleSelect.bind(this);\n this.handlePaste = this.handlePaste.bind(this);\n this.syncAutoFill = this.syncAutoFill.bind(this);\n }\n\n componentDidMount() {\n this.syncAutoFill();\n }\n\n componentDidUpdate(prevProps: ImageProps) {\n const props = this.props;\n\n if (prevProps.value !== props.value && this.emitValue !== props.value) {\n const value: string | Array<string | FileValue> | FileValue = props.value;\n const multiple = props.multiple;\n const joinValues = props.joinValues;\n const delimiter = props.delimiter as string;\n\n let files: Array<FileValue> = [];\n\n if (value) {\n files = (\n Array.isArray(value)\n ? value\n : joinValues && typeof value === 'string' && multiple\n ? (value as string).split(delimiter)\n : [value]\n )\n .map(item => {\n let obj = ImageControl.valueToFile(item, props) as FileValue;\n let org;\n\n if (\n obj &&\n (org = find(\n this.files,\n item => (item as FileValue).value === obj.value\n ))\n ) {\n obj = {\n ...org,\n ...obj,\n id: org.id || obj.id\n };\n }\n\n return obj;\n })\n .filter(item => item);\n }\n\n this.setState(\n {\n files: (this.files = files)\n },\n this.syncAutoFill\n );\n } else if (prevProps.value !== props.value && !this.initAutoFill) {\n this.initAutoFill = true;\n this.syncAutoFill();\n }\n\n if (prevProps.crop !== props.crop) {\n this.setState({\n crop: this.buildCrop(props)\n });\n }\n }\n\n componentWillUnmount() {\n this.unmounted = true;\n }\n\n buildCrop(props: ImageProps) {\n let crop = props.crop;\n const __ = this.props.translate;\n\n if (crop && props.multiple) {\n props.env && props.env.alert && props.env.alert(__('Image.configError'));\n return null;\n }\n\n if (crop === true) {\n crop = {};\n }\n\n if (crop) {\n crop = {\n aspectRatio: undefined, // 默认不限制\n guides: true,\n dragMode: 'move',\n viewMode: 1,\n rotatable: true,\n scalable: true,\n ...crop\n };\n }\n\n return crop;\n }\n\n handleDropRejected(\n rejectedFiles: FileRejection[],\n evt: React.DragEvent<any>\n ) {\n if (evt.type !== 'change' && evt.type !== 'drop') {\n return;\n }\n const {multiple, env, accept, translate: __} = this.props;\n\n const files = rejectedFiles.map(fileRejection => ({\n ...fileRejection.file,\n state: 'invalid',\n id: guid(),\n name: fileRejection.file.name\n }));\n\n // this.setState({\n // files: this.files = multiple\n // ? this.files.concat(files)\n // : this.files.length\n // ? this.files\n // : files.slice(0, 1)\n // });\n\n env.alert(\n __('File.invalidType', {\n files: files.map((file: any) => `「${file.name}」`).join(' '),\n accept\n })\n );\n }\n\n startUpload(retry: boolean = false) {\n if (this.state.uploading) {\n return;\n }\n\n this.setState(\n {\n uploading: true,\n locked: true,\n files: (this.files = this.files.map(file => {\n if (retry && file.state === 'error') {\n file.state = 'pending';\n file.progress = 0;\n }\n\n return file;\n }))\n },\n this.tick\n );\n }\n\n toggleUpload() {\n return this.state.uploading ? this.stopUpload() : this.startUpload();\n }\n\n stopUpload() {\n if (!this.state.uploading) {\n return;\n }\n\n this.setState({\n uploading: false\n });\n }\n\n tick() {\n if (this.current || !this.state.uploading) {\n return;\n }\n\n const env = this.props.env;\n const __ = this.props.translate;\n const file = find(this.files, item => item.state === 'pending') as FileX;\n if (file) {\n this.current = file;\n\n file.state = 'uploading';\n this.setState(\n {\n files: (this.files = this.files.concat())\n },\n () =>\n this.sendFile(\n file as FileX,\n (error, file, obj) => {\n const files = this.files.concat();\n const idx = files.indexOf(file);\n\n if (!~idx) {\n return;\n }\n\n let newFile: FileX | FileValue = file;\n\n if (error) {\n newFile.state =\n file.state !== 'uploading' ? file.state : 'error';\n newFile.error = error;\n\n if (!this.props.multiple && newFile.state === 'invalid') {\n files.splice(idx, 1);\n this.current = null;\n\n return this.setState(\n {\n files: (this.files = files),\n error: error\n },\n this.tick\n );\n }\n\n env.notify('error', error || __('File.errorRetry'));\n } else {\n newFile = {\n name: file.name || this.state.cropFileName,\n ...obj,\n preview: file.preview\n } as FileValue;\n }\n files.splice(idx, 1, newFile);\n this.current = null;\n this.setState(\n {\n files: (this.files = files)\n },\n this.tick\n );\n },\n progress => {\n const files = this.files.concat();\n const idx = files.indexOf(file);\n\n if (!~idx) {\n return;\n }\n\n // file 是个非 File 对象,先不copy了直接改。\n file.progress = progress;\n this.setState({\n files: (this.files = files)\n });\n }\n )\n );\n } else {\n this.setState(\n {\n uploading: false,\n locked: false\n },\n () => {\n this.onChange(!!this.resolve);\n\n if (this.resolve) {\n this.resolve(\n this.files.some(file => file.state === 'error')\n ? __('File.errorRetry')\n : null\n );\n this.resolve = undefined;\n }\n }\n );\n }\n }\n\n async removeFile(file: FileValue, index: number) {\n const files = this.files.concat();\n const dispatcher = await this.dispatchEvent('remove', file);\n if (dispatcher?.prevented) {\n return;\n }\n this.removeFileCanelExecutor(file, true);\n files.splice(index, 1);\n\n const isUploading = this.current === file;\n if (isUploading) {\n this.current = null;\n }\n\n this.setState(\n {\n files: (this.files = files)\n },\n isUploading ? this.tick : this.onChange\n );\n }\n\n previewImage(file: FileX, index: number, e: React.MouseEvent<any>) {\n const {onImageEnlarge} = this.props;\n\n if (onImageEnlarge) {\n const files = this.files;\n e.preventDefault();\n\n onImageEnlarge({\n src: (file.preview || file.url) as string,\n originalSrc: (file.preview || file.url) as string,\n index,\n list: files.map(file => ({\n src: (file.preview || file.url) as string,\n originalSrc: (file.preview || file.url) as string,\n title: file.name || getNameFromUrl(file.value || file.url)\n }))\n });\n }\n }\n\n editImage(index: number) {\n const files = this.files;\n\n this.setState({\n cropFile: {\n preview: files[index].preview || (files[index].url as string),\n name: files[index].name,\n state: 'init'\n },\n cropFileName: files[index].name\n });\n }\n\n async onChange(changeImmediately?: boolean) {\n const {\n multiple,\n onChange,\n joinValues,\n extractValue,\n delimiter,\n valueField\n } = this.props;\n\n const files = this.files.filter(\n file => file.state == 'uploaded' || file.state == 'init'\n );\n\n let newValue: any = files.length\n ? joinValues\n ? files[0].value\n : files[0]\n : '';\n\n if (multiple) {\n newValue = joinValues\n ? files.map(item => item.value).join(delimiter)\n : extractValue\n ? files.map(item => item.value)\n : files;\n } else {\n newValue = joinValues\n ? newValue.value || newValue\n : extractValue\n ? newValue[valueField || 'value']\n : newValue;\n }\n\n const dispatcher = await this.dispatchEvent('change');\n if (dispatcher?.prevented) {\n return;\n }\n\n onChange((this.emitValue = newValue || ''), undefined, changeImmediately);\n this.syncAutoFill();\n }\n\n syncAutoFill() {\n const {autoFill, multiple, onBulkChange, data, name} = this.props;\n // 排除自身的字段,否则会无限更新state\n const excludeSelfAutoFill = omit(autoFill, name || '');\n\n if (!isEmpty(excludeSelfAutoFill) && onBulkChange && this.initAutoFill) {\n const files = this.state.files.filter(\n file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)\n );\n const toSync = dataMapping(\n excludeSelfAutoFill,\n multiple\n ? {\n items: files\n }\n : files[0]\n );\n\n Object.keys(toSync).forEach(key => {\n if (isPlainObject(toSync[key]) && isPlainObject(data[key])) {\n toSync[key] = merge({}, data[key], toSync[key]);\n }\n });\n onBulkChange(toSync);\n }\n }\n\n handleSelect() {\n this.dropzone.current && this.dropzone.current.open();\n }\n\n handleRetry(index: number) {\n const files = this.files.concat();\n const file = files[index];\n\n if (file.state !== 'invalid' && file.state !== 'error') {\n return;\n }\n\n file.state = 'pending';\n file.progress = 0;\n\n this.setState(\n {\n files: files\n },\n this.startUpload\n );\n }\n\n handleDrop(files: Array<FileX>) {\n const {multiple, crop} = this.props;\n\n if (crop && !multiple) {\n const file = files[0] as any;\n if (!file.preview || !file.url) {\n file.preview = window.URL.createObjectURL(file);\n }\n\n return this.setState({\n cropFile: file,\n cropFileName: file.name\n });\n }\n\n this.addFiles(files);\n }\n\n handlePaste(e: React.ClipboardEvent<any>) {\n const event = e.nativeEvent as any;\n const files: Array<FileX> = [];\n const items = event.clipboardData.items;\n const accept = this.props.accept || '*';\n\n [].slice.call(items).forEach((item: DataTransferItem) => {\n let blob: FileX;\n\n if (\n item.kind !== 'file' ||\n !(blob = item.getAsFile() as File) ||\n !accepts(blob, accept)\n ) {\n return;\n }\n\n blob.id = guid();\n files.push(blob);\n });\n\n this.handleDrop(files);\n }\n\n handleCrop() {\n const {cropFormat, cropQuality} = this.props;\n this.cropper.getCroppedCanvas().toBlob(\n (file: File) => {\n this.addFiles([file]);\n this.setState({\n cropFile: undefined,\n locked: false,\n lockedReason: ''\n });\n },\n cropFormat || 'image/png',\n cropQuality || 1\n );\n }\n\n cancelCrop() {\n this.setState(\n {\n cropFile: undefined,\n cropFileName: undefined,\n locked: false,\n lockedReason: ''\n },\n this.onChange\n );\n }\n\n rotatableCrop() {\n this.cropper.rotate(45);\n }\n\n addFiles(files: Array<FileX>) {\n if (!files.length) {\n return;\n }\n\n const {multiple, maxLength, maxSize, accept, translate: __} = this.props;\n let currentFiles = this.files;\n\n if (!multiple && currentFiles.length) {\n currentFiles = [];\n }\n\n const allowed =\n (multiple\n ? maxLength\n ? maxLength\n : files.length + currentFiles.length\n : 1) - currentFiles.length;\n const inputFiles: Array<FileX> = [];\n\n [].slice.call(files, 0, allowed).forEach((file: FileX) => {\n if (maxSize && file.size > maxSize) {\n this.props.env.alert(\n __('File.maxSize', {\n filename: file.name,\n actualSize: ImageControl.formatFileSize(file.size),\n maxSize: ImageControl.formatFileSize(maxSize)\n })\n );\n return;\n }\n\n file.state = 'pending';\n file.id = guid();\n if (!file.preview || !file.url) {\n file.preview = URL.createObjectURL(file);\n }\n inputFiles.push(file);\n });\n\n if (!inputFiles.length) {\n return;\n }\n\n this.setState(\n {\n error: undefined,\n files: (this.files = currentFiles.concat(inputFiles)),\n locked: true\n },\n () => {\n const {autoUpload} = this.props;\n\n if (autoUpload) {\n this.startUpload();\n }\n }\n );\n }\n\n sendFile(\n file: FileX,\n cb: (error: null | string, file: FileX, obj?: FileValue) => void,\n onProgress: (progress: number) => void\n ) {\n const {limit, translate: __} = this.props;\n\n if (!limit) {\n return this._upload(file, cb, onProgress);\n }\n\n const image = new Image();\n image.onload = async () => {\n const width = image.width;\n const height = image.height;\n let error = '';\n\n if (\n (limit.width && limit.width != width) ||\n (limit.height && limit.height != height)\n ) {\n error = __('Image.sizeNotEqual', {\n info: ImageControl.sizeInfo(limit.width, limit.height, __)\n });\n } else if (\n (limit.maxWidth && limit.maxWidth < width) ||\n (limit.maxHeight && limit.maxHeight < height)\n ) {\n error = __('Image.limitMax', {\n info: ImageControl.sizeInfo(limit.maxWidth, limit.maxHeight, __)\n });\n } else if (\n (limit.minWidth && limit.minWidth > width) ||\n (limit.minHeight && limit.minHeight > height)\n ) {\n error = __('Image.limitMin', {\n info: ImageControl.sizeInfo(limit.minWidth, limit.minHeight, __)\n });\n } else if (\n limit.aspectRatio &&\n Math.abs(width / height - limit.aspectRatio) > 0.01\n ) {\n error = __(limit.aspectRatioLabel || 'Image.limitRatio', {\n ratio: (+limit.aspectRatio).toFixed(2)\n });\n }\n\n if (error) {\n file.state = 'invalid';\n const dispatcher = await this.dispatchEvent('fail', {file, error});\n if (dispatcher?.prevented) {\n return;\n }\n cb(error, file);\n } else {\n this._upload(file, cb, onProgress);\n }\n };\n image.src = (file.preview || file.url) as string;\n }\n\n _upload(\n file: FileX,\n cb: (error: null | string, file: Blob, obj?: FileValue) => void,\n onProgress: (progress: number) => void\n ) {\n const __ = this.props.translate;\n this._send(file, this.props.receiver as string, {}, onProgress)\n .then(async (ret: Payload) => {\n if (ret.status && (ret as any).status !== '0') {\n throw new Error(ret.msg || __('File.errorRetry'));\n }\n\n const obj: FileValue = {\n ...ret.data,\n state: 'uploaded'\n };\n obj.value = obj.value || obj.url;\n\n const dispatcher = await this.dispatchEvent('success', {\n ...file,\n value: obj.value,\n state: 'uploaded'\n });\n if (dispatcher?.prevented) {\n return;\n }\n cb(null, file, obj);\n })\n .catch(async error => {\n const dispatcher = await this.dispatchEvent('fail', {\n file,\n error\n });\n if (dispatcher?.prevented) {\n return;\n }\n cb(error.message || __('File.errorRetry'), file);\n });\n }\n\n async _send(\n file: Blob,\n receiver: string,\n params: object,\n onProgress: (progress: number) => void\n ): Promise<Payload> {\n const fd = new FormData();\n const data = this.props.data;\n const api = buildApi(receiver, createObject(data, params), {\n method: 'post'\n });\n const fileField = this.props.fileField || 'file';\n\n const idx = api.url.indexOf('?');\n\n if (~idx && params) {\n params = {\n ...qsparse(api.url.substring(idx + 1)),\n ...params\n };\n api.url = api.url.substring(0, idx) + '?' + qsstringify(params);\n } else if (params) {\n api.url += '?' + qsstringify(params);\n }\n\n if (api.data) {\n qsstringify(api.data)\n .split('&')\n .filter(item => item !== '')\n .forEach(item => {\n let parts = item.split('=');\n fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n }\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fd.append(fileField, file, (file as File).name || this.state.cropFileName);\n\n const env = this.props.env;\n\n if (!env || !env.fetcher) {\n throw new Error('fetcher is required');\n }\n\n try {\n return await env.fetcher(api, fd, {\n method: 'post',\n cancelExecutor: (cancelExecutor: () => void) => {\n // 记录取消器,取消的时候要调用\n this.fileUploadCancelExecutors.push({\n file: file,\n executor: cancelExecutor\n });\n },\n onUploadProgress: (event: {loaded: number; total: number}) =>\n onProgress(event.loaded / event.total)\n });\n } finally {\n this.removeFileCanelExecutor(file);\n }\n }\n\n removeFileCanelExecutor(file: any, execute = false) {\n this.fileUploadCancelExecutors = this.fileUploadCancelExecutors.filter(\n item => {\n if (execute && item.file === file) {\n item.executor();\n }\n\n return item.file !== file;\n }\n );\n }\n\n handleClick() {\n (this.refs.dropzone as any).open();\n }\n\n handleImageLoaded(index: number, e: React.UIEvent<any>) {\n const imgDom = e.currentTarget;\n const img = new Image();\n img.onload = () => {\n delete (img as any).onload;\n const files = this.files.concat();\n const file = files[index];\n\n if (!file) {\n return;\n }\n\n file.info = {\n ...file.info,\n width: img.width,\n height: img.height\n };\n\n files.splice(index, 1, file);\n const needUploading = !!(\n this.current || find(files, file => file.state === 'pending')\n );\n\n this.unmounted ||\n this.setState(\n {\n files: (this.files = files)\n },\n !needUploading ? this.onChange : undefined\n );\n };\n img.src = imgDom.src;\n }\n\n handleFrameImageLoaded(e: React.UIEvent<any>) {\n const imgDom = e.currentTarget;\n const img = new Image();\n const {clientHeight} = this.frameImageRef.current;\n\n const _this = this;\n img.onload = function () {\n const ratio = (this as any).width / (this as any).height;\n const finalWidth = (ratio * (clientHeight - 2)).toFixed(2);\n _this.setState({\n frameImageWidth: +finalWidth\n });\n };\n img.src = imgDom.src;\n }\n\n validate(): any {\n const __ = this.props.translate;\n\n if (this.state.locked && this.state.lockedReason) {\n return this.state.lockedReason;\n } else if (this.state.cropFile) {\n return new Promise(resolve => {\n this.resolve = resolve;\n this.handleCrop();\n });\n } else if (\n this.state.uploading ||\n this.files.some(item => item.state === 'pending')\n ) {\n return new Promise(resolve => {\n this.resolve = resolve;\n this.startUpload();\n });\n } else if (this.files.some(item => item.state === 'error')) {\n return __('File.errorRetry');\n }\n }\n\n async dispatchEvent(e: string, data?: Record<string, any>) {\n const {dispatchEvent} = this.props;\n const getEventData = (item: Record<string, any>) => ({\n name: item.path || item.name,\n value: item.value,\n state: item.state,\n error: item.error\n });\n const value = data\n ? getEventData(data)\n : this.files.map(item => getEventData(item));\n return dispatchEvent(e, createObject(this.props.data, {file: value}));\n }\n\n // 动作\n doAction(action: Action, data: object, throwErrors: boolean) {\n const {onChange} = this.props;\n if (action.actionType === 'clear') {\n this.files = [];\n onChange('');\n }\n }\n\n render() {\n const {\n className,\n classnames: cx,\n placeholder,\n disabled,\n multiple,\n accept,\n maxLength,\n autoUpload,\n hideUploadButton,\n thumbMode,\n thumbRatio,\n reCropable,\n frameImage,\n fixedSize,\n fixedSizeClassName,\n translate: __\n } = this.props;\n const {files, error, crop, uploading, cropFile, frameImageWidth} =\n this.state;\n let frameImageStyle: any = {};\n if (fixedSizeClassName && frameImageWidth && fixedSize) {\n frameImageStyle.width = frameImageWidth;\n }\n const filterFrameImage = filter(frameImage, this.props.data, '| raw');\n\n const hasPending = files.some(file => file.state == 'pending');\n return (\n <div className={cx(`ImageControl`, className)}>\n {cropFile ? (\n <div className={cx('ImageControl-cropperWrapper')}>\n <Suspense fallback={<div>...</div>}>\n <Cropper\n {...crop}\n onInitialized={instance => {\n this.cropper = instance;\n }}\n src={cropFile.preview}\n />\n </Suspense>\n <div className={cx('ImageControl-croperToolbar')}>\n {crop.rotatable && (\n <a\n className={cx('ImageControl-cropRotatable')}\n onClick={this.rotatableCrop}\n data-tooltip={__('rotate')}\n data-position=\"left\"\n >\n <Icon icon=\"retry\" className=\"icon\" />\n </a>\n )}\n <a\n className={cx('ImageControl-cropCancel')}\n onClick={this.cancelCrop}\n data-tooltip={__('cancel')}\n data-position=\"left\"\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n <a\n className={cx('ImageControl-cropConfirm')}\n onClick={this.handleCrop}\n data-tooltip={__('confirm')}\n data-position=\"left\"\n >\n <Icon icon=\"check\" className=\"icon\" />\n </a>\n </div>\n </div>\n ) : (\n <DropZone\n key=\"drop-zone\"\n ref={this.dropzone}\n onDrop={this.handleDrop}\n onDropRejected={this.handleDropRejected}\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n >\n {({\n getRootProps,\n getInputProps,\n isDragActive,\n isDragAccept,\n isDragReject,\n isFocused\n }) => (\n <div\n {...getRootProps({\n onClick: preventEvent,\n onPaste: this.handlePaste,\n className: cx('ImageControl-dropzone', {\n 'is-disabled': disabled,\n 'is-empty': !files.length,\n 'is-active': isDragActive\n })\n })}\n >\n <input {...getInputProps()} />\n\n {isDragActive || isDragAccept || isDragReject ? (\n <div\n className={cx('ImageControl-acceptTip', {\n 'is-accept': isDragAccept,\n 'is-reject': isDragReject\n })}\n >\n {__('Image.dragDrop')}\n </div>\n ) : (\n <>\n {files && files.length\n ? files.map((file, key) => (\n <div\n key={file.id || key}\n className={cx(\n 'ImageControl-item',\n {\n 'is-uploaded': file.state !== 'uploading',\n 'is-invalid':\n file.state === 'error' ||\n file.state === 'invalid'\n },\n fixedSize ? 'ImageControl-fixed-size' : '',\n fixedSize ? fixedSizeClassName : ''\n )}\n style={frameImageStyle}\n >\n {file.state === 'invalid' ||\n file.state === 'error' ? (\n <div className={cx('Image--thumb')}>\n <div className={cx('Image-thumbWrap')}>\n <div\n className={cx(\n 'Image-thumb',\n 'ImageControl-filename'\n )}\n >\n <Icon icon=\"image\" className=\"icon\" />\n <span\n title={\n file.name ||\n getNameFromUrl(file.value || file.url)\n }\n >\n {file.name ||\n getNameFromUrl(file.value || file.url)}\n </span>\n </div>\n\n <div className={cx('Image-overlay')}>\n <a\n data-tooltip={__('File.repick')}\n data-position=\"bottom\"\n onClick={this.handleRetry.bind(this, key)}\n >\n <Icon icon=\"upload\" className=\"icon\" />\n </a>\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.clear')}\n data-position=\"bottom\"\n onClick={this.removeFile.bind(\n this,\n file,\n key\n )}\n >\n <Icon icon=\"remove\" className=\"icon\" />\n </a>\n ) : null}\n </div>\n </div>\n </div>\n ) : file.state === 'uploading' ? (\n <>\n <a\n onClick={this.removeFile.bind(\n this,\n file,\n key\n )}\n key=\"clear\"\n className={cx('ImageControl-itemClear')}\n data-tooltip={__('Select.clear')}\n >\n <Icon icon=\"close\" className=\"icon\" />\n </a>\n <div\n key=\"info\"\n className={cx(\n 'ImageControl-itemInfo',\n fixedSize ? 'ImageControl-fixed-size' : '',\n fixedSize ? fixedSizeClassName : ''\n )}\n >\n <div className={cx('ImageControl-progress')}>\n <span\n style={{\n width: `${Math.round(\n file.progress * 100\n )}%`\n }}\n className={cx(\n 'ImageControl-progressValue'\n )}\n />\n </div>\n <p>{__('File.uploading')}</p>\n </div>\n </>\n ) : (\n <>\n <ImageComponent\n key=\"image\"\n className={cx(\n 'ImageControl-image',\n fixedSize ? 'Image-thumb--fixed-size' : ''\n )}\n onLoad={this.handleImageLoaded.bind(\n this,\n key\n )}\n src={file.preview || file.url}\n alt={file.name}\n thumbMode={thumbMode}\n thumbRatio={thumbRatio}\n overlays={\n <>\n {/* {file.info ? (\n [\n <div key=\"info\">\n {file.info.width} x{' '}\n {file.info.height}\n </div>,\n file.info.len ? (\n <div key=\"size\">\n {ImageControl.formatFileSize(\n file.info.len\n )}\n </div>\n ) : null\n ]\n ) : (\n <div>...</div>\n )} */}\n\n <a\n data-tooltip={__('Image.zoomIn')}\n data-position=\"bottom\"\n target=\"_blank\"\n rel=\"noopener\"\n href={file.url || file.preview}\n onClick={this.previewImage.bind(\n this,\n file,\n key\n )}\n >\n <Icon icon=\"view\" className=\"icon\" />\n </a>\n\n {!!crop &&\n reCropable !== false &&\n !disabled ? (\n <a\n data-tooltip={__('Image.crop')}\n data-position=\"bottom\"\n onClick={this.editImage.bind(\n this,\n key\n )}\n >\n <Icon\n icon=\"pencil\"\n className=\"icon\"\n />\n </a>\n ) : null}\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.upload')}\n data-position=\"bottom\"\n onClick={this.handleSelect}\n >\n <Icon\n icon=\"upload\"\n className=\"icon\"\n />\n </a>\n ) : null}\n\n {!disabled ? (\n <a\n data-tooltip={__('Select.clear')}\n data-position=\"bottom\"\n onClick={this.removeFile.bind(\n this,\n file,\n key\n )}\n >\n <Icon\n icon=\"remove\"\n className=\"icon\"\n />\n </a>\n ) : null}\n {/* <a\n data-tooltip={\n file.name ||\n getNameFromUrl(file.value || file.url)\n }\n data-position=\"bottom\"\n target=\"_blank\"\n >\n <Icon icon=\"info\" className=\"icon\" />\n </a> */}\n </>\n }\n />\n </>\n )}\n </div>\n ))\n : null}\n\n {(multiple && (!maxLength || files.length < maxLength)) ||\n (!multiple && !files.length) ? (\n <label\n className={cx(\n 'ImageControl-addBtn',\n {\n 'is-disabled': disabled\n },\n fixedSize ? 'ImageControl-fixed-size' : '',\n fixedSize ? fixedSizeClassName : ''\n )}\n style={frameImageStyle}\n onClick={this.handleSelect}\n data-tooltip={__(placeholder)}\n data-position=\"right\"\n ref={this.frameImageRef}\n >\n {filterFrameImage ? (\n <ImageComponent\n key=\"upload-default-image\"\n src={filterFrameImage}\n className={cx(\n fixedSize ? 'Image-thumb--fixed-size' : ''\n )}\n onLoad={this.handleFrameImageLoaded.bind(this)}\n thumbMode={thumbMode}\n thumbRatio={thumbRatio}\n />\n ) : (\n <>\n <Icon icon=\"plus-fine\" className=\"icon\" />\n <span className={cx('ImageControl-addBtn-text')}>\n {__('Image.upload')}\n </span>\n </>\n )}\n\n {isFocused ? (\n <span className={cx('ImageControl-pasteTip')}>\n {__('Image.pasteTip')}\n </span>\n ) : null}\n </label>\n ) : null}\n\n {!autoUpload && !hideUploadButton && files.length ? (\n <Button\n level=\"default\"\n className={cx('ImageControl-uploadBtn')}\n disabled={!hasPending}\n onClick={this.toggleUpload}\n >\n {__(uploading ? 'File.pause' : 'File.start')}\n </Button>\n ) : null}\n\n {error ? (\n <div className={cx('ImageControl-errorMsg')}>{error}</div>\n ) : null}\n </>\n )}\n </div>\n )}\n </DropZone>\n )}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-image',\n sizeMutable: false\n})\nexport class ImageControlRenderer extends ImageControl {}\n"
|
12
12
|
]
|
13
13
|
}
|
@@ -15,7 +15,7 @@ var MonthRangeControl = /** @class */ (function (_super) {
|
|
15
15
|
}
|
16
16
|
MonthRangeControl.prototype.render = function () {
|
17
17
|
var _a = this.props, className = _a.className, ns = _a.classPrefix, minDate = _a.minDate, maxDate = _a.maxDate, minDuration = _a.minDuration, maxDuration = _a.maxDuration, data = _a.data, format = _a.format, env = _a.env, rest = (0, tslib_1.__rest)(_a, ["className", "classPrefix", "minDate", "maxDate", "minDuration", "maxDuration", "data", "format", "env"]);
|
18
|
-
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
18
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(ns + "DateRangeControl", className) },
|
19
19
|
react_1.default.createElement(DateRangePicker_1.default, (0, tslib_1.__assign)({ viewMode: "months", format: format, classPrefix: ns, data: data }, rest, { minDate: minDate ? (0, tpl_builtin_1.filterDate)(minDate, data, format) : undefined, maxDate: maxDate ? (0, tpl_builtin_1.filterDate)(maxDate, data, format) : undefined, minDuration: minDuration ? (0, tpl_builtin_1.parseDuration)(minDuration) : undefined, maxDuration: maxDuration ? (0, tpl_builtin_1.parseDuration)(maxDuration) : undefined, onChange: this.handleChange, onFocus: this.dispatchEvent, onBlur: this.dispatchEvent }))));
|
20
20
|
};
|
21
21
|
return MonthRangeControl;
|
@@ -6,7 +6,7 @@
|
|
6
6
|
"/src/renderers/Form/InputMonthRange.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAgC;AAChC,uEAA4B;AAC5B,uDAAkE;AAClE,iFAAwE;AACxE,kGAA+D;AAY/D;IAA+C,kDAAc;IAA7D;;IAkCA,CAAC;IAjCC,kCAAM,GAAN;QACE,IAAM,KAWF,IAAI,CAAC,KAAK,EAVZ,SAAS,eAAA,EACI,EAAE,iBAAA,EACf,OAAO,aAAA,EACP,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,WAAW,iBAAA,EACX,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,GAAG,SAAA,EACA,IAAI,2BAVH,yGAWL,CAAa,CAAC;QAEf,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAE,
|
9
|
+
"mappings": ";;;;AAAA,6DAA0B;AAC1B,+BAAgC;AAChC,uEAA4B;AAC5B,uDAAkE;AAClE,iFAAwE;AACxE,kGAA+D;AAY/D;IAA+C,kDAAc;IAA7D;;IAkCA,CAAC;IAjCC,kCAAM,GAAN;QACE,IAAM,KAWF,IAAI,CAAC,KAAK,EAVZ,SAAS,eAAA,EACI,EAAE,iBAAA,EACf,OAAO,aAAA,EACP,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,WAAW,iBAAA,EACX,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,GAAG,SAAA,EACA,IAAI,2BAVH,yGAWL,CAAa,CAAC;QAEf,OAAO,CACL,uCAAK,SAAS,EAAE,IAAA,oBAAE,EAAI,EAAE,qBAAkB,EAAE,SAAS,CAAC;YACpD,8BAAC,yBAAe,0BACd,QAAQ,EAAC,QAAQ,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,EAAE,EACf,IAAI,EAAE,IAAI,IACN,IAAI,IACR,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAChE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAChE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EACjE,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAA,2BAAa,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,EACjE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAC3B,MAAM,EAAE,IAAI,CAAC,aAAa,IAC1B,CACE,CACP,CAAC;IACJ,CAAC;IACH,wBAAC;AAAD,CAAC,AAlCD,CAA+C,wBAAc,GAkC5D;;AAKD;IAA+C,0DAAiB;IAAhE;;IASA,CAAC;IARQ,sCAAY,GAAG;QACpB,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,SAAS;QACtB,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,GAAG;QACd,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,qBAAqB;KAC9B,CAAC;IARS,yBAAyB;QAHrC,IAAA,eAAQ,EAAC;YACR,IAAI,EAAE,mBAAmB;SAC1B,CAAC;OACW,yBAAyB,CASrC;IAAD,gCAAC;CAAA,AATD,CAA+C,iBAAiB,GAS/D;AATY,8DAAyB",
|
10
10
|
"sourcesContent": [
|
11
11
|
"import React from 'react';\nimport {FormItem} from './Item';\nimport cx from 'classnames';\nimport {filterDate, parseDuration} from '../../utils/tpl-builtin';\nimport InputDateRange, {DateRangeControlSchema} from './InputDateRange';\nimport DateRangePicker from '../../components/DateRangePicker';\n\n/**\n * MonthRange 月范围控件\n * 文档:https://baidu.gitee.io/amis/docs/components/form/month-range\n */\n\nexport interface MonthRangeControlSchema\n extends Omit<DateRangeControlSchema, 'type'> {\n type: 'input-month-range';\n}\n\nexport default class MonthRangeControl extends InputDateRange {\n render() {\n const {\n className,\n classPrefix: ns,\n minDate,\n maxDate,\n minDuration,\n maxDuration,\n data,\n format,\n env,\n ...rest\n } = this.props;\n\n return (\n <div className={cx(`${ns}DateRangeControl`, className)}>\n <DateRangePicker\n viewMode=\"months\"\n format={format}\n classPrefix={ns}\n data={data}\n {...rest}\n minDate={minDate ? filterDate(minDate, data, format) : undefined}\n maxDate={maxDate ? filterDate(maxDate, data, format) : undefined}\n minDuration={minDuration ? parseDuration(minDuration) : undefined}\n maxDuration={maxDuration ? parseDuration(maxDuration) : undefined}\n onChange={this.handleChange}\n onFocus={this.dispatchEvent}\n onBlur={this.dispatchEvent}\n />\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-month-range'\n})\nexport class MonthRangeControlRenderer extends MonthRangeControl {\n static defaultProps = {\n format: 'X',\n inputFormat: 'YYYY-MM',\n joinValues: true,\n delimiter: ',',\n timeFormat: '',\n ranges: 'thismonth,prevmonth'\n };\n}\n"
|
12
12
|
]
|
@@ -173,8 +173,8 @@ var NumberControl = /** @class */ (function (_super) {
|
|
173
173
|
var finalValue = unit && value && typeof value === 'string'
|
174
174
|
? value.replace(unit, '')
|
175
175
|
: value;
|
176
|
-
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
177
|
-
_a[
|
176
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(ns + "NumberControl", (_a = {},
|
177
|
+
_a[ns + "NumberControl--withUnit"] = unitOptions,
|
178
178
|
_a), className) },
|
179
179
|
react_1.default.createElement(NumberInput_1.default, { inputRef: this.inputRef, value: finalValue, step: step, max: this.filterNum(max), min: this.filterNum(min), formatter: formatter, parser: parser, onChange: this.handleChange, disabled: disabled, placeholder: placeholder, precision: finalPrecision, showSteps: showSteps, borderMode: borderMode, readOnly: readOnly, onFocus: function () { return _this.dispatchEvent('focus'); }, onBlur: function () { return _this.dispatchEvent('blur'); }, keyboard: keyboard, displayMode: displayMode }),
|
180
180
|
unitOptions ? (react_1.default.createElement(Select_1.default, { value: unit, clearable: false, options: this.state.unitOptions || [], onChange: this.handleChangeUnit })) : null));
|
@@ -6,7 +6,7 @@
|
|
6
6
|
"/src/renderers/Form/InputNumber.tsx"
|
7
7
|
],
|
8
8
|
"names": [],
|
9
|
-
"mappings": "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
|
9
|
+
"mappings": "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",
|
10
10
|
"sourcesContent": [
|
11
11
|
"import React from 'react';\nimport {FormItem, FormControlProps, FormBaseControl} from './Item';\nimport cx from 'classnames';\nimport {filter} from '../../utils/tpl';\nimport NumberInput from '../../components/NumberInput';\nimport {FormOptionsControl} from './Options';\nimport {autobind, createObject} from '../../utils/helper';\nimport Select, {normalizeOptions, Option} from '../../components/Select';\nimport {PlainObject, Action} from '../../types';\n/**\n * 数字输入框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/number\n */\nexport interface NumberControlSchema extends FormBaseControl {\n type: 'input-number';\n\n /**\n * 最大值\n */\n max?: number;\n\n /**\n * 最小值\n */\n min?: number;\n\n /**\n * 步长\n */\n step?: number;\n\n /**\n * 精度\n */\n precision?: number;\n\n /**\n * 默认当然是\n */\n showSteps?: boolean;\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n /**\n * 前缀\n */\n prefix?: string;\n /**\n * 后缀\n */\n suffix?: string;\n\n /**\n * 单位列表\n */\n unitOptions?: string | Array<Option> | string[] | PlainObject;\n\n /**\n * 是否千分分隔\n */\n kilobitSeparator?: boolean;\n /**\n * 只读\n */\n readOnly?: boolean;\n /**\n * 是否启用键盘行为\n */\n keyboard?: boolean;\n /**\n * 输入框为基础输入框还是加强输入框\n */\n displayMode?: 'base' | 'enhance';\n}\n\nexport interface NumberProps extends FormControlProps {\n placeholder?: string;\n max?: number | string;\n min?: number | string;\n step?: number;\n precision?: number;\n /**\n * 边框模式,全边框,还是半边框,或者没边框。\n */\n borderMode?: 'full' | 'half' | 'none';\n /**\n * 前缀\n */\n prefix?: string;\n /**\n * 后缀\n */\n suffix?: string;\n /**\n * 是否千分分隔\n */\n kilobitSeparator?: boolean;\n /**\n * 只读\n */\n readOnly?: boolean;\n /**\n * 启用键盘行为,即通过上下方向键控制是否生效\n */\n keyboard?: boolean;\n /**\n * 输入框为基础输入框还是加强输入框\n */\n displayMode?: 'base' | 'enhance';\n}\n\ninterface NumberState {\n // 数字单位,将会影响输出\n unit?: string;\n unitOptions?: Option[];\n}\n\nexport type InputNumberRendererEvent = 'blur' | 'focus' | 'change';\nexport type InputNumberRendererAction = 'clear';\n\nexport default class NumberControl extends React.Component<\n NumberProps,\n NumberState\n> {\n input?: HTMLInputElement;\n static defaultProps: Partial<NumberProps> = {\n step: 1,\n resetValue: ''\n };\n\n constructor(props: NumberProps) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeUnit = this.handleChangeUnit.bind(this);\n const unit = this.getUnit();\n const unitOptions = normalizeOptions(props.unitOptions);\n this.state = {unit, unitOptions};\n }\n\n /**\n * 动作处理\n */\n doAction(action: Action, args: any) {\n const actionType = action?.actionType as string;\n const {resetValue, onChange} = this.props;\n\n if (actionType === 'clear') {\n onChange?.('');\n } else if (actionType === 'reset') {\n const value = this.getValue(resetValue ?? '');\n onChange?.(value);\n }\n }\n\n // 解析出单位\n getUnit() {\n const props = this.props;\n if (props.unitOptions && props.unitOptions.length) {\n const optionValues = normalizeOptions(props.unitOptions).map(\n option => option.value\n );\n // 如果有值就解析出来作为单位\n if (props.value && typeof props.value === 'string') {\n let unit = optionValues[0];\n // 先找长的字符,这样如果有 ab 和 b 两种后缀相同的也能识别\n optionValues.sort((a, b) => b.length - a.length);\n for (const optionValue of optionValues) {\n if (props.value.endsWith(optionValue)) {\n unit = optionValue;\n break;\n }\n }\n return unit;\n } else {\n // 没有值就使用第一个单位\n return optionValues[0];\n }\n }\n return undefined;\n }\n\n getValue(inputValue: any) {\n const {resetValue, unitOptions} = this.props;\n\n if (inputValue && typeof inputValue !== 'number') {\n return;\n }\n\n if (inputValue !== null && unitOptions && this.state.unit) {\n inputValue = inputValue + this.state.unit;\n }\n return inputValue === null ? resetValue ?? null : inputValue;\n }\n\n // 派发有event的事件\n @autobind\n async dispatchEvent(eventName: string) {\n const {dispatchEvent, data, value} = this.props;\n\n dispatchEvent(\n eventName,\n createObject(data, {\n value\n })\n );\n }\n\n async handleChange(inputValue: any) {\n const {onChange, data, dispatchEvent} = this.props;\n const value = this.getValue(inputValue);\n\n const rendererEvent = await dispatchEvent(\n 'change',\n createObject(data, {\n value\n })\n );\n if (rendererEvent?.prevented) {\n return;\n }\n onChange(value);\n }\n\n filterNum(value: number | string | undefined) {\n if (typeof value !== 'number') {\n value = filter(value, this.props.data);\n value = /^[-]?\\d+/.test(value) ? +value : undefined;\n }\n return value;\n }\n\n // 单位选项的变更\n handleChangeUnit(option: Option) {\n let value = this.props.value;\n const prevUnitValue = this.state.unit;\n this.setState({unit: option.value}, () => {\n if (value) {\n value = value.replace(prevUnitValue, '');\n this.props.onChange(value + this.state.unit);\n }\n });\n }\n\n componentDidUpdate(prevProps: NumberProps) {\n if (this.props.value !== prevProps.value) {\n const unit = this.getUnit();\n this.setState({unit: unit});\n }\n if (this.props.unitOptions !== prevProps.unitOptions) {\n this.setState({unitOptions: normalizeOptions(this.props.unitOptions)});\n }\n }\n @autobind\n inputRef(ref: any) {\n this.input = ref;\n }\n focus() {\n if (!this.input) {\n return;\n }\n this.input.focus();\n }\n render(): JSX.Element {\n const {\n className,\n classPrefix: ns,\n value,\n step,\n precision,\n max,\n min,\n disabled,\n placeholder,\n showSteps,\n borderMode,\n suffix,\n prefix,\n kilobitSeparator,\n unitOptions,\n readOnly,\n keyboard,\n displayMode\n } = this.props;\n\n let precisionProps: any = {};\n\n const finalPrecision = this.filterNum(precision);\n if (typeof finalPrecision === 'number') {\n precisionProps.precision = finalPrecision;\n }\n\n const unit = this.state?.unit;\n // 数据格式化\n const formatter = (value: string | number) => {\n // 增加千分分隔\n if (kilobitSeparator && value) {\n value = (value + '').replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n return (prefix ? prefix : '') + value + (suffix ? suffix : '');\n };\n // 将数字还原\n const parser = (value: string) => {\n if (value) {\n prefix && (value = value.replace(prefix, ''));\n suffix && (value = value.replace(suffix, ''));\n kilobitSeparator && (value = value.replace(/,/g, ''));\n }\n return value;\n };\n\n const finalValue =\n unit && value && typeof value === 'string'\n ? value.replace(unit, '')\n : value;\n\n return (\n <div\n className={cx(\n `${ns}NumberControl`,\n {\n [`${ns}NumberControl--withUnit`]: unitOptions\n },\n className\n )}\n >\n <NumberInput\n inputRef={this.inputRef}\n value={finalValue}\n step={step}\n max={this.filterNum(max)}\n min={this.filterNum(min)}\n formatter={formatter}\n parser={parser}\n onChange={this.handleChange}\n disabled={disabled}\n placeholder={placeholder}\n precision={finalPrecision}\n showSteps={showSteps}\n borderMode={borderMode}\n readOnly={readOnly}\n onFocus={() => this.dispatchEvent('focus')}\n onBlur={() => this.dispatchEvent('blur')}\n keyboard={keyboard}\n displayMode={displayMode}\n />\n {unitOptions ? (\n <Select\n value={unit}\n clearable={false}\n options={this.state.unitOptions || []}\n onChange={this.handleChangeUnit}\n />\n ) : null}\n </div>\n );\n }\n}\n\n@FormItem({\n type: 'input-number'\n})\nexport class NumberControlRenderer extends NumberControl {\n static defaultProps: Partial<FormControlProps> = {\n validations: 'isNumeric',\n ...NumberControl.defaultProps\n };\n}\n"
|
12
12
|
]
|
@@ -15,7 +15,7 @@ var QuarterRangeControl = /** @class */ (function (_super) {
|
|
15
15
|
}
|
16
16
|
QuarterRangeControl.prototype.render = function () {
|
17
17
|
var _a = this.props, className = _a.className, ns = _a.classPrefix, minDate = _a.minDate, maxDate = _a.maxDate, minDuration = _a.minDuration, maxDuration = _a.maxDuration, data = _a.data, format = _a.format, env = _a.env, rest = (0, tslib_1.__rest)(_a, ["className", "classPrefix", "minDate", "maxDate", "minDuration", "maxDuration", "data", "format", "env"]);
|
18
|
-
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(
|
18
|
+
return (react_1.default.createElement("div", { className: (0, classnames_1.default)(ns + "DateRangeControl", className) },
|
19
19
|
react_1.default.createElement(DateRangePicker_1.default, (0, tslib_1.__assign)({ viewMode: "quarters", format: format, classPrefix: ns, data: data }, rest, { minDate: minDate ? (0, tpl_builtin_1.filterDate)(minDate, data, format) : undefined, maxDate: maxDate ? (0, tpl_builtin_1.filterDate)(maxDate, data, format) : undefined, minDuration: minDuration ? (0, tpl_builtin_1.parseDuration)(minDuration) : undefined, maxDuration: maxDuration ? (0, tpl_builtin_1.parseDuration)(maxDuration) : undefined, onChange: this.handleChange, onFocus: this.dispatchEvent, onBlur: this.dispatchEvent }))));
|
20
20
|
};
|
21
21
|
return QuarterRangeControl;
|