@activecollab/components 1.0.410 → 1.0.412

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.
@@ -30,7 +30,7 @@ var _ConditionWrapper = require("../../helpers/ConditionWrapper/ConditionWrapper
30
30
  var _classnames = _interopRequireDefault(require("classnames"));
31
31
  var _useIsFirstRender = require("../../hooks/useIsFirstRender");
32
32
  var _MultiAvatar = require("../MultiAvatar");
33
- var _excluded = ["options", "selected", "loading", "loadingText", "onChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear"];
33
+ var _excluded = ["options", "selected", "loading", "loadingText", "onChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear", "onDeselect"];
34
34
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
35
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
36
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -75,6 +75,7 @@ var ComboBox = function ComboBox(_ref) {
75
75
  scrollWrapper = _ref.scrollWrapper,
76
76
  onClose = _ref.onClose,
77
77
  onClear = _ref.onClear,
78
+ onDeselect = _ref.onDeselect,
78
79
  prop = _objectWithoutProperties(_ref, _excluded);
79
80
  var selectedName = (0, _react.useMemo)(function () {
80
81
  var value = "";
@@ -193,15 +194,16 @@ var ComboBox = function ComboBox(_ref) {
193
194
  }, [type, renderOption]);
194
195
  var handleDeselect = (0, _react.useCallback)(function (e) {
195
196
  e.stopPropagation();
196
- if (type === "multiple") {
197
+ if (typeof onDeselect === "function") {
198
+ onDeselect();
199
+ } else if (type === "multiple") {
197
200
  onChange === null || onChange === void 0 ? void 0 : onChange([]);
198
- onClear === null || onClear === void 0 ? void 0 : onClear();
199
201
  } else {
200
202
  onChange === null || onChange === void 0 ? void 0 : onChange("");
201
- onClear === null || onClear === void 0 ? void 0 : onClear();
202
203
  }
204
+ onClear === null || onClear === void 0 ? void 0 : onClear();
203
205
  setOpen(false);
204
- }, [type, onChange, onClear]);
206
+ }, [type, onChange, onClear, onDeselect]);
205
207
  var handleMouseDown = (0, _react.useCallback)(function (e) {
206
208
  e.preventDefault();
207
209
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","focused","setFocused","handleOnChange","useCallback","e","target","childNode","useRef","elementRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","useIsFirstRender","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","classNames","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n onClear?.();\n } else {\n onChange?.(\"\");\n onClear?.();\n }\n\n setOpen(false);\n },\n [type, onChange, onClear]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 1\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","focused","setFocused","handleOnChange","useCallback","e","target","childNode","useRef","elementRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","useIsFirstRender","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","classNames","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onDeselect?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n onDeselect,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 1\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
@@ -23,7 +23,8 @@ var Wizard = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
23
23
  onClose = _ref.onClose,
24
24
  _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
25
25
  disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
26
- children = _ref.children;
26
+ children = _ref.children,
27
+ dialogClassName = _ref.dialogClassName;
27
28
  var childrenCollection = (0, _react.useMemo)(function () {
28
29
  return _react.default.Children.toArray(children);
29
30
  }, [children]);
@@ -88,7 +89,8 @@ var Wizard = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
88
89
  ref: ref,
89
90
  open: open,
90
91
  onClose: onClose,
91
- disableCloseOnEsc: disableCloseOnEsc
92
+ disableCloseOnEsc: disableCloseOnEsc,
93
+ className: dialogClassName
92
94
  }, renderActiveStep));
93
95
  });
94
96
  exports.Wizard = Wizard;
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.js","names":["Wizard","forwardRef","ref","title","open","onClose","disableCloseOnEsc","children","childrenCollection","useMemo","React","Children","toArray","useState","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","useEffect","goNext","useCallback","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","Step","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"sources":["../../../../src/components/Wizard/Wizard.tsx"],"sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n disableCloseOnEsc?: boolean;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n ({ title, open, onClose, disableCloseOnEsc = false, children }, ref) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog\n ref={ref}\n open={open}\n onClose={onClose}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Wizard.js","names":["Wizard","forwardRef","ref","title","open","onClose","disableCloseOnEsc","children","dialogClassName","childrenCollection","useMemo","React","Children","toArray","useState","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","useEffect","goNext","useCallback","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","Step","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"sources":["../../../../src/components/Wizard/Wizard.tsx"],"sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n disableCloseOnEsc?: boolean;\n dialogClassName?: string;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n (\n {\n title,\n open,\n onClose,\n disableCloseOnEsc = false,\n children,\n dialogClassName,\n },\n ref\n ) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog\n ref={ref}\n open={open}\n onClose={onClose}\n disableCloseOnEsc={disableCloseOnEsc}\n className={dialogClassName}\n >\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"mappings":"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"}
@@ -35,6 +35,7 @@ export interface IComboBoxProps extends Omit<IAutocompleteProps, "handleChange"
35
35
  onClose?: () => void;
36
36
  /** onClear (f) will be called when user clear input on X icon*/
37
37
  onClear?: () => void;
38
+ onDeselect?: () => void;
38
39
  }
39
40
  export declare const ComboBox: FC<IComboBoxProps>;
40
41
  //# sourceMappingURL=ComboBox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAOH,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAWhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgB3C,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,oBAAoB,CAClD;IACD,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACtC,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,KAClB,GAAG,CAAC,OAAO,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,cAAc,CAigBvC,CAAC"}
1
+ {"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAOH,MAAM,OAAO,CAAC;AAIf,OAAO,EACL,kBAAkB,EAEnB,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAqB,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAWhE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAgB3C,MAAM,WAAW,cACf,SAAQ,IAAI,CACV,kBAAkB,EAClB,cAAc,GAAG,SAAS,GAAG,oBAAoB,CAClD;IACD,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CACT,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,KACxD,IAAI,CAAC;IACV,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oBAAoB;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB;IAClB,UAAU,CAAC,EAAE,CAAC,CAAC,SAAS,gBAAgB,EACtC,IAAI,EAAE,CAAC,EACP,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,KAClB,GAAG,CAAC,OAAO,CAAC;IACjB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,eAAO,MAAM,QAAQ,EAAE,EAAE,CAAC,cAAc,CAmgBvC,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import _styled from "styled-components";
4
- var _excluded = ["options", "selected", "loading", "loadingText", "onChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear"];
4
+ var _excluded = ["options", "selected", "loading", "loadingText", "onChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear", "onDeselect"];
5
5
  import React, { useCallback, useState, useEffect, useRef, useMemo, Fragment } from "react";
6
6
  import { RadioButton } from "../RadioButton";
7
7
  import { Autocomplete } from "../Autocomplete";
@@ -58,6 +58,7 @@ export var ComboBox = function ComboBox(_ref) {
58
58
  scrollWrapper = _ref.scrollWrapper,
59
59
  onClose = _ref.onClose,
60
60
  onClear = _ref.onClear,
61
+ onDeselect = _ref.onDeselect,
61
62
  prop = _objectWithoutPropertiesLoose(_ref, _excluded);
62
63
  var selectedName = useMemo(function () {
63
64
  var value = "";
@@ -173,15 +174,16 @@ export var ComboBox = function ComboBox(_ref) {
173
174
  }, [type, renderOption]);
174
175
  var handleDeselect = useCallback(function (e) {
175
176
  e.stopPropagation();
176
- if (type === "multiple") {
177
+ if (typeof onDeselect === "function") {
178
+ onDeselect();
179
+ } else if (type === "multiple") {
177
180
  onChange == null ? void 0 : onChange([]);
178
- onClear == null ? void 0 : onClear();
179
181
  } else {
180
182
  onChange == null ? void 0 : onChange("");
181
- onClear == null ? void 0 : onClear();
182
183
  }
184
+ onClear == null ? void 0 : onClear();
183
185
  setOpen(false);
184
- }, [type, onChange, onClear]);
186
+ }, [type, onChange, onClear, onDeselect]);
185
187
  var handleMouseDown = useCallback(function (e) {
186
188
  e.preventDefault();
187
189
  }, []);
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","useIsFirstRender","MultiAvatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n onClear?.();\n } else {\n onChange?.(\"\");\n onClear?.();\n }\n\n setOpen(false);\n },\n [type, onChange, onClear]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 1\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","useIsFirstRender","MultiAvatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onDeselect?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n onDeselect,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 1\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface IWizard {
5
5
  onClose: () => void;
6
6
  children: ReactNode;
7
7
  disableCloseOnEsc?: boolean;
8
+ dialogClassName?: string;
8
9
  }
9
10
  export declare const Wizard: React.ForwardRefExoticComponent<IWizard & React.RefAttributes<HTMLDivElement>>;
10
11
  //# sourceMappingURL=Wizard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAKf,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,MAAM,gFAsFlB,CAAC"}
1
+ {"version":3,"file":"Wizard.d.ts","sourceRoot":"","sources":["../../../../src/components/Wizard/Wizard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,SAAS,EAKV,MAAM,OAAO,CAAC;AAKf,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,MAAM,gFAiGlB,CAAC"}
@@ -8,7 +8,8 @@ export var Wizard = /*#__PURE__*/forwardRef(function (_ref, ref) {
8
8
  onClose = _ref.onClose,
9
9
  _ref$disableCloseOnEs = _ref.disableCloseOnEsc,
10
10
  disableCloseOnEsc = _ref$disableCloseOnEs === void 0 ? false : _ref$disableCloseOnEs,
11
- children = _ref.children;
11
+ children = _ref.children,
12
+ dialogClassName = _ref.dialogClassName;
12
13
  var childrenCollection = useMemo(function () {
13
14
  return React.Children.toArray(children);
14
15
  }, [children]);
@@ -71,7 +72,8 @@ export var Wizard = /*#__PURE__*/forwardRef(function (_ref, ref) {
71
72
  ref: ref,
72
73
  open: open,
73
74
  onClose: onClose,
74
- disableCloseOnEsc: disableCloseOnEsc
75
+ disableCloseOnEsc: disableCloseOnEsc,
76
+ className: dialogClassName
75
77
  }, renderActiveStep));
76
78
  });
77
79
  Wizard.displayName = "Wizard";
@@ -1 +1 @@
1
- {"version":3,"file":"Wizard.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useState","Dialog","WizardContextProvider","Step","Wizard","ref","title","open","onClose","disableCloseOnEsc","children","childrenCollection","Children","toArray","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","goNext","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"sources":["../../../../src/components/Wizard/Wizard.tsx"],"sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n disableCloseOnEsc?: boolean;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n ({ title, open, onClose, disableCloseOnEsc = false, children }, ref) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog\n ref={ref}\n open={open}\n onClose={onClose}\n disableCloseOnEsc={disableCloseOnEsc}\n >\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Wizard.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useState","Dialog","WizardContextProvider","Step","Wizard","ref","title","open","onClose","disableCloseOnEsc","children","dialogClassName","childrenCollection","Children","toArray","activeStep","setActiveStep","changingStepInProgress","setChangingStepInProgress","goNext","index","findIndex","step","stepEl","props","skip","goPrevious","i","length","renderActiveStep","element","type","cloneElement","isLast","onNextButtonClick","onPreviousButtonClick","close","displayName"],"sources":["../../../../src/components/Wizard/Wizard.tsx"],"sourcesContent":["import React, {\n forwardRef,\n ReactChild,\n ReactElement,\n ReactFragment,\n ReactNode,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { Dialog } from \"../Dialog\";\nimport { WizardContextProvider } from \"./context\";\nimport { Step } from \"./Step\";\n\nexport interface IWizard {\n title: string;\n open: boolean;\n onClose: () => void;\n children: ReactNode;\n disableCloseOnEsc?: boolean;\n dialogClassName?: string;\n}\n\nexport const Wizard = forwardRef<HTMLDivElement, IWizard>(\n (\n {\n title,\n open,\n onClose,\n disableCloseOnEsc = false,\n children,\n dialogClassName,\n },\n ref\n ) => {\n const childrenCollection = useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n\n const [activeStep, setActiveStep] = useState(0);\n const [changingStepInProgress, setChangingStepInProgress] = useState(false);\n\n useEffect(() => {\n if (open) {\n setActiveStep(0);\n }\n }, [open]);\n\n const goNext = useCallback(() => {\n const index = childrenCollection.findIndex(\n (step: ReactChild | ReactFragment, index) => {\n const stepEl = step as ReactElement;\n return !stepEl?.props?.skip && index > activeStep;\n }\n );\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const goPrevious = useCallback(() => {\n let index = 0;\n for (let i = childrenCollection.length - 1; i >= 0; i--) {\n const step = childrenCollection[i] as ReactElement;\n if (!step?.props?.skip && i < activeStep) {\n index = i;\n break;\n }\n }\n setActiveStep(index);\n }, [activeStep, childrenCollection]);\n\n const renderActiveStep = useMemo(() => {\n const element = childrenCollection[activeStep] as ReactElement;\n\n if (element?.type === Step) {\n return React.cloneElement(element, {\n index: activeStep,\n isLast: childrenCollection.length - 1 === activeStep,\n title,\n onNextButtonClick: goNext,\n onPreviousButtonClick: goPrevious,\n onClose,\n changingStepInProgress: changingStepInProgress,\n });\n }\n\n return null;\n }, [\n activeStep,\n changingStepInProgress,\n childrenCollection,\n goNext,\n goPrevious,\n onClose,\n title,\n ]);\n\n return (\n <WizardContextProvider\n value={{\n activeStep,\n setActiveStep,\n goNext,\n goPrevious,\n close: onClose,\n setChangingStepInProgress,\n }}\n >\n <Dialog\n ref={ref}\n open={open}\n onClose={onClose}\n disableCloseOnEsc={disableCloseOnEsc}\n className={dialogClassName}\n >\n {renderActiveStep}\n </Dialog>\n </WizardContextProvider>\n );\n }\n);\n\nWizard.displayName = \"Wizard\";\n"],"mappings":"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"}