@activecollab/components 1.0.414 → 1.0.417
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/ComboBox/ComboBox.js +12 -5
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/ComboBox/Styles.js +10 -7
- package/dist/cjs/components/ComboBox/Styles.js.map +1 -1
- package/dist/cjs/components/Steppers/DateStepper/Styles.js +1 -1
- package/dist/cjs/components/Steppers/DateStepper/Styles.js.map +1 -1
- package/dist/cjs/hooks/useInputNumber.js +2 -1
- package/dist/cjs/hooks/useInputNumber.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js +12 -5
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/ComboBox/Styles.d.ts +1 -0
- package/dist/esm/components/ComboBox/Styles.d.ts.map +1 -1
- package/dist/esm/components/ComboBox/Styles.js +10 -7
- package/dist/esm/components/ComboBox/Styles.js.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/Styles.d.ts.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/Styles.js +1 -1
- package/dist/esm/components/Steppers/DateStepper/Styles.js.map +1 -1
- package/dist/esm/hooks/useInputNumber.d.ts.map +1 -1
- package/dist/esm/hooks/useInputNumber.js +2 -1
- package/dist/esm/hooks/useInputNumber.js.map +1 -1
- package/dist/index.js +25 -14
- 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":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","useIsFirstRender","MultiAvatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onDeselect?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n onDeselect,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 1\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAEVC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,OAAO,EACPC,QAAQ,QACH,OAAO;AACd,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAEEC,aAAa,QACR,8BAA8B;AACrC,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SACEC,4BAA4B,EAC5BC,sCAAsC,EACtCC,mBAAmB,EACnBC,kBAAkB,EAClBC,iBAAiB,QACZ,UAAU;AAEjB,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,iBAAiB;AACjE,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,MAAM,QAAqB,WAAW;AAC/C,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,UAAU,QAAQ,0BAA0B;AAErD,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,kBAAkB,QAAQ,iDAAiD;AACpF,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,WAAW,QAAQ,gBAAgB;AA+C5C,OAAO,IAAMC,QAA4B,GAAG,SAA/BA,QAA4B,OAwBnC;EAAA;EAAA,wBAvBJC,OAAO;IAAPA,OAAO,6BAAG,EAAE;IACZC,QAAQ,QAARA,QAAQ;IAAA,oBACRC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IACfC,WAAW,QAAXA,WAAW;IACXC,QAAQ,QAARA,QAAQ;IACRC,WAAW,QAAXA,WAAW;IACXC,iBAAiB,QAAjBA,iBAAiB;IAAA,qBACjBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IAAA,iBAChBC,IAAI;IAAJA,IAAI,0BAAG,SAAS;IAAA,oBAChBC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IAAA,iBACfC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,UAAU,QAAVA,UAAU;IAAA,2BACVC,cAAc;IAAdA,cAAc,oCAAGF,IAAI,KAAK,QAAQ;IAClCG,YAAY,QAAZA,YAAY;IAAA,uBACZC,UAAU;IAAVA,UAAU,gCAAG,CAAC;IACdC,gBAAgB,QAAhBA,gBAAgB;IAAA,qBAChBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IAChBC,qBAAqB,QAArBA,qBAAqB;IACrBC,aAAa,QAAbA,aAAa;IACbC,OAAO,QAAPA,OAAO;IACPC,OAAO,QAAPA,OAAO;IACPC,UAAU,QAAVA,UAAU;IACPC,IAAI;EAEP,IAAMC,YAAY,GAAGtD,OAAO,CAAC,YAAM;IACjC,IAAIuD,KAAK,GAAG,EAAE;IACd,IAAI,CAACvB,QAAQ,EAAE;MACb,OAAOuB,KAAK;IACd;IACAxB,OAAO,CAACyB,GAAG,CAAC,UAACC,CAAC,EAAK;MACjB,IAAKA,CAAC,YAADA,CAAC,CAAwB1B,OAAO,EAAE;QACrC,OAAQ0B,CAAC,CAAuB1B,OAAO,CAAC2B,IAAI,CAAC,UAACC,CAAC,EAAK;UAClD,IAAIA,CAAC,CAACC,EAAE,KAAK5B,QAAQ,EAAE;YACrBuB,KAAK,GAAGI,CAAC,CAACE,IAAI;YACd;UACF;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAIJ,CAAC,CAACG,EAAE,KAAK5B,QAAQ,EAAE;UACrBuB,KAAK,GAAGE,CAAC,CAACI,IAAI;UACd;QACF;MACF;IACF,CAAC,CAAC;IACF,OAAON,KAAK;EACd,CAAC,EAAE,CAACxB,OAAO,EAAEC,QAAQ,CAAC,CAAC;EACvB,gBAA0BnC,QAAQ,CAACyD,YAAY,CAAC;IAAzCC,KAAK;IAAEO,QAAQ;EACtB,iBAA8BjE,QAAQ,CAAU,KAAK,CAAC;IAA/CkE,OAAO;IAAEC,UAAU;EAC1B,IAAMC,cAAc,GAAGrE,WAAW,CAAC,UAACsE,CAAC;IAAA,OAAKJ,QAAQ,CAACI,CAAC,CAACC,MAAM,CAACZ,KAAK,CAAC;EAAA,GAAE,EAAE,CAAC;EACvE,IAAMa,SAAS,GAAGrE,MAAM,EAA2B;EACnD,IAAMsE,UAAU,GAAGtE,MAAM,CAA0B,IAAI,CAAC;EACxD,IAAMuE,SAAS,GAAGhE,UAAU,CAAC8D,SAAS,EAAEC,UAAU,CAAC;EACnD,IAAME,UAAU,GAAGxE,MAAM,CAAiB,IAAI,CAAC;EAC/C,IAAMyE,WAAW,GAAGzE,MAAM,CAAiB,IAAI,CAAC;EAChD,IAAM0E,WAAW,GAAG1E,MAAM,CAAwB,IAAI,CAAC;EAEvD,iBAAwBF,QAAQ,CAAC,KAAK,CAAC;IAAhC6E,IAAI;IAAEC,OAAO;EACpB,IAAMC,aAAa,GAAGhD,gBAAgB,EAAE;EAExCP,iBAAiB,CAACkD,UAAU,EAAE,UAACL,CAAC,EAAK;IAAA;IACnC,IAAIA,CAAC,CAACC,MAAM,4BAAIM,WAAW,CAACI,OAAO,aAAnB,qBAAqBC,QAAQ,CAACZ,CAAC,CAACC,MAAM,CAAS,EAAE;MAC/D;IACF;IACAQ,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,CAAC;EAEF,IAAMI,eAAe,GAAGnF,WAAW,CACjC,UAACsE,CAAC,EAAK;IACL,IAAIA,CAAC,CAACc,GAAG,KAAK,QAAQ,IAAIN,IAAI,EAAE;MAC9BC,OAAO,CAAC,KAAK,CAAC;MACdb,QAAQ,CAACR,YAAY,CAAC;MACtBY,CAAC,CAACe,eAAe,EAAE;IACrB;IAEA,IAAIf,CAAC,CAACc,GAAG,KAAK,OAAO,IAAIvC,IAAI,KAAK,UAAU,EAAE;MAC5CqB,QAAQ,CAAC,EAAE,CAAC;IACd;IAEA,IAAII,CAAC,CAACc,GAAG,KAAK,OAAO,IAAI,CAACN,IAAI,IAAIX,OAAO,EAAE;MACzCY,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,EACD,CAACZ,OAAO,EAAEW,IAAI,EAAEpB,YAAY,EAAEb,IAAI,CAAC,CACpC;EAED3C,SAAS,CAAC,YAAM;IAAA;IACd4E,IAAI,KAAIN,SAAS,0CAATA,SAAS,CAAES,OAAO,qBAAlB,mBAAoBK,KAAK,EAAE;IACnC,CAACR,IAAI,KAAIN,SAAS,2CAATA,SAAS,CAAES,OAAO,qBAAlB,oBAAoBM,IAAI,EAAE;EACrC,CAAC,EAAE,CAACf,SAAS,EAAEM,IAAI,CAAC,CAAC;EAErB5E,SAAS,CAAC,YAAM;IACdgE,QAAQ,CAACR,YAAY,CAAC;EACxB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElBxD,SAAS,CAAC,YAAM;IACd,IAAI,CAAC4E,IAAI,IAAI,CAACE,aAAa,IAAI,CAACb,OAAO,EAAE;MACvC,IAAI,OAAOb,OAAO,KAAK,UAAU,EAAE;QACjCA,OAAO,EAAE;MACX;IACF;EACF,CAAC,EAAE,CAACa,OAAO,EAAEa,aAAa,EAAE1B,OAAO,EAAEwB,IAAI,CAAC,CAAC;EAE3C,IAAMU,WAAW,GAAGxF,WAAW,CAC7B,UAAC6D,CAAC,EAAK;IACLpB,iBAAiB,oBAAjBA,iBAAiB,CAAGoB,CAAC,CAAC;IACtBkB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAACtC,iBAAiB,CAAC,CACpB;EAED,IAAMgD,YAAY,GAAGzF,WAAW,CAC9B,UAAC0F,aAAa,EAAK;IACjB,IAAIA,aAAa,KAAKtD,QAAQ,IAAI,OAAOG,QAAQ,KAAK,UAAU,EAAE;MAChEA,QAAQ,CAACmD,aAAa,CAAC;IACzB;IACA,IAAI3C,cAAc,EAAE;MAClBgC,OAAO,CAAC,KAAK,CAAC;IAChB;EACF,CAAC,EACD,CAAChC,cAAc,EAAER,QAAQ,EAAEH,QAAQ,CAAC,CACrC;EAED,IAAMuD,MAAM,GAAG3F,WAAW,CAAC,YAAM;IAC/B,IAAI,CAAC0C,QAAQ,EAAE;MACbqC,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,EAAE,CAACrC,QAAQ,CAAC,CAAC;EAEd,IAAMkD,kBAAkB,GAAG5F,WAAW,CACpC,UAAC6F,MAAM,EAAEC,KAAK,EAAK;IACjB,IAAI,OAAO9C,YAAY,KAAK,UAAU,EAAE;MACtC,OAAOA,YAAY,CAAC6C,MAAM,EAAEC,KAAK,CAAC;IACpC;IACA,IAAIjD,IAAI,KAAK,UAAU,EAAE;MACvB,oBACE,uDACE,oBAAC,aAAa;QACZ,QAAQ,EAAEgD,MAAM,CAACE,KAAM;QACvB,KAAK,EAAEF,MAAM,CAACG,KAAM;QACpB,SAAS,EAAEH,MAAM,CAACI,SAAU;QAC5B,IAAI,EAAEJ,MAAM,CAAC5B;MAAK,EAClB,eACF,oBAAC,QAAQ,EAAK6B,KAAK,CAAI,CACtB;IAEP;IACA,oBACE,uDACE,oBAAC,aAAa;MACZ,QAAQ,EAAED,MAAM,CAACE,KAAM;MACvB,KAAK,EAAEF,MAAM,CAACG,KAAM;MACpB,SAAS,EAAEH,MAAM,CAACI,SAAU;MAC5B,IAAI,EAAEJ,MAAM,CAAC5B;IAAK,EAClB,eACF,oBAAC,WAAW,EAAK6B,KAAK,CAAI,CACzB;EAEP,CAAC,EACD,CAACjD,IAAI,EAAEG,YAAY,CAAC,CACrB;EAED,IAAMkD,cAAc,GAAGlG,WAAW,CAChC,UAACsE,CAAC,EAAK;IACLA,CAAC,CAACe,eAAe,EAAE;IACnB,IAAI,OAAO7B,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,EAAE;IACd,CAAC,MAAM,IAAIX,IAAI,KAAK,UAAU,EAAE;MAC9BN,QAAQ,oBAARA,QAAQ,CAAG,EAAE,CAAC;IAChB,CAAC,MAAM;MACLA,QAAQ,oBAARA,QAAQ,CAAG,EAAE,CAAC;IAChB;IAEAgB,OAAO,oBAAPA,OAAO,EAAI;IACXwB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAAClC,IAAI,EAAEN,QAAQ,EAAEgB,OAAO,EAAEC,UAAU,CAAC,CACtC;EAED,IAAM2C,eAAe,GAAGnG,WAAW,CAAC,UAACsE,CAAC,EAAK;IACzCA,CAAC,CAAC8B,cAAc,EAAE;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,UAAU,GAAGrG,WAAW,CAAC,YAAM;IACnCkE,QAAQ,CAACR,YAAY,CAAC;IACtBU,UAAU,CAAC,CAACD,OAAO,CAAC;EACtB,CAAC,EAAE,CAACA,OAAO,EAAET,YAAY,CAAC,CAAC;EAE3B,IAAM4C,mBAAmB,GAAGtG,WAAW,CACrC,UAAC6F,MAAM,EAAEU,KAAK,EAAK;IACjB,IAAI,OAAOzD,UAAU,KAAK,UAAU,EAAE;MACpC,OAAOA,UAAU,CAAC+C,MAAM,EAAEU,KAAK,CAAC;IAClC;IACA,IAAMC,WAAiC,GAAG;MACxC7D,IAAI,EAAE;IACR,CAAC;IACD,QAAQA,IAAI;MACV,KAAK,KAAK;QACR6D,WAAW,CAAC7D,IAAI,GAAG,EAAE;QACrB;MACF,KAAK,OAAO;QACV6D,WAAW,CAAC7D,IAAI,GAAG,EAAE;QACrB;IAAM;IAEV,IAAM8D,aAAa,GAAGZ,MAAM,CAACE,KAAK,gBAChC;MAKE,GAAG,EAAEF,MAAM,CAACE;IAAM,GACdS,WAAW;MAAA,OAJT;QAAA;QAAA;MAAU,CAAC;MAAA,QACX;QAAA;MAAU;IAAC,GAIjB,GACAE,SAAS;IAEb,IAAMpD,OAAO,GAAG,SAAVA,OAAO,CAAIgB,CAAC,EAAK;MACrBA,CAAC,CAAC8B,cAAc,EAAE;MAClB9B,CAAC,CAACe,eAAe,EAAE;MACnB,IAAIsB,KAAK,CAACC,OAAO,CAACxE,QAAQ,CAAC,IAAIA,QAAQ,CAACyE,QAAQ,CAAChB,MAAM,CAAC7B,EAAE,CAAC,EAAE;QAC3D,IAAI,OAAOzB,QAAQ,KAAK,UAAU,EAAE;UAClC,IAAMuE,WAAW,GAAG1E,QAAQ,CAAC2E,MAAM,CAAC,UAACC,IAAI;YAAA,OAAKA,IAAI,KAAKnB,MAAM,CAAC7B,EAAE;UAAA,EAAC;UACjEzB,QAAQ,CAACuE,WAAW,CAAC;QACvB;MACF;IACF,CAAC;IAED,IAAIG,WAAW,GAAG,IAAI;IACtB,IAAIvE,QAAQ,EAAE;MACZuE,WAAW,GAAG,KAAK;IACrB;IACA,IAAIpB,MAAM,CAACG,KAAK,EAAE;MAChBiB,WAAW,GAAG,KAAK;IACrB;IAEA,oBACE,oBAAC,IAAI;MACH,SAAS,EAAC,kBAAkB;MAC5B,aAAa,EAAER,aAAc;MAC7B,KAAK,EAAEZ,MAAM,CAAC5B,IAAK;MACnB,GAAG,EAAEsC,KAAM;MACX,eAAe,EAAEV,MAAM,CAACG,KAAM;MAC9B,KAAK,EAAEH,MAAM,CAACqB,SAAU;MACxB,OAAO,EAAED,WAAW,GAAG3D,OAAO,GAAGoD,SAAU;MAC3C,IAAI,EAAE/D,IAAK;MACX,OAAO,EAAC;IAAW,EACnB;EAEN,CAAC,EACD,CAACD,QAAQ,EAAEH,QAAQ,EAAEO,UAAU,EAAEV,QAAQ,EAAEO,IAAI,CAAC,CACjD;EAED,IAAMwE,QAAQ,GAAG/G,OAAO,CAAC,YAAM;IAC7B,IACEyC,IAAI,KAAK,UAAU,IACnBiC,IAAI,IACJ6B,KAAK,CAACC,OAAO,CAACxE,QAAQ,CAAC,IACvBA,QAAQ,CAACgF,MAAM,GAAG,CAAC,EACnB;MACA,OAAO,MAAM;IACf;IACA,OAAOzE,IAAI;EACb,CAAC,EAAE,CAACmC,IAAI,EAAE1C,QAAQ,EAAEO,IAAI,EAAEE,IAAI,CAAC,CAAC;EAEhC,IAAMwE,cAAc,GAAGjH,OAAO,CAAC,YAAM;IACnC,IAAIyC,IAAI,KAAK,UAAU,IAAI8D,KAAK,CAACC,OAAO,CAACxE,QAAQ,CAAC,IAAIA,QAAQ,CAACgF,MAAM,GAAG,CAAC,EAAE;MACzE,IAAME,QAAuB,GAAG,EAAE;MAClC,IAAIC,KAAK,GAAG,CAAC;MACbpF,OAAO,CAACqF,OAAO,CAAC,UAAC3B,MAAM,EAAEU,KAAK,EAAK;QACjC,IAAMkB,SAAS,GAAGhH,aAAa,CAACoF,MAAM,CAAC;QACvC,IAAIzD,QAAQ,CAACyE,QAAQ,CAAChB,MAAM,CAAC7B,EAAE,CAAC,IAAI,CAACyD,SAAS,EAAE;UAC9CF,KAAK,GAAGA,KAAK,GAAG,CAAC;UACjBD,QAAQ,CAACI,IAAI,CAACpB,mBAAmB,CAACT,MAAM,EAAEU,KAAK,CAAC,CAAC;QACnD,CAAC,MAAM,IAAIkB,SAAS,EAAE;UACpB,IAAME,cAAc,GAAG9B,MAAM,CAAC1D,OAAO,CAAC4E,MAAM,CAAC,UAACa,CAAC;YAAA,OAC7CxF,QAAQ,CAACyE,QAAQ,CAACe,CAAC,CAAC5D,EAAE,CAAC;UAAA,EACxB;UACDuD,KAAK,GAAGA,KAAK,GAAGI,cAAc,CAACP,MAAM;UACrC,IAAIO,cAAc,CAACP,MAAM,GAAG,CAAC,EAAE;YAC7BO,cAAc,CAACH,OAAO,CAAC,UAACI,CAAC,EAAEC,MAAM,EAAK;cACpCP,QAAQ,CAACI,IAAI,CAACpB,mBAAmB,CAACsB,CAAC,EAAKrB,KAAK,SAAIsB,MAAM,CAAG,CAAC;YAC7D,CAAC,CAAC;UACJ;QACF;MACF,CAAC,CAAC;MACF,IAAIC,OAAM,GAAG,CAAC;MACd,IAAI,CAAChD,IAAI,IAAI7B,UAAU,GAAG,CAAC,IAAIqE,QAAQ,CAACF,MAAM,GAAGnE,UAAU,EAAE;QAC3D6E,OAAM,GAAGR,QAAQ,CAACS,MAAM,CACtB9E,UAAU,EACVqE,QAAQ,CAACF,MAAM,GAAGnE,UAAU,CAC7B,CAACmE,MAAM;MACV;MAEA,oBACE,oBAAC,QAAQ,QACNE,QAAQ,EACRQ,OAAM,GAAG,CAAC,iBACT;QACE,OAAO,EACLnF,IAAI,KAAK,OAAO,GACZ,WAAW,GACXA,IAAI,KAAK,SAAS,GAClB,QAAQ,GACR;MACL,GAOA,OAAOO,gBAAgB,KAAK,UAAU,GACnCA,gBAAgB,CAAC4E,OAAM,CAAC,SACpBA,OAAQ,CAEnB,CACQ;IAEf;IACA,IAAIjF,IAAI,KAAK,QAAQ,IAAIT,QAAQ,EAAE;MACjC,IAAI4F,UAAU;MACd7F,OAAO,CAACqF,OAAO,CAAC,UAAC3B,MAAM,EAAK;QAC1B,IAAIpF,aAAa,CAACoF,MAAM,CAAC,EAAE;UACzBmC,UAAU,GAAGnC,MAAM,CAAC1D,OAAO,CAAC2B,IAAI,CAAC,UAACmE,KAAK;YAAA,OAAKA,KAAK,CAACjE,EAAE,KAAK5B,QAAQ;UAAA,EAAC;QACpE,CAAC,MAAM,IAAI,CAAC4F,UAAU,IAAInC,MAAM,CAAC7B,EAAE,KAAK5B,QAAQ,EAAE;UAChD4F,UAAU,GAAGnC,MAAM;QACrB;MACF,CAAC,CAAC;MACF,IAAImC,UAAU,IAAIA,UAAU,CAACjC,KAAK,EAAE;QAClC,IAAMmC,UAAU,GAAGvF,IAAI,KAAK,KAAK,GAAG,EAAE,GAAGA,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE;QACrE,IAAIgE,KAAK,CAACC,OAAO,CAACoB,UAAU,CAACjC,KAAK,CAAC,EAAE;UACnC,oBAAO,oBAAC,WAAW;YAAC,GAAG,EAAEiC,UAAU,CAACjC,KAAM;YAAC,IAAI,EAAEmC;UAAW,EAAG;QACjE;QACA,oBAAO,oBAAC,MAAM;UAAC,GAAG,EAAEF,UAAU,CAACjC,KAAM;UAAC,IAAI,EAAEmC;QAAW,EAAG;MAC5D;IACF;IAEA,OAAOxB,SAAS;EAClB,CAAC,EAAE,CACD7D,IAAI,EACJT,QAAQ,EACRD,OAAO,EACP2C,IAAI,EACJ7B,UAAU,EACVC,gBAAgB,EAChBoD,mBAAmB,EACnB3D,IAAI,CACL,CAAC;EAEF,IAAMwF,SAAS,GACbxB,KAAK,CAACC,OAAO,CAACxE,QAAQ,CAAC,IAAIS,IAAI,KAAK,UAAU,IAAIT,QAAQ,CAACgF,MAAM,GAAG,CAAC;EAEvE,IAAMgB,WAAW,GACfvF,IAAI,KAAK,UAAU,IAAI8D,KAAK,CAACC,OAAO,CAACxE,QAAQ,CAAC,IAAIA,QAAQ,CAACgF,MAAM,GAAG,CAAC;EAEvE,oBACE;IAAK,SAAS,EAAC;EAAa,GACzBvE,IAAI,KAAK,UAAU,gBAClB,uDACE;IACE,SAAS,EAAEH,QAAS;IACpB,KAAK,EAAEC,IAAK;IACZ,QAAQ,EAAEC,OAAQ;IAClB,GAAG,EAAEiC,WAAY;IAajB,SAAS,EAAE9C,UAAU,CACnB,2BAA2B,EAC3BqB,qBAAqB,CACrB;IACF,OAAO,EAAE,mBAAM;MAAA;MACb,uBAAAqB,UAAU,CAACQ,OAAO,qBAAlB,oBAAoBoD,KAAK,EAAE;IAC7B,CAAE;IAAA,QAdUlB,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAGT,SAAS;IAAA,QACpCS,QAAQ,KAAK,MAAM,IAAI9D,aAAa,GAC9C,QAAQ,GACRqD,SAAS;IAAA,QACCS,QAAQ,KAAK,MAAM,IAAI9D,aAAa,GAC9C,MAAM,GACNqD;EAAS,gBAUf,oBAAC,iBAAiB;IAChB,SAAS,EAAES,QAAS;IACpB,KAAK,EAAErC,IAAK;IACZ,GAAG,EAAEF;EAAY,GAEhByC,cAAc,eACf,oBAAC,WAAW;IACV,SAAS,EAAC,mBAAmB;IAC7B,MAAM,EAAEhB,UAAW;IACnB,OAAO,EAAE,mBAAM;MACbjC,UAAU,CAAC,CAACD,OAAO,CAAC;IACtB,CAAE;IACF,OAAO,EAAEwB,MAAO;IAChB,GAAG,EAAEjB,SAAU;IACf,KAAK,EAAErC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGqB,KAAM;IACpD,SAAS,EAAEwB,eAAgB;IAC3B,QAAQ,EAAEd,cAAe;IACzB,WAAW,EAAE,CAAC+D,WAAW,GAAG5F,WAAW,GAAGkE,SAAU;IACpD,QAAQ,EAAEhE,QAAS;IACnB,KAAK,EAAEC,IAAK;IACZ,QAAQ,EAAEN,OAAQ;IAClB,KAAK,EAAE;MACLiG,OAAO,EAAE,MAAM;MACfC,IAAI,EAAE,CAAC;MACPC,SAAS,EAAE,QAAQ;MACnBC,KAAK,EAAEtB,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG;IACxC;EAAE,EACF,CACgB,EACnB,CAACzE,QAAQ,iBACR,0CACGL,OAAO,gBACN,oBAAC,aAAa,OAAG,gBAEjB,0CACG8F,SAAS,iBACR;IACE,WAAW,EAAEhC,eAAgB;IAC7B,OAAO,EAAED,cAAe;IACxB,eAAY;EAAc,gBAM1B,oBAAC,4BAA4B,OAAG,CAEnC,eACD,oBAAC,sCAAsC;IAAC,KAAK,EAAEpB;EAAK,EAAG,CAE1D,CAEJ,CACkB,CACpB,gBAEH,oBAAC,mBAAmB;IAClB,SAAS,EAAE/C,UAAU,CAAC,mBAAmB,EAAEqB,qBAAqB,CAAE;IAClE,MAAM,EAAEiD,UAAW;IACnB,YAAY,EAAEV,MAAO;IACrB,OAAO,EAAE,mBAAM;MACbvB,UAAU,CAAC,CAACD,OAAO,CAAC;IACtB,CAAE;IACF,OAAO,EAAEwB,MAAO;IAChB,OAAO,EAAEd,WAAY;IACrB,GAAG,EAAEH,SAAU;IACf,KAAK,EAAErC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGqB,KAAM;IACpD,SAAS,EAAEwB,eAAgB;IAC3B,QAAQ,EAAEd,cAAe;IACzB,WAAW,EAAE7B,WAAY;IACzB,QAAQ,EAAEE,QAAS;IACnB,IAAI,EAAEC,IAAK;IACX,OAAO,EAAEC,OAAQ;IACjB,QAAQ,EAAEP,OAAQ;IAClB,cAAc,EAAEgF,cAAe;IAC/B,YAAY,EACV,CAAC3E,QAAQ,gBACP,oBAAC,cAAc;MAAC,oBAAoB,EAAEA;IAAS,GAC5CL,OAAO,gBACN,oBAAC,aAAa,OAAG,GACfD,QAAQ,gBACV,oBAAC,UAAU;MACT,WAAW,EAAE+D,eAAgB;MAC7B,OAAO,EAAED,cAAe;MACxB,OAAO,EAAC,WAAW;MACnB,IAAI,EAAC;IAAO,gBAEZ,oBAAC,4BAA4B,OAAG,CACrB,GACX,IAAI,eACR,oBAAC,sCAAsC;MAAC,KAAK,EAAEpB;IAAK,EAAG,CACxC,GACf;EACL,EAEJ,EAEA,CAACpC,QAAQ,gBACR,oBAAC,kBAAkB;IACjB,SAAS,EAAES,QAAS;IACpB,IAAI,EAAE,cAACuF,QAAQ;MAAA,oBAAK,oBAAC,MAAM,QAAEA,QAAQ,CAAU;IAAA;EAAC,gBAEhD,oBAAC,MAAM;IACL,QAAQ,EAAE7D,WAAW,CAACI,OAAQ;IAC9B,IAAI,EAAEH,IAAK;IACX,SAAS,EAAC,QAAQ;IAClB,KAAK,EAAE;MACL6D,MAAM,EAAE,EAAE;MACVF,KAAK,2BAAE5D,WAAW,CAACI,OAAO,qBAAnB,sBAAqB2D;IAC9B,CAAE;IACF,GAAG,EAAEjE,UAAW;IAChB,QAAQ,EAAC;EAAO,gBAEhB,oBAAC,YAAY;IAAC,WAAW;IAAC,cAAc;EAAA,gBACtC,oBAAC,kBAAkB;IAAC,MAAM,2BAAEE,WAAW,CAACI,OAAO,qBAAnB,sBAAqB2D;EAAY,gBAC3D,oBAAC,YAAY,eACPnF,IAAI;IACR,OAAO,EAAEe,SAAU;IACnB,QAAQ,EAAEpC,QAAS;IACnB,YAAY,EAAEqD,YAAa;IAC3B,YAAY,EAAEG,kBAAmB;IACjC,OAAO,EAAEzD,OAAQ;IACjB,IAAI,EAAEU,IAAK;IACX,iBAAiB,EAAE2C;EAAY,GAC/B,CACiB,CACR,CACR,CACU,GACnB,IAAI,CACJ;AAEV,CAAC;AAEDtD,QAAQ,CAAC2G,WAAW,GAAG,UAAU;AAAC;EAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","useIsFirstRender","MultiAvatar","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","onClose","onClear","onDeselect","defaultValue","prop","selectedName","value","map","v","find","q","id","name","setValue","focused","setFocused","handleOnChange","e","target","childNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","isFirstRender","current","contains","handleOnKeyDown","key","stopPropagation","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","Array","isArray","includes","newSelected","filter","item","showOnClose","chipColor","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","optionItem","child","avatarSize","showXIcon","hasSelected","showMenu","Boolean","Number","click","display","flex","alignSelf","width","children","zIndex","clientWidth","displayName"],"sources":["../../../../src/components/ComboBox/ComboBox.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n useEffect,\n useRef,\n useMemo,\n Fragment,\n} from \"react\";\nimport { RadioButton } from \"../RadioButton\";\nimport { Autocomplete } from \"../Autocomplete\";\nimport { IconButton } from \"../IconButton\";\nimport {\n IAutocompleteProps,\n isOptionGroup,\n} from \"../Autocomplete/Autocomplete\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Popper } from \"../Popper\";\nimport { IOptionGroupProps, IOptionItemProps } from \"../Select\";\nimport { RemoveScroll } from \"react-remove-scroll\";\nimport { SpinnerLoader } from \"../Loaders/Spinner/SpinnerLoader\";\nimport { OptionContent } from \"../Select/OptionContent/OptionContent\";\nimport {\n StyledComboBoxCloseSmallIcon,\n StyledComboBoxCollapseExpandSingleIcon,\n StyledComboBoxInput,\n StyledComboBoxList,\n StyledChipWrapper,\n} from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport { InputAdornment } from \"../Input/InputAdornment\";\nimport { Checkbox } from \"../Checkbox\";\nimport { Chip } from \"../Chip\";\nimport { StyledInput, StyledInputWrapper } from \"../Input/Styles\";\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside\";\nimport { Avatar, AvatarProps } from \"../Avatar\";\nimport { Trigger } from \"../Trigger\";\nimport { Typography } from \"../Typography/Typography\";\nimport tw from \"twin.macro\";\nimport { Portal } from \"../../helpers\";\nimport { ConditionalWrapper } from \"../../helpers/ConditionWrapper/ConditionWrapper\";\nimport classNames from \"classnames\";\nimport { useIsFirstRender } from \"../../hooks/useIsFirstRender\";\nimport { MultiAvatar } from \"../MultiAvatar\";\n\nexport interface IComboBoxProps\n extends Omit<\n IAutocompleteProps,\n \"handleChange\" | \"inputEl\" | \"clearInputOnSelect\"\n > {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\n /** onClose (f) will be called when Popper close */\n onClose?: () => void;\n /** onClear (f) will be called when user clear input on X icon*/\n onClear?: () => void;\n onDeselect?: () => void;\n}\n\nexport const ComboBox: FC<IComboBoxProps> = ({\n options = [],\n selected,\n loading = false,\n loadingText,\n onChange,\n placeholder,\n handleEmptyAction,\n disabled = false,\n size = \"regular\",\n invalid = false,\n type = \"single\",\n renderChip,\n forceCloseMenu = type === \"single\",\n renderOption,\n limitChips = 2,\n hiddenNumberText,\n inPortal = false,\n inputWrapperClassName,\n scrollWrapper,\n onClose,\n onClear,\n onDeselect,\n defaultValue,\n ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const [focused, setFocused] = useState<boolean>(false);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(childNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\n const isFirstRender = useIsFirstRender();\n\n useOnClickOutside(wrapperRef, (e) => {\n if (e.target && comboBoxRef.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n });\n\n const handleOnKeyDown = useCallback(\n (e) => {\n if (e.key === \"Escape\" && open) {\n setOpen(false);\n setValue(selectedName);\n e.stopPropagation();\n }\n\n if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n\n if (e.key === \"Enter\" && !open && focused) {\n setOpen(true);\n }\n },\n [focused, open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.current?.focus();\n !open && childNode?.current?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n useEffect(() => {\n if (!open && !isFirstRender && !focused) {\n if (typeof onClose === \"function\") {\n onClose();\n }\n }\n }, [focused, isFirstRender, onClose, open]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (selectedValue !== selected && typeof onChange === \"function\") {\n onChange(selectedValue);\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange, selected]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (typeof onDeselect === \"function\") {\n onDeselect();\n } else if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n onClear?.();\n setOpen(false);\n },\n [type, onChange, onClear, onDeselect]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n setFocused(!focused);\n }, [focused, selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<AvatarProps> = {\n size: 18,\n };\n switch (size) {\n case \"big\":\n avatarProps.size = 22;\n break;\n case \"small\":\n avatarProps.size = 14;\n break;\n }\n const leftAdornment = option.image ? (\n <Avatar\n css={`\n ${tw`tw-my-0.5`}\n ${tw`tw-mr-0.5`}\n `}\n url={option.image}\n {...avatarProps}\n />\n ) : undefined;\n\n const onClose = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (Array.isArray(selected) && selected.includes(option.id)) {\n if (typeof onChange === \"function\") {\n const newSelected = selected.filter((item) => item !== option.id);\n onChange(newSelected);\n }\n }\n };\n\n let showOnClose = true;\n if (disabled) {\n showOnClose = false;\n }\n if (option.color) {\n showOnClose = false;\n }\n\n return (\n <Chip\n className=\"c-combo-box-chip\"\n leftAdornment={leftAdornment}\n label={option.name}\n key={index}\n backgroundColor={option.color}\n color={option.chipColor}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 1\"\n />\n );\n },\n [disabled, onChange, renderChip, selected, size]\n );\n\n const autoSize = useMemo(() => {\n if (\n type === \"multiple\" &&\n open &&\n Array.isArray(selected) &&\n selected.length > 1\n ) {\n return \"auto\";\n }\n return size;\n }, [open, selected, size, type]);\n\n const startAdornment = useMemo(() => {\n if (type === \"multiple\" && Array.isArray(selected) && selected.length > 0) {\n const elements: JSX.Element[] = [];\n let total = 0;\n options.forEach((option, index) => {\n const isGrouped = isOptionGroup(option);\n if (selected.includes(option.id) && !isGrouped) {\n total = total + 1;\n elements.push(renderChipAdornment(option, index));\n } else if (isGrouped) {\n const groupedOptions = option.options.filter((o) =>\n selected.includes(o.id)\n );\n total = total + groupedOptions.length;\n if (groupedOptions.length > 0) {\n groupedOptions.forEach((o, _index) => {\n elements.push(renderChipAdornment(o, `${index}_${_index}`));\n });\n }\n }\n });\n let hidden = 0;\n if (!open && limitChips > 0 && elements.length > limitChips) {\n hidden = elements.splice(\n limitChips,\n elements.length - limitChips\n ).length;\n }\n\n return (\n <Fragment>\n {elements}\n {hidden > 0 && (\n <Typography\n variant={\n size === \"small\"\n ? \"Caption 1\"\n : size === \"regular\"\n ? \"Body 2\"\n : \"Body 1\"\n }\n css={`\n display: flex;\n flex-shrink: 0;\n align-items: center;\n `}\n >\n {typeof hiddenNumberText === \"function\"\n ? hiddenNumberText(hidden)\n : `+${hidden}`}\n </Typography>\n )}\n </Fragment>\n );\n }\n if (type === \"single\" && selected) {\n let optionItem;\n options.forEach((option) => {\n if (isOptionGroup(option)) {\n optionItem = option.options.find((child) => child.id === selected);\n } else if (!optionItem && option.id === selected) {\n optionItem = option;\n }\n });\n if (optionItem && optionItem.image) {\n const avatarSize = size === \"big\" ? 22 : size === \"regular\" ? 18 : 14;\n if (Array.isArray(optionItem.image)) {\n return <MultiAvatar url={optionItem.image} size={avatarSize} />;\n }\n return <Avatar url={optionItem.image} size={avatarSize} />;\n }\n }\n\n return undefined;\n }, [\n type,\n selected,\n options,\n open,\n limitChips,\n hiddenNumberText,\n renderChipAdornment,\n size,\n ]);\n\n const showXIcon =\n Array.isArray(selected) && type === \"multiple\" && selected.length > 0;\n\n const hasSelected =\n type === \"multiple\" && Array.isArray(selected) && selected.length > 0;\n\n const showMenu = useMemo(\n () => Boolean(options.length || defaultValue || Number(value.length) > 0),\n [defaultValue, options.length, value]\n );\n\n return (\n <div className=\"c-combo-box\">\n {type === \"multiple\" ? (\n <>\n <StyledInputWrapper\n $disabled={disabled}\n $size={size}\n $invalid={invalid}\n ref={comboBoxRef}\n css={`\n display: flex;\n justify-content: space-between;\n flex: 1;\n height: ${autoSize === \"auto\" ? \"auto\" : undefined};\n overflow-y: ${autoSize === \"auto\" && scrollWrapper\n ? \"scroll\"\n : undefined};\n max-height: ${autoSize === \"auto\" && scrollWrapper\n ? \"80px\"\n : undefined};\n `}\n className={classNames(\n \"c-combo-box-input-wrapper\",\n inputWrapperClassName\n )}\n onClick={() => {\n elementRef.current?.click();\n }}\n >\n <StyledChipWrapper\n $autoSize={autoSize}\n $open={open}\n ref={chipWrapper}\n >\n {startAdornment}\n <StyledInput\n className=\"c-combo-box-input\"\n onBlur={handleBlur}\n onFocus={() => {\n setFocused(!focused);\n }}\n onClick={onOpen}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={!hasSelected ? placeholder : undefined}\n disabled={disabled}\n $size={size}\n $loading={loading}\n style={{\n display: \"flex\",\n flex: 1,\n alignSelf: \"center\",\n width: autoSize === \"auto\" ? \"auto\" : \"100%\",\n }}\n />\n </StyledChipWrapper>\n {!disabled && (\n <>\n {loading ? (\n <SpinnerLoader />\n ) : (\n <>\n {showXIcon && (\n <Trigger\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n data-testid=\"deselect-all\"\n css={`\n display: flex;\n justify-content: center;\n `}\n >\n <StyledComboBoxCloseSmallIcon />\n </Trigger>\n )}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </>\n )}\n </>\n )}\n </StyledInputWrapper>\n </>\n ) : (\n <StyledComboBoxInput\n className={classNames(\"c-combo-box-input\", inputWrapperClassName)}\n onBlur={handleBlur}\n wrapperClick={onOpen}\n onFocus={() => {\n setFocused(!focused);\n onOpen();\n }}\n onClick={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n {showMenu && (\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n )}\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList\n $width={comboBoxRef.current?.clientWidth}\n $hide={!showMenu}\n >\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 defaultValue={defaultValue}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":";;;;AAAA,OAAOA,KAAK,IAEVC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,MAAM,EACNC,OAAO,EACPC,QAAQ,QACH,OAAO;AACd,SAASC,WAAW,QAAQ,gBAAgB;AAC5C,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAEEC,aAAa,QACR,8BAA8B;AACrC,OAAOC,UAAU,MAAM,wBAAwB;AAC/C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,aAAa,QAAQ,kCAAkC;AAChE,SAASC,aAAa,QAAQ,uCAAuC;AACrE,SACEC,4BAA4B,EAC5BC,sCAAsC,EACtCC,mBAAmB,EACnBC,kBAAkB,EAClBC,iBAAiB,QACZ,UAAU;AAEjB,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,IAAI,QAAQ,SAAS;AAC9B,SAASC,WAAW,EAAEC,kBAAkB,QAAQ,iBAAiB;AACjE,SAASC,iBAAiB,QAAQ,+BAA+B;AACjE,SAASC,MAAM,QAAqB,WAAW;AAC/C,SAASC,OAAO,QAAQ,YAAY;AACpC,SAASC,UAAU,QAAQ,0BAA0B;AAErD,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,kBAAkB,QAAQ,iDAAiD;AACpF,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,WAAW,QAAQ,gBAAgB;AA+C5C,OAAO,IAAMC,QAA4B,GAAG,SAA/BA,QAA4B,OAyBnC;EAAA;EAAA,wBAxBJC,OAAO;IAAPA,OAAO,6BAAG,EAAE;IACZC,QAAQ,QAARA,QAAQ;IAAA,oBACRC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IACfC,WAAW,QAAXA,WAAW;IACXC,QAAQ,QAARA,QAAQ;IACRC,WAAW,QAAXA,WAAW;IACXC,iBAAiB,QAAjBA,iBAAiB;IAAA,qBACjBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IAAA,iBAChBC,IAAI;IAAJA,IAAI,0BAAG,SAAS;IAAA,oBAChBC,OAAO;IAAPA,OAAO,6BAAG,KAAK;IAAA,iBACfC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IACfC,UAAU,QAAVA,UAAU;IAAA,2BACVC,cAAc;IAAdA,cAAc,oCAAGF,IAAI,KAAK,QAAQ;IAClCG,YAAY,QAAZA,YAAY;IAAA,uBACZC,UAAU;IAAVA,UAAU,gCAAG,CAAC;IACdC,gBAAgB,QAAhBA,gBAAgB;IAAA,qBAChBC,QAAQ;IAARA,QAAQ,8BAAG,KAAK;IAChBC,qBAAqB,QAArBA,qBAAqB;IACrBC,aAAa,QAAbA,aAAa;IACbC,OAAO,QAAPA,OAAO;IACPC,OAAO,QAAPA,OAAO;IACPC,UAAU,QAAVA,UAAU;IACVC,YAAY,QAAZA,YAAY;IACTC,IAAI;EAEP,IAAMC,YAAY,GAAGvD,OAAO,CAAC,YAAM;IACjC,IAAIwD,KAAK,GAAG,EAAE;IACd,IAAI,CAACxB,QAAQ,EAAE;MACb,OAAOwB,KAAK;IACd;IACAzB,OAAO,CAAC0B,GAAG,CAAC,UAACC,CAAC,EAAK;MACjB,IAAKA,CAAC,YAADA,CAAC,CAAwB3B,OAAO,EAAE;QACrC,OAAQ2B,CAAC,CAAuB3B,OAAO,CAAC4B,IAAI,CAAC,UAACC,CAAC,EAAK;UAClD,IAAIA,CAAC,CAACC,EAAE,KAAK7B,QAAQ,EAAE;YACrBwB,KAAK,GAAGI,CAAC,CAACE,IAAI;YACd;UACF;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAIJ,CAAC,CAACG,EAAE,KAAK7B,QAAQ,EAAE;UACrBwB,KAAK,GAAGE,CAAC,CAACI,IAAI;UACd;QACF;MACF;IACF,CAAC,CAAC;IACF,OAAON,KAAK;EACd,CAAC,EAAE,CAACzB,OAAO,EAAEC,QAAQ,CAAC,CAAC;EACvB,gBAA0BnC,QAAQ,CAAC0D,YAAY,CAAC;IAAzCC,KAAK;IAAEO,QAAQ;EACtB,iBAA8BlE,QAAQ,CAAU,KAAK,CAAC;IAA/CmE,OAAO;IAAEC,UAAU;EAC1B,IAAMC,cAAc,GAAGtE,WAAW,CAAC,UAACuE,CAAC;IAAA,OAAKJ,QAAQ,CAACI,CAAC,CAACC,MAAM,CAACZ,KAAK,CAAC;EAAA,GAAE,EAAE,CAAC;EACvE,IAAMa,SAAS,GAAGtE,MAAM,EAA2B;EACnD,IAAMuE,UAAU,GAAGvE,MAAM,CAA0B,IAAI,CAAC;EACxD,IAAMwE,SAAS,GAAGjE,UAAU,CAAC+D,SAAS,EAAEC,UAAU,CAAC;EACnD,IAAME,UAAU,GAAGzE,MAAM,CAAiB,IAAI,CAAC;EAC/C,IAAM0E,WAAW,GAAG1E,MAAM,CAAiB,IAAI,CAAC;EAChD,IAAM2E,WAAW,GAAG3E,MAAM,CAAwB,IAAI,CAAC;EAEvD,iBAAwBF,QAAQ,CAAC,KAAK,CAAC;IAAhC8E,IAAI;IAAEC,OAAO;EACpB,IAAMC,aAAa,GAAGjD,gBAAgB,EAAE;EAExCP,iBAAiB,CAACmD,UAAU,EAAE,UAACL,CAAC,EAAK;IAAA;IACnC,IAAIA,CAAC,CAACC,MAAM,4BAAIM,WAAW,CAACI,OAAO,aAAnB,qBAAqBC,QAAQ,CAACZ,CAAC,CAACC,MAAM,CAAS,EAAE;MAC/D;IACF;IACAQ,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,CAAC;EAEF,IAAMI,eAAe,GAAGpF,WAAW,CACjC,UAACuE,CAAC,EAAK;IACL,IAAIA,CAAC,CAACc,GAAG,KAAK,QAAQ,IAAIN,IAAI,EAAE;MAC9BC,OAAO,CAAC,KAAK,CAAC;MACdb,QAAQ,CAACR,YAAY,CAAC;MACtBY,CAAC,CAACe,eAAe,EAAE;IACrB;IAEA,IAAIf,CAAC,CAACc,GAAG,KAAK,OAAO,IAAIxC,IAAI,KAAK,UAAU,EAAE;MAC5CsB,QAAQ,CAAC,EAAE,CAAC;IACd;IAEA,IAAII,CAAC,CAACc,GAAG,KAAK,OAAO,IAAI,CAACN,IAAI,IAAIX,OAAO,EAAE;MACzCY,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,EACD,CAACZ,OAAO,EAAEW,IAAI,EAAEpB,YAAY,EAAEd,IAAI,CAAC,CACpC;EAED3C,SAAS,CAAC,YAAM;IAAA;IACd6E,IAAI,KAAIN,SAAS,0CAATA,SAAS,CAAES,OAAO,qBAAlB,mBAAoBK,KAAK,EAAE;IACnC,CAACR,IAAI,KAAIN,SAAS,2CAATA,SAAS,CAAES,OAAO,qBAAlB,oBAAoBM,IAAI,EAAE;EACrC,CAAC,EAAE,CAACf,SAAS,EAAEM,IAAI,CAAC,CAAC;EAErB7E,SAAS,CAAC,YAAM;IACdiE,QAAQ,CAACR,YAAY,CAAC;EACxB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAElBzD,SAAS,CAAC,YAAM;IACd,IAAI,CAAC6E,IAAI,IAAI,CAACE,aAAa,IAAI,CAACb,OAAO,EAAE;MACvC,IAAI,OAAOd,OAAO,KAAK,UAAU,EAAE;QACjCA,OAAO,EAAE;MACX;IACF;EACF,CAAC,EAAE,CAACc,OAAO,EAAEa,aAAa,EAAE3B,OAAO,EAAEyB,IAAI,CAAC,CAAC;EAE3C,IAAMU,WAAW,GAAGzF,WAAW,CAC7B,UAAC8D,CAAC,EAAK;IACLrB,iBAAiB,oBAAjBA,iBAAiB,CAAGqB,CAAC,CAAC;IACtBkB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAACvC,iBAAiB,CAAC,CACpB;EAED,IAAMiD,YAAY,GAAG1F,WAAW,CAC9B,UAAC2F,aAAa,EAAK;IACjB,IAAIA,aAAa,KAAKvD,QAAQ,IAAI,OAAOG,QAAQ,KAAK,UAAU,EAAE;MAChEA,QAAQ,CAACoD,aAAa,CAAC;IACzB;IACA,IAAI5C,cAAc,EAAE;MAClBiC,OAAO,CAAC,KAAK,CAAC;IAChB;EACF,CAAC,EACD,CAACjC,cAAc,EAAER,QAAQ,EAAEH,QAAQ,CAAC,CACrC;EAED,IAAMwD,MAAM,GAAG5F,WAAW,CAAC,YAAM;IAC/B,IAAI,CAAC0C,QAAQ,EAAE;MACbsC,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,EAAE,CAACtC,QAAQ,CAAC,CAAC;EAEd,IAAMmD,kBAAkB,GAAG7F,WAAW,CACpC,UAAC8F,MAAM,EAAEC,KAAK,EAAK;IACjB,IAAI,OAAO/C,YAAY,KAAK,UAAU,EAAE;MACtC,OAAOA,YAAY,CAAC8C,MAAM,EAAEC,KAAK,CAAC;IACpC;IACA,IAAIlD,IAAI,KAAK,UAAU,EAAE;MACvB,oBACE,uDACE,oBAAC,aAAa;QACZ,QAAQ,EAAEiD,MAAM,CAACE,KAAM;QACvB,KAAK,EAAEF,MAAM,CAACG,KAAM;QACpB,SAAS,EAAEH,MAAM,CAACI,SAAU;QAC5B,IAAI,EAAEJ,MAAM,CAAC5B;MAAK,EAClB,eACF,oBAAC,QAAQ,EAAK6B,KAAK,CAAI,CACtB;IAEP;IACA,oBACE,uDACE,oBAAC,aAAa;MACZ,QAAQ,EAAED,MAAM,CAACE,KAAM;MACvB,KAAK,EAAEF,MAAM,CAACG,KAAM;MACpB,SAAS,EAAEH,MAAM,CAACI,SAAU;MAC5B,IAAI,EAAEJ,MAAM,CAAC5B;IAAK,EAClB,eACF,oBAAC,WAAW,EAAK6B,KAAK,CAAI,CACzB;EAEP,CAAC,EACD,CAAClD,IAAI,EAAEG,YAAY,CAAC,CACrB;EAED,IAAMmD,cAAc,GAAGnG,WAAW,CAChC,UAACuE,CAAC,EAAK;IACLA,CAAC,CAACe,eAAe,EAAE;IACnB,IAAI,OAAO9B,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,EAAE;IACd,CAAC,MAAM,IAAIX,IAAI,KAAK,UAAU,EAAE;MAC9BN,QAAQ,oBAARA,QAAQ,CAAG,EAAE,CAAC;IAChB,CAAC,MAAM;MACLA,QAAQ,oBAARA,QAAQ,CAAG,EAAE,CAAC;IAChB;IAEAgB,OAAO,oBAAPA,OAAO,EAAI;IACXyB,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EACD,CAACnC,IAAI,EAAEN,QAAQ,EAAEgB,OAAO,EAAEC,UAAU,CAAC,CACtC;EAED,IAAM4C,eAAe,GAAGpG,WAAW,CAAC,UAACuE,CAAC,EAAK;IACzCA,CAAC,CAAC8B,cAAc,EAAE;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,UAAU,GAAGtG,WAAW,CAAC,YAAM;IACnCmE,QAAQ,CAACR,YAAY,CAAC;IACtBU,UAAU,CAAC,CAACD,OAAO,CAAC;EACtB,CAAC,EAAE,CAACA,OAAO,EAAET,YAAY,CAAC,CAAC;EAE3B,IAAM4C,mBAAmB,GAAGvG,WAAW,CACrC,UAAC8F,MAAM,EAAEU,KAAK,EAAK;IACjB,IAAI,OAAO1D,UAAU,KAAK,UAAU,EAAE;MACpC,OAAOA,UAAU,CAACgD,MAAM,EAAEU,KAAK,CAAC;IAClC;IACA,IAAMC,WAAiC,GAAG;MACxC9D,IAAI,EAAE;IACR,CAAC;IACD,QAAQA,IAAI;MACV,KAAK,KAAK;QACR8D,WAAW,CAAC9D,IAAI,GAAG,EAAE;QACrB;MACF,KAAK,OAAO;QACV8D,WAAW,CAAC9D,IAAI,GAAG,EAAE;QACrB;IAAM;IAEV,IAAM+D,aAAa,GAAGZ,MAAM,CAACE,KAAK,gBAChC;MAKE,GAAG,EAAEF,MAAM,CAACE;IAAM,GACdS,WAAW;MAAA,OAJT;QAAA;QAAA;MAAU,CAAC;MAAA,QACX;QAAA;MAAU;IAAC,GAIjB,GACAE,SAAS;IAEb,IAAMrD,OAAO,GAAG,SAAVA,OAAO,CAAIiB,CAAC,EAAK;MACrBA,CAAC,CAAC8B,cAAc,EAAE;MAClB9B,CAAC,CAACe,eAAe,EAAE;MACnB,IAAIsB,KAAK,CAACC,OAAO,CAACzE,QAAQ,CAAC,IAAIA,QAAQ,CAAC0E,QAAQ,CAAChB,MAAM,CAAC7B,EAAE,CAAC,EAAE;QAC3D,IAAI,OAAO1B,QAAQ,KAAK,UAAU,EAAE;UAClC,IAAMwE,WAAW,GAAG3E,QAAQ,CAAC4E,MAAM,CAAC,UAACC,IAAI;YAAA,OAAKA,IAAI,KAAKnB,MAAM,CAAC7B,EAAE;UAAA,EAAC;UACjE1B,QAAQ,CAACwE,WAAW,CAAC;QACvB;MACF;IACF,CAAC;IAED,IAAIG,WAAW,GAAG,IAAI;IACtB,IAAIxE,QAAQ,EAAE;MACZwE,WAAW,GAAG,KAAK;IACrB;IACA,IAAIpB,MAAM,CAACG,KAAK,EAAE;MAChBiB,WAAW,GAAG,KAAK;IACrB;IAEA,oBACE,oBAAC,IAAI;MACH,SAAS,EAAC,kBAAkB;MAC5B,aAAa,EAAER,aAAc;MAC7B,KAAK,EAAEZ,MAAM,CAAC5B,IAAK;MACnB,GAAG,EAAEsC,KAAM;MACX,eAAe,EAAEV,MAAM,CAACG,KAAM;MAC9B,KAAK,EAAEH,MAAM,CAACqB,SAAU;MACxB,OAAO,EAAED,WAAW,GAAG5D,OAAO,GAAGqD,SAAU;MAC3C,IAAI,EAAEhE,IAAK;MACX,OAAO,EAAC;IAAW,EACnB;EAEN,CAAC,EACD,CAACD,QAAQ,EAAEH,QAAQ,EAAEO,UAAU,EAAEV,QAAQ,EAAEO,IAAI,CAAC,CACjD;EAED,IAAMyE,QAAQ,GAAGhH,OAAO,CAAC,YAAM;IAC7B,IACEyC,IAAI,KAAK,UAAU,IACnBkC,IAAI,IACJ6B,KAAK,CAACC,OAAO,CAACzE,QAAQ,CAAC,IACvBA,QAAQ,CAACiF,MAAM,GAAG,CAAC,EACnB;MACA,OAAO,MAAM;IACf;IACA,OAAO1E,IAAI;EACb,CAAC,EAAE,CAACoC,IAAI,EAAE3C,QAAQ,EAAEO,IAAI,EAAEE,IAAI,CAAC,CAAC;EAEhC,IAAMyE,cAAc,GAAGlH,OAAO,CAAC,YAAM;IACnC,IAAIyC,IAAI,KAAK,UAAU,IAAI+D,KAAK,CAACC,OAAO,CAACzE,QAAQ,CAAC,IAAIA,QAAQ,CAACiF,MAAM,GAAG,CAAC,EAAE;MACzE,IAAME,QAAuB,GAAG,EAAE;MAClC,IAAIC,KAAK,GAAG,CAAC;MACbrF,OAAO,CAACsF,OAAO,CAAC,UAAC3B,MAAM,EAAEU,KAAK,EAAK;QACjC,IAAMkB,SAAS,GAAGjH,aAAa,CAACqF,MAAM,CAAC;QACvC,IAAI1D,QAAQ,CAAC0E,QAAQ,CAAChB,MAAM,CAAC7B,EAAE,CAAC,IAAI,CAACyD,SAAS,EAAE;UAC9CF,KAAK,GAAGA,KAAK,GAAG,CAAC;UACjBD,QAAQ,CAACI,IAAI,CAACpB,mBAAmB,CAACT,MAAM,EAAEU,KAAK,CAAC,CAAC;QACnD,CAAC,MAAM,IAAIkB,SAAS,EAAE;UACpB,IAAME,cAAc,GAAG9B,MAAM,CAAC3D,OAAO,CAAC6E,MAAM,CAAC,UAACa,CAAC;YAAA,OAC7CzF,QAAQ,CAAC0E,QAAQ,CAACe,CAAC,CAAC5D,EAAE,CAAC;UAAA,EACxB;UACDuD,KAAK,GAAGA,KAAK,GAAGI,cAAc,CAACP,MAAM;UACrC,IAAIO,cAAc,CAACP,MAAM,GAAG,CAAC,EAAE;YAC7BO,cAAc,CAACH,OAAO,CAAC,UAACI,CAAC,EAAEC,MAAM,EAAK;cACpCP,QAAQ,CAACI,IAAI,CAACpB,mBAAmB,CAACsB,CAAC,EAAKrB,KAAK,SAAIsB,MAAM,CAAG,CAAC;YAC7D,CAAC,CAAC;UACJ;QACF;MACF,CAAC,CAAC;MACF,IAAIC,OAAM,GAAG,CAAC;MACd,IAAI,CAAChD,IAAI,IAAI9B,UAAU,GAAG,CAAC,IAAIsE,QAAQ,CAACF,MAAM,GAAGpE,UAAU,EAAE;QAC3D8E,OAAM,GAAGR,QAAQ,CAACS,MAAM,CACtB/E,UAAU,EACVsE,QAAQ,CAACF,MAAM,GAAGpE,UAAU,CAC7B,CAACoE,MAAM;MACV;MAEA,oBACE,oBAAC,QAAQ,QACNE,QAAQ,EACRQ,OAAM,GAAG,CAAC,iBACT;QACE,OAAO,EACLpF,IAAI,KAAK,OAAO,GACZ,WAAW,GACXA,IAAI,KAAK,SAAS,GAClB,QAAQ,GACR;MACL,GAOA,OAAOO,gBAAgB,KAAK,UAAU,GACnCA,gBAAgB,CAAC6E,OAAM,CAAC,SACpBA,OAAQ,CAEnB,CACQ;IAEf;IACA,IAAIlF,IAAI,KAAK,QAAQ,IAAIT,QAAQ,EAAE;MACjC,IAAI6F,UAAU;MACd9F,OAAO,CAACsF,OAAO,CAAC,UAAC3B,MAAM,EAAK;QAC1B,IAAIrF,aAAa,CAACqF,MAAM,CAAC,EAAE;UACzBmC,UAAU,GAAGnC,MAAM,CAAC3D,OAAO,CAAC4B,IAAI,CAAC,UAACmE,KAAK;YAAA,OAAKA,KAAK,CAACjE,EAAE,KAAK7B,QAAQ;UAAA,EAAC;QACpE,CAAC,MAAM,IAAI,CAAC6F,UAAU,IAAInC,MAAM,CAAC7B,EAAE,KAAK7B,QAAQ,EAAE;UAChD6F,UAAU,GAAGnC,MAAM;QACrB;MACF,CAAC,CAAC;MACF,IAAImC,UAAU,IAAIA,UAAU,CAACjC,KAAK,EAAE;QAClC,IAAMmC,UAAU,GAAGxF,IAAI,KAAK,KAAK,GAAG,EAAE,GAAGA,IAAI,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE;QACrE,IAAIiE,KAAK,CAACC,OAAO,CAACoB,UAAU,CAACjC,KAAK,CAAC,EAAE;UACnC,oBAAO,oBAAC,WAAW;YAAC,GAAG,EAAEiC,UAAU,CAACjC,KAAM;YAAC,IAAI,EAAEmC;UAAW,EAAG;QACjE;QACA,oBAAO,oBAAC,MAAM;UAAC,GAAG,EAAEF,UAAU,CAACjC,KAAM;UAAC,IAAI,EAAEmC;QAAW,EAAG;MAC5D;IACF;IAEA,OAAOxB,SAAS;EAClB,CAAC,EAAE,CACD9D,IAAI,EACJT,QAAQ,EACRD,OAAO,EACP4C,IAAI,EACJ9B,UAAU,EACVC,gBAAgB,EAChBqD,mBAAmB,EACnB5D,IAAI,CACL,CAAC;EAEF,IAAMyF,SAAS,GACbxB,KAAK,CAACC,OAAO,CAACzE,QAAQ,CAAC,IAAIS,IAAI,KAAK,UAAU,IAAIT,QAAQ,CAACiF,MAAM,GAAG,CAAC;EAEvE,IAAMgB,WAAW,GACfxF,IAAI,KAAK,UAAU,IAAI+D,KAAK,CAACC,OAAO,CAACzE,QAAQ,CAAC,IAAIA,QAAQ,CAACiF,MAAM,GAAG,CAAC;EAEvE,IAAMiB,QAAQ,GAAGlI,OAAO,CACtB;IAAA,OAAMmI,OAAO,CAACpG,OAAO,CAACkF,MAAM,IAAI5D,YAAY,IAAI+E,MAAM,CAAC5E,KAAK,CAACyD,MAAM,CAAC,GAAG,CAAC,CAAC;EAAA,GACzE,CAAC5D,YAAY,EAAEtB,OAAO,CAACkF,MAAM,EAAEzD,KAAK,CAAC,CACtC;EAED,oBACE;IAAK,SAAS,EAAC;EAAa,GACzBf,IAAI,KAAK,UAAU,gBAClB,uDACE;IACE,SAAS,EAAEH,QAAS;IACpB,KAAK,EAAEC,IAAK;IACZ,QAAQ,EAAEC,OAAQ;IAClB,GAAG,EAAEkC,WAAY;IAajB,SAAS,EAAE/C,UAAU,CACnB,2BAA2B,EAC3BqB,qBAAqB,CACrB;IACF,OAAO,EAAE,mBAAM;MAAA;MACb,uBAAAsB,UAAU,CAACQ,OAAO,qBAAlB,oBAAoBuD,KAAK,EAAE;IAC7B,CAAE;IAAA,QAdUrB,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAGT,SAAS;IAAA,QACpCS,QAAQ,KAAK,MAAM,IAAI/D,aAAa,GAC9C,QAAQ,GACRsD,SAAS;IAAA,QACCS,QAAQ,KAAK,MAAM,IAAI/D,aAAa,GAC9C,MAAM,GACNsD;EAAS,gBAUf,oBAAC,iBAAiB;IAChB,SAAS,EAAES,QAAS;IACpB,KAAK,EAAErC,IAAK;IACZ,GAAG,EAAEF;EAAY,GAEhByC,cAAc,eACf,oBAAC,WAAW;IACV,SAAS,EAAC,mBAAmB;IAC7B,MAAM,EAAEhB,UAAW;IACnB,OAAO,EAAE,mBAAM;MACbjC,UAAU,CAAC,CAACD,OAAO,CAAC;IACtB,CAAE;IACF,OAAO,EAAEwB,MAAO;IAChB,GAAG,EAAEjB,SAAU;IACf,KAAK,EAAEtC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGsB,KAAM;IACpD,SAAS,EAAEwB,eAAgB;IAC3B,QAAQ,EAAEd,cAAe;IACzB,WAAW,EAAE,CAAC+D,WAAW,GAAG7F,WAAW,GAAGmE,SAAU;IACpD,QAAQ,EAAEjE,QAAS;IACnB,KAAK,EAAEC,IAAK;IACZ,QAAQ,EAAEN,OAAQ;IAClB,KAAK,EAAE;MACLqG,OAAO,EAAE,MAAM;MACfC,IAAI,EAAE,CAAC;MACPC,SAAS,EAAE,QAAQ;MACnBC,KAAK,EAAEzB,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG;IACxC;EAAE,EACF,CACgB,EACnB,CAAC1E,QAAQ,iBACR,0CACGL,OAAO,gBACN,oBAAC,aAAa,OAAG,gBAEjB,0CACG+F,SAAS,iBACR;IACE,WAAW,EAAEhC,eAAgB;IAC7B,OAAO,EAAED,cAAe;IACxB,eAAY;EAAc,gBAM1B,oBAAC,4BAA4B,OAAG,CAEnC,EACAmC,QAAQ,iBACP,oBAAC,sCAAsC;IAAC,KAAK,EAAEvD;EAAK,EACrD,CAEJ,CAEJ,CACkB,CACpB,gBAEH,oBAAC,mBAAmB;IAClB,SAAS,EAAEhD,UAAU,CAAC,mBAAmB,EAAEqB,qBAAqB,CAAE;IAClE,MAAM,EAAEkD,UAAW;IACnB,YAAY,EAAEV,MAAO;IACrB,OAAO,EAAE,mBAAM;MACbvB,UAAU,CAAC,CAACD,OAAO,CAAC;MACpBwB,MAAM,EAAE;IACV,CAAE;IACF,OAAO,EAAEA,MAAO;IAChB,OAAO,EAAEd,WAAY;IACrB,GAAG,EAAEH,SAAU;IACf,KAAK,EAAEtC,OAAO,IAAIC,WAAW,GAAGA,WAAW,GAAGsB,KAAM;IACpD,SAAS,EAAEwB,eAAgB;IAC3B,QAAQ,EAAEd,cAAe;IACzB,WAAW,EAAE9B,WAAY;IACzB,QAAQ,EAAEE,QAAS;IACnB,IAAI,EAAEC,IAAK;IACX,OAAO,EAAEC,OAAQ;IACjB,QAAQ,EAAEP,OAAQ;IAClB,cAAc,EAAEiF,cAAe;IAC/B,YAAY,EACV,CAAC5E,QAAQ,gBACP,oBAAC,cAAc;MAAC,oBAAoB,EAAEA;IAAS,GAC5CL,OAAO,gBACN,oBAAC,aAAa,OAAG,GACfD,QAAQ,gBACV,oBAAC,UAAU;MACT,WAAW,EAAEgE,eAAgB;MAC7B,OAAO,EAAED,cAAe;MACxB,OAAO,EAAC,WAAW;MACnB,IAAI,EAAC;IAAO,gBAEZ,oBAAC,4BAA4B,OAAG,CACrB,GACX,IAAI,EACPmC,QAAQ,iBACP,oBAAC,sCAAsC;MAAC,KAAK,EAAEvD;IAAK,EACrD,CACc,GACf;EACL,EAEJ,EAEA,CAACrC,QAAQ,gBACR,oBAAC,kBAAkB;IACjB,SAAS,EAAES,QAAS;IACpB,IAAI,EAAE,cAAC2F,QAAQ;MAAA,oBAAK,oBAAC,MAAM,QAAEA,QAAQ,CAAU;IAAA;EAAC,gBAEhD,oBAAC,MAAM;IACL,QAAQ,EAAEhE,WAAW,CAACI,OAAQ;IAC9B,IAAI,EAAEH,IAAK;IACX,SAAS,EAAC,QAAQ;IAClB,KAAK,EAAE;MACLgE,MAAM,EAAE,EAAE;MACVF,KAAK,2BAAE/D,WAAW,CAACI,OAAO,qBAAnB,sBAAqB8D;IAC9B,CAAE;IACF,GAAG,EAAEpE,UAAW;IAChB,QAAQ,EAAC;EAAO,gBAEhB,oBAAC,YAAY;IAAC,WAAW;IAAC,cAAc;EAAA,gBACtC,oBAAC,kBAAkB;IACjB,MAAM,2BAAEE,WAAW,CAACI,OAAO,qBAAnB,sBAAqB8D,WAAY;IACzC,KAAK,EAAE,CAACV;EAAS,gBAEjB,oBAAC,YAAY,eACP5E,IAAI;IACR,OAAO,EAAEe,SAAU;IACnB,QAAQ,EAAErC,QAAS;IACnB,YAAY,EAAEsD,YAAa;IAC3B,YAAY,EAAEG,kBAAmB;IACjC,OAAO,EAAE1D,OAAQ;IACjB,IAAI,EAAEU,IAAK;IACX,iBAAiB,EAAE4C,WAAY;IAC/B,YAAY,EAAEhC;EAAa,GAC3B,CACiB,CACR,CACR,CACU,GACnB,IAAI,CACJ;AAEV,CAAC;AAEDvB,QAAQ,CAAC+G,WAAW,GAAG,UAAU;AAAC;EAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;EAAA;AAAA;AAAA;EAAA;EAAA;AAAA"}
|
|
@@ -8,6 +8,7 @@ export declare const StyledComboBoxCollapseExpandSingleIcon: import("styled-comp
|
|
|
8
8
|
export declare const StyledComboBoxCloseSmallIcon: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Omit<import("react").SVGProps<SVGSVGElement>, "ref"> & import("react").RefAttributes<SVGSVGElement>>, any, {}, never>;
|
|
9
9
|
export declare const StyledComboBoxList: import("styled-components").StyledComponent<"div", any, {
|
|
10
10
|
$width?: number | undefined;
|
|
11
|
+
$hide: boolean;
|
|
11
12
|
}, never>;
|
|
12
13
|
export declare const StyledChipWrapper: import("styled-components").StyledComponent<"div", any, {
|
|
13
14
|
$autoSize: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/Styles.ts"],"names":[],"mappings":";AAMA,eAAO,MAAM,mBAAmB;;SAI/B,CAAC;AASF,eAAO,MAAM,sCAAsC;;SAYlD,CAAC;AAKF,eAAO,MAAM,4BAA4B,6MAWxC,CAAC;AAIF,eAAO,MAAM,kBAAkB;;
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ComboBox/Styles.ts"],"names":[],"mappings":";AAMA,eAAO,MAAM,mBAAmB;;SAI/B,CAAC;AASF,eAAO,MAAM,sCAAsC;;SAYlD,CAAC;AAKF,eAAO,MAAM,4BAA4B,6MAWxC,CAAC;AAIF,eAAO,MAAM,kBAAkB;;WAEtB,OAAO;SAcf,CAAC;AAIF,eAAO,MAAM,iBAAiB;eACjB,MAAM;;SAqBlB,CAAC"}
|
|
@@ -23,8 +23,11 @@ StyledComboBoxCloseSmallIcon.displayName = "StyledComboBoxCloseSmallIcon";
|
|
|
23
23
|
export var StyledComboBoxList = styled.div.withConfig({
|
|
24
24
|
displayName: "Styles__StyledComboBoxList",
|
|
25
25
|
componentId: "sc-5qvkpb-3"
|
|
26
|
-
})(["min-width:260px;background-color:var(--page-paper-main);border-radius:8px;border:1px solid var(--border-primary);box-shadow:var(--shadow-tertiary);margin:8px 0;width:", ";"], function (props) {
|
|
26
|
+
})(["min-width:260px;background-color:var(--page-paper-main);border-radius:8px;border:1px solid var(--border-primary);box-shadow:var(--shadow-tertiary);margin:8px 0;width:", ";", ""], function (props) {
|
|
27
27
|
return props.$width + "px";
|
|
28
|
+
}, function (_ref) {
|
|
29
|
+
var $hide = _ref.$hide;
|
|
30
|
+
return $hide === true && css(["display:none;"]);
|
|
28
31
|
});
|
|
29
32
|
StyledComboBoxList.displayName = "StyledComboBoxList";
|
|
30
33
|
export var StyledChipWrapper = styled.div.withConfig({
|
|
@@ -36,18 +39,18 @@ export var StyledChipWrapper = styled.div.withConfig({
|
|
|
36
39
|
"gap": "0.25rem"
|
|
37
40
|
}, {
|
|
38
41
|
"flex": "1 1 0%"
|
|
39
|
-
}, function (_ref) {
|
|
40
|
-
var $open = _ref.$open;
|
|
41
|
-
return $open ? "auto" : "hidden";
|
|
42
42
|
}, function (_ref2) {
|
|
43
|
-
var $
|
|
43
|
+
var $open = _ref2.$open;
|
|
44
|
+
return $open ? "auto" : "hidden";
|
|
45
|
+
}, function (_ref3) {
|
|
46
|
+
var $autoSize = _ref3.$autoSize;
|
|
44
47
|
return $autoSize === "auto" && css(["", ";", ";"], {
|
|
45
48
|
"flexWrap": "wrap"
|
|
46
49
|
}, {
|
|
47
50
|
"width": "100%"
|
|
48
51
|
});
|
|
49
|
-
}, function (
|
|
50
|
-
var $autoSize =
|
|
52
|
+
}, function (_ref4) {
|
|
53
|
+
var $autoSize = _ref4.$autoSize;
|
|
51
54
|
return $autoSize !== "auto" && css(["align-items:center;"]);
|
|
52
55
|
});
|
|
53
56
|
StyledChipWrapper.displayName = "StyledChipWrapper";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["styled","css","CollapseExpandSingleIcon","CloseSmallIcon","Input","StyledInputWrapper","StyledComboBoxInput","displayName","StyledIconDefaults","StyledComboBoxCollapseExpandSingleIcon","props","$open","StyledComboBoxCloseSmallIcon","StyledComboBoxList","div","$width","StyledChipWrapper","$autoSize"],"sources":["../../../../src/components/ComboBox/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input\";\nimport { StyledInputWrapper } from \"../Input/Styles\";\nimport tw from \"twin.macro\";\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<{
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["styled","css","CollapseExpandSingleIcon","CloseSmallIcon","Input","StyledInputWrapper","StyledComboBoxInput","displayName","StyledIconDefaults","StyledComboBoxCollapseExpandSingleIcon","props","$open","StyledComboBoxCloseSmallIcon","StyledComboBoxList","div","$width","$hide","StyledChipWrapper","$autoSize"],"sources":["../../../../src/components/ComboBox/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { CollapseExpandSingleIcon, CloseSmallIcon } from \"../Icons/collection\";\nimport { Input } from \"../Input\";\nimport { StyledInputWrapper } from \"../Input/Styles\";\nimport tw from \"twin.macro\";\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<{\n $width?: number;\n $hide: boolean;\n}>`\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 ${({ $hide }) =>\n $hide === true &&\n css`\n display: none;\n `}\n`;\n\nStyledComboBoxList.displayName = \"StyledComboBoxList\";\n\nexport const StyledChipWrapper = styled.div<{\n $autoSize: string;\n $open?: boolean;\n}>`\n ${tw`tw-flex`};\n ${tw`tw-gap-1`};\n ${tw`tw-flex-1`};\n\n overflow: ${({ $open }) => ($open ? \"auto\" : \"hidden\")};\n\n ${({ $autoSize }) =>\n $autoSize === \"auto\" &&\n css`\n ${tw`tw-flex-wrap`};\n ${tw`tw-w-full`};\n `}\n\n ${({ $autoSize }) =>\n $autoSize !== \"auto\" &&\n css`\n align-items: center;\n `}\n`;\nStyledChipWrapper.displayName = \"StyledChipWrapper\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,wBAAwB,EAAEC,cAAc,QAAQ,qBAAqB;AAC9E,SAASC,KAAK,QAAQ,UAAU;AAChC,SAASC,kBAAkB,QAAQ,iBAAiB;AAGpD,OAAO,IAAMC,mBAAmB,GAAGN,MAAM,CAACI,KAAK,CAAC;EAAA;EAAA;AAAA,0DAI/C;AAEDE,mBAAmB,CAACC,WAAW,GAAG,qBAAqB;AAEvD,IAAMC,kBAAkB,GAAGP,GAAG,mCAG7B;AAED,OAAO,IAAMQ,sCAAsC,GAAGT,MAAM,CAC1DE,wBAAwB,CACzB;EAAA;EAAA;AAAA,wEACGM,kBAAkB,EAIlB,UAACE,KAAK;EAAA,OACNA,KAAK,CAACC,KAAK,IACXV,GAAG,6BAEF;AAAA,EACJ;AAEDQ,sCAAsC,CAACF,WAAW,GAChD,wCAAwC;AAE1C,OAAO,IAAMK,4BAA4B,GAAGZ,MAAM,CAACG,cAAc,CAAC;EAAA;EAAA;AAAA,sJAC9DK,kBAAkB,EAMlBF,mBAAmB,EAAWD,kBAAkB,CAInD;AAEDO,4BAA4B,CAACL,WAAW,GAAG,8BAA8B;AAEzE,OAAO,IAAMM,kBAAkB,GAAGb,MAAM,CAACc,GAAG;EAAA;EAAA;AAAA,wLAUjC,UAACJ,KAAK;EAAA,OAAQA,KAAK,CAACK,MAAM;AAAA,CAAI,EACrC;EAAA,IAAGC,KAAK,QAALA,KAAK;EAAA,OACRA,KAAK,KAAK,IAAI,IACdf,GAAG,mBAEF;AAAA,EACJ;AAEDY,kBAAkB,CAACN,WAAW,GAAG,oBAAoB;AAErD,OAAO,IAAMU,iBAAiB,GAAGjB,MAAM,CAACc,GAAG;EAAA;EAAA;AAAA,+CAIrC;EAAA;AAAQ,CAAC,EACT;EAAA;AAAS,CAAC,EACV;EAAA;AAAU,CAAC,EAEH;EAAA,IAAGH,KAAK,SAALA,KAAK;EAAA,OAAQA,KAAK,GAAG,MAAM,GAAG,QAAQ;AAAA,CAAC,EAEpD;EAAA,IAAGO,SAAS,SAATA,SAAS;EAAA,OACZA,SAAS,KAAK,MAAM,IACpBjB,GAAG,iBACG;IAAA;EAAa,CAAC,EACd;IAAA;EAAU,CAAC,CAChB;AAAA,GAED;EAAA,IAAGiB,SAAS,SAATA,SAAS;EAAA,OACZA,SAAS,KAAK,MAAM,IACpBjB,GAAG,yBAEF;AAAA,EACJ;AACDgB,iBAAiB,CAACV,WAAW,GAAG,mBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Steppers/DateStepper/Styles.ts"],"names":[],"mappings":";AASA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Steppers/DateStepper/Styles.ts"],"names":[],"mappings":";AASA,eAAO,MAAM,YAAY,uEAoDxB,CAAC;AAEF,eAAO,MAAM,UAAU,6GAOtB,CAAC;AAEF,eAAO,MAAM,iBAAiB,wQAQ7B,CAAC;AAEF,eAAO,MAAM,UAAU,qEAGtB,CAAC;AAEF,UAAU,SAAS;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,2EAwErB,CAAC;AAEF,eAAO,MAAM,aAAa;;sEAEzB,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { IconButton } from "../../IconButton";
|
|
|
8
8
|
export var StyledButton = styled.button.withConfig({
|
|
9
9
|
displayName: "Styles__StyledButton",
|
|
10
10
|
componentId: "sc-1v8h7mt-0"
|
|
11
|
-
})(["", " ", " ", " color:var(--color-theme-700);margin:0;padding:0;background:none;width:100%;height:auto;border:none;height:30px;line-height:1;transition:all 0.3s ease;svg{fill:currentColor;}&::-moz-focus-inner{border:0;}&:focus{outline:none;}&:hover{text-decoration:none;}&:disabled{cursor:default;opacity:50%;pointer-events:none;}"], FontStyle, BoxSizingStyle, {
|
|
11
|
+
})(["", " ", " ", " color:var(--color-theme-700);margin:0;padding:0;padding-top:0;background:none;width:100%;height:auto;border:none;height:30px;line-height:1;transition:all 0.3s ease;svg{fill:currentColor;}&::-moz-focus-inner{border:0;}&:focus{outline:none;}&:hover{text-decoration:none;}&:disabled{cursor:default;opacity:50%;pointer-events:none;}"], FontStyle, BoxSizingStyle, {
|
|
12
12
|
"position": "relative",
|
|
13
13
|
"margin": "0px",
|
|
14
14
|
"display": "inline-block",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["styled","css","ButtonGroup","FontStyle","BoxSizingStyle","screen","Menu","IconButton","StyledButton","button","StyledMenu","StyledButtonGroup","StyledSpan","span","StyledDiv","div","props","$isTargetable","$isRounded","md","StyledControl","displayName"],"sources":["../../../../../src/components/Steppers/DateStepper/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { ButtonGroup } from \"../../ButtonGroup\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { screen } from \"../../BreakPoints\";\nimport tw from \"twin.macro\";\nimport { Menu } from \"../../Menu\";\nimport { IconButton } from \"../../IconButton\";\n\nexport const StyledButton = styled.button`\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${tw`\n tw-relative\n tw-antialiased\n tw-align-middle\n tw-font-medium\n tw-inline-block\n tw-leading-none\n tw-m-0\n tw-no-underline\n tw-text-sm\n tw-select-none\n tw-cursor-pointer\n tw-text-center\n `}\n\n color: var(--color-theme-700);\n margin: 0;\n padding: 0;\n background: none;\n width: 100%;\n height: auto;\n border: none;\n height: 30px;\n line-height: 1;\n transition: all 0.3s ease;\n\n svg {\n fill: currentColor;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n text-decoration: none;\n }\n\n &:disabled {\n cursor: default;\n opacity: 50%;\n pointer-events: none;\n }\n`;\n\nexport const StyledMenu = styled(Menu)`\n ${tw`\n tw-w-auto\n tw-h-auto\n tw-py-4\n tw-px-2\n `}\n`;\n\nexport const StyledButtonGroup = styled(ButtonGroup)`\n ${FontStyle}\n ${BoxSizingStyle}\n\n button:hover {\n position: relative;\n z-index: 1;\n }\n`;\n\nexport const StyledSpan = styled.span`\n line-height: 30px;\n color: var(--color-theme-700);\n`;\n\ninterface StyledDiv {\n $isTargetable: boolean;\n $isRounded: boolean;\n}\n\nexport const StyledDiv = styled.div<StyledDiv>`\n ${(props) =>\n props.$isTargetable &&\n css`\n ${tw`tw-pointer-events-none`}\n `}\n\n ${(props) =>\n props.$isRounded &&\n css`\n border-radius: var(--ac-br-rounded);\n `}\n\n ${tw`\n tw-relative\n tw-text-center\n tw-p-0\n tw-antialiased\n tw-align-middle\n tw-font-medium\n tw-inline-block\n tw-leading-none\n tw-m-0\n tw-no-underline\n tw-text-sm\n tw-select-none\n tw-cursor-pointer\n tw-border\n tw-border-solid\n `}\n\n height: 32px;\n transition: all 0.3s ease;\n background-color: transparent;\n border: solid 1px var(--color-theme-700);\n color: var(--color-theme-700);\n margin-right: -1px;\n display: none;\n\n ${screen.md} {\n display: block;\n }\n\n svg {\n fill: currentColor;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &:disabled {\n cursor: default;\n opacity: 50%;\n pointer-events: none;\n }\n\n &:hover {\n border-color: var(--color-primary);\n color: var(--color-primary);\n text-decoration: none;\n }\n\n &:active {\n border-color: var(--color-primary);\n color: var(--color-primary);\n background-color: var(--color-primary-200);\n }\n`;\n\nexport const StyledControl = styled(IconButton)`\n border-radius: var(--ac-br-8);\n`;\n\nStyledButtonGroup.displayName = \"StyledButtonGroup\";\nStyledSpan.displayName = \"StyledSpan\";\nStyledDiv.displayName = \"StyledDiv\";\nStyledMenu.displayName = \"StyledMenu\";\nStyledButton.displayName = \"StyledButton\";\nStyledControl.displayName = \"StyledControl\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,SAASC,IAAI,QAAQ,YAAY;AACjC,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAO,IAAMC,YAAY,GAAGR,MAAM,CAACS,MAAM;EAAA;EAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["styled","css","ButtonGroup","FontStyle","BoxSizingStyle","screen","Menu","IconButton","StyledButton","button","StyledMenu","StyledButtonGroup","StyledSpan","span","StyledDiv","div","props","$isTargetable","$isRounded","md","StyledControl","displayName"],"sources":["../../../../../src/components/Steppers/DateStepper/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport { ButtonGroup } from \"../../ButtonGroup\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { screen } from \"../../BreakPoints\";\nimport tw from \"twin.macro\";\nimport { Menu } from \"../../Menu\";\nimport { IconButton } from \"../../IconButton\";\n\nexport const StyledButton = styled.button`\n ${FontStyle}\n ${BoxSizingStyle}\n\n ${tw`\n tw-relative\n tw-antialiased\n tw-align-middle\n tw-font-medium\n tw-inline-block\n tw-leading-none\n tw-m-0\n tw-no-underline\n tw-text-sm\n tw-select-none\n tw-cursor-pointer\n tw-text-center\n `}\n\n color: var(--color-theme-700);\n margin: 0;\n padding: 0;\n padding-top: 0; // @todo - delete\n background: none;\n width: 100%;\n height: auto;\n border: none;\n height: 30px;\n line-height: 1;\n transition: all 0.3s ease;\n\n svg {\n fill: currentColor;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n text-decoration: none;\n }\n\n &:disabled {\n cursor: default;\n opacity: 50%;\n pointer-events: none;\n }\n`;\n\nexport const StyledMenu = styled(Menu)`\n ${tw`\n tw-w-auto\n tw-h-auto\n tw-py-4\n tw-px-2\n `}\n`;\n\nexport const StyledButtonGroup = styled(ButtonGroup)`\n ${FontStyle}\n ${BoxSizingStyle}\n\n button:hover {\n position: relative;\n z-index: 1;\n }\n`;\n\nexport const StyledSpan = styled.span`\n line-height: 30px;\n color: var(--color-theme-700);\n`;\n\ninterface StyledDiv {\n $isTargetable: boolean;\n $isRounded: boolean;\n}\n\nexport const StyledDiv = styled.div<StyledDiv>`\n ${(props) =>\n props.$isTargetable &&\n css`\n ${tw`tw-pointer-events-none`}\n `}\n\n ${(props) =>\n props.$isRounded &&\n css`\n border-radius: var(--ac-br-rounded);\n `}\n\n ${tw`\n tw-relative\n tw-text-center\n tw-p-0\n tw-antialiased\n tw-align-middle\n tw-font-medium\n tw-inline-block\n tw-leading-none\n tw-m-0\n tw-no-underline\n tw-text-sm\n tw-select-none\n tw-cursor-pointer\n tw-border\n tw-border-solid\n `}\n\n height: 32px;\n transition: all 0.3s ease;\n background-color: transparent;\n border: solid 1px var(--color-theme-700);\n color: var(--color-theme-700);\n margin-right: -1px;\n display: none;\n\n ${screen.md} {\n display: block;\n }\n\n svg {\n fill: currentColor;\n }\n\n &::-moz-focus-inner {\n border: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n &:disabled {\n cursor: default;\n opacity: 50%;\n pointer-events: none;\n }\n\n &:hover {\n border-color: var(--color-primary);\n color: var(--color-primary);\n text-decoration: none;\n }\n\n &:active {\n border-color: var(--color-primary);\n color: var(--color-primary);\n background-color: var(--color-primary-200);\n }\n`;\n\nexport const StyledControl = styled(IconButton)`\n border-radius: var(--ac-br-8);\n`;\n\nStyledButtonGroup.displayName = \"StyledButtonGroup\";\nStyledSpan.displayName = \"StyledSpan\";\nStyledDiv.displayName = \"StyledDiv\";\nStyledMenu.displayName = \"StyledMenu\";\nStyledButton.displayName = \"StyledButton\";\nStyledControl.displayName = \"StyledControl\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,SAASC,IAAI,QAAQ,YAAY;AACjC,SAASC,UAAU,QAAQ,kBAAkB;AAE7C,OAAO,IAAMC,YAAY,GAAGR,MAAM,CAACS,MAAM;EAAA;EAAA;AAAA,gWACrCN,SAAS,EACTC,cAAc,EAEZ;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAaJ,CAAC,CAmCF;AAED,OAAO,IAAMM,UAAU,GAAGV,MAAM,CAACM,IAAI,CAAC;EAAA;EAAA;AAAA,aAChC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAKJ,CAAC,CACF;AAED,OAAO,IAAMK,iBAAiB,GAAGX,MAAM,CAACE,WAAW,CAAC;EAAA;EAAA;AAAA,6DAChDC,SAAS,EACTC,cAAc,CAMjB;AAED,OAAO,IAAMQ,UAAU,GAAGZ,MAAM,CAACa,IAAI;EAAA;EAAA;AAAA,sDAGpC;AAOD,OAAO,IAAMC,SAAS,GAAGd,MAAM,CAACe,GAAG;EAAA;EAAA;AAAA,oiBAC/B,UAACC,KAAK;EAAA,OACNA,KAAK,CAACC,aAAa,IACnBhB,GAAG,WACG;IAAA;EAAuB,CAAC,CAC7B;AAAA,GAED,UAACe,KAAK;EAAA,OACNA,KAAK,CAACE,UAAU,IAChBjB,GAAG,yCAEF;AAAA,GAEC;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAgBJ,CAAC,EAUCI,MAAM,CAACc,EAAE,CAiCZ;AAED,OAAO,IAAMC,aAAa,GAAGpB,MAAM,CAACO,UAAU,CAAC;EAAA;EAAA;AAAA,qCAE9C;AAEDI,iBAAiB,CAACU,WAAW,GAAG,mBAAmB;AACnDT,UAAU,CAACS,WAAW,GAAG,YAAY;AACrCP,SAAS,CAACO,WAAW,GAAG,WAAW;AACnCX,UAAU,CAACW,WAAW,GAAG,YAAY;AACrCb,YAAY,CAACa,WAAW,GAAG,cAAc;AACzCD,aAAa,CAACC,WAAW,GAAG,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputNumber.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,oBAAY,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAInC,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,cAAc,wJAatB,gBAAgB,OACd,iBAAiB,gBAAgB,GAAG,IAAI,CAAC;;;;;;;;qCAjBtB,MAAM,KAAK,IAAI;
|
|
1
|
+
{"version":3,"file":"useInputNumber.d.ts","sourceRoot":"","sources":["../../../src/hooks/useInputNumber.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,oBAAY,UAAU,GAAG,GAAG,GAAG,GAAG,CAAC;AAInC,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC/B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,cAAc,wJAatB,gBAAgB,OACd,iBAAiB,gBAAgB,GAAG,IAAI,CAAC;;;;;;;;qCAjBtB,MAAM,KAAK,IAAI;CA8KxC,CAAC"}
|
|
@@ -14,7 +14,8 @@ export var useInputNumber = function useInputNumber(_ref, ref) {
|
|
|
14
14
|
onBlur = _ref.onBlur,
|
|
15
15
|
onFocus = _ref.onFocus,
|
|
16
16
|
step = _ref.step;
|
|
17
|
-
var
|
|
17
|
+
var startValue = disableAbbreviation ? value : formatCurrency(value, thousandSeparator);
|
|
18
|
+
var _useState = useState(startValue),
|
|
18
19
|
formattedValue = _useState[0],
|
|
19
20
|
setFormatted = _useState[1];
|
|
20
21
|
var _useState2 = useState(value),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputNumber.js","names":["useState","currencyMultiplier","formatCurrency","numberWithSeparator","useInputNumber","ref","decimalSeparator","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","value","onValueChange","onKeyDown","onBlur","onFocus","step","formattedValue","setFormatted","rootValue","setRootValue","focused","setFocused","handleInputBlur","current","blur","handleSelect","select","handleChange","e","inputValue","target","isValidInput","startsWith","numericInput","replace","_","num","unit","parseFloat","toLowerCase","toString","regexString","RegExp","test","handleKeyDown","key","_step","String","preventDefault","updateValue","metaKey","ctrlKey","handleBlur","handleFocus","type","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","slice","indexOf","toFixed","joinedValue"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n ChangeEventHandler,\n KeyboardEventHandler,\n FocusEventHandler,\n MutableRefObject,\n} from \"react\";\nimport {\n currencyMultiplier,\n formatCurrency,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\nimport type { InputProps } from \"../components\";\n\nexport type Separators = \".\" | \",\";\n\n// https://www.youtube.com/watch?v=2AilA-M6N5U\n// @TODO: Pitati foo za testove.\nexport interface InputNumberProps extends InputProps {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n onValueChange?: (value: string) => void;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value,\n onValueChange,\n onKeyDown,\n onBlur,\n onFocus,\n step,\n }: InputNumberProps,\n ref: MutableRefObject<HTMLInputElement | null>\n) => {\n const [formattedValue, setFormatted] = useState(value);\n const [rootValue, setRootValue] = useState(value);\n const [focused, setFocused] = useState<boolean>(false);\n\n const handleInputBlur = () => {\n if (ref && ref.current) {\n ref.current.blur();\n }\n };\n\n const handleSelect = () => {\n if (ref && ref.current) {\n ref.current.select();\n }\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n const inputValue = e.target.value;\n let isValidInput = false;\n\n if (inputValue.startsWith(\"00\")) {\n return;\n }\n\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n\n const regexString = `^(-?\\\\d{0,9}(?:[${thousandSeparator}]?\\\\d{0,3})*(?:\\\\${decimalSeparator}\\\\d{0,${decimalLength}})?)?$`;\n\n if (thousandSeparator === \",\") {\n isValidInput = new RegExp(regexString).test(numericInput);\n }\n\n if (thousandSeparator === \".\") {\n isValidInput = new RegExp(regexString).test(numericInput);\n }\n\n if (!isValidInput) {\n return;\n }\n\n setFormatted(numericInput);\n\n onValueChange && onValueChange(numericInput);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (e) => {\n const key = e.key;\n const _step = parseFloat(String(step));\n\n if (key === \"Escape\") {\n handleInputBlur();\n }\n\n if (key === \"ArrowUp\") {\n e.preventDefault();\n\n updateValue(\"increment\", _step);\n }\n\n if (key === \"ArrowDown\") {\n e.preventDefault();\n\n updateValue(\"decrement\", _step);\n }\n\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n handleSelect();\n }\n\n if (decimalLength === 0 && e.key === decimalSeparator) {\n e.preventDefault();\n }\n\n onKeyDown && onKeyDown(e);\n };\n\n const handleBlur: FocusEventHandler<HTMLInputElement> = (e) => {\n if (disableAbbreviation) {\n setFormatted(formattedValue);\n } else {\n setFormatted(formatCurrency(formattedValue as string, thousandSeparator));\n }\n\n setRootValue(formattedValue);\n setFocused(false);\n\n onBlur && onBlur(e);\n };\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = (e) => {\n setFormatted(rootValue);\n setFocused(true);\n\n onFocus && onFocus(e);\n };\n\n const updateValue = (type: \"increment\" | \"decrement\", step: number) => {\n const value = String(formattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n value.includes(thousandSeparator)\n );\n\n setFormatted(decimalPart ? joinedValue + decimalPart : joinedValue);\n };\n\n return {\n focused,\n formattedValue,\n rootValue,\n handleChange,\n handleKeyDown,\n handleBlur,\n handleFocus,\n onValueChange,\n } as const;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useInputNumber.js","names":["useState","currencyMultiplier","formatCurrency","numberWithSeparator","useInputNumber","ref","decimalSeparator","thousandSeparator","disableAbbreviation","disableMacros","decimalLength","value","onValueChange","onKeyDown","onBlur","onFocus","step","startValue","formattedValue","setFormatted","rootValue","setRootValue","focused","setFocused","handleInputBlur","current","blur","handleSelect","select","handleChange","e","inputValue","target","isValidInput","startsWith","numericInput","replace","_","num","unit","parseFloat","toLowerCase","toString","regexString","RegExp","test","handleKeyDown","key","_step","String","preventDefault","updateValue","metaKey","ctrlKey","handleBlur","handleFocus","type","decimalPart","increasedValue","nonDecimalPart","replaceAll","includes","slice","indexOf","toFixed","joinedValue"],"sources":["../../../src/hooks/useInputNumber.tsx"],"sourcesContent":["import {\n useState,\n ChangeEventHandler,\n KeyboardEventHandler,\n FocusEventHandler,\n MutableRefObject,\n} from \"react\";\nimport {\n currencyMultiplier,\n formatCurrency,\n numberWithSeparator,\n} from \"../utils/currencyUtils\";\nimport type { InputProps } from \"../components\";\n\nexport type Separators = \".\" | \",\";\n\n// https://www.youtube.com/watch?v=2AilA-M6N5U\n// @TODO: Pitati foo za testove.\nexport interface InputNumberProps extends InputProps {\n decimalLength?: number;\n decimalSeparator?: Separators;\n disableAbbreviation?: boolean;\n disableMacros?: boolean;\n thousandSeparator?: Separators;\n onValueChange?: (value: string) => void;\n}\n\nexport const useInputNumber = (\n {\n decimalSeparator = \".\",\n thousandSeparator = \",\",\n disableAbbreviation,\n disableMacros,\n decimalLength,\n value,\n onValueChange,\n onKeyDown,\n onBlur,\n onFocus,\n step,\n }: InputNumberProps,\n ref: MutableRefObject<HTMLInputElement | null>\n) => {\n const startValue = disableAbbreviation\n ? value\n : formatCurrency(value as string, thousandSeparator);\n const [formattedValue, setFormatted] = useState(startValue);\n const [rootValue, setRootValue] = useState(value);\n const [focused, setFocused] = useState<boolean>(false);\n\n const handleInputBlur = () => {\n if (ref && ref.current) {\n ref.current.blur();\n }\n };\n\n const handleSelect = () => {\n if (ref && ref.current) {\n ref.current.select();\n }\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n const inputValue = e.target.value;\n let isValidInput = false;\n\n if (inputValue.startsWith(\"00\")) {\n return;\n }\n\n const numericInput = disableMacros\n ? inputValue\n : inputValue.replace(/([0-9.]+)([kmbtKMBT])/, (_, num, unit) => {\n return (\n parseFloat(num) * currencyMultiplier[unit.toLowerCase()]\n ).toString();\n });\n\n const regexString = `^(-?\\\\d{0,9}(?:[${thousandSeparator}]?\\\\d{0,3})*(?:\\\\${decimalSeparator}\\\\d{0,${decimalLength}})?)?$`;\n\n if (thousandSeparator === \",\") {\n isValidInput = new RegExp(regexString).test(numericInput);\n }\n\n if (thousandSeparator === \".\") {\n isValidInput = new RegExp(regexString).test(numericInput);\n }\n\n if (!isValidInput) {\n return;\n }\n\n setFormatted(numericInput);\n\n onValueChange && onValueChange(numericInput);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLInputElement> = (e) => {\n const key = e.key;\n const _step = parseFloat(String(step));\n\n if (key === \"Escape\") {\n handleInputBlur();\n }\n\n if (key === \"ArrowUp\") {\n e.preventDefault();\n\n updateValue(\"increment\", _step);\n }\n\n if (key === \"ArrowDown\") {\n e.preventDefault();\n\n updateValue(\"decrement\", _step);\n }\n\n if ((e.metaKey || e.ctrlKey) && e.key === \"a\") {\n handleSelect();\n }\n\n if (decimalLength === 0 && e.key === decimalSeparator) {\n e.preventDefault();\n }\n\n onKeyDown && onKeyDown(e);\n };\n\n const handleBlur: FocusEventHandler<HTMLInputElement> = (e) => {\n if (disableAbbreviation) {\n setFormatted(formattedValue);\n } else {\n setFormatted(formatCurrency(formattedValue as string, thousandSeparator));\n }\n\n setRootValue(formattedValue);\n setFocused(false);\n\n onBlur && onBlur(e);\n };\n\n const handleFocus: FocusEventHandler<HTMLInputElement> = (e) => {\n setFormatted(rootValue);\n setFocused(true);\n\n onFocus && onFocus(e);\n };\n\n const updateValue = (type: \"increment\" | \"decrement\", step: number) => {\n const value = String(formattedValue);\n\n let decimalPart = \"\";\n let increasedValue = 0;\n let nonDecimalPart = value.replaceAll(thousandSeparator, \"\");\n\n if (!value) {\n return;\n }\n\n if (value.includes(decimalSeparator)) {\n nonDecimalPart = value\n .slice(0, value.indexOf(decimalSeparator))\n .replaceAll(thousandSeparator, \"\");\n }\n\n if (value.includes(decimalSeparator)) {\n decimalPart = value.slice(value.indexOf(decimalSeparator));\n }\n\n if (type === \"increment\") {\n increasedValue = parseFloat(nonDecimalPart) + step;\n } else {\n increasedValue = parseFloat(nonDecimalPart) - step;\n }\n\n if (value.includes(decimalSeparator)) {\n increasedValue = parseFloat(increasedValue.toFixed(decimalLength));\n }\n\n const joinedValue = numberWithSeparator(\n increasedValue,\n thousandSeparator,\n value.includes(thousandSeparator)\n );\n\n setFormatted(decimalPart ? joinedValue + decimalPart : joinedValue);\n };\n\n return {\n focused,\n formattedValue,\n rootValue,\n handleChange,\n handleKeyDown,\n handleBlur,\n handleFocus,\n onValueChange,\n } as const;\n};\n"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8995,7 +8995,7 @@
|
|
|
8995
8995
|
var StyledButton$1 = styled__default["default"].button.withConfig({
|
|
8996
8996
|
displayName: "Styles__StyledButton",
|
|
8997
8997
|
componentId: "sc-1v8h7mt-0"
|
|
8998
|
-
})(["", " ", " ", " color:var(--color-theme-700);margin:0;padding:0;background:none;width:100%;height:auto;border:none;height:30px;line-height:1;transition:all 0.3s ease;svg{fill:currentColor;}&::-moz-focus-inner{border:0;}&:focus{outline:none;}&:hover{text-decoration:none;}&:disabled{cursor:default;opacity:50%;pointer-events:none;}"], FontStyle, BoxSizingStyle, {
|
|
8998
|
+
})(["", " ", " ", " color:var(--color-theme-700);margin:0;padding:0;padding-top:0;background:none;width:100%;height:auto;border:none;height:30px;line-height:1;transition:all 0.3s ease;svg{fill:currentColor;}&::-moz-focus-inner{border:0;}&:focus{outline:none;}&:hover{text-decoration:none;}&:disabled{cursor:default;opacity:50%;pointer-events:none;}"], FontStyle, BoxSizingStyle, {
|
|
8999
8999
|
"position": "relative",
|
|
9000
9000
|
"margin": "0px",
|
|
9001
9001
|
"display": "inline-block",
|
|
@@ -11159,7 +11159,8 @@
|
|
|
11159
11159
|
onBlur = _ref.onBlur,
|
|
11160
11160
|
onFocus = _ref.onFocus,
|
|
11161
11161
|
step = _ref.step;
|
|
11162
|
-
var
|
|
11162
|
+
var startValue = disableAbbreviation ? value : formatCurrency(value, thousandSeparator);
|
|
11163
|
+
var _useState = React.useState(startValue),
|
|
11163
11164
|
_useState2 = _slicedToArray(_useState, 2),
|
|
11164
11165
|
formattedValue = _useState2[0],
|
|
11165
11166
|
setFormatted = _useState2[1];
|
|
@@ -15322,8 +15323,11 @@
|
|
|
15322
15323
|
var StyledComboBoxList = styled__default["default"].div.withConfig({
|
|
15323
15324
|
displayName: "Styles__StyledComboBoxList",
|
|
15324
15325
|
componentId: "sc-5qvkpb-3"
|
|
15325
|
-
})(["min-width:260px;background-color:var(--page-paper-main);border-radius:8px;border:1px solid var(--border-primary);box-shadow:var(--shadow-tertiary);margin:8px 0;width:", ";"], function (props) {
|
|
15326
|
+
})(["min-width:260px;background-color:var(--page-paper-main);border-radius:8px;border:1px solid var(--border-primary);box-shadow:var(--shadow-tertiary);margin:8px 0;width:", ";", ""], function (props) {
|
|
15326
15327
|
return "".concat(props.$width, "px");
|
|
15328
|
+
}, function (_ref) {
|
|
15329
|
+
var $hide = _ref.$hide;
|
|
15330
|
+
return $hide === true && styled.css(["display:none;"]);
|
|
15327
15331
|
});
|
|
15328
15332
|
StyledComboBoxList.displayName = "StyledComboBoxList";
|
|
15329
15333
|
var StyledChipWrapper = styled__default["default"].div.withConfig({
|
|
@@ -15335,18 +15339,18 @@
|
|
|
15335
15339
|
"gap": "0.25rem"
|
|
15336
15340
|
}, {
|
|
15337
15341
|
"flex": "1 1 0%"
|
|
15338
|
-
}, function (_ref) {
|
|
15339
|
-
var $open = _ref.$open;
|
|
15340
|
-
return $open ? "auto" : "hidden";
|
|
15341
15342
|
}, function (_ref2) {
|
|
15342
|
-
var $
|
|
15343
|
+
var $open = _ref2.$open;
|
|
15344
|
+
return $open ? "auto" : "hidden";
|
|
15345
|
+
}, function (_ref3) {
|
|
15346
|
+
var $autoSize = _ref3.$autoSize;
|
|
15343
15347
|
return $autoSize === "auto" && styled.css(["", ";", ";"], {
|
|
15344
15348
|
"flexWrap": "wrap"
|
|
15345
15349
|
}, {
|
|
15346
15350
|
"width": "100%"
|
|
15347
15351
|
});
|
|
15348
|
-
}, function (
|
|
15349
|
-
var $autoSize =
|
|
15352
|
+
}, function (_ref4) {
|
|
15353
|
+
var $autoSize = _ref4.$autoSize;
|
|
15350
15354
|
return $autoSize !== "auto" && styled.css(["align-items:center;"]);
|
|
15351
15355
|
});
|
|
15352
15356
|
StyledChipWrapper.displayName = "StyledChipWrapper";
|
|
@@ -15481,7 +15485,7 @@
|
|
|
15481
15485
|
return isFirst.current;
|
|
15482
15486
|
};
|
|
15483
15487
|
|
|
15484
|
-
var _excluded$j = ["options", "selected", "loading", "loadingText", "onChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear", "onDeselect"];
|
|
15488
|
+
var _excluded$j = ["options", "selected", "loading", "loadingText", "onChange", "placeholder", "handleEmptyAction", "disabled", "size", "invalid", "type", "renderChip", "forceCloseMenu", "renderOption", "limitChips", "hiddenNumberText", "inPortal", "inputWrapperClassName", "scrollWrapper", "onClose", "onClear", "onDeselect", "defaultValue"];
|
|
15485
15489
|
var ComboBox = function ComboBox(_ref) {
|
|
15486
15490
|
var _comboBoxRef$current2, _comboBoxRef$current3;
|
|
15487
15491
|
var _ref$options = _ref.options,
|
|
@@ -15515,6 +15519,7 @@
|
|
|
15515
15519
|
onClose = _ref.onClose,
|
|
15516
15520
|
onClear = _ref.onClear,
|
|
15517
15521
|
onDeselect = _ref.onDeselect,
|
|
15522
|
+
defaultValue = _ref.defaultValue,
|
|
15518
15523
|
prop = _objectWithoutProperties(_ref, _excluded$j);
|
|
15519
15524
|
var selectedName = React.useMemo(function () {
|
|
15520
15525
|
var value = "";
|
|
@@ -15771,6 +15776,9 @@
|
|
|
15771
15776
|
}, [type, selected, options, open, limitChips, hiddenNumberText, renderChipAdornment, size]);
|
|
15772
15777
|
var showXIcon = Array.isArray(selected) && type === "multiple" && selected.length > 0;
|
|
15773
15778
|
var hasSelected = type === "multiple" && Array.isArray(selected) && selected.length > 0;
|
|
15779
|
+
var showMenu = React.useMemo(function () {
|
|
15780
|
+
return Boolean(options.length || defaultValue || Number(value.length) > 0);
|
|
15781
|
+
}, [defaultValue, options.length, value]);
|
|
15774
15782
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
15775
15783
|
className: "c-combo-box"
|
|
15776
15784
|
}, type === "multiple" ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(_StyledStyledInputWrapper, {
|
|
@@ -15815,7 +15823,7 @@
|
|
|
15815
15823
|
onMouseDown: handleMouseDown,
|
|
15816
15824
|
onClick: handleDeselect,
|
|
15817
15825
|
"data-testid": "deselect-all"
|
|
15818
|
-
}, /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCloseSmallIcon, null)), /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCollapseExpandSingleIcon, {
|
|
15826
|
+
}, /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCloseSmallIcon, null)), showMenu && /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCollapseExpandSingleIcon, {
|
|
15819
15827
|
$open: open
|
|
15820
15828
|
}))))) : /*#__PURE__*/React__default["default"].createElement(StyledComboBoxInput, {
|
|
15821
15829
|
className: classNames__default["default"]("c-combo-box-input", inputWrapperClassName),
|
|
@@ -15823,6 +15831,7 @@
|
|
|
15823
15831
|
wrapperClick: onOpen,
|
|
15824
15832
|
onFocus: function onFocus() {
|
|
15825
15833
|
setFocused(!focused);
|
|
15834
|
+
onOpen();
|
|
15826
15835
|
},
|
|
15827
15836
|
onClick: onOpen,
|
|
15828
15837
|
wrapRef: comboBoxRef,
|
|
@@ -15843,7 +15852,7 @@
|
|
|
15843
15852
|
onClick: handleDeselect,
|
|
15844
15853
|
variant: "text gray",
|
|
15845
15854
|
size: "small"
|
|
15846
|
-
}, /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCloseSmallIcon, null)) : null, /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCollapseExpandSingleIcon, {
|
|
15855
|
+
}, /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCloseSmallIcon, null)) : null, showMenu && /*#__PURE__*/React__default["default"].createElement(StyledComboBoxCollapseExpandSingleIcon, {
|
|
15847
15856
|
$open: open
|
|
15848
15857
|
})) : null
|
|
15849
15858
|
}), !disabled ? /*#__PURE__*/React__default["default"].createElement(ConditionalWrapper, {
|
|
@@ -15865,7 +15874,8 @@
|
|
|
15865
15874
|
noIsolation: true,
|
|
15866
15875
|
allowPinchZoom: true
|
|
15867
15876
|
}, /*#__PURE__*/React__default["default"].createElement(StyledComboBoxList, {
|
|
15868
|
-
$width: (_comboBoxRef$current3 = comboBoxRef.current) === null || _comboBoxRef$current3 === void 0 ? void 0 : _comboBoxRef$current3.clientWidth
|
|
15877
|
+
$width: (_comboBoxRef$current3 = comboBoxRef.current) === null || _comboBoxRef$current3 === void 0 ? void 0 : _comboBoxRef$current3.clientWidth,
|
|
15878
|
+
$hide: !showMenu
|
|
15869
15879
|
}, /*#__PURE__*/React__default["default"].createElement(Autocomplete, _extends({}, prop, {
|
|
15870
15880
|
inputEl: childNode,
|
|
15871
15881
|
selected: selected,
|
|
@@ -15873,7 +15883,8 @@
|
|
|
15873
15883
|
renderOption: handleRenderOption,
|
|
15874
15884
|
options: options,
|
|
15875
15885
|
type: type,
|
|
15876
|
-
handleEmptyAction: emptyAction
|
|
15886
|
+
handleEmptyAction: emptyAction,
|
|
15887
|
+
defaultValue: defaultValue
|
|
15877
15888
|
})))))) : null);
|
|
15878
15889
|
};
|
|
15879
15890
|
ComboBox.displayName = "ComboBox";
|