@webiny/ui 0.0.0-unstable.40876133bb → 0.0.0-unstable.496cf268ac
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 +5 -19
- package/Accordion/Accordion.js.map +1 -1
- package/Accordion/Accordion.stories.js +0 -8
- package/Accordion/Accordion.stories.js.map +1 -1
- package/Accordion/AccordionItem.d.ts +21 -2
- package/Accordion/AccordionItem.js +49 -71
- package/Accordion/AccordionItem.js.map +1 -1
- package/Accordion/AccordionItemActions.d.ts +8 -0
- package/Accordion/AccordionItemActions.js +28 -0
- package/Accordion/AccordionItemActions.js.map +1 -0
- package/Accordion/index.js +0 -4
- package/Accordion/index.js.map +1 -1
- package/Alert/Alert.d.ts +1 -1
- package/Alert/Alert.js +4 -11
- package/Alert/Alert.js.map +1 -1
- package/Alert/Alert.stories.js +0 -6
- package/Alert/Alert.stories.js.map +1 -1
- package/Alert/index.js +0 -2
- package/Alert/index.js.map +1 -1
- package/AutoComplete/AutoComplete.js +38 -88
- package/AutoComplete/AutoComplete.js.map +1 -1
- package/AutoComplete/AutoComplete.stories.js +0 -7
- package/AutoComplete/AutoComplete.stories.js.map +1 -1
- package/AutoComplete/MultiAutoComplete.js +52 -128
- package/AutoComplete/MultiAutoComplete.js.map +1 -1
- package/AutoComplete/MultiAutoComplete.stories.js +0 -8
- package/AutoComplete/MultiAutoComplete.stories.js.map +1 -1
- package/AutoComplete/index.js +0 -4
- package/AutoComplete/index.js.map +1 -1
- package/AutoComplete/styles.js +0 -2
- package/AutoComplete/styles.js.map +1 -1
- package/AutoComplete/utils.js +0 -8
- package/AutoComplete/utils.js.map +1 -1
- package/Avatar/Avatar.js +7 -18
- package/Avatar/Avatar.js.map +1 -1
- package/Avatar/Avatar.stories.js +0 -6
- package/Avatar/Avatar.stories.js.map +1 -1
- package/Avatar/index.js +0 -2
- package/Avatar/index.js.map +1 -1
- package/Button/Button.d.ts +30 -1
- package/Button/Button.js +39 -63
- package/Button/Button.js.map +1 -1
- package/Button/Button.stories.js +0 -10
- package/Button/Button.stories.js.map +1 -1
- package/Button/Button.styles.js +0 -2
- package/Button/Button.styles.js.map +1 -1
- package/Button/CopyButton/CopyButton.js +2 -12
- package/Button/CopyButton/CopyButton.js.map +1 -1
- package/Button/CopyButton/CopyButton.stories.js +0 -7
- package/Button/CopyButton/CopyButton.stories.js.map +1 -1
- package/Button/IconButton/IconButton.js +6 -12
- package/Button/IconButton/IconButton.js.map +1 -1
- package/Button/IconButton/IconButton.stories.js +0 -9
- package/Button/IconButton/IconButton.stories.js.map +1 -1
- package/Button/index.js +0 -6
- package/Button/index.js.map +1 -1
- package/Carousel/Carousel.js +0 -14
- package/Carousel/Carousel.js.map +1 -1
- package/Carousel/Carouser.stories.js +0 -7
- package/Carousel/Carouser.stories.js.map +1 -1
- package/Carousel/index.js +0 -2
- package/Carousel/index.js.map +1 -1
- package/Checkbox/Checkbox.d.ts +1 -0
- package/Checkbox/Checkbox.js +13 -31
- package/Checkbox/Checkbox.js.map +1 -1
- package/Checkbox/Checkbox.stories.js +0 -8
- package/Checkbox/Checkbox.stories.js.map +1 -1
- package/Checkbox/Checkbox.styles.js +0 -2
- package/Checkbox/Checkbox.styles.js.map +1 -1
- package/Checkbox/CheckboxGroup.js +7 -24
- package/Checkbox/CheckboxGroup.js.map +1 -1
- package/Checkbox/CheckboxGroup.stories.js +2 -10
- package/Checkbox/CheckboxGroup.stories.js.map +1 -1
- package/Checkbox/index.js +0 -3
- package/Checkbox/index.js.map +1 -1
- package/Chips/Chip.js +1 -8
- package/Chips/Chip.js.map +1 -1
- package/Chips/Chips.js +3 -13
- package/Chips/Chips.js.map +1 -1
- package/Chips/Chips.stories.js +0 -8
- package/Chips/Chips.stories.js.map +1 -1
- package/Chips/index.js +0 -4
- package/Chips/index.js.map +1 -1
- package/Chips/styles.js +0 -2
- package/Chips/styles.js.map +1 -1
- package/CodeEditor/CodeEditor.js +8 -36
- package/CodeEditor/CodeEditor.js.map +1 -1
- package/CodeEditor/CodeEditor.stories.js +0 -10
- package/CodeEditor/CodeEditor.stories.js.map +1 -1
- package/CodeEditor/index.js +0 -2
- package/CodeEditor/index.js.map +1 -1
- package/ColorPicker/ColorPicker.js +7 -31
- package/ColorPicker/ColorPicker.js.map +1 -1
- package/ColorPicker/ColorPicker.stories.js +0 -8
- package/ColorPicker/ColorPicker.stories.js.map +1 -1
- package/ColorPicker/index.js +0 -2
- package/ColorPicker/index.js.map +1 -1
- package/ConfirmationDialog/ConfirmationDialog.js +33 -65
- package/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/ConfirmationDialog/ConfirmationDialog.stories.js +0 -7
- package/ConfirmationDialog/ConfirmationDialog.stories.js.map +1 -1
- package/ConfirmationDialog/index.js +0 -4
- package/ConfirmationDialog/index.js.map +1 -1
- package/ConfirmationDialog/withConfirmation.js +0 -5
- package/ConfirmationDialog/withConfirmation.js.map +1 -1
- package/DataTable/DataTable.d.ts +16 -1
- package/DataTable/DataTable.js +62 -42
- package/DataTable/DataTable.js.map +1 -1
- package/DataTable/DataTable.stories.js +0 -6
- package/DataTable/DataTable.stories.js.map +1 -1
- package/DataTable/index.js +0 -2
- package/DataTable/index.js.map +1 -1
- package/DataTable/styled.d.ts +30 -1
- package/DataTable/styled.js +25 -7
- package/DataTable/styled.js.map +1 -1
- package/DelayedOnChange/DelayedOnChange.js +19 -35
- package/DelayedOnChange/DelayedOnChange.js.map +1 -1
- package/DelayedOnChange/index.js +0 -3
- package/DelayedOnChange/index.js.map +1 -1
- package/DelayedOnChange/withDelayedOnChange.js +3 -9
- package/DelayedOnChange/withDelayedOnChange.js.map +1 -1
- package/Dialog/Dialog.js +7 -39
- package/Dialog/Dialog.js.map +1 -1
- package/Dialog/Dialog.stories.js +0 -7
- package/Dialog/Dialog.stories.js.map +1 -1
- package/Dialog/index.js +0 -2
- package/Dialog/index.js.map +1 -1
- package/Drawer/Drawer.js +0 -9
- package/Drawer/Drawer.js.map +1 -1
- package/Drawer/Drawer.stories.js +0 -8
- package/Drawer/Drawer.stories.js.map +1 -1
- package/Drawer/index.js +0 -2
- package/Drawer/index.js.map +1 -1
- package/DynamicFieldset/Fieldset.js +7 -34
- package/DynamicFieldset/Fieldset.js.map +1 -1
- package/DynamicFieldset/index.js +0 -2
- package/DynamicFieldset/index.js.map +1 -1
- package/Elevation/Elevation.js +0 -5
- package/Elevation/Elevation.js.map +1 -1
- package/Elevation/Elevation.stories.js +0 -8
- package/Elevation/Elevation.stories.js.map +1 -1
- package/Elevation/index.js +0 -2
- package/Elevation/index.js.map +1 -1
- package/FormElementMessage/FormElementMessage.js +0 -5
- package/FormElementMessage/FormElementMessage.js.map +1 -1
- package/FormElementMessage/index.js +0 -1
- package/FormElementMessage/index.js.map +1 -1
- package/FullName/FullName.js +0 -7
- package/FullName/FullName.js.map +1 -1
- package/FullName/index.js +0 -2
- package/FullName/index.js.map +1 -1
- package/Grid/Grid.js +1 -9
- package/Grid/Grid.js.map +1 -1
- package/Grid/Grid.stories.js +0 -6
- package/Grid/Grid.stories.js.map +1 -1
- package/Grid/index.js +0 -2
- package/Grid/index.js.map +1 -1
- package/Helpers/ClassNames.js +0 -9
- package/Helpers/ClassNames.js.map +1 -1
- package/Helpers/index.js +0 -1
- package/Helpers/index.js.map +1 -1
- package/Icon/Icon.js +1 -7
- package/Icon/Icon.js.map +1 -1
- package/Icon/Icon.stories.js +0 -10
- package/Icon/Icon.stories.js.map +1 -1
- package/Icon/index.js +0 -2
- package/Icon/index.js.map +1 -1
- package/Image/Image.js +0 -8
- package/Image/Image.js.map +1 -1
- package/Image/Image.stories.js +0 -7
- package/Image/Image.stories.js.map +1 -1
- package/Image/index.js +0 -2
- package/Image/index.js.map +1 -1
- package/ImageEditor/ImageEditor.js +46 -107
- package/ImageEditor/ImageEditor.js.map +1 -1
- package/ImageEditor/index.js +0 -2
- package/ImageEditor/index.js.map +1 -1
- package/ImageEditor/toolbar/crop.js +1 -16
- package/ImageEditor/toolbar/crop.js.map +1 -1
- package/ImageEditor/toolbar/filter.js +11 -36
- package/ImageEditor/toolbar/filter.js.map +1 -1
- package/ImageEditor/toolbar/flip.js +0 -17
- package/ImageEditor/toolbar/flip.js.map +1 -1
- package/ImageEditor/toolbar/icons/index.js +0 -8
- package/ImageEditor/toolbar/icons/index.js.map +1 -1
- package/ImageEditor/toolbar/index.js +0 -5
- package/ImageEditor/toolbar/index.js.map +1 -1
- package/ImageEditor/toolbar/rotate.js +8 -43
- package/ImageEditor/toolbar/rotate.js.map +1 -1
- package/ImageUpload/Image.js +10 -34
- package/ImageUpload/Image.js.map +1 -1
- package/ImageUpload/ImageEditorDialog.js +11 -33
- package/ImageUpload/ImageEditorDialog.js.map +1 -1
- package/ImageUpload/MultiImageUpload.js +111 -175
- package/ImageUpload/MultiImageUpload.js.map +1 -1
- package/ImageUpload/MultiImageUpload.stories.js +0 -8
- package/ImageUpload/MultiImageUpload.stories.js.map +1 -1
- package/ImageUpload/SingleImageUpload.js +38 -79
- package/ImageUpload/SingleImageUpload.js.map +1 -1
- package/ImageUpload/SingleImageUpload.stories.js +0 -8
- package/ImageUpload/SingleImageUpload.stories.js.map +1 -1
- package/ImageUpload/index.js +0 -5
- package/ImageUpload/index.js.map +1 -1
- package/ImageUpload/styled.d.ts +27 -17
- package/ImageUpload/styled.js +0 -5
- package/ImageUpload/styled.js.map +1 -1
- package/Input/Input.d.ts +2 -12
- package/Input/Input.js +86 -149
- package/Input/Input.js.map +1 -1
- package/Input/Input.stories.js +0 -13
- package/Input/Input.stories.js.map +1 -1
- package/Input/__tests__/Input.test.js +4 -30
- package/Input/__tests__/Input.test.js.map +1 -1
- package/Input/index.js +0 -2
- package/Input/index.js.map +1 -1
- package/List/CollapsibleList/CollapsibleList.stories.js +0 -8
- package/List/CollapsibleList/CollapsibleList.stories.js.map +1 -1
- package/List/CollapsibleList/index.js +0 -6
- package/List/CollapsibleList/index.js.map +1 -1
- package/List/DataList/DataList.js +18 -97
- package/List/DataList/DataList.js.map +1 -1
- package/List/DataList/DataList.stories.js +2 -10
- package/List/DataList/DataList.stories.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.d.ts +8 -6
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js +5 -16
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlayAction.js +3 -14
- package/List/DataList/DataListModalOverlay/DataListModalOverlayAction.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.js +3 -12
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.js.map +1 -1
- package/List/DataList/DataListModalOverlay/index.js +0 -3
- package/List/DataList/DataListModalOverlay/index.js.map +1 -1
- package/List/DataList/DataListWithSections.js +4 -48
- package/List/DataList/DataListWithSections.js.map +1 -1
- package/List/DataList/Loader.js +0 -7
- package/List/DataList/Loader.js.map +1 -1
- package/List/DataList/NoData.js +0 -7
- package/List/DataList/NoData.js.map +1 -1
- package/List/DataList/icons/index.js +0 -29
- package/List/DataList/icons/index.js.map +1 -1
- package/List/DataList/index.js +0 -6
- package/List/DataList/index.js.map +1 -1
- package/List/List.js +0 -39
- package/List/List.js.map +1 -1
- package/List/List.stories.js +0 -12
- package/List/List.stories.js.map +1 -1
- package/List/icons/index.js +0 -3
- package/List/icons/index.js.map +1 -1
- package/List/index.js +0 -4
- package/List/index.js.map +1 -1
- package/Menu/Menu.js +2 -28
- package/Menu/Menu.js.map +1 -1
- package/Menu/Menu.stories.js +0 -7
- package/Menu/Menu.stories.js.map +1 -1
- package/Menu/index.js +0 -2
- package/Menu/index.js.map +1 -1
- package/Mosaic/Mosaic.js +3 -7
- package/Mosaic/Mosaic.js.map +1 -1
- package/Mosaic/Mosaic.stories.js +0 -6
- package/Mosaic/Mosaic.stories.js.map +1 -1
- package/Mosaic/index.js +0 -2
- package/Mosaic/index.js.map +1 -1
- package/Progress/CircularProgress.js +6 -14
- package/Progress/CircularProgress.js.map +1 -1
- package/Progress/index.js +0 -2
- package/Progress/index.js.map +1 -1
- package/Radio/Radio.js +9 -28
- package/Radio/Radio.js.map +1 -1
- package/Radio/Radio.styles.js +0 -2
- package/Radio/Radio.styles.js.map +1 -1
- package/Radio/RadioGroup.js +5 -21
- package/Radio/RadioGroup.js.map +1 -1
- package/Radio/RadioGroup.stories.js +2 -10
- package/Radio/RadioGroup.stories.js.map +1 -1
- package/Radio/index.js +0 -3
- package/Radio/index.js.map +1 -1
- package/RichTextEditor/RichTextEditor.js +30 -64
- package/RichTextEditor/RichTextEditor.js.map +1 -1
- package/RichTextEditor/RichTextEditor.stories.js +0 -7
- package/RichTextEditor/RichTextEditor.stories.js.map +1 -1
- package/RichTextEditor/createPropsFromConfig.js +0 -4
- package/RichTextEditor/createPropsFromConfig.js.map +1 -1
- package/RichTextEditor/index.js +0 -3
- package/RichTextEditor/index.js.map +1 -1
- package/Ripple/Ripple.js +0 -6
- package/Ripple/Ripple.js.map +1 -1
- package/Ripple/Ripple.stories.js +0 -12
- package/Ripple/Ripple.stories.js.map +1 -1
- package/Ripple/index.js +0 -2
- package/Ripple/index.js.map +1 -1
- package/Scrollbar/Scrollbar.js +0 -5
- package/Scrollbar/Scrollbar.js.map +1 -1
- package/Scrollbar/Scrollbar.stories.js +0 -6
- package/Scrollbar/Scrollbar.stories.js.map +1 -1
- package/Scrollbar/index.js +0 -2
- package/Scrollbar/index.js.map +1 -1
- package/Section/Section.stories.js +0 -7
- package/Section/Section.stories.js.map +1 -1
- package/Section/index.js +2 -12
- package/Section/index.js.map +1 -1
- package/Select/Select.js +9 -32
- package/Select/Select.js.map +1 -1
- package/Select/Select.stories.js +0 -8
- package/Select/Select.stories.js.map +1 -1
- package/Select/index.js +0 -2
- package/Select/index.js.map +1 -1
- package/Skeleton/Skeleton.d.ts +6 -2
- package/Skeleton/Skeleton.js +8 -11
- package/Skeleton/Skeleton.js.map +1 -1
- package/Skeleton/Skeleton.stories.js +0 -6
- package/Skeleton/Skeleton.stories.js.map +1 -1
- package/Skeleton/index.js +0 -2
- package/Skeleton/index.js.map +1 -1
- package/Slider/Slider.js +7 -29
- package/Slider/Slider.js.map +1 -1
- package/Slider/Slider.stories.js +1 -9
- package/Slider/Slider.stories.js.map +1 -1
- package/Slider/index.js +0 -2
- package/Slider/index.js.map +1 -1
- package/Snackbar/Snackbar.js +0 -19
- package/Snackbar/Snackbar.js.map +1 -1
- package/Snackbar/Snackbar.stories.js +0 -23
- package/Snackbar/Snackbar.stories.js.map +1 -1
- package/Snackbar/index.js +0 -1
- package/Snackbar/index.js.map +1 -1
- package/Switch/Switch.d.ts +1 -1
- package/Switch/Switch.js +5 -28
- package/Switch/Switch.js.map +1 -1
- package/Switch/Switch.stories.js +0 -8
- package/Switch/Switch.stories.js.map +1 -1
- package/Switch/index.js +0 -2
- package/Switch/index.js.map +1 -1
- package/Tabs/Tab.d.ts +1 -0
- package/Tabs/Tab.js +3 -9
- package/Tabs/Tab.js.map +1 -1
- package/Tabs/Tabs.d.ts +1 -0
- package/Tabs/Tabs.js +15 -28
- package/Tabs/Tabs.js.map +1 -1
- package/Tabs/Tabs.stories.js +0 -10
- package/Tabs/Tabs.stories.js.map +1 -1
- package/Tabs/index.js +0 -4
- package/Tabs/index.js.map +1 -1
- package/Tags/Tags.d.ts +8 -15
- package/Tags/Tags.js +77 -130
- package/Tags/Tags.js.map +1 -1
- package/Tags/Tags.stories.js +0 -8
- package/Tags/Tags.stories.js.map +1 -1
- package/Tags/index.js +0 -2
- package/Tags/index.js.map +1 -1
- package/Tooltip/Tooltip.js +0 -19
- package/Tooltip/Tooltip.js.map +1 -1
- package/Tooltip/Tooltip.stories.js +0 -6
- package/Tooltip/Tooltip.stories.js.map +1 -1
- package/Tooltip/index.js +0 -2
- package/Tooltip/index.js.map +1 -1
- package/TopAppBar/TopAppBar.js +1 -8
- package/TopAppBar/TopAppBar.js.map +1 -1
- package/TopAppBar/TopAppBar.stories.js +3 -16
- package/TopAppBar/TopAppBar.stories.js.map +1 -1
- package/TopAppBar/TopAppBarActionItem.js +0 -5
- package/TopAppBar/TopAppBarActionItem.js.map +1 -1
- package/TopAppBar/TopAppBarNavigationIcon.js +0 -5
- package/TopAppBar/TopAppBarNavigationIcon.js.map +1 -1
- package/TopAppBar/TopAppBarPrimary.js +1 -8
- package/TopAppBar/TopAppBarPrimary.js.map +1 -1
- package/TopAppBar/TopAppBarSecondary.js +3 -10
- package/TopAppBar/TopAppBarSecondary.js.map +1 -1
- package/TopAppBar/TopAppBarSection.js +1 -8
- package/TopAppBar/TopAppBarSection.js.map +1 -1
- package/TopAppBar/TopAppBarTitle.js +1 -8
- package/TopAppBar/TopAppBarTitle.js.map +1 -1
- package/TopAppBar/index.js +0 -14
- package/TopAppBar/index.js.map +1 -1
- package/TopProgressBar/TopProgressBar.js +0 -5
- package/TopProgressBar/TopProgressBar.js.map +1 -1
- package/TopProgressBar/TopProgressBar.stories.js +1 -8
- package/TopProgressBar/TopProgressBar.stories.js.map +1 -1
- package/TopProgressBar/hoc/index.js +0 -2
- package/TopProgressBar/hoc/index.js.map +1 -1
- package/TopProgressBar/hoc/withTopProgressBar.js +2 -8
- package/TopProgressBar/hoc/withTopProgressBar.js.map +1 -1
- package/TopProgressBar/index.js +0 -2
- package/TopProgressBar/index.js.map +1 -1
- package/Typography/Typography.d.ts +2 -2
- package/Typography/Typography.js +0 -5
- package/Typography/Typography.js.map +1 -1
- package/Typography/Typography.stories.js +0 -6
- package/Typography/Typography.stories.js.map +1 -1
- package/Typography/index.js +0 -2
- package/Typography/index.js.map +1 -1
- package/package.json +17 -15
- package/types.d.ts +3 -3
- package/types.js.map +1 -1
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@storybook/react");
|
|
8
|
-
|
|
9
6
|
var _Story = require("@webiny/storybook-utils/Story");
|
|
10
|
-
|
|
11
7
|
var _README = _interopRequireDefault(require("./../DataTable/README.md"));
|
|
12
|
-
|
|
13
8
|
var _DataTable = require("./DataTable");
|
|
14
|
-
|
|
15
9
|
var story = (0, _react2.storiesOf)("Components/DataTable", module);
|
|
16
10
|
story.add("usage", function () {
|
|
17
11
|
var data = [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["story","storiesOf","module","add","data","name","createdBy","lastModified","status","columns","header","cell","row","toUpperCase","meta","alignEnd","readme","console","log","info","propTables","DataTable"],"sources":["DataTable.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport { Story, StoryReadme, StorySandbox } from \"@webiny/storybook-utils/Story\";\nimport readme from \"./../DataTable/README.md\";\nimport { Columns, DataTable } from \"./DataTable\";\n\nconst story = storiesOf(\"Components/DataTable\", module);\n\ninterface Entry {\n name: string;\n createdBy: string;\n lastModified: string;\n status: string;\n}\n\nstory.add(\n \"usage\",\n () => {\n const data: Entry[] = [\n {\n name: \"Page 1\",\n createdBy: \"John Doe\",\n lastModified: \"3 days ago\",\n status: \"Draft\"\n },\n {\n name: \"Page 2\",\n createdBy: \"John Doe\",\n lastModified: \"1 day ago\",\n status: \"Published\"\n },\n {\n name: \"Page 3\",\n createdBy: \"John Doe\",\n lastModified: \"1 hour ago\",\n status: \"Published\"\n }\n ];\n\n const columns: Columns<Entry> = {\n name: {\n header: \"Title\"\n },\n createdBy: {\n header: \"Author\",\n cell: row => <em>{row.createdBy.toUpperCase()}</em>\n },\n lastModified: {\n header: \"Last Modified\"\n },\n status: {\n header: \"Status\",\n meta: {\n alignEnd: true\n }\n }\n };\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"A simple DataTable.\"}>\n <DataTable data={data} columns={columns} />\n </StorySandbox>\n <StorySandbox title={\"DataTable with selectable rows\"}>\n <DataTable\n data={data}\n columns={columns}\n onSelectRow={row =>\n console.log(\"Do whatever you like with the selected row data\", row)\n }\n />\n </StorySandbox>\n <StorySandbox title={\"DataTable at initial loading state\"}>\n <DataTable data={data} columns={columns} loadingInitial={true} />\n </StorySandbox>\n </Story>\n );\n },\n {\n info: {\n propTables: [DataTable]\n }\n }\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","add","data","name","createdBy","lastModified","status","columns","header","cell","row","toUpperCase","meta","alignEnd","readme","console","log","info","propTables","DataTable"],"sources":["DataTable.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport { Story, StoryReadme, StorySandbox } from \"@webiny/storybook-utils/Story\";\nimport readme from \"./../DataTable/README.md\";\nimport { Columns, DataTable } from \"./DataTable\";\n\nconst story = storiesOf(\"Components/DataTable\", module);\n\ninterface Entry {\n name: string;\n createdBy: string;\n lastModified: string;\n status: string;\n}\n\nstory.add(\n \"usage\",\n () => {\n const data: Entry[] = [\n {\n name: \"Page 1\",\n createdBy: \"John Doe\",\n lastModified: \"3 days ago\",\n status: \"Draft\"\n },\n {\n name: \"Page 2\",\n createdBy: \"John Doe\",\n lastModified: \"1 day ago\",\n status: \"Published\"\n },\n {\n name: \"Page 3\",\n createdBy: \"John Doe\",\n lastModified: \"1 hour ago\",\n status: \"Published\"\n }\n ];\n\n const columns: Columns<Entry> = {\n name: {\n header: \"Title\"\n },\n createdBy: {\n header: \"Author\",\n cell: row => <em>{row.createdBy.toUpperCase()}</em>\n },\n lastModified: {\n header: \"Last Modified\"\n },\n status: {\n header: \"Status\",\n meta: {\n alignEnd: true\n }\n }\n };\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"A simple DataTable.\"}>\n <DataTable data={data} columns={columns} />\n </StorySandbox>\n <StorySandbox title={\"DataTable with selectable rows\"}>\n <DataTable\n data={data}\n columns={columns}\n onSelectRow={row =>\n console.log(\"Do whatever you like with the selected row data\", row)\n }\n />\n </StorySandbox>\n <StorySandbox title={\"DataTable at initial loading state\"}>\n <DataTable data={data} columns={columns} loadingInitial={true} />\n </StorySandbox>\n </Story>\n );\n },\n {\n info: {\n propTables: [DataTable]\n }\n }\n);\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAS,EAAC,sBAAsB,EAAEC,MAAM,CAAC;AASvDF,KAAK,CAACG,GAAG,CACL,OAAO,EACP,YAAM;EACF,IAAMC,IAAa,GAAG,CAClB;IACIC,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,UAAU;IACrBC,YAAY,EAAE,YAAY;IAC1BC,MAAM,EAAE;EACZ,CAAC,EACD;IACIH,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,UAAU;IACrBC,YAAY,EAAE,WAAW;IACzBC,MAAM,EAAE;EACZ,CAAC,EACD;IACIH,IAAI,EAAE,QAAQ;IACdC,SAAS,EAAE,UAAU;IACrBC,YAAY,EAAE,YAAY;IAC1BC,MAAM,EAAE;EACZ,CAAC,CACJ;EAED,IAAMC,OAAuB,GAAG;IAC5BJ,IAAI,EAAE;MACFK,MAAM,EAAE;IACZ,CAAC;IACDJ,SAAS,EAAE;MACPI,MAAM,EAAE,QAAQ;MAChBC,IAAI,EAAE,cAAAC,GAAG;QAAA,oBAAI,yCAAKA,GAAG,CAACN,SAAS,CAACO,WAAW,EAAE,CAAM;MAAA;IACvD,CAAC;IACDN,YAAY,EAAE;MACVG,MAAM,EAAE;IACZ,CAAC;IACDF,MAAM,EAAE;MACJE,MAAM,EAAE,QAAQ;MAChBI,IAAI,EAAE;QACFC,QAAQ,EAAE;MACd;IACJ;EACJ,CAAC;EAED,oBACI,6BAAC,YAAK,qBACF,6BAAC,kBAAW,QAAEC,eAAM,CAAe,eACnC,6BAAC,mBAAY;IAAC,KAAK,EAAE;EAAsB,gBACvC,6BAAC,oBAAS;IAAC,IAAI,EAAEZ,IAAK;IAAC,OAAO,EAAEK;EAAQ,EAAG,CAChC,eACf,6BAAC,mBAAY;IAAC,KAAK,EAAE;EAAiC,gBAClD,6BAAC,oBAAS;IACN,IAAI,EAAEL,IAAK;IACX,OAAO,EAAEK,OAAQ;IACjB,WAAW,EAAE,qBAAAG,GAAG;MAAA,OACZK,OAAO,CAACC,GAAG,CAAC,iDAAiD,EAAEN,GAAG,CAAC;IAAA;EACtE,EACH,CACS,eACf,6BAAC,mBAAY;IAAC,KAAK,EAAE;EAAqC,gBACtD,6BAAC,oBAAS;IAAC,IAAI,EAAER,IAAK;IAAC,OAAO,EAAEK,OAAQ;IAAC,cAAc,EAAE;EAAK,EAAG,CACtD,CACX;AAEhB,CAAC,EACD;EACIU,IAAI,EAAE;IACFC,UAAU,EAAE,CAACC,oBAAS;EAC1B;AACJ,CAAC,CACJ"}
|
package/DataTable/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _DataTable = require("./DataTable");
|
|
8
|
-
|
|
9
7
|
Object.keys(_DataTable).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _DataTable[key]) return;
|
package/DataTable/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./DataTable\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./DataTable\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
package/DataTable/styled.d.ts
CHANGED
|
@@ -1 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/// <reference types="react" />
|
|
3
|
+
/// <reference types="web" />
|
|
4
|
+
import { DataTableProps } from "@rmwc/data-table";
|
|
5
|
+
import { ColumnDirectionProps } from "./DataTable";
|
|
6
|
+
interface TableProps extends DataTableProps {
|
|
7
|
+
bordered?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const Table: import("@emotion/styled").StyledComponent<{
|
|
10
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
11
|
+
} & TableProps, {}, {}>;
|
|
12
|
+
interface ColumnHeaderWrapperProps {
|
|
13
|
+
sortable: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare const ColumnHeaderWrapper: import("@emotion/styled").StyledComponent<{
|
|
16
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
17
|
+
as?: import("react").ElementType<any> | undefined;
|
|
18
|
+
} & ColumnHeaderWrapperProps, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
19
|
+
export declare const ColumnDirectionWrapper: import("@emotion/styled").StyledComponent<{
|
|
20
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
21
|
+
as?: import("react").ElementType<any> | undefined;
|
|
22
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, {}>;
|
|
23
|
+
export declare const ColumnDirectionIcon: import("@emotion/styled").StyledComponent<import("react").SVGProps<SVGSVGElement> & {
|
|
24
|
+
alt?: string | undefined;
|
|
25
|
+
} & {
|
|
26
|
+
children?: import("react").ReactNode;
|
|
27
|
+
} & {
|
|
28
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
29
|
+
} & ColumnDirectionProps, {}, {}>;
|
|
30
|
+
export {};
|
package/DataTable/styled.js
CHANGED
|
@@ -1,18 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.Table = void 0;
|
|
9
|
-
|
|
7
|
+
exports.Table = exports.ColumnHeaderWrapper = exports.ColumnDirectionWrapper = exports.ColumnDirectionIcon = void 0;
|
|
10
8
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
11
|
-
|
|
9
|
+
var _arrow_downward = require("@material-design-icons/svg/outlined/arrow_downward.svg");
|
|
12
10
|
var _dataTable = require("@rmwc/data-table");
|
|
13
|
-
|
|
14
11
|
var Table = /*#__PURE__*/(0, _styled.default)(_dataTable.DataTable, {
|
|
15
12
|
label: "Table",
|
|
16
13
|
target: "er5nqo40"
|
|
17
|
-
})("width:100%;
|
|
18
|
-
|
|
14
|
+
})("width:100%;border-width:", function (props) {
|
|
15
|
+
return props.bordered ? "1px" : "0px";
|
|
16
|
+
}, ";th,td{vertical-align:middle;}.datatable-select-column{width:56px;}");
|
|
17
|
+
exports.Table = Table;
|
|
18
|
+
var ColumnHeaderWrapper = /*#__PURE__*/(0, _styled.default)("div", {
|
|
19
|
+
label: "ColumnHeaderWrapper",
|
|
20
|
+
target: "er5nqo41"
|
|
21
|
+
})("cursor:", function (props) {
|
|
22
|
+
return props.sortable ? "pointer" : "cursort";
|
|
23
|
+
}, ";display:flex;align-items:center;justify-content:start;");
|
|
24
|
+
exports.ColumnHeaderWrapper = ColumnHeaderWrapper;
|
|
25
|
+
var ColumnDirectionWrapper = /*#__PURE__*/(0, _styled.default)("span", {
|
|
26
|
+
label: "ColumnDirectionWrapper",
|
|
27
|
+
target: "er5nqo42"
|
|
28
|
+
})("display:inline-flex;align-items:center;justify-content:center;height:16px;width:16px;margin:0 0 0 4px;");
|
|
29
|
+
exports.ColumnDirectionWrapper = ColumnDirectionWrapper;
|
|
30
|
+
var ColumnDirectionIcon = /*#__PURE__*/(0, _styled.default)(_arrow_downward.ReactComponent, {
|
|
31
|
+
label: "ColumnDirectionIcon",
|
|
32
|
+
target: "er5nqo43"
|
|
33
|
+
})("transform:", function (props) {
|
|
34
|
+
return props.direction === "asc" ? "rotate(180deg)" : "rotate(0deg)";
|
|
35
|
+
}, ";");
|
|
36
|
+
exports.ColumnDirectionIcon = ColumnDirectionIcon;
|
package/DataTable/styled.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Table","styled","RmwcDataTable"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nimport { DataTable as RmwcDataTable } from \"@rmwc/data-table\";\n\nexport const Table = styled(RmwcDataTable)
|
|
1
|
+
{"version":3,"names":["Table","styled","RmwcDataTable","props","bordered","ColumnHeaderWrapper","sortable","ColumnDirectionWrapper","ColumnDirectionIcon","ArrowDown","direction"],"sources":["styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nimport { ReactComponent as ArrowDown } from \"@material-design-icons/svg/outlined/arrow_downward.svg\";\nimport { DataTable as RmwcDataTable, DataTableProps } from \"@rmwc/data-table\";\nimport { ColumnDirectionProps } from \"~/DataTable/DataTable\";\n\ninterface TableProps extends DataTableProps {\n bordered?: boolean;\n}\n\nexport const Table = styled(RmwcDataTable)<TableProps>`\n width: 100%;\n border-width: ${props => (props.bordered ? \"1px\" : \"0px\")};\n\n th,\n td {\n vertical-align: middle;\n }\n\n .datatable-select-column {\n width: 56px;\n }\n`;\n\ninterface ColumnHeaderWrapperProps {\n sortable: boolean;\n}\n\nexport const ColumnHeaderWrapper = styled(\"div\")<ColumnHeaderWrapperProps>`\n cursor: ${props => (props.sortable ? \"pointer\" : \"cursort\")};\n display: flex;\n align-items: center;\n justify-content: start;\n`;\n\nexport const ColumnDirectionWrapper = styled(\"span\")`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n height: 16px;\n width: 16px;\n margin: 0 0 0 4px;\n`;\n\nexport const ColumnDirectionIcon = styled(ArrowDown)<ColumnDirectionProps>`\n transform: ${props => (props.direction === \"asc\" ? \"rotate(180deg)\" : \"rotate(0deg)\")};\n`;\n"],"mappings":";;;;;;;AAAA;AAEA;AACA;AAOO,IAAMA,KAAK,oBAAGC,eAAM,EAACC,oBAAa;EAAA;EAAA;AAAA,+BAErB,UAAAC,KAAK;EAAA,OAAKA,KAAK,CAACC,QAAQ,GAAG,KAAK,GAAG,KAAK;AAAA,CAAC,wEAU5D;AAAC;AAMK,IAAMC,mBAAmB,oBAAGJ,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,cACjC,UAAAE,KAAK;EAAA,OAAKA,KAAK,CAACG,QAAQ,GAAG,SAAS,GAAG,SAAS;AAAA,CAAC,4DAI9D;AAAC;AAEK,IAAMC,sBAAsB,oBAAGN,eAAM,EAAC,MAAM;EAAA;EAAA;AAAA,4GAOlD;AAAC;AAEK,IAAMO,mBAAmB,oBAAGP,eAAM,EAACQ,8BAAS;EAAA;EAAA;AAAA,iBAClC,UAAAN,KAAK;EAAA,OAAKA,KAAK,CAACO,SAAS,KAAK,KAAK,GAAG,gBAAgB,GAAG,cAAc;AAAA,CAAC,MACxF;AAAC"}
|
|
@@ -1,82 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.default = exports.DelayedOnChange = void 0;
|
|
11
|
-
|
|
12
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
13
|
-
|
|
14
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
-
|
|
16
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _excluded = ["children"];
|
|
21
|
-
|
|
22
14
|
var emptyFunction = function emptyFunction() {
|
|
23
15
|
return undefined;
|
|
24
16
|
};
|
|
25
|
-
|
|
26
17
|
var DelayedOnChange = function DelayedOnChange(_ref) {
|
|
27
18
|
var children = _ref.children,
|
|
28
|
-
|
|
19
|
+
other = (0, _objectWithoutProperties2.default)(_ref, _excluded);
|
|
29
20
|
var onChange = other.onChange,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
21
|
+
_other$delay = other.delay,
|
|
22
|
+
delay = _other$delay === void 0 ? 400 : _other$delay,
|
|
23
|
+
initialValue = other.value;
|
|
34
24
|
var _useState = (0, _react.useState)(initialValue),
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
26
|
+
value = _useState2[0],
|
|
27
|
+
setValue = _useState2[1];
|
|
28
|
+
// Sync state and props
|
|
40
29
|
(0, _react.useEffect)(function () {
|
|
41
30
|
if (initialValue !== value) {
|
|
42
31
|
setValue(initialValue);
|
|
43
32
|
}
|
|
44
33
|
}, [initialValue]);
|
|
45
|
-
|
|
46
34
|
var localTimeout = _react.default.useRef(null);
|
|
47
|
-
|
|
48
35
|
var applyValue = function applyValue(value) {
|
|
49
36
|
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : emptyFunction;
|
|
50
37
|
localTimeout.current && clearTimeout(localTimeout.current);
|
|
51
38
|
localTimeout.current = null;
|
|
52
|
-
|
|
53
39
|
if (!onChange) {
|
|
54
40
|
return;
|
|
55
41
|
}
|
|
56
|
-
|
|
57
42
|
onChange(value, callback);
|
|
58
43
|
};
|
|
59
|
-
|
|
60
44
|
var onChangeLocal = _react.default.useCallback(function (value) {
|
|
61
45
|
setValue(value);
|
|
62
|
-
}, []);
|
|
63
|
-
|
|
46
|
+
}, []);
|
|
64
47
|
|
|
48
|
+
// this is fired upon change value state
|
|
65
49
|
var onValueStateChanged = function onValueStateChanged(nextValue) {
|
|
66
50
|
localTimeout.current && clearTimeout(localTimeout.current);
|
|
67
51
|
localTimeout.current = null;
|
|
68
52
|
localTimeout.current = setTimeout(function () {
|
|
69
53
|
return applyValue(nextValue);
|
|
70
54
|
}, delay);
|
|
71
|
-
};
|
|
72
|
-
|
|
55
|
+
};
|
|
73
56
|
|
|
57
|
+
// need to clear the timeout when unmounting the component
|
|
74
58
|
(0, _react.useEffect)(function () {
|
|
75
59
|
return function () {
|
|
76
60
|
if (!localTimeout.current) {
|
|
77
61
|
return;
|
|
78
62
|
}
|
|
79
|
-
|
|
80
63
|
clearTimeout(localTimeout.current);
|
|
81
64
|
localTimeout.current = null;
|
|
82
65
|
};
|
|
@@ -92,19 +75,22 @@ var DelayedOnChange = function DelayedOnChange(_ref) {
|
|
|
92
75
|
var child = renderProp ? renderProp(newProps) : /*#__PURE__*/_react.default.cloneElement(children, newProps);
|
|
93
76
|
var props = (0, _objectSpread2.default)({}, child.props);
|
|
94
77
|
var realOnKeyDown = props.onKeyDown || emptyFunction;
|
|
95
|
-
var realOnBlur = props.onBlur || emptyFunction;
|
|
78
|
+
var realOnBlur = props.onBlur || emptyFunction;
|
|
96
79
|
|
|
80
|
+
// Need to apply value if input lost focus
|
|
97
81
|
var onBlur = function onBlur(ev) {
|
|
82
|
+
if (!ev["persist"]) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
98
85
|
ev.persist();
|
|
99
86
|
applyValue(ev.target.value, function () {
|
|
100
87
|
return realOnBlur(ev);
|
|
101
88
|
});
|
|
102
|
-
};
|
|
103
|
-
|
|
89
|
+
};
|
|
104
90
|
|
|
91
|
+
// Need to listen for TAB key to apply new value immediately, without delay. Otherwise validation will be triggered with old value.
|
|
105
92
|
var onKeyDown = function onKeyDown(ev) {
|
|
106
93
|
ev.persist();
|
|
107
|
-
|
|
108
94
|
if (ev.key === "Tab") {
|
|
109
95
|
applyValue(ev.target.value, function () {
|
|
110
96
|
return realOnKeyDown(ev);
|
|
@@ -117,13 +103,11 @@ var DelayedOnChange = function DelayedOnChange(_ref) {
|
|
|
117
103
|
realOnKeyDown(ev);
|
|
118
104
|
}
|
|
119
105
|
};
|
|
120
|
-
|
|
121
106
|
return /*#__PURE__*/_react.default.cloneElement(child, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
|
|
122
107
|
onBlur: onBlur,
|
|
123
108
|
onKeyDown: onKeyDown
|
|
124
109
|
}));
|
|
125
110
|
};
|
|
126
|
-
|
|
127
111
|
exports.DelayedOnChange = DelayedOnChange;
|
|
128
112
|
var _default = DelayedOnChange;
|
|
129
113
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["emptyFunction","undefined","DelayedOnChange","children","other","onChange","delay","initialValue","value","useState","setValue","useEffect","localTimeout","React","useRef","applyValue","callback","current","clearTimeout","onChangeLocal","useCallback","onValueStateChanged","nextValue","setTimeout","newProps","renderProp","child","cloneElement","props","realOnKeyDown","onKeyDown","realOnBlur","onBlur","ev","persist","target","key"],"sources":["DelayedOnChange.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nconst emptyFunction = (): undefined => {\n return undefined;\n};\n\ninterface ApplyValueCb {\n (value: string, cb: (value: string) => void): void;\n}\n/**\n * This component is used to wrap Input and Textarea components to optimize form re-render.\n * These 2 are the only components that trigger form model change on each character input.\n * This means, whenever you type a letter an entire form re-renders.\n * On complex forms you will feel and see a significant delay if this component is not used.\n *\n * The logic behind this component is to serve as a middleware between Form and Input/Textarea, and only notify form of a change when\n * a user stops typing for given period of time (400ms by default).\n */\ninterface OnChangeCallable {\n (value: string, cb?: ApplyValueCb): void;\n}\ninterface OnBlurCallable {\n (ev: React.SyntheticEvent): void;\n}\ninterface OnKeyDownCallable {\n (ev: React.KeyboardEvent<HTMLInputElement>): void;\n}\ninterface ChildrenCallableParams {\n value: string;\n onChange: OnChangeCallable;\n}\ninterface ChildrenCallable {\n (params: ChildrenCallableParams): React.ReactElement;\n}\nexport interface DelayedOnChangeProps {\n value?: string;\n delay?: number;\n onChange?: OnChangeCallable;\n onBlur?: OnBlurCallable;\n onKeyDown?: OnKeyDownCallable;\n children: React.ReactNode | ChildrenCallable;\n}\nexport const DelayedOnChange: React.FC<DelayedOnChangeProps> = ({ children, ...other }) => {\n const { onChange, delay = 400, value: initialValue } = other;\n const [value, setValue] = useState<string | undefined>(initialValue);\n // Sync state and props\n useEffect(() => {\n if (initialValue !== value) {\n setValue(initialValue);\n }\n }, [initialValue]);\n\n const localTimeout = React.useRef<number | null>(null);\n\n const applyValue = (value: string, callback: ApplyValueCb = emptyFunction) => {\n localTimeout.current && clearTimeout(localTimeout.current);\n localTimeout.current = null;\n if (!onChange) {\n return;\n }\n onChange(value, callback);\n };\n\n const onChangeLocal = React.useCallback((value: string) => {\n setValue(value);\n }, []);\n\n // this is fired upon change value state\n const onValueStateChanged = (nextValue: string) => {\n localTimeout.current && clearTimeout(localTimeout.current);\n localTimeout.current = null;\n localTimeout.current = setTimeout(() => applyValue(nextValue), delay) as unknown as number;\n };\n\n // need to clear the timeout when unmounting the component\n useEffect(() => {\n return () => {\n if (!localTimeout.current) {\n return;\n }\n clearTimeout(localTimeout.current);\n localTimeout.current = null;\n };\n }, []);\n\n useEffect(() => {\n onValueStateChanged(value || \"\");\n }, [value]);\n\n const newProps = {\n ...other,\n value: value || \"\",\n onChange: onChangeLocal\n };\n\n const renderProp = typeof children === \"function\" ? (children as ChildrenCallable) : null;\n const child = renderProp\n ? renderProp(newProps)\n : React.cloneElement(children as unknown as React.ReactElement, newProps);\n\n const props = { ...child.props };\n const realOnKeyDown = props.onKeyDown || emptyFunction;\n const realOnBlur = props.onBlur || emptyFunction;\n\n // Need to apply value if input lost focus\n const onBlur: OnBlurCallable = ev => {\n ev.persist();\n applyValue((ev.target as HTMLInputElement).value, () => realOnBlur(ev));\n };\n\n // Need to listen for TAB key to apply new value immediately, without delay. Otherwise validation will be triggered with old value.\n const onKeyDown: OnKeyDownCallable = ev => {\n ev.persist();\n if (ev.key === \"Tab\") {\n applyValue((ev.target as HTMLInputElement).value, () => realOnKeyDown(ev));\n } else if (ev.key === \"Enter\" && props[\"data-on-enter\"]) {\n applyValue((ev.target as HTMLInputElement).value, () => realOnKeyDown(ev));\n } else {\n realOnKeyDown(ev);\n }\n };\n\n return React.cloneElement(child, { ...props, onBlur, onKeyDown });\n};\n\nexport default DelayedOnChange;\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["emptyFunction","undefined","DelayedOnChange","children","other","onChange","delay","initialValue","value","useState","setValue","useEffect","localTimeout","React","useRef","applyValue","callback","current","clearTimeout","onChangeLocal","useCallback","onValueStateChanged","nextValue","setTimeout","newProps","renderProp","child","cloneElement","props","realOnKeyDown","onKeyDown","realOnBlur","onBlur","ev","persist","target","key"],"sources":["DelayedOnChange.ts"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nconst emptyFunction = (): undefined => {\n return undefined;\n};\n\ninterface ApplyValueCb {\n (value: string, cb: (value: string) => void): void;\n}\n/**\n * This component is used to wrap Input and Textarea components to optimize form re-render.\n * These 2 are the only components that trigger form model change on each character input.\n * This means, whenever you type a letter an entire form re-renders.\n * On complex forms you will feel and see a significant delay if this component is not used.\n *\n * The logic behind this component is to serve as a middleware between Form and Input/Textarea, and only notify form of a change when\n * a user stops typing for given period of time (400ms by default).\n */\ninterface OnChangeCallable {\n (value: string, cb?: ApplyValueCb): void;\n}\ninterface OnBlurCallable {\n (ev: React.SyntheticEvent): void;\n}\ninterface OnKeyDownCallable {\n (ev: React.KeyboardEvent<HTMLInputElement>): void;\n}\ninterface ChildrenCallableParams {\n value: string;\n onChange: OnChangeCallable;\n}\ninterface ChildrenCallable {\n (params: ChildrenCallableParams): React.ReactElement;\n}\nexport interface DelayedOnChangeProps {\n value?: string;\n delay?: number;\n onChange?: OnChangeCallable;\n onBlur?: OnBlurCallable;\n onKeyDown?: OnKeyDownCallable;\n children: React.ReactNode | ChildrenCallable;\n}\nexport const DelayedOnChange: React.FC<DelayedOnChangeProps> = ({ children, ...other }) => {\n const { onChange, delay = 400, value: initialValue } = other;\n const [value, setValue] = useState<string | undefined>(initialValue);\n // Sync state and props\n useEffect(() => {\n if (initialValue !== value) {\n setValue(initialValue);\n }\n }, [initialValue]);\n\n const localTimeout = React.useRef<number | null>(null);\n\n const applyValue = (value: string, callback: ApplyValueCb = emptyFunction) => {\n localTimeout.current && clearTimeout(localTimeout.current);\n localTimeout.current = null;\n if (!onChange) {\n return;\n }\n onChange(value, callback);\n };\n\n const onChangeLocal = React.useCallback((value: string) => {\n setValue(value);\n }, []);\n\n // this is fired upon change value state\n const onValueStateChanged = (nextValue: string) => {\n localTimeout.current && clearTimeout(localTimeout.current);\n localTimeout.current = null;\n localTimeout.current = setTimeout(() => applyValue(nextValue), delay) as unknown as number;\n };\n\n // need to clear the timeout when unmounting the component\n useEffect(() => {\n return () => {\n if (!localTimeout.current) {\n return;\n }\n clearTimeout(localTimeout.current);\n localTimeout.current = null;\n };\n }, []);\n\n useEffect(() => {\n onValueStateChanged(value || \"\");\n }, [value]);\n\n const newProps = {\n ...other,\n value: value || \"\",\n onChange: onChangeLocal\n };\n\n const renderProp = typeof children === \"function\" ? (children as ChildrenCallable) : null;\n const child = renderProp\n ? renderProp(newProps)\n : React.cloneElement(children as unknown as React.ReactElement, newProps);\n\n const props = { ...child.props };\n const realOnKeyDown = props.onKeyDown || emptyFunction;\n const realOnBlur = props.onBlur || emptyFunction;\n\n // Need to apply value if input lost focus\n const onBlur: OnBlurCallable = ev => {\n if (!ev[\"persist\"]) {\n return;\n }\n ev.persist();\n applyValue((ev.target as HTMLInputElement).value, () => realOnBlur(ev));\n };\n\n // Need to listen for TAB key to apply new value immediately, without delay. Otherwise validation will be triggered with old value.\n const onKeyDown: OnKeyDownCallable = ev => {\n ev.persist();\n if (ev.key === \"Tab\") {\n applyValue((ev.target as HTMLInputElement).value, () => realOnKeyDown(ev));\n } else if (ev.key === \"Enter\" && props[\"data-on-enter\"]) {\n applyValue((ev.target as HTMLInputElement).value, () => realOnKeyDown(ev));\n } else {\n realOnKeyDown(ev);\n }\n };\n\n return React.cloneElement(child, { ...props, onBlur, onKeyDown });\n};\n\nexport default DelayedOnChange;\n"],"mappings":";;;;;;;;;;;AAAA;AAAmD;AAEnD,IAAMA,aAAa,GAAG,SAAhBA,aAAa,GAAoB;EACnC,OAAOC,SAAS;AACpB,CAAC;AAsCM,IAAMC,eAA+C,GAAG,SAAlDA,eAA+C,OAA+B;EAAA,IAAzBC,QAAQ,QAARA,QAAQ;IAAKC,KAAK;EAChF,IAAQC,QAAQ,GAAuCD,KAAK,CAApDC,QAAQ;IAAA,eAAuCD,KAAK,CAA1CE,KAAK;IAALA,KAAK,6BAAG,GAAG;IAASC,YAAY,GAAKH,KAAK,CAA7BI,KAAK;EACpC,gBAA0B,IAAAC,eAAQ,EAAqBF,YAAY,CAAC;IAAA;IAA7DC,KAAK;IAAEE,QAAQ;EACtB;EACA,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAIJ,YAAY,KAAKC,KAAK,EAAE;MACxBE,QAAQ,CAACH,YAAY,CAAC;IAC1B;EACJ,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElB,IAAMK,YAAY,GAAGC,cAAK,CAACC,MAAM,CAAgB,IAAI,CAAC;EAEtD,IAAMC,UAAU,GAAG,SAAbA,UAAU,CAAIP,KAAa,EAA6C;IAAA,IAA3CQ,QAAsB,uEAAGhB,aAAa;IACrEY,YAAY,CAACK,OAAO,IAAIC,YAAY,CAACN,YAAY,CAACK,OAAO,CAAC;IAC1DL,YAAY,CAACK,OAAO,GAAG,IAAI;IAC3B,IAAI,CAACZ,QAAQ,EAAE;MACX;IACJ;IACAA,QAAQ,CAACG,KAAK,EAAEQ,QAAQ,CAAC;EAC7B,CAAC;EAED,IAAMG,aAAa,GAAGN,cAAK,CAACO,WAAW,CAAC,UAACZ,KAAa,EAAK;IACvDE,QAAQ,CAACF,KAAK,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA,IAAMa,mBAAmB,GAAG,SAAtBA,mBAAmB,CAAIC,SAAiB,EAAK;IAC/CV,YAAY,CAACK,OAAO,IAAIC,YAAY,CAACN,YAAY,CAACK,OAAO,CAAC;IAC1DL,YAAY,CAACK,OAAO,GAAG,IAAI;IAC3BL,YAAY,CAACK,OAAO,GAAGM,UAAU,CAAC;MAAA,OAAMR,UAAU,CAACO,SAAS,CAAC;IAAA,GAAEhB,KAAK,CAAsB;EAC9F,CAAC;;EAED;EACA,IAAAK,gBAAS,EAAC,YAAM;IACZ,OAAO,YAAM;MACT,IAAI,CAACC,YAAY,CAACK,OAAO,EAAE;QACvB;MACJ;MACAC,YAAY,CAACN,YAAY,CAACK,OAAO,CAAC;MAClCL,YAAY,CAACK,OAAO,GAAG,IAAI;IAC/B,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAN,gBAAS,EAAC,YAAM;IACZU,mBAAmB,CAACb,KAAK,IAAI,EAAE,CAAC;EACpC,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,IAAMgB,QAAQ,+DACPpB,KAAK;IACRI,KAAK,EAAEA,KAAK,IAAI,EAAE;IAClBH,QAAQ,EAAEc;EAAa,EAC1B;EAED,IAAMM,UAAU,GAAG,OAAOtB,QAAQ,KAAK,UAAU,GAAIA,QAAQ,GAAwB,IAAI;EACzF,IAAMuB,KAAK,GAAGD,UAAU,GAClBA,UAAU,CAACD,QAAQ,CAAC,gBACpBX,cAAK,CAACc,YAAY,CAACxB,QAAQ,EAAmCqB,QAAQ,CAAC;EAE7E,IAAMI,KAAK,mCAAQF,KAAK,CAACE,KAAK,CAAE;EAChC,IAAMC,aAAa,GAAGD,KAAK,CAACE,SAAS,IAAI9B,aAAa;EACtD,IAAM+B,UAAU,GAAGH,KAAK,CAACI,MAAM,IAAIhC,aAAa;;EAEhD;EACA,IAAMgC,MAAsB,GAAG,SAAzBA,MAAsB,CAAGC,EAAE,EAAI;IACjC,IAAI,CAACA,EAAE,CAAC,SAAS,CAAC,EAAE;MAChB;IACJ;IACAA,EAAE,CAACC,OAAO,EAAE;IACZnB,UAAU,CAAEkB,EAAE,CAACE,MAAM,CAAsB3B,KAAK,EAAE;MAAA,OAAMuB,UAAU,CAACE,EAAE,CAAC;IAAA,EAAC;EAC3E,CAAC;;EAED;EACA,IAAMH,SAA4B,GAAG,SAA/BA,SAA4B,CAAGG,EAAE,EAAI;IACvCA,EAAE,CAACC,OAAO,EAAE;IACZ,IAAID,EAAE,CAACG,GAAG,KAAK,KAAK,EAAE;MAClBrB,UAAU,CAAEkB,EAAE,CAACE,MAAM,CAAsB3B,KAAK,EAAE;QAAA,OAAMqB,aAAa,CAACI,EAAE,CAAC;MAAA,EAAC;IAC9E,CAAC,MAAM,IAAIA,EAAE,CAACG,GAAG,KAAK,OAAO,IAAIR,KAAK,CAAC,eAAe,CAAC,EAAE;MACrDb,UAAU,CAAEkB,EAAE,CAACE,MAAM,CAAsB3B,KAAK,EAAE;QAAA,OAAMqB,aAAa,CAACI,EAAE,CAAC;MAAA,EAAC;IAC9E,CAAC,MAAM;MACHJ,aAAa,CAACI,EAAE,CAAC;IACrB;EACJ,CAAC;EAED,oBAAOpB,cAAK,CAACc,YAAY,CAACD,KAAK,8DAAOE,KAAK;IAAEI,MAAM,EAANA,MAAM;IAAEF,SAAS,EAATA;EAAS,GAAG;AACrE,CAAC;AAAC;AAAA,eAEa5B,eAAe;AAAA"}
|
package/DelayedOnChange/index.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
@@ -17,7 +16,5 @@ Object.defineProperty(exports, "withDelayedOnChange", {
|
|
|
17
16
|
return _withDelayedOnChange.default;
|
|
18
17
|
}
|
|
19
18
|
});
|
|
20
|
-
|
|
21
19
|
var _DelayedOnChange = _interopRequireDefault(require("./DelayedOnChange"));
|
|
22
|
-
|
|
23
20
|
var _withDelayedOnChange = _interopRequireDefault(require("./withDelayedOnChange"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default as DelayedOnChange } from \"./DelayedOnChange\";\nexport { default as withDelayedOnChange } from \"./withDelayedOnChange\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { default as DelayedOnChange } from \"./DelayedOnChange\";\nexport { default as withDelayedOnChange } from \"./withDelayedOnChange\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA"}
|
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = withDelayedOnChange;
|
|
9
|
-
|
|
10
8
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _DelayedOnChange = _interopRequireDefault(require("./DelayedOnChange"));
|
|
15
|
-
|
|
16
11
|
var _excluded = ["value", "onChange"];
|
|
17
|
-
|
|
18
12
|
function withDelayedOnChange() {
|
|
19
13
|
return function decorator(Component) {
|
|
20
14
|
return function WithDelayedOnChange(props) {
|
|
21
15
|
var value = props.value,
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
onChange = props.onChange,
|
|
17
|
+
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
24
18
|
return /*#__PURE__*/_react.default.createElement(_DelayedOnChange.default, {
|
|
25
19
|
value: value,
|
|
26
20
|
onChange: onChange
|
|
27
21
|
}, function (_ref) {
|
|
28
22
|
var value = _ref.value,
|
|
29
|
-
|
|
23
|
+
onChange = _ref.onChange;
|
|
30
24
|
return /*#__PURE__*/_react.default.createElement(Component, Object.assign({}, rest, {
|
|
31
25
|
value: value,
|
|
32
26
|
onChange: onChange
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["withDelayedOnChange","decorator","Component","WithDelayedOnChange","props","value","onChange","rest"],"sources":["withDelayedOnChange.tsx"],"sourcesContent":["import React from \"react\";\nimport Delayed, { DelayedOnChangeProps } from \"./DelayedOnChange\";\n\nexport default function withDelayedOnChange() {\n return function decorator(Component: React.FC<DelayedOnChangeProps>) {\n return function WithDelayedOnChange(props: DelayedOnChangeProps) {\n const { value, onChange, ...rest } = props;\n return (\n <Delayed value={value} onChange={onChange}>\n {({ value, onChange }) => (\n <Component {...rest} value={value} onChange={onChange} />\n )}\n </Delayed>\n );\n };\n };\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["withDelayedOnChange","decorator","Component","WithDelayedOnChange","props","value","onChange","rest"],"sources":["withDelayedOnChange.tsx"],"sourcesContent":["import React from \"react\";\nimport Delayed, { DelayedOnChangeProps } from \"./DelayedOnChange\";\n\nexport default function withDelayedOnChange() {\n return function decorator(Component: React.FC<DelayedOnChangeProps>) {\n return function WithDelayedOnChange(props: DelayedOnChangeProps) {\n const { value, onChange, ...rest } = props;\n return (\n <Delayed value={value} onChange={onChange}>\n {({ value, onChange }) => (\n <Component {...rest} value={value} onChange={onChange} />\n )}\n </Delayed>\n );\n };\n };\n}\n"],"mappings":";;;;;;;;AAAA;AACA;AAAkE;AAEnD,SAASA,mBAAmB,GAAG;EAC1C,OAAO,SAASC,SAAS,CAACC,SAAyC,EAAE;IACjE,OAAO,SAASC,mBAAmB,CAACC,KAA2B,EAAE;MAC7D,IAAQC,KAAK,GAAwBD,KAAK,CAAlCC,KAAK;QAAEC,QAAQ,GAAcF,KAAK,CAA3BE,QAAQ;QAAKC,IAAI,0CAAKH,KAAK;MAC1C,oBACI,6BAAC,wBAAO;QAAC,KAAK,EAAEC,KAAM;QAAC,QAAQ,EAAEC;MAAS,GACrC;QAAA,IAAGD,KAAK,QAALA,KAAK;UAAEC,QAAQ,QAARA,QAAQ;QAAA,oBACf,6BAAC,SAAS,oBAAKC,IAAI;UAAE,KAAK,EAAEF,KAAM;UAAC,QAAQ,EAAEC;QAAS,GAAG;MAAA,CAC5D,CACK;IAElB,CAAC;EACL,CAAC;AACL"}
|
package/Dialog/Dialog.js
CHANGED
|
@@ -1,117 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.DialogTitle = exports.DialogContent = exports.DialogCancel = exports.DialogButton = exports.DialogActions = exports.DialogAccept = exports.Dialog = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
-
|
|
18
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
13
|
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
16
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
27
|
-
|
|
28
17
|
var _dialog = require("@rmwc/dialog");
|
|
29
|
-
|
|
18
|
+
var _emotion = require("emotion");
|
|
30
19
|
var _Helpers = require("../Helpers");
|
|
31
|
-
|
|
32
20
|
var _excluded = ["children"];
|
|
33
|
-
|
|
34
21
|
var Dialog = /*#__PURE__*/function (_React$Component) {
|
|
35
22
|
(0, _inherits2.default)(Dialog, _React$Component);
|
|
36
|
-
|
|
37
23
|
var _super = (0, _createSuper2.default)(Dialog);
|
|
38
|
-
|
|
39
24
|
function Dialog(props) {
|
|
40
25
|
var _this;
|
|
41
|
-
|
|
42
26
|
(0, _classCallCheck2.default)(this, Dialog);
|
|
43
27
|
_this = _super.call(this, props);
|
|
44
28
|
/**
|
|
45
29
|
* We can safely cast
|
|
46
30
|
*/
|
|
47
|
-
|
|
48
31
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "container", void 0);
|
|
49
32
|
_this.container = document.getElementById("dialog-container");
|
|
50
|
-
|
|
51
33
|
if (!_this.container) {
|
|
52
34
|
_this.container = document.createElement("div");
|
|
53
|
-
|
|
54
35
|
_this.container.setAttribute("id", "dialog-container");
|
|
55
|
-
|
|
56
36
|
var container = _this.container;
|
|
57
37
|
document.body && document.body.appendChild(container);
|
|
58
38
|
}
|
|
59
|
-
|
|
60
39
|
return _this;
|
|
61
40
|
}
|
|
62
|
-
|
|
63
41
|
(0, _createClass2.default)(Dialog, [{
|
|
64
42
|
key: "render",
|
|
65
43
|
value: function render() {
|
|
66
44
|
var _this$props = this.props,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var container = this.container;
|
|
45
|
+
children = _this$props.children,
|
|
46
|
+
props = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
|
|
47
|
+
var container = this.container;
|
|
70
48
|
|
|
49
|
+
// Let's pass "permanent" / "persistent" / "temporary" flags as "mode" prop instead.
|
|
71
50
|
return /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(_dialog.Dialog, (0, _Helpers.getClasses)(props, "webiny-ui-dialog"), children), container);
|
|
72
51
|
}
|
|
73
52
|
}]);
|
|
74
53
|
return Dialog;
|
|
75
54
|
}(_react.default.Component);
|
|
76
|
-
|
|
77
55
|
exports.Dialog = Dialog;
|
|
78
|
-
|
|
79
56
|
/**
|
|
80
57
|
* Dialog's header, which can accept DialogHeaderTitle component or any other set of components.
|
|
81
58
|
*/
|
|
82
59
|
var DialogTitle = function DialogTitle(props) {
|
|
83
60
|
return /*#__PURE__*/_react.default.createElement(_dialog.DialogTitle, (0, _Helpers.getClasses)(props, "webiny-ui-dialog__title"));
|
|
84
61
|
};
|
|
85
|
-
|
|
86
62
|
exports.DialogTitle = DialogTitle;
|
|
87
|
-
|
|
88
63
|
/**
|
|
89
64
|
* A simple component for showing dialog's body.
|
|
90
65
|
*/
|
|
91
66
|
var DialogContent = function DialogContent(props) {
|
|
92
67
|
return /*#__PURE__*/_react.default.createElement(_dialog.DialogContent, (0, _Helpers.getClasses)(props, "webiny-ui-dialog__content"));
|
|
93
68
|
};
|
|
94
|
-
|
|
95
69
|
exports.DialogContent = DialogContent;
|
|
70
|
+
var addMargin = /*#__PURE__*/(0, _emotion.css)("button:last-of-type{margin-left:8px;}label:addMargin;");
|
|
96
71
|
|
|
97
72
|
/**
|
|
98
73
|
* Can be used to show accept and cancel buttons.
|
|
99
74
|
*/
|
|
100
75
|
var DialogActions = function DialogActions(props) {
|
|
101
|
-
return /*#__PURE__*/_react.default.createElement(_dialog.DialogActions, (0, _Helpers.getClasses)(props, "webiny-ui-dialog__actions"));
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement(_dialog.DialogActions, (0, _Helpers.getClasses)(props, [addMargin, "webiny-ui-dialog__actions"]));
|
|
102
77
|
};
|
|
103
|
-
|
|
104
78
|
exports.DialogActions = DialogActions;
|
|
105
|
-
|
|
106
79
|
/**
|
|
107
80
|
* Use this to show a simple button.
|
|
108
81
|
*/
|
|
109
82
|
var DialogButton = function DialogButton(props) {
|
|
110
83
|
return /*#__PURE__*/_react.default.createElement(_dialog.DialogButton, (0, _Helpers.getClasses)(props, "webiny-ui-dialog__button"));
|
|
111
84
|
};
|
|
112
|
-
|
|
113
85
|
exports.DialogButton = DialogButton;
|
|
114
|
-
|
|
115
86
|
/**
|
|
116
87
|
* Use this to close the dialog without taking any additional action.
|
|
117
88
|
*/
|
|
@@ -121,9 +92,7 @@ var DialogCancel = function DialogCancel(props) {
|
|
|
121
92
|
"data-testid": "dialog-cancel"
|
|
122
93
|
}), props.children);
|
|
123
94
|
};
|
|
124
|
-
|
|
125
95
|
exports.DialogCancel = DialogCancel;
|
|
126
|
-
|
|
127
96
|
/**
|
|
128
97
|
* Use this to close the dialog without taking any additional action.
|
|
129
98
|
*/
|
|
@@ -133,5 +102,4 @@ var DialogAccept = function DialogAccept(props) {
|
|
|
133
102
|
"data-testid": "dialog-accept"
|
|
134
103
|
}), props.children);
|
|
135
104
|
};
|
|
136
|
-
|
|
137
105
|
exports.DialogAccept = DialogAccept;
|
package/Dialog/Dialog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Dialog","props","container","document","getElementById","createElement","setAttribute","body","appendChild","children","ReactDOM","createPortal","getClasses","React","Component","DialogTitle","DialogContent","DialogActions","DialogButton","DialogCancel","DialogAccept"],"sources":["Dialog.tsx"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {\n Dialog as RmwcDialog,\n DialogProps as RmwcDialogProps,\n DialogOnCloseEventT,\n DialogContent as RmwcDialogContent,\n DialogContentProps as RmwcDialogContentProps,\n DialogTitle as RmwcDialogTitle,\n DialogTitleProps as RmwcDialogTitleProps,\n DialogActions as RmwcDialogActions,\n DialogActionsProps as RmwcDialogActionsProps,\n DialogButton as RmwcDialogButton,\n DialogButtonProps as RmwcDialogButtonProps\n} from \"@rmwc/dialog\";\nimport { getClasses } from \"~/Helpers\";\n\nexport type DialogOnClose = (event: DialogOnCloseEventT) => void;\n\nexport interface DialogProps extends RmwcDialogProps {\n className?: string;\n\n // Component's custom in-line styles.\n style?: React.CSSProperties;\n\n // If true, dialog will be permanently fixed inside of a view (works for temporary and persistent modes).\n open?: boolean;\n\n onClose?: (evt: DialogOnCloseEventT) => void;\n\n preventOutsideDismiss?: boolean;\n}\n\nexport class Dialog extends React.Component<DialogProps> {\n container: HTMLElement;\n\n constructor(props: DialogProps) {\n super(props);\n /**\n * We can safely cast\n */\n this.container = document.getElementById(\"dialog-container\") as HTMLElement;\n\n if (!this.container) {\n this.container = document.createElement(\"div\");\n this.container.setAttribute(\"id\", \"dialog-container\");\n const container = this.container;\n document.body && document.body.appendChild(container);\n }\n }\n\n public override render() {\n const { children, ...props } = this.props;\n const container = this.container;\n\n // Let's pass \"permanent\" / \"persistent\" / \"temporary\" flags as \"mode\" prop instead.\n return ReactDOM.createPortal(\n <RmwcDialog {...getClasses(props, \"webiny-ui-dialog\")}>{children}</RmwcDialog>,\n container\n );\n }\n}\n\nexport interface DialogTitleProps extends RmwcDialogTitleProps {\n /**\n * Title text.\n */\n children: React.ReactNode[] | React.ReactNode;\n}\n\n/**\n * Dialog's header, which can accept DialogHeaderTitle component or any other set of components.\n */\nexport const DialogTitle: React.FC<DialogTitleProps> = props => (\n <RmwcDialogTitle {...getClasses(props, \"webiny-ui-dialog__title\")} />\n);\n\nexport type DialogContentProps = RmwcDialogContentProps & {\n /**\n * Dialog content.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n className?: string;\n};\n\n/**\n * A simple component for showing dialog's body.\n */\nexport const DialogContent: React.FC<DialogContentProps> = props => (\n <RmwcDialogContent {...getClasses(props, \"webiny-ui-dialog__content\")} />\n);\n\nexport interface DialogActionsProps extends RmwcDialogActionsProps {\n /**\n * Action buttons.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n // Dialog component's custom in-line styles.\n style?: React.CSSProperties;\n}\n\n/**\n * Can be used to show accept and cancel buttons.\n */\nexport const DialogActions: React.FC<DialogActionsProps> = props => (\n <RmwcDialogActions {...getClasses(props, \"webiny-ui-dialog__actions\")} />\n);\n\ninterface DialogButtonProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n\n className?: string;\n}\n\n/**\n * Use this to show a simple button.\n */\nexport const DialogButton: React.FC<DialogButtonProps> = props => (\n <RmwcDialogButton {...getClasses(props, \"webiny-ui-dialog__button\")} />\n);\n\ninterface DialogCancelProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogCancel: React.FC<DialogCancelProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--cancel\")}\n action=\"close\"\n data-testid=\"dialog-cancel\"\n >\n {props.children}\n </DialogButton>\n );\n};\n\ninterface DialogAcceptProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogAccept: React.FC<DialogAcceptProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--accept\")}\n action=\"accept\"\n data-testid=\"dialog-accept\"\n >\n {props.children}\n </DialogButton>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["Dialog","props","container","document","getElementById","createElement","setAttribute","body","appendChild","children","ReactDOM","createPortal","getClasses","React","Component","DialogTitle","DialogContent","addMargin","css","DialogActions","DialogButton","DialogCancel","DialogAccept"],"sources":["Dialog.tsx"],"sourcesContent":["import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport {\n Dialog as RmwcDialog,\n DialogProps as RmwcDialogProps,\n DialogOnCloseEventT,\n DialogContent as RmwcDialogContent,\n DialogContentProps as RmwcDialogContentProps,\n DialogTitle as RmwcDialogTitle,\n DialogTitleProps as RmwcDialogTitleProps,\n DialogActions as RmwcDialogActions,\n DialogActionsProps as RmwcDialogActionsProps,\n DialogButton as RmwcDialogButton,\n DialogButtonProps as RmwcDialogButtonProps\n} from \"@rmwc/dialog\";\nimport { css } from \"emotion\";\nimport { getClasses } from \"~/Helpers\";\n\nexport type DialogOnClose = (event: DialogOnCloseEventT) => void;\n\nexport interface DialogProps extends RmwcDialogProps {\n className?: string;\n\n // Component's custom in-line styles.\n style?: React.CSSProperties;\n\n // If true, dialog will be permanently fixed inside of a view (works for temporary and persistent modes).\n open?: boolean;\n\n onClose?: (evt: DialogOnCloseEventT) => void;\n\n preventOutsideDismiss?: boolean;\n}\n\nexport class Dialog extends React.Component<DialogProps> {\n container: HTMLElement;\n\n constructor(props: DialogProps) {\n super(props);\n /**\n * We can safely cast\n */\n this.container = document.getElementById(\"dialog-container\") as HTMLElement;\n\n if (!this.container) {\n this.container = document.createElement(\"div\");\n this.container.setAttribute(\"id\", \"dialog-container\");\n const container = this.container;\n document.body && document.body.appendChild(container);\n }\n }\n\n public override render() {\n const { children, ...props } = this.props;\n const container = this.container;\n\n // Let's pass \"permanent\" / \"persistent\" / \"temporary\" flags as \"mode\" prop instead.\n return ReactDOM.createPortal(\n <RmwcDialog {...getClasses(props, \"webiny-ui-dialog\")}>{children}</RmwcDialog>,\n container\n );\n }\n}\n\nexport interface DialogTitleProps extends RmwcDialogTitleProps {\n /**\n * Title text.\n */\n children: React.ReactNode[] | React.ReactNode;\n}\n\n/**\n * Dialog's header, which can accept DialogHeaderTitle component or any other set of components.\n */\nexport const DialogTitle: React.FC<DialogTitleProps> = props => (\n <RmwcDialogTitle {...getClasses(props, \"webiny-ui-dialog__title\")} />\n);\n\nexport type DialogContentProps = RmwcDialogContentProps & {\n /**\n * Dialog content.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n className?: string;\n};\n\n/**\n * A simple component for showing dialog's body.\n */\nexport const DialogContent: React.FC<DialogContentProps> = props => (\n <RmwcDialogContent {...getClasses(props, \"webiny-ui-dialog__content\")} />\n);\n\nexport interface DialogActionsProps extends RmwcDialogActionsProps {\n /**\n * Action buttons.\n */\n children: React.ReactNode[] | React.ReactNode;\n\n // Dialog component's custom in-line styles.\n style?: React.CSSProperties;\n}\n\nconst addMargin = css`\n button:last-of-type {\n margin-left: 8px;\n }\n`;\n\n/**\n * Can be used to show accept and cancel buttons.\n */\nexport const DialogActions: React.FC<DialogActionsProps> = props => (\n <RmwcDialogActions {...getClasses(props, [addMargin, \"webiny-ui-dialog__actions\"])} />\n);\n\ninterface DialogButtonProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n\n className?: string;\n}\n\n/**\n * Use this to show a simple button.\n */\nexport const DialogButton: React.FC<DialogButtonProps> = props => (\n <RmwcDialogButton {...getClasses(props, \"webiny-ui-dialog__button\")} />\n);\n\ninterface DialogCancelProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogCancel: React.FC<DialogCancelProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--cancel\")}\n action=\"close\"\n data-testid=\"dialog-cancel\"\n >\n {props.children}\n </DialogButton>\n );\n};\n\ninterface DialogAcceptProps extends RmwcDialogButtonProps {\n /**\n * Callback to execute then button is clicked.\n */\n onClick?: (e: React.MouseEvent) => void;\n}\n\n/**\n * Use this to close the dialog without taking any additional action.\n */\nexport const DialogAccept: React.FC<DialogAcceptProps> = props => {\n return (\n <DialogButton\n {...getClasses(props, \"webiny-ui-dialog__button webiny-ui-dialog__button--accept\")}\n action=\"accept\"\n data-testid=\"dialog-accept\"\n >\n {props.children}\n </DialogButton>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AAaA;AACA;AAAuC;AAAA,IAkB1BA,MAAM;EAAA;EAAA;EAGf,gBAAYC,KAAkB,EAAE;IAAA;IAAA;IAC5B,0BAAMA,KAAK;IACX;AACR;AACA;IAFQ;IAGA,MAAKC,SAAS,GAAGC,QAAQ,CAACC,cAAc,CAAC,kBAAkB,CAAgB;IAE3E,IAAI,CAAC,MAAKF,SAAS,EAAE;MACjB,MAAKA,SAAS,GAAGC,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;MAC9C,MAAKH,SAAS,CAACI,YAAY,CAAC,IAAI,EAAE,kBAAkB,CAAC;MACrD,IAAMJ,SAAS,GAAG,MAAKA,SAAS;MAChCC,QAAQ,CAACI,IAAI,IAAIJ,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACN,SAAS,CAAC;IACzD;IAAC;EACL;EAAC;IAAA;IAAA,OAED,kBAAyB;MACrB,kBAA+B,IAAI,CAACD,KAAK;QAAjCQ,QAAQ,eAARA,QAAQ;QAAKR,KAAK;MAC1B,IAAMC,SAAS,GAAG,IAAI,CAACA,SAAS;;MAEhC;MACA,oBAAOQ,iBAAQ,CAACC,YAAY,eACxB,6BAAC,cAAU,EAAK,IAAAC,mBAAU,EAACX,KAAK,EAAE,kBAAkB,CAAC,EAAGQ,QAAQ,CAAc,EAC9EP,SAAS,CACZ;IACL;EAAC;EAAA;AAAA,EA3BuBW,cAAK,CAACC,SAAS;AAAA;AAqC3C;AACA;AACA;AACO,IAAMC,WAAuC,GAAG,SAA1CA,WAAuC,CAAGd,KAAK;EAAA,oBACxD,6BAAC,mBAAe,EAAK,IAAAW,mBAAU,EAACX,KAAK,EAAE,yBAAyB,CAAC,CAAI;AAAA,CACxE;AAAC;AAWF;AACA;AACA;AACO,IAAMe,aAA2C,GAAG,SAA9CA,aAA2C,CAAGf,KAAK;EAAA,oBAC5D,6BAAC,qBAAiB,EAAK,IAAAW,mBAAU,EAACX,KAAK,EAAE,2BAA2B,CAAC,CAAI;AAAA,CAC5E;AAAC;AAYF,IAAMgB,SAAS,oBAAGC,YAAG,0DAIpB;;AAED;AACA;AACA;AACO,IAAMC,aAA2C,GAAG,SAA9CA,aAA2C,CAAGlB,KAAK;EAAA,oBAC5D,6BAAC,qBAAiB,EAAK,IAAAW,mBAAU,EAACX,KAAK,EAAE,CAACgB,SAAS,EAAE,2BAA2B,CAAC,CAAC,CAAI;AAAA,CACzF;AAAC;AAWF;AACA;AACA;AACO,IAAMG,YAAyC,GAAG,SAA5CA,YAAyC,CAAGnB,KAAK;EAAA,oBAC1D,6BAAC,oBAAgB,EAAK,IAAAW,mBAAU,EAACX,KAAK,EAAE,0BAA0B,CAAC,CAAI;AAAA,CAC1E;AAAC;AASF;AACA;AACA;AACO,IAAMoB,YAAyC,GAAG,SAA5CA,YAAyC,CAAGpB,KAAK,EAAI;EAC9D,oBACI,6BAAC,YAAY,oBACL,IAAAW,mBAAU,EAACX,KAAK,EAAE,2DAA2D,CAAC;IAClF,MAAM,EAAC,OAAO;IACd,eAAY;EAAe,IAE1BA,KAAK,CAACQ,QAAQ,CACJ;AAEvB,CAAC;AAAC;AASF;AACA;AACA;AACO,IAAMa,YAAyC,GAAG,SAA5CA,YAAyC,CAAGrB,KAAK,EAAI;EAC9D,oBACI,6BAAC,YAAY,oBACL,IAAAW,mBAAU,EAACX,KAAK,EAAE,2DAA2D,CAAC;IAClF,MAAM,EAAC,QAAQ;IACf,eAAY;EAAe,IAE1BA,KAAK,CAACQ,QAAQ,CACJ;AAEvB,CAAC;AAAC"}
|
package/Dialog/Dialog.stories.js
CHANGED
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@storybook/react");
|
|
8
|
-
|
|
9
6
|
var _Story = require("@webiny/storybook-utils/Story");
|
|
10
|
-
|
|
11
7
|
var _README = _interopRequireDefault(require("./../Dialog/README.md"));
|
|
12
|
-
|
|
13
8
|
var _addonKnobs = require("@storybook/addon-knobs");
|
|
14
|
-
|
|
15
9
|
var _ = require(".");
|
|
16
|
-
|
|
17
10
|
var story = (0, _react2.storiesOf)("Components/Dialog", module);
|
|
18
11
|
story.addDecorator(_addonKnobs.withKnobs);
|
|
19
12
|
story.add("usage", function () {
|