@activecollab/components 2.0.82 → 2.0.83
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/Checkbox/Checkbox.js +19 -3
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/Checkbox/CheckboxIcon.js +1 -1
- package/dist/cjs/components/Checkbox/CheckboxIcon.js.map +1 -1
- package/dist/cjs/components/Select/Select.js +4 -17
- package/dist/cjs/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.js +13 -2
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/esm/components/Checkbox/CheckboxIcon.js +1 -1
- package/dist/esm/components/Checkbox/CheckboxIcon.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +3 -1
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js +2 -14
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/index.js +24 -21
- 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,"file":"Select.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_OptionContent","_Styles","_useForkRef","_Autocomplete","_Menu","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Select","_ref","type","mode","target","options","selected","position","onChange","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","startAdornment","endAdornment","focusInput","prop","console","warn","childNode","useRef","elementRef","handleRef","useForkRef","Tag","Menu","formRef","open","setOpen","useState","selectedOptions","useMemo","Array","selectOptions","allOptionValues","reduce","acc","option","isOptionGroup","id","allGroupOptions","map","getMixedOptionsRecursively","useCallback","mixedOptions","forEach","mixed","push","length","nestedMixedOptions","concat","item","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","useEffect","focus","handleChange","selectedValue","undefined","onClose","onOpen","props","menuClassName","classNames","onPopperOpen","className","handleEmptyAction","value","reset","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","OptionContent","imageUrl","image","color","textColor","name","additionalInfo","StyledCheckbox","_extends2","checked","StyledRadioButton","StyledSelectForm","ref","StyledStartAdornment","StyledSelectInput","StyledEndAdornment","Autocomplete","clearInputOnSelect","inputEl","exports","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"handleEmptyAction\" | \"clearInputOnSelect\"\n > {\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 /** 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 /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\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 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 startAdornment,\n endAdornment,\n focusInput = false,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, 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 getMixedOptionsRecursively = useCallback(\n (options: (IOptionGroupProps | IOptionItemProps)[]) => {\n let mixedOptions: (IOptionGroupProps | IOptionItemProps)[] = [];\n\n options.forEach((option) => {\n if (option.mixed) {\n mixedOptions.push(option);\n }\n if (\n isOptionGroup(option) &&\n option.options &&\n option.options.length > 0\n ) {\n const nestedMixedOptions = getMixedOptionsRecursively(option.options);\n mixedOptions = mixedOptions.concat(nestedMixedOptions);\n }\n });\n\n return mixedOptions;\n },\n []\n );\n\n const mixedOptions = useRef(\n type === \"multiple\" && selectOptions\n ? getMixedOptionsRecursively(selectOptions).map((item) => item.id)\n : []\n );\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\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 onPopperOpen: () => elementRef?.current?.focus(),\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\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_OptionContent","_Styles","_useForkRef","_Autocomplete","_Menu","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","Select","_ref","type","mode","target","options","selected","mixed","position","onChange","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","startAdornment","endAdornment","focusInput","prop","console","warn","childNode","useRef","elementRef","handleRef","useForkRef","Tag","Menu","formRef","open","setOpen","useState","selectedOptions","useMemo","Array","selectOptions","allOptionValues","reduce","acc","option","isOptionGroup","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","useCallback","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","useEffect","focus","handleChange","selectedValue","undefined","onClose","onOpen","props","menuClassName","classNames","onPopperOpen","className","handleEmptyAction","value","reset","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","OptionContent","imageUrl","image","color","textColor","name","additionalInfo","StyledCheckbox","_extends2","checked","StyledRadioButton","StyledSelectForm","ref","StyledStartAdornment","StyledSelectInput","StyledEndAdornment","Autocomplete","clearInputOnSelect","inputEl","exports","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\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 /** 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 /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\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 startAdornment,\n endAdornment,\n focusInput = false,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, 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 mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\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 onPopperOpen: () => elementRef?.current?.focus(),\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\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11213,7 +11213,7 @@
|
|
|
11213
11213
|
viewBox: "0 0 16 16",
|
|
11214
11214
|
fill: "none",
|
|
11215
11215
|
xmlns: "http://www.w3.org/2000/svg",
|
|
11216
|
-
"data-testid":
|
|
11216
|
+
"data-testid": "checkbox-mixed-icon"
|
|
11217
11217
|
}, /*#__PURE__*/React__default["default"].createElement("path", {
|
|
11218
11218
|
fillRule: "evenodd",
|
|
11219
11219
|
clipRule: "evenodd",
|
|
@@ -11286,7 +11286,7 @@
|
|
|
11286
11286
|
});
|
|
11287
11287
|
StyledCheckbox$1.displayName = "StyledCheckbox";
|
|
11288
11288
|
|
|
11289
|
-
var _excluded$R = ["className", "hover", "id", "mixed", "onChange"];
|
|
11289
|
+
var _excluded$R = ["className", "hover", "id", "mixed", "checked", "onChange"];
|
|
11290
11290
|
/**
|
|
11291
11291
|
* Checkbox component
|
|
11292
11292
|
*/
|
|
@@ -11297,18 +11297,33 @@
|
|
|
11297
11297
|
id = _ref$id === void 0 ? "checkbox" : _ref$id,
|
|
11298
11298
|
_ref$mixed = _ref.mixed,
|
|
11299
11299
|
mixed = _ref$mixed === void 0 ? false : _ref$mixed,
|
|
11300
|
+
checked = _ref.checked,
|
|
11300
11301
|
onChange = _ref.onChange,
|
|
11301
11302
|
rest = _objectWithoutProperties(_ref, _excluded$R);
|
|
11302
|
-
var _useState = React.useState(mixed),
|
|
11303
|
+
var _useState = React.useState(mixed && !checked),
|
|
11303
11304
|
_useState2 = _slicedToArray(_useState, 2),
|
|
11304
11305
|
indeterminate = _useState2[0],
|
|
11305
11306
|
setIndeterminate = _useState2[1];
|
|
11307
|
+
var _useState3 = React.useState(checked),
|
|
11308
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
11309
|
+
initialChecked = _useState4[0],
|
|
11310
|
+
setInitialChecked = _useState4[1];
|
|
11306
11311
|
var handleChange = React.useCallback(function (e) {
|
|
11307
11312
|
typeof onChange === "function" && onChange(e);
|
|
11313
|
+
setInitialChecked(function (prev) {
|
|
11314
|
+
return !prev;
|
|
11315
|
+
});
|
|
11308
11316
|
setIndeterminate(false);
|
|
11309
11317
|
}, [onChange]);
|
|
11310
11318
|
React.useEffect(function () {
|
|
11311
|
-
if (
|
|
11319
|
+
if (checked !== initialChecked) {
|
|
11320
|
+
setInitialChecked(checked);
|
|
11321
|
+
setIndeterminate(false);
|
|
11322
|
+
}
|
|
11323
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11324
|
+
}, [checked]);
|
|
11325
|
+
React.useEffect(function () {
|
|
11326
|
+
if (mixed !== indeterminate && !checked) {
|
|
11312
11327
|
setIndeterminate(mixed);
|
|
11313
11328
|
}
|
|
11314
11329
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -11328,6 +11343,7 @@
|
|
|
11328
11343
|
type: "checkbox",
|
|
11329
11344
|
ref: ref
|
|
11330
11345
|
}, rest, {
|
|
11346
|
+
checked: initialChecked,
|
|
11331
11347
|
onChange: handleChange
|
|
11332
11348
|
})), /*#__PURE__*/React__default["default"].createElement(StyledLabel, {
|
|
11333
11349
|
htmlFor: id,
|
|
@@ -12603,7 +12619,7 @@
|
|
|
12603
12619
|
componentId: "sc-9x4q7e-0"
|
|
12604
12620
|
})(["cursor:auto"]);
|
|
12605
12621
|
|
|
12606
|
-
var _excluded$M = ["type", "mode", "target", "options", "selected", "position", "onChange", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption", "handleDefaultOptionChange", "preselectDefaultValue", "startAdornment", "endAdornment", "focusInput"];
|
|
12622
|
+
var _excluded$M = ["type", "mode", "target", "options", "selected", "mixed", "position", "onChange", "placeholder", "emptyAction", "disableSearch", "forceCloseMenu", "selectClassName", "keepSameOptionsOrder", "onSelectOpen", "onSelectClose", "renderOption", "handleDefaultOptionChange", "preselectDefaultValue", "startAdornment", "endAdornment", "focusInput"];
|
|
12607
12623
|
var Select = function Select(_ref) {
|
|
12608
12624
|
var _ref$type = _ref.type,
|
|
12609
12625
|
type = _ref$type === void 0 ? "single" : _ref$type,
|
|
@@ -12612,6 +12628,8 @@
|
|
|
12612
12628
|
options = _ref.options,
|
|
12613
12629
|
_ref$selected = _ref.selected,
|
|
12614
12630
|
selected = _ref$selected === void 0 ? [] : _ref$selected,
|
|
12631
|
+
_ref$mixed = _ref.mixed,
|
|
12632
|
+
mixed = _ref$mixed === void 0 ? [] : _ref$mixed,
|
|
12615
12633
|
_ref$position = _ref.position,
|
|
12616
12634
|
position = _ref$position === void 0 ? "bottom-start" : _ref$position,
|
|
12617
12635
|
_ref$onChange = _ref.onChange,
|
|
@@ -12672,22 +12690,7 @@
|
|
|
12672
12690
|
return [...acc, ...allGroupOptions];
|
|
12673
12691
|
}, []);
|
|
12674
12692
|
}, [selectOptions]);
|
|
12675
|
-
var
|
|
12676
|
-
var mixedOptions = [];
|
|
12677
|
-
options.forEach(function (option) {
|
|
12678
|
-
if (option.mixed) {
|
|
12679
|
-
mixedOptions.push(option);
|
|
12680
|
-
}
|
|
12681
|
-
if (isOptionGroup(option) && option.options && option.options.length > 0) {
|
|
12682
|
-
var nestedMixedOptions = getMixedOptionsRecursively(option.options);
|
|
12683
|
-
mixedOptions = mixedOptions.concat(nestedMixedOptions);
|
|
12684
|
-
}
|
|
12685
|
-
});
|
|
12686
|
-
return mixedOptions;
|
|
12687
|
-
}, []);
|
|
12688
|
-
var mixedOptions = React.useRef(type === "multiple" && selectOptions ? getMixedOptionsRecursively(selectOptions).map(function (item) {
|
|
12689
|
-
return item.id;
|
|
12690
|
-
}) : []);
|
|
12693
|
+
var mixedOptions = React.useRef(type === "multiple" && mixed.length ? mixed : []);
|
|
12691
12694
|
var removeFromMixedOptions = React.useCallback(function (idsToRemove) {
|
|
12692
12695
|
mixedOptions.current = mixedOptions.current.filter(function (mixedOption) {
|
|
12693
12696
|
return !idsToRemove.includes(mixedOption);
|