@webiny/ui 5.27.0-beta.0 → 5.28.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion/Accordion.js +27 -13
- package/Accordion/Accordion.js.map +1 -1
- package/Accordion/Accordion.stories.js +34 -23
- package/Accordion/Accordion.stories.js.map +1 -1
- package/Accordion/AccordionItem.js +60 -36
- package/Accordion/AccordionItem.js.map +1 -1
- package/Accordion/index.js +31 -2
- package/Accordion/index.js.map +1 -1
- package/Alert/Alert.js +21 -10
- package/Alert/Alert.js.map +1 -1
- package/Alert/Alert.stories.js +22 -13
- package/Alert/Alert.stories.js.map +1 -1
- package/Alert/index.js +18 -1
- package/Alert/index.js.map +1 -1
- package/AutoComplete/AutoComplete.js +100 -77
- package/AutoComplete/AutoComplete.js.map +1 -1
- package/AutoComplete/AutoComplete.stories.js +27 -17
- package/AutoComplete/AutoComplete.stories.js.map +1 -1
- package/AutoComplete/MultiAutoComplete.js +164 -139
- package/AutoComplete/MultiAutoComplete.js.map +1 -1
- package/AutoComplete/MultiAutoComplete.stories.js +39 -28
- package/AutoComplete/MultiAutoComplete.stories.js.map +1 -1
- package/AutoComplete/index.js +31 -2
- package/AutoComplete/index.js.map +1 -1
- package/AutoComplete/styles.js +14 -4
- package/AutoComplete/styles.js.map +1 -1
- package/AutoComplete/types.js +5 -1
- package/AutoComplete/types.js.map +1 -1
- package/AutoComplete/utils.js +19 -4
- package/AutoComplete/utils.js.map +1 -1
- package/Avatar/Avatar.js +30 -15
- package/Avatar/Avatar.js.map +1 -1
- package/Avatar/Avatar.stories.js +19 -10
- package/Avatar/Avatar.stories.js.map +1 -1
- package/Avatar/index.js +18 -1
- package/Avatar/index.js.map +1 -1
- package/Button/Button.js +52 -23
- package/Button/Button.js.map +1 -1
- package/Button/Button.stories.js +42 -29
- package/Button/Button.stories.js.map +1 -1
- package/Button/CopyButton/CopyButton.js +24 -11
- package/Button/CopyButton/CopyButton.js.map +1 -1
- package/Button/CopyButton/CopyButton.stories.js +20 -10
- package/Button/CopyButton/CopyButton.stories.js.map +1 -1
- package/Button/IconButton/IconButton.js +14 -4
- package/Button/IconButton/IconButton.js.map +1 -1
- package/Button/IconButton/IconButton.stories.js +31 -19
- package/Button/IconButton/IconButton.stories.js.map +1 -1
- package/Button/index.js +44 -3
- package/Button/index.js.map +1 -1
- package/Carousel/Carousel.js +34 -21
- package/Carousel/Carousel.js.map +1 -1
- package/Carousel/Carouser.stories.js +27 -17
- package/Carousel/Carouser.stories.js.map +1 -1
- package/Carousel/index.js +15 -1
- package/Carousel/index.js.map +1 -1
- package/Checkbox/Checkbox.js +37 -22
- package/Checkbox/Checkbox.js.map +1 -1
- package/Checkbox/Checkbox.stories.js +27 -16
- package/Checkbox/Checkbox.stories.js.map +1 -1
- package/Checkbox/Checkbox.styles.js +11 -4
- package/Checkbox/Checkbox.styles.js.map +1 -1
- package/Checkbox/CheckboxGroup.js +36 -21
- package/Checkbox/CheckboxGroup.js.map +1 -1
- package/Checkbox/CheckboxGroup.stories.js +29 -18
- package/Checkbox/CheckboxGroup.stories.js.map +1 -1
- package/Checkbox/index.js +23 -2
- package/Checkbox/index.js.map +1 -1
- package/Chips/Chip.js +21 -7
- package/Chips/Chip.js.map +1 -1
- package/Chips/ChipIcon.js +21 -7
- package/Chips/ChipIcon.js.map +1 -1
- package/Chips/Chips.js +29 -12
- package/Chips/Chips.js.map +1 -1
- package/Chips/Chips.stories.js +27 -16
- package/Chips/Chips.stories.js.map +1 -1
- package/Chips/index.js +44 -3
- package/Chips/index.js.map +1 -1
- package/Chips/styles.js +14 -4
- package/Chips/styles.js.map +1 -1
- package/CodeEditor/CodeEditor.js +48 -29
- package/CodeEditor/CodeEditor.js.map +1 -1
- package/CodeEditor/CodeEditor.stories.js +30 -17
- package/CodeEditor/CodeEditor.stories.js.map +1 -1
- package/CodeEditor/index.js +18 -1
- package/CodeEditor/index.js.map +1 -1
- package/ColorPicker/ColorPicker.js +58 -44
- package/ColorPicker/ColorPicker.js.map +1 -1
- package/ColorPicker/ColorPicker.stories.js +26 -15
- package/ColorPicker/ColorPicker.stories.js.map +1 -1
- package/ColorPicker/index.js +18 -1
- package/ColorPicker/index.js.map +1 -1
- package/ConfirmationDialog/ConfirmationDialog.js +51 -42
- package/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
- package/ConfirmationDialog/ConfirmationDialog.stories.js +22 -12
- package/ConfirmationDialog/ConfirmationDialog.stories.js.map +1 -1
- package/ConfirmationDialog/index.js +31 -2
- package/ConfirmationDialog/index.js.map +1 -1
- package/ConfirmationDialog/withConfirmation.js +19 -6
- package/ConfirmationDialog/withConfirmation.js.map +1 -1
- package/Dialog/Dialog.js +68 -37
- package/Dialog/Dialog.js.map +1 -1
- package/Dialog/Dialog.stories.js +26 -16
- package/Dialog/Dialog.stories.js.map +1 -1
- package/Dialog/index.js +18 -1
- package/Dialog/index.js.map +1 -1
- package/Drawer/Drawer.js +20 -6
- package/Drawer/Drawer.js.map +1 -1
- package/Drawer/Drawer.stories.js +26 -15
- package/Drawer/Drawer.stories.js.map +1 -1
- package/Drawer/index.js +18 -1
- package/Drawer/index.js.map +1 -1
- package/DynamicFieldset/Fieldset.js +56 -47
- package/DynamicFieldset/Fieldset.js.map +1 -1
- package/DynamicFieldset/index.js +15 -1
- package/DynamicFieldset/index.js.map +1 -1
- package/Elevation/Elevation.js +17 -6
- package/Elevation/Elevation.js.map +1 -1
- package/Elevation/Elevation.stories.js +27 -16
- package/Elevation/Elevation.stories.js.map +1 -1
- package/Elevation/index.js +18 -1
- package/Elevation/index.js.map +1 -1
- package/FormElementMessage/FormElementMessage.js +15 -5
- package/FormElementMessage/FormElementMessage.js.map +1 -1
- package/FormElementMessage/index.js +13 -1
- package/FormElementMessage/index.js.map +1 -1
- package/FullName/FullName.js +8 -1
- package/FullName/FullName.js.map +1 -1
- package/FullName/index.js +18 -1
- package/FullName/index.js.map +1 -1
- package/Grid/Grid.js +26 -9
- package/Grid/Grid.js.map +1 -1
- package/Grid/Grid.stories.js +21 -12
- package/Grid/Grid.stories.js.map +1 -1
- package/Grid/index.js +18 -1
- package/Grid/index.js.map +1 -1
- package/Helpers/ClassNames.js +16 -7
- package/Helpers/ClassNames.js.map +1 -1
- package/Helpers/index.js +13 -2
- package/Helpers/index.js.map +1 -1
- package/Icon/Icon.js +19 -7
- package/Icon/Icon.js.map +1 -1
- package/Icon/Icon.stories.js +33 -20
- package/Icon/Icon.stories.js.map +1 -1
- package/Icon/index.js +18 -1
- package/Icon/index.js.map +1 -1
- package/Image/Image.js +15 -7
- package/Image/Image.js.map +1 -1
- package/Image/Image.stories.js +21 -11
- package/Image/Image.stories.js.map +1 -1
- package/Image/index.js +18 -1
- package/Image/index.js.map +1 -1
- package/ImageEditor/ImageEditor.js +75 -65
- package/ImageEditor/ImageEditor.js.map +1 -1
- package/ImageEditor/index.js +18 -1
- package/ImageEditor/index.js.map +1 -1
- package/ImageEditor/toolbar/crop.js +30 -13
- package/ImageEditor/toolbar/crop.js.map +1 -1
- package/ImageEditor/toolbar/filter.js +61 -44
- package/ImageEditor/toolbar/filter.js.map +1 -1
- package/ImageEditor/toolbar/flip.js +32 -15
- package/ImageEditor/toolbar/flip.js.map +1 -1
- package/ImageEditor/toolbar/icons/index.js +69 -8
- package/ImageEditor/toolbar/icons/index.js.map +1 -1
- package/ImageEditor/toolbar/index.js +39 -4
- package/ImageEditor/toolbar/index.js.map +1 -1
- package/ImageEditor/toolbar/rotate.js +58 -35
- package/ImageEditor/toolbar/rotate.js.map +1 -1
- package/ImageEditor/toolbar/types.js +5 -1
- package/ImageEditor/toolbar/types.js.map +1 -1
- package/ImageUpload/Image.js +57 -35
- package/ImageUpload/Image.js.map +1 -1
- package/ImageUpload/ImageEditorDialog.js +48 -30
- package/ImageUpload/ImageEditorDialog.js.map +1 -1
- package/ImageUpload/MultiImageUpload.js +88 -70
- package/ImageUpload/MultiImageUpload.js.map +1 -1
- package/ImageUpload/MultiImageUpload.stories.js +26 -15
- package/ImageUpload/MultiImageUpload.stories.js.map +1 -1
- package/ImageUpload/SingleImageUpload.js +68 -45
- package/ImageUpload/SingleImageUpload.js.map +1 -1
- package/ImageUpload/SingleImageUpload.stories.js +27 -16
- package/ImageUpload/SingleImageUpload.stories.js.map +1 -1
- package/ImageUpload/index.js +39 -4
- package/ImageUpload/index.js.map +1 -1
- package/ImageUpload/styled.d.ts +2 -2
- package/ImageUpload/styled.js +29 -15
- package/ImageUpload/styled.js.map +1 -1
- package/Input/Input.js +52 -35
- package/Input/Input.js.map +1 -1
- package/Input/Input.stories.js +62 -46
- package/Input/Input.stories.js.map +1 -1
- package/Input/__tests__/Input.test.js +37 -26
- package/Input/__tests__/Input.test.js.map +1 -1
- package/Input/index.js +18 -1
- package/Input/index.js.map +1 -1
- package/List/CollapsibleList/CollapsibleList.stories.js +27 -16
- package/List/CollapsibleList/CollapsibleList.stories.js.map +1 -1
- package/List/CollapsibleList/index.js +21 -6
- package/List/CollapsibleList/index.js.map +1 -1
- package/List/DataList/DataList.js +89 -60
- package/List/DataList/DataList.js.map +1 -1
- package/List/DataList/DataList.stories.js +37 -25
- package/List/DataList/DataList.stories.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js +29 -10
- package/List/DataList/DataListModalOverlay/DataListModalOverlay.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlayAction.js +27 -9
- package/List/DataList/DataListModalOverlay/DataListModalOverlayAction.js.map +1 -1
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.js +24 -8
- package/List/DataList/DataListModalOverlay/DataListModalOverlayContext.js.map +1 -1
- package/List/DataList/DataListModalOverlay/index.js +35 -3
- package/List/DataList/DataListModalOverlay/index.js.map +1 -1
- package/List/DataList/Loader.js +25 -13
- package/List/DataList/Loader.js.map +1 -1
- package/List/DataList/NoData.js +19 -6
- package/List/DataList/NoData.js.map +1 -1
- package/List/DataList/icons/index.js +83 -38
- package/List/DataList/icons/index.js.map +1 -1
- package/List/DataList/index.js +48 -3
- package/List/DataList/index.js.map +1 -1
- package/List/DataList/types.js +5 -1
- package/List/DataList/types.js.map +1 -1
- package/List/List.js +92 -49
- package/List/List.js.map +1 -1
- package/List/List.stories.js +52 -37
- package/List/List.stories.js.map +1 -1
- package/List/icons/index.js +23 -3
- package/List/icons/index.js.map +1 -1
- package/List/index.js +60 -3
- package/List/index.js.map +1 -1
- package/Menu/Menu.js +58 -46
- package/Menu/Menu.js.map +1 -1
- package/Menu/Menu.stories.js +24 -14
- package/Menu/Menu.stories.js.map +1 -1
- package/Menu/index.js +18 -1
- package/Menu/index.js.map +1 -1
- package/Mosaic/Mosaic.js +16 -7
- package/Mosaic/Mosaic.js.map +1 -1
- package/Mosaic/Mosaic.stories.js +37 -28
- package/Mosaic/Mosaic.stories.js.map +1 -1
- package/Mosaic/index.js +18 -1
- package/Mosaic/index.js.map +1 -1
- package/Progress/CircularProgress.js +25 -11
- package/Progress/CircularProgress.js.map +1 -1
- package/Progress/index.js +15 -1
- package/Progress/index.js.map +1 -1
- package/Radio/Radio.js +37 -22
- package/Radio/Radio.js.map +1 -1
- package/Radio/Radio.styles.js +11 -4
- package/Radio/Radio.styles.js.map +1 -1
- package/Radio/RadioGroup.js +33 -19
- package/Radio/RadioGroup.js.map +1 -1
- package/Radio/RadioGroup.stories.js +29 -18
- package/Radio/RadioGroup.stories.js.map +1 -1
- package/Radio/index.js +23 -2
- package/Radio/index.js.map +1 -1
- package/RichTextEditor/RichTextEditor.js +56 -32
- package/RichTextEditor/RichTextEditor.js.map +1 -1
- package/RichTextEditor/RichTextEditor.stories.js +21 -10
- package/RichTextEditor/RichTextEditor.stories.js.map +1 -1
- package/RichTextEditor/createPropsFromConfig.js +15 -4
- package/RichTextEditor/createPropsFromConfig.js.map +1 -1
- package/RichTextEditor/index.js +30 -2
- package/RichTextEditor/index.js.map +1 -1
- package/Ripple/Ripple.js +16 -5
- package/Ripple/Ripple.js.map +1 -1
- package/Ripple/Ripple.stories.js +57 -42
- package/Ripple/Ripple.stories.js.map +1 -1
- package/Ripple/index.js +18 -1
- package/Ripple/index.js.map +1 -1
- package/Scrollbar/Scrollbar.js +14 -4
- package/Scrollbar/Scrollbar.js.map +1 -1
- package/Scrollbar/Scrollbar.stories.js +18 -9
- package/Scrollbar/Scrollbar.stories.js.map +1 -1
- package/Scrollbar/index.js +18 -1
- package/Scrollbar/index.js.map +1 -1
- package/Section/Section.stories.js +22 -12
- package/Section/Section.stories.js.map +1 -1
- package/Section/index.js +30 -15
- package/Section/index.js.map +1 -1
- package/Select/Select.js +37 -18
- package/Select/Select.js.map +1 -1
- package/Select/Select.stories.js +36 -25
- package/Select/Select.stories.js.map +1 -1
- package/Select/index.js +18 -1
- package/Select/index.js.map +1 -1
- package/Slider/Slider.js +43 -27
- package/Slider/Slider.js.map +1 -1
- package/Slider/Slider.stories.js +27 -16
- package/Slider/Slider.stories.js.map +1 -1
- package/Slider/index.js +15 -1
- package/Slider/index.js.map +1 -1
- package/Snackbar/Snackbar.js +38 -20
- package/Snackbar/Snackbar.js.map +1 -1
- package/Snackbar/Snackbar.stories.js +44 -30
- package/Snackbar/Snackbar.stories.js.map +1 -1
- package/Snackbar/index.js +19 -1
- package/Snackbar/index.js.map +1 -1
- package/Switch/Switch.js +43 -27
- package/Switch/Switch.js.map +1 -1
- package/Switch/Switch.stories.js +27 -16
- package/Switch/Switch.stories.js.map +1 -1
- package/Switch/index.js +18 -1
- package/Switch/index.js.map +1 -1
- package/Tabs/Tab.js +21 -7
- package/Tabs/Tab.js.map +1 -1
- package/Tabs/Tabs.js +49 -28
- package/Tabs/Tabs.js.map +1 -1
- package/Tabs/Tabs.stories.js +34 -22
- package/Tabs/Tabs.stories.js.map +1 -1
- package/Tabs/index.js +31 -2
- package/Tabs/index.js.map +1 -1
- package/Tags/Tags.js +64 -40
- package/Tags/Tags.js.map +1 -1
- package/Tags/Tags.stories.js +27 -16
- package/Tags/Tags.stories.js.map +1 -1
- package/Tags/index.js +18 -1
- package/Tags/index.js.map +1 -1
- package/Tooltip/Tooltip.js +38 -24
- package/Tooltip/Tooltip.js.map +1 -1
- package/Tooltip/Tooltip.stories.js +20 -11
- package/Tooltip/Tooltip.stories.js.map +1 -1
- package/Tooltip/index.js +18 -1
- package/Tooltip/index.js.map +1 -1
- package/TopAppBar/TopAppBar.js +18 -7
- package/TopAppBar/TopAppBar.js.map +1 -1
- package/TopAppBar/TopAppBar.stories.js +39 -25
- package/TopAppBar/TopAppBar.stories.js.map +1 -1
- package/TopAppBar/TopAppBarActionItem.js +14 -4
- package/TopAppBar/TopAppBarActionItem.js.map +1 -1
- package/TopAppBar/TopAppBarNavigationIcon.js +14 -4
- package/TopAppBar/TopAppBarNavigationIcon.js.map +1 -1
- package/TopAppBar/TopAppBarPrimary.js +18 -7
- package/TopAppBar/TopAppBarPrimary.js.map +1 -1
- package/TopAppBar/TopAppBarSecondary.js +18 -7
- package/TopAppBar/TopAppBarSecondary.js.map +1 -1
- package/TopAppBar/TopAppBarSection.js +18 -7
- package/TopAppBar/TopAppBarSection.js.map +1 -1
- package/TopAppBar/TopAppBarTitle.js +18 -7
- package/TopAppBar/TopAppBarTitle.js.map +1 -1
- package/TopAppBar/index.js +96 -7
- package/TopAppBar/index.js.map +1 -1
- package/TopProgressBar/TopProgressBar.js +20 -7
- package/TopProgressBar/TopProgressBar.js.map +1 -1
- package/TopProgressBar/TopProgressBar.stories.js +22 -12
- package/TopProgressBar/TopProgressBar.stories.js.map +1 -1
- package/TopProgressBar/hoc/index.js +15 -1
- package/TopProgressBar/hoc/index.js.map +1 -1
- package/TopProgressBar/hoc/withTopProgressBar.js +16 -5
- package/TopProgressBar/hoc/withTopProgressBar.js.map +1 -1
- package/TopProgressBar/index.js +18 -1
- package/TopProgressBar/index.js.map +1 -1
- package/Typography/Typography.js +14 -4
- package/Typography/Typography.js.map +1 -1
- package/Typography/Typography.stories.js +43 -34
- package/Typography/Typography.stories.js.map +1 -1
- package/Typography/index.js +18 -1
- package/Typography/index.js.map +1 -1
- package/package.json +8 -8
- package/types.js +5 -1
- package/types.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiAutoComplete.tsx"],"names":["React","Downshift","MaterialSpinner","Input","Chips","Chip","getOptionValue","getOptionText","findInAliases","List","ListItem","ListItemMeta","IconButton","classNames","Elevation","Typography","autoCompleteStyle","suggestionList","FormElementMessage","ReactComponent","BaselineCloseIcon","PrevIcon","NextIcon","PrevAllIcon","NextAllIcon","DeleteIcon","ReorderIcon","css","ListItemGraphic","listItemMetaClassName","display","iconButtonClassName","style","pagination","bar","justifyContent","alignItems","borderBottom","padding","pages","searchInput","height","list","secondaryText","color","listStyles","listStyle","paddingLeft","margin","Spinner","OptionsList","getMenuProps","children","MultiAutoComplete","inputValue","multipleSelectionPage","multipleSelectionSearch","reorderFormVisible","reorderFormValue","createRef","set","selection","setState","props","unique","value","allowFreeInput","useSimpleValues","options","values","Array","isArray","filtered","state","existingValue","includes","unshift","find","item","textProp","filter","aliases","toLowerCase","params","isOpen","highlightedIndex","getItemProps","length","noResultFound","renderItem","map","index","itemValue","itemClassNames","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","downshift","assignedValueAfterClearing","current","clearSelection","getInputProps","openMenu","rest","rawOnChange","trailingIcon","loading","onBlur","onKeyUp","onFocus","renderOptions","renderMultipleSelection","Component","valueProp"],"mappings":"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","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 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 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"]}
|
|
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 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 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,12 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@storybook/react");
|
|
8
|
+
|
|
9
|
+
var _Story = require("@webiny/storybook-utils/Story");
|
|
10
|
+
|
|
11
|
+
var _addonKnobs = require("@storybook/addon-knobs");
|
|
12
|
+
|
|
13
|
+
var _MultiAutoCompleteReadme = _interopRequireDefault(require("./MultiAutoCompleteReadme.md"));
|
|
14
|
+
|
|
15
|
+
var _form = require("@webiny/form");
|
|
16
|
+
|
|
17
|
+
var _MultiAutoComplete = require("./MultiAutoComplete");
|
|
18
|
+
|
|
19
|
+
var story = (0, _react2.storiesOf)("Components/AutoComplete", module);
|
|
20
|
+
story.addDecorator(_addonKnobs.withKnobs);
|
|
10
21
|
var options = [{
|
|
11
22
|
name: "France",
|
|
12
23
|
id: "france"
|
|
@@ -36,10 +47,10 @@ var options = [{
|
|
|
36
47
|
id: "czech-republic"
|
|
37
48
|
}];
|
|
38
49
|
story.add("MultiAutoComplete", function () {
|
|
39
|
-
var disabled = boolean("Disabled", false);
|
|
40
|
-
return /*#__PURE__*/
|
|
50
|
+
var disabled = (0, _addonKnobs.boolean)("Disabled", false);
|
|
51
|
+
return /*#__PURE__*/_react.default.createElement(_Story.Story, null, /*#__PURE__*/_react.default.createElement(_Story.StoryReadme, null, _MultiAutoCompleteReadme.default), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, null, /*#__PURE__*/_react.default.createElement(_Story.StorySandboxExample, {
|
|
41
52
|
title: "Values as objects"
|
|
42
|
-
}, /*#__PURE__*/
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
43
54
|
data: {
|
|
44
55
|
country: [{
|
|
45
56
|
id: "uk",
|
|
@@ -51,25 +62,25 @@ story.add("MultiAutoComplete", function () {
|
|
|
51
62
|
}
|
|
52
63
|
}, function (_ref) {
|
|
53
64
|
var Bind = _ref.Bind;
|
|
54
|
-
return /*#__PURE__*/
|
|
65
|
+
return /*#__PURE__*/_react.default.createElement(Bind, {
|
|
55
66
|
name: "country"
|
|
56
|
-
}, /*#__PURE__*/
|
|
67
|
+
}, /*#__PURE__*/_react.default.createElement(_MultiAutoComplete.MultiAutoComplete, {
|
|
57
68
|
options: options,
|
|
58
69
|
label: "Country",
|
|
59
70
|
disabled: disabled,
|
|
60
71
|
description: "Choose one or more countries."
|
|
61
72
|
}));
|
|
62
|
-
})), /*#__PURE__*/
|
|
73
|
+
})), /*#__PURE__*/_react.default.createElement(_Story.StorySandboxCode, null, "\n <Form>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n options={".concat(JSON.stringify(options), "}\n label=\"Country\"\n disabled={").concat(disabled, "}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n "))), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, null, /*#__PURE__*/_react.default.createElement(_Story.StorySandboxExample, {
|
|
63
74
|
title: "Values as strings"
|
|
64
|
-
}, /*#__PURE__*/
|
|
75
|
+
}, /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
65
76
|
data: {
|
|
66
77
|
country: ["Italy", "France"]
|
|
67
78
|
}
|
|
68
79
|
}, function (_ref2) {
|
|
69
80
|
var Bind = _ref2.Bind;
|
|
70
|
-
return /*#__PURE__*/
|
|
81
|
+
return /*#__PURE__*/_react.default.createElement(Bind, {
|
|
71
82
|
name: "country"
|
|
72
|
-
}, /*#__PURE__*/
|
|
83
|
+
}, /*#__PURE__*/_react.default.createElement(_MultiAutoComplete.MultiAutoComplete, {
|
|
73
84
|
useSimpleValues: true,
|
|
74
85
|
options: options.map(function (item) {
|
|
75
86
|
return item.name;
|
|
@@ -78,9 +89,9 @@ story.add("MultiAutoComplete", function () {
|
|
|
78
89
|
disabled: disabled,
|
|
79
90
|
description: "Choose one or more countries."
|
|
80
91
|
}));
|
|
81
|
-
})), /*#__PURE__*/
|
|
92
|
+
})), /*#__PURE__*/_react.default.createElement(_Story.StorySandboxCode, null, "\n <Form>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={".concat(JSON.stringify(options), "}\n label=\"Country\"\n disabled={").concat(disabled, "}\n description=\"Choose one or more countries.\"\n />\n </Bind>\n )}\n </Form>\n "))), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, null, /*#__PURE__*/_react.default.createElement(_Story.StorySandboxExample, {
|
|
82
93
|
title: "Allow free input"
|
|
83
|
-
}, /*#__PURE__*/
|
|
94
|
+
}, /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
84
95
|
data: {
|
|
85
96
|
country: [{
|
|
86
97
|
id: "anotherCountry",
|
|
@@ -95,26 +106,26 @@ story.add("MultiAutoComplete", function () {
|
|
|
95
106
|
}
|
|
96
107
|
}, function (_ref3) {
|
|
97
108
|
var Bind = _ref3.Bind;
|
|
98
|
-
return /*#__PURE__*/
|
|
109
|
+
return /*#__PURE__*/_react.default.createElement(Bind, {
|
|
99
110
|
name: "country"
|
|
100
|
-
}, /*#__PURE__*/
|
|
111
|
+
}, /*#__PURE__*/_react.default.createElement(_MultiAutoComplete.MultiAutoComplete, {
|
|
101
112
|
allowFreeInput: true,
|
|
102
113
|
options: options,
|
|
103
114
|
label: "Country",
|
|
104
115
|
disabled: disabled,
|
|
105
116
|
description: "Choose your country"
|
|
106
117
|
}));
|
|
107
|
-
})), /*#__PURE__*/
|
|
118
|
+
})), /*#__PURE__*/_react.default.createElement(_Story.StorySandboxCode, null, "\n <Form data={{ country: { id: \"anotherCountry\", name: \"Another Country\" } }}>\n {({ Bind }) => (\n <Bind name=\"country\">\n <MultiAutoComplete\n useSimpleValues\n options={".concat(JSON.stringify(options), "}\n label=\"Country\"\n disabled={disabled}\n description=\"Choose your country\"\n />\n </Bind>\n )}\n </Form>\n "))), /*#__PURE__*/_react.default.createElement(_Story.StorySandbox, null, /*#__PURE__*/_react.default.createElement(_Story.StorySandboxExample, {
|
|
108
119
|
title: "Allow free input (values as strings)"
|
|
109
|
-
}, /*#__PURE__*/
|
|
120
|
+
}, /*#__PURE__*/_react.default.createElement(_form.Form, {
|
|
110
121
|
data: {
|
|
111
122
|
country: ["Another Country", "Nowhere", "France"]
|
|
112
123
|
}
|
|
113
124
|
}, function (_ref4) {
|
|
114
125
|
var Bind = _ref4.Bind;
|
|
115
|
-
return /*#__PURE__*/
|
|
126
|
+
return /*#__PURE__*/_react.default.createElement(Bind, {
|
|
116
127
|
name: "country"
|
|
117
|
-
}, /*#__PURE__*/
|
|
128
|
+
}, /*#__PURE__*/_react.default.createElement(_MultiAutoComplete.MultiAutoComplete, {
|
|
118
129
|
useSimpleValues: true,
|
|
119
130
|
allowFreeInput: true,
|
|
120
131
|
options: options.map(function (item) {
|
|
@@ -124,9 +135,9 @@ story.add("MultiAutoComplete", function () {
|
|
|
124
135
|
disabled: disabled,
|
|
125
136
|
description: "Choose your country"
|
|
126
137
|
}));
|
|
127
|
-
})), /*#__PURE__*/
|
|
138
|
+
})), /*#__PURE__*/_react.default.createElement(_Story.StorySandboxCode, null, "\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 ")));
|
|
128
139
|
}, {
|
|
129
140
|
info: {
|
|
130
|
-
propTables: [MultiAutoComplete]
|
|
141
|
+
propTables: [_MultiAutoComplete.MultiAutoComplete]
|
|
131
142
|
}
|
|
132
143
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MultiAutoComplete.stories.tsx"],"names":["React","storiesOf","Story","StoryReadme","StorySandboxCode","StorySandbox","StorySandboxExample","withKnobs","boolean","readme","Form","MultiAutoComplete","story","module","addDecorator","options","name","id","add","disabled","country","Bind","JSON","stringify","map","item","info","propTables"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,kBAA1B;AACA,SACIC,KADJ,EAEIC,WAFJ,EAGIC,gBAHJ,EAIIC,YAJJ,EAKIC,mBALJ,QAMO,+BANP;AAOA,SAASC,SAAT,EAAoBC,OAApB,QAAmC,wBAAnC;AACA,OAAOC,MAAP;AAEA,SAASC,IAAT,QAAqB,cAArB;AACA,SAASC,iBAAT;AAEA,IAAMC,KAAK,GAAGX,SAAS,CAAC,yBAAD,EAA4BY,MAA5B,CAAvB;AACAD,KAAK,CAACE,YAAN,CAAmBP,SAAnB;AAEA,IAAMQ,OAAO,GAAG,CACZ;AAAEC,EAAAA,IAAI,EAAE,QAAR;AAAkBC,EAAAA,EAAE,EAAE;AAAtB,CADY,EAEZ;AAAED,EAAAA,IAAI,EAAE,SAAR;AAAmBC,EAAAA,EAAE,EAAE;AAAvB,CAFY,EAGZ;AAAED,EAAAA,IAAI,EAAE,OAAR;AAAiBC,EAAAA,EAAE,EAAE;AAArB,CAHY,EAIZ;AAAED,EAAAA,IAAI,EAAE,OAAR;AAAiBC,EAAAA,EAAE,EAAE;AAArB,CAJY,EAKZ;AAAED,EAAAA,IAAI,EAAE,IAAR;AAAcC,EAAAA,EAAE,EAAE;AAAlB,CALY,EAMZ;AAAED,EAAAA,IAAI,EAAE,IAAR;AAAcC,EAAAA,EAAE,EAAE;AAAlB,CANY,EAOZ;AAAED,EAAAA,IAAI,EAAE,QAAR;AAAkBC,EAAAA,EAAE,EAAE;AAAtB,CAPY,EAQZ;AAAED,EAAAA,IAAI,EAAE,SAAR;AAAmBC,EAAAA,EAAE,EAAE;AAAvB,CARY,EASZ;AAAED,EAAAA,IAAI,EAAE,gBAAR;AAA0BC,EAAAA,EAAE,EAAE;AAA9B,CATY,CAAhB;AAYAL,KAAK,CAACM,GAAN,CACI,mBADJ,EAEI,YAAM;AACF,MAAMC,QAAQ,GAAGX,OAAO,CAAC,UAAD,EAAa,KAAb,CAAxB;AAEA,sBACI,oBAAC,KAAD,qBACI,oBAAC,WAAD,QAAcC,MAAd,CADJ,eAEI,oBAAC,YAAD,qBACI,oBAAC,mBAAD;AAAqB,IAAA,KAAK,EAAE;AAA5B,kBACI,oBAAC,IAAD;AACI,IAAA,IAAI,EAAE;AACFW,MAAAA,OAAO,EAAE,CACL;AAAEH,QAAAA,EAAE,EAAE,IAAN;AAAYD,QAAAA,IAAI,EAAE;AAAlB,OADK,EAEL;AAAEC,QAAAA,EAAE,EAAE,OAAN;AAAeD,QAAAA,IAAI,EAAE;AAArB,OAFK;AADP;AADV,KAQK;AAAA,QAAGK,IAAH,QAAGA,IAAH;AAAA,wBACG,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC;AAAX,oBACI,oBAAC,iBAAD;AACI,MAAA,OAAO,EAAEN,OADb;AAEI,MAAA,KAAK,EAAC,SAFV;AAGI,MAAA,QAAQ,EAAEI,QAHd;AAII,MAAA,WAAW,EAAC;AAJhB,MADJ,CADH;AAAA,GARL,CADJ,CADJ,eAsBI,oBAAC,gBAAD,qQAM+BG,IAAI,CAACC,SAAL,CAAeR,OAAf,CAN/B,6HAQgCI,QARhC,sQAtBJ,CAFJ,eA0CI,oBAAC,YAAD,qBACI,oBAAC,mBAAD;AAAqB,IAAA,KAAK,EAAE;AAA5B,kBACI,oBAAC,IAAD;AAAM,IAAA,IAAI,EAAE;AAAEC,MAAAA,OAAO,EAAE,CAAC,OAAD,EAAU,QAAV;AAAX;AAAZ,KACK;AAAA,QAAGC,IAAH,SAAGA,IAAH;AAAA,wBACG,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC;AAAX,oBACI,oBAAC,iBAAD;AACI,MAAA,eAAe,MADnB;AAEI,MAAA,OAAO,EAAEN,OAAO,CAACS,GAAR,CAAY,UAAAC,IAAI;AAAA,eAAIA,IAAI,CAACT,IAAT;AAAA,OAAhB,CAFb;AAGI,MAAA,KAAK,EAAC,SAHV;AAII,MAAA,QAAQ,EAAEG,QAJd;AAKI,MAAA,WAAW,EAAC;AALhB,MADJ,CADH;AAAA,GADL,CADJ,CADJ,eAgBI,oBAAC,gBAAD,8TAO+BG,IAAI,CAACC,SAAL,CAAeR,OAAf,CAP/B,6HASgCI,QAThC,sQAhBJ,CA1CJ,eA6EI,oBAAC,YAAD,qBACI,oBAAC,mBAAD;AAAqB,IAAA,KAAK,EAAE;AAA5B,kBACI,oBAAC,IAAD;AACI,IAAA,IAAI,EAAE;AACFC,MAAAA,OAAO,EAAE,CACL;AAAEH,QAAAA,EAAE,EAAE,gBAAN;AAAwBD,QAAAA,IAAI,EAAE;AAA9B,OADK,EAEL;AAAEC,QAAAA,EAAE,EAAE,SAAN;AAAiBD,QAAAA,IAAI,EAAE;AAAvB,OAFK,EAGL;AAAEC,QAAAA,EAAE,EAAE,QAAN;AAAgBD,QAAAA,IAAI,EAAE;AAAtB,OAHK;AADP;AADV,KASK;AAAA,QAAGK,IAAH,SAAGA,IAAH;AAAA,wBACG,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC;AAAX,oBACI,oBAAC,iBAAD;AACI,MAAA,cAAc,MADlB;AAEI,MAAA,OAAO,EAAEN,OAFb;AAGI,MAAA,KAAK,EAAC,SAHV;AAII,MAAA,QAAQ,EAAEI,QAJd;AAKI,MAAA,WAAW,EAAC;AALhB,MADJ,CADH;AAAA,GATL,CADJ,CADJ,eAwBI,oBAAC,gBAAD,+WAO2BG,IAAI,CAACC,SAAL,CAAeR,OAAf,CAP3B,wVAxBJ,CA7EJ,eAwHI,oBAAC,YAAD,qBACI,oBAAC,mBAAD;AAAqB,IAAA,KAAK,EAAE;AAA5B,kBACI,oBAAC,IAAD;AACI,IAAA,IAAI,EAAE;AACFK,MAAAA,OAAO,EAAE,CAAC,iBAAD,EAAoB,SAApB,EAA+B,QAA/B;AADP;AADV,KAKK;AAAA,QAAGC,IAAH,SAAGA,IAAH;AAAA,wBACG,oBAAC,IAAD;AAAM,MAAA,IAAI,EAAC;AAAX,oBACI,oBAAC,iBAAD;AACI,MAAA,eAAe,MADnB;AAEI,MAAA,cAAc,MAFlB;AAGI,MAAA,OAAO,EAAEN,OAAO,CAACS,GAAR,CAAY,UAAAC,IAAI;AAAA,eAAIA,IAAI,CAACT,IAAT;AAAA,OAAhB,CAHb;AAII,MAAA,KAAK,EAAC,SAJV;AAKI,MAAA,QAAQ,EAAEG,QALd;AAMI,MAAA,WAAW,EAAC;AANhB,MADJ,CADH;AAAA,GALL,CADJ,CADJ,eAqBI,oBAAC,gBAAD,w2BArBJ,CAxHJ,CADJ;AAuKH,CA5KL,EA6KI;AAAEO,EAAAA,IAAI,EAAE;AAAEC,IAAAA,UAAU,EAAE,CAAChB,iBAAD;AAAd;AAAR,CA7KJ","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"]}
|
|
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
|
@@ -1,2 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
var _AutoComplete = require("./AutoComplete");
|
|
8
|
+
|
|
9
|
+
Object.keys(_AutoComplete).forEach(function (key) {
|
|
10
|
+
if (key === "default" || key === "__esModule") return;
|
|
11
|
+
if (key in exports && exports[key] === _AutoComplete[key]) return;
|
|
12
|
+
Object.defineProperty(exports, key, {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _AutoComplete[key];
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
var _MultiAutoComplete = require("./MultiAutoComplete");
|
|
21
|
+
|
|
22
|
+
Object.keys(_MultiAutoComplete).forEach(function (key) {
|
|
23
|
+
if (key === "default" || key === "__esModule") return;
|
|
24
|
+
if (key in exports && exports[key] === _MultiAutoComplete[key]) return;
|
|
25
|
+
Object.defineProperty(exports, key, {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _MultiAutoComplete[key];
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.suggestionList = exports.autoCompleteStyle = void 0;
|
|
7
|
+
|
|
8
|
+
var _emotion = require("emotion");
|
|
9
|
+
|
|
10
|
+
var autoCompleteStyle = /*#__PURE__*/(0, _emotion.css)({
|
|
3
11
|
position: "relative",
|
|
4
12
|
".mdc-elevation--z1": {
|
|
5
13
|
position: "absolute",
|
|
@@ -23,7 +31,8 @@ export var autoCompleteStyle = /*#__PURE__*/css({
|
|
|
23
31
|
}
|
|
24
32
|
}
|
|
25
33
|
}, "label:autoCompleteStyle;");
|
|
26
|
-
|
|
34
|
+
exports.autoCompleteStyle = autoCompleteStyle;
|
|
35
|
+
var suggestionList = /*#__PURE__*/(0, _emotion.css)({
|
|
27
36
|
fontWeight: "normal",
|
|
28
37
|
backgroundColor: "var(--mdc-theme-surface)",
|
|
29
38
|
transition: "background-color 0.2s",
|
|
@@ -34,4 +43,5 @@ export var suggestionList = /*#__PURE__*/css({
|
|
|
34
43
|
"&.highlighted": {
|
|
35
44
|
backgroundColor: "var(--mdc-theme-on-background)"
|
|
36
45
|
}
|
|
37
|
-
}, "label:suggestionList;");
|
|
46
|
+
}, "label:suggestionList;");
|
|
47
|
+
exports.suggestionList = suggestionList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,YAAA,EAAI;EACjCC,QAAQ,EAAE,UADuB;EAEjC,sBAAsB;IAClBA,QAAQ,EAAE,UADQ;IAElBC,KAAK,EAAE,kBAFW;IAGlBC,IAAI,EAAE,CAHY;IAIlBC,GAAG,EAAE,EAJa;IAKlBC,MAAM,EAAE,EALU;IAMlBC,SAAS,EAAE,GANO;IAOlBC,SAAS,EAAE,QAPO;IAQlBC,eAAe,EAAE;EARC,CAFW;EAYjCC,EAAE,EAAE;IACAC,SAAS,EAAE,MADX;IAEAR,KAAK,EAAE,MAFP;IAGAS,OAAO,EAAE,CAHT;IAIAC,EAAE,EAAE;MACAD,OAAO,EAAE,EADT;MAEAE,IAAI,EAAE;QACFC,KAAK,EAAE;MADL;IAFN;EAJJ;AAZ6B,CAAJ,6BAA1B;;AAyBA,IAAMC,cAAc,gBAAG,IAAAf,YAAA,EAAI;EAC9BgB,UAAU,EAAE,QADkB;EAE9BR,eAAe,EAAE,0BAFa;EAG9BS,UAAU,EAAE,uBAHkB;EAI9BH,KAAK,EAAE,6CAJuB;EAK9B,cAAc;IACVE,UAAU,EAAE;EADF,CALgB;EAQ9B,iBAAiB;IACbR,eAAe,EAAE;EADJ;AARa,CAAJ,0BAAvB"}
|
package/AutoComplete/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import React from \"react\";\nimport { FormComponentProps } from \"~/types\";\n\nexport interface AutoCompleteBaseProps extends FormComponentProps {\n /**\n * Component label.\n */\n label?: string;\n\n /**\n * Is component disabled?\n */\n disabled?: boolean;\n\n /**\n * Is component read-only?\n */\n readOnly?: boolean;\n\n /**\n * Options that will be shown.\n */\n options: Array<any>;\n\n /**\n * Description beneath the autoComplete.\n */\n description?: React.ReactNode;\n\n /**\n * Placeholder text for the form control. Set to a blank string to create a non-floating placeholder label.\n */\n placeholder?: string;\n\n /**\n * A className for the root element.\n */\n className?: string;\n\n /**\n * Default structure of value, an object consisting of \"id\" and \"name\" keys. Different keys can be set using \"valueProp\" and \"textProp\" props.\n */\n value?: { id: string; name: string };\n\n /**\n * Key in a single option object that will be used as option's value (by default, \"id\" key will be used).\n */\n valueProp: string;\n\n /**\n * Key in a single option object that will be used as option's text (by default, \"name\" key will be used).\n */\n textProp: string;\n\n /**\n * Callback that gets executed on change of input value.\n */\n onInput?: Function;\n\n /**\n * Callback that gets executed when the input is focused.\n */\n onFocus?: Function;\n\n /**\n * Set if you are saving plain strings as values.\n */\n useSimpleValues?: boolean;\n\n /**\n * Renders a single suggestion item.\n */\n renderItem: Function;\n}\n"],"mappings":""}
|
package/AutoComplete/utils.js
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getOptionValue = exports.getOptionText = exports.findInAliases = void 0;
|
|
7
|
+
|
|
8
|
+
var getOptionValue = function getOptionValue(option, props) {
|
|
2
9
|
if (option) {
|
|
3
10
|
return props.useSimpleValues ? option : option[props.valueProp];
|
|
4
11
|
}
|
|
5
12
|
|
|
6
13
|
return option;
|
|
7
14
|
};
|
|
8
|
-
|
|
15
|
+
|
|
16
|
+
exports.getOptionValue = getOptionValue;
|
|
17
|
+
|
|
18
|
+
var getOptionText = function getOptionText(option, props) {
|
|
9
19
|
if (option) {
|
|
10
20
|
return props.useSimpleValues ? option : option[props.textProp];
|
|
11
21
|
}
|
|
12
22
|
|
|
13
23
|
return option;
|
|
14
24
|
};
|
|
15
|
-
|
|
25
|
+
|
|
26
|
+
exports.getOptionText = getOptionText;
|
|
27
|
+
|
|
28
|
+
var findInAliases = function findInAliases(option, search) {
|
|
16
29
|
return (option.aliases || []).some(function (alias) {
|
|
17
30
|
return alias.toLowerCase().includes((search || "").toLowerCase());
|
|
18
31
|
});
|
|
19
|
-
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
exports.findInAliases = findInAliases;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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,cAAiB,CAACC,MAAD,EAA0BC,KAA1B,EAAmD;EAC7E,IAAID,MAAJ,EAAY;IACR,OAAOC,KAAK,CAACC,eAAN,GACAF,MADA,GAEAA,MAAD,CAAmBC,KAAK,CAACE,SAAzB,CAFN;EAGH;;EAED,OAAOH,MAAP;AACH,CARM;;;;AAUA,IAAMI,aAAa,GAAG,SAAhBA,aAAgB,CAACJ,MAAD,EAA0BC,KAA1B,EAAmD;EAC5E,IAAID,MAAJ,EAAY;IACR,OAAOC,KAAK,CAACC,eAAN,GACAF,MADA,GAEAA,MAAD,CAAmBC,KAAK,CAACI,QAAzB,CAFN;EAGH;;EAED,OAAOL,MAAP;AACH,CARM;;;;AAUA,IAAMM,aAAa,GAAG,SAAhBA,aAAgB,CAACN,MAAD,EAAiBO,MAAjB,EAA8C;EACvE,OAAO,CAACP,MAAM,CAACQ,OAAP,IAAkB,EAAnB,EAAuBC,IAAvB,CAA4B,UAACC,KAAD,EAA4B;IAC3D,OAAOA,KAAK,CAACC,WAAN,GAAoBC,QAApB,CAA6B,CAACL,MAAM,IAAI,EAAX,EAAeI,WAAf,EAA7B,CAAP;EACH,CAFM,CAAP;AAGH,CAJM"}
|