@activecollab/components 1.0.147 → 1.0.150
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Autocomplete/Autocomplete.js +9 -9
- package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js +4 -2
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/Chip/Styles.js +2 -6
- package/dist/cjs/components/Chip/Styles.js.map +1 -1
- package/dist/cjs/components/ComboBox/ComboBox.js +199 -18
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/ComboBox/Styles.js +4 -4
- package/dist/cjs/components/ComboBox/Styles.js.map +1 -1
- package/dist/cjs/components/Input/Styles.js +3 -1
- package/dist/cjs/components/Input/Styles.js.map +1 -1
- package/dist/cjs/components/Loaders/Spinner/Styles.js +1 -1
- package/dist/cjs/components/Loaders/Spinner/Styles.js.map +1 -1
- package/dist/cjs/components/Menu/Menu.js +9 -1
- package/dist/cjs/components/Menu/Menu.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +2 -2
- package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/cjs/components/Select/OptionGroup/Styles.js +11 -4
- package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +1 -5
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/cjs/hooks/useOnClickOutside.js +35 -0
- package/dist/cjs/hooks/useOnClickOutside.js.map +1 -0
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts +1 -0
- package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
- package/dist/esm/components/Autocomplete/Autocomplete.js +7 -9
- package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
- package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
- package/dist/esm/components/Chip/Chip.js +4 -2
- package/dist/esm/components/Chip/Chip.js.map +1 -1
- package/dist/esm/components/Chip/Styles.d.ts.map +1 -1
- package/dist/esm/components/Chip/Styles.js +2 -6
- package/dist/esm/components/Chip/Styles.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.d.ts +8 -4
- package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js +191 -19
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/ComboBox/Styles.d.ts.map +1 -1
- package/dist/esm/components/ComboBox/Styles.js +3 -4
- package/dist/esm/components/ComboBox/Styles.js.map +1 -1
- package/dist/esm/components/Input/Styles.d.ts +1 -0
- package/dist/esm/components/Input/Styles.d.ts.map +1 -1
- package/dist/esm/components/Input/Styles.js +3 -1
- package/dist/esm/components/Input/Styles.js.map +1 -1
- package/dist/esm/components/Loaders/Spinner/Styles.d.ts.map +1 -1
- package/dist/esm/components/Loaders/Spinner/Styles.js +1 -1
- package/dist/esm/components/Loaders/Spinner/Styles.js.map +1 -1
- package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.js +9 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js +3 -3
- package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts +1 -0
- package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
- package/dist/esm/components/Select/OptionGroup/Styles.js +7 -3
- package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +2 -6
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/hooks/useOnClickOutside.d.ts +3 -0
- package/dist/esm/hooks/useOnClickOutside.d.ts.map +1 -0
- package/dist/esm/hooks/useOnClickOutside.js +27 -0
- package/dist/esm/hooks/useOnClickOutside.js.map +1 -0
- package/dist/index.js +437 -243
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":["React","useCallback","useState","useEffect","useRef","useMemo","RadioButton","Autocomplete","Button","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","InputAdornment","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","prop","timeoutRef","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","open","setOpen","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","comboBoxRef","handleBlur","current","setTimeout","clearTimeout","zIndex","clientWidth","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Button } from \"../Button/Button\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps } 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} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\n\nexport interface IComboBoxProps {\n /** Set selected items */\n selected?: string | number;\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?: (e: string | number) => 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}\n\nexport const ComboBox: FC<\n IComboBoxProps & Omit<IAutocompleteProps, keyof IComboBoxProps>\n> = ({\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 ...prop\n}) => {\n const timeoutRef = useRef<NodeJS.Timeout>();\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 handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const [open, setOpen] = useState(false);\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 [open, selectedName]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\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) {\n onChange?.(selectedValue);\n setOpen(false);\n }\n },\n [onChange]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback((option, props) => {\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\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n onChange?.(\"\");\n setOpen(false);\n },\n [onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n timeoutRef.current = setTimeout(() => {\n setOpen(false);\n }, 200);\n }, [selectedName]);\n\n useEffect(() => {\n return () => {\n timeoutRef.current && clearTimeout(timeoutRef.current);\n };\n }, []);\n\n return (\n <>\n <StyledComboBoxInput\n className=\"c-combo-box\"\n onBlur={handleBlur}\n onFocus={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 endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <Button\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </Button>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n {!disabled ? (\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{ zIndex: 10 }}\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=\"single\"\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n ) : null}\n </>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"file":"ComboBox.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","Button","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","InputAdornment","Checkbox","Chip","StyledInputWrapper","StyledInput","classNames","Typography","Trigger","useOnClickOutside","Avatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","wrapperRef","chipWrapper","open","setOpen","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","comboBoxRef","handleBlur","renderChipAdornment","index","avatarProps","className","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","current","zIndex","clientWidth","displayName"],"mappings":"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","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 { Button } from \"../Button/Button\";\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} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInputWrapper, StyledInput } from \"../Input/Styles\";\nimport classNames from \"classnames\";\nimport { Typography } from \"../Typography/Typography\";\nimport { Trigger } from \"../Trigger\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, IAvatar } from \"../Avatar\";\n\nexport interface IComboBoxProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\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}\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 ...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 handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n\n const [open, setOpen] = useState(false);\n\n useOnClickOutside(wrapperRef, () => setOpen(false));\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\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 onChange?.(selectedValue);\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange]\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 } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<IAvatar> = {\n className: \"tw-my-0.5 tw-mr-0.5\",\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 url={option.image} {...avatarProps} />\n ) : undefined;\n\n return (\n <Chip\n className={\"c-combo-box-chip\"}\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n onClose={\n !disabled\n ? (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(\n (item) => item !== option.id\n );\n onChange(newSelected);\n }\n }\n }\n : undefined\n }\n size={size}\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 className={\"tw-flex tw-items-center tw-shrink-0\"}\n key={\"hidden\"}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\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\" ref={wrapperRef}>\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $size={size}\n $invalid={invalid}\n className={classNames(\"tw-flex tw-space-between tw-flex-1\", {\n \"tw-h-auto\": autoSize === \"auto\",\n })}\n onClick={() => {\n elementRef.current?.focus();\n }}\n >\n <div\n className={classNames(\"tw-flex tw-gap-1 tw-flex-1\", {\n \"tw-flex-wrap tw-w-full\": autoSize === \"auto\",\n \"tw-items-center\": autoSize !== \"auto\",\n \"tw-overflow-hidden\": !open,\n })}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className={classNames(\n \"tw-flex tw-flex-1 tw-self-center tw-m-0\",\n {\n \"tw-w-full\":\n !selected ||\n (Array.isArray(selected) && selected.length === 0),\n \"tw-w-auto\": autoSize === \"auto\",\n }\n )}\n onBlur={handleBlur}\n onFocus={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 />\n </div>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n className={\"tw-flex tw-justify-content-center\"}\n data-testid={\"deselect-all\"}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n onBlur={handleBlur}\n onFocus={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 <Button\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </Button>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{ zIndex: 10 }}\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 ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"file":"ComboBox.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/Styles.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/Styles.ts"],"names":[],"mappings":";AAKA,eAAO,MAAM,mBAAmB;;SAI/B,CAAC;AASF,eAAO,MAAM,sCAAsC;;SAYlD,CAAC;AAKF,eAAO,MAAM,4BAA4B,wqPAWxC,CAAC;AAIF,eAAO,MAAM,kBAAkB;;SAQ9B,CAAC"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import styled, { css } from "styled-components";
|
|
2
2
|
import { CollapseExpandSingleIcon, CloseSmallIcon } from "../Icons/collection";
|
|
3
3
|
import { Input } from "../Input";
|
|
4
|
+
import { StyledInputWrapper } from "../Input/Styles";
|
|
4
5
|
export var StyledComboBoxInput = styled(Input).withConfig({
|
|
5
6
|
displayName: "Styles__StyledComboBoxInput",
|
|
6
7
|
componentId: "sc-5qvkpb-0"
|
|
7
|
-
})(["overflow:hidden;text-overflow:ellipsis;width:100%;"
|
|
8
|
-
return props.$loading && css(["cursor:progress;"]);
|
|
9
|
-
});
|
|
8
|
+
})(["overflow:hidden;text-overflow:ellipsis;width:100%;"]);
|
|
10
9
|
StyledComboBoxInput.displayName = "StyledComboBoxInput";
|
|
11
10
|
var StyledIconDefaults = css(["flex-shrink:0;cursor:pointer;"]);
|
|
12
11
|
export var StyledComboBoxCollapseExpandSingleIcon = styled(CollapseExpandSingleIcon).withConfig({
|
|
@@ -19,7 +18,7 @@ StyledComboBoxCollapseExpandSingleIcon.displayName = "StyledComboBoxCollapseExpa
|
|
|
19
18
|
export var StyledComboBoxCloseSmallIcon = styled(CloseSmallIcon).withConfig({
|
|
20
19
|
displayName: "Styles__StyledComboBoxCloseSmallIcon",
|
|
21
20
|
componentId: "sc-5qvkpb-2"
|
|
22
|
-
})(["", " opacity:0;transition-property:all;transition-duration:0.2s;transition-delay:0.5s;", ":hover &{opacity:1;transition-delay:0s;}"], StyledIconDefaults, StyledComboBoxInput);
|
|
21
|
+
})(["", " opacity:0;transition-property:all;transition-duration:0.2s;transition-delay:0.5s;", ":hover,", ":hover &{opacity:1;transition-delay:0s;}"], StyledIconDefaults, StyledComboBoxInput, StyledInputWrapper);
|
|
23
22
|
StyledComboBoxCloseSmallIcon.displayName = "StyledComboBoxCloseSmallIcon";
|
|
24
23
|
export var StyledComboBoxList = styled.div.withConfig({
|
|
25
24
|
displayName: "Styles__StyledComboBoxList",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ComboBox/Styles.ts"],"names":["styled","css","CollapseExpandSingleIcon","CloseSmallIcon","Input","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ComboBox/Styles.ts"],"names":["styled","css","CollapseExpandSingleIcon","CloseSmallIcon","Input","StyledInputWrapper","StyledComboBoxInput","displayName","StyledIconDefaults","StyledComboBoxCollapseExpandSingleIcon","props","$open","StyledComboBoxCloseSmallIcon","StyledComboBoxList","div","$width"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AACA,SAASC,wBAAT,EAAmCC,cAAnC,QAAyD,qBAAzD;AACA,SAASC,KAAT,QAAsB,UAAtB;AACA,SAASC,kBAAT,QAAmC,iBAAnC;AAEA,OAAO,IAAMC,mBAAmB,GAAGN,MAAM,CAACI,KAAD,CAAT;AAAA;AAAA;AAAA,0DAAzB;AAMPE,mBAAmB,CAACC,WAApB,GAAkC,qBAAlC;AAEA,IAAMC,kBAAkB,GAAGP,GAAH,mCAAxB;AAKA,OAAO,IAAMQ,sCAAsC,GAAGT,MAAM,CAC1DE,wBAD0D,CAAT;AAAA;AAAA;AAAA,wEAG/CM,kBAH+C,EAO/C,UAACE,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAV,GADA,6BADA;AAAA,CAP+C,CAA5C;AAcPQ,sCAAsC,CAACF,WAAvC,GACE,wCADF;AAGA,OAAO,IAAMK,4BAA4B,GAAGZ,MAAM,CAACG,cAAD,CAAT;AAAA;AAAA;AAAA,sJACrCK,kBADqC,EAOrCF,mBAPqC,EAOPD,kBAPO,CAAlC;AAaPO,4BAA4B,CAACL,WAA7B,GAA2C,8BAA3C;AAEA,OAAO,IAAMM,kBAAkB,GAAGb,MAAM,CAACc,GAAV;AAAA;AAAA;AAAA,oLAOpB,UAACJ,KAAD;AAAA,SAAcA,KAAK,CAACK,MAApB;AAAA,CAPoB,CAAxB;AAUPF,kBAAkB,CAACN,WAAnB,GAAiC,oBAAjC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input\";\nimport { StyledInputWrapper } from \"../Input/Styles\";\n\nexport const StyledComboBoxInput = styled(Input)<{ $loading?: boolean }>`\n overflow: hidden;\n text-overflow: ellipsis;\n width: 100%;\n`;\n\nStyledComboBoxInput.displayName = \"StyledComboBoxInput\";\n\nconst StyledIconDefaults = css`\n flex-shrink: 0;\n cursor: pointer;\n`;\n\nexport const StyledComboBoxCollapseExpandSingleIcon = styled(\n CollapseExpandSingleIcon\n)<{ $open?: boolean }>`\n ${StyledIconDefaults}\n color: var(--color-theme-600);\n transform: rotate(180deg);\n\n ${(props) =>\n props.$open &&\n css`\n transform: rotate(0deg);\n `}\n`;\n\nStyledComboBoxCollapseExpandSingleIcon.displayName =\n \"StyledComboBoxCollapseExpandSingleIcon\";\n\nexport const StyledComboBoxCloseSmallIcon = styled(CloseSmallIcon)`\n ${StyledIconDefaults}\n opacity: 0;\n transition-property: all;\n transition-duration: 0.2s;\n transition-delay: 0.5s;\n\n ${StyledComboBoxInput}:hover, ${StyledInputWrapper}:hover & {\n opacity: 1;\n transition-delay: 0s;\n }\n`;\n\nStyledComboBoxCloseSmallIcon.displayName = \"StyledComboBoxCloseSmallIcon\";\n\nexport const StyledComboBoxList = styled.div<{ $width?: number }>`\n min-width: 260px;\n background-color: var(--page-paper-main);\n border-radius: 8px;\n border: 1px solid var(--border-primary);\n box-shadow: var(--shadow-tertiary);\n margin: 8px 0;\n width: ${(props) => `${props.$width}px`};\n`;\n\nStyledComboBoxList.displayName = \"StyledComboBoxList\";\n"],"file":"Styles.js"}
|
|
@@ -7,6 +7,7 @@ interface StyledInputWrapperProps {
|
|
|
7
7
|
export declare const StyledInputWrapper: import("styled-components").StyledComponent<"div", any, StyledInputWrapperProps, never>;
|
|
8
8
|
interface StyledInputProps {
|
|
9
9
|
$size?: InputSize;
|
|
10
|
+
$loading?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare const StyledInput: import("styled-components").StyledComponent<"input", any, StyledInputProps, never>;
|
|
12
13
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/Styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,yFAoD9B,CAAC;AAIF,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/Styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,yFAoD9B,CAAC;AAIF,UAAU,gBAAgB;IACxB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,oFAoCvB,CAAC"}
|
|
@@ -34,7 +34,7 @@ StyledInputWrapper.displayName = "StyledInputWrapper";
|
|
|
34
34
|
export var StyledInput = styled.input.withConfig({
|
|
35
35
|
displayName: "Styles__StyledInput",
|
|
36
36
|
componentId: "sc-ce8kcp-1"
|
|
37
|
-
})(["", " ", " ", " ", " ", " ", " padding:0px;margin:0 4px;background-color:var(--input-background-color);border:none;outline:none;&::placeholder{", "}", " ", ""], {
|
|
37
|
+
})(["", " ", " ", " ", " ", " ", " padding:0px;margin:0 4px;background-color:var(--input-background-color);border:none;outline:none;&::placeholder{", "}", " ", " ", ""], {
|
|
38
38
|
"fontSize": "0.875rem"
|
|
39
39
|
}, {
|
|
40
40
|
"color": "var(--color-theme-900)"
|
|
@@ -56,6 +56,8 @@ export var StyledInput = styled.input.withConfig({
|
|
|
56
56
|
return props.disabled && css(["", ""], {
|
|
57
57
|
"cursor": "not-allowed"
|
|
58
58
|
});
|
|
59
|
+
}, function (props) {
|
|
60
|
+
return props.$loading && css(["cursor:progress;"]);
|
|
59
61
|
});
|
|
60
62
|
StyledInput.displayName = "StyledInput";
|
|
61
63
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Input/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledInputWrapper","div","props","$size","$disabled","$invalid","displayName","StyledInput","input","disabled"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAOA,OAAO,IAAMC,kBAAkB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,iOACzB;AAAA;AAAA,CADyB,EAEzB;AAAA;AAAA,CAFyB,EAGzB;AAAA;AAAA,CAHyB,EAMzB;AAAA;AAAA,CANyB,EAc3BF,SAd2B,EAe3BD,cAf2B,EAiB3B,UAACI,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,OAAhB,IACAN,GADA,oCADA;AAAA,CAjB2B,EAwB3B,UAACK,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,KAAhB,IACAN,GADA,kBADA;AAAA,CAxB2B,EA8B3B,UAACK,KAAD;AAAA,SACAA,KAAK,CAACE,SAAN,IACAP,GADA,WAEM;AAAA;AAAA;AAAA,GAFN,CADA;AAAA,CA9B2B,EAoC3B,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,SAAP,IACA,CAACF,KAAK,CAACG,QADP,IAEAR,GAFA,mCAKQ;AAAA;AAAA,GALR,CADA;AAAA,CApC2B,EA8C3B,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,SAAP,IACAF,KAAK,CAACG,QADN,IAEAR,GAFA,WAGM;AAAA;AAAA,GAHN,CADA;AAAA,CA9C2B,CAAxB;AAsDPG,kBAAkB,CAACM,WAAnB,GAAiC,oBAAjC;
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Input/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledInputWrapper","div","props","$size","$disabled","$invalid","displayName","StyledInput","input","disabled","$loading"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAGA,SAASC,cAAT,QAA+B,mBAA/B;AACA,SAASC,SAAT,QAA0B,cAA1B;AAOA,OAAO,IAAMC,kBAAkB,GAAGJ,MAAM,CAACK,GAAV;AAAA;AAAA;AAAA,iOACzB;AAAA;AAAA,CADyB,EAEzB;AAAA;AAAA,CAFyB,EAGzB;AAAA;AAAA,CAHyB,EAMzB;AAAA;AAAA,CANyB,EAc3BF,SAd2B,EAe3BD,cAf2B,EAiB3B,UAACI,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,OAAhB,IACAN,GADA,oCADA;AAAA,CAjB2B,EAwB3B,UAACK,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,KAAhB,IACAN,GADA,kBADA;AAAA,CAxB2B,EA8B3B,UAACK,KAAD;AAAA,SACAA,KAAK,CAACE,SAAN,IACAP,GADA,WAEM;AAAA;AAAA;AAAA,GAFN,CADA;AAAA,CA9B2B,EAoC3B,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,SAAP,IACA,CAACF,KAAK,CAACG,QADP,IAEAR,GAFA,mCAKQ;AAAA;AAAA,GALR,CADA;AAAA,CApC2B,EA8C3B,UAACK,KAAD;AAAA,SACA,CAACA,KAAK,CAACE,SAAP,IACAF,KAAK,CAACG,QADN,IAEAR,GAFA,WAGM;AAAA;AAAA,GAHN,CADA;AAAA,CA9C2B,CAAxB;AAsDPG,kBAAkB,CAACM,WAAnB,GAAiC,oBAAjC;AAOA,OAAO,IAAMC,WAAW,GAAGX,MAAM,CAACY,KAAV;AAAA;AAAA;AAAA,0KAClB;AAAA;AAAA,CADkB,EAElB;AAAA;AAAA,CAFkB,EAGlB;AAAA;AAAA,CAHkB,EAIlB;AAAA;AAAA,CAJkB,EAKlB;AAAA;AAAA,CALkB,EAMlB;AAAA;AAAA,CANkB,EAgBhB;AAAA;AAAA,CAhBgB,EAmBpB,UAACN,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,KAAgB,KAAhB,IACAN,GADA,WAEM;AAAA;AAAA,GAFN,CADA;AAAA,CAnBoB,EAyBpB,UAACK,KAAD;AAAA,SACAA,KAAK,CAACO,QAAN,IACAZ,GADA,WAEM;AAAA;AAAA,GAFN,CADA;AAAA,CAzBoB,EA+BpB,UAACK,KAAD;AAAA,SACAA,KAAK,CAACQ,QAAN,IACAb,GADA,sBADA;AAAA,CA/BoB,CAAjB;AAsCPU,WAAW,CAACD,WAAZ,GAA0B,aAA1B","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n ${tw`tw-cursor-text`}\n ${tw`tw-flex`}\n ${tw`tw-items-center`}\n border-width: 1px;\n border-style: solid;\n ${tw`tw-border-theme-500`}\n border-radius: 8px;\n padding: 4px;\n height: 32px;\n background-color: var(--input-background-color);\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n ${tw`tw-cursor-not-allowed tw-opacity-50`}\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n ${tw`tw-border-primary`}\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n css`\n ${tw`tw-border-alert`}\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps {\n $size?: InputSize;\n $loading?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${tw`tw-text-body-2`}\n ${tw`tw-text-theme-900`}\n ${tw`tw-leading-regular`}\n ${tw`tw-tracking-regular`}\n ${tw`tw-font-regular`}\n ${tw`tw-w-full`}\n\n padding: 0px;\n margin: 0 4px;\n\n background-color: var(--input-background-color);\n border: none;\n outline: none;\n\n &::placeholder {\n ${tw`tw-text-theme-transparent-500`}\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n ${tw`tw-text-body-1`}\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n ${tw`tw-cursor-not-allowed`}\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n"],"file":"Styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Loaders/Spinner/Styles.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC9C,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Loaders/Spinner/Styles.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;IAC9C,wBAAwB,EAAE,MAAM,CAAC;CAClC;AAED,eAAO,MAAM,mBAAmB,0FAsC/B,CAAC"}
|
|
@@ -4,7 +4,7 @@ var rotateAnimation = keyframes(["from{transform:rotate(0deg);}to{transform:rota
|
|
|
4
4
|
export var StyledSpinnerLoader = styled.div.withConfig({
|
|
5
5
|
displayName: "Styles__StyledSpinnerLoader",
|
|
6
6
|
componentId: "sc-1ht53g9-0"
|
|
7
|
-
})(["", " border-radius:100%;", " ", " ", " ", ""], BoxSizingStyle, function (props) {
|
|
7
|
+
})(["", " border-radius:100%;flex-shrink:0;", " ", " ", " ", ""], BoxSizingStyle, function (props) {
|
|
8
8
|
return css(["width:", "px;height:", "px;animation:", " ", "s infinite linear;"], props.$diameter, props.$diameter, rotateAnimation, props.$rotateDurationInSeconds);
|
|
9
9
|
}, function (props) {
|
|
10
10
|
return props.$activeColorPercentage === "25%" && css(["border-right:", "px solid ", ";border-bottom:", "px solid ", ";border-left:", "px solid ", ";border-top:", "px solid ", ";"], props.$stroke, props.$inactiveStrokeColor, props.$stroke, props.$inactiveStrokeColor, props.$stroke, props.$inactiveStrokeColor, props.$stroke, props.$activeStrokeColor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Loaders/Spinner/Styles.ts"],"names":["styled","css","keyframes","BoxSizingStyle","rotateAnimation","StyledSpinnerLoader","div","props","$diameter","$rotateDurationInSeconds","$activeColorPercentage","$stroke","$inactiveStrokeColor","$activeStrokeColor"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,EAAsBC,SAAtB,QAAuC,mBAAvC;AACA,SAASC,cAAT,QAA+B,sBAA/B;AAEA,IAAMC,eAAe,GAAGF,SAAH,gEAArB;AAcA,OAAO,IAAMG,mBAAmB,GAAGL,MAAM,CAACM,GAAV;AAAA;AAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Loaders/Spinner/Styles.ts"],"names":["styled","css","keyframes","BoxSizingStyle","rotateAnimation","StyledSpinnerLoader","div","props","$diameter","$rotateDurationInSeconds","$activeColorPercentage","$stroke","$inactiveStrokeColor","$activeStrokeColor"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,EAAsBC,SAAtB,QAAuC,mBAAvC;AACA,SAASC,cAAT,QAA+B,sBAA/B;AAEA,IAAMC,eAAe,GAAGF,SAAH,gEAArB;AAcA,OAAO,IAAMG,mBAAmB,GAAGL,MAAM,CAACM,GAAV;AAAA;AAAA;AAAA,kEAC5BH,cAD4B,EAI5B,UAACI,KAAD;AAAA,SACAN,GADA,uEAEWM,KAAK,CAACC,SAFjB,EAGYD,KAAK,CAACC,SAHlB,EAIeJ,eAJf,EAIkCG,KAAK,CAACE,wBAJxC;AAAA,CAJ4B,EAY5B,UAACF,KAAD;AAAA,SACAA,KAAK,CAACG,sBAAN,KAAiC,KAAjC,IACAT,GADA,iIAEkBM,KAAK,CAACI,OAFxB,EAE2CJ,KAAK,CAACK,oBAFjD,EAGmBL,KAAK,CAACI,OAHzB,EAG4CJ,KAAK,CAACK,oBAHlD,EAIiBL,KAAK,CAACI,OAJvB,EAI0CJ,KAAK,CAACK,oBAJhD,EAKgBL,KAAK,CAACI,OALtB,EAKyCJ,KAAK,CAACM,kBAL/C,CADA;AAAA,CAZ4B,EAqB5B,UAACN,KAAD;AAAA,SACAA,KAAK,CAACG,sBAAN,KAAiC,KAAjC,IACAT,GADA,iIAEkBM,KAAK,CAACI,OAFxB,EAE2CJ,KAAK,CAACM,kBAFjD,EAGmBN,KAAK,CAACI,OAHzB,EAG4CJ,KAAK,CAACK,oBAHlD,EAIiBL,KAAK,CAACI,OAJvB,EAI0CJ,KAAK,CAACK,oBAJhD,EAKgBL,KAAK,CAACI,OALtB,EAKyCJ,KAAK,CAACM,kBAL/C,CADA;AAAA,CArB4B,EA8B1B,UAACN,KAAD;AAAA,SACFA,KAAK,CAACG,sBAAN,KAAiC,KAAjC,IACAT,GADA,iIAEkBM,KAAK,CAACI,OAFxB,EAE2CJ,KAAK,CAACM,kBAFjD,EAGmBN,KAAK,CAACI,OAHzB,EAG4CJ,KAAK,CAACM,kBAHlD,EAIiBN,KAAK,CAACI,OAJvB,EAI0CJ,KAAK,CAACK,oBAJhD,EAKgBL,KAAK,CAACI,OALtB,EAKyCJ,KAAK,CAACM,kBAL/C,CADE;AAAA,CA9B0B,CAAzB","sourcesContent":["import styled, { css, keyframes } from \"styled-components\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\n\nconst rotateAnimation = keyframes`\n from { transform: rotate(0deg); }\n to { transform: rotate(359deg); }\n`;\n\nexport interface StyledSpinnerLoaderProps {\n $diameter: number;\n $stroke: number;\n $activeStrokeColor: string;\n $inactiveStrokeColor: string;\n $activeColorPercentage: \"25%\" | \"50%\" | \"75%\";\n $rotateDurationInSeconds: number;\n}\n\nexport const StyledSpinnerLoader = styled.div<StyledSpinnerLoaderProps>`\n ${BoxSizingStyle}\n border-radius: 100%;\n flex-shrink: 0;\n ${(props) =>\n css`\n width: ${props.$diameter}px;\n height: ${props.$diameter}px;\n animation: ${rotateAnimation} ${props.$rotateDurationInSeconds}s infinite\n linear;\n `}\n\n ${(props) =>\n props.$activeColorPercentage === \"25%\" &&\n css`\n border-right: ${props.$stroke}px solid ${props.$inactiveStrokeColor};\n border-bottom: ${props.$stroke}px solid ${props.$inactiveStrokeColor};\n border-left: ${props.$stroke}px solid ${props.$inactiveStrokeColor};\n border-top: ${props.$stroke}px solid ${props.$activeStrokeColor};\n `}\n\n ${(props) =>\n props.$activeColorPercentage === \"50%\" &&\n css`\n border-right: ${props.$stroke}px solid ${props.$activeStrokeColor};\n border-bottom: ${props.$stroke}px solid ${props.$inactiveStrokeColor};\n border-left: ${props.$stroke}px solid ${props.$inactiveStrokeColor};\n border-top: ${props.$stroke}px solid ${props.$activeStrokeColor};\n `}\n\n ${(props) =>\n props.$activeColorPercentage === \"75%\" &&\n css`\n border-right: ${props.$stroke}px solid ${props.$activeStrokeColor};\n border-bottom: ${props.$stroke}px solid ${props.$activeStrokeColor};\n border-left: ${props.$stroke}px solid ${props.$inactiveStrokeColor};\n border-top: ${props.$stroke}px solid ${props.$activeStrokeColor};\n `}\n`;\n"],"file":"Styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,EAAE,EACF,SAAS,EACT,UAAU,EAIV,YAAY,EACZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,oBAAY,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,KAAK;IAEpB,QAAQ,EAAE,SAAS,CAAC;IAEpB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEvD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAE9B,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,EAAE,EACF,SAAS,EACT,UAAU,EAIV,YAAY,EACZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAMf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAI3C,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,oBAAY,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,KAAK;IAEpB,QAAQ,EAAE,SAAS,CAAC;IAEpB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAEvD,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAE9B,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAEhC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAErC,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAkH1B,CAAC"}
|
|
@@ -47,10 +47,18 @@ export var Menu = function Menu(_ref) {
|
|
|
47
47
|
var handleRefRef = useForkRef(target ? target.ref : undefined, setChildNode);
|
|
48
48
|
var handleRef = useForkRef(handleRefRef, elementRef);
|
|
49
49
|
var handleOpen = useCallback(function (event) {
|
|
50
|
+
var _target$props;
|
|
51
|
+
|
|
50
52
|
event && event.preventDefault();
|
|
53
|
+
|
|
54
|
+
if (preventClickEventBubbling) {
|
|
55
|
+
event == null ? void 0 : event.stopPropagation();
|
|
56
|
+
}
|
|
57
|
+
|
|
51
58
|
setOpen(true);
|
|
52
59
|
typeof onOpen === "function" && onOpen();
|
|
53
|
-
|
|
60
|
+
typeof (target == null ? void 0 : (_target$props = target.props) == null ? void 0 : _target$props.onClick) === "function" && target.props.onClick(event);
|
|
61
|
+
}, [onOpen, preventClickEventBubbling, target == null ? void 0 : target.props]);
|
|
54
62
|
var handleClose = useCallback(function () {
|
|
55
63
|
if (typeof onBeforeClose === "function" && !onBeforeClose()) {
|
|
56
64
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Menu/Menu.tsx"],"names":["React","useRef","useState","useCallback","useEffect","classnames","Popper","useForkRef","Overlay","Window","MenuContextProvider","StyledMenu","Menu","children","disableFocusLock","onMenuClick","handleScroll","mode","open","defaultOpen","onOpen","onClose","onBeforeClose","position","target","className","menuClassName","popperClassName","backgroundElementClass","windowAbsolutelyPositioned","preventClickEventBubbling","setOpen","childNode","setChildNode","elementRef","handleRefRef","ref","undefined","handleRef","handleOpen","event","preventDefault","handleClose","childProps","forceClose","targetProps","
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Menu/Menu.tsx"],"names":["React","useRef","useState","useCallback","useEffect","classnames","Popper","useForkRef","Overlay","Window","MenuContextProvider","StyledMenu","Menu","children","disableFocusLock","onMenuClick","handleScroll","mode","open","defaultOpen","onOpen","onClose","onBeforeClose","position","target","className","menuClassName","popperClassName","backgroundElementClass","windowAbsolutelyPositioned","preventClickEventBubbling","setOpen","childNode","setChildNode","elementRef","handleRefRef","ref","undefined","handleRef","handleOpen","event","preventDefault","stopPropagation","props","onClick","handleClose","childProps","forceClose","targetProps","cloneElement","displayName"],"mappings":"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","sourcesContent":["import React, {\n useRef,\n FC,\n ReactNode,\n MouseEvent,\n useState,\n useCallback,\n useEffect,\n ReactElement,\n Ref,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { Popper } from \"../Popper\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Overlay } from \"../Overlay\";\nimport { Window } from \"../Window\";\nimport { Placement } from \"@popperjs/core\";\nimport { MenuContextProvider } from \"./context\";\nimport { StyledMenu } from \"./Styles\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport type MenuMode = \"normal\" | \"wider\" | \"tiny\";\n\nexport interface IMenu {\n /** Menu content */\n children: ReactNode;\n /** On menu element click */\n onMenuClick?: (event: MouseEvent<HTMLElement>) => void;\n /** Handle scroll bar */\n handleScroll?: boolean;\n /** Disable Focus Lock */\n disableFocusLock?: boolean;\n /** Menu width mode */\n mode?: MenuMode;\n /** Should menu be open when it's mounted */\n open?: boolean;\n /** Callback triggered when modal has been opened */\n onOpen?: () => void;\n /** Callback triggered when modal has been closed */\n onClose?: () => void;\n /** Before close callback */\n onBeforeClose?: () => boolean;\n /** Position Menu */\n position?: Placement;\n /** Target element */\n target?: ElementWithRef<Element>;\n className?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Should Window be positioned absolutely */\n windowAbsolutelyPositioned?: boolean;\n /** Prevents click event from bubbling to parent elements */\n preventClickEventBubbling?: boolean;\n}\n\nexport const Menu: FC<IMenu> = ({\n children,\n disableFocusLock = false,\n onMenuClick,\n handleScroll = true,\n mode = \"normal\",\n open: defaultOpen = false,\n onOpen,\n onClose,\n onBeforeClose,\n position = \"bottom-start\",\n target,\n className,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n windowAbsolutelyPositioned = false,\n preventClickEventBubbling = false,\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n const [childNode, setChildNode] = useState<Element | null>();\n const elementRef = useRef<Element | null>(null);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleRefRef = useForkRef(\n target ? target.ref : undefined,\n setChildNode\n );\n const handleRef = useForkRef(handleRefRef, elementRef);\n\n const handleOpen = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event && event.preventDefault();\n if (preventClickEventBubbling) {\n event?.stopPropagation();\n }\n setOpen(true);\n typeof onOpen === \"function\" && onOpen();\n typeof target?.props?.onClick === \"function\" &&\n target.props.onClick(event);\n },\n [onOpen, preventClickEventBubbling, target?.props]\n );\n\n const handleClose = useCallback(() => {\n if (typeof onBeforeClose === \"function\" && !onBeforeClose()) {\n return;\n }\n setOpen(false);\n typeof onClose === \"function\" && onClose();\n }, [onClose, onBeforeClose]);\n\n const childProps = {\n forceClose: handleClose,\n };\n\n const targetProps = {\n open,\n ref: handleRef,\n onClick: handleOpen,\n };\n\n return (\n <>\n {target && React.cloneElement(target, targetProps)}\n {open ? (\n <Window\n onClose={handleClose}\n disableScrollLock={!handleScroll}\n disableFocusLock={disableFocusLock}\n style={{\n position: windowAbsolutelyPositioned ? \"absolute\" : \"fixed\",\n }}\n preventClickEventBubbling={preventClickEventBubbling}\n >\n <Overlay\n className={backgroundElementClass}\n onClick={handleClose}\n tabIndex={-1}\n disableBackgroundColor\n />\n <Popper\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={position}\n className={popperClassName}\n tabIndex={-1}\n >\n <StyledMenu\n className={classnames(\n \"c-simple-menu__paper\",\n `c-simple-menu__${mode}`,\n menuClassName,\n className\n )}\n $mode={mode}\n onMouseDown={onMenuClick}\n >\n <MenuContextProvider value={{ open, setOpen }}>\n {typeof children === \"function\"\n ? children(childProps)\n : children}\n </MenuContextProvider>\n </StyledMenu>\n </Popper>\n </Window>\n ) : null}\n </>\n );\n};\n\nMenu.displayName = \"Menu\";\n"],"file":"Menu.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,MAAM,OAAO,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAUpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IAEzD,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IAEnC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE7B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAE/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAE7B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAE5C,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAEpD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEhE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CAkGhD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo } from "react";
|
|
2
2
|
import classNames from "classnames";
|
|
3
3
|
import { Checkbox } from "../../Checkbox/Checkbox";
|
|
4
|
-
import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupOption } from "./Styles";
|
|
4
|
+
import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupOption, StyledOptionGroupLi } from "./Styles";
|
|
5
5
|
import { List } from "../../List";
|
|
6
6
|
export var OptionGroup = function OptionGroup(_ref) {
|
|
7
7
|
var id = _ref.id,
|
|
@@ -59,9 +59,9 @@ export var OptionGroup = function OptionGroup(_ref) {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}, [allOptionValues, checked, isAllOptionsChecked, onChange]);
|
|
62
|
-
return /*#__PURE__*/React.createElement(
|
|
62
|
+
return /*#__PURE__*/React.createElement(StyledOptionGroupLi, {
|
|
63
63
|
key: id,
|
|
64
|
-
className: classNames("c-option-group
|
|
64
|
+
className: classNames("c-option-group", optionGroupClassName)
|
|
65
65
|
}, /*#__PURE__*/React.createElement(StyledOptionGroup, {
|
|
66
66
|
key: id
|
|
67
67
|
}, /*#__PURE__*/React.createElement(StyledOptionGroupOption, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":["React","useCallback","useEffect","useMemo","classNames","Checkbox","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","List","OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","i","values","unique","item","pos","indexOf","index","displayName"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,SAA7B,EAAwCC,OAAxC,QAA2D,OAA3D;AACA,OAAOC,UAAP,MAAuB,YAAvB;AAEA,SAASC,QAAT,QAAyB,yBAAzB;AACA,SACEC,iBADF,EAEEC,uBAFF,EAGEC,uBAHF,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":["React","useCallback","useEffect","useMemo","classNames","Checkbox","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","List","OptionGroup","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","list","v","toLowerCase","includes","trim","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","undefined","allOptionValues","map","handleClick","e","stopPropagation","i","values","unique","item","pos","indexOf","index","displayName"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, FC } from \"react\";\nimport classNames from \"classnames\";\nimport { IOptionItemProps } from \"../Option/Option\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n} from \"./Styles\";\nimport { List } from \"../../List\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => void;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\n\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n {name}\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n <List>\n {list.map((item: IOptionItemProps, index) => {\n return typeof renderOptions === \"function\"\n ? renderOptions(item, index)\n : item.name;\n })}\n </List>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"file":"OptionGroup.js"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare const StyledOptionGroupLi: import("styled-components").StyledComponent<"li", any, {}, never>;
|
|
1
2
|
export declare const StyledOptionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
3
|
export declare const StyledOptionGroupHeader: import("styled-components").StyledComponent<"h3", any, {}, never>;
|
|
3
4
|
export declare const StyledOptionGroupOption: import("styled-components").StyledComponent<"div", any, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,mEAWnC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,mBAAmB,mEAE/B,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,mEAWnC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import styled, { css } from "styled-components";
|
|
2
2
|
import { BoxSizingStyle } from "../../BoxSizingStyle";
|
|
3
3
|
import { FontStyle } from "../../FontStyle";
|
|
4
|
+
export var StyledOptionGroupLi = styled.li.withConfig({
|
|
5
|
+
displayName: "Styles__StyledOptionGroupLi",
|
|
6
|
+
componentId: "sc-16v5afu-0"
|
|
7
|
+
})(["flex-direction:column;"]);
|
|
4
8
|
export var StyledOptionGroup = styled.div.withConfig({
|
|
5
9
|
displayName: "Styles__StyledOptionGroup",
|
|
6
|
-
componentId: "sc-16v5afu-
|
|
10
|
+
componentId: "sc-16v5afu-1"
|
|
7
11
|
})(["", " ", " ", ""], {
|
|
8
12
|
"userSelect": "none"
|
|
9
13
|
}, FontStyle, BoxSizingStyle);
|
|
10
14
|
StyledOptionGroup.displayName = "StyledOptionGroup";
|
|
11
15
|
export var StyledOptionGroupHeader = styled.h3.withConfig({
|
|
12
16
|
displayName: "Styles__StyledOptionGroupHeader",
|
|
13
|
-
componentId: "sc-16v5afu-
|
|
17
|
+
componentId: "sc-16v5afu-2"
|
|
14
18
|
})(["height:28px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--color-theme-900);margin:6px 0;*{margin:auto 0;}"]);
|
|
15
19
|
StyledOptionGroupHeader.displayName = "StyledOptionGroupHeader";
|
|
16
20
|
export var StyledOptionGroupOption = styled.div.withConfig({
|
|
17
21
|
displayName: "Styles__StyledOptionGroupOption",
|
|
18
|
-
componentId: "sc-16v5afu-
|
|
22
|
+
componentId: "sc-16v5afu-3"
|
|
19
23
|
})(["", ""], function (props) {
|
|
20
24
|
return props.hover && css(["background-color:var(--color-theme-200);"]);
|
|
21
25
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledOptionGroup","div","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","props","hover"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAEA,SAASC,cAAT,QAA+B,sBAA/B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA,OAAO,IAAMC,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":["styled","css","BoxSizingStyle","FontStyle","StyledOptionGroupLi","li","StyledOptionGroup","div","displayName","StyledOptionGroupHeader","h3","StyledOptionGroupOption","props","hover"],"mappings":"AAAA,OAAOA,MAAP,IAAiBC,GAAjB,QAA4B,mBAA5B;AAEA,SAASC,cAAT,QAA+B,sBAA/B;AACA,SAASC,SAAT,QAA0B,iBAA1B;AAEA,OAAO,IAAMC,mBAAmB,GAAGJ,MAAM,CAACK,EAAV;AAAA;AAAA;AAAA,8BAAzB;AAGP,OAAO,IAAMC,iBAAiB,GAAGN,MAAM,CAACO,GAAV;AAAA;AAAA;AAAA,uBACxB;AAAA;AAAA,CADwB,EAE1BJ,SAF0B,EAG1BD,cAH0B,CAAvB;AAMPI,iBAAiB,CAACE,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,IAAMC,uBAAuB,GAAGT,MAAM,CAACU,EAAV;AAAA;AAAA;AAAA,4JAA7B;AAaPD,uBAAuB,CAACD,WAAxB,GAAsC,yBAAtC;AAEA,OAAO,IAAMG,uBAAuB,GAAGX,MAAM,CAACO,GAAV;AAAA;AAAA;AAAA,aAChC,UAACK,KAAD;AAAA,SACAA,KAAK,CAACC,KAAN,IACAZ,GADA,8CADA;AAAA,CADgC,CAA7B;AAQPU,uBAAuB,CAACH,WAAxB,GAAsC,yBAAtC","sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\n\nexport const StyledOptionGroupLi = styled.li`\n flex-direction: column;\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.h3`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n color: var(--color-theme-900);\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"file":"Styles.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,SAAS,CAAC;IAE5D,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAE9D,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE9C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAOf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAUlE,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,cAAc,GAAG,SAAS,CAAC;IAE5D,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAEnC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAEjC,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAE9D,UAAU,CAAC,EAAE,YAAY,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE9C,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAE1B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAiOnC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
3
|
var _excluded = ["type", "mode", "target", "options", "selected", "position", "onChange", "actionIcon", "actionLabel", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption", "handleDefaultOptionChange", "preselectDefaultValue"];
|
|
4
4
|
import React, { useCallback, useState, useMemo, useEffect, useRef } from "react";
|
|
5
|
-
import { Autocomplete } from "../Autocomplete";
|
|
5
|
+
import { Autocomplete, isOptionGroup } from "../Autocomplete";
|
|
6
6
|
import { Tooltip } from "../Tooltip";
|
|
7
7
|
import { Menu } from "../Menu/Menu";
|
|
8
8
|
import classNames from "classnames";
|
|
@@ -57,10 +57,6 @@ export var Select = function Select(_ref) {
|
|
|
57
57
|
open = _useState2[0],
|
|
58
58
|
setOpen = _useState2[1];
|
|
59
59
|
|
|
60
|
-
function isGroup(item) {
|
|
61
|
-
return item.options !== undefined;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
60
|
var selectedOptions = useMemo(function () {
|
|
65
61
|
return selected instanceof Array ? selected : [selected];
|
|
66
62
|
}, [selected]);
|
|
@@ -73,7 +69,7 @@ export var Select = function Select(_ref) {
|
|
|
73
69
|
}, [options]);
|
|
74
70
|
var allOptionValues = useMemo(function () {
|
|
75
71
|
return selectOptions.reduce(function (acc, option) {
|
|
76
|
-
if (!
|
|
72
|
+
if (!isOptionGroup(option)) {
|
|
77
73
|
return [].concat(acc, [option.id]);
|
|
78
74
|
}
|
|
79
75
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","isGroup","item","undefined","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChangeCallback","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n function isGroup(\n item: IOptionGroupProps | IOptionItemProps\n ): item is IOptionGroupProps {\n return (item as IOptionGroupProps).options !== undefined;\n }\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Select/Select.tsx"],"names":["React","useCallback","useState","useMemo","useEffect","useRef","Autocomplete","isOptionGroup","Tooltip","Menu","classNames","useForkRef","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","OptionContent","Select","type","mode","target","options","selected","position","onChange","actionIcon","actionLabel","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","prop","childNode","setChildNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","isAllOptionsChecked","every","includes","focus","handleChange","selectedValue","onClose","onOpen","props","menuClassName","className","handleEmptyAction","value","current","reset","handleDefaultOptionChangeCallback","length","handleRenderOption","image","color","textColor","name","additionalInfo","zIndex","displayName"],"mappings":"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","sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n} from \"react\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\nimport classNames from \"classnames\";\nimport { Placement } from \"@popperjs/core\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n} from \"./Styles\";\nimport { OptionContent } from \"./OptionContent/OptionContent\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Set action icon in select */\n actionIcon?: ReactElement;\n /** Set label for action icon */\n actionLabel?: string;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n position = \"bottom-start\",\n onChange = () => null,\n actionIcon,\n actionLabel,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n ...prop\n}) => {\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(setChildNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n }, [childNode, open]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n setOpen(false);\n }\n onChange(selectedValue);\n },\n [onChange, forceCloseMenu]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox checked={isAllOptionsChecked} {...props} />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox {...props} />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [isAllOptionsChecked, renderOption, selectedOptions, type]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n <StyledSelectInput\n ref={handleRef}\n autoFocus\n placeholder={placeholder}\n />\n {actionIcon && actionLabel && (\n <Tooltip\n popperTooltipStyle={{ zIndex: 1301 }}\n title={actionLabel}\n >\n <div>{actionIcon}</div>\n </Tooltip>\n )}\n {actionIcon && !actionLabel && actionIcon}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"file":"Select.js"}
|