@webiny/ui 5.25.0-beta.0 → 5.25.0-beta.3

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["AutoComplete.tsx"],"names":["React","Downshift","Input","classNames","Elevation","Typography","keycode","autoCompleteStyle","suggestionList","getOptionValue","getOptionText","findInAliases","MaterialSpinner","css","menuStyles","top","bottom","listStyles","listStyle","paddingLeft","margin","Placement","Spinner","OptionsList","placement","getMenuProps","children","AutoComplete","inputValue","createRef","previousProps","props","value","options","previousValue","item","find","option","downshift","current","selectItem","isOpen","highlightedIndex","selectedItem","getItemProps","state","length","renderItem","filtered","filter","aliases","toLowerCase","includes","noResultFound","map","index","itemValue","itemClassNames","selected","className","call","onChange","onInput","validation","isValid","message","otherInputProps","downshiftProps","itemToString","defaultSelectedItem","selection","setState","getInputProps","openMenu","rest","trailingIcon","loading","rawOnChange","ev","onBlur","onFocus","onKeyDown","keyCode","setTimeout","onKeyUp","target","currentTarget","disabled","readOnly","renderOptions","Component","valueProp","textProp"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport Downshift, { ControllerStateAndHelpers, PropGetters } from \"downshift\";\nimport { Input } from \"~/Input\";\nimport classNames from \"classnames\";\nimport { Elevation } from \"~/Elevation\";\nimport { Typography } from \"~/Typography\";\nimport keycode from \"keycode\";\nimport { autoCompleteStyle, suggestionList } from \"./styles\";\nimport { AutoCompleteBaseProps } from \"./types\";\nimport { getOptionValue, getOptionText, findInAliases } from \"./utils\";\nimport { isEqual } from \"lodash\";\nimport MaterialSpinner from \"react-spinner-material\";\nimport { css } from \"emotion\";\n\nconst menuStyles = css({\n top: \"unset !important\",\n bottom: 75\n});\n\nconst listStyles = css({\n \"&.autocomplete__options-list\": {\n listStyle: \"none\",\n paddingLeft: 0,\n \"& li\": {\n margin: 0\n }\n }\n});\n\nexport enum Placement {\n top = \"top\",\n bottom = \"bottom\"\n}\n\nexport interface AutoCompleteProps extends Omit<AutoCompleteBaseProps, \"onChange\"> {\n /* Placement position of dropdown menu, can be either `top` or `bottom`. */\n placement?: Placement;\n\n /* A callback that is executed each time a value is changed. */\n onChange?: (value: any, selection?: any) => void;\n\n /* If true, will show a loading spinner on the right side of the input. */\n loading?: boolean;\n\n /* A component that renders supporting UI in case of no result found. */\n noResultFound?: React.ReactNode;\n}\n\ninterface State {\n inputValue: 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 placement?: Placement;\n}\n\ninterface OptionsListProps {\n placement?: Placement;\n getMenuProps: PropGetters<Record<string, any>>[\"getMenuProps\"];\n}\n\nconst OptionsList: React.FC<OptionsListProps> = ({ placement, getMenuProps, children }) => {\n return (\n <Elevation\n z={1}\n className={classNames({\n [menuStyles]: placement === Placement.top\n })}\n >\n <ul\n className={classNames(\"autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {children}\n </ul>\n </Elevation>\n );\n};\n\nclass AutoComplete extends React.Component<AutoCompleteProps, State> {\n static defaultProps: Partial<AutoCompleteProps> = {\n valueProp: \"id\",\n textProp: \"name\",\n options: [],\n placement: Placement.bottom,\n /**\n * We cast this as AutoComplete because renderItem() is executed via .call() where AutoComplete instance is assigned as this.\n */\n renderItem(item: any) {\n return (\n <Typography use={\"body2\"}>\n {getOptionText(item, (this as unknown as AutoComplete).props)}\n </Typography>\n );\n }\n };\n\n public override state: State = {\n inputValue: \"\"\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n downshift: any = React.createRef();\n\n public override componentDidUpdate(previousProps: AutoCompleteProps) {\n const { value, options } = this.props;\n const { value: previousValue } = previousProps;\n\n if (!isEqual(value, previousValue)) {\n let item = null;\n\n if (value) {\n if (typeof value === \"object\") {\n item = value;\n } else {\n item =\n options.find(option => {\n return value === getOptionValue(option, this.props);\n }) || null;\n }\n }\n\n const { current: downshift } = this.downshift;\n downshift && downshift.selectItem(item);\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({\n options,\n isOpen,\n highlightedIndex,\n selectedItem,\n getMenuProps,\n getItemProps,\n placement\n }: RenderOptionsParams) {\n if (!isOpen) {\n return null;\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 placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>Start typing to find entry</Typography>\n </li>\n </OptionsList>\n );\n }\n\n const { renderItem } = this.props;\n\n const filtered = options.filter(item => {\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 if (!filtered.length) {\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>No results.</Typography>\n {this.props.noResultFound}\n </li>\n </OptionsList>\n );\n }\n\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n {filtered.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 // Add \"selected\" class if the item is selected.\n if (selectedItem && getOptionValue(selectedItem, this.props) === itemValue) {\n itemClassNames.selected = true;\n }\n\n // Render the item.\n return (\n <li\n key={itemValue}\n {...getItemProps({\n index,\n item,\n className: classNames(itemClassNames)\n })}\n >\n {renderItem.call(this, item, index)}\n </li>\n );\n })}\n </OptionsList>\n );\n }\n\n public override render() {\n const {\n className,\n options,\n onChange,\n value,\n // valueProp,\n // textProp,\n onInput,\n validation = { isValid: null, message: null },\n placement,\n ...otherInputProps\n } = this.props;\n\n // Downshift related props.\n const downshiftProps = {\n className: autoCompleteStyle,\n itemToString: (item: any) => getOptionText(item, this.props),\n defaultSelectedItem: value,\n onChange: (selection: string) => {\n if (!selection || !onChange) {\n return;\n }\n onChange(getOptionValue(selection, this.props), selection);\n this.setState(state => ({\n ...state,\n inputValue: \"\"\n }));\n }\n };\n\n return (\n <div className={classNames(autoCompleteStyle, className)}>\n <Downshift {...downshiftProps} ref={this.downshift}>\n {({ getInputProps, openMenu, ...rest }) => (\n <div>\n <Input\n {...getInputProps({\n // This prop is above `otherInputProps` since it can be overridden by the user.\n trailingIcon: this.props.loading && <Spinner />,\n ...otherInputProps,\n // @ts-ignore\n validation,\n rawOnChange: true,\n onChange: ev => ev,\n onBlur: ev => ev,\n onFocus: ev => {\n openMenu();\n otherInputProps.onFocus && otherInputProps.onFocus(ev);\n },\n onKeyDown: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n if (keyCode === \"backspace\") {\n if (onChange) {\n onChange(null);\n }\n setTimeout(() => openMenu(), 50);\n }\n },\n onKeyUp: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n const target = ev.currentTarget;\n const inputValue = target.value || \"\";\n\n // If user pressed 'esc', 'enter' or similar...\n if (\n keyCode &&\n keyCode.length > 1 &&\n keyCode !== \"backspace\"\n ) {\n return;\n }\n\n // If values are the same, exit, do not update current search term.\n if (inputValue === this.state.inputValue) {\n return;\n }\n\n this.setState(\n state => ({\n ...state,\n inputValue\n }),\n () => {\n onInput && onInput(inputValue);\n }\n );\n }\n })}\n />\n {!otherInputProps.disabled &&\n !otherInputProps.readOnly &&\n this.renderOptions({\n ...rest,\n options,\n placement\n })}\n </div>\n )}\n </Downshift>\n </div>\n );\n }\n}\n\nexport { AutoComplete };\n"]}
1
+ {"version":3,"sources":["AutoComplete.tsx"],"names":["React","Downshift","Input","classNames","Elevation","Typography","keycode","autoCompleteStyle","suggestionList","getOptionValue","getOptionText","findInAliases","MaterialSpinner","css","menuStyles","top","bottom","listStyles","listStyle","paddingLeft","margin","Placement","Spinner","OptionsList","placement","getMenuProps","children","AutoComplete","inputValue","createRef","previousProps","props","value","options","previousValue","item","find","option","downshift","current","selectItem","isOpen","highlightedIndex","selectedItem","getItemProps","state","length","renderItem","filtered","filter","aliases","toLowerCase","includes","noResultFound","map","index","itemValue","itemClassNames","selected","className","call","onChange","onInput","validation","isValid","message","otherInputProps","downshiftProps","itemToString","defaultSelectedItem","selection","setState","getInputProps","openMenu","rest","trailingIcon","loading","rawOnChange","ev","onBlur","onFocus","onKeyDown","keyCode","setTimeout","onKeyUp","target","currentTarget","disabled","readOnly","renderOptions","Component","valueProp","textProp"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport Downshift, { ControllerStateAndHelpers, PropGetters } from \"downshift\";\nimport { Input } from \"~/Input\";\nimport classNames from \"classnames\";\nimport { Elevation } from \"~/Elevation\";\nimport { Typography } from \"~/Typography\";\nimport keycode from \"keycode\";\nimport { autoCompleteStyle, suggestionList } from \"./styles\";\nimport { AutoCompleteBaseProps } from \"./types\";\nimport { getOptionValue, getOptionText, findInAliases } from \"./utils\";\nimport { isEqual } from \"lodash\";\nimport MaterialSpinner from \"react-spinner-material\";\nimport { css } from \"emotion\";\n\nconst menuStyles = css({\n top: \"unset !important\",\n bottom: 75\n});\n\nconst listStyles = css({\n \"&.autocomplete__options-list\": {\n listStyle: \"none\",\n paddingLeft: 0,\n \"& li\": {\n margin: 0\n }\n }\n});\n\nexport enum Placement {\n top = \"top\",\n bottom = \"bottom\"\n}\n\nexport interface AutoCompleteProps extends Omit<AutoCompleteBaseProps, \"onChange\"> {\n /* Placement position of dropdown menu, can be either `top` or `bottom`. */\n placement?: Placement;\n\n /* A callback that is executed each time a value is changed. */\n onChange?: (value: any, selection?: any) => void;\n\n /* If true, will show a loading spinner on the right side of the input. */\n loading?: boolean;\n\n /* A component that renders supporting UI in case of no result found. */\n noResultFound?: React.ReactNode;\n}\n\ninterface State {\n inputValue: 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 placement?: Placement;\n}\n\ninterface OptionsListProps {\n placement?: Placement;\n getMenuProps: PropGetters<Record<string, any>>[\"getMenuProps\"];\n}\n\nconst OptionsList: React.FC<OptionsListProps> = ({ placement, getMenuProps, children }) => {\n return (\n <Elevation\n z={1}\n className={classNames({\n [menuStyles]: placement === Placement.top\n })}\n >\n <ul\n className={classNames(\"autocomplete__options-list\", listStyles)}\n {...getMenuProps()}\n >\n {children}\n </ul>\n </Elevation>\n );\n};\n\nclass AutoComplete extends React.Component<AutoCompleteProps, State> {\n static defaultProps: Partial<AutoCompleteProps> = {\n valueProp: \"id\",\n textProp: \"name\",\n options: [],\n placement: Placement.bottom,\n /**\n * We cast this as AutoComplete because renderItem() is executed via .call() where AutoComplete instance is assigned as this.\n */\n renderItem(item: any) {\n return (\n <Typography use={\"body2\"}>\n {getOptionText(item, (this as unknown as AutoComplete).props)}\n </Typography>\n );\n }\n };\n\n public override state: State = {\n inputValue: \"\"\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n downshift: any = React.createRef();\n\n public override componentDidUpdate(previousProps: AutoCompleteProps) {\n const { value, options } = this.props;\n const { value: previousValue } = previousProps;\n\n if (!isEqual(value, previousValue)) {\n let item = null;\n\n if (value) {\n if (typeof value === \"object\") {\n item = value;\n } else {\n item =\n options.find(option => {\n return value === getOptionValue(option, this.props);\n }) || null;\n }\n }\n\n const { current: downshift } = this.downshift;\n downshift && downshift.selectItem(item);\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({\n options,\n isOpen,\n highlightedIndex,\n selectedItem,\n getMenuProps,\n getItemProps,\n placement\n }: RenderOptionsParams) {\n if (!isOpen) {\n return null;\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 placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>Start typing to find entry</Typography>\n </li>\n </OptionsList>\n );\n }\n\n const { renderItem } = this.props;\n\n const filtered = options.filter(item => {\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 if (!filtered.length) {\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n <li>\n <Typography use={\"body2\"}>No results.</Typography>\n {this.props.noResultFound}\n </li>\n </OptionsList>\n );\n }\n\n return (\n <OptionsList placement={placement} getMenuProps={getMenuProps}>\n {filtered.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 // Add \"selected\" class if the item is selected.\n if (selectedItem && getOptionValue(selectedItem, this.props) === itemValue) {\n itemClassNames.selected = true;\n }\n\n // Render the item.\n return (\n <li\n key={itemValue}\n {...getItemProps({\n index,\n item,\n className: classNames(itemClassNames)\n })}\n >\n {renderItem.call(this, item, index)}\n </li>\n );\n })}\n </OptionsList>\n );\n }\n\n public override render() {\n const {\n className,\n options,\n onChange,\n value,\n // valueProp,\n // textProp,\n onInput,\n validation = {\n isValid: null,\n message: null\n },\n placement,\n ...otherInputProps\n } = this.props;\n\n // Downshift related props.\n const downshiftProps = {\n className: autoCompleteStyle,\n itemToString: (item: any) => getOptionText(item, this.props),\n defaultSelectedItem: value,\n onChange: (selection: string) => {\n if (!selection || !onChange) {\n return;\n }\n onChange(getOptionValue(selection, this.props), selection);\n this.setState(state => ({\n ...state,\n inputValue: \"\"\n }));\n }\n };\n\n return (\n <div className={classNames(autoCompleteStyle, className)}>\n <Downshift {...downshiftProps} ref={this.downshift}>\n {({ getInputProps, openMenu, ...rest }) => (\n <div>\n <Input\n {...getInputProps({\n // This prop is above `otherInputProps` since it can be overridden by the user.\n trailingIcon: this.props.loading && <Spinner />,\n ...otherInputProps,\n // @ts-ignore\n validation,\n rawOnChange: true,\n onChange: ev => ev,\n onBlur: ev => ev,\n onFocus: ev => {\n openMenu();\n otherInputProps.onFocus && otherInputProps.onFocus(ev);\n },\n onKeyDown: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n if (keyCode === \"backspace\") {\n if (onChange) {\n onChange(null);\n }\n setTimeout(() => openMenu(), 50);\n }\n },\n onKeyUp: (ev: React.KeyboardEvent<HTMLInputElement>) => {\n const keyCode: string = keycode(ev as unknown as Event);\n\n const target = ev.currentTarget;\n const inputValue = target.value || \"\";\n\n // If user pressed 'esc', 'enter' or similar...\n if (\n keyCode &&\n keyCode.length > 1 &&\n keyCode !== \"backspace\"\n ) {\n return;\n }\n\n // If values are the same, exit, do not update current search term.\n if (inputValue === this.state.inputValue) {\n return;\n }\n\n this.setState(\n state => ({\n ...state,\n inputValue\n }),\n () => {\n onInput && onInput(inputValue);\n }\n );\n }\n })}\n />\n {!otherInputProps.disabled &&\n !otherInputProps.readOnly &&\n this.renderOptions({\n ...rest,\n options,\n placement\n })}\n </div>\n )}\n </Downshift>\n </div>\n );\n }\n}\n\nexport { AutoComplete };\n"]}
@@ -25,22 +25,26 @@ export interface MultiAutoCompleteProps extends Omit<AutoCompleteBaseProps, "val
25
25
  * Render list item when `useMultipleSelectionList` is used.
26
26
  */
27
27
  renderListItemLabel?: Function;
28
+ /**
29
+ * Render in meta wrapper
30
+ */
31
+ renderListItemOptions?: (item: any) => React.ReactNode | null;
28
32
  noResultFound?: React.ReactNode;
29
33
  /**
30
34
  * Value is an array of strings. But can be undefined.
31
35
  */
32
36
  value?: MultiAutoCompletePropsValue;
33
37
  }
34
- declare type State = {
38
+ interface MultiAutoCompleteState {
35
39
  inputValue: string;
36
40
  multipleSelectionPage: number;
37
41
  multipleSelectionSearch: string;
38
42
  reorderFormVisible: string;
39
43
  reorderFormValue: string;
40
- };
41
- export declare class MultiAutoComplete extends React.Component<MultiAutoCompleteProps, State> {
44
+ }
45
+ export declare class MultiAutoComplete extends React.Component<MultiAutoCompleteProps, MultiAutoCompleteState> {
42
46
  static defaultProps: Partial<MultiAutoCompleteProps>;
43
- state: State;
47
+ state: MultiAutoCompleteState;
44
48
  /**
45
49
  * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.
46
50
  */
@@ -30,6 +30,12 @@ import { ReactComponent as NextAllIcon } from "./icons/skip_next-24px.svg";
30
30
  import { ReactComponent as DeleteIcon } from "./icons/baseline-close-24px.svg";
31
31
  import { ReactComponent as ReorderIcon } from "./icons/reorder_black_24dp.svg";
32
32
  import { css } from "emotion";
33
+ var listItemMetaClassName = /*#__PURE__*/css({
34
+ display: "table"
35
+ }, "label:listItemMetaClassName;");
36
+ var iconButtonClassName = /*#__PURE__*/css({
37
+ display: "table-cell !important"
38
+ }, "label:iconButtonClassName;");
33
39
  import { ListItemGraphic } from "../List";
34
40
  var style = {
35
41
  pagination: {
@@ -69,14 +75,14 @@ var listStyles = /*#__PURE__*/css({
69
75
  }
70
76
  }, "label:listStyles;");
71
77
 
72
- function Spinner() {
78
+ var Spinner = function Spinner() {
73
79
  return /*#__PURE__*/React.createElement(MaterialSpinner, {
74
80
  size: 24,
75
81
  spinnerColor: "#fa5723",
76
82
  spinnerWidth: 2,
77
83
  visible: true
78
84
  });
79
- }
85
+ };
80
86
 
81
87
  var DEFAULT_PER_PAGE = 10;
82
88
 
@@ -315,7 +321,8 @@ export var MultiAutoComplete = /*#__PURE__*/function (_React$Component) {
315
321
  disabled = _this$props2.disabled,
316
322
  useMultipleSelectionList = _this$props2.useMultipleSelectionList,
317
323
  description = _this$props2.description,
318
- renderListItemLabel = _this$props2.renderListItemLabel;
324
+ renderListItemLabel = _this$props2.renderListItemLabel,
325
+ renderListItemOptions = _this$props2.renderListItemOptions;
319
326
 
320
327
  if (useMultipleSelectionList) {
321
328
  var _paginateMultipleSele = paginateMultipleSelection(value, DEFAULT_PER_PAGE, this.state.multipleSelectionPage, this.state.multipleSelectionSearch),
@@ -427,12 +434,17 @@ export var MultiAutoComplete = /*#__PURE__*/function (_React$Component) {
427
434
  marginRight: 8,
428
435
  minWidth: 32
429
436
  }
430
- }, item.index + 1, "."), " ", renderListItemLabel.call(_this4, item), /*#__PURE__*/React.createElement(ListItemMeta, null, /*#__PURE__*/React.createElement(IconButton, {
437
+ }, item.index + 1, "."), " ", renderListItemLabel && renderListItemLabel.call(_this4, item), /*#__PURE__*/React.createElement(ListItemMeta, {
438
+ className: listItemMetaClassName
439
+ }, renderListItemOptions && renderListItemOptions.call(_this4, item), /*#__PURE__*/React.createElement(IconButton, {
431
440
  icon: /*#__PURE__*/React.createElement(DeleteIcon, null),
441
+ className: iconButtonClassName,
432
442
  onClick: function onClick() {
433
- if (onChange) {
434
- onChange([].concat(_toConsumableArray(value.slice(0, item.index)), _toConsumableArray(value.slice(item.index + 1))));
443
+ if (!onChange) {
444
+ return;
435
445
  }
446
+
447
+ onChange([].concat(_toConsumableArray(value.slice(0, item.index)), _toConsumableArray(value.slice(item.index + 1))));
436
448
  }
437
449
  })));
438
450
  }) : /*#__PURE__*/React.createElement(ListItem, null, /*#__PURE__*/React.createElement("span", {
@@ -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","style","pagination","bar","display","justifyContent","alignItems","borderBottom","padding","pages","searchInput","height","list","secondaryText","color","listStyles","listStyle","paddingLeft","margin","Spinner","DEFAULT_PER_PAGE","paginateMultipleSelection","multipleSelection","limit","page","search","data","Array","isArray","map","item","index","filter","name","toLowerCase","includes","lastPage","Math","ceil","length","totalCount","slice","from","to","meta","hasData","hasPrevious","hasNext","OptionsList","getMenuProps","children","MultiAutoComplete","inputValue","multipleSelectionPage","multipleSelectionSearch","reorderFormVisible","reorderFormValue","createRef","set","selection","setState","props","unique","value","allowFreeInput","useSimpleValues","options","filtered","values","find","state","aliases","existingValue","unshift","textProp","params","isOpen","highlightedIndex","getItemProps","noResultFound","renderItem","itemValue","itemClassNames","className","call","onChange","disabled","useMultipleSelectionList","description","renderListItemLabel","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\";\n\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\";\n\nimport { css } from \"emotion\";\nimport { ListItemGraphic } from \"~/List\";\nimport { AutoCompleteProps } from \"~/AutoComplete/AutoComplete\";\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};\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}\ntype MultiAutoCompletePropsValue = SelectionItem[];\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 /* 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\ntype State = {\n inputValue: string;\n multipleSelectionPage: number;\n multipleSelectionSearch: string;\n reorderFormVisible: string;\n reorderFormValue: string;\n};\n\nfunction Spinner() {\n return <MaterialSpinner size={24} spinnerColor={\"#fa5723\"} spinnerWidth={2} visible />;\n}\n\nconst DEFAULT_PER_PAGE = 10;\n\nfunction paginateMultipleSelection(\n multipleSelection: MultiAutoCompletePropsValue,\n limit: number,\n page: number,\n search: string\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(multipleSelection)\n ? multipleSelection.map((item, index) => ({ ...item, index }))\n : [];\n\n if (typeof search === \"string\" && search) {\n data = data.filter(item => {\n return (\n typeof item.name === \"string\" &&\n item.name.toLowerCase().includes(search.toLowerCase())\n );\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\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<MultiAutoCompleteProps, State> {\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: State = {\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 filtered = options.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 const values = value;\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 // 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;\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 /**\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 } = this.props;\n\n if (useMultipleSelectionList) {\n const { data, meta } = paginateMultipleSelection(\n value as SelectionItem[],\n DEFAULT_PER_PAGE,\n this.state.multipleSelectionPage,\n this.state.multipleSelectionSearch\n );\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, 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 as Function).call(this, item)}\n <ListItemMeta>\n <IconButton\n icon={<DeleteIcon />}\n onClick={() => {\n if (onChange) {\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 />\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,"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","listItemMetaClassName","display","iconButtonClassName","ListItemGraphic","style","pagination","bar","justifyContent","alignItems","borderBottom","padding","pages","searchInput","height","list","secondaryText","color","listStyles","listStyle","paddingLeft","margin","Spinner","DEFAULT_PER_PAGE","paginateMultipleSelection","multipleSelection","limit","page","search","data","Array","isArray","map","item","index","filter","name","toLowerCase","includes","lastPage","Math","ceil","length","totalCount","slice","from","to","meta","hasData","hasPrevious","hasNext","OptionsList","getMenuProps","children","MultiAutoComplete","inputValue","multipleSelectionPage","multipleSelectionSearch","reorderFormVisible","reorderFormValue","createRef","set","selection","setState","props","unique","value","allowFreeInput","useSimpleValues","options","filtered","values","find","state","aliases","existingValue","unshift","textProp","params","isOpen","highlightedIndex","getItemProps","noResultFound","renderItem","itemValue","itemClassNames","className","call","onChange","disabled","useMultipleSelectionList","description","renderListItemLabel","renderListItemOptions","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\";\n\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\";\n\nimport { css } from \"emotion\";\n\nconst listItemMetaClassName = css({\n display: \"table\"\n});\nconst iconButtonClassName = css({\n display: \"table-cell !important\"\n});\nimport { ListItemGraphic } from \"~/List\";\nimport { AutoCompleteProps } from \"~/AutoComplete/AutoComplete\";\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};\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}\ntype MultiAutoCompletePropsValue = SelectionItem[];\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\nconst DEFAULT_PER_PAGE = 10;\n\nfunction paginateMultipleSelection(\n multipleSelection: MultiAutoCompletePropsValue,\n limit: number,\n page: number,\n search: string\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(multipleSelection)\n ? multipleSelection.map((item, index) => ({ ...item, index }))\n : [];\n\n if (typeof search === \"string\" && search) {\n data = data.filter(item => {\n return (\n typeof item.name === \"string\" &&\n item.name.toLowerCase().includes(search.toLowerCase())\n );\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\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 filtered = options.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 const values = value;\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 // 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;\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 /**\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 } = paginateMultipleSelection(\n value as SelectionItem[],\n DEFAULT_PER_PAGE,\n this.state.multipleSelectionPage,\n this.state.multipleSelectionSearch\n );\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, 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)}\n <ListItemMeta className={listItemMetaClassName}>\n {renderListItemOptions &&\n renderListItemOptions.call(this, item)}\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,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const AddImageIconWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
3
2
  export declare const AddImageWrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
4
3
  export declare const AddImageWrapperRound: import("@emotion/styled-base").StyledComponent<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & Pick<Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, keyof import("react").HTMLAttributes<HTMLDivElement>> & {
@@ -5,7 +5,7 @@ interface DataListProps {
5
5
  children?: ((props: any) => React.ReactNode) | null;
6
6
  title?: React.ReactNode;
7
7
  data?: Record<string, any>[] | null;
8
- refresh?: () => Promise<void> | null;
8
+ refresh?: (() => void) | null;
9
9
  loading?: boolean;
10
10
  loader?: React.ReactNode;
11
11
  noData?: React.ReactNode;
@@ -1,5 +1,3 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
- import _regeneratorRuntime from "@babel/runtime/regenerator";
3
1
  import React from "react";
4
2
  import styled from "@emotion/styled";
5
3
  import classNames from "classnames";
@@ -294,28 +292,9 @@ DataList.defaultProps = {
294
292
  data: null,
295
293
  meta: null,
296
294
  loading: false,
297
- refresh: function () {
298
- var _refresh = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
299
- return _regeneratorRuntime.wrap(function _callee$(_context) {
300
- while (1) {
301
- switch (_context.prev = _context.next) {
302
- case 0:
303
- return _context.abrupt("return", void 0);
304
-
305
- case 1:
306
- case "end":
307
- return _context.stop();
308
- }
309
- }
310
- }, _callee);
311
- }));
312
-
313
- function refresh() {
314
- return _refresh.apply(this, arguments);
315
- }
316
-
317
- return refresh;
318
- }(),
295
+ refresh: function refresh() {
296
+ return void 0;
297
+ },
319
298
  setPage: null,
320
299
  setPerPage: null,
321
300
  perPageOptions: [10, 25, 50],
@@ -1 +1 @@
1
- {"version":3,"sources":["DataList.tsx"],"names":["React","styled","classNames","Loader","NoData","Typography","css","noop","isEmpty","Checkbox","Menu","MenuItem","Grid","Cell","RefreshIcon","SortIcon","FilterIcon","PreviousPageIcon","NextPageIcon","OptionsIcon","List","DataListModalOverlayProvider","ListContainer","position","height","paddingBottom","paddingTop","borderBottom","padding","minHeight","display","marginRight","width","margin","alignItems","justifyContent","flexDirection","boxSizing","whiteSpace","marginTop","marginBottom","textAlign","listHeader","color","listSubHeader","ListHeaderItem","verticalAlign","opacity","pointerEvents","listTitle","listActions","scrollList","overflow","dataListContent","MultiSelectAll","props","multiSelectActions","isAllMultiSelected","isNoneMultiSelected","multiSelectAll","data","MultiSelectActions","RefreshButton","refresh","Sorters","sorters","map","sorter","label","setSorters","value","Filters","filters","Pagination","pagination","setNextPage","disabled","hasPreviousPage","setPreviousPage","hasNextPage","Array","isArray","perPageOptions","setPerPage","perPage","Search","search","cloneElement","DataList","render","loading","loader","noData","ch","children","showOptions","title","actions","Object","keys","length","justifySelf","modalOverlayAction","modalOverlay","defaultProps","meta","setPage","ScrollList"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport classNames from \"classnames\";\nimport Loader from \"./Loader\";\nimport NoData from \"./NoData\";\nimport { Typography } from \"~/Typography\";\nimport { css } from \"emotion\";\nimport noop from \"lodash/noop\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport { Checkbox } from \"../../Checkbox\";\nimport { Menu, MenuItem } from \"../../Menu\";\nimport { Grid, Cell } from \"../../Grid\";\n\nimport {\n RefreshIcon,\n SortIcon,\n FilterIcon,\n PreviousPageIcon,\n NextPageIcon,\n OptionsIcon\n} from \"./icons\";\nimport { List, ListItem, ListProps } from \"..\";\nimport { DataListModalOverlayProvider } from \"./DataListModalOverlay\";\nimport { PaginationProp, SortersProp } from \"./types\";\n\nconst ListContainer = styled(\"div\")({\n position: \"relative\",\n height: \"100%\",\n \".mdc-list\": {\n paddingBottom: 0,\n paddingTop: 0\n },\n \".mdc-list-item\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 20px 10px 20px\",\n height: \"auto\",\n minHeight: 40,\n \".mdc-list-item__text, .mdc-list-item__secondary-text, .webiny-list-text-overline\": {\n display: \"block\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n },\n \".mdc-list-item__text\": {\n width: \"100%\",\n margin: \"-20px 0\",\n padding: \"20px 0\"\n },\n \".mdc-list-item__meta\": {\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"space-between\",\n flexDirection: \"column\",\n position: \"relative\",\n padding: \"5px 0\",\n boxSizing: \"border-box\",\n height: \"100%\",\n whiteSpace: \"nowrap\",\n marginTop: -10,\n marginBottom: -10,\n \".webiny-list-actions\": {\n display: \"none\"\n },\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n //position: 'absolute',\n width: \"100%\",\n textAlign: \"right\"\n },\n \".webiny-list-top-caption\": {\n marginBottom: 20\n }\n },\n \"&:hover\": {\n \".mdc-list-item__meta\": {\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n display: \"none\"\n },\n \".webiny-list-actions\": {\n display: \"flex\",\n height: \"100%\",\n alignItems: \"center\"\n }\n }\n }\n }\n});\n\nconst listHeader = css({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n width: \"100%\"\n});\n\nconst listSubHeader = css({\n width: \"100%\",\n \"&.mdc-layout-grid\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 24px 10px 12px\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst ListHeaderItem = styled(\"div\")({\n display: \"inline-block\",\n verticalAlign: \"middle\",\n \"&.disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst listTitle = css({\n display: \"flex\",\n alignItems: \"center\"\n});\n\nconst listActions = css({\n textAlign: \"right\"\n});\n\nconst scrollList = css({\n overflow: \"auto\",\n height: \"calc(100vh - 235px)\"\n});\n\nconst dataListContent = css({\n position: \"relative\",\n height: \"100%\",\n overflow: \"auto\"\n});\n\n// This was copied from \"./types\" so that it can be outputted in docs.\ninterface DataListProps {\n // Pass a function to take full control of list render.\n children?: ((props: any) => React.ReactNode) | null;\n\n // A title of paginated list.\n title?: React.ReactNode;\n\n // FormData that needs to be shown in the list.\n data?: Record<string, any>[] | null;\n\n // A callback that must refresh current view by repeating the previous query.\n refresh?: () => Promise<void> | null;\n\n // If true, Loader component will be shown, disallowing any interaction.\n loading?: boolean;\n\n // Provide a custom loader. Shown while the content is loading.\n loader?: React.ReactNode;\n\n // Provide a custom no data component. Shown while there is no data to be shown.\n noData?: React.ReactNode;\n\n // Provide all pagination data, options and callbacks here.\n pagination?: PaginationProp;\n\n // Triggered once a sorter has been selected.\n setSorters?: Function | null;\n\n // Provide all sorters options and callbacks here.\n sorters?: SortersProp | null;\n\n // Provide actions that will be shown in the top right corner (eg. export or import actions).\n actions?: React.ReactNode;\n\n // Provide filters that will be shown in the top left corner (eg. filter by category or status).\n filters?: React.ReactNode;\n\n // Provide actions that can be executed on one or more multi-selected list items (eg. export or delete).\n multiSelectActions?: React.ReactNode;\n\n // Provide callback that will be executed once user selects all list items.\n multiSelectAll?: (value: boolean, data: Record<string, any>[] | null) => void;\n\n // Callback which returns true if all items were selected, otherwise returns false.\n isAllMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n // Callback which returns true if none of the items were selected, otherwise returns false.\n isNoneMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n showOptions?: {\n refresh?: boolean;\n pagination?: boolean;\n filters?: boolean;\n sorters?: boolean;\n [key: string]: any;\n };\n\n // Provide search UI that will be shown in the top left corner.\n search?: React.ReactElement;\n // Provide simple modal UI that will be shown over the list content.\n modalOverlay?: React.ReactElement;\n // Provide an action element that handle toggling the \"Modal overlay\".\n modalOverlayAction?: React.ReactElement;\n\n meta?: Record<string, any> | null;\n\n setPage?: ((page: string) => void) | null;\n\n setPerPage?: ((page: string) => void) | null;\n\n perPageOptions?: number[];\n}\n\nconst MultiSelectAll: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n /**\n * We can safely cast because we have defaults.\n */\n const { isAllMultiSelected, isNoneMultiSelected, multiSelectAll, data } =\n props as Required<DataListProps>;\n\n return (\n <React.Fragment>\n {typeof multiSelectAll === \"function\" && (\n <ListHeaderItem>\n <Checkbox\n indeterminate={!isAllMultiSelected(data) && !isNoneMultiSelected(data)}\n value={isAllMultiSelected(data)}\n onClick={() => {\n multiSelectAll(!isAllMultiSelected(data), data);\n }}\n />\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst MultiSelectActions: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n\n return <ListHeaderItem>{multiSelectActions}</ListHeaderItem>;\n};\n\nconst RefreshButton: React.FC<DataListProps> = props => {\n const refresh = props.refresh;\n if (!refresh) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <RefreshIcon onClick={() => refresh()} />\n </ListHeaderItem>\n );\n};\n\nconst Sorters: React.FC<DataListProps> = props => {\n const sorters = props.sorters;\n if (!sorters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<SortIcon />}>\n {sorters.map(sorter => (\n <MenuItem\n key={sorter.label}\n onClick={() => {\n if (sorters && props.setSorters) {\n props.setSorters(sorter.value);\n }\n }}\n >\n {sorter.label}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n );\n};\n\nconst Filters: React.FC<DataListProps> = props => {\n const filters = props.filters;\n if (!filters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<FilterIcon />}>{filters}</Menu>\n </ListHeaderItem>\n );\n};\n\nconst Pagination: React.FC<DataListProps> = props => {\n const { pagination } = props;\n if (!pagination) {\n return null;\n }\n\n return (\n <React.Fragment>\n {pagination.setNextPage && (\n <React.Fragment>\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasPreviousPage\n })}\n >\n <PreviousPageIcon\n onClick={() => {\n if (pagination.setPreviousPage && pagination.hasPreviousPage) {\n pagination.setPreviousPage();\n }\n }}\n />\n </ListHeaderItem>\n\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasNextPage\n })}\n >\n <NextPageIcon\n onClick={() => {\n if (pagination.setNextPage && pagination.hasNextPage) {\n pagination.setNextPage();\n }\n }}\n />\n </ListHeaderItem>\n </React.Fragment>\n )}\n\n {Array.isArray(pagination.perPageOptions) && pagination.setPerPage && (\n <ListHeaderItem>\n <Menu handle={<OptionsIcon />}>\n {pagination.setPerPage &&\n pagination.perPageOptions.map(perPage => (\n <MenuItem\n key={perPage}\n onClick={() =>\n pagination.setPerPage && pagination.setPerPage(perPage)\n }\n >\n {perPage}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst Search: React.FC<DataListProps> = props => {\n if (!props.search) {\n return null;\n }\n return <Cell span={7}>{React.cloneElement(props.search, props)}</Cell>;\n};\n\nexport const DataList: React.FC<DataListProps> = props => {\n let render = null;\n\n if (props.loading) {\n render = props.loader;\n } else if (isEmpty(props.data)) {\n render = props.noData;\n } else {\n const ch = props.children;\n render = typeof ch === \"function\" ? ch(props) : null;\n }\n\n const showOptions = props.showOptions || {};\n\n return (\n <DataListModalOverlayProvider>\n <ListContainer className={\"webiny-data-list\"} data-testid={\"ui.list.data-list\"}>\n {(props.title || props.actions) && (\n <Grid className={listHeader}>\n <Cell span={5} className={listTitle}>\n <Typography use=\"headline5\">{props.title}</Typography>\n </Cell>\n <Cell span={7} className={listActions}>\n {props.actions}\n </Cell>\n </Grid>\n )}\n\n {Object.keys(showOptions).length > 0 && (\n <Grid className={listSubHeader}>\n <Search {...props} />\n <Cell span={props.search ? 5 : 12} style={{ justifySelf: \"end\" }}>\n <MultiSelectAll {...props} />\n {showOptions.refresh && <RefreshButton {...props} />}\n {showOptions.pagination && <Pagination {...props} />}\n {showOptions.sorters && <Sorters {...props} />}\n {showOptions.filters && <Filters {...props} />}\n {props.modalOverlayAction ? (\n <ListHeaderItem>{props.modalOverlayAction}</ListHeaderItem>\n ) : null}\n <MultiSelectActions {...props} />\n </Cell>\n </Grid>\n )}\n\n <div className={classNames(dataListContent, \"webiny-data-list__content\")}>\n {render}\n {props.modalOverlay}\n </div>\n </ListContainer>\n </DataListModalOverlayProvider>\n );\n};\n\nDataList.defaultProps = {\n children: null,\n title: null,\n data: null,\n meta: null,\n loading: false,\n refresh: async () => {\n return void 0;\n },\n setPage: null,\n setPerPage: null,\n perPageOptions: [10, 25, 50],\n filters: null,\n sorters: null,\n setSorters: null,\n actions: null,\n multiSelectAll: noop,\n isAllMultiSelected: () => false,\n isNoneMultiSelected: () => false,\n loader: <Loader />,\n noData: <NoData />,\n showOptions: {\n refresh: true,\n pagination: true,\n sorters: true,\n filters: true\n }\n};\n\nexport interface ScrollListProps extends ListProps {\n children: React.ReactElement<typeof ListItem>[];\n}\n\nexport const ScrollList: React.FC<ScrollListProps> = props => {\n return (\n <List {...props} className={scrollList}>\n {props.children}\n </List>\n );\n};\n"]}
1
+ {"version":3,"sources":["DataList.tsx"],"names":["React","styled","classNames","Loader","NoData","Typography","css","noop","isEmpty","Checkbox","Menu","MenuItem","Grid","Cell","RefreshIcon","SortIcon","FilterIcon","PreviousPageIcon","NextPageIcon","OptionsIcon","List","DataListModalOverlayProvider","ListContainer","position","height","paddingBottom","paddingTop","borderBottom","padding","minHeight","display","marginRight","width","margin","alignItems","justifyContent","flexDirection","boxSizing","whiteSpace","marginTop","marginBottom","textAlign","listHeader","color","listSubHeader","ListHeaderItem","verticalAlign","opacity","pointerEvents","listTitle","listActions","scrollList","overflow","dataListContent","MultiSelectAll","props","multiSelectActions","isAllMultiSelected","isNoneMultiSelected","multiSelectAll","data","MultiSelectActions","RefreshButton","refresh","Sorters","sorters","map","sorter","label","setSorters","value","Filters","filters","Pagination","pagination","setNextPage","disabled","hasPreviousPage","setPreviousPage","hasNextPage","Array","isArray","perPageOptions","setPerPage","perPage","Search","search","cloneElement","DataList","render","loading","loader","noData","ch","children","showOptions","title","actions","Object","keys","length","justifySelf","modalOverlayAction","modalOverlay","defaultProps","meta","setPage","ScrollList"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport classNames from \"classnames\";\nimport Loader from \"./Loader\";\nimport NoData from \"./NoData\";\nimport { Typography } from \"~/Typography\";\nimport { css } from \"emotion\";\nimport noop from \"lodash/noop\";\nimport isEmpty from \"lodash/isEmpty\";\n\nimport { Checkbox } from \"../../Checkbox\";\nimport { Menu, MenuItem } from \"../../Menu\";\nimport { Grid, Cell } from \"../../Grid\";\n\nimport {\n RefreshIcon,\n SortIcon,\n FilterIcon,\n PreviousPageIcon,\n NextPageIcon,\n OptionsIcon\n} from \"./icons\";\nimport { List, ListItem, ListProps } from \"..\";\nimport { DataListModalOverlayProvider } from \"./DataListModalOverlay\";\nimport { PaginationProp, SortersProp } from \"./types\";\n\nconst ListContainer = styled(\"div\")({\n position: \"relative\",\n height: \"100%\",\n \".mdc-list\": {\n paddingBottom: 0,\n paddingTop: 0\n },\n \".mdc-list-item\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 20px 10px 20px\",\n height: \"auto\",\n minHeight: 40,\n \".mdc-list-item__text, .mdc-list-item__secondary-text, .webiny-list-text-overline\": {\n display: \"block\"\n },\n \".mdc-list-item__graphic\": {\n marginRight: 20\n },\n \".mdc-list-item__text\": {\n width: \"100%\",\n margin: \"-20px 0\",\n padding: \"20px 0\"\n },\n \".mdc-list-item__meta\": {\n alignItems: \"center\",\n display: \"flex\",\n justifyContent: \"space-between\",\n flexDirection: \"column\",\n position: \"relative\",\n padding: \"5px 0\",\n boxSizing: \"border-box\",\n height: \"100%\",\n whiteSpace: \"nowrap\",\n marginTop: -10,\n marginBottom: -10,\n \".webiny-list-actions\": {\n display: \"none\"\n },\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n //position: 'absolute',\n width: \"100%\",\n textAlign: \"right\"\n },\n \".webiny-list-top-caption\": {\n marginBottom: 20\n }\n },\n \"&:hover\": {\n \".mdc-list-item__meta\": {\n \".webiny-list-top-caption, .webiny-list-bottom-caption\": {\n display: \"none\"\n },\n \".webiny-list-actions\": {\n display: \"flex\",\n height: \"100%\",\n alignItems: \"center\"\n }\n }\n }\n }\n});\n\nconst listHeader = css({\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n width: \"100%\"\n});\n\nconst listSubHeader = css({\n width: \"100%\",\n \"&.mdc-layout-grid\": {\n borderBottom: \"1px solid var(--mdc-theme-on-background)\",\n padding: \"10px 24px 10px 12px\",\n color: \"var(--mdc-theme-text-primary-on-background)\"\n }\n});\n\nconst ListHeaderItem = styled(\"div\")({\n display: \"inline-block\",\n verticalAlign: \"middle\",\n \"&.disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst listTitle = css({\n display: \"flex\",\n alignItems: \"center\"\n});\n\nconst listActions = css({\n textAlign: \"right\"\n});\n\nconst scrollList = css({\n overflow: \"auto\",\n height: \"calc(100vh - 235px)\"\n});\n\nconst dataListContent = css({\n position: \"relative\",\n height: \"100%\",\n overflow: \"auto\"\n});\n\n// This was copied from \"./types\" so that it can be outputted in docs.\ninterface DataListProps {\n // Pass a function to take full control of list render.\n children?: ((props: any) => React.ReactNode) | null;\n\n // A title of paginated list.\n title?: React.ReactNode;\n\n // FormData that needs to be shown in the list.\n data?: Record<string, any>[] | null;\n\n // A callback that must refresh current view by repeating the previous query.\n refresh?: (() => void) | null;\n\n // If true, Loader component will be shown, disallowing any interaction.\n loading?: boolean;\n\n // Provide a custom loader. Shown while the content is loading.\n loader?: React.ReactNode;\n\n // Provide a custom no data component. Shown while there is no data to be shown.\n noData?: React.ReactNode;\n\n // Provide all pagination data, options and callbacks here.\n pagination?: PaginationProp;\n\n // Triggered once a sorter has been selected.\n setSorters?: Function | null;\n\n // Provide all sorters options and callbacks here.\n sorters?: SortersProp | null;\n\n // Provide actions that will be shown in the top right corner (eg. export or import actions).\n actions?: React.ReactNode;\n\n // Provide filters that will be shown in the top left corner (eg. filter by category or status).\n filters?: React.ReactNode;\n\n // Provide actions that can be executed on one or more multi-selected list items (eg. export or delete).\n multiSelectActions?: React.ReactNode;\n\n // Provide callback that will be executed once user selects all list items.\n multiSelectAll?: (value: boolean, data: Record<string, any>[] | null) => void;\n\n // Callback which returns true if all items were selected, otherwise returns false.\n isAllMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n // Callback which returns true if none of the items were selected, otherwise returns false.\n isNoneMultiSelected?: (data: Record<string, any>[] | null) => boolean;\n\n showOptions?: {\n refresh?: boolean;\n pagination?: boolean;\n filters?: boolean;\n sorters?: boolean;\n [key: string]: any;\n };\n\n // Provide search UI that will be shown in the top left corner.\n search?: React.ReactElement;\n // Provide simple modal UI that will be shown over the list content.\n modalOverlay?: React.ReactElement;\n // Provide an action element that handle toggling the \"Modal overlay\".\n modalOverlayAction?: React.ReactElement;\n\n meta?: Record<string, any> | null;\n\n setPage?: ((page: string) => void) | null;\n\n setPerPage?: ((page: string) => void) | null;\n\n perPageOptions?: number[];\n}\n\nconst MultiSelectAll: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n /**\n * We can safely cast because we have defaults.\n */\n const { isAllMultiSelected, isNoneMultiSelected, multiSelectAll, data } =\n props as Required<DataListProps>;\n\n return (\n <React.Fragment>\n {typeof multiSelectAll === \"function\" && (\n <ListHeaderItem>\n <Checkbox\n indeterminate={!isAllMultiSelected(data) && !isNoneMultiSelected(data)}\n value={isAllMultiSelected(data)}\n onClick={() => {\n multiSelectAll(!isAllMultiSelected(data), data);\n }}\n />\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst MultiSelectActions: React.FC<DataListProps> = props => {\n const { multiSelectActions } = props;\n if (!multiSelectActions) {\n return null;\n }\n\n return <ListHeaderItem>{multiSelectActions}</ListHeaderItem>;\n};\n\nconst RefreshButton: React.FC<DataListProps> = props => {\n const refresh = props.refresh;\n if (!refresh) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <RefreshIcon onClick={() => refresh()} />\n </ListHeaderItem>\n );\n};\n\nconst Sorters: React.FC<DataListProps> = props => {\n const sorters = props.sorters;\n if (!sorters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<SortIcon />}>\n {sorters.map(sorter => (\n <MenuItem\n key={sorter.label}\n onClick={() => {\n if (sorters && props.setSorters) {\n props.setSorters(sorter.value);\n }\n }}\n >\n {sorter.label}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n );\n};\n\nconst Filters: React.FC<DataListProps> = props => {\n const filters = props.filters;\n if (!filters) {\n return null;\n }\n\n return (\n <ListHeaderItem>\n <Menu handle={<FilterIcon />}>{filters}</Menu>\n </ListHeaderItem>\n );\n};\n\nconst Pagination: React.FC<DataListProps> = props => {\n const { pagination } = props;\n if (!pagination) {\n return null;\n }\n\n return (\n <React.Fragment>\n {pagination.setNextPage && (\n <React.Fragment>\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasPreviousPage\n })}\n >\n <PreviousPageIcon\n onClick={() => {\n if (pagination.setPreviousPage && pagination.hasPreviousPage) {\n pagination.setPreviousPage();\n }\n }}\n />\n </ListHeaderItem>\n\n <ListHeaderItem\n className={classNames({\n disabled: !pagination.hasNextPage\n })}\n >\n <NextPageIcon\n onClick={() => {\n if (pagination.setNextPage && pagination.hasNextPage) {\n pagination.setNextPage();\n }\n }}\n />\n </ListHeaderItem>\n </React.Fragment>\n )}\n\n {Array.isArray(pagination.perPageOptions) && pagination.setPerPage && (\n <ListHeaderItem>\n <Menu handle={<OptionsIcon />}>\n {pagination.setPerPage &&\n pagination.perPageOptions.map(perPage => (\n <MenuItem\n key={perPage}\n onClick={() =>\n pagination.setPerPage && pagination.setPerPage(perPage)\n }\n >\n {perPage}\n </MenuItem>\n ))}\n </Menu>\n </ListHeaderItem>\n )}\n </React.Fragment>\n );\n};\n\nconst Search: React.FC<DataListProps> = props => {\n if (!props.search) {\n return null;\n }\n return <Cell span={7}>{React.cloneElement(props.search, props)}</Cell>;\n};\n\nexport const DataList: React.FC<DataListProps> = props => {\n let render = null;\n\n if (props.loading) {\n render = props.loader;\n } else if (isEmpty(props.data)) {\n render = props.noData;\n } else {\n const ch = props.children;\n render = typeof ch === \"function\" ? ch(props) : null;\n }\n\n const showOptions = props.showOptions || {};\n\n return (\n <DataListModalOverlayProvider>\n <ListContainer className={\"webiny-data-list\"} data-testid={\"ui.list.data-list\"}>\n {(props.title || props.actions) && (\n <Grid className={listHeader}>\n <Cell span={5} className={listTitle}>\n <Typography use=\"headline5\">{props.title}</Typography>\n </Cell>\n <Cell span={7} className={listActions}>\n {props.actions}\n </Cell>\n </Grid>\n )}\n\n {Object.keys(showOptions).length > 0 && (\n <Grid className={listSubHeader}>\n <Search {...props} />\n <Cell span={props.search ? 5 : 12} style={{ justifySelf: \"end\" }}>\n <MultiSelectAll {...props} />\n {showOptions.refresh && <RefreshButton {...props} />}\n {showOptions.pagination && <Pagination {...props} />}\n {showOptions.sorters && <Sorters {...props} />}\n {showOptions.filters && <Filters {...props} />}\n {props.modalOverlayAction ? (\n <ListHeaderItem>{props.modalOverlayAction}</ListHeaderItem>\n ) : null}\n <MultiSelectActions {...props} />\n </Cell>\n </Grid>\n )}\n\n <div className={classNames(dataListContent, \"webiny-data-list__content\")}>\n {render}\n {props.modalOverlay}\n </div>\n </ListContainer>\n </DataListModalOverlayProvider>\n );\n};\n\nDataList.defaultProps = {\n children: null,\n title: null,\n data: null,\n meta: null,\n loading: false,\n refresh: () => {\n return void 0;\n },\n setPage: null,\n setPerPage: null,\n perPageOptions: [10, 25, 50],\n filters: null,\n sorters: null,\n setSorters: null,\n actions: null,\n multiSelectAll: noop,\n isAllMultiSelected: () => false,\n isNoneMultiSelected: () => false,\n loader: <Loader />,\n noData: <NoData />,\n showOptions: {\n refresh: true,\n pagination: true,\n sorters: true,\n filters: true\n }\n};\n\nexport interface ScrollListProps extends ListProps {\n children: React.ReactElement<typeof ListItem>[];\n}\n\nexport const ScrollList: React.FC<ScrollListProps> = props => {\n return (\n <List {...props} className={scrollList}>\n {props.children}\n </List>\n );\n};\n"]}
@@ -2,11 +2,11 @@ import React from "react";
2
2
  import "rc-tooltip/assets/bootstrap_white.css";
3
3
  import "./style.scss";
4
4
  declare type TooltipPropsContent = (() => React.ReactChild) | React.ReactChild | React.ReactFragment | React.ReactPortal;
5
- interface TooltipProps {
5
+ export interface TooltipProps {
6
6
  children: React.ReactNode;
7
7
  content: TooltipPropsContent;
8
8
  trigger?: string;
9
- placement?: string;
9
+ placement?: "left" | "right" | "top" | "bottom" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight";
10
10
  className?: string;
11
11
  }
12
12
  interface State {
@@ -1 +1 @@
1
- {"version":3,"sources":["Tooltip.tsx"],"names":["React","default","RcTooltip","Tooltip","tooltipIsOpen","visible","setState","onVisibleChange","props","content","children","Component"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAO,IAAIC,SAApB,QAAqC,YAArC;AACA,OAAO,uCAAP;AACA;;AA6BA;AACA;AACA;IACMC,O;;;;;;;;;;;;;;;;4DACsB;AACpBC,MAAAA,aAAa,EAAE;AADK,K;;sEAIN,UAACC,OAAD,EAAuB;AACrC,YAAKC,QAAL,CAAc;AACVF,QAAAA,aAAa,EAAEC,OAAO,IAAI;AADhB,OAAd;AAGH,K;;;;;;;WAED,kBAAyB;AACrB,0BACI,oBAAC;AACG;AAChB;AACA;AACgB;AAJJ;AAKI,QAAA,SAAS,EAAE,MALf;AAMI,QAAA,eAAe,EAAE,KAAKE,eAN1B;AAOI,QAAA,OAAO,EAAE,KAAKC,KAAL,CAAWC;AAPxB,SAQQ,KAAKD,KARb,gBAUI;AAAM,QAAA,SAAS,EAAC;AAAhB,SACK,KAAKA,KAAL,CAAWE,QADhB,CAVJ,CADJ;AAgBH;;;;EA5BiBV,KAAK,CAACW,S;;AA+B5B,SAASR,OAAT","sourcesContent":["import React from \"react\";\nimport { default as RcTooltip } from \"rc-tooltip\";\nimport \"rc-tooltip/assets/bootstrap_white.css\";\nimport \"./style.scss\";\n\ntype TooltipPropsContent =\n | (() => React.ReactChild)\n | React.ReactChild\n | React.ReactFragment\n | React.ReactPortal;\n\ninterface TooltipProps {\n // A component (eg. button) which will trigger the tooltip.\n children: React.ReactNode;\n\n // Content which will be shown inside the tooltip.\n content: TooltipPropsContent;\n\n // Defines which action will trigger the tooltip: \"hover\", \"click\" or \"focus\".\n trigger?: string;\n\n // Can be \"left\",\"right\",\"top\",\"bottom\", \"topLeft\", \"topRight\", \"bottomLeft\" or \"bottomRight\".\n placement?: string;\n\n // CSS class name\n className?: string;\n}\n\ninterface State {\n tooltipIsOpen: boolean;\n}\n\n/**\n * Use Tooltip component to display a list of choices, once the handler is triggered.\n */\nclass Tooltip extends React.Component<TooltipProps, State> {\n public override state = {\n tooltipIsOpen: false\n };\n\n onVisibleChange = (visible?: boolean) => {\n this.setState({\n tooltipIsOpen: visible || false\n });\n };\n\n public override render() {\n return (\n <RcTooltip\n /**\n * rc-tooltip types do not have animation as prop, but the rc-tooltip lib has.\n */\n // @ts-ignore\n animation={\"fade\"}\n onVisibleChange={this.onVisibleChange}\n overlay={this.props.content}\n {...this.props}\n >\n <span className=\"webiny-ui-tooltip tooltip-content-wrapper\">\n {this.props.children}\n </span>\n </RcTooltip>\n );\n }\n}\n\nexport { Tooltip };\n"]}
1
+ {"version":3,"sources":["Tooltip.tsx"],"names":["React","default","RcTooltip","Tooltip","tooltipIsOpen","visible","setState","onVisibleChange","props","content","children","Component"],"mappings":";;;;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,OAAO,IAAIC,SAApB,QAAqC,YAArC;AACA,OAAO,uCAAP;AACA;;AAqCA;AACA;AACA;IACMC,O;;;;;;;;;;;;;;;;4DACsB;AACpBC,MAAAA,aAAa,EAAE;AADK,K;;sEAIN,UAACC,OAAD,EAAuB;AACrC,YAAKC,QAAL,CAAc;AACVF,QAAAA,aAAa,EAAEC,OAAO,IAAI;AADhB,OAAd;AAGH,K;;;;;;;WAED,kBAAyB;AACrB,0BACI,oBAAC;AACG;AAChB;AACA;AACgB;AAJJ;AAKI,QAAA,SAAS,EAAE,MALf;AAMI,QAAA,eAAe,EAAE,KAAKE,eAN1B;AAOI,QAAA,OAAO,EAAE,KAAKC,KAAL,CAAWC;AAPxB,SAQQ,KAAKD,KARb,gBAUI;AAAM,QAAA,SAAS,EAAC;AAAhB,SACK,KAAKA,KAAL,CAAWE,QADhB,CAVJ,CADJ;AAgBH;;;;EA5BiBV,KAAK,CAACW,S;;AA+B5B,SAASR,OAAT","sourcesContent":["import React from \"react\";\nimport { default as RcTooltip } from \"rc-tooltip\";\nimport \"rc-tooltip/assets/bootstrap_white.css\";\nimport \"./style.scss\";\n\ntype TooltipPropsContent =\n | (() => React.ReactChild)\n | React.ReactChild\n | React.ReactFragment\n | React.ReactPortal;\n\nexport interface TooltipProps {\n // A component (eg. button) which will trigger the tooltip.\n children: React.ReactNode;\n\n // Content which will be shown inside the tooltip.\n content: TooltipPropsContent;\n\n // Defines which action will trigger the tooltip: \"hover\", \"click\" or \"focus\".\n trigger?: string;\n\n // Can be \"left\",\"right\",\"top\",\"bottom\", \"topLeft\", \"topRight\", \"bottomLeft\" or \"bottomRight\".\n placement?:\n | \"left\"\n | \"right\"\n | \"top\"\n | \"bottom\"\n | \"topLeft\"\n | \"topRight\"\n | \"bottomLeft\"\n | \"bottomRight\";\n\n // CSS class name\n className?: string;\n}\n\ninterface State {\n tooltipIsOpen: boolean;\n}\n\n/**\n * Use Tooltip component to display a list of choices, once the handler is triggered.\n */\nclass Tooltip extends React.Component<TooltipProps, State> {\n public override state = {\n tooltipIsOpen: false\n };\n\n onVisibleChange = (visible?: boolean) => {\n this.setState({\n tooltipIsOpen: visible || false\n });\n };\n\n public override render() {\n return (\n <RcTooltip\n /**\n * rc-tooltip types do not have animation as prop, but the rc-tooltip lib has.\n */\n // @ts-ignore\n animation={\"fade\"}\n onVisibleChange={this.onVisibleChange}\n overlay={this.props.content}\n {...this.props}\n >\n <span className=\"webiny-ui-tooltip tooltip-content-wrapper\">\n {this.props.children}\n </span>\n </RcTooltip>\n );\n }\n}\n\nexport { Tooltip };\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TopAppBarActionItemProps as RmwcTopAppBarActionItemProps } from "@rmwc/top-app-bar";
3
2
  export declare type TopAppBarActionItemProps = RmwcTopAppBarActionItemProps;
4
3
  declare const TopAppBarActionItem: (props: TopAppBarActionItemProps) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TopAppBarNavigationIconProps as RmwcTopAppBarNavigationIconProps } from "@rmwc/top-app-bar";
3
2
  export declare type TopAppBarNavigationIconProps = RmwcTopAppBarNavigationIconProps;
4
3
  declare const TopAppBarNavigationIcon: (props: TopAppBarNavigationIconProps) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TopAppBarProps } from "./TopAppBar";
3
2
  export declare type TopAppBarPrimaryProps = TopAppBarProps;
4
3
  declare const TopAppBarPrimary: (props: TopAppBarPrimaryProps) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TopAppBarProps } from "./TopAppBar";
3
2
  export declare type TopAppBarSecondaryProps = TopAppBarProps;
4
3
  declare const TopAppBarSecondary: (props: TopAppBarSecondaryProps) => JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/ui",
3
- "version": "5.25.0-beta.0",
3
+ "version": "5.25.0-beta.3",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,7 +14,7 @@
14
14
  ],
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@babel/runtime": "7.17.2",
17
+ "@babel/runtime": "7.17.7",
18
18
  "@editorjs/editorjs": "2.23.2",
19
19
  "@emotion/core": "10.3.1",
20
20
  "@emotion/styled": "10.3.0",
@@ -91,11 +91,11 @@
91
91
  "@types/react-custom-scrollbars": "^4.0.10",
92
92
  "@types/react-transition-group": "^4.4.4",
93
93
  "@types/shortid": "^0.0.29",
94
- "@webiny/cli": "^5.25.0-beta.0",
95
- "@webiny/form": "^5.25.0-beta.0",
96
- "@webiny/project-utils": "^5.25.0-beta.0",
97
- "@webiny/storybook-utils": "^5.25.0-beta.0",
98
- "@webiny/validation": "^5.25.0-beta.0",
94
+ "@webiny/cli": "^5.25.0-beta.3",
95
+ "@webiny/form": "^5.25.0-beta.3",
96
+ "@webiny/project-utils": "^5.25.0-beta.3",
97
+ "@webiny/storybook-utils": "^5.25.0-beta.3",
98
+ "@webiny/validation": "^5.25.0-beta.3",
99
99
  "babel-loader": "^8.0.0-beta.6",
100
100
  "babel-plugin-emotion": "^9.2.8",
101
101
  "execa": "^5.0.0",
@@ -142,5 +142,5 @@
142
142
  ]
143
143
  }
144
144
  },
145
- "gitHead": "2d3e7833575e88fde77d84e5490e746933a5ec28"
145
+ "gitHead": "3364dbf65ade9f33f4decff7e45da1efd02b2af0"
146
146
  }