@webiny/ui 5.24.0 → 5.25.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion/Accordion.d.ts +1 -1
- package/Accordion/Accordion.js +1 -1
- package/Accordion/Accordion.js.map +1 -0
- package/Accordion/Accordion.stories.js.map +1 -0
- package/Accordion/AccordionItem.d.ts +4 -8
- package/Accordion/AccordionItem.js +1 -1
- package/Accordion/AccordionItem.js.map +1 -0
- package/Accordion/index.js.map +1 -0
- package/Alert/Alert.d.ts +4 -4
- package/Alert/Alert.js +1 -1
- package/Alert/Alert.js.map +1 -0
- package/Alert/Alert.stories.js.map +1 -0
- package/Alert/index.js.map +1 -0
- package/AutoComplete/AutoComplete.d.ts +5 -10
- package/AutoComplete/AutoComplete.js +6 -4
- package/AutoComplete/AutoComplete.js.map +1 -0
- package/AutoComplete/AutoComplete.stories.js.map +1 -0
- package/AutoComplete/MultiAutoComplete.d.ts +4 -11
- package/AutoComplete/MultiAutoComplete.js +9 -5
- package/AutoComplete/MultiAutoComplete.js.map +1 -0
- package/AutoComplete/MultiAutoComplete.stories.js.map +1 -0
- package/AutoComplete/index.js.map +1 -0
- package/AutoComplete/styles.js.map +1 -0
- package/AutoComplete/types.d.ts +4 -3
- package/AutoComplete/types.js.map +1 -0
- package/AutoComplete/utils.d.ts +3 -3
- package/AutoComplete/utils.js +1 -1
- package/AutoComplete/utils.js.map +1 -0
- package/Avatar/Avatar.d.ts +5 -11
- package/Avatar/Avatar.js +12 -7
- package/Avatar/Avatar.js.map +1 -0
- package/Avatar/Avatar.stories.js.map +1 -0
- package/Avatar/index.js.map +1 -0
- package/Button/Button.d.ts +1 -16
- package/Button/Button.js +7 -22
- package/Button/Button.js.map +1 -0
- package/Button/Button.stories.js.map +1 -0
- package/Button/CopyButton/CopyButton.d.ts +4 -7
- package/Button/CopyButton/CopyButton.js +1 -4
- package/Button/CopyButton/CopyButton.js.map +1 -0
- package/Button/CopyButton/CopyButton.stories.js.map +1 -0
- package/Button/IconButton/IconButton.d.ts +4 -7
- package/Button/IconButton/IconButton.js +1 -4
- package/Button/IconButton/IconButton.js.map +1 -0
- package/Button/IconButton/IconButton.stories.js.map +1 -0
- package/Button/index.js.map +1 -0
- package/Carousel/Carousel.d.ts +3 -3
- package/Carousel/Carousel.js +1 -1
- package/Carousel/Carousel.js.map +1 -0
- package/Carousel/Carouser.stories.js.map +1 -0
- package/Carousel/index.js.map +1 -0
- package/Checkbox/Checkbox.d.ts +1 -2
- package/Checkbox/Checkbox.js +8 -10
- package/Checkbox/Checkbox.js.map +1 -0
- package/Checkbox/Checkbox.stories.js.map +1 -0
- package/Checkbox/Checkbox.styles.js.map +1 -0
- package/Checkbox/CheckboxGroup.d.ts +1 -1
- package/Checkbox/CheckboxGroup.js +1 -1
- package/Checkbox/CheckboxGroup.js.map +1 -0
- package/Checkbox/CheckboxGroup.stories.js +1 -1
- package/Checkbox/CheckboxGroup.stories.js.map +1 -0
- package/Checkbox/index.js.map +1 -0
- package/Chips/Chip.d.ts +3 -8
- package/Chips/Chip.js +1 -1
- package/Chips/Chip.js.map +1 -0
- package/Chips/ChipIcon.d.ts +2 -2
- package/Chips/ChipIcon.js +1 -1
- package/Chips/ChipIcon.js.map +1 -0
- package/Chips/Chips.d.ts +4 -4
- package/Chips/Chips.js +1 -1
- package/Chips/Chips.js.map +1 -0
- package/Chips/Chips.stories.js.map +1 -0
- package/Chips/index.js.map +1 -0
- package/Chips/styles.js.map +1 -0
- package/CodeEditor/CodeEditor.d.ts +3 -4
- package/CodeEditor/CodeEditor.js +7 -10
- package/CodeEditor/CodeEditor.js.map +1 -0
- package/CodeEditor/CodeEditor.stories.js.map +1 -0
- package/CodeEditor/index.js.map +1 -0
- package/ColorPicker/ColorPicker.d.ts +7 -5
- package/ColorPicker/ColorPicker.js +8 -11
- package/ColorPicker/ColorPicker.js.map +1 -0
- package/ColorPicker/ColorPicker.stories.js +1 -1
- package/ColorPicker/ColorPicker.stories.js.map +1 -0
- package/ColorPicker/index.js.map +1 -0
- package/ConfirmationDialog/ConfirmationDialog.d.ts +12 -12
- package/ConfirmationDialog/ConfirmationDialog.js +7 -4
- package/ConfirmationDialog/ConfirmationDialog.js.map +1 -0
- package/ConfirmationDialog/ConfirmationDialog.stories.js +1 -1
- package/ConfirmationDialog/ConfirmationDialog.stories.js.map +1 -0
- package/ConfirmationDialog/index.js.map +1 -0
- package/ConfirmationDialog/withConfirmation.d.ts +1 -1
- package/ConfirmationDialog/withConfirmation.js +1 -1
- package/ConfirmationDialog/withConfirmation.js.map +1 -0
- package/Dialog/Dialog.d.ts +20 -28
- package/Dialog/Dialog.js +4 -1
- package/Dialog/Dialog.js.map +1 -0
- package/Dialog/Dialog.stories.js.map +1 -0
- package/Dialog/index.js.map +1 -0
- package/Drawer/Drawer.d.ts +1 -1
- package/Drawer/Drawer.js +1 -1
- package/Drawer/Drawer.js.map +1 -0
- package/Drawer/Drawer.stories.js.map +1 -0
- package/Drawer/index.js.map +1 -0
- package/DynamicFieldset/Fieldset.d.ts +5 -5
- package/DynamicFieldset/Fieldset.js +21 -14
- package/DynamicFieldset/Fieldset.js.map +1 -0
- package/DynamicFieldset/index.js.map +1 -0
- package/Elevation/Elevation.d.ts +1 -1
- package/Elevation/Elevation.js +1 -1
- package/Elevation/Elevation.js.map +1 -0
- package/Elevation/Elevation.stories.js +1 -1
- package/Elevation/Elevation.stories.js.map +1 -0
- package/Elevation/index.js.map +1 -0
- package/FormElementMessage/FormElementMessage.d.ts +1 -1
- package/FormElementMessage/FormElementMessage.js +1 -1
- package/FormElementMessage/FormElementMessage.js.map +1 -0
- package/FormElementMessage/index.js.map +1 -0
- package/FullName/FullName.js.map +1 -0
- package/FullName/index.js.map +1 -0
- package/Grid/Grid.d.ts +1 -1
- package/Grid/Grid.js +1 -1
- package/Grid/Grid.js.map +1 -0
- package/Grid/Grid.stories.js.map +1 -0
- package/Grid/index.js.map +1 -0
- package/Helpers/ClassNames.d.ts +4 -3
- package/Helpers/ClassNames.js +5 -3
- package/Helpers/ClassNames.js.map +1 -0
- package/Helpers/index.js.map +1 -0
- package/Icon/Icon.d.ts +1 -1
- package/Icon/Icon.js +1 -1
- package/Icon/Icon.js.map +1 -0
- package/Icon/Icon.stories.js.map +1 -0
- package/Icon/index.js.map +1 -0
- package/Image/Image.d.ts +4 -4
- package/Image/Image.js +6 -4
- package/Image/Image.js.map +1 -0
- package/Image/Image.stories.js +1 -1
- package/Image/Image.stories.js.map +1 -0
- package/Image/index.js.map +1 -0
- package/ImageEditor/ImageEditor.d.ts +24 -24
- package/ImageEditor/ImageEditor.js +18 -18
- package/ImageEditor/ImageEditor.js.map +1 -0
- package/ImageEditor/index.js.map +1 -0
- package/ImageEditor/toolbar/crop.js +2 -2
- package/ImageEditor/toolbar/crop.js.map +1 -0
- package/ImageEditor/toolbar/filter.js.map +1 -0
- package/ImageEditor/toolbar/flip.js +1 -1
- package/ImageEditor/toolbar/flip.js.map +1 -0
- package/ImageEditor/toolbar/icons/index.js.map +1 -0
- package/ImageEditor/toolbar/index.js.map +1 -0
- package/ImageEditor/toolbar/rotate.js +5 -1
- package/ImageEditor/toolbar/rotate.js.map +1 -0
- package/ImageEditor/toolbar/types.d.ts +1 -1
- package/ImageEditor/toolbar/types.js.map +1 -0
- package/ImageUpload/Image.d.ts +6 -6
- package/ImageUpload/Image.js +1 -1
- package/ImageUpload/Image.js.map +1 -0
- package/ImageUpload/ImageEditorDialog.d.ts +5 -4
- package/ImageUpload/ImageEditorDialog.js +7 -2
- package/ImageUpload/ImageEditorDialog.js.map +1 -0
- package/ImageUpload/MultiImageUpload.d.ts +5 -5
- package/ImageUpload/MultiImageUpload.js +21 -16
- package/ImageUpload/MultiImageUpload.js.map +1 -0
- package/ImageUpload/MultiImageUpload.stories.js.map +1 -0
- package/ImageUpload/SingleImageUpload.d.ts +14 -13
- package/ImageUpload/SingleImageUpload.js +18 -12
- package/ImageUpload/SingleImageUpload.js.map +1 -0
- package/ImageUpload/SingleImageUpload.stories.js.map +1 -0
- package/ImageUpload/index.js.map +1 -0
- package/ImageUpload/styled.d.ts +18 -14
- package/ImageUpload/styled.js.map +1 -0
- package/Input/Input.d.ts +1 -1
- package/Input/Input.js +8 -8
- package/Input/Input.js.map +1 -0
- package/Input/Input.stories.js +1 -1
- package/Input/Input.stories.js.map +1 -0
- package/Input/__tests__/Input.test.js +32 -26
- package/Input/__tests__/Input.test.js.map +1 -0
- package/Input/index.js.map +1 -0
- package/List/CollapsibleList/CollapsibleList.stories.js.map +1 -0
- package/List/CollapsibleList/index.d.ts +2 -2
- package/List/CollapsibleList/index.js +1 -1
- package/List/CollapsibleList/index.js.map +1 -0
- package/List/DataList/DataList.d.ts +16 -12
- package/List/DataList/DataList.js +41 -11
- package/List/DataList/DataList.js.map +1 -0
- package/List/DataList/DataList.stories.js.map +1 -0
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.d.ts +7 -8
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js.map +1 -0
- package/List/DataList/DataListModalOverlay/DataListModalOverlayAction.d.ts +3 -3
- package/List/DataList/DataListModalOverlay/DataListModalOverlayAction.js.map +1 -0
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.d.ts +9 -4
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.js +6 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.js.map +1 -0
- package/List/DataList/DataListModalOverlay/index.js.map +1 -0
- package/List/DataList/Loader.d.ts +2 -2
- package/List/DataList/Loader.js +1 -1
- package/List/DataList/Loader.js.map +1 -0
- package/List/DataList/NoData.d.ts +2 -2
- package/List/DataList/NoData.js +1 -1
- package/List/DataList/NoData.js.map +1 -0
- package/List/DataList/icons/index.d.ts +1 -1
- package/List/DataList/icons/index.js +1 -1
- package/List/DataList/icons/index.js.map +1 -0
- package/List/DataList/index.js.map +1 -0
- package/List/DataList/types.d.ts +1 -1
- package/List/DataList/types.js.map +1 -0
- package/List/List.d.ts +1 -1
- package/List/List.js +1 -1
- package/List/List.js.map +1 -0
- package/List/List.stories.js.map +1 -0
- package/List/icons/index.js.map +1 -0
- package/List/index.js.map +1 -0
- package/Menu/Menu.d.ts +13 -15
- package/Menu/Menu.js +1 -2
- package/Menu/Menu.js.map +1 -0
- package/Menu/Menu.stories.js.map +1 -0
- package/Menu/index.js.map +1 -0
- package/Mosaic/Mosaic.js.map +1 -0
- package/Mosaic/Mosaic.stories.js +1 -1
- package/Mosaic/Mosaic.stories.js.map +1 -0
- package/Mosaic/index.js.map +1 -0
- package/Progress/CircularProgress.d.ts +3 -3
- package/Progress/CircularProgress.js +12 -8
- package/Progress/CircularProgress.js.map +1 -0
- package/Progress/index.js.map +1 -0
- package/Radio/Radio.d.ts +1 -2
- package/Radio/Radio.js +8 -10
- package/Radio/Radio.js.map +1 -0
- package/Radio/Radio.styles.js.map +1 -0
- package/Radio/RadioGroup.d.ts +1 -2
- package/Radio/RadioGroup.js +8 -11
- package/Radio/RadioGroup.js.map +1 -0
- package/Radio/RadioGroup.stories.js +1 -1
- package/Radio/RadioGroup.stories.js.map +1 -0
- package/Radio/index.js.map +1 -0
- package/RichTextEditor/RichTextEditor.js +26 -4
- package/RichTextEditor/RichTextEditor.js.map +1 -0
- package/RichTextEditor/RichTextEditor.stories.js +1 -1
- package/RichTextEditor/RichTextEditor.stories.js.map +1 -0
- package/RichTextEditor/createPropsFromConfig.js.map +1 -0
- package/RichTextEditor/index.js.map +1 -0
- package/Ripple/Ripple.d.ts +1 -1
- package/Ripple/Ripple.js +1 -1
- package/Ripple/Ripple.js.map +1 -0
- package/Ripple/Ripple.stories.js +1 -1
- package/Ripple/Ripple.stories.js.map +1 -0
- package/Ripple/index.js.map +1 -0
- package/Scrollbar/Scrollbar.d.ts +1 -1
- package/Scrollbar/Scrollbar.js +1 -1
- package/Scrollbar/Scrollbar.js.map +1 -0
- package/Scrollbar/Scrollbar.stories.js +1 -1
- package/Scrollbar/Scrollbar.stories.js.map +1 -0
- package/Scrollbar/index.js.map +1 -0
- package/Section/Section.stories.js.map +1 -0
- package/Section/index.d.ts +1 -1
- package/Section/index.js +1 -1
- package/Section/index.js.map +1 -0
- package/Select/Select.d.ts +1 -1
- package/Select/Select.js +60 -10
- package/Select/Select.js.map +1 -0
- package/Select/Select.stories.js.map +1 -0
- package/Select/index.js.map +1 -0
- package/Slider/Slider.d.ts +1 -2
- package/Slider/Slider.js +7 -10
- package/Slider/Slider.js.map +1 -0
- package/Slider/Slider.stories.js +1 -1
- package/Slider/Slider.stories.js.map +1 -0
- package/Slider/index.js.map +1 -0
- package/Snackbar/Snackbar.d.ts +3 -6
- package/Snackbar/Snackbar.js +2 -5
- package/Snackbar/Snackbar.js.map +1 -0
- package/Snackbar/Snackbar.stories.js +1 -1
- package/Snackbar/Snackbar.stories.js.map +1 -0
- package/Snackbar/index.js.map +1 -0
- package/Switch/Switch.d.ts +1 -2
- package/Switch/Switch.js +8 -10
- package/Switch/Switch.js.map +1 -0
- package/Switch/Switch.stories.js.map +1 -0
- package/Switch/index.js.map +1 -0
- package/Tabs/Tab.d.ts +2 -2
- package/Tabs/Tab.js +1 -1
- package/Tabs/Tab.js.map +1 -0
- package/Tabs/Tabs.d.ts +3 -3
- package/Tabs/Tabs.js +28 -16
- package/Tabs/Tabs.js.map +1 -0
- package/Tabs/Tabs.stories.js +1 -1
- package/Tabs/Tabs.stories.js.map +1 -0
- package/Tabs/index.js.map +1 -0
- package/Tags/Tags.d.ts +8 -7
- package/Tags/Tags.js +7 -11
- package/Tags/Tags.js.map +1 -0
- package/Tags/Tags.stories.js.map +1 -0
- package/Tags/index.js.map +1 -0
- package/Tooltip/Tooltip.d.ts +7 -4
- package/Tooltip/Tooltip.js +2 -2
- package/Tooltip/Tooltip.js.map +1 -0
- package/Tooltip/Tooltip.stories.js.map +1 -0
- package/Tooltip/index.js.map +1 -0
- package/TopAppBar/TopAppBar.d.ts +1 -1
- package/TopAppBar/TopAppBar.js +1 -1
- package/TopAppBar/TopAppBar.js.map +1 -0
- package/TopAppBar/TopAppBar.stories.js.map +1 -0
- package/TopAppBar/TopAppBarActionItem.js +1 -1
- package/TopAppBar/TopAppBarActionItem.js.map +1 -0
- package/TopAppBar/TopAppBarNavigationIcon.js +1 -1
- package/TopAppBar/TopAppBarNavigationIcon.js.map +1 -0
- package/TopAppBar/TopAppBarPrimary.js +1 -1
- package/TopAppBar/TopAppBarPrimary.js.map +1 -0
- package/TopAppBar/TopAppBarSecondary.js +1 -1
- package/TopAppBar/TopAppBarSecondary.js.map +1 -0
- package/TopAppBar/TopAppBarSection.d.ts +1 -1
- package/TopAppBar/TopAppBarSection.js +1 -1
- package/TopAppBar/TopAppBarSection.js.map +1 -0
- package/TopAppBar/TopAppBarTitle.d.ts +1 -1
- package/TopAppBar/TopAppBarTitle.js +1 -1
- package/TopAppBar/TopAppBarTitle.js.map +1 -0
- package/TopAppBar/index.js.map +1 -0
- package/TopProgressBar/TopProgressBar.d.ts +2 -2
- package/TopProgressBar/TopProgressBar.js.map +1 -0
- package/TopProgressBar/TopProgressBar.stories.js +1 -1
- package/TopProgressBar/TopProgressBar.stories.js.map +1 -0
- package/TopProgressBar/hoc/index.js.map +1 -0
- package/TopProgressBar/hoc/withTopProgressBar.d.ts +1 -1
- package/TopProgressBar/hoc/withTopProgressBar.js +1 -1
- package/TopProgressBar/hoc/withTopProgressBar.js.map +1 -0
- package/TopProgressBar/index.js.map +1 -0
- package/Typography/Typography.d.ts +1 -1
- package/Typography/Typography.js +1 -1
- package/Typography/Typography.js.map +1 -0
- package/Typography/Typography.stories.js +1 -1
- package/Typography/Typography.stories.js.map +1 -0
- package/Typography/index.js.map +1 -0
- package/package.json +17 -13
- package/rmwc/base/LICENSE +21 -0
- package/rmwc/base/README.md +3 -0
- package/rmwc/base/code/component.d.ts +18 -0
- package/rmwc/base/code/component.js +163 -0
- package/rmwc/base/code/foundation-component.d.ts +79 -0
- package/rmwc/base/code/foundation-component.js +354 -0
- package/rmwc/base/code/index.d.ts +16 -0
- package/rmwc/base/code/index.js +25 -0
- package/rmwc/base/code/test-polyfill.d.ts +3 -0
- package/rmwc/base/code/test-polyfill.js +33 -0
- package/rmwc/base/code/utils/apply-passive.d.ts +8 -0
- package/rmwc/base/code/utils/apply-passive.js +63 -0
- package/rmwc/base/code/utils/debounce.d.ts +2 -0
- package/rmwc/base/code/utils/debounce.js +17 -0
- package/rmwc/base/code/utils/deprecation.d.ts +6 -0
- package/rmwc/base/code/utils/deprecation.js +76 -0
- package/rmwc/base/code/utils/emitter.d.ts +13 -0
- package/rmwc/base/code/utils/emitter.js +120 -0
- package/rmwc/base/code/utils/events-map.d.ts +87 -0
- package/rmwc/base/code/utils/events-map.js +90 -0
- package/rmwc/base/code/utils/index.d.ts +10 -0
- package/rmwc/base/code/utils/index.js +19 -0
- package/rmwc/base/code/utils/ponyfills.d.ts +3 -0
- package/rmwc/base/code/utils/ponyfills.js +29 -0
- package/rmwc/base/code/utils/random-id.d.ts +6 -0
- package/rmwc/base/code/utils/random-id.js +14 -0
- package/rmwc/base/code/utils/strings.d.ts +3 -0
- package/rmwc/base/code/utils/strings.js +13 -0
- package/rmwc/base/code/utils/use-knob.d.ts +2 -0
- package/rmwc/base/code/utils/use-knob.js +64 -0
- package/rmwc/base/code/utils/wrap-child.d.ts +3 -0
- package/rmwc/base/code/utils/wrap-child.js +55 -0
- package/rmwc/base/code/with-theme.d.ts +15 -0
- package/rmwc/base/code/with-theme.js +106 -0
- package/rmwc/base/package.json +40 -0
- package/types.d.ts +2 -2
- package/types.js.map +1 -0
|
@@ -8,7 +8,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
|
|
|
8
8
|
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
9
9
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
10
10
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
11
|
-
import
|
|
11
|
+
import React from "react";
|
|
12
12
|
import BrowseFiles from "react-butterfiles";
|
|
13
13
|
import { FormElementMessage } from "../FormElementMessage";
|
|
14
14
|
import styled from "@emotion/styled";
|
|
@@ -119,12 +119,22 @@ export var SingleImageUpload = /*#__PURE__*/function (_React$Component) {
|
|
|
119
119
|
renderImagePreview = _this$props2.renderImagePreview;
|
|
120
120
|
var imageEditorImageSrc = "";
|
|
121
121
|
|
|
122
|
-
if (this.state.imageEditor.image) {
|
|
122
|
+
if (this.state.imageEditor.image && this.state.imageEditor.image.src) {
|
|
123
123
|
imageEditorImageSrc = this.state.imageEditor.image.src;
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
var src = value ? value.src : null;
|
|
127
127
|
var errorType = this.state.error ? this.state.error.type : null;
|
|
128
|
+
|
|
129
|
+
var _ref = validation || {},
|
|
130
|
+
validationIsValid = _ref.isValid,
|
|
131
|
+
validationMessage = _ref.message;
|
|
132
|
+
/**
|
|
133
|
+
* accept can be safely cast because of default value
|
|
134
|
+
* errorType as keyof Props["errorMessages"] can be safely
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
|
|
128
138
|
return /*#__PURE__*/React.createElement(ImageUploadWrapper, {
|
|
129
139
|
className: classNames(className)
|
|
130
140
|
}, label && !src && /*#__PURE__*/React.createElement("div", {
|
|
@@ -185,20 +195,20 @@ export var SingleImageUpload = /*#__PURE__*/function (_React$Component) {
|
|
|
185
195
|
convertToBase64: true,
|
|
186
196
|
onSuccess: this.handleFiles,
|
|
187
197
|
onError: this.handleErrors
|
|
188
|
-
}, function (
|
|
189
|
-
var browseFiles =
|
|
190
|
-
getDropZoneProps =
|
|
198
|
+
}, function (_ref3) {
|
|
199
|
+
var browseFiles = _ref3.browseFiles,
|
|
200
|
+
getDropZoneProps = _ref3.getDropZoneProps;
|
|
191
201
|
return /*#__PURE__*/React.createElement("div", getDropZoneProps(), /*#__PURE__*/React.createElement(Image, {
|
|
192
202
|
renderImagePreview: renderImagePreview,
|
|
193
203
|
loading: _this2.state.loading,
|
|
194
204
|
value: value,
|
|
195
|
-
removeImage: showRemoveImageButton ? onChange :
|
|
205
|
+
removeImage: showRemoveImageButton ? onChange : undefined,
|
|
196
206
|
uploadImage: browseFiles,
|
|
197
207
|
editImage: browseFiles
|
|
198
208
|
}));
|
|
199
|
-
}),
|
|
209
|
+
}), validationIsValid === false && /*#__PURE__*/React.createElement(FormElementMessage, {
|
|
200
210
|
error: true
|
|
201
|
-
},
|
|
211
|
+
}, validationMessage), validationIsValid !== false && description && /*#__PURE__*/React.createElement(FormElementMessage, null, description), this.state.error && /*#__PURE__*/React.createElement(FormElementMessage, {
|
|
202
212
|
error: true
|
|
203
213
|
}, this.props.errorMessages[errorType] || this.props.errorMessages.default));
|
|
204
214
|
}
|
|
@@ -208,10 +218,6 @@ export var SingleImageUpload = /*#__PURE__*/function (_React$Component) {
|
|
|
208
218
|
}(React.Component);
|
|
209
219
|
|
|
210
220
|
_defineProperty(SingleImageUpload, "defaultProps", {
|
|
211
|
-
validation: {
|
|
212
|
-
isValid: null,
|
|
213
|
-
message: null
|
|
214
|
-
},
|
|
215
221
|
maxSize: "10mb",
|
|
216
222
|
imageEditor: {},
|
|
217
223
|
accept: ["image/jpeg", "image/png", "image/gif", "image/svg+xml"],
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["SingleImageUpload.tsx"],"names":["React","BrowseFiles","FormElementMessage","styled","classNames","Image","ImageEditorDialog","ImageUploadWrapper","position","opacity","pointerEvents","transform","top","left","color","noImageEditingTypes","SingleImageUpload","loading","error","imageEditor","open","image","images","props","onChange","name","type","size","src","base64","setState","includes","errors","className","value","validation","label","description","accept","maxSize","showRemoveImageButton","renderImagePreview","imageEditorImageSrc","state","errorType","validationIsValid","isValid","validationMessage","message","setTimeout","handleFiles","handleErrors","browseFiles","getDropZoneProps","undefined","errorMessages","default","Component","maxSizeExceeded","multipleMaxSizeExceeded","multipleNotAllowed","unsupportedFileType"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { FormComponentProps } from \"~/types\";\nimport BrowseFiles, { SelectedFile, FileError } from \"react-butterfiles\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\nimport styled from \"@emotion/styled\";\nimport classNames from \"classnames\";\nimport Image from \"./Image\";\nimport ImageEditorDialog from \"./ImageEditorDialog\";\n\nconst ImageUploadWrapper = styled(\"div\")({\n position: \"relative\",\n \".disabled\": {\n opacity: 0.75,\n pointerEvents: \"none\"\n },\n \".mdc-floating-label--float-above\": {\n transform: \"scale(0.75)\",\n top: 10,\n left: 10,\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n },\n \".mdc-text-field-helper-text\": {\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n }\n});\n\ninterface SingleImageUploadProps extends FormComponentProps {\n // Component label.\n label?: string;\n\n // Is component disabled?\n disabled?: boolean;\n\n // Description beneath the image.\n description?: string;\n\n // A className for the root element.\n className?: string;\n\n // Define a list of accepted image types.\n accept?: Array<string>;\n\n // Define file's max allowed size (default is \"10mb\").\n // Uses \"bytes\" (https://www.npmjs.com/package/bytes) library to convert string notation to actual number.\n maxSize: string;\n\n // Image editor options.\n // Please check the docs of ImageEditor component for the list of all available options.\n imageEditor?: Object;\n\n // Custom image preview renderer. By default images are rendered via simple <img> element.\n renderImagePreview?: () => React.ReactElement<any>;\n\n // Should remove image button (top right ✕) be shown? Default is set to `true`.\n showRemoveImageButton?: boolean;\n\n // Use these to customize error messages (eg. if i18n supported is needed).\n errorMessages: {\n maxSizeExceeded: string;\n unsupportedFileType: string;\n default: string;\n multipleNotAllowed: string;\n multipleMaxSizeExceeded: string;\n };\n}\n\ninterface StateImage {\n name: string;\n type: string;\n size: number;\n src?: string;\n}\ninterface State {\n loading: boolean;\n error: FileError | null;\n imageEditor: {\n image: StateImage | null;\n open: boolean;\n };\n}\n\n// Do not apply editing for following image types.\nconst noImageEditingTypes = [\"image/svg+xml\", \"image/gif\"];\n\ntype ErrorType =\n | \"maxSizeExceeded\"\n | \"unsupportedFileType\"\n | \"default\"\n | \"multipleNotAllowed\"\n | \"multipleMaxSizeExceeded\";\n\nexport class SingleImageUpload extends React.Component<SingleImageUploadProps, State> {\n static defaultProps: Partial<SingleImageUploadProps> = {\n maxSize: \"10mb\",\n imageEditor: {},\n accept: [\"image/jpeg\", \"image/png\", \"image/gif\", \"image/svg+xml\"],\n showRemoveImageButton: true,\n errorMessages: {\n maxSizeExceeded: \"Max size exceeded.\",\n multipleMaxSizeExceeded: \"Selected fields exceed max file size.\",\n multipleNotAllowed: \"Multiple selection not allowed.\",\n unsupportedFileType: \"Unsupported file type.\",\n default: \"An error occurred.\"\n }\n };\n\n public override state: State = {\n loading: false,\n error: null,\n imageEditor: {\n open: false,\n image: null\n }\n };\n\n handleFiles = (images: SelectedFile[]) => {\n const { onChange, imageEditor } = this.props;\n const image = {\n name: images[0].name,\n type: images[0].type,\n size: images[0].size,\n src: images[0].src.base64\n };\n\n this.setState({ error: null }, () => {\n if (imageEditor && !noImageEditingTypes.includes(image.type)) {\n this.setState({ imageEditor: { image, open: true } });\n } else {\n onChange && onChange(image);\n }\n });\n };\n\n handleErrors = (errors: FileError[]) => {\n const [error] = errors;\n this.setState({ error });\n };\n\n public override render() {\n const {\n className,\n value,\n validation,\n label,\n description,\n accept,\n maxSize,\n onChange,\n imageEditor,\n showRemoveImageButton,\n renderImagePreview\n } = this.props;\n\n let imageEditorImageSrc = \"\";\n if (this.state.imageEditor.image && this.state.imageEditor.image.src) {\n imageEditorImageSrc = this.state.imageEditor.image.src;\n }\n\n const src = value ? value.src : null;\n\n const errorType = this.state.error ? (this.state.error.type as ErrorType) : null;\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n /**\n * accept can be safely cast because of default value\n * errorType as keyof Props[\"errorMessages\"] can be safely\n */\n return (\n <ImageUploadWrapper className={classNames(className)}>\n {label && !src && (\n <div className=\"mdc-floating-label mdc-floating-label--float-above\">\n {label}\n </div>\n )}\n\n <ImageEditorDialog\n options={imageEditor}\n open={this.state.imageEditor.open}\n src={imageEditorImageSrc}\n onClose={() => {\n this.setState(state => {\n state.imageEditor.open = false;\n return state;\n });\n }}\n onAccept={src => {\n // We wrapped everything into setTimeout - prevents dialog freeze when larger image is selected.\n setTimeout(() => {\n this.setState({ loading: true }, async () => {\n onChange &&\n (await onChange({ ...this.state.imageEditor.image, src }));\n this.setState({\n loading: false,\n imageEditor: {\n image: null,\n open: false\n }\n });\n });\n });\n }}\n />\n <BrowseFiles\n accept={accept as string[]}\n maxSize={maxSize}\n convertToBase64\n onSuccess={this.handleFiles}\n onError={this.handleErrors}\n >\n {({ browseFiles, getDropZoneProps }) => (\n <div {...getDropZoneProps()}>\n <Image\n renderImagePreview={renderImagePreview}\n loading={this.state.loading}\n value={value}\n removeImage={showRemoveImageButton ? onChange : undefined}\n uploadImage={browseFiles}\n editImage={browseFiles}\n />\n </div>\n )}\n </BrowseFiles>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n\n {this.state.error && (\n <FormElementMessage error>\n {this.props.errorMessages[\n errorType as keyof SingleImageUploadProps[\"errorMessages\"]\n ] || this.props.errorMessages.default}\n </FormElementMessage>\n )}\n </ImageUploadWrapper>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["SingleImageUpload.stories.tsx"],"names":["React","storiesOf","Story","StoryReadme","StorySandboxCode","StorySandbox","StorySandboxExample","withKnobs","boolean","readme","Form","SingleImageUpload","story","module","addDecorator","image","id","name","src","type","size","add","disabled","maxWidth","Bind","JSON","stringify","info","propTables"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SACIC,KADJ,EAEIC,WAFJ,EAGIC,gBAHJ,EAIIC,YAJJ,EAKIC,mBALJ,QAMO,+BANP;AAOA,SAASC,SAAT,EAAoBC,OAApB,QAAmC,wBAAnC;AACA,OAAOC,MAAP;AACA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,iBAAT;AAEA,IAAMC,KAAK,GAAGX,SAAS,CAAC,wBAAD,EAA2BY,MAA3B,CAAvB;AACAD,KAAK,CAACE,YAAN,CAAmBP,SAAnB;AAEA,IAAMQ,KAAK,GAAG;AACVC,EAAAA,EAAE,EAAE,CADM;AAEVC,EAAAA,IAAI,EAAE,eAFI;AAGVC,EAAAA,GAAG,EAAE,iCAHK;AAIVC,EAAAA,IAAI,EAAE,YAJI;AAKVC,EAAAA,IAAI,EAAE;AALI,CAAd;AAQAR,KAAK,CAACS,GAAN,CACI,qBADJ,EAEI,YAAM;AACF,MAAMC,QAAQ,GAAGd,OAAO,CAAC,UAAD,EAAa,KAAb,CAAxB;AAEA,sBACI,oBAAC,KAAD,qBACI,oBAAC,WAAD,QAAcC,MAAd,CADJ,eAEI,oBAAC,YAAD,qBACI,oBAAC,mBAAD,qBACI;AAAK,IAAA,KAAK,EAAE;AAAEc,MAAAA,QAAQ,EAAE;AAAZ;AAAZ,kBACI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAE;AAAER,MAAAA,KAAK,EAALA;AAAF;AAAZ,KACK;AAAA,QAAGS,IAAH,QAAGA,IAAH;AAAA,wBACG,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC;AAAX,oBACI,oBAAC,iBAAD;AACI,MAAA,KAAK,EAAC,iCADV;AAEI,MAAA,QAAQ,EAAEF,QAFd;AAGI,MAAA,WAAW,EAAC;AAHhB,MADJ,CADH;AAAA,GADL,CADJ,CADJ,CADJ,eAgBI,oBAAC,gBAAD,wDAEkBG,IAAI,CAACC,SAAL,CAAe;AAAEX,IAAAA,KAAK,EAAEA;AAAT,GAAf,CAFlB,mkBAhBJ,CAFJ,CADJ;AAqCH,CA1CL,EA2CI;AAAEY,EAAAA,IAAI,EAAE;AAAEC,IAAAA,UAAU,EAAE,CAACjB,iBAAD;AAAd;AAAR,CA3CJ","sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport {\n Story,\n StoryReadme,\n StorySandboxCode,\n StorySandbox,\n StorySandboxExample\n} from \"@webiny/storybook-utils/Story\";\nimport { withKnobs, boolean } from \"@storybook/addon-knobs\";\nimport readme from \"./README.md\";\nimport { Form } from \"@webiny/form\";\nimport { SingleImageUpload } from \"./SingleImageUpload\";\n\nconst story = storiesOf(\"Components/ImageUpload\", module);\nstory.addDecorator(withKnobs);\n\nconst image = {\n id: 1,\n name: \"1st_image.jpg\",\n src: \"http://i.pravatar.cc/150?img=49\",\n type: \"image/jpeg\",\n size: 901611\n};\n\nstory.add(\n \"Single Image Upload\",\n () => {\n const disabled = boolean(\"Disabled\", false);\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox>\n <StorySandboxExample>\n <div style={{ maxWidth: 200 }}>\n <Form data={{ image }}>\n {({ Bind }) => (\n <Bind name=\"image\">\n <SingleImageUpload\n label=\"Your previously uploaded image:\"\n disabled={disabled}\n description=\"Image will be publicly visible.\"\n />\n </Bind>\n )}\n </Form>\n </div>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form data={${JSON.stringify({ image: image })}}>\n {({ Bind }) => (\n <Bind name=\"image\">\n <SingleImageUpload\n label=\"Your previously uploaded image:\"\n disabled={disabled}\n description=\"This list will not be shown to other users.\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [SingleImageUpload] } }\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.ts"],"names":["SingleImageUpload","MultiImageUpload","default","Image","ImageEditorDialog"],"mappings":"AAAA,SAASA,iBAAT;AACA,SAASC,gBAAT;AACA,SAASC,OAAO,IAAIC,KAApB;AACA,SAASD,OAAO,IAAIE,iBAApB","sourcesContent":["export { SingleImageUpload } from \"./SingleImageUpload\";\nexport { MultiImageUpload } from \"./MultiImageUpload\";\nexport { default as Image } from \"./Image\";\nexport { default as ImageEditorDialog } from \"./ImageEditorDialog\";\n"]}
|
package/ImageUpload/styled.d.ts
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare const AddImageIconWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").
|
|
3
|
-
export declare const AddImageWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").
|
|
4
|
-
export declare const AddImageWrapperRound: import("@emotion/styled-base").StyledComponent<Pick<import("react").
|
|
5
|
-
theme?: object;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
},
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
export declare const AddImageIconWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
3
|
+
export declare const AddImageWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
4
|
+
export declare const AddImageWrapperRound: import("@emotion/styled-base").StyledComponent<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
5
|
+
theme?: object | undefined;
|
|
6
|
+
} & {
|
|
7
|
+
children?: import("react").ReactNode;
|
|
8
|
+
}, "theme" | "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
9
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
10
|
+
}, Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
11
|
+
theme?: object | undefined;
|
|
12
|
+
} & {
|
|
13
|
+
children?: import("react").ReactNode;
|
|
14
|
+
}, "theme" | "key" | keyof import("react").HTMLAttributes<HTMLDivElement>> & {
|
|
15
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
16
|
+
}, "theme" | keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
17
|
+
export declare const RemoveImage: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
18
|
+
export declare const EditImage: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
19
|
+
export declare const ImagePreviewWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["styled.ts"],"names":["styled","AddImageIconWrapper","color","width","height","maxWidth","maxHeight","display","opacity","margin","AddImageWrapper","minHeight","minWidth","textAlign","backgroundColor","borderRadius","borderBottom","alignItems","justifyContent","flexDirection","transition","cursor","padding","boxSizing","AddImageWrapperRound","RemoveImage","position","top","right","EditImage","left","ImagePreviewWrapper","zIndex","transform"],"mappings":"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","sourcesContent":["// TODO remove\n// @ts-nocheck\nimport styled from \"@emotion/styled\";\n\nexport const AddImageIconWrapper = styled(\"div\")({\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n \">svg\": {\n width: \"100%\",\n height: \"100%\",\n maxWidth: 50,\n maxHeight: 50,\n display: \"block\",\n opacity: 0.5,\n margin: \"0 auto\"\n }\n});\n\nexport const AddImageWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"100%\",\n minHeight: 50,\n minWidth: 50,\n textAlign: \"center\",\n backgroundColor: \"var(--mdc-theme-on-background)\",\n borderRadius: 0,\n borderBottom: \"1px solid var(--mdc-theme-text-hint-on-background)\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n flexDirection: \"column\",\n transition: \"color 0.2s\",\n cursor: \"pointer\",\n padding: 10,\n boxSizing: \"border-box\",\n \"&:hover\": {\n backgroundColor: \"rgba(0,0,0, 0.5)\",\n borderBottom: \"1px solid var(--mdc-theme-on-surface)\"\n }\n});\n\nexport const AddImageWrapperRound = styled(AddImageWrapper)({\n margin: \"auto\",\n width: \"150px\",\n height: \"150px\",\n borderRadius: \"50%\"\n});\n\nexport const RemoveImage = styled(\"div\")({\n position: \"absolute\",\n cursor: \"pointer\",\n top: 10,\n right: 10,\n display: \"none\",\n color: \"white\",\n opacity: 0.5,\n \"&:hover\": {\n opacity: 0.75\n }\n});\n\nexport const EditImage = styled(\"div\")({\n position: \"absolute\",\n cursor: \"pointer\",\n top: 10,\n left: 10,\n display: \"none\",\n color: \"white\",\n opacity: 0.5,\n \"&:hover\": {\n opacity: 0.75\n }\n});\n\nexport const ImagePreviewWrapper = styled(\"div\")({\n width: \"100%\",\n height: \"100%\",\n minHeight: 50,\n minWidth: 50,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n flexDirection: \"column\",\n boxSizing: \"border-box\",\n position: \"relative\",\n [AddImageWrapper]: {\n position: \"absolute\",\n display: \"none\",\n top: 0,\n height: \"100%\",\n zIndex: 1,\n backgroundColor: \"rgba(0,0,0, 0.75)\",\n [AddImageIconWrapper]: {\n top: \"50%\",\n left: \"50%\",\n transform: \"translateY(-50%) translateX(-50%)\",\n position: \"absolute\",\n color: \"white\"\n }\n },\n \"&:hover\": {\n [AddImageWrapper]: {\n display: \"block\"\n },\n [RemoveImage]: {\n display: \"block\",\n zIndex: 2\n },\n [EditImage]: {\n display: \"block\",\n zIndex: 2\n }\n }\n});\n"]}
|
package/Input/Input.d.ts
CHANGED
package/Input/Input.js
CHANGED
|
@@ -8,7 +8,7 @@ import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
|
8
8
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
9
9
|
var _excluded = ["autoFocus", "value", "label", "description", "placeholder", "rows", "validation", "icon", "trailingIcon", "onEnter"];
|
|
10
10
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
11
|
-
import
|
|
11
|
+
import React from "react";
|
|
12
12
|
import { TextField } from "@rmwc/textfield";
|
|
13
13
|
import { FormElementMessage } from "../FormElementMessage";
|
|
14
14
|
import pick from "lodash/pick";
|
|
@@ -108,6 +108,10 @@ export var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
108
108
|
inputValue = "";
|
|
109
109
|
}
|
|
110
110
|
|
|
111
|
+
var _ref2 = validation || {},
|
|
112
|
+
validationIsValid = _ref2.isValid,
|
|
113
|
+
validationMessage = _ref2.message;
|
|
114
|
+
|
|
111
115
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextField, Object.assign({}, pick(props, Input.rmwcProps), {
|
|
112
116
|
onKeyDown: function onKeyDown(e) {
|
|
113
117
|
if (typeof onEnter === "function" && e.key === "Enter") {
|
|
@@ -132,9 +136,9 @@ export var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
132
136
|
placeholder: !label && placeholder || undefined,
|
|
133
137
|
trailingIcon: trailingIcon,
|
|
134
138
|
rows: this.props.rows
|
|
135
|
-
})),
|
|
139
|
+
})), validationIsValid === false && /*#__PURE__*/React.createElement(FormElementMessage, {
|
|
136
140
|
error: true
|
|
137
|
-
},
|
|
141
|
+
}, validationMessage), validationIsValid !== false && description && /*#__PURE__*/React.createElement(FormElementMessage, null, description));
|
|
138
142
|
}
|
|
139
143
|
}]);
|
|
140
144
|
|
|
@@ -142,11 +146,7 @@ export var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
142
146
|
}(React.Component);
|
|
143
147
|
|
|
144
148
|
_defineProperty(Input, "defaultProps", {
|
|
145
|
-
rawOnChange: false
|
|
146
|
-
validation: {
|
|
147
|
-
isValid: null,
|
|
148
|
-
message: null
|
|
149
|
-
}
|
|
149
|
+
rawOnChange: false
|
|
150
150
|
});
|
|
151
151
|
|
|
152
152
|
_defineProperty(Input, "rmwcProps", ["label", "type", "step", "disabled", "readOnly", "placeholder", "outlined", "onKeyDown", "onKeyPress", "onKeyUp", "onFocus", "rootProps", "fullwidth", "inputRef", "className", "maxLength", "characterCount"]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Input.tsx"],"names":["React","TextField","FormElementMessage","pick","Input","e","props","onChange","rawOnChange","target","value","validate","onBlur","persist","autoFocus","label","description","placeholder","rows","validation","icon","trailingIcon","onEnter","inputValue","validationIsValid","isValid","validationMessage","message","rmwcProps","key","onKeyDown","rest","Boolean","undefined","Component"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { TextField, TextFieldProps } from \"@rmwc/textfield\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\nimport pick from \"lodash/pick\";\nimport { FormComponentProps } from \"~/types\";\nimport { ReactElement } from \"react\";\n\nexport type InputProps = FormComponentProps &\n TextFieldProps & {\n // Should this input be filled with browser values\n autoComplete?: string;\n\n // If true, will pass native `event` to the `onChange` callback\n rawOnChange?: boolean;\n\n // Auto-focus input\n autoFocus?: boolean;\n\n // Input placeholder\n placeholder?: string;\n\n // Description beneath the input.\n description?: string | ReactElement;\n\n // Converts input into a text area with given number of rows.\n rows?: number;\n\n maxLength?: number;\n\n // A callback that is executed when input focus is lost.\n onBlur?: (e: React.SyntheticEvent<HTMLInputElement>) => any;\n\n onKeyDown?: (e: React.SyntheticEvent<HTMLInputElement>) => any;\n\n // A callback that gets triggered when the user presses the \"Enter\" key.\n onEnter?: () => any;\n\n // CSS class name\n className?: string;\n };\n\n/**\n * Use Input component to store short string values, like first name, last name, e-mail etc.\n * Additionally, with rows prop, it can also be turned into a text area, to store longer strings.\n */\n\nexport class Input extends React.Component<InputProps> {\n static defaultProps: InputProps = {\n rawOnChange: false\n };\n\n // IconProps directly passed to RMWC\n static rmwcProps = [\n \"label\",\n \"type\",\n \"step\",\n \"disabled\",\n \"readOnly\",\n \"placeholder\",\n \"outlined\",\n \"onKeyDown\",\n \"onKeyPress\",\n \"onKeyUp\",\n \"onFocus\",\n \"rootProps\",\n \"fullwidth\",\n \"inputRef\",\n \"className\",\n \"maxLength\",\n \"characterCount\"\n ];\n\n onChange = (e: React.SyntheticEvent<HTMLInputElement>) => {\n const { onChange, rawOnChange } = this.props;\n if (!onChange) {\n return;\n }\n\n // @ts-ignore\n onChange(rawOnChange ? e : e.target.value);\n };\n\n onBlur = async (e: React.SyntheticEvent<HTMLInputElement>) => {\n const { validate, onBlur } = this.props;\n if (validate) {\n // Since we are accessing event in an async operation, we need to persist it.\n // See https://reactjs.org/docs/events.html#event-pooling.\n e.persist();\n await validate();\n }\n onBlur && onBlur(e);\n };\n\n public override render() {\n const {\n autoFocus,\n value,\n label,\n description,\n placeholder,\n rows,\n validation,\n icon,\n trailingIcon,\n onEnter,\n ...props\n } = this.props;\n\n let inputValue = value;\n if (value === null || typeof value === \"undefined\") {\n inputValue = \"\";\n }\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <React.Fragment>\n <TextField\n {...pick(props, Input.rmwcProps)}\n onKeyDown={(e, ...rest) => {\n if (typeof onEnter === \"function\" && e.key === \"Enter\") {\n onEnter();\n }\n\n if (typeof props.onKeyDown === \"function\") {\n return props.onKeyDown(e, ...rest);\n }\n }}\n autoFocus={autoFocus}\n textarea={Boolean(rows)}\n value={inputValue}\n onChange={this.onChange}\n onBlur={this.onBlur}\n label={label}\n icon={icon}\n placeholder={(!label && placeholder) || undefined}\n trailingIcon={trailingIcon}\n rows={this.props.rows}\n />\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </React.Fragment>\n );\n }\n}\n"]}
|
package/Input/Input.stories.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { storiesOf } from "@storybook/react";
|
|
3
3
|
import { Story, StoryReadme, StorySandboxCode, StorySandbox, StorySandboxExample } from "@webiny/storybook-utils/Story";
|
|
4
4
|
import { withKnobs, boolean } from "@storybook/addon-knobs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Input.stories.tsx"],"names":["React","storiesOf","Story","StoryReadme","StorySandboxCode","StorySandbox","StorySandboxExample","withKnobs","boolean","readme","ReactComponent","AutoRenewIcon","CloudDoneIcon","BaselineDeleteIcon","BaselineDoneIcon","Form","Input","validation","story","module","addDecorator","add","bindProps","name","validators","create","disabled","Bind","info","propTables"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport {\n Story,\n StoryReadme,\n StorySandboxCode,\n StorySandbox,\n StorySandboxExample\n} from \"@webiny/storybook-utils/Story\";\nimport { withKnobs, boolean } from \"@storybook/addon-knobs\";\nimport readme from \"./../Input/README.md\";\nimport { ReactComponent as AutoRenewIcon } from \"./svg/baseline-autorenew-24px.svg\";\nimport { ReactComponent as CloudDoneIcon } from \"./svg/baseline-cloud_done-24px.svg\";\nimport { ReactComponent as BaselineDeleteIcon } from \"./svg/baseline-delete-24px.svg\";\nimport { ReactComponent as BaselineDoneIcon } from \"./svg/baseline-done-24px.svg\";\n\nimport { Form } from \"@webiny/form\";\nimport { Input } from \"./Input\";\nimport { validation } from \"@webiny/validation\";\n\nconst story = storiesOf(\"Components/Input\", module);\nstory.addDecorator(withKnobs);\n\nstory.add(\n \"usage\",\n () => {\n const bindProps = {\n name: \"name\",\n validators: validation.create(\"required,minLength:3\")\n };\n\n const disabled = boolean(\"Disabled\", false);\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox>\n <StorySandboxExample title={\"Label, description and validation\"}>\n <Form>\n {({ Bind }) => (\n <Bind {...bindProps}>\n <Input\n label={\"Your name\"}\n disabled={disabled}\n description={\"This is your profile name\"}\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <Bind\n name=\"name\"\n validators={validation.create(\"required,minLength:3\")}>\n <Input label={\"Your name\"} disabled={${disabled}} description={\"This is your profile name\"}/>\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n <StorySandbox>\n <StorySandboxExample title={\"With icon (box)\"}>\n <Form>\n {({ Bind }) => (\n <React.Fragment>\n <Bind name=\"phone\">\n <Input\n icon={<AutoRenewIcon />}\n label={\"Your phone number\"}\n description={\"Please enter a real number\"}\n disabled={disabled}\n />\n </Bind>\n <Bind name=\"mobile\">\n <Input\n trailingIcon={<CloudDoneIcon />}\n label={\"Your mobile number\"}\n description={\"An SMS will be sent to this number\"}\n disabled={disabled}\n />\n </Bind>\n </React.Fragment>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <React.Fragment>\n <Bind name=\"phone\">\n <Input\n icon={<AutoRenewIcon />}\n label={\"Your phone number\"}\n description={\"Please enter a real number\"}\n disabled={${disabled}}\n />\n </Bind>\n <Bind name=\"mobile\">\n <Input\n trailingIcon={<CloudDoneIcon />}\n label={\"Your mobile number\"}\n description={\"An SMS will be sent to this number\"}\n disabled={${disabled}}\n />\n </Bind>\n </React.Fragment>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n <StorySandbox>\n <StorySandboxExample title={\"With icon (outlined)\"}>\n <Form>\n {({ Bind }) => (\n <React.Fragment>\n <Bind name=\"phone\">\n <Input\n outlined\n icon={<BaselineDeleteIcon />}\n label={\"Your phone number\"}\n description={\"Please enter a real number\"}\n disabled={disabled}\n />\n </Bind>\n <Bind name=\"mobile\">\n <Input\n outlined\n trailingIcon={<BaselineDoneIcon />}\n label={\"Your mobile number\"}\n description={\"An SMS will be sent to this number\"}\n disabled={disabled}\n />\n </Bind>\n </React.Fragment>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <React.Fragment>\n <Bind name=\"phone\">\n <Input\n outlined\n icon={<BaselineDeleteIcon />}\n label={\"Your phone number\"}\n description={\"Please enter a real number\"}\n disabled={${disabled}}\n />\n </Bind>\n <Bind name=\"mobile\">\n <Input\n outlined\n trailingIcon={<BaselineDoneIcon />}\n label={\"Your mobile number\"}\n description={\"An SMS will be sent to this number\"}\n disabled={${disabled}}\n />\n </Bind>\n </React.Fragment>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n <StorySandbox>\n <StorySandboxExample title={\"Full width\"}>\n <Form>\n {({ Bind }) => (\n <Bind {...bindProps}>\n <Input\n placeholder={\"Your name\"}\n fullwidth\n disabled={disabled}\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <Bind\n name=\"name\"\n validators={validation.create(\"required,minLength:3\")}>\n <Input placeholder={\"Your name\"} fullwidth disabled={${disabled}}/>\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n <StorySandbox>\n <StorySandboxExample title={\"Textarea\"}>\n <Form>\n {({ Bind }) => (\n <React.Fragment>\n <Bind name=\"info\">\n <Input\n rows={6}\n placeholder={\"Tell us something...\"}\n description={\"Just a little bit about yourself.\"}\n disabled={disabled}\n />\n </Bind>\n <Bind name=\"description\">\n <Input\n fullwidth\n rows={6}\n placeholder={\"How's the weather today?\"}\n description={\"We actually need to know.\"}\n disabled={disabled}\n />\n </Bind>\n </React.Fragment>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <React.Fragment>\n <Bind name=\"info\">\n <Input\n rows={6}\n placeholder={\"Tell us something...\"}\n description={\"Just a little bit about yourself.\"}\n disabled={${disabled}}\n />\n </Bind>\n <Bind name=\"description\">\n <Input\n fullwidth\n rows={6}\n placeholder={\"How's the weather today?\"}\n description={\"We actually need to know.\"}\n disabled={${disabled}}\n />\n </Bind>\n </React.Fragment>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Input] } }\n);\n"]}
|
|
@@ -5,40 +5,26 @@ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized
|
|
|
5
5
|
import _inherits from "@babel/runtime/helpers/inherits";
|
|
6
6
|
import _createSuper from "@babel/runtime/helpers/createSuper";
|
|
7
7
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
|
|
9
|
-
// @ts-nocheck
|
|
10
|
-
import React from "react"; // eslint-disable-next-line
|
|
11
|
-
|
|
8
|
+
import React from "react";
|
|
12
9
|
import { Input } from "../index";
|
|
13
10
|
import "jest-dom/extend-expect";
|
|
14
|
-
import { render, cleanup } from "
|
|
11
|
+
import { render, cleanup } from "@testing-library/react";
|
|
15
12
|
afterEach(cleanup);
|
|
16
|
-
describe("Input tests", function () {
|
|
17
|
-
test("passes expected props to render prop", function () {
|
|
18
|
-
var _setup = setup(),
|
|
19
|
-
renderArg = _setup.renderArg;
|
|
20
|
-
|
|
21
|
-
expect(renderArg).toContainKeys(["value", "validation", "onChange", "onBlur"]);
|
|
22
|
-
});
|
|
23
|
-
test("updates value via onChange", function () {
|
|
24
|
-
var _setup2 = setup(),
|
|
25
|
-
renderArg = _setup2.renderArg;
|
|
26
|
-
|
|
27
|
-
expect(renderArg.value).toBe("init-value");
|
|
28
|
-
renderArg.onChange("new-value");
|
|
29
|
-
expect(renderArg.value).toBe("new-value");
|
|
30
|
-
renderArg.onChange("third-value");
|
|
31
|
-
expect(renderArg.value).toBe("third-value");
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
13
|
|
|
35
14
|
function setup() {
|
|
36
15
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
37
|
-
var renderArg = {
|
|
16
|
+
var renderArg = {
|
|
17
|
+
// eslint-disable-next-line
|
|
18
|
+
onChange: function onChange(_) {},
|
|
19
|
+
value: null
|
|
20
|
+
};
|
|
38
21
|
var renderProp = jest.fn(function (controllerArg) {
|
|
39
22
|
Object.assign(renderArg, controllerArg);
|
|
40
23
|
return null;
|
|
41
24
|
});
|
|
25
|
+
var onChange = props.onChange ? props.onChange : function () {
|
|
26
|
+
return void 0;
|
|
27
|
+
};
|
|
42
28
|
|
|
43
29
|
var Test = /*#__PURE__*/function (_React$Component) {
|
|
44
30
|
_inherits(Test, _React$Component);
|
|
@@ -74,7 +60,7 @@ function setup() {
|
|
|
74
60
|
value: function render() {
|
|
75
61
|
return /*#__PURE__*/React.createElement(Input, Object.assign({}, props, {
|
|
76
62
|
value: this.state.value,
|
|
77
|
-
onChange: callAll(
|
|
63
|
+
onChange: callAll(onChange, this.onChange)
|
|
78
64
|
}), renderProp);
|
|
79
65
|
}
|
|
80
66
|
}]);
|
|
@@ -110,4 +96,24 @@ function callAll() {
|
|
|
110
96
|
fn && fn.apply(void 0, args);
|
|
111
97
|
});
|
|
112
98
|
};
|
|
113
|
-
}
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
describe("Input tests", function () {
|
|
102
|
+
test("passes expected props to render prop", function () {
|
|
103
|
+
var _setup = setup(),
|
|
104
|
+
renderArg = _setup.renderArg; // @ts-ignore
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
expect(renderArg).toContainKeys(["value", "validation", "onChange", "onBlur"]);
|
|
108
|
+
});
|
|
109
|
+
test("updates value via onChange", function () {
|
|
110
|
+
var _setup2 = setup(),
|
|
111
|
+
renderArg = _setup2.renderArg;
|
|
112
|
+
|
|
113
|
+
expect(renderArg.value).toBe("init-value");
|
|
114
|
+
renderArg.onChange("new-value");
|
|
115
|
+
expect(renderArg.value).toBe("new-value");
|
|
116
|
+
renderArg.onChange("third-value");
|
|
117
|
+
expect(renderArg.value).toBe("third-value");
|
|
118
|
+
});
|
|
119
|
+
});
|