@webiny/ui 5.34.8 → 5.35.0-beta.1
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.js +4 -14
- 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 +4 -1
- package/Accordion/AccordionItem.js +5 -26
- package/Accordion/AccordionItem.js.map +1 -1
- package/Accordion/AccordionItemActions.js +2 -10
- package/Accordion/AccordionItemActions.js.map +1 -1
- package/Accordion/index.js +0 -4
- package/Accordion/index.js.map +1 -1
- package/Alert/Alert.js +3 -10
- 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.js +39 -59
- 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 -11
- 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 +14 -1
- package/DataTable/DataTable.js +60 -45
- 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 +29 -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 +5 -40
- 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.js +34 -60
- 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 +7 -45
- 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 +8 -18
- 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 +4 -29
- 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.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.js +0 -9
- package/Tabs/Tab.js.map +1 -1
- package/Tabs/Tabs.js +15 -29
- 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.js +13 -37
- 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.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 +16 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["listItemMetaClassName","css","display","iconButtonClassName","style","pagination","bar","justifyContent","alignItems","borderBottom","padding","pages","searchInput","height","list","secondaryText","color","listStyles","listStyle","paddingLeft","margin","Spinner","OptionsList","getMenuProps","children","classNames","MultiAutoComplete","inputValue","multipleSelectionPage","multipleSelectionSearch","reorderFormVisible","reorderFormValue","React","createRef","set","selection","setState","props","unique","value","allowFreeInput","useSimpleValues","options","values","Array","isArray","filtered","state","existingValue","includes","unshift","find","item","getOptionText","textProp","filter","getOptionValue","aliases","findInAliases","toLowerCase","params","isOpen","highlightedIndex","getItemProps","length","noResultFound","renderItem","map","index","itemValue","itemClassNames","suggestionList","className","call","limit","page","search","data","option","lastPage","Math","ceil","totalCount","slice","from","to","meta","hasData","hasPrevious","hasNext","onChange","disabled","useMultipleSelectionList","description","renderListItemLabel","renderListItemOptions","paginateMultipleSelection","setMultipleSelectionSearch","setMultipleSelectionPage","key","e","newValue","splice","target","marginRight","minWidth","hasItems","onInput","validation","isValid","message","otherInputProps","getOptions","autoCompleteStyle","downshift","assignedValueAfterClearing","current","clearSelection","getInputProps","openMenu","rest","rawOnChange","trailingIcon","loading","onBlur","onKeyUp","onFocus","renderOptions","renderMultipleSelection","Component","valueProp"],"sources":["MultiAutoComplete.tsx"],"sourcesContent":["import React from \"react\";\nimport Downshift, { ControllerStateAndHelpers, PropGetters } from \"downshift\";\nimport MaterialSpinner from \"react-spinner-material\";\nimport { Input } from \"~/Input\";\nimport { Chips, Chip } from \"../Chips\";\nimport { getOptionValue, getOptionText, findInAliases } from \"./utils\";\nimport { List, ListItem, ListItemMeta } from \"~/List\";\nimport { IconButton } from \"~/Button\";\nimport classNames from \"classnames\";\nimport { Elevation } from \"~/Elevation\";\nimport { Typography } from \"~/Typography\";\nimport { autoCompleteStyle, suggestionList } from \"./styles\";\nimport { AutoCompleteBaseProps } from \"./types\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\nimport { ReactComponent as BaselineCloseIcon } from \"./icons/baseline-close-24px.svg\";\nimport { ReactComponent as PrevIcon } from \"./icons/navigate_before-24px.svg\";\nimport { ReactComponent as NextIcon } from \"./icons/navigate_next-24px.svg\";\nimport { ReactComponent as PrevAllIcon } from \"./icons/skip_previous-24px.svg\";\nimport { ReactComponent as NextAllIcon } from \"./icons/skip_next-24px.svg\";\nimport { ReactComponent as DeleteIcon } from \"./icons/baseline-close-24px.svg\";\nimport { ReactComponent as ReorderIcon } from \"./icons/reorder_black_24dp.svg\";\nimport { css } from \"emotion\";\nimport { ListItemGraphic } from \"~/List\";\nimport { AutoCompleteProps } from \"~/AutoComplete/AutoComplete\";\n\nconst listItemMetaClassName = css({\n display: \"table\"\n});\n\nconst iconButtonClassName = css({\n display: \"table-cell !important\"\n});\n\nconst style = {\n pagination: {\n bar: css({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n borderBottom: \"2px solid #fa5723\",\n padding: \"6px 0\"\n }),\n pages: css({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n }),\n searchInput: css({\n height: \"42px !important\"\n }),\n list: css({\n padding: \"0 0 5px 0 !important\",\n \".mdc-list-item\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\"\n }\n }),\n secondaryText: css({\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n })\n }\n};\n\nconst listStyles = css({\n \"&.multi-autocomplete__options-list\": {\n listStyle: \"none\",\n paddingLeft: 0,\n \"& li\": {\n margin: 0\n }\n }\n});\n\ninterface SelectionItem {\n name: string;\n}\n\ntype MultiAutoCompletePropsValue = SelectionItem[] | string[];\n\nexport interface MultiAutoCompleteProps extends Omit<AutoCompleteBaseProps, \"value\"> {\n /**\n * Prevents adding the same item to the list twice.\n */\n unique: boolean;\n\n /**\n * Set if custom values (not from list of suggestions) are allowed.\n */\n allowFreeInput?: boolean;\n\n /**\n * If true, will show a loading spinner on the right side of the input.\n */\n loading?: boolean;\n\n /**\n * Use data list instead of default Chips component. Useful when expecting a lot of data.\n */\n useMultipleSelectionList?: boolean;\n\n /**\n * Render list item when `useMultipleSelectionList` is used.\n */\n renderListItemLabel?: Function;\n /**\n * Render in meta wrapper\n */\n renderListItemOptions?: (item: any) => React.ReactNode | null;\n\n /* A component that renders supporting UI in case of no result found. */\n noResultFound?: React.ReactNode;\n /**\n * Value is an array of strings. But can be undefined.\n */\n value?: MultiAutoCompletePropsValue;\n}\n\ninterface MultiAutoCompleteState {\n inputValue: string;\n multipleSelectionPage: number;\n multipleSelectionSearch: string;\n reorderFormVisible: string;\n reorderFormValue: string;\n}\n\nconst Spinner: React.FC = () => {\n return <MaterialSpinner size={24} spinnerColor={\"#fa5723\"} spinnerWidth={2} visible />;\n};\n\ninterface RenderOptionsParams\n extends Omit<ControllerStateAndHelpers<any>, \"getInputProps\" | \"openMenu\"> {\n options: AutoCompleteProps[\"options\"];\n unique: boolean;\n}\n\ninterface OptionsListProps {\n getMenuProps: PropGetters<Record<string, any>>[\"getMenuProps\"];\n}\n\ninterface AssignedValueAfterClearing {\n set: boolean;\n selection: string | null;\n}\n\nconst OptionsList: React.FC<OptionsListProps> = ({ getMenuProps, children }) => {\n return (\n <Elevation z={1}>\n <ul\n className={classNames(\"multi-autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {children}\n </ul>\n </Elevation>\n );\n};\n\nexport class MultiAutoComplete extends React.Component<\n MultiAutoCompleteProps,\n MultiAutoCompleteState\n> {\n static defaultProps: Partial<MultiAutoCompleteProps> = {\n valueProp: \"id\",\n textProp: \"name\",\n unique: true,\n options: [],\n useSimpleValues: false,\n useMultipleSelectionList: false,\n /**\n * We cast this as MultiAutoComplete because renderItem() is executed via .call() where this is MultiAutoComplete instance.\n */\n renderItem(item: any) {\n return (\n <Typography use={\"body2\"}>\n {getOptionText(item, (this as unknown as MultiAutoComplete).props)}\n </Typography>\n );\n },\n /**\n * We cast this as MultiAutoComplete because renderListItemLabel() is executed via .call() where this is MultiAutoComplete instance.\n */\n renderListItemLabel(item: any) {\n return getOptionText(item, (this as unknown as MultiAutoComplete).props);\n }\n };\n\n public override state: MultiAutoCompleteState = {\n inputValue: \"\",\n multipleSelectionPage: 0,\n multipleSelectionSearch: \"\",\n reorderFormVisible: \"\",\n reorderFormValue: \"\"\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n private downshift = React.createRef<any>();\n\n private assignedValueAfterClearing: AssignedValueAfterClearing = {\n set: false,\n selection: null\n };\n\n setMultipleSelectionPage = (multipleSelectionPage: number): void => {\n this.setState({ multipleSelectionPage });\n };\n\n setMultipleSelectionSearch = (multipleSelectionSearch: string): void => {\n this.setState({ multipleSelectionSearch });\n };\n\n getOptions() {\n const { unique, value, allowFreeInput, useSimpleValues, options } = this.props;\n\n const values = Array.isArray(value) ? [...value] : [];\n\n const filtered = [...options];\n\n // If free input is allowed, prepend typed value to the list.\n if (allowFreeInput && this.state.inputValue) {\n if (useSimpleValues) {\n const existingValue = filtered.includes(this.state.inputValue);\n if (!existingValue) {\n filtered.unshift(this.state.inputValue);\n }\n } else {\n const existingValue = filtered.find(\n item => this.state.inputValue === getOptionText(item, this.props)\n );\n if (!existingValue) {\n filtered.unshift({ [this.props.textProp]: this.state.inputValue });\n }\n }\n }\n\n return filtered.filter(item => {\n // We need to filter received options.\n // 1) If \"unique\" prop was passed, we don't want to show already picked options again.\n if (unique) {\n if (Array.isArray(values)) {\n if (\n values.find(\n value =>\n getOptionValue(value, this.props) ===\n getOptionValue(item, this.props)\n )\n ) {\n return false;\n }\n }\n }\n\n // 2) At the end, we want to show only options that are matched by typed text.\n if (!this.state.inputValue) {\n return true;\n }\n\n if (item.aliases) {\n return findInAliases(item, this.state.inputValue);\n }\n\n return getOptionText(item, this.props)\n .toLowerCase()\n .includes(this.state.inputValue.toLowerCase());\n });\n }\n\n /**\n * Renders options - based on user's input. It will try to match input text with available options.\n */\n private renderOptions(params: RenderOptionsParams) {\n const { options, isOpen, highlightedIndex, getMenuProps, getItemProps } = params;\n if (!isOpen) {\n return null;\n }\n\n /**\n * Suggest user to start typing when there are no options available to choose from.\n */\n if (!this.state.inputValue && !options.length) {\n return (\n <OptionsList getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>Start typing to find entry</Typography>\n </li>\n </OptionsList>\n );\n }\n\n if (!options.length) {\n return (\n <Elevation z={1}>\n <ul\n className={classNames(\"multi-autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n <li>\n <Typography use={\"body2\"}>No results.</Typography>\n {this.props.noResultFound}\n </li>\n </ul>\n </Elevation>\n );\n }\n\n const { renderItem } = this.props;\n return (\n <Elevation z={1}>\n <ul\n className={classNames(\"multi-autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {options.map((item, index) => {\n const itemValue = getOptionValue(item, this.props);\n\n // Base classes.\n const itemClassNames = {\n [suggestionList]: true,\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Render the item.\n return (\n <li\n key={itemValue + index}\n {...getItemProps({\n index,\n item,\n className: classNames(itemClassNames)\n })}\n >\n {renderItem.call(this, item, index)}\n </li>\n );\n })}\n </ul>\n </Elevation>\n );\n }\n\n paginateMultipleSelection() {\n const { value } = this.props;\n const limit = 10;\n let page = this.state.multipleSelectionPage;\n const search = this.state.multipleSelectionSearch;\n\n // Assign a real index, so that later when we press delete, we know what is the actual index we're deleting.\n let data = Array.isArray(value)\n ? value.map((option, index) => {\n return { option, index };\n })\n : [];\n\n if (search) {\n data = data.filter(item => {\n return getOptionText(item.option, this.props)\n .toLowerCase()\n .includes(search.toLowerCase());\n });\n }\n\n const lastPage = Math.ceil(data.length / limit);\n const totalCount = data.length;\n\n page = page || lastPage;\n data = data.slice((page - 1) * limit, page * limit);\n\n let from = 0;\n let to = 0;\n if (data.length) {\n from = (page - 1) * limit + 1;\n to = from + (data.length - 1);\n }\n\n const meta = {\n hasData: data.length > 0,\n totalCount,\n from,\n to,\n page: page,\n lastPage,\n limit,\n hasPrevious: page > 1,\n hasNext: page < lastPage\n };\n\n return { data, meta };\n }\n\n /**\n * Once added, items can also be removed by clicking on the ✕ icon. This is the method that is responsible for\n * rendering selected items (we are using already existing \"Chips\" component).\n */\n public renderMultipleSelection() {\n const {\n value,\n onChange,\n disabled,\n useMultipleSelectionList,\n description,\n renderListItemLabel,\n renderListItemOptions\n } = this.props;\n\n if (useMultipleSelectionList) {\n const { data, meta } = this.paginateMultipleSelection();\n\n return (\n <>\n <div className={style.pagination.bar}>\n <div>\n <Input\n className={style.pagination.searchInput}\n placeholder={\"Search selected...\"}\n value={this.state.multipleSelectionSearch}\n data-testid=\"pb.pagination.search\"\n onChange={value => {\n this.setMultipleSelectionSearch(value);\n this.setMultipleSelectionPage(value ? 1 : 0);\n }}\n />\n </div>\n\n <div className={style.pagination.pages}>\n <div className={meta.hasData ? \"\" : style.pagination.secondaryText}>\n {meta.from} - {meta.to} of {meta.totalCount}\n </div>\n <div>\n <IconButton\n icon={<PrevAllIcon />}\n disabled={!meta.hasData || meta.page === 1}\n onClick={() => this.setMultipleSelectionPage(1)}\n />\n <IconButton\n icon={<PrevIcon />}\n disabled={!meta.hasData || !meta.hasPrevious}\n onClick={() => this.setMultipleSelectionPage(meta.page - 1)}\n />\n <IconButton\n icon={<NextIcon />}\n disabled={!meta.hasData || !meta.hasNext}\n onClick={() => this.setMultipleSelectionPage(meta.page + 1)}\n />\n <IconButton\n icon={<NextAllIcon />}\n disabled={!meta.hasData || meta.page === meta.lastPage}\n onClick={() => this.setMultipleSelectionPage(meta.lastPage)}\n />\n </div>\n </div>\n </div>\n\n <List className={style.pagination.list}>\n {meta.hasData ? (\n data.map((item, index) => {\n const key = `${getOptionValue(item.option, this.props)}-${index}`;\n if (this.state.reorderFormVisible === key) {\n return (\n <ListItem key={key}>\n <ListItemGraphic>\n <IconButton disabled icon={<ReorderIcon />} />\n </ListItemGraphic>\n <Input\n value={this.state.reorderFormValue}\n data-testid=\"pb.pagination.input\"\n onKeyDown={(e: any) => {\n const key = e.key;\n if (key !== \"Escape\" && key !== \"Enter\") {\n return;\n }\n\n if (key === \"Enter\") {\n // Reorder the item.\n const newValue = [\n ...(value as SelectionItem[])\n ];\n newValue.splice(\n e.target.value - 1,\n 0,\n newValue.splice(item.index, 1)[0]\n );\n\n if (onChange) {\n onChange(newValue);\n }\n }\n\n this.setState({\n reorderFormVisible: \"\",\n reorderFormValue: \"\"\n });\n }}\n onChange={value =>\n this.setState({ reorderFormValue: value })\n }\n type={\"number\"}\n autoFocus\n className={style.pagination.searchInput}\n placeholder={\n \"Type a new order number and press Enter, or press Esc to cancel.\"\n }\n />\n <ListItemMeta>\n <IconButton icon={<DeleteIcon />} disabled />\n </ListItemMeta>\n </ListItem>\n );\n }\n\n return (\n <ListItem key={key}>\n <ListItemGraphic>\n <IconButton\n icon={<ReorderIcon />}\n onClick={() => {\n this.setState({ reorderFormVisible: key });\n }}\n />\n </ListItemGraphic>\n <div\n style={{\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n marginRight: 8,\n minWidth: 32\n }}\n >\n {item.index + 1}.\n </div>{\" \"}\n {renderListItemLabel &&\n renderListItemLabel.call(this, item.option)}\n <ListItemMeta className={listItemMetaClassName}>\n {renderListItemOptions &&\n renderListItemOptions.call(this, item.option)}\n <IconButton\n icon={<DeleteIcon />}\n className={iconButtonClassName}\n onClick={() => {\n if (!onChange) {\n return;\n }\n onChange([\n ...(value as SelectionItem[]).slice(\n 0,\n item.index\n ),\n ...(value as SelectionItem[]).slice(\n item.index + 1\n )\n ]);\n }}\n />\n </ListItemMeta>\n </ListItem>\n );\n })\n ) : (\n <ListItem>\n <span className={style.pagination.secondaryText}>\n Nothing to show.\n </span>\n </ListItem>\n )}\n </List>\n <div>\n <FormElementMessage>{description}</FormElementMessage>\n </div>\n </>\n );\n }\n\n const hasItems = Array.isArray(value) && value.length;\n if (!hasItems) {\n return null;\n }\n\n return (\n <Chips disabled={disabled}>\n {(value as SelectionItem[]).map((item, index) => (\n <Chip\n label={getOptionText(item, this.props)}\n key={`${getOptionValue(item, this.props)}-${index}`}\n trailingIcon={<BaselineCloseIcon />}\n onRemove={() => {\n if (!onChange) {\n return;\n }\n onChange([\n ...(value as SelectionItem[]).slice(0, index),\n ...(value as SelectionItem[]).slice(index + 1)\n ]);\n }}\n />\n ))}\n </Chips>\n );\n }\n\n public override render() {\n const {\n props,\n props: {\n // options: rawOptions,\n // allowFreeInput,\n // useSimpleValues,\n unique,\n value,\n onChange,\n // valueProp,\n // textProp,\n onInput,\n validation = { isValid: null, message: null },\n useMultipleSelectionList,\n description,\n ...otherInputProps\n }\n } = this;\n\n const options = this.getOptions();\n\n return (\n <div className={classNames(autoCompleteStyle, props.className)}>\n <Downshift\n defaultSelectedItem={null}\n // @ts-ignore there is no className on Downshift\n className={autoCompleteStyle}\n itemToString={item => item && getOptionText(item, props)}\n ref={this.downshift}\n onChange={selection => {\n if (!this.assignedValueAfterClearing.set) {\n this.assignedValueAfterClearing = {\n set: true,\n selection\n };\n this.downshift.current.clearSelection();\n this.setMultipleSelectionPage(0);\n return;\n }\n\n if (this.assignedValueAfterClearing.set) {\n this.setState({ inputValue: \"\" });\n this.assignedValueAfterClearing.set = false;\n if (Array.isArray(value)) {\n onChange &&\n onChange([...value, this.assignedValueAfterClearing.selection]);\n } else {\n onChange && onChange([this.assignedValueAfterClearing.selection]);\n }\n }\n }}\n >\n {/* \"getInputProps\" and \"openMenu\" are not needed in renderOptions method. */}\n {({ getInputProps, openMenu, ...rest }) => (\n <div>\n <Input\n {...getInputProps({\n ...otherInputProps,\n // @ts-ignore\n validation,\n\n // Only pass description if not using \"useMultipleSelectionList\".\n description: useMultipleSelectionList ? null : description,\n rawOnChange: true,\n trailingIcon: this.props.loading && <Spinner />,\n onChange: e => e,\n onBlur: e => e,\n onKeyUp: (e: any) => {\n const inputValue = e.target.value || \"\";\n\n // Set current input value into state and trigger onInput if different.\n if (inputValue !== this.state.inputValue) {\n this.setState({ inputValue }, () => {\n onInput && onInput(inputValue);\n });\n }\n },\n onFocus: e => {\n openMenu();\n otherInputProps.onFocus && otherInputProps.onFocus(e);\n }\n })}\n />\n {this.renderOptions({ ...rest, unique, options })}\n {this.renderMultipleSelection()}\n </div>\n )}\n </Downshift>\n </div>\n );\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AACA;;;;AAIA,IAAMA,qBAAqB,gBAAG,IAAAC,YAAA,EAAI;EAC9BC,OAAO,EAAE;AADqB,CAAJ,iCAA9B;AAIA,IAAMC,mBAAmB,gBAAG,IAAAF,YAAA,EAAI;EAC5BC,OAAO,EAAE;AADmB,CAAJ,+BAA5B;AAIA,IAAME,KAAK,GAAG;EACVC,UAAU,EAAE;IACRC,GAAG,eAAE,IAAAL,YAAA,EAAI;MACLC,OAAO,EAAE,MADJ;MAELK,cAAc,EAAE,eAFX;MAGLC,UAAU,EAAE,QAHP;MAILC,YAAY,EAAE,mBAJT;MAKLC,OAAO,EAAE;IALJ,CAAJ,eADG;IAQRC,KAAK,eAAE,IAAAV,YAAA,EAAI;MACPC,OAAO,EAAE,MADF;MAEPK,cAAc,EAAE,eAFT;MAGPC,UAAU,EAAE;IAHL,CAAJ,iBARC;IAaRI,WAAW,eAAE,IAAAX,YAAA,EAAI;MACbY,MAAM,EAAE;IADK,CAAJ,uBAbL;IAgBRC,IAAI,eAAE,IAAAb,YAAA,EAAI;MACNS,OAAO,EAAE,sBADH;MAEN,kBAAkB;QACdD,YAAY,EAAE;MADA;IAFZ,CAAJ,gBAhBE;IAsBRM,aAAa,eAAE,IAAAd,YAAA,EAAI;MACfe,KAAK,EAAE;IADQ,CAAJ;EAtBP;AADF,CAAd;AA6BA,IAAMC,UAAU,gBAAG,IAAAhB,YAAA,EAAI;EACnB,sCAAsC;IAClCiB,SAAS,EAAE,MADuB;IAElCC,WAAW,EAAE,CAFqB;IAGlC,QAAQ;MACJC,MAAM,EAAE;IADJ;EAH0B;AADnB,CAAJ,sBAAnB;;AA8DA,IAAMC,OAAiB,GAAG,SAApBA,OAAoB,GAAM;EAC5B,oBAAO,6BAAC,6BAAD;IAAiB,IAAI,EAAE,EAAvB;IAA2B,YAAY,EAAE,SAAzC;IAAoD,YAAY,EAAE,CAAlE;IAAqE,OAAO;EAA5E,EAAP;AACH,CAFD;;AAmBA,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,OAAgC;EAAA,IAA7BC,YAA6B,QAA7BA,YAA6B;EAAA,IAAfC,QAAe,QAAfA,QAAe;EAC5E,oBACI,6BAAC,oBAAD;IAAW,CAAC,EAAE;EAAd,gBACI;IACI,SAAS,EAAE,IAAAC,mBAAA,EAAW,kCAAX,EAA+CR,UAA/C;EADf,GAEQM,YAAY,EAFpB,GAIKC,QAJL,CADJ,CADJ;AAUH,CAXD;;IAaaE,iB;;;;;;;;;;;;;;;wFA6BuC;MAC5CC,UAAU,EAAE,EADgC;MAE5CC,qBAAqB,EAAE,CAFqB;MAG5CC,uBAAuB,EAAE,EAHmB;MAI5CC,kBAAkB,EAAE,EAJwB;MAK5CC,gBAAgB,EAAE;IAL0B,C;yGAW5BC,cAAA,CAAMC,SAAN,E;6GAE6C;MAC7DC,GAAG,EAAE,KADwD;MAE7DC,SAAS,EAAE;IAFkD,C;2GAKtC,UAACP,qBAAD,EAAyC;MAChE,MAAKQ,QAAL,CAAc;QAAER,qBAAqB,EAArBA;MAAF,CAAd;IACH,C;6GAE4B,UAACC,uBAAD,EAA2C;MACpE,MAAKO,QAAL,CAAc;QAAEP,uBAAuB,EAAvBA;MAAF,CAAd;IACH,C;;;;;;WAED,sBAAa;MAAA;;MACT,kBAAoE,KAAKQ,KAAzE;MAAA,IAAQC,MAAR,eAAQA,MAAR;MAAA,IAAgBC,KAAhB,eAAgBA,KAAhB;MAAA,IAAuBC,cAAvB,eAAuBA,cAAvB;MAAA,IAAuCC,eAAvC,eAAuCA,eAAvC;MAAA,IAAwDC,OAAxD,eAAwDA,OAAxD;MAEA,IAAMC,MAAM,GAAGC,KAAK,CAACC,OAAN,CAAcN,KAAd,qCAA2BA,KAA3B,IAAoC,EAAnD;MAEA,IAAMO,QAAQ,oCAAOJ,OAAP,CAAd,CALS,CAOT;;MACA,IAAIF,cAAc,IAAI,KAAKO,KAAL,CAAWpB,UAAjC,EAA6C;QACzC,IAAIc,eAAJ,EAAqB;UACjB,IAAMO,aAAa,GAAGF,QAAQ,CAACG,QAAT,CAAkB,KAAKF,KAAL,CAAWpB,UAA7B,CAAtB;;UACA,IAAI,CAACqB,aAAL,EAAoB;YAChBF,QAAQ,CAACI,OAAT,CAAiB,KAAKH,KAAL,CAAWpB,UAA5B;UACH;QACJ,CALD,MAKO;UACH,IAAMqB,cAAa,GAAGF,QAAQ,CAACK,IAAT,CAClB,UAAAC,IAAI;YAAA,OAAI,MAAI,CAACL,KAAL,CAAWpB,UAAX,KAA0B,IAAA0B,oBAAA,EAAcD,IAAd,EAAoB,MAAI,CAACf,KAAzB,CAA9B;UAAA,CADc,CAAtB;;UAGA,IAAI,CAACW,cAAL,EAAoB;YAChBF,QAAQ,CAACI,OAAT,mCAAoB,KAAKb,KAAL,CAAWiB,QAA/B,EAA0C,KAAKP,KAAL,CAAWpB,UAArD;UACH;QACJ;MACJ;;MAED,OAAOmB,QAAQ,CAACS,MAAT,CAAgB,UAAAH,IAAI,EAAI;QAC3B;QACA;QACA,IAAId,MAAJ,EAAY;UACR,IAAIM,KAAK,CAACC,OAAN,CAAcF,MAAd,CAAJ,EAA2B;YACvB,IACIA,MAAM,CAACQ,IAAP,CACI,UAAAZ,KAAK;cAAA,OACD,IAAAiB,qBAAA,EAAejB,KAAf,EAAsB,MAAI,CAACF,KAA3B,MACA,IAAAmB,qBAAA,EAAeJ,IAAf,EAAqB,MAAI,CAACf,KAA1B,CAFC;YAAA,CADT,CADJ,EAME;cACE,OAAO,KAAP;YACH;UACJ;QACJ,CAf0B,CAiB3B;;;QACA,IAAI,CAAC,MAAI,CAACU,KAAL,CAAWpB,UAAhB,EAA4B;UACxB,OAAO,IAAP;QACH;;QAED,IAAIyB,IAAI,CAACK,OAAT,EAAkB;UACd,OAAO,IAAAC,oBAAA,EAAcN,IAAd,EAAoB,MAAI,CAACL,KAAL,CAAWpB,UAA/B,CAAP;QACH;;QAED,OAAO,IAAA0B,oBAAA,EAAcD,IAAd,EAAoB,MAAI,CAACf,KAAzB,EACFsB,WADE,GAEFV,QAFE,CAEO,MAAI,CAACF,KAAL,CAAWpB,UAAX,CAAsBgC,WAAtB,EAFP,CAAP;MAGH,CA7BM,CAAP;IA8BH;IAED;AACJ;AACA;;;;WACI,uBAAsBC,MAAtB,EAAmD;MAAA;;MAC/C,IAAQlB,OAAR,GAA0EkB,MAA1E,CAAQlB,OAAR;MAAA,IAAiBmB,MAAjB,GAA0ED,MAA1E,CAAiBC,MAAjB;MAAA,IAAyBC,gBAAzB,GAA0EF,MAA1E,CAAyBE,gBAAzB;MAAA,IAA2CvC,YAA3C,GAA0EqC,MAA1E,CAA2CrC,YAA3C;MAAA,IAAyDwC,YAAzD,GAA0EH,MAA1E,CAAyDG,YAAzD;;MACA,IAAI,CAACF,MAAL,EAAa;QACT,OAAO,IAAP;MACH;MAED;AACR;AACA;;;MACQ,IAAI,CAAC,KAAKd,KAAL,CAAWpB,UAAZ,IAA0B,CAACe,OAAO,CAACsB,MAAvC,EAA+C;QAC3C,oBACI,6BAAC,WAAD;UAAa,YAAY,EAAEzC;QAA3B,gBACI,sDACI,6BAAC,sBAAD;UAAY,GAAG,EAAE;QAAjB,GAA0B,4BAA1B,CADJ,CADJ,CADJ;MAOH;;MAED,IAAI,CAACmB,OAAO,CAACsB,MAAb,EAAqB;QACjB,oBACI,6BAAC,oBAAD;UAAW,CAAC,EAAE;QAAd,gBACI;UACI,SAAS,EAAE,IAAAvC,mBAAA,EAAW,kCAAX,EAA+CR,UAA/C;QADf,GAEQM,YAAY,EAFpB,gBAII,sDACI,6BAAC,sBAAD;UAAY,GAAG,EAAE;QAAjB,GAA0B,aAA1B,CADJ,EAEK,KAAKc,KAAL,CAAW4B,aAFhB,CAJJ,CADJ,CADJ;MAaH;;MAED,IAAQC,UAAR,GAAuB,KAAK7B,KAA5B,CAAQ6B,UAAR;MACA,oBACI,6BAAC,oBAAD;QAAW,CAAC,EAAE;MAAd,gBACI;QACI,SAAS,EAAE,IAAAzC,mBAAA,EAAW,kCAAX,EAA+CR,UAA/C;MADf,GAEQM,YAAY,EAFpB,GAIKmB,OAAO,CAACyB,GAAR,CAAY,UAACf,IAAD,EAAOgB,KAAP,EAAiB;QAAA;;QAC1B,IAAMC,SAAS,GAAG,IAAAb,qBAAA,EAAeJ,IAAf,EAAqB,MAAI,CAACf,KAA1B,CAAlB,CAD0B,CAG1B;;QACA,IAAMiC,cAAc,yEACfC,sBADe,EACE,IADF,iEAEHT,gBAAgB,KAAKM,KAFlB,8DAGN,KAHM,mBAApB,CAJ0B,CAU1B;;QACA,oBACI;UACI,GAAG,EAAEC,SAAS,GAAGD;QADrB,GAEQL,YAAY,CAAC;UACbK,KAAK,EAALA,KADa;UAEbhB,IAAI,EAAJA,IAFa;UAGboB,SAAS,EAAE,IAAA/C,mBAAA,EAAW6C,cAAX;QAHE,CAAD,CAFpB,GAQKJ,UAAU,CAACO,IAAX,CAAgB,MAAhB,EAAsBrB,IAAtB,EAA4BgB,KAA5B,CARL,CADJ;MAYH,CAvBA,CAJL,CADJ,CADJ;IAiCH;;;WAED,qCAA4B;MAAA;;MACxB,IAAQ7B,KAAR,GAAkB,KAAKF,KAAvB,CAAQE,KAAR;MACA,IAAMmC,KAAK,GAAG,EAAd;MACA,IAAIC,IAAI,GAAG,KAAK5B,KAAL,CAAWnB,qBAAtB;MACA,IAAMgD,MAAM,GAAG,KAAK7B,KAAL,CAAWlB,uBAA1B,CAJwB,CAMxB;;MACA,IAAIgD,IAAI,GAAGjC,KAAK,CAACC,OAAN,CAAcN,KAAd,IACLA,KAAK,CAAC4B,GAAN,CAAU,UAACW,MAAD,EAASV,KAAT,EAAmB;QACzB,OAAO;UAAEU,MAAM,EAANA,MAAF;UAAUV,KAAK,EAALA;QAAV,CAAP;MACH,CAFD,CADK,GAIL,EAJN;;MAMA,IAAIQ,MAAJ,EAAY;QACRC,IAAI,GAAGA,IAAI,CAACtB,MAAL,CAAY,UAAAH,IAAI,EAAI;UACvB,OAAO,IAAAC,oBAAA,EAAcD,IAAI,CAAC0B,MAAnB,EAA2B,MAAI,CAACzC,KAAhC,EACFsB,WADE,GAEFV,QAFE,CAEO2B,MAAM,CAACjB,WAAP,EAFP,CAAP;QAGH,CAJM,CAAP;MAKH;;MAED,IAAMoB,QAAQ,GAAGC,IAAI,CAACC,IAAL,CAAUJ,IAAI,CAACb,MAAL,GAAcU,KAAxB,CAAjB;MACA,IAAMQ,UAAU,GAAGL,IAAI,CAACb,MAAxB;MAEAW,IAAI,GAAGA,IAAI,IAAII,QAAf;MACAF,IAAI,GAAGA,IAAI,CAACM,KAAL,CAAW,CAACR,IAAI,GAAG,CAAR,IAAaD,KAAxB,EAA+BC,IAAI,GAAGD,KAAtC,CAAP;MAEA,IAAIU,IAAI,GAAG,CAAX;MACA,IAAIC,EAAE,GAAG,CAAT;;MACA,IAAIR,IAAI,CAACb,MAAT,EAAiB;QACboB,IAAI,GAAG,CAACT,IAAI,GAAG,CAAR,IAAaD,KAAb,GAAqB,CAA5B;QACAW,EAAE,GAAGD,IAAI,IAAIP,IAAI,CAACb,MAAL,GAAc,CAAlB,CAAT;MACH;;MAED,IAAMsB,IAAI,GAAG;QACTC,OAAO,EAAEV,IAAI,CAACb,MAAL,GAAc,CADd;QAETkB,UAAU,EAAVA,UAFS;QAGTE,IAAI,EAAJA,IAHS;QAITC,EAAE,EAAFA,EAJS;QAKTV,IAAI,EAAEA,IALG;QAMTI,QAAQ,EAARA,QANS;QAOTL,KAAK,EAALA,KAPS;QAQTc,WAAW,EAAEb,IAAI,GAAG,CARX;QASTc,OAAO,EAAEd,IAAI,GAAGI;MATP,CAAb;MAYA,OAAO;QAAEF,IAAI,EAAJA,IAAF;QAAQS,IAAI,EAAJA;MAAR,CAAP;IACH;IAED;AACJ;AACA;AACA;;;;WACI,mCAAiC;MAAA;;MAC7B,mBAQI,KAAKjD,KART;MAAA,IACIE,KADJ,gBACIA,KADJ;MAAA,IAEImD,QAFJ,gBAEIA,QAFJ;MAAA,IAGIC,QAHJ,gBAGIA,QAHJ;MAAA,IAIIC,wBAJJ,gBAIIA,wBAJJ;MAAA,IAKIC,WALJ,gBAKIA,WALJ;MAAA,IAMIC,mBANJ,gBAMIA,mBANJ;MAAA,IAOIC,qBAPJ,gBAOIA,qBAPJ;;MAUA,IAAIH,wBAAJ,EAA8B;QAC1B,4BAAuB,KAAKI,yBAAL,EAAvB;QAAA,IAAQnB,IAAR,yBAAQA,IAAR;QAAA,IAAcS,IAAd,yBAAcA,IAAd;;QAEA,oBACI,yEACI;UAAK,SAAS,EAAElF,KAAK,CAACC,UAAN,CAAiBC;QAAjC,gBACI,uDACI,6BAAC,YAAD;UACI,SAAS,EAAEF,KAAK,CAACC,UAAN,CAAiBO,WADhC;UAEI,WAAW,EAAE,oBAFjB;UAGI,KAAK,EAAE,KAAKmC,KAAL,CAAWlB,uBAHtB;UAII,eAAY,sBAJhB;UAKI,QAAQ,EAAE,kBAAAU,KAAK,EAAI;YACf,MAAI,CAAC0D,0BAAL,CAAgC1D,KAAhC;;YACA,MAAI,CAAC2D,wBAAL,CAA8B3D,KAAK,GAAG,CAAH,GAAO,CAA1C;UACH;QARL,EADJ,CADJ,eAcI;UAAK,SAAS,EAAEnC,KAAK,CAACC,UAAN,CAAiBM;QAAjC,gBACI;UAAK,SAAS,EAAE2E,IAAI,CAACC,OAAL,GAAe,EAAf,GAAoBnF,KAAK,CAACC,UAAN,CAAiBU;QAArD,GACKuE,IAAI,CAACF,IADV,EACe,KADf,EACmBE,IAAI,CAACD,EADxB,EAC2B,MAD3B,EACgCC,IAAI,CAACJ,UADrC,CADJ,eAII,uDACI,6BAAC,kBAAD;UACI,IAAI,eAAE,6BAAC,iCAAD,OADV;UAEI,QAAQ,EAAE,CAACI,IAAI,CAACC,OAAN,IAAiBD,IAAI,CAACX,IAAL,KAAc,CAF7C;UAGI,OAAO,EAAE;YAAA,OAAM,MAAI,CAACuB,wBAAL,CAA8B,CAA9B,CAAN;UAAA;QAHb,EADJ,eAMI,6BAAC,kBAAD;UACI,IAAI,eAAE,6BAAC,mCAAD,OADV;UAEI,QAAQ,EAAE,CAACZ,IAAI,CAACC,OAAN,IAAiB,CAACD,IAAI,CAACE,WAFrC;UAGI,OAAO,EAAE;YAAA,OAAM,MAAI,CAACU,wBAAL,CAA8BZ,IAAI,CAACX,IAAL,GAAY,CAA1C,CAAN;UAAA;QAHb,EANJ,eAWI,6BAAC,kBAAD;UACI,IAAI,eAAE,6BAAC,iCAAD,OADV;UAEI,QAAQ,EAAE,CAACW,IAAI,CAACC,OAAN,IAAiB,CAACD,IAAI,CAACG,OAFrC;UAGI,OAAO,EAAE;YAAA,OAAM,MAAI,CAACS,wBAAL,CAA8BZ,IAAI,CAACX,IAAL,GAAY,CAA1C,CAAN;UAAA;QAHb,EAXJ,eAgBI,6BAAC,kBAAD;UACI,IAAI,eAAE,6BAAC,6BAAD,OADV;UAEI,QAAQ,EAAE,CAACW,IAAI,CAACC,OAAN,IAAiBD,IAAI,CAACX,IAAL,KAAcW,IAAI,CAACP,QAFlD;UAGI,OAAO,EAAE;YAAA,OAAM,MAAI,CAACmB,wBAAL,CAA8BZ,IAAI,CAACP,QAAnC,CAAN;UAAA;QAHb,EAhBJ,CAJJ,CAdJ,CADJ,eA4CI,6BAAC,UAAD;UAAM,SAAS,EAAE3E,KAAK,CAACC,UAAN,CAAiBS;QAAlC,GACKwE,IAAI,CAACC,OAAL,GACGV,IAAI,CAACV,GAAL,CAAS,UAACf,IAAD,EAAOgB,KAAP,EAAiB;UACtB,IAAM+B,GAAG,aAAM,IAAA3C,qBAAA,EAAeJ,IAAI,CAAC0B,MAApB,EAA4B,MAAI,CAACzC,KAAjC,CAAN,cAAiD+B,KAAjD,CAAT;;UACA,IAAI,MAAI,CAACrB,KAAL,CAAWjB,kBAAX,KAAkCqE,GAAtC,EAA2C;YACvC,oBACI,6BAAC,cAAD;cAAU,GAAG,EAAEA;YAAf,gBACI,6BAAC,qBAAD,qBACI,6BAAC,kBAAD;cAAY,QAAQ,MAApB;cAAqB,IAAI,eAAE,6BAAC,kCAAD;YAA3B,EADJ,CADJ,eAII,6BAAC,YAAD;cACI,KAAK,EAAE,MAAI,CAACpD,KAAL,CAAWhB,gBADtB;cAEI,eAAY,qBAFhB;cAGI,SAAS,EAAE,mBAACqE,CAAD,EAAY;gBACnB,IAAMD,GAAG,GAAGC,CAAC,CAACD,GAAd;;gBACA,IAAIA,GAAG,KAAK,QAAR,IAAoBA,GAAG,KAAK,OAAhC,EAAyC;kBACrC;gBACH;;gBAED,IAAIA,GAAG,KAAK,OAAZ,EAAqB;kBACjB;kBACA,IAAME,QAAQ,oCACN9D,KADM,CAAd;kBAGA8D,QAAQ,CAACC,MAAT,CACIF,CAAC,CAACG,MAAF,CAAShE,KAAT,GAAiB,CADrB,EAEI,CAFJ,EAGI8D,QAAQ,CAACC,MAAT,CAAgBlD,IAAI,CAACgB,KAArB,EAA4B,CAA5B,EAA+B,CAA/B,CAHJ;;kBAMA,IAAIsB,QAAJ,EAAc;oBACVA,QAAQ,CAACW,QAAD,CAAR;kBACH;gBACJ;;gBAED,MAAI,CAACjE,QAAL,CAAc;kBACVN,kBAAkB,EAAE,EADV;kBAEVC,gBAAgB,EAAE;gBAFR,CAAd;cAIH,CA7BL;cA8BI,QAAQ,EAAE,kBAAAQ,KAAK;gBAAA,OACX,MAAI,CAACH,QAAL,CAAc;kBAAEL,gBAAgB,EAAEQ;gBAApB,CAAd,CADW;cAAA,CA9BnB;cAiCI,IAAI,EAAE,QAjCV;cAkCI,SAAS,MAlCb;cAmCI,SAAS,EAAEnC,KAAK,CAACC,UAAN,CAAiBO,WAnChC;cAoCI,WAAW,EACP;YArCR,EAJJ,eA4CI,6BAAC,kBAAD,qBACI,6BAAC,kBAAD;cAAY,IAAI,eAAE,6BAAC,iCAAD,OAAlB;cAAkC,QAAQ;YAA1C,EADJ,CA5CJ,CADJ;UAkDH;;UAED,oBACI,6BAAC,cAAD;YAAU,GAAG,EAAEuF;UAAf,gBACI,6BAAC,qBAAD,qBACI,6BAAC,kBAAD;YACI,IAAI,eAAE,6BAAC,kCAAD,OADV;YAEI,OAAO,EAAE,mBAAM;cACX,MAAI,CAAC/D,QAAL,CAAc;gBAAEN,kBAAkB,EAAEqE;cAAtB,CAAd;YACH;UAJL,EADJ,CADJ,eASI;YACI,KAAK,EAAE;cACHnF,KAAK,EAAE,+CADJ;cAEHwF,WAAW,EAAE,CAFV;cAGHC,QAAQ,EAAE;YAHP;UADX,GAOKrD,IAAI,CAACgB,KAAL,GAAa,CAPlB,EAOoB,GAPpB,CATJ,EAiBW,GAjBX,EAkBK0B,mBAAmB,IAChBA,mBAAmB,CAACrB,IAApB,CAAyB,MAAzB,EAA+BrB,IAAI,CAAC0B,MAApC,CAnBR,eAoBI,6BAAC,kBAAD;YAAc,SAAS,EAAE9E;UAAzB,GACK+F,qBAAqB,IAClBA,qBAAqB,CAACtB,IAAtB,CAA2B,MAA3B,EAAiCrB,IAAI,CAAC0B,MAAtC,CAFR,eAGI,6BAAC,kBAAD;YACI,IAAI,eAAE,6BAAC,iCAAD,OADV;YAEI,SAAS,EAAE3E,mBAFf;YAGI,OAAO,EAAE,mBAAM;cACX,IAAI,CAACuF,QAAL,EAAe;gBACX;cACH;;cACDA,QAAQ,4CACAnD,KAAD,CAA2B4C,KAA3B,CACC,CADD,EAEC/B,IAAI,CAACgB,KAFN,CADC,oCAKA7B,KAAD,CAA2B4C,KAA3B,CACC/B,IAAI,CAACgB,KAAL,GAAa,CADd,CALC,GAAR;YASH;UAhBL,EAHJ,CApBJ,CADJ;QA6CH,CApGD,CADH,gBAuGG,6BAAC,cAAD,qBACI;UAAM,SAAS,EAAEhE,KAAK,CAACC,UAAN,CAAiBU;QAAlC,GAAiD,kBAAjD,CADJ,CAxGR,CA5CJ,eA2JI,uDACI,6BAAC,sCAAD,QAAqB8E,WAArB,CADJ,CA3JJ,CADJ;MAiKH;;MAED,IAAMa,QAAQ,GAAG9D,KAAK,CAACC,OAAN,CAAcN,KAAd,KAAwBA,KAAK,CAACyB,MAA/C;;MACA,IAAI,CAAC0C,QAAL,EAAe;QACX,OAAO,IAAP;MACH;;MAED,oBACI,6BAAC,YAAD;QAAO,QAAQ,EAAEf;MAAjB,GACMpD,KAAD,CAA2B4B,GAA3B,CAA+B,UAACf,IAAD,EAAOgB,KAAP;QAAA,oBAC5B,6BAAC,WAAD;UACI,KAAK,EAAE,IAAAf,oBAAA,EAAcD,IAAd,EAAoB,MAAI,CAACf,KAAzB,CADX;UAEI,GAAG,YAAK,IAAAmB,qBAAA,EAAeJ,IAAf,EAAqB,MAAI,CAACf,KAA1B,CAAL,cAAyC+B,KAAzC,CAFP;UAGI,YAAY,eAAE,6BAAC,iCAAD,OAHlB;UAII,QAAQ,EAAE,oBAAM;YACZ,IAAI,CAACsB,QAAL,EAAe;cACX;YACH;;YACDA,QAAQ,4CACAnD,KAAD,CAA2B4C,KAA3B,CAAiC,CAAjC,EAAoCf,KAApC,CADC,oCAEA7B,KAAD,CAA2B4C,KAA3B,CAAiCf,KAAK,GAAG,CAAzC,CAFC,GAAR;UAIH;QAZL,EAD4B;MAAA,CAA/B,CADL,CADJ;IAoBH;;;WAED,kBAAyB;MAAA;;MACrB,IACI/B,KADJ,GAiBI,IAjBJ,CACIA,KADJ;MAAA,mBAiBI,IAjBJ,CAEIA,KAFJ;MAAA,IAMQC,MANR,gBAMQA,MANR;MAAA,IAOQC,KAPR,gBAOQA,KAPR;MAAA,IAQQmD,SARR,gBAQQA,QARR;MAAA,IAWQiB,OAXR,gBAWQA,OAXR;MAAA,yCAYQC,UAZR;MAAA,IAYQA,UAZR,sCAYqB;QAAEC,OAAO,EAAE,IAAX;QAAiBC,OAAO,EAAE;MAA1B,CAZrB;MAAA,IAaQlB,wBAbR,gBAaQA,wBAbR;MAAA,IAcQC,WAdR,gBAcQA,WAdR;MAAA,IAeWkB,eAfX;MAmBA,IAAMrE,OAAO,GAAG,KAAKsE,UAAL,EAAhB;MAEA,oBACI;QAAK,SAAS,EAAE,IAAAvF,mBAAA,EAAWwF,yBAAX,EAA8B5E,KAAK,CAACmC,SAApC;MAAhB,gBACI,6BAAC,kBAAD;QACI,mBAAmB,EAAE,IADzB,CAEI;QAFJ;QAGI,SAAS,EAAEyC,yBAHf;QAII,YAAY,EAAE,sBAAA7D,IAAI;UAAA,OAAIA,IAAI,IAAI,IAAAC,oBAAA,EAAcD,IAAd,EAAoBf,KAApB,CAAZ;QAAA,CAJtB;QAKI,GAAG,EAAE,KAAK6E,SALd;QAMI,QAAQ,EAAE,kBAAA/E,SAAS,EAAI;UACnB,IAAI,CAAC,MAAI,CAACgF,0BAAL,CAAgCjF,GAArC,EAA0C;YACtC,MAAI,CAACiF,0BAAL,GAAkC;cAC9BjF,GAAG,EAAE,IADyB;cAE9BC,SAAS,EAATA;YAF8B,CAAlC;;YAIA,MAAI,CAAC+E,SAAL,CAAeE,OAAf,CAAuBC,cAAvB;;YACA,MAAI,CAACnB,wBAAL,CAA8B,CAA9B;;YACA;UACH;;UAED,IAAI,MAAI,CAACiB,0BAAL,CAAgCjF,GAApC,EAAyC;YACrC,MAAI,CAACE,QAAL,CAAc;cAAET,UAAU,EAAE;YAAd,CAAd;;YACA,MAAI,CAACwF,0BAAL,CAAgCjF,GAAhC,GAAsC,KAAtC;;YACA,IAAIU,KAAK,CAACC,OAAN,CAAcN,KAAd,CAAJ,EAA0B;cACtBmD,SAAQ,IACJA,SAAQ,4CAAKnD,KAAL,IAAY,MAAI,CAAC4E,0BAAL,CAAgChF,SAA5C,GADZ;YAEH,CAHD,MAGO;cACHuD,SAAQ,IAAIA,SAAQ,CAAC,CAAC,MAAI,CAACyB,0BAAL,CAAgChF,SAAjC,CAAD,CAApB;YACH;UACJ;QACJ;MA3BL,GA8BK;QAAA,IAAGmF,aAAH,SAAGA,aAAH;QAAA,IAAkBC,QAAlB,SAAkBA,QAAlB;QAAA,IAA+BC,IAA/B;QAAA,oBACG,uDACI,6BAAC,YAAD,EACQF,aAAa,6DACVP,eADU;UAEb;UACAH,UAAU,EAAVA,UAHa;UAKb;UACAf,WAAW,EAAED,wBAAwB,GAAG,IAAH,GAAUC,WANlC;UAOb4B,WAAW,EAAE,IAPA;UAQbC,YAAY,EAAE,MAAI,CAACrF,KAAL,CAAWsF,OAAX,iBAAsB,6BAAC,OAAD,OARvB;UASbjC,QAAQ,EAAE,kBAAAU,CAAC;YAAA,OAAIA,CAAJ;UAAA,CATE;UAUbwB,MAAM,EAAE,gBAAAxB,CAAC;YAAA,OAAIA,CAAJ;UAAA,CAVI;UAWbyB,OAAO,EAAE,iBAACzB,CAAD,EAAY;YACjB,IAAMzE,UAAU,GAAGyE,CAAC,CAACG,MAAF,CAAShE,KAAT,IAAkB,EAArC,CADiB,CAGjB;;YACA,IAAIZ,UAAU,KAAK,MAAI,CAACoB,KAAL,CAAWpB,UAA9B,EAA0C;cACtC,MAAI,CAACS,QAAL,CAAc;gBAAET,UAAU,EAAVA;cAAF,CAAd,EAA8B,YAAM;gBAChCgF,OAAO,IAAIA,OAAO,CAAChF,UAAD,CAAlB;cACH,CAFD;YAGH;UACJ,CApBY;UAqBbmG,OAAO,EAAE,iBAAA1B,CAAC,EAAI;YACVmB,QAAQ;YACRR,eAAe,CAACe,OAAhB,IAA2Bf,eAAe,CAACe,OAAhB,CAAwB1B,CAAxB,CAA3B;UACH;QAxBY,GADrB,CADJ,EA6BK,MAAI,CAAC2B,aAAL,6DAAwBP,IAAxB;UAA8BlF,MAAM,EAANA,MAA9B;UAAsCI,OAAO,EAAPA;QAAtC,GA7BL,EA8BK,MAAI,CAACsF,uBAAL,EA9BL,CADH;MAAA,CA9BL,CADJ,CADJ;IAqEH;;;EArhBkChG,cAAA,CAAMiG,S;;;8BAAhCvG,iB,kBAI8C;EACnDwG,SAAS,EAAE,IADwC;EAEnD5E,QAAQ,EAAE,MAFyC;EAGnDhB,MAAM,EAAE,IAH2C;EAInDI,OAAO,EAAE,EAJ0C;EAKnDD,eAAe,EAAE,KALkC;EAMnDmD,wBAAwB,EAAE,KANyB;;EAOnD;AACR;AACA;EACQ1B,UAVmD,sBAUxCd,IAVwC,EAU7B;IAClB,oBACI,6BAAC,sBAAD;MAAY,GAAG,EAAE;IAAjB,GACK,IAAAC,oBAAA,EAAcD,IAAd,EAAqB,IAAD,CAAuCf,KAA3D,CADL,CADJ;EAKH,CAhBkD;;EAiBnD;AACR;AACA;EACQyD,mBApBmD,+BAoB/B1C,IApB+B,EAoBpB;IAC3B,OAAO,IAAAC,oBAAA,EAAcD,IAAd,EAAqB,IAAD,CAAuCf,KAA3D,CAAP;EACH;AAtBkD,C"}
|
|
1
|
+
{"version":3,"names":["listItemMetaClassName","css","display","iconButtonClassName","style","pagination","bar","justifyContent","alignItems","borderBottom","padding","pages","searchInput","height","list","secondaryText","color","listStyles","listStyle","paddingLeft","margin","Spinner","OptionsList","getMenuProps","children","classNames","MultiAutoComplete","inputValue","multipleSelectionPage","multipleSelectionSearch","reorderFormVisible","reorderFormValue","React","createRef","set","selection","setState","props","unique","value","allowFreeInput","useSimpleValues","options","values","Array","isArray","filtered","state","existingValue","includes","unshift","find","item","getOptionText","textProp","filter","getOptionValue","aliases","findInAliases","toLowerCase","params","isOpen","highlightedIndex","getItemProps","length","noResultFound","renderItem","map","index","itemValue","itemClassNames","suggestionList","className","call","limit","page","search","data","option","lastPage","Math","ceil","totalCount","slice","from","to","meta","hasData","hasPrevious","hasNext","onChange","disabled","useMultipleSelectionList","description","renderListItemLabel","renderListItemOptions","paginateMultipleSelection","setMultipleSelectionSearch","setMultipleSelectionPage","key","e","newValue","splice","target","marginRight","minWidth","hasItems","onInput","validation","isValid","message","otherInputProps","getOptions","autoCompleteStyle","downshift","assignedValueAfterClearing","current","clearSelection","getInputProps","openMenu","rest","rawOnChange","trailingIcon","loading","onBlur","onKeyUp","onFocus","renderOptions","renderMultipleSelection","Component","valueProp"],"sources":["MultiAutoComplete.tsx"],"sourcesContent":["import React from \"react\";\nimport Downshift, { ControllerStateAndHelpers, PropGetters } from \"downshift\";\nimport MaterialSpinner from \"react-spinner-material\";\nimport { Input } from \"~/Input\";\nimport { Chips, Chip } from \"../Chips\";\nimport { getOptionValue, getOptionText, findInAliases } from \"./utils\";\nimport { List, ListItem, ListItemMeta } from \"~/List\";\nimport { IconButton } from \"~/Button\";\nimport classNames from \"classnames\";\nimport { Elevation } from \"~/Elevation\";\nimport { Typography } from \"~/Typography\";\nimport { autoCompleteStyle, suggestionList } from \"./styles\";\nimport { AutoCompleteBaseProps } from \"./types\";\nimport { FormElementMessage } from \"~/FormElementMessage\";\nimport { ReactComponent as BaselineCloseIcon } from \"./icons/baseline-close-24px.svg\";\nimport { ReactComponent as PrevIcon } from \"./icons/navigate_before-24px.svg\";\nimport { ReactComponent as NextIcon } from \"./icons/navigate_next-24px.svg\";\nimport { ReactComponent as PrevAllIcon } from \"./icons/skip_previous-24px.svg\";\nimport { ReactComponent as NextAllIcon } from \"./icons/skip_next-24px.svg\";\nimport { ReactComponent as DeleteIcon } from \"./icons/baseline-close-24px.svg\";\nimport { ReactComponent as ReorderIcon } from \"./icons/reorder_black_24dp.svg\";\nimport { css } from \"emotion\";\nimport { ListItemGraphic } from \"~/List\";\nimport { AutoCompleteProps } from \"~/AutoComplete/AutoComplete\";\n\nconst listItemMetaClassName = css({\n display: \"table\"\n});\n\nconst iconButtonClassName = css({\n display: \"table-cell !important\"\n});\n\nconst style = {\n pagination: {\n bar: css({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n borderBottom: \"2px solid #fa5723\",\n padding: \"6px 0\"\n }),\n pages: css({\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n }),\n searchInput: css({\n height: \"42px !important\"\n }),\n list: css({\n padding: \"0 0 5px 0 !important\",\n \".mdc-list-item\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\"\n }\n }),\n secondaryText: css({\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n })\n }\n};\n\nconst listStyles = css({\n \"&.multi-autocomplete__options-list\": {\n listStyle: \"none\",\n paddingLeft: 0,\n \"& li\": {\n margin: 0\n }\n }\n});\n\ninterface SelectionItem {\n name: string;\n}\n\ntype MultiAutoCompletePropsValue = SelectionItem[] | string[];\n\nexport interface MultiAutoCompleteProps extends Omit<AutoCompleteBaseProps, \"value\"> {\n /**\n * Prevents adding the same item to the list twice.\n */\n unique: boolean;\n\n /**\n * Set if custom values (not from list of suggestions) are allowed.\n */\n allowFreeInput?: boolean;\n\n /**\n * If true, will show a loading spinner on the right side of the input.\n */\n loading?: boolean;\n\n /**\n * Use data list instead of default Chips component. Useful when expecting a lot of data.\n */\n useMultipleSelectionList?: boolean;\n\n /**\n * Render list item when `useMultipleSelectionList` is used.\n */\n renderListItemLabel?: Function;\n /**\n * Render in meta wrapper\n */\n renderListItemOptions?: (item: any) => React.ReactNode | null;\n\n /* A component that renders supporting UI in case of no result found. */\n noResultFound?: React.ReactNode;\n /**\n * Value is an array of strings. But can be undefined.\n */\n value?: MultiAutoCompletePropsValue;\n}\n\ninterface MultiAutoCompleteState {\n inputValue: string;\n multipleSelectionPage: number;\n multipleSelectionSearch: string;\n reorderFormVisible: string;\n reorderFormValue: string;\n}\n\nconst Spinner: React.FC = () => {\n return <MaterialSpinner size={24} spinnerColor={\"#fa5723\"} spinnerWidth={2} visible />;\n};\n\ninterface RenderOptionsParams\n extends Omit<ControllerStateAndHelpers<any>, \"getInputProps\" | \"openMenu\"> {\n options: AutoCompleteProps[\"options\"];\n unique: boolean;\n}\n\ninterface OptionsListProps {\n getMenuProps: PropGetters<Record<string, any>>[\"getMenuProps\"];\n}\n\ninterface AssignedValueAfterClearing {\n set: boolean;\n selection: string | null;\n}\n\nconst OptionsList: React.FC<OptionsListProps> = ({ getMenuProps, children }) => {\n return (\n <Elevation z={1}>\n <ul\n className={classNames(\"multi-autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {children}\n </ul>\n </Elevation>\n );\n};\n\nexport class MultiAutoComplete extends React.Component<\n MultiAutoCompleteProps,\n MultiAutoCompleteState\n> {\n static defaultProps: Partial<MultiAutoCompleteProps> = {\n valueProp: \"id\",\n textProp: \"name\",\n unique: true,\n options: [],\n useSimpleValues: false,\n useMultipleSelectionList: false,\n /**\n * We cast this as MultiAutoComplete because renderItem() is executed via .call() where this is MultiAutoComplete instance.\n */\n renderItem(item: any) {\n return (\n <Typography use={\"body2\"}>\n {getOptionText(item, (this as unknown as MultiAutoComplete).props)}\n </Typography>\n );\n },\n /**\n * We cast this as MultiAutoComplete because renderListItemLabel() is executed via .call() where this is MultiAutoComplete instance.\n */\n renderListItemLabel(item: any) {\n return getOptionText(item, (this as unknown as MultiAutoComplete).props);\n }\n };\n\n public override state: MultiAutoCompleteState = {\n inputValue: \"\",\n multipleSelectionPage: 0,\n multipleSelectionSearch: \"\",\n reorderFormVisible: \"\",\n reorderFormValue: \"\"\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n private downshift = React.createRef<any>();\n\n private assignedValueAfterClearing: AssignedValueAfterClearing = {\n set: false,\n selection: null\n };\n\n setMultipleSelectionPage = (multipleSelectionPage: number): void => {\n this.setState({ multipleSelectionPage });\n };\n\n setMultipleSelectionSearch = (multipleSelectionSearch: string): void => {\n this.setState({ multipleSelectionSearch });\n };\n\n getOptions() {\n const { unique, value, allowFreeInput, useSimpleValues, options } = this.props;\n\n const values = Array.isArray(value) ? [...value] : [];\n\n const filtered = [...options];\n\n // If free input is allowed, prepend typed value to the list.\n if (allowFreeInput && this.state.inputValue) {\n if (useSimpleValues) {\n const existingValue = filtered.includes(this.state.inputValue);\n if (!existingValue) {\n filtered.unshift(this.state.inputValue);\n }\n } else {\n const existingValue = filtered.find(\n item => this.state.inputValue === getOptionText(item, this.props)\n );\n if (!existingValue) {\n filtered.unshift({ [this.props.textProp]: this.state.inputValue });\n }\n }\n }\n\n return filtered.filter(item => {\n // We need to filter received options.\n // 1) If \"unique\" prop was passed, we don't want to show already picked options again.\n if (unique) {\n if (Array.isArray(values)) {\n if (\n values.find(\n value =>\n getOptionValue(value, this.props) ===\n getOptionValue(item, this.props)\n )\n ) {\n return false;\n }\n }\n }\n\n // 2) At the end, we want to show only options that are matched by typed text.\n if (!this.state.inputValue) {\n return true;\n }\n\n if (item.aliases) {\n return findInAliases(item, this.state.inputValue);\n }\n\n return getOptionText(item, this.props)\n .toLowerCase()\n .includes(this.state.inputValue.toLowerCase());\n });\n }\n\n /**\n * Renders options - based on user's input. It will try to match input text with available options.\n */\n private renderOptions(params: RenderOptionsParams) {\n const { options, isOpen, highlightedIndex, getMenuProps, getItemProps } = params;\n if (!isOpen) {\n return null;\n }\n\n /**\n * Suggest user to start typing when there are no options available to choose from.\n */\n if (!this.state.inputValue && !options.length) {\n return (\n <OptionsList getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>Start typing to find entry</Typography>\n </li>\n </OptionsList>\n );\n }\n\n if (!options.length) {\n return (\n <Elevation z={1}>\n <ul\n className={classNames(\"multi-autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n <li>\n <Typography use={\"body2\"}>No results.</Typography>\n {this.props.noResultFound}\n </li>\n </ul>\n </Elevation>\n );\n }\n\n const { renderItem } = this.props;\n return (\n <Elevation z={1}>\n <ul\n className={classNames(\"multi-autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {options.map((item, index) => {\n const itemValue = getOptionValue(item, this.props);\n\n // Base classes.\n const itemClassNames = {\n [suggestionList]: true,\n highlighted: highlightedIndex === index,\n selected: false\n };\n\n // Render the item.\n return (\n <li\n key={itemValue + index}\n {...getItemProps({\n index,\n item,\n className: classNames(itemClassNames)\n })}\n >\n {renderItem.call(this, item, index)}\n </li>\n );\n })}\n </ul>\n </Elevation>\n );\n }\n\n paginateMultipleSelection() {\n const { value } = this.props;\n const limit = 10;\n let page = this.state.multipleSelectionPage;\n const search = this.state.multipleSelectionSearch;\n\n // Assign a real index, so that later when we press delete, we know what is the actual index we're deleting.\n let data = Array.isArray(value)\n ? value.map((option, index) => {\n return { option, index };\n })\n : [];\n\n if (search) {\n data = data.filter(item => {\n return getOptionText(item.option, this.props)\n .toLowerCase()\n .includes(search.toLowerCase());\n });\n }\n\n const lastPage = Math.ceil(data.length / limit);\n const totalCount = data.length;\n\n page = page || lastPage;\n data = data.slice((page - 1) * limit, page * limit);\n\n let from = 0;\n let to = 0;\n if (data.length) {\n from = (page - 1) * limit + 1;\n to = from + (data.length - 1);\n }\n\n const meta = {\n hasData: data.length > 0,\n totalCount,\n from,\n to,\n page: page,\n lastPage,\n limit,\n hasPrevious: page > 1,\n hasNext: page < lastPage\n };\n\n return { data, meta };\n }\n\n /**\n * Once added, items can also be removed by clicking on the ✕ icon. This is the method that is responsible for\n * rendering selected items (we are using already existing \"Chips\" component).\n */\n public renderMultipleSelection() {\n const {\n value,\n onChange,\n disabled,\n useMultipleSelectionList,\n description,\n renderListItemLabel,\n renderListItemOptions\n } = this.props;\n\n if (useMultipleSelectionList) {\n const { data, meta } = this.paginateMultipleSelection();\n\n return (\n <>\n <div className={style.pagination.bar}>\n <div>\n <Input\n className={style.pagination.searchInput}\n placeholder={\"Search selected...\"}\n value={this.state.multipleSelectionSearch}\n data-testid=\"pb.pagination.search\"\n onChange={value => {\n this.setMultipleSelectionSearch(value);\n this.setMultipleSelectionPage(value ? 1 : 0);\n }}\n />\n </div>\n\n <div className={style.pagination.pages}>\n <div className={meta.hasData ? \"\" : style.pagination.secondaryText}>\n {meta.from} - {meta.to} of {meta.totalCount}\n </div>\n <div>\n <IconButton\n icon={<PrevAllIcon />}\n disabled={!meta.hasData || meta.page === 1}\n onClick={() => this.setMultipleSelectionPage(1)}\n />\n <IconButton\n icon={<PrevIcon />}\n disabled={!meta.hasData || !meta.hasPrevious}\n onClick={() => this.setMultipleSelectionPage(meta.page - 1)}\n />\n <IconButton\n icon={<NextIcon />}\n disabled={!meta.hasData || !meta.hasNext}\n onClick={() => this.setMultipleSelectionPage(meta.page + 1)}\n />\n <IconButton\n icon={<NextAllIcon />}\n disabled={!meta.hasData || meta.page === meta.lastPage}\n onClick={() => this.setMultipleSelectionPage(meta.lastPage)}\n />\n </div>\n </div>\n </div>\n\n <List className={style.pagination.list}>\n {meta.hasData ? (\n data.map((item, index) => {\n const key = `${getOptionValue(item.option, this.props)}-${index}`;\n if (this.state.reorderFormVisible === key) {\n return (\n <ListItem key={key}>\n <ListItemGraphic>\n <IconButton disabled icon={<ReorderIcon />} />\n </ListItemGraphic>\n <Input\n value={this.state.reorderFormValue}\n data-testid=\"pb.pagination.input\"\n onKeyDown={(e: any) => {\n const key = e.key;\n if (key !== \"Escape\" && key !== \"Enter\") {\n return;\n }\n\n if (key === \"Enter\") {\n // Reorder the item.\n const newValue = [\n ...(value as SelectionItem[])\n ];\n newValue.splice(\n e.target.value - 1,\n 0,\n newValue.splice(item.index, 1)[0]\n );\n\n if (onChange) {\n onChange(newValue);\n }\n }\n\n this.setState({\n reorderFormVisible: \"\",\n reorderFormValue: \"\"\n });\n }}\n onChange={value =>\n this.setState({ reorderFormValue: value })\n }\n type={\"number\"}\n autoFocus\n className={style.pagination.searchInput}\n placeholder={\n \"Type a new order number and press Enter, or press Esc to cancel.\"\n }\n />\n <ListItemMeta>\n <IconButton icon={<DeleteIcon />} disabled />\n </ListItemMeta>\n </ListItem>\n );\n }\n\n return (\n <ListItem key={key}>\n <ListItemGraphic>\n <IconButton\n icon={<ReorderIcon />}\n onClick={() => {\n this.setState({ reorderFormVisible: key });\n }}\n />\n </ListItemGraphic>\n <div\n style={{\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n marginRight: 8,\n minWidth: 32\n }}\n >\n {item.index + 1}.\n </div>{\" \"}\n {renderListItemLabel &&\n renderListItemLabel.call(this, item.option)}\n <ListItemMeta className={listItemMetaClassName}>\n {renderListItemOptions &&\n renderListItemOptions.call(this, item.option)}\n <IconButton\n icon={<DeleteIcon />}\n className={iconButtonClassName}\n onClick={() => {\n if (!onChange) {\n return;\n }\n onChange([\n ...(value as SelectionItem[]).slice(\n 0,\n item.index\n ),\n ...(value as SelectionItem[]).slice(\n item.index + 1\n )\n ]);\n }}\n />\n </ListItemMeta>\n </ListItem>\n );\n })\n ) : (\n <ListItem>\n <span className={style.pagination.secondaryText}>\n Nothing to show.\n </span>\n </ListItem>\n )}\n </List>\n <div>\n <FormElementMessage>{description}</FormElementMessage>\n </div>\n </>\n );\n }\n\n const hasItems = Array.isArray(value) && value.length;\n if (!hasItems) {\n return null;\n }\n\n return (\n <Chips disabled={disabled}>\n {(value as SelectionItem[]).map((item, index) => (\n <Chip\n label={getOptionText(item, this.props)}\n key={`${getOptionValue(item, this.props)}-${index}`}\n trailingIcon={<BaselineCloseIcon />}\n onRemove={() => {\n if (!onChange) {\n return;\n }\n onChange([\n ...(value as SelectionItem[]).slice(0, index),\n ...(value as SelectionItem[]).slice(index + 1)\n ]);\n }}\n />\n ))}\n </Chips>\n );\n }\n\n public override render() {\n const {\n props,\n props: {\n // options: rawOptions,\n // allowFreeInput,\n // useSimpleValues,\n unique,\n value,\n onChange,\n // valueProp,\n // textProp,\n onInput,\n validation = { isValid: null, message: null },\n useMultipleSelectionList,\n description,\n ...otherInputProps\n }\n } = this;\n\n const options = this.getOptions();\n\n return (\n <div className={classNames(autoCompleteStyle, props.className)}>\n <Downshift\n defaultSelectedItem={null}\n // @ts-ignore there is no className on Downshift\n className={autoCompleteStyle}\n itemToString={item => item && getOptionText(item, props)}\n ref={this.downshift}\n onChange={selection => {\n if (!this.assignedValueAfterClearing.set) {\n this.assignedValueAfterClearing = {\n set: true,\n selection\n };\n this.downshift.current.clearSelection();\n this.setMultipleSelectionPage(0);\n return;\n }\n\n if (this.assignedValueAfterClearing.set) {\n this.setState({ inputValue: \"\" });\n this.assignedValueAfterClearing.set = false;\n if (Array.isArray(value)) {\n onChange &&\n onChange([...value, this.assignedValueAfterClearing.selection]);\n } else {\n onChange && onChange([this.assignedValueAfterClearing.selection]);\n }\n }\n }}\n >\n {/* \"getInputProps\" and \"openMenu\" are not needed in renderOptions method. */}\n {({ getInputProps, openMenu, ...rest }) => (\n <div>\n <Input\n {...getInputProps({\n ...otherInputProps,\n // @ts-ignore\n validation,\n\n // Only pass description if not using \"useMultipleSelectionList\".\n description: useMultipleSelectionList ? null : description,\n rawOnChange: true,\n trailingIcon: this.props.loading && <Spinner />,\n onChange: e => e,\n onBlur: e => e,\n onKeyUp: (e: any) => {\n const inputValue = e.target.value || \"\";\n\n // Set current input value into state and trigger onInput if different.\n if (inputValue !== this.state.inputValue) {\n this.setState({ inputValue }, () => {\n onInput && onInput(inputValue);\n });\n }\n },\n onFocus: e => {\n openMenu();\n otherInputProps.onFocus && otherInputProps.onFocus(e);\n }\n })}\n />\n {this.renderOptions({ ...rest, unique, options })}\n {this.renderMultipleSelection()}\n </div>\n )}\n </Downshift>\n </div>\n );\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,21 +1,13 @@
|
|
|
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 _addonKnobs = require("@storybook/addon-knobs");
|
|
12
|
-
|
|
13
8
|
var _MultiAutoCompleteReadme = _interopRequireDefault(require("./MultiAutoCompleteReadme.md"));
|
|
14
|
-
|
|
15
9
|
var _form = require("@webiny/form");
|
|
16
|
-
|
|
17
10
|
var _MultiAutoComplete = require("./MultiAutoComplete");
|
|
18
|
-
|
|
19
11
|
var story = (0, _react2.storiesOf)("Components/AutoComplete", module);
|
|
20
12
|
story.addDecorator(_addonKnobs.withKnobs);
|
|
21
13
|
var options = [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["story","storiesOf","module","addDecorator","withKnobs","options","name","id","add","disabled","boolean","readme","country","Bind","JSON","stringify","map","item","info","propTables","MultiAutoComplete"],"sources":["MultiAutoComplete.stories.tsx"],"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 \"./MultiAutoCompleteReadme.md\";\n\nimport { Form } from \"@webiny/form\";\nimport { MultiAutoComplete } from \"./MultiAutoComplete\";\n\nconst story = storiesOf(\"Components/AutoComplete\", module);\nstory.addDecorator(withKnobs);\n\nconst options = [\n { name: \"France\", id: \"france\" },\n { name: \"Germany\", id: \"germany\" },\n { name: \"Italy\", id: \"italy\" },\n { name: \"Spain\", id: \"spain\" },\n { name: \"UK\", id: \"uk\" },\n { name: \"US\", id: \"us\" },\n { name: \"Norway\", id: \"norway\" },\n { name: \"Finland\", id: \"finland\" },\n { name: \"Czech Republic\", id: \"czech-republic\" }\n];\n\nstory.add(\n \"MultiAutoComplete\",\n () => {\n const disabled = boolean(\"Disabled\", false);\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox>\n <StorySandboxExample title={\"Values as objects\"}>\n <Form\n data={{\n country: [\n { id: \"uk\", name: \"UK\" },\n { id: \"italy\", name: \"Italy\" }\n ]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n options={options}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n options={${JSON.stringify(options)}}\n label=\"Country\"\n disabled={${disabled}}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n\n <StorySandbox>\n <StorySandboxExample title={\"Values as strings\"}>\n <Form data={{ country: [\"Italy\", \"France\"] }}>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={options.map(item => item.name)}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={${JSON.stringify(options)}}\n label=\"Country\"\n disabled={${disabled}}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n\n <StorySandbox>\n <StorySandboxExample title={\"Allow free input\"}>\n <Form\n data={{\n country: [\n { id: \"anotherCountry\", name: \"Another Country\" },\n { id: \"nowhere\", name: \"Nowhere\" },\n { id: \"france\", name: \"France\" }\n ]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n allowFreeInput\n options={options}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form data={{ country: { id: \"anotherCountry\", name: \"Another Country\" } }}>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={${JSON.stringify(options)}}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n\n <StorySandbox>\n <StorySandboxExample title={\"Allow free input (values as strings)\"}>\n <Form\n data={{\n country: [\"Another Country\", \"Nowhere\", \"France\"]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n allowFreeInput\n options={options.map(item => item.name)}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form\n data={{\n country: [\"Another Country\", \"Nowhere\", \"France\"]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n allowFreeInput\n options={options.map(item => item.name)}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [MultiAutoComplete] } }\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","addDecorator","withKnobs","options","name","id","add","disabled","boolean","readme","country","Bind","JSON","stringify","map","item","info","propTables","MultiAutoComplete"],"sources":["MultiAutoComplete.stories.tsx"],"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 \"./MultiAutoCompleteReadme.md\";\n\nimport { Form } from \"@webiny/form\";\nimport { MultiAutoComplete } from \"./MultiAutoComplete\";\n\nconst story = storiesOf(\"Components/AutoComplete\", module);\nstory.addDecorator(withKnobs);\n\nconst options = [\n { name: \"France\", id: \"france\" },\n { name: \"Germany\", id: \"germany\" },\n { name: \"Italy\", id: \"italy\" },\n { name: \"Spain\", id: \"spain\" },\n { name: \"UK\", id: \"uk\" },\n { name: \"US\", id: \"us\" },\n { name: \"Norway\", id: \"norway\" },\n { name: \"Finland\", id: \"finland\" },\n { name: \"Czech Republic\", id: \"czech-republic\" }\n];\n\nstory.add(\n \"MultiAutoComplete\",\n () => {\n const disabled = boolean(\"Disabled\", false);\n\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox>\n <StorySandboxExample title={\"Values as objects\"}>\n <Form\n data={{\n country: [\n { id: \"uk\", name: \"UK\" },\n { id: \"italy\", name: \"Italy\" }\n ]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n options={options}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n options={${JSON.stringify(options)}}\n label=\"Country\"\n disabled={${disabled}}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n\n <StorySandbox>\n <StorySandboxExample title={\"Values as strings\"}>\n <Form data={{ country: [\"Italy\", \"France\"] }}>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={options.map(item => item.name)}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={${JSON.stringify(options)}}\n label=\"Country\"\n disabled={${disabled}}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n\n <StorySandbox>\n <StorySandboxExample title={\"Allow free input\"}>\n <Form\n data={{\n country: [\n { id: \"anotherCountry\", name: \"Another Country\" },\n { id: \"nowhere\", name: \"Nowhere\" },\n { id: \"france\", name: \"France\" }\n ]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n allowFreeInput\n options={options}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form data={{ country: { id: \"anotherCountry\", name: \"Another Country\" } }}>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={${JSON.stringify(options)}}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n\n <StorySandbox>\n <StorySandboxExample title={\"Allow free input (values as strings)\"}>\n <Form\n data={{\n country: [\"Another Country\", \"Nowhere\", \"France\"]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n allowFreeInput\n options={options.map(item => item.name)}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n </StorySandboxExample>\n <StorySandboxCode>\n {`\n <Form\n data={{\n country: [\"Another Country\", \"Nowhere\", \"France\"]\n }}\n >\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n allowFreeInput\n options={options.map(item => item.name)}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n `}\n </StorySandboxCode>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [MultiAutoComplete] } }\n);\n"],"mappings":"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"}
|
package/AutoComplete/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _AutoComplete = require("./AutoComplete");
|
|
8
|
-
|
|
9
7
|
Object.keys(_AutoComplete).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _AutoComplete[key]) return;
|
|
@@ -16,9 +14,7 @@ Object.keys(_AutoComplete).forEach(function (key) {
|
|
|
16
14
|
}
|
|
17
15
|
});
|
|
18
16
|
});
|
|
19
|
-
|
|
20
17
|
var _MultiAutoComplete = require("./MultiAutoComplete");
|
|
21
|
-
|
|
22
18
|
Object.keys(_MultiAutoComplete).forEach(function (key) {
|
|
23
19
|
if (key === "default" || key === "__esModule") return;
|
|
24
20
|
if (key in exports && exports[key] === _MultiAutoComplete[key]) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AutoComplete\";\nexport * from \"./MultiAutoComplete\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AutoComplete\";\nexport * from \"./MultiAutoComplete\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA;AACA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|
package/AutoComplete/styles.js
CHANGED
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.suggestionList = exports.autoCompleteStyle = void 0;
|
|
7
|
-
|
|
8
7
|
var _emotion = require("emotion");
|
|
9
|
-
|
|
10
8
|
var autoCompleteStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
11
9
|
position: "relative",
|
|
12
10
|
".mdc-elevation--z1": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["autoCompleteStyle","css","position","width","left","top","zIndex","maxHeight","overflowY","backgroundColor","ul","listStyle","padding","li","span","color","suggestionList","fontWeight","transition"],"sources":["styles.ts"],"sourcesContent":["import { css } from \"emotion\";\n\nexport const autoCompleteStyle = css({\n position: \"relative\",\n \".mdc-elevation--z1\": {\n position: \"absolute\",\n width: \"calc(100% - 2px)\",\n left: 1,\n top: 56,\n zIndex: 10,\n maxHeight: 200,\n overflowY: \"scroll\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n },\n ul: {\n listStyle: \"none\",\n width: \"100%\",\n padding: 0,\n li: {\n padding: 10,\n span: {\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport const suggestionList = css({\n fontWeight: \"normal\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n transition: \"background-color 0.2s\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&.selected\": {\n fontWeight: \"bold\"\n },\n \"&.highlighted\": {\n backgroundColor: \"var(--mdc-theme-on-background)\"\n }\n});\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["autoCompleteStyle","css","position","width","left","top","zIndex","maxHeight","overflowY","backgroundColor","ul","listStyle","padding","li","span","color","suggestionList","fontWeight","transition"],"sources":["styles.ts"],"sourcesContent":["import { css } from \"emotion\";\n\nexport const autoCompleteStyle = css({\n position: \"relative\",\n \".mdc-elevation--z1\": {\n position: \"absolute\",\n width: \"calc(100% - 2px)\",\n left: 1,\n top: 56,\n zIndex: 10,\n maxHeight: 200,\n overflowY: \"scroll\",\n backgroundColor: \"var(--mdc-theme-surface)\"\n },\n ul: {\n listStyle: \"none\",\n width: \"100%\",\n padding: 0,\n li: {\n padding: 10,\n span: {\n color: \"var(--mdc-theme-on-surface)\"\n }\n }\n }\n});\n\nexport const suggestionList = css({\n fontWeight: \"normal\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n transition: \"background-color 0.2s\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&.selected\": {\n fontWeight: \"bold\"\n },\n \"&.highlighted\": {\n backgroundColor: \"var(--mdc-theme-on-background)\"\n }\n});\n"],"mappings":";;;;;;AAAA;AAEO,IAAMA,iBAAiB,gBAAG,IAAAC,YAAG,EAAC;EACjCC,QAAQ,EAAE,UAAU;EACpB,oBAAoB,EAAE;IAClBA,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,kBAAkB;IACzBC,IAAI,EAAE,CAAC;IACPC,GAAG,EAAE,EAAE;IACPC,MAAM,EAAE,EAAE;IACVC,SAAS,EAAE,GAAG;IACdC,SAAS,EAAE,QAAQ;IACnBC,eAAe,EAAE;EACrB,CAAC;EACDC,EAAE,EAAE;IACAC,SAAS,EAAE,MAAM;IACjBR,KAAK,EAAE,MAAM;IACbS,OAAO,EAAE,CAAC;IACVC,EAAE,EAAE;MACAD,OAAO,EAAE,EAAE;MACXE,IAAI,EAAE;QACFC,KAAK,EAAE;MACX;IACJ;EACJ;AACJ,CAAC,6BAAC;AAAC;AAEI,IAAMC,cAAc,gBAAG,IAAAf,YAAG,EAAC;EAC9BgB,UAAU,EAAE,QAAQ;EACpBR,eAAe,EAAE,0BAA0B;EAC3CS,UAAU,EAAE,uBAAuB;EACnCH,KAAK,EAAE,6CAA6C;EACpD,YAAY,EAAE;IACVE,UAAU,EAAE;EAChB,CAAC;EACD,eAAe,EAAE;IACbR,eAAe,EAAE;EACrB;AACJ,CAAC,0BAAC;AAAC"}
|
package/AutoComplete/utils.js
CHANGED
|
@@ -4,31 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getOptionValue = exports.getOptionText = exports.findInAliases = void 0;
|
|
7
|
-
|
|
8
7
|
var getOptionValue = function getOptionValue(option, props) {
|
|
9
8
|
if (option) {
|
|
10
9
|
return props.useSimpleValues ? option : option[props.valueProp];
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
return option;
|
|
14
12
|
};
|
|
15
|
-
|
|
16
13
|
exports.getOptionValue = getOptionValue;
|
|
17
|
-
|
|
18
14
|
var getOptionText = function getOptionText(option, props) {
|
|
19
15
|
if (option) {
|
|
20
16
|
return props.useSimpleValues ? option : option[props.textProp];
|
|
21
17
|
}
|
|
22
|
-
|
|
23
18
|
return option;
|
|
24
19
|
};
|
|
25
|
-
|
|
26
20
|
exports.getOptionText = getOptionText;
|
|
27
|
-
|
|
28
21
|
var findInAliases = function findInAliases(option, search) {
|
|
29
22
|
return (option.aliases || []).some(function (alias) {
|
|
30
23
|
return alias.toLowerCase().includes((search || "").toLowerCase());
|
|
31
24
|
});
|
|
32
25
|
};
|
|
33
|
-
|
|
34
26
|
exports.findInAliases = findInAliases;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getOptionValue","option","props","useSimpleValues","valueProp","getOptionText","textProp","findInAliases","search","aliases","some","alias","toLowerCase","includes"],"sources":["utils.ts"],"sourcesContent":["interface Option {\n aliases?: string[];\n index?: number;\n name?: string;\n [key: string]: any;\n}\ninterface Props {\n useSimpleValues?: boolean;\n valueProp?: string;\n textProp?: string;\n}\n\nexport const getOptionValue = (option: Option | string, props: Props): string => {\n if (option) {\n return props.useSimpleValues\n ? (option as string)\n : (option as Option)[props.valueProp as string];\n }\n\n return option as string;\n};\n\nexport const getOptionText = (option: Option | string, props: Props): string => {\n if (option) {\n return props.useSimpleValues\n ? (option as string)\n : (option as Option)[props.textProp as string];\n }\n\n return option as string;\n};\n\nexport const findInAliases = (option: Option, search?: string): boolean => {\n return (option.aliases || []).some((alias: string): boolean => {\n return alias.toLowerCase().includes((search || \"\").toLowerCase());\n });\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["getOptionValue","option","props","useSimpleValues","valueProp","getOptionText","textProp","findInAliases","search","aliases","some","alias","toLowerCase","includes"],"sources":["utils.ts"],"sourcesContent":["interface Option {\n aliases?: string[];\n index?: number;\n name?: string;\n [key: string]: any;\n}\ninterface Props {\n useSimpleValues?: boolean;\n valueProp?: string;\n textProp?: string;\n}\n\nexport const getOptionValue = (option: Option | string, props: Props): string => {\n if (option) {\n return props.useSimpleValues\n ? (option as string)\n : (option as Option)[props.valueProp as string];\n }\n\n return option as string;\n};\n\nexport const getOptionText = (option: Option | string, props: Props): string => {\n if (option) {\n return props.useSimpleValues\n ? (option as string)\n : (option as Option)[props.textProp as string];\n }\n\n return option as string;\n};\n\nexport const findInAliases = (option: Option, search?: string): boolean => {\n return (option.aliases || []).some((alias: string): boolean => {\n return alias.toLowerCase().includes((search || \"\").toLowerCase());\n });\n};\n"],"mappings":";;;;;;AAYO,IAAMA,cAAc,GAAG,SAAjBA,cAAc,CAAIC,MAAuB,EAAEC,KAAY,EAAa;EAC7E,IAAID,MAAM,EAAE;IACR,OAAOC,KAAK,CAACC,eAAe,GACrBF,MAAM,GACNA,MAAM,CAAYC,KAAK,CAACE,SAAS,CAAW;EACvD;EAEA,OAAOH,MAAM;AACjB,CAAC;AAAC;AAEK,IAAMI,aAAa,GAAG,SAAhBA,aAAa,CAAIJ,MAAuB,EAAEC,KAAY,EAAa;EAC5E,IAAID,MAAM,EAAE;IACR,OAAOC,KAAK,CAACC,eAAe,GACrBF,MAAM,GACNA,MAAM,CAAYC,KAAK,CAACI,QAAQ,CAAW;EACtD;EAEA,OAAOL,MAAM;AACjB,CAAC;AAAC;AAEK,IAAMM,aAAa,GAAG,SAAhBA,aAAa,CAAIN,MAAc,EAAEO,MAAe,EAAc;EACvE,OAAO,CAACP,MAAM,CAACQ,OAAO,IAAI,EAAE,EAAEC,IAAI,CAAC,UAACC,KAAa,EAAc;IAC3D,OAAOA,KAAK,CAACC,WAAW,EAAE,CAACC,QAAQ,CAAC,CAACL,MAAM,IAAI,EAAE,EAAEI,WAAW,EAAE,CAAC;EACrE,CAAC,CAAC;AACN,CAAC;AAAC"}
|
package/Avatar/Avatar.js
CHANGED
|
@@ -1,22 +1,15 @@
|
|
|
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.Avatar = void 0;
|
|
9
|
-
|
|
10
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
-
|
|
12
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireDefault(require("react"));
|
|
15
|
-
|
|
16
11
|
var _emotion = require("emotion");
|
|
17
|
-
|
|
18
12
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
19
|
-
|
|
20
13
|
var _excluded = ["className", "width", "height", "src", "alt", "fallbackText", "renderImage"];
|
|
21
14
|
var avatar = /*#__PURE__*/(0, _emotion.css)({
|
|
22
15
|
borderRadius: "50%",
|
|
@@ -50,25 +43,23 @@ var avatar = /*#__PURE__*/(0, _emotion.css)({
|
|
|
50
43
|
objectFit: "cover"
|
|
51
44
|
}
|
|
52
45
|
}, "label:avatar;");
|
|
53
|
-
|
|
54
46
|
/**
|
|
55
47
|
* Use Avatar component to display user's avatar.
|
|
56
48
|
*/
|
|
57
49
|
var Avatar = function Avatar(props) {
|
|
58
50
|
var className = props.className,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
51
|
+
width = props.width,
|
|
52
|
+
height = props.height,
|
|
53
|
+
src = props.src,
|
|
54
|
+
alt = props.alt,
|
|
55
|
+
fallbackText = props.fallbackText,
|
|
56
|
+
renderImage = props.renderImage,
|
|
57
|
+
rest = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
66
58
|
var renderedImage;
|
|
67
59
|
var imageProps = {
|
|
68
60
|
src: src,
|
|
69
61
|
alt: alt
|
|
70
62
|
};
|
|
71
|
-
|
|
72
63
|
if (src) {
|
|
73
64
|
if (typeof renderImage === "function") {
|
|
74
65
|
renderedImage = renderImage((0, _objectSpread2.default)((0, _objectSpread2.default)({}, imageProps), {}, {
|
|
@@ -81,7 +72,6 @@ var Avatar = function Avatar(props) {
|
|
|
81
72
|
}));
|
|
82
73
|
}
|
|
83
74
|
}
|
|
84
|
-
|
|
85
75
|
return /*#__PURE__*/_react.default.createElement("div", Object.assign({}, rest, {
|
|
86
76
|
className: (0, _classnames.default)(avatar, className),
|
|
87
77
|
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props.style), {}, {
|
|
@@ -92,7 +82,6 @@ var Avatar = function Avatar(props) {
|
|
|
92
82
|
return word.charAt(0);
|
|
93
83
|
}).join("").toUpperCase())));
|
|
94
84
|
};
|
|
95
|
-
|
|
96
85
|
exports.Avatar = Avatar;
|
|
97
86
|
Avatar.defaultProps = {
|
|
98
87
|
width: 38,
|
package/Avatar/Avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["avatar","css","borderRadius","display","width","height","position","top","right","overflow","background","color","div","textAlign","alignContent","justifyContent","flexDirection","fontSize","span","paddingBottom","img","objectFit","Avatar","props","className","src","alt","fallbackText","renderImage","rest","renderedImage","imageProps","classNames","style","split","map","word","charAt","join","toUpperCase","defaultProps"],"sources":["Avatar.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nconst avatar = css({\n borderRadius: \"50%\",\n display: \"block\",\n //alignItems: \"center\",\n //justifyContent: \"center\",\n width: 38,\n height: 38,\n position: \"relative\",\n top: -7,\n right: 7,\n overflow: \"hidden\",\n background: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n div: {\n textAlign: \"center\",\n display: \"flex\",\n alignContent: \"center\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n width: 38,\n height: 38,\n fontSize: \"1rem\",\n span: {\n paddingBottom: 2\n }\n },\n img: {\n width: \"100% !important\",\n height: \"100% !important\",\n objectFit: \"cover\"\n }\n});\n\nexport interface AvatarProps {\n /**\n * CSS class name.\n */\n className?: string;\n\n /**\n * Style object.\n */\n style?: React.CSSProperties;\n\n /**\n * Avatar image source.\n */\n src?: string | null;\n\n /**\n * \"alt\" text.\n */\n alt?: string;\n\n /**\n * Width.\n */\n width?: number;\n\n /**\n * Height.\n */\n height?: number;\n\n /**\n * Pass a custom image component to be rendered instead of a simple <img> element.\n * @param props\n */\n renderImage?: (props: { src: string; alt?: string }) => React.ReactElement;\n\n /**\n * Text that will be shown when there is no image (usually user's initials).\n */\n fallbackText: string;\n}\n\n/**\n * Use Avatar component to display user's avatar.\n */\nexport const Avatar: React.FC<AvatarProps> = props => {\n const { className, width, height, src, alt, fallbackText, renderImage, ...rest } = props;\n\n let renderedImage;\n const imageProps = { src, alt };\n if (src) {\n if (typeof renderImage === \"function\") {\n renderedImage = renderImage({\n ...imageProps,\n src\n });\n } else {\n renderedImage = <img {...imageProps} alt={alt} src={src} />;\n }\n }\n\n return (\n <div\n {...rest}\n className={classNames(avatar, className)}\n style={{ ...props.style, width, height }}\n >\n {props.src ? (\n renderedImage\n ) : (\n <div>\n <span>\n {fallbackText\n .split(\" \")\n .map(word => word.charAt(0))\n .join(\"\")\n .toUpperCase()}\n </span>\n </div>\n )}\n </div>\n );\n};\n\nAvatar.defaultProps = {\n width: 38,\n height: 38\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["avatar","css","borderRadius","display","width","height","position","top","right","overflow","background","color","div","textAlign","alignContent","justifyContent","flexDirection","fontSize","span","paddingBottom","img","objectFit","Avatar","props","className","src","alt","fallbackText","renderImage","rest","renderedImage","imageProps","classNames","style","split","map","word","charAt","join","toUpperCase","defaultProps"],"sources":["Avatar.tsx"],"sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport classNames from \"classnames\";\nconst avatar = css({\n borderRadius: \"50%\",\n display: \"block\",\n //alignItems: \"center\",\n //justifyContent: \"center\",\n width: 38,\n height: 38,\n position: \"relative\",\n top: -7,\n right: 7,\n overflow: \"hidden\",\n background: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n div: {\n textAlign: \"center\",\n display: \"flex\",\n alignContent: \"center\",\n justifyContent: \"center\",\n flexDirection: \"column\",\n width: 38,\n height: 38,\n fontSize: \"1rem\",\n span: {\n paddingBottom: 2\n }\n },\n img: {\n width: \"100% !important\",\n height: \"100% !important\",\n objectFit: \"cover\"\n }\n});\n\nexport interface AvatarProps {\n /**\n * CSS class name.\n */\n className?: string;\n\n /**\n * Style object.\n */\n style?: React.CSSProperties;\n\n /**\n * Avatar image source.\n */\n src?: string | null;\n\n /**\n * \"alt\" text.\n */\n alt?: string;\n\n /**\n * Width.\n */\n width?: number;\n\n /**\n * Height.\n */\n height?: number;\n\n /**\n * Pass a custom image component to be rendered instead of a simple <img> element.\n * @param props\n */\n renderImage?: (props: { src: string; alt?: string }) => React.ReactElement;\n\n /**\n * Text that will be shown when there is no image (usually user's initials).\n */\n fallbackText: string;\n}\n\n/**\n * Use Avatar component to display user's avatar.\n */\nexport const Avatar: React.FC<AvatarProps> = props => {\n const { className, width, height, src, alt, fallbackText, renderImage, ...rest } = props;\n\n let renderedImage;\n const imageProps = { src, alt };\n if (src) {\n if (typeof renderImage === \"function\") {\n renderedImage = renderImage({\n ...imageProps,\n src\n });\n } else {\n renderedImage = <img {...imageProps} alt={alt} src={src} />;\n }\n }\n\n return (\n <div\n {...rest}\n className={classNames(avatar, className)}\n style={{ ...props.style, width, height }}\n >\n {props.src ? (\n renderedImage\n ) : (\n <div>\n <span>\n {fallbackText\n .split(\" \")\n .map(word => word.charAt(0))\n .join(\"\")\n .toUpperCase()}\n </span>\n </div>\n )}\n </div>\n );\n};\n\nAvatar.defaultProps = {\n width: 38,\n height: 38\n};\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AAAoC;AACpC,IAAMA,MAAM,gBAAG,IAAAC,YAAG,EAAC;EACfC,YAAY,EAAE,KAAK;EACnBC,OAAO,EAAE,OAAO;EAChB;EACA;EACAC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE,EAAE;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,CAAC,CAAC;EACPC,KAAK,EAAE,CAAC;EACRC,QAAQ,EAAE,QAAQ;EAClBC,UAAU,EAAE,6BAA6B;EACzCC,KAAK,EAAE,+CAA+C;EACtDC,GAAG,EAAE;IACDC,SAAS,EAAE,QAAQ;IACnBV,OAAO,EAAE,MAAM;IACfW,YAAY,EAAE,QAAQ;IACtBC,cAAc,EAAE,QAAQ;IACxBC,aAAa,EAAE,QAAQ;IACvBZ,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVY,QAAQ,EAAE,MAAM;IAChBC,IAAI,EAAE;MACFC,aAAa,EAAE;IACnB;EACJ,CAAC;EACDC,GAAG,EAAE;IACDhB,KAAK,EAAE,iBAAiB;IACxBC,MAAM,EAAE,iBAAiB;IACzBgB,SAAS,EAAE;EACf;AACJ,CAAC,kBAAC;AA6CF;AACA;AACA;AACO,IAAMC,MAA6B,GAAG,SAAhCA,MAA6B,CAAGC,KAAK,EAAI;EAClD,IAAQC,SAAS,GAAkED,KAAK,CAAhFC,SAAS;IAAEpB,KAAK,GAA2DmB,KAAK,CAArEnB,KAAK;IAAEC,MAAM,GAAmDkB,KAAK,CAA9DlB,MAAM;IAAEoB,GAAG,GAA8CF,KAAK,CAAtDE,GAAG;IAAEC,GAAG,GAAyCH,KAAK,CAAjDG,GAAG;IAAEC,YAAY,GAA2BJ,KAAK,CAA5CI,YAAY;IAAEC,WAAW,GAAcL,KAAK,CAA9BK,WAAW;IAAKC,IAAI,0CAAKN,KAAK;EAExF,IAAIO,aAAa;EACjB,IAAMC,UAAU,GAAG;IAAEN,GAAG,EAAHA,GAAG;IAAEC,GAAG,EAAHA;EAAI,CAAC;EAC/B,IAAID,GAAG,EAAE;IACL,IAAI,OAAOG,WAAW,KAAK,UAAU,EAAE;MACnCE,aAAa,GAAGF,WAAW,6DACpBG,UAAU;QACbN,GAAG,EAAHA;MAAG,GACL;IACN,CAAC,MAAM;MACHK,aAAa,gBAAG,sDAASC,UAAU;QAAE,GAAG,EAAEL,GAAI;QAAC,GAAG,EAAED;MAAI,GAAG;IAC/D;EACJ;EAEA,oBACI,sDACQI,IAAI;IACR,SAAS,EAAE,IAAAG,mBAAU,EAAChC,MAAM,EAAEwB,SAAS,CAAE;IACzC,KAAK,8DAAOD,KAAK,CAACU,KAAK;MAAE7B,KAAK,EAALA,KAAK;MAAEC,MAAM,EAANA;IAAM;EAAG,IAExCkB,KAAK,CAACE,GAAG,GACNK,aAAa,gBAEb,uDACI,2CACKH,YAAY,CACRO,KAAK,CAAC,GAAG,CAAC,CACVC,GAAG,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACC,MAAM,CAAC,CAAC,CAAC;EAAA,EAAC,CAC3BC,IAAI,CAAC,EAAE,CAAC,CACRC,WAAW,EAAE,CACf,CAEd,CACC;AAEd,CAAC;AAAC;AAEFjB,MAAM,CAACkB,YAAY,GAAG;EAClBpC,KAAK,EAAE,EAAE;EACTC,MAAM,EAAE;AACZ,CAAC"}
|
package/Avatar/Avatar.stories.js
CHANGED
|
@@ -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("./../Avatar/README.md"));
|
|
12
|
-
|
|
13
8
|
var _Avatar = require("./Avatar");
|
|
14
|
-
|
|
15
9
|
var story = (0, _react2.storiesOf)("Components/Avatar", module);
|
|
16
10
|
story.add("usage", function () {
|
|
17
11
|
return /*#__PURE__*/_react.default.createElement(_Story.Story, null, /*#__PURE__*/_react.default.createElement(_Story.StoryReadme, null, _README.default), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Avatar"],"sources":["Avatar.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport { Story, StoryReadme, StorySandbox } from \"@webiny/storybook-utils/Story\";\nimport readme from \"./../Avatar/README.md\";\nimport { Avatar } from \"./Avatar\";\n\nconst story = storiesOf(\"Components/Avatar\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"A simple avatar\"}>\n <div>\n <Avatar\n width={48}\n height={48}\n alt=\"Test alt.\"\n fallbackText=\"T\"\n src=\"http://i.pravatar.cc/150?img=49\"\n />\n\n <br />\n <br />\n\n <Avatar width={64} height={64} alt=\"Test alt.\" fallbackText=\"T\" src={\"\"} />\n </div>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Avatar] } }\n);\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["story","storiesOf","module","add","readme","info","propTables","Avatar"],"sources":["Avatar.stories.tsx"],"sourcesContent":["import React from \"react\";\nimport { storiesOf } from \"@storybook/react\";\nimport { Story, StoryReadme, StorySandbox } from \"@webiny/storybook-utils/Story\";\nimport readme from \"./../Avatar/README.md\";\nimport { Avatar } from \"./Avatar\";\n\nconst story = storiesOf(\"Components/Avatar\", module);\n\nstory.add(\n \"usage\",\n () => {\n return (\n <Story>\n <StoryReadme>{readme}</StoryReadme>\n <StorySandbox title={\"A simple avatar\"}>\n <div>\n <Avatar\n width={48}\n height={48}\n alt=\"Test alt.\"\n fallbackText=\"T\"\n src=\"http://i.pravatar.cc/150?img=49\"\n />\n\n <br />\n <br />\n\n <Avatar width={64} height={64} alt=\"Test alt.\" fallbackText=\"T\" src={\"\"} />\n </div>\n </StorySandbox>\n </Story>\n );\n },\n { info: { propTables: [Avatar] } }\n);\n"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AAEA,IAAMA,KAAK,GAAG,IAAAC,iBAAS,EAAC,mBAAmB,EAAEC,MAAM,CAAC;AAEpDF,KAAK,CAACG,GAAG,CACL,OAAO,EACP,YAAM;EACF,oBACI,6BAAC,YAAK,qBACF,6BAAC,kBAAW,QAAEC,eAAM,CAAe,eACnC,6BAAC,mBAAY;IAAC,KAAK,EAAE;EAAkB,gBACnC,uDACI,6BAAC,cAAM;IACH,KAAK,EAAE,EAAG;IACV,MAAM,EAAE,EAAG;IACX,GAAG,EAAC,WAAW;IACf,YAAY,EAAC,GAAG;IAChB,GAAG,EAAC;EAAiC,EACvC,eAEF,wCAAM,eACN,wCAAM,eAEN,6BAAC,cAAM;IAAC,KAAK,EAAE,EAAG;IAAC,MAAM,EAAE,EAAG;IAAC,GAAG,EAAC,WAAW;IAAC,YAAY,EAAC,GAAG;IAAC,GAAG,EAAE;EAAG,EAAG,CACzE,CACK,CACX;AAEhB,CAAC,EACD;EAAEC,IAAI,EAAE;IAAEC,UAAU,EAAE,CAACC,cAAM;EAAE;AAAE,CAAC,CACrC"}
|
package/Avatar/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _Avatar = require("./Avatar");
|
|
8
|
-
|
|
9
7
|
Object.keys(_Avatar).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _Avatar[key]) return;
|
package/Avatar/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Avatar\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Avatar\";\n"],"mappings":";;;;;AAAA;AAAA;EAAA;EAAA;EAAA;IAAA;IAAA;MAAA;IAAA;EAAA;AAAA"}
|