@activecollab/components 1.0.227 → 1.0.228
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/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/cjs/components/CounterButton/CounterButton.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/EntityCard/EntityCard.js.map +1 -1
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/Nav/Nav.js.map +1 -1
- package/dist/cjs/components/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/cjs/components/Sheet/Sheet.js.map +1 -1
- package/dist/cjs/components/Signifier/Signifier.js.map +1 -1
- package/dist/cjs/components/ValueButton/ValueButton.js.map +1 -1
- package/dist/esm/components/Chip/Chip.js.map +1 -1
- package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
- package/dist/esm/components/CounterButton/CounterButton.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/EntityCard/EntityCard.js.map +1 -1
- package/dist/esm/components/Header/Header.js.map +1 -1
- package/dist/esm/components/Nav/Nav.js.map +1 -1
- package/dist/esm/components/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/esm/components/Sheet/Sheet.js.map +1 -1
- package/dist/esm/components/Signifier/Signifier.js.map +1 -1
- package/dist/esm/components/ValueButton/ValueButton.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValueButton.js","names":["ValueButton","forwardRef","ref","active","alwaysShowIcon","icon","label","value","args","React","cloneElement","style","display","displayName"],"sources":["../../../../src/components/ValueButton/ValueButton.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement } from \"react\";\nimport {\n StyledValueButton,\n StyledValueButtonLabel,\n StyledValueButtonValue,\n} from \"./Styles\";\n\ninterface IValueButtonProps {\n /** Set active state */\n active?: boolean;\n /** Label for value */\n label?: string;\n /** Value */\n value: string;\n /** Icon */\n icon?: ReactElement;\n /** Always show icon */\n alwaysShowIcon?: boolean;\n}\n\nexport const ValueButton = forwardRef<HTMLButtonElement, IValueButtonProps>(\n (\n { active = false, alwaysShowIcon = false, icon, label, value, ...args },\n ref\n ) => {\n return (\n <StyledValueButton\n className
|
|
1
|
+
{"version":3,"file":"ValueButton.js","names":["ValueButton","forwardRef","ref","active","alwaysShowIcon","icon","label","value","args","React","cloneElement","style","display","displayName"],"sources":["../../../../src/components/ValueButton/ValueButton.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement } from \"react\";\nimport {\n StyledValueButton,\n StyledValueButtonLabel,\n StyledValueButtonValue,\n} from \"./Styles\";\n\ninterface IValueButtonProps {\n /** Set active state */\n active?: boolean;\n /** Label for value */\n label?: string;\n /** Value */\n value: string;\n /** Icon */\n icon?: ReactElement;\n /** Always show icon */\n alwaysShowIcon?: boolean;\n}\n\nexport const ValueButton = forwardRef<HTMLButtonElement, IValueButtonProps>(\n (\n { active = false, alwaysShowIcon = false, icon, label, value, ...args },\n ref\n ) => {\n return (\n <StyledValueButton\n className=\"c-value-button\"\n {...args}\n ref={ref}\n variant=\"text gray\"\n $active={active}\n >\n {icon && alwaysShowIcon\n ? React.cloneElement(icon, {\n style: { display: \"inline-block\" },\n })\n : null}\n {label ? (\n <StyledValueButtonLabel\n color=\"secondary\"\n weight=\"medium\"\n className=\"c-value-button__label\"\n >\n {label}:\n </StyledValueButtonLabel>\n ) : null}\n <StyledValueButtonValue\n color=\"secondary\"\n weight=\"medium\"\n className=\"c-value-button__value\"\n >\n {value}\n </StyledValueButtonValue>\n </StyledValueButton>\n );\n }\n);\n\nValueButton.displayName = \"ValueButton\";\n"],"mappings":";;;;;;;AAAA;AACA;AAIkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAeX,IAAMA,WAAW,gBAAG,IAAAC,iBAAU,EACnC,gBAEEC,GAAG,EACA;EAAA,uBAFDC,MAAM;IAANA,MAAM,4BAAG,KAAK;IAAA,2BAAEC,cAAc;IAAdA,cAAc,oCAAG,KAAK;IAAEC,IAAI,QAAJA,IAAI;IAAEC,KAAK,QAALA,KAAK;IAAEC,KAAK,QAALA,KAAK;IAAKC,IAAI;EAGrE,oBACE,6BAAC,yBAAiB;IAChB,SAAS,EAAC;EAAgB,GACtBA,IAAI;IACR,GAAG,EAAEN,GAAI;IACT,OAAO,EAAC,WAAW;IACnB,OAAO,EAAEC;EAAO,IAEfE,IAAI,IAAID,cAAc,gBACnBK,cAAK,CAACC,YAAY,CAACL,IAAI,EAAE;IACvBM,KAAK,EAAE;MAAEC,OAAO,EAAE;IAAe;EACnC,CAAC,CAAC,GACF,IAAI,EACPN,KAAK,gBACJ,6BAAC,8BAAsB;IACrB,KAAK,EAAC,WAAW;IACjB,MAAM,EAAC,QAAQ;IACf,SAAS,EAAC;EAAuB,GAEhCA,KAAK,MACiB,GACvB,IAAI,eACR,6BAAC,8BAAsB;IACrB,KAAK,EAAC,WAAW;IACjB,MAAM,EAAC,QAAQ;IACf,SAAS,EAAC;EAAuB,GAEhCC,KAAK,CACiB,CACP;AAExB,CAAC,CACF;AAAC;AAEFP,WAAW,CAACa,WAAW,GAAG,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.js","names":["React","useMemo","ChipCloseIcon","ChipContainer","ChipTrigger","Typography","Chip","forwardRef","ref","leftAdornment","label","onClose","size","color","backgroundColor","closeClassName","variant","typographyProps","rest","showClose","_variant","displayName"],"sources":["../../../../src/components/Chip/Chip.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from \"react\";\nimport { ChipCloseIcon, ChipContainer, ChipTrigger } from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport {\n Typography,\n Variant,\n ITypographyProps,\n} from \"../Typography/Typography\";\n\nexport interface ChipProps {\n label: string;\n onClose?: React.MouseEventHandler<HTMLButtonElement>;\n leftAdornment?: ReactNode;\n size?: InputSize;\n color?: string;\n backgroundColor?: string;\n closeClassName?: string;\n variant?: Variant;\n typographyProps?: ITypographyProps;\n}\n\nexport const Chip = React.forwardRef<\n HTMLDivElement,\n ChipProps & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof ChipProps>\n>(\n (\n {\n leftAdornment,\n label,\n onClose,\n size = \"regular\",\n color,\n backgroundColor,\n closeClassName,\n variant,\n typographyProps,\n ...rest\n },\n ref\n ) => {\n const showClose = typeof onClose === \"function\";\n const _variant = useMemo(() => {\n if (typeof variant !== \"undefined\") {\n return variant;\n }\n switch (size) {\n case \"regular\":\n return \"Body 2\";\n case \"big\":\n return \"Body 1\";\n default:\n return \"Caption 1\";\n }\n }, [variant, size]);\n return (\n <ChipContainer\n {...rest}\n ref={ref}\n $size={size}\n $showClose={showClose}\n $color={color}\n $backgroundColor={backgroundColor}\n data-testid
|
|
1
|
+
{"version":3,"file":"Chip.js","names":["React","useMemo","ChipCloseIcon","ChipContainer","ChipTrigger","Typography","Chip","forwardRef","ref","leftAdornment","label","onClose","size","color","backgroundColor","closeClassName","variant","typographyProps","rest","showClose","_variant","displayName"],"sources":["../../../../src/components/Chip/Chip.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from \"react\";\nimport { ChipCloseIcon, ChipContainer, ChipTrigger } from \"./Styles\";\nimport { InputSize } from \"../Input/types\";\nimport {\n Typography,\n Variant,\n ITypographyProps,\n} from \"../Typography/Typography\";\n\nexport interface ChipProps {\n label: string;\n onClose?: React.MouseEventHandler<HTMLButtonElement>;\n leftAdornment?: ReactNode;\n size?: InputSize;\n color?: string;\n backgroundColor?: string;\n closeClassName?: string;\n variant?: Variant;\n typographyProps?: ITypographyProps;\n}\n\nexport const Chip = React.forwardRef<\n HTMLDivElement,\n ChipProps & Omit<React.ComponentPropsWithoutRef<\"div\">, keyof ChipProps>\n>(\n (\n {\n leftAdornment,\n label,\n onClose,\n size = \"regular\",\n color,\n backgroundColor,\n closeClassName,\n variant,\n typographyProps,\n ...rest\n },\n ref\n ) => {\n const showClose = typeof onClose === \"function\";\n const _variant = useMemo(() => {\n if (typeof variant !== \"undefined\") {\n return variant;\n }\n switch (size) {\n case \"regular\":\n return \"Body 2\";\n case \"big\":\n return \"Body 1\";\n default:\n return \"Caption 1\";\n }\n }, [variant, size]);\n return (\n <ChipContainer\n {...rest}\n ref={ref}\n $size={size}\n $showClose={showClose}\n $color={color}\n $backgroundColor={backgroundColor}\n data-testid=\"chip-container\"\n >\n {leftAdornment}\n <Typography\n variant={_variant}\n data-testid=\"chip-typography\"\n {...typographyProps}\n >\n {label}\n </Typography>\n {showClose ? (\n <ChipTrigger\n $size={size}\n onClick={onClose}\n className={closeClassName}\n >\n <ChipCloseIcon fill={color ? color : \"currentColor\"} />\n </ChipTrigger>\n ) : null}\n </ChipContainer>\n );\n }\n);\n\nChip.displayName = \"Chip\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAeC,OAAO,QAAQ,OAAO;AACjD,SAASC,aAAa,EAAEC,aAAa,EAAEC,WAAW,QAAQ,UAAU;AAEpE,SACEC,UAAU,QAGL,0BAA0B;AAcjC,OAAO,IAAMC,IAAI,gBAAGN,KAAK,CAACO,UAAU,CAIlC,gBAaEC,GAAG,EACA;EAAA,IAZDC,aAAa,QAAbA,aAAa;IACbC,KAAK,QAALA,KAAK;IACLC,OAAO,QAAPA,OAAO;IAAA,iBACPC,IAAI;IAAJA,IAAI,0BAAG,SAAS;IAChBC,KAAK,QAALA,KAAK;IACLC,eAAe,QAAfA,eAAe;IACfC,cAAc,QAAdA,cAAc;IACdC,OAAO,QAAPA,OAAO;IACPC,eAAe,QAAfA,eAAe;IACZC,IAAI;EAIT,IAAMC,SAAS,GAAG,OAAOR,OAAO,KAAK,UAAU;EAC/C,IAAMS,QAAQ,GAAGnB,OAAO,CAAC,YAAM;IAC7B,IAAI,OAAOe,OAAO,KAAK,WAAW,EAAE;MAClC,OAAOA,OAAO;IAChB;IACA,QAAQJ,IAAI;MACV,KAAK,SAAS;QACZ,OAAO,QAAQ;MACjB,KAAK,KAAK;QACR,OAAO,QAAQ;MACjB;QACE,OAAO,WAAW;IAAC;EAEzB,CAAC,EAAE,CAACI,OAAO,EAAEJ,IAAI,CAAC,CAAC;EACnB,oBACE,oBAAC,aAAa,eACRM,IAAI;IACR,GAAG,EAAEV,GAAI;IACT,KAAK,EAAEI,IAAK;IACZ,UAAU,EAAEO,SAAU;IACtB,MAAM,EAAEN,KAAM;IACd,gBAAgB,EAAEC,eAAgB;IAClC,eAAY;EAAgB,IAE3BL,aAAa,eACd,oBAAC,UAAU;IACT,OAAO,EAAEW,QAAS;IAClB,eAAY;EAAiB,GACzBH,eAAe,GAElBP,KAAK,CACK,EACZS,SAAS,gBACR,oBAAC,WAAW;IACV,KAAK,EAAEP,IAAK;IACZ,OAAO,EAAED,OAAQ;IACjB,SAAS,EAAEI;EAAe,gBAE1B,oBAAC,aAAa;IAAC,IAAI,EAAEF,KAAK,GAAGA,KAAK,GAAG;EAAe,EAAG,CAC3C,GACZ,IAAI,CACM;AAEpB,CAAC,CACF;AAEDP,IAAI,CAACe,WAAW,GAAG,MAAM"}
|
|
@@ -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","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","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","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","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, IAvatar } 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\";\n\nexport interface IComboBoxProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\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 ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\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 if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n onChange?.(selectedValue);\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<IAvatar> = {\n 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={\"#303037\"}\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant={\"Caption 2\"}\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 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 $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?.focus();\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={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 onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy={\"fixed\"}\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["React","useCallback","useState","useEffect","useRef","useMemo","Fragment","RadioButton","Autocomplete","IconButton","isOptionGroup","useForkRef","Popper","RemoveScroll","SpinnerLoader","OptionContent","StyledComboBoxCloseSmallIcon","StyledComboBoxCollapseExpandSingleIcon","StyledComboBoxInput","StyledComboBoxList","StyledChipWrapper","InputAdornment","Checkbox","Chip","StyledInput","StyledInputWrapper","useOnClickOutside","Avatar","Trigger","Typography","Portal","ConditionalWrapper","classNames","ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","value","map","v","find","q","id","name","setValue","handleOnChange","e","target","childNode","setChildNode","elementRef","handleRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","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","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","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, IAvatar } 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\";\n\nexport interface IComboBoxProps\n extends Omit<IAutocompleteProps, \"handleChange\" | \"inputEl\"> {\n /** Set combobox in to loading state */\n loading?: boolean;\n /** Text to display while in loading state */\n loadingText?: string;\n /** onChange callback */\n onChange?: (\n e: (string | number)[] | string | number | null | undefined\n ) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** disable Input element */\n disabled?: boolean;\n /** Combobox size */\n size?: InputSize;\n /** Invalid state */\n invalid?: boolean;\n /** Render Chip */\n renderChip?: <T extends IOptionItemProps>(\n item: T,\n key?: string | number\n ) => JSX.Element;\n /** Close menu on change */\n forceCloseMenu?: boolean;\n /** Limit chips */\n limitChips?: number;\n /** Hidden number text */\n hiddenNumberText?: (hidden: number) => string;\n /** Render Autocomplete in <Portal> */\n inPortal?: boolean;\n /** inputWrapperClassName */\n inputWrapperClassName?: string;\n /** scrollWrapper */\n scrollWrapper?: boolean;\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 ...prop\n}) => {\n const selectedName = useMemo(() => {\n let value = \"\";\n if (!selected) {\n return value;\n }\n options.map((v) => {\n if ((v as IOptionGroupProps)?.options) {\n return (v as IOptionGroupProps).options.find((q) => {\n if (q.id === selected) {\n value = q.name;\n return;\n }\n });\n } else {\n if (v.id === selected) {\n value = v.name;\n return;\n }\n }\n });\n return value;\n }, [options, selected]);\n const [value, setValue] = useState(selectedName);\n const handleOnChange = useCallback((e) => setValue(e.target.value), []);\n const [childNode, setChildNode] = useState<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(setChildNode, elementRef);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const chipWrapper = useRef<HTMLDivElement>(null);\n const comboBoxRef = useRef<HTMLDivElement | null>(null);\n\n const [open, setOpen] = useState(false);\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 if (e.key === \"Enter\" && type === \"multiple\") {\n setValue(\"\");\n }\n },\n [open, selectedName, type]\n );\n\n useEffect(() => {\n open && childNode?.focus();\n !open && childNode?.blur();\n }, [childNode, open]);\n\n useEffect(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const emptyAction = useCallback(\n (v) => {\n handleEmptyAction?.(v);\n setOpen(false);\n },\n [handleEmptyAction]\n );\n\n const handleChange = useCallback(\n (selectedValue) => {\n onChange?.(selectedValue);\n if (forceCloseMenu) {\n setOpen(false);\n }\n },\n [forceCloseMenu, onChange]\n );\n\n const onOpen = useCallback(() => {\n if (!disabled) {\n setOpen(true);\n }\n }, [disabled]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n if (type === \"multiple\") {\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <Checkbox {...props} />\n </>\n );\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n />\n <RadioButton {...props} />\n </>\n );\n },\n [type, renderOption]\n );\n\n const handleDeselect = useCallback(\n (e) => {\n e.stopPropagation();\n if (type === \"multiple\") {\n onChange?.([]);\n } else {\n onChange?.(\"\");\n }\n\n setOpen(false);\n },\n [type, onChange]\n );\n\n const handleMouseDown = useCallback((e) => {\n e.preventDefault();\n }, []);\n\n const handleBlur = useCallback(() => {\n setValue(selectedName);\n }, [selectedName]);\n\n const renderChipAdornment = useCallback(\n (option, index) => {\n if (typeof renderChip === \"function\") {\n return renderChip(option, index);\n }\n const avatarProps: Partial<IAvatar> = {\n 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=\"#303037\"\n onClose={showOnClose ? onClose : undefined}\n size={size}\n variant=\"Caption 2\"\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 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 $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?.focus();\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={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 onFocus={onOpen}\n wrapRef={comboBoxRef}\n ref={handleRef}\n value={loading && loadingText ? loadingText : value}\n onKeyDown={handleOnKeyDown}\n onChange={handleOnChange}\n placeholder={placeholder}\n disabled={disabled}\n size={size}\n invalid={invalid}\n $loading={loading}\n startAdornment={startAdornment}\n endAdornment={\n !disabled ? (\n <InputAdornment disablePointerEvents={disabled}>\n {loading ? (\n <SpinnerLoader />\n ) : selected ? (\n <IconButton\n onMouseDown={handleMouseDown}\n onClick={handleDeselect}\n variant=\"text gray\"\n size=\"small\"\n >\n <StyledComboBoxCloseSmallIcon />\n </IconButton>\n ) : null}\n <StyledComboBoxCollapseExpandSingleIcon $open={open} />\n </InputAdornment>\n ) : null\n }\n />\n )}\n\n {!disabled ? (\n <ConditionalWrapper\n condition={inPortal}\n wrap={(children) => <Portal>{children}</Portal>}\n >\n <Popper\n anchorEl={comboBoxRef.current}\n open={open}\n placement=\"bottom\"\n style={{\n zIndex: 10,\n width: comboBoxRef.current?.clientWidth,\n }}\n ref={wrapperRef}\n strategy=\"fixed\"\n >\n <RemoveScroll noIsolation allowPinchZoom>\n <StyledComboBoxList $width={comboBoxRef.current?.clientWidth}>\n <Autocomplete\n {...prop}\n inputEl={childNode}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n type={type}\n handleEmptyAction={emptyAction}\n />\n </StyledComboBoxList>\n </RemoveScroll>\n </Popper>\n </ConditionalWrapper>\n ) : null}\n </div>\n );\n};\n\nComboBox.displayName = \"ComboBox\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CounterButton.js","names":["React","forwardRef","classNames","Tooltip","CloseSmallIcon","StyledCounterButton","StyledCounterButtonCounter","StyledCounterButtonLabel","StyledCounterButtonReset","StyledCounterButtonWrapper","CounterButton","ref","label","icon","active","counter","tooltipText","onClearAll","className","args","cloneElement","displayName"],"sources":["../../../../src/components/CounterButton/CounterButton.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement } from \"react\";\nimport classNames from \"classnames\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\nimport CloseSmallIcon from \"../Icons/collection/CloseSmall\";\nimport {\n StyledCounterButton,\n StyledCounterButtonCounter,\n StyledCounterButtonLabel,\n StyledCounterButtonReset,\n StyledCounterButtonWrapper,\n} from \"./Styles\";\n\nexport interface ICounterButtonProps {\n /** Set active state */\n active?: boolean;\n /** Label for value */\n label?: string;\n /** Icon */\n icon?: ReactElement;\n /** Number of applied filters */\n counter?: number;\n /** OnClearAll callback */\n onClearAll: (event?) => void;\n /** Tooltip content */\n tooltipText?: string;\n /** Applies passed classes */\n className?: string;\n}\n\nexport const CounterButton = forwardRef<HTMLDivElement, ICounterButtonProps>(\n (\n {\n label,\n icon,\n active,\n counter = 0,\n tooltipText,\n onClearAll,\n className,\n ...args\n },\n ref\n ) => {\n return (\n <StyledCounterButtonWrapper ref={ref} className={className}>\n <StyledCounterButton\n className={classNames(\"c-counter-button\", {\n \"c-counter-button__selected\": counter,\n })}\n {...args}\n variant
|
|
1
|
+
{"version":3,"file":"CounterButton.js","names":["React","forwardRef","classNames","Tooltip","CloseSmallIcon","StyledCounterButton","StyledCounterButtonCounter","StyledCounterButtonLabel","StyledCounterButtonReset","StyledCounterButtonWrapper","CounterButton","ref","label","icon","active","counter","tooltipText","onClearAll","className","args","cloneElement","displayName"],"sources":["../../../../src/components/CounterButton/CounterButton.tsx"],"sourcesContent":["import React, { forwardRef, ReactElement } from \"react\";\nimport classNames from \"classnames\";\nimport { Tooltip } from \"../Tooltip/Tooltip\";\nimport CloseSmallIcon from \"../Icons/collection/CloseSmall\";\nimport {\n StyledCounterButton,\n StyledCounterButtonCounter,\n StyledCounterButtonLabel,\n StyledCounterButtonReset,\n StyledCounterButtonWrapper,\n} from \"./Styles\";\n\nexport interface ICounterButtonProps {\n /** Set active state */\n active?: boolean;\n /** Label for value */\n label?: string;\n /** Icon */\n icon?: ReactElement;\n /** Number of applied filters */\n counter?: number;\n /** OnClearAll callback */\n onClearAll: (event?) => void;\n /** Tooltip content */\n tooltipText?: string;\n /** Applies passed classes */\n className?: string;\n}\n\nexport const CounterButton = forwardRef<HTMLDivElement, ICounterButtonProps>(\n (\n {\n label,\n icon,\n active,\n counter = 0,\n tooltipText,\n onClearAll,\n className,\n ...args\n },\n ref\n ) => {\n return (\n <StyledCounterButtonWrapper ref={ref} className={className}>\n <StyledCounterButton\n className={classNames(\"c-counter-button\", {\n \"c-counter-button__selected\": counter,\n })}\n {...args}\n variant=\"text gray\"\n $active={counter > 0 || active}\n $selected={counter > 0}\n >\n {icon &&\n React.cloneElement(icon, {\n className: classNames(\"c-counter-button__icon\"),\n })}\n {label && (\n <StyledCounterButtonLabel\n color=\"secondary\"\n weight=\"medium\"\n className=\"c-counter-button__label\"\n $active={counter > 0 || active}\n >\n {label}\n </StyledCounterButtonLabel>\n )}\n {counter > 0 ? (\n <StyledCounterButtonCounter className=\"c-counter-button__counter\">\n {counter}\n </StyledCounterButtonCounter>\n ) : null}\n </StyledCounterButton>\n {counter > 0 ? (\n <Tooltip\n title={`${tooltipText}`}\n popperTooltipClassName=\"z-index-1300\"\n >\n <StyledCounterButtonReset\n variant=\"text colored\"\n className=\"c-counter-button__reset\"\n onClick={onClearAll}\n >\n <CloseSmallIcon />\n </StyledCounterButtonReset>\n </Tooltip>\n ) : null}\n </StyledCounterButtonWrapper>\n );\n }\n);\n\nCounterButton.displayName = \"CounterButton\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAsB,OAAO;AACvD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,OAAO,QAAQ,oBAAoB;AAC5C,OAAOC,cAAc,MAAM,gCAAgC;AAC3D,SACEC,mBAAmB,EACnBC,0BAA0B,EAC1BC,wBAAwB,EACxBC,wBAAwB,EACxBC,0BAA0B,QACrB,UAAU;AAmBjB,OAAO,IAAMC,aAAa,gBAAGT,UAAU,CACrC,gBAWEU,GAAG,EACA;EAAA,IAVDC,KAAK,QAALA,KAAK;IACLC,IAAI,QAAJA,IAAI;IACJC,MAAM,QAANA,MAAM;IAAA,oBACNC,OAAO;IAAPA,OAAO,6BAAG,CAAC;IACXC,WAAW,QAAXA,WAAW;IACXC,UAAU,QAAVA,UAAU;IACVC,SAAS,QAATA,SAAS;IACNC,IAAI;EAIT,oBACE,oBAAC,0BAA0B;IAAC,GAAG,EAAER,GAAI;IAAC,SAAS,EAAEO;EAAU,gBACzD,oBAAC,mBAAmB;IAClB,SAAS,EAAEhB,UAAU,CAAC,kBAAkB,EAAE;MACxC,4BAA4B,EAAEa;IAChC,CAAC;EAAE,GACCI,IAAI;IACR,OAAO,EAAC,WAAW;IACnB,OAAO,EAAEJ,OAAO,GAAG,CAAC,IAAID,MAAO;IAC/B,SAAS,EAAEC,OAAO,GAAG;EAAE,IAEtBF,IAAI,iBACHb,KAAK,CAACoB,YAAY,CAACP,IAAI,EAAE;IACvBK,SAAS,EAAEhB,UAAU,CAAC,wBAAwB;EAChD,CAAC,CAAC,EACHU,KAAK,iBACJ,oBAAC,wBAAwB;IACvB,KAAK,EAAC,WAAW;IACjB,MAAM,EAAC,QAAQ;IACf,SAAS,EAAC,yBAAyB;IACnC,OAAO,EAAEG,OAAO,GAAG,CAAC,IAAID;EAAO,GAE9BF,KAAK,CAET,EACAG,OAAO,GAAG,CAAC,gBACV,oBAAC,0BAA0B;IAAC,SAAS,EAAC;EAA2B,GAC9DA,OAAO,CACmB,GAC3B,IAAI,CACY,EACrBA,OAAO,GAAG,CAAC,gBACV,oBAAC,OAAO;IACN,KAAK,OAAKC,WAAc;IACxB,sBAAsB,EAAC;EAAc,gBAErC,oBAAC,wBAAwB;IACvB,OAAO,EAAC,cAAc;IACtB,SAAS,EAAC,yBAAyB;IACnC,OAAO,EAAEC;EAAW,gBAEpB,oBAAC,cAAc,OAAG,CACO,CACnB,GACR,IAAI,CACmB;AAEjC,CAAC,CACF;AAEDP,aAAa,CAACW,WAAW,GAAG,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","names":["React","useState","useCallback","useMemo","useEffect","DateUtils","customClassNames","SwitchTransition","moment","YearMonthPicker","CustomNavBarElement","StyledDatePicker","StyledDatePickerCSSTransition","StyledDayPicker","DatePicker","className","onChange","onDayClick","selectedDays","disabledDays","selectionMode","month","Date","onMonthChange","dateRequired","firstDayOfWeek","fixedWeeks","defaultModifiers","modifiers","rest","enteredTo","setEnteredTo","enteredFrom","setEnteredFrom","stopScroll","setStopScroll","direction","setDirection","from","to","isPreselected","setIsPreselected","showMonthPicker","setShowMonthPicker","setModifiers","week","prev","hovered","handleDayClick","day","getMonth","isSame","undefined","startOf","toDate","endOf","isBetween","isDayAfter","isSelectedFirstDay","handleDayMouseEnter","onDayMouseLeave","onWheel","e","getTime","nextMonth","addMonths","previousMonth","deltaY","togglePicker","customNavBarElement","props","handleYearMonthChange","m","text","getFullYear","format","handleYearMonthForm","onKeyDownCallback","key","document","addEventListener","removeEventListener","displayName"],"sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, { FC, useState, useCallback, useMemo, useEffect } from \"react\";\nimport {\n DayPickerProps,\n DateUtils,\n RangeModifier,\n Modifiers,\n DayModifiers,\n} from \"react-day-picker\";\nimport { customClassNames } from \"./ClassNames\";\nimport { SwitchTransition } from \"react-transition-group\";\nimport moment from \"moment\";\nimport { YearMonthPicker } from \"../Pickers/YearMonthPicker\";\nimport { CustomNavBarElement } from \"./CustomNavBarElement\";\nimport {\n StyledDatePicker,\n StyledDatePickerCSSTransition,\n StyledDayPicker,\n} from \"./Styles\";\n\nexport interface IDatePicker extends DayPickerProps {\n /** Calls when value is picked */\n onChange?: (dates?: { from: Date; to: Date }) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Date, modifiers: DayModifiers) => void;\n /** Set selected day or days */\n selectedDays?: RangeModifier;\n /** Set selection range */\n selectionMode?: string;\n /** Set is date required */\n dateRequired?: boolean;\n /** Set first day of week */\n firstDayOfWeek?: number;\n /** Set fixed number of weeks in month */\n fixedWeeks?: boolean;\n}\n\nexport const DatePicker: FC<IDatePicker> = ({\n className,\n onChange,\n onDayClick,\n selectedDays,\n disabledDays,\n selectionMode = \"daily\",\n month = new Date(),\n onMonthChange = (): null => null,\n dateRequired = false,\n firstDayOfWeek = 0,\n fixedWeeks = true,\n modifiers: defaultModifiers,\n ...rest\n}) => {\n const [enteredTo, setEnteredTo] = useState<Date>();\n const [enteredFrom, setEnteredFrom] = useState<Date>();\n const [stopScroll, setStopScroll] = useState<Date>();\n const [direction, setDirection] = useState(true);\n const [isPreselected, setIsPreselected] = useState(() => {\n return (\n selectedDays?.from instanceof Date && selectedDays?.to instanceof Date\n );\n });\n const [showMonthPicker, setShowMonthPicker] = useState(\n selectionMode === \"quarterly\" || selectionMode === \"monthly\"\n );\n const [modifiers, setModifiers] = useState<Partial<Modifiers> | undefined>(\n defaultModifiers\n );\n const week = firstDayOfWeek === 0 ? \"week\" : \"isoWeek\";\n\n useEffect(() => {\n if (enteredFrom instanceof Date && enteredTo instanceof Date) {\n setModifiers((prev) => {\n return { ...prev, hovered: { from: enteredFrom, to: enteredTo } };\n });\n } else {\n setModifiers(defaultModifiers);\n }\n }, [enteredTo, enteredFrom, defaultModifiers]);\n\n const handleDayClick = useCallback(\n (day: Date, modifiers: DayModifiers) => {\n if (onDayClick) {\n onDayClick(day, modifiers);\n }\n if (!onChange) {\n return;\n }\n if (month.getMonth() !== day.getMonth()) {\n onMonthChange(day);\n }\n if (modifiers[\"c-DayPicker-Day--disabled\"] || selectionMode === \"none\") {\n return;\n }\n // reset the selectedDays if the user clicks on the same day\n if (\n !dateRequired &&\n ((selectedDays?.from &&\n moment(day).isSame(moment(selectedDays.from), \"day\")) ||\n (selectedDays?.to &&\n moment(day).isSame(moment(selectedDays.to), \"day\")))\n ) {\n setEnteredTo(undefined);\n setEnteredFrom(undefined);\n\n return onChange(undefined);\n }\n\n if (selectionMode === \"daily\") {\n return onChange({ from: day, to: day });\n }\n\n if (selectionMode === \"weekly\") {\n if (\n !dateRequired &&\n selectedDays?.from &&\n moment(day).isSame(moment(selectedDays.from), week)\n ) {\n return onChange(undefined);\n }\n return onChange({\n from: moment(day).startOf(week).toDate(),\n to: moment(day).endOf(week).toDate(),\n });\n }\n\n if (selectionMode === \"custom\") {\n if (isPreselected) {\n setIsPreselected(false);\n return onChange({ from: day, to: day });\n }\n if (\n !selectedDays ||\n (selectedDays?.from &&\n selectedDays?.to &&\n !moment(selectedDays.from).isSame(moment(selectedDays.to)))\n ) {\n if (\n !dateRequired &&\n selectedDays?.from &&\n selectedDays?.to &&\n moment(day).isBetween(\n moment(selectedDays.from),\n moment(selectedDays.to)\n )\n ) {\n setEnteredTo(day);\n setEnteredFrom(day);\n return onChange(undefined);\n }\n setEnteredFrom(day);\n return onChange({ from: day, to: day });\n }\n if (\n selectedDays?.from &&\n DateUtils.isDayAfter(day, selectedDays.from)\n ) {\n setEnteredTo(undefined);\n setEnteredFrom(undefined);\n return onChange({ from: selectedDays.from, to: day });\n }\n if (selectedDays?.to) {\n setEnteredTo(undefined);\n setEnteredFrom(undefined);\n return onChange({ from: day, to: selectedDays.to });\n }\n }\n },\n [\n onDayClick,\n onChange,\n month,\n selectionMode,\n dateRequired,\n selectedDays,\n onMonthChange,\n week,\n isPreselected,\n ]\n );\n\n const isSelectedFirstDay = useCallback(() => {\n if (selectionMode !== \"custom\") {\n return false;\n }\n if (selectedDays?.from && selectedDays?.to) {\n return moment(selectedDays.from).isSame(selectedDays.to);\n }\n }, [selectionMode, selectedDays]);\n\n const handleDayMouseEnter = useCallback(\n (day: Date) => {\n if (isPreselected && selectionMode !== \"weekly\") {\n setEnteredTo(day);\n setEnteredFrom(day);\n return;\n }\n if (selectionMode === \"daily\") {\n setEnteredTo(day);\n setEnteredFrom(day);\n }\n if (selectionMode === \"weekly\") {\n setEnteredFrom(moment(day).startOf(week).toDate());\n setEnteredTo(moment(day).endOf(week).toDate());\n }\n\n if (\n selectionMode !== \"weekly\" &&\n (!selectedDays ||\n (selectedDays?.from &&\n selectedDays?.to &&\n !moment(selectedDays.from).isSame(moment(selectedDays.to))))\n ) {\n setEnteredTo(day);\n setEnteredFrom(day);\n }\n\n if (isSelectedFirstDay() && selectedDays?.from) {\n setEnteredFrom(selectedDays.from);\n setEnteredTo(day);\n }\n },\n [selectionMode, isSelectedFirstDay, selectedDays, week, isPreselected]\n );\n\n const onDayMouseLeave = useCallback(() => {\n if (\n selectionMode === \"weekly\" ||\n selectionMode === \"daily\" ||\n selectionMode === \"custom\"\n ) {\n setEnteredFrom(undefined);\n setEnteredTo(undefined);\n }\n }, [setEnteredFrom, setEnteredTo, selectionMode]);\n\n const onWheel = useCallback(\n (e: { deltaY: number }) => {\n if (\n stopScroll &&\n (new Date().getTime() - stopScroll.getTime()) / 1000 < 0.9\n ) {\n return;\n }\n const nextMonth = showMonthPicker\n ? DateUtils.addMonths(month, 12)\n : DateUtils.addMonths(month, 1);\n const previousMonth = showMonthPicker\n ? DateUtils.addMonths(month, -12)\n : DateUtils.addMonths(month, -1);\n if (e.deltaY > 0.9) {\n setDirection(true);\n onMonthChange(nextMonth);\n setStopScroll(new Date());\n }\n if (e.deltaY < -0.9) {\n setDirection(false);\n onMonthChange(previousMonth);\n setStopScroll(new Date());\n }\n },\n [stopScroll, showMonthPicker, month, onMonthChange]\n );\n\n const togglePicker = useCallback(() => {\n if (selectionMode !== \"monthly\" && selectionMode !== \"quarterly\") {\n return setShowMonthPicker(!showMonthPicker);\n }\n setShowMonthPicker(true);\n }, [showMonthPicker, selectionMode]);\n\n const customNavBarElement = useCallback(\n (props) => {\n return (\n <CustomNavBarElement\n {...props}\n showMonthPicker={showMonthPicker}\n month={month}\n onChangeDirection={setDirection}\n onMonthChange={onMonthChange}\n onClick={togglePicker}\n />\n );\n },\n [showMonthPicker, month, onMonthChange, togglePicker]\n );\n\n const handleYearMonthChange = useCallback(\n (m: Date) => {\n if (onChange) {\n if (selectionMode === \"monthly\") {\n if (\n !dateRequired &&\n selectedDays?.from &&\n moment(m).isSame(moment(selectedDays.from), \"month\")\n ) {\n return onChange(undefined);\n }\n onChange({\n from: moment(m).startOf(\"month\").toDate(),\n to: moment(m).endOf(\"month\").toDate(),\n });\n }\n if (selectionMode === \"quarterly\") {\n if (\n !dateRequired &&\n selectedDays?.from &&\n moment(m).isSame(\n moment(selectedDays.from).startOf(\"quarter\"),\n \"quarter\"\n )\n ) {\n return onChange(undefined);\n }\n onChange({\n from: moment(m).startOf(\"quarter\").toDate(),\n to: moment(m).endOf(\"quarter\").toDate(),\n });\n }\n }\n onMonthChange(m);\n },\n [onMonthChange, onChange, selectedDays, selectionMode, dateRequired]\n );\n\n const text = useMemo(() => {\n if (showMonthPicker) {\n return `${month.getFullYear()}`;\n }\n return `${moment(month).format(\"MMMM\")} ${\n moment(month).isSame(moment(), \"year\") ? \"\" : month.getFullYear()\n }`;\n }, [showMonthPicker, month]);\n\n const handleYearMonthForm = useCallback(\n (props) => {\n return (\n <YearMonthPicker\n {...props}\n text={text}\n selectedDays={selectedDays}\n onChange={handleYearMonthChange}\n isShown={showMonthPicker}\n selectionMode={selectionMode}\n />\n );\n },\n [text, selectedDays, handleYearMonthChange, showMonthPicker, selectionMode]\n );\n\n const onKeyDownCallback = useCallback(\n (e: KeyboardEvent) => {\n // Right Arrow\n if (e.key === \"ArrowRight\") {\n setDirection(true);\n if (showMonthPicker) {\n onMonthChange(new Date(month.getFullYear() + 1, month.getMonth()));\n } else {\n onMonthChange(new Date(month.getFullYear(), month.getMonth() + 1));\n }\n }\n // Left Arrow\n if (e.key === \"ArrowLeft\") {\n setDirection(false);\n if (showMonthPicker) {\n onMonthChange(new Date(month.getFullYear() - 1, month.getMonth()));\n } else {\n onMonthChange(new Date(month.getFullYear(), month.getMonth() - 1));\n }\n }\n // Up Arrow\n if (e.key === \"ArrowUp\") {\n setDirection(true);\n onMonthChange(new Date(month.getFullYear() + 1, month.getMonth()));\n }\n // Down Arrow\n if (e.key === \"ArrowDown\") {\n setDirection(false);\n onMonthChange(new Date(month.getFullYear() - 1, month.getMonth()));\n }\n },\n [showMonthPicker, onMonthChange, month]\n );\n\n useEffect(() => {\n document.addEventListener(\"keydown\", onKeyDownCallback);\n return (): void => {\n document.removeEventListener(\"keydown\", onKeyDownCallback);\n };\n }, [month, onMonthChange, showMonthPicker, onKeyDownCallback]);\n\n return (\n <StyledDatePicker className=\"c-date-picker-wrapper\" onWheel={onWheel}>\n <SwitchTransition mode=\"out-in\">\n <StyledDatePickerCSSTransition\n key={showMonthPicker ? month.getFullYear() : month.getMonth()}\n timeout={300}\n classNames={\"c-date-picker__animation\"}\n $direction={direction}\n >\n <StyledDayPicker\n {...rest}\n disabledDays={disabledDays}\n selectedDays={selectedDays}\n onDayClick={handleDayClick}\n modifiers={modifiers}\n onDayMouseEnter={handleDayMouseEnter}\n onDayMouseLeave={onDayMouseLeave}\n className={className}\n $isYearlyView={showMonthPicker}\n month={month}\n navbarElement={customNavBarElement}\n onCaptionClick={togglePicker}\n captionElement={handleYearMonthForm}\n classNames={customClassNames}\n fixedWeeks={fixedWeeks}\n firstDayOfWeek={firstDayOfWeek}\n />\n </StyledDatePickerCSSTransition>\n </SwitchTransition>\n </StyledDatePicker>\n );\n};\n\nDatePicker.displayName = \"DatePicker\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","names":["React","useState","useCallback","useMemo","useEffect","DateUtils","customClassNames","SwitchTransition","moment","YearMonthPicker","CustomNavBarElement","StyledDatePicker","StyledDatePickerCSSTransition","StyledDayPicker","DatePicker","className","onChange","onDayClick","selectedDays","disabledDays","selectionMode","month","Date","onMonthChange","dateRequired","firstDayOfWeek","fixedWeeks","defaultModifiers","modifiers","rest","enteredTo","setEnteredTo","enteredFrom","setEnteredFrom","stopScroll","setStopScroll","direction","setDirection","from","to","isPreselected","setIsPreselected","showMonthPicker","setShowMonthPicker","setModifiers","week","prev","hovered","handleDayClick","day","getMonth","isSame","undefined","startOf","toDate","endOf","isBetween","isDayAfter","isSelectedFirstDay","handleDayMouseEnter","onDayMouseLeave","onWheel","e","getTime","nextMonth","addMonths","previousMonth","deltaY","togglePicker","customNavBarElement","props","handleYearMonthChange","m","text","getFullYear","format","handleYearMonthForm","onKeyDownCallback","key","document","addEventListener","removeEventListener","displayName"],"sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import React, { FC, useState, useCallback, useMemo, useEffect } from \"react\";\nimport {\n DayPickerProps,\n DateUtils,\n RangeModifier,\n Modifiers,\n DayModifiers,\n} from \"react-day-picker\";\nimport { customClassNames } from \"./ClassNames\";\nimport { SwitchTransition } from \"react-transition-group\";\nimport moment from \"moment\";\nimport { YearMonthPicker } from \"../Pickers/YearMonthPicker\";\nimport { CustomNavBarElement } from \"./CustomNavBarElement\";\nimport {\n StyledDatePicker,\n StyledDatePickerCSSTransition,\n StyledDayPicker,\n} from \"./Styles\";\n\nexport interface IDatePicker extends DayPickerProps {\n /** Calls when value is picked */\n onChange?: (dates?: { from: Date; to: Date }) => void;\n /** Called when day is clicked */\n onDayClick?: (day: Date, modifiers: DayModifiers) => void;\n /** Set selected day or days */\n selectedDays?: RangeModifier;\n /** Set selection range */\n selectionMode?: string;\n /** Set is date required */\n dateRequired?: boolean;\n /** Set first day of week */\n firstDayOfWeek?: number;\n /** Set fixed number of weeks in month */\n fixedWeeks?: boolean;\n}\n\nexport const DatePicker: FC<IDatePicker> = ({\n className,\n onChange,\n onDayClick,\n selectedDays,\n disabledDays,\n selectionMode = \"daily\",\n month = new Date(),\n onMonthChange = (): null => null,\n dateRequired = false,\n firstDayOfWeek = 0,\n fixedWeeks = true,\n modifiers: defaultModifiers,\n ...rest\n}) => {\n const [enteredTo, setEnteredTo] = useState<Date>();\n const [enteredFrom, setEnteredFrom] = useState<Date>();\n const [stopScroll, setStopScroll] = useState<Date>();\n const [direction, setDirection] = useState(true);\n const [isPreselected, setIsPreselected] = useState(() => {\n return (\n selectedDays?.from instanceof Date && selectedDays?.to instanceof Date\n );\n });\n const [showMonthPicker, setShowMonthPicker] = useState(\n selectionMode === \"quarterly\" || selectionMode === \"monthly\"\n );\n const [modifiers, setModifiers] = useState<Partial<Modifiers> | undefined>(\n defaultModifiers\n );\n const week = firstDayOfWeek === 0 ? \"week\" : \"isoWeek\";\n\n useEffect(() => {\n if (enteredFrom instanceof Date && enteredTo instanceof Date) {\n setModifiers((prev) => {\n return { ...prev, hovered: { from: enteredFrom, to: enteredTo } };\n });\n } else {\n setModifiers(defaultModifiers);\n }\n }, [enteredTo, enteredFrom, defaultModifiers]);\n\n const handleDayClick = useCallback(\n (day: Date, modifiers: DayModifiers) => {\n if (onDayClick) {\n onDayClick(day, modifiers);\n }\n if (!onChange) {\n return;\n }\n if (month.getMonth() !== day.getMonth()) {\n onMonthChange(day);\n }\n if (modifiers[\"c-DayPicker-Day--disabled\"] || selectionMode === \"none\") {\n return;\n }\n // reset the selectedDays if the user clicks on the same day\n if (\n !dateRequired &&\n ((selectedDays?.from &&\n moment(day).isSame(moment(selectedDays.from), \"day\")) ||\n (selectedDays?.to &&\n moment(day).isSame(moment(selectedDays.to), \"day\")))\n ) {\n setEnteredTo(undefined);\n setEnteredFrom(undefined);\n\n return onChange(undefined);\n }\n\n if (selectionMode === \"daily\") {\n return onChange({ from: day, to: day });\n }\n\n if (selectionMode === \"weekly\") {\n if (\n !dateRequired &&\n selectedDays?.from &&\n moment(day).isSame(moment(selectedDays.from), week)\n ) {\n return onChange(undefined);\n }\n return onChange({\n from: moment(day).startOf(week).toDate(),\n to: moment(day).endOf(week).toDate(),\n });\n }\n\n if (selectionMode === \"custom\") {\n if (isPreselected) {\n setIsPreselected(false);\n return onChange({ from: day, to: day });\n }\n if (\n !selectedDays ||\n (selectedDays?.from &&\n selectedDays?.to &&\n !moment(selectedDays.from).isSame(moment(selectedDays.to)))\n ) {\n if (\n !dateRequired &&\n selectedDays?.from &&\n selectedDays?.to &&\n moment(day).isBetween(\n moment(selectedDays.from),\n moment(selectedDays.to)\n )\n ) {\n setEnteredTo(day);\n setEnteredFrom(day);\n return onChange(undefined);\n }\n setEnteredFrom(day);\n return onChange({ from: day, to: day });\n }\n if (\n selectedDays?.from &&\n DateUtils.isDayAfter(day, selectedDays.from)\n ) {\n setEnteredTo(undefined);\n setEnteredFrom(undefined);\n return onChange({ from: selectedDays.from, to: day });\n }\n if (selectedDays?.to) {\n setEnteredTo(undefined);\n setEnteredFrom(undefined);\n return onChange({ from: day, to: selectedDays.to });\n }\n }\n },\n [\n onDayClick,\n onChange,\n month,\n selectionMode,\n dateRequired,\n selectedDays,\n onMonthChange,\n week,\n isPreselected,\n ]\n );\n\n const isSelectedFirstDay = useCallback(() => {\n if (selectionMode !== \"custom\") {\n return false;\n }\n if (selectedDays?.from && selectedDays?.to) {\n return moment(selectedDays.from).isSame(selectedDays.to);\n }\n }, [selectionMode, selectedDays]);\n\n const handleDayMouseEnter = useCallback(\n (day: Date) => {\n if (isPreselected && selectionMode !== \"weekly\") {\n setEnteredTo(day);\n setEnteredFrom(day);\n return;\n }\n if (selectionMode === \"daily\") {\n setEnteredTo(day);\n setEnteredFrom(day);\n }\n if (selectionMode === \"weekly\") {\n setEnteredFrom(moment(day).startOf(week).toDate());\n setEnteredTo(moment(day).endOf(week).toDate());\n }\n\n if (\n selectionMode !== \"weekly\" &&\n (!selectedDays ||\n (selectedDays?.from &&\n selectedDays?.to &&\n !moment(selectedDays.from).isSame(moment(selectedDays.to))))\n ) {\n setEnteredTo(day);\n setEnteredFrom(day);\n }\n\n if (isSelectedFirstDay() && selectedDays?.from) {\n setEnteredFrom(selectedDays.from);\n setEnteredTo(day);\n }\n },\n [selectionMode, isSelectedFirstDay, selectedDays, week, isPreselected]\n );\n\n const onDayMouseLeave = useCallback(() => {\n if (\n selectionMode === \"weekly\" ||\n selectionMode === \"daily\" ||\n selectionMode === \"custom\"\n ) {\n setEnteredFrom(undefined);\n setEnteredTo(undefined);\n }\n }, [setEnteredFrom, setEnteredTo, selectionMode]);\n\n const onWheel = useCallback(\n (e: { deltaY: number }) => {\n if (\n stopScroll &&\n (new Date().getTime() - stopScroll.getTime()) / 1000 < 0.9\n ) {\n return;\n }\n const nextMonth = showMonthPicker\n ? DateUtils.addMonths(month, 12)\n : DateUtils.addMonths(month, 1);\n const previousMonth = showMonthPicker\n ? DateUtils.addMonths(month, -12)\n : DateUtils.addMonths(month, -1);\n if (e.deltaY > 0.9) {\n setDirection(true);\n onMonthChange(nextMonth);\n setStopScroll(new Date());\n }\n if (e.deltaY < -0.9) {\n setDirection(false);\n onMonthChange(previousMonth);\n setStopScroll(new Date());\n }\n },\n [stopScroll, showMonthPicker, month, onMonthChange]\n );\n\n const togglePicker = useCallback(() => {\n if (selectionMode !== \"monthly\" && selectionMode !== \"quarterly\") {\n return setShowMonthPicker(!showMonthPicker);\n }\n setShowMonthPicker(true);\n }, [showMonthPicker, selectionMode]);\n\n const customNavBarElement = useCallback(\n (props) => {\n return (\n <CustomNavBarElement\n {...props}\n showMonthPicker={showMonthPicker}\n month={month}\n onChangeDirection={setDirection}\n onMonthChange={onMonthChange}\n onClick={togglePicker}\n />\n );\n },\n [showMonthPicker, month, onMonthChange, togglePicker]\n );\n\n const handleYearMonthChange = useCallback(\n (m: Date) => {\n if (onChange) {\n if (selectionMode === \"monthly\") {\n if (\n !dateRequired &&\n selectedDays?.from &&\n moment(m).isSame(moment(selectedDays.from), \"month\")\n ) {\n return onChange(undefined);\n }\n onChange({\n from: moment(m).startOf(\"month\").toDate(),\n to: moment(m).endOf(\"month\").toDate(),\n });\n }\n if (selectionMode === \"quarterly\") {\n if (\n !dateRequired &&\n selectedDays?.from &&\n moment(m).isSame(\n moment(selectedDays.from).startOf(\"quarter\"),\n \"quarter\"\n )\n ) {\n return onChange(undefined);\n }\n onChange({\n from: moment(m).startOf(\"quarter\").toDate(),\n to: moment(m).endOf(\"quarter\").toDate(),\n });\n }\n }\n onMonthChange(m);\n },\n [onMonthChange, onChange, selectedDays, selectionMode, dateRequired]\n );\n\n const text = useMemo(() => {\n if (showMonthPicker) {\n return `${month.getFullYear()}`;\n }\n return `${moment(month).format(\"MMMM\")} ${\n moment(month).isSame(moment(), \"year\") ? \"\" : month.getFullYear()\n }`;\n }, [showMonthPicker, month]);\n\n const handleYearMonthForm = useCallback(\n (props) => {\n return (\n <YearMonthPicker\n {...props}\n text={text}\n selectedDays={selectedDays}\n onChange={handleYearMonthChange}\n isShown={showMonthPicker}\n selectionMode={selectionMode}\n />\n );\n },\n [text, selectedDays, handleYearMonthChange, showMonthPicker, selectionMode]\n );\n\n const onKeyDownCallback = useCallback(\n (e: KeyboardEvent) => {\n // Right Arrow\n if (e.key === \"ArrowRight\") {\n setDirection(true);\n if (showMonthPicker) {\n onMonthChange(new Date(month.getFullYear() + 1, month.getMonth()));\n } else {\n onMonthChange(new Date(month.getFullYear(), month.getMonth() + 1));\n }\n }\n // Left Arrow\n if (e.key === \"ArrowLeft\") {\n setDirection(false);\n if (showMonthPicker) {\n onMonthChange(new Date(month.getFullYear() - 1, month.getMonth()));\n } else {\n onMonthChange(new Date(month.getFullYear(), month.getMonth() - 1));\n }\n }\n // Up Arrow\n if (e.key === \"ArrowUp\") {\n setDirection(true);\n onMonthChange(new Date(month.getFullYear() + 1, month.getMonth()));\n }\n // Down Arrow\n if (e.key === \"ArrowDown\") {\n setDirection(false);\n onMonthChange(new Date(month.getFullYear() - 1, month.getMonth()));\n }\n },\n [showMonthPicker, onMonthChange, month]\n );\n\n useEffect(() => {\n document.addEventListener(\"keydown\", onKeyDownCallback);\n return (): void => {\n document.removeEventListener(\"keydown\", onKeyDownCallback);\n };\n }, [month, onMonthChange, showMonthPicker, onKeyDownCallback]);\n\n return (\n <StyledDatePicker className=\"c-date-picker-wrapper\" onWheel={onWheel}>\n <SwitchTransition mode=\"out-in\">\n <StyledDatePickerCSSTransition\n key={showMonthPicker ? month.getFullYear() : month.getMonth()}\n timeout={300}\n classNames=\"c-date-picker__animation\"\n $direction={direction}\n >\n <StyledDayPicker\n {...rest}\n disabledDays={disabledDays}\n selectedDays={selectedDays}\n onDayClick={handleDayClick}\n modifiers={modifiers}\n onDayMouseEnter={handleDayMouseEnter}\n onDayMouseLeave={onDayMouseLeave}\n className={className}\n $isYearlyView={showMonthPicker}\n month={month}\n navbarElement={customNavBarElement}\n onCaptionClick={togglePicker}\n captionElement={handleYearMonthForm}\n classNames={customClassNames}\n fixedWeeks={fixedWeeks}\n firstDayOfWeek={firstDayOfWeek}\n />\n </StyledDatePickerCSSTransition>\n </SwitchTransition>\n </StyledDatePicker>\n );\n};\n\nDatePicker.displayName = \"DatePicker\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityCard.js","names":["React","forwardRef","useCallback","classnames","StyledEntityCard","EntityCard","ref","renderAs","properties","className","renderAsListItem","filter","p","showInList","map","name","render","renderAsGridItem","headerSection","cardSection","bodySection","footerSection","renderProperty","displayName"],"sources":["../../../../src/components/EntityCard/EntityCard.tsx"],"sourcesContent":["import React, {\n Ref,\n HTMLAttributes,\n forwardRef,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { StyledEntityCard } from \"./Styles\";\n\nexport type cardSection = \"header\" | \"body\" | \"footer\";\n\nexport interface IEntityProperties {\n name: string;\n render: () => ReactNode;\n showInList?: boolean;\n cardSection: cardSection;\n className?: string;\n}\n\nexport interface IEntityCardProps {\n renderAs?: \"list-item\" | \"grid-item\";\n properties: IEntityProperties[];\n ref?: Ref<HTMLDivElement>;\n link?: string;\n className?: string;\n}\n\nexport const EntityCard = forwardRef(\n (\n {\n renderAs = \"list-item\",\n properties,\n className,\n }: HTMLAttributes<HTMLDivElement> & IEntityCardProps,\n ref: Ref<HTMLDivElement> | null | undefined\n ) => {\n const renderAsListItem = useCallback((properties: IEntityProperties[]) => {\n return properties\n .filter((p) => p.showInList)\n .map((p) => {\n return (\n <div key={p.name} className={`entity-property-${p.name}`}>\n {p.render()}\n </div>\n );\n });\n }, []);\n\n const renderAsGridItem = useCallback((properties: IEntityProperties[]) => {\n const headerSection = properties.filter(\n (p: IEntityProperties) => p.cardSection === \"header\"\n );\n const bodySection = properties.filter(\n (p: IEntityProperties) => p.cardSection === \"body\"\n );\n const footerSection = properties.filter(\n (p) => p.cardSection === \"footer\"\n );\n const renderProperty = (p: IEntityProperties): ReactNode => (\n <div key={p.name} className={`entity-property-${p.name}`}>\n {p.render()}\n </div>\n );\n return (\n <>\n <div className
|
|
1
|
+
{"version":3,"file":"EntityCard.js","names":["React","forwardRef","useCallback","classnames","StyledEntityCard","EntityCard","ref","renderAs","properties","className","renderAsListItem","filter","p","showInList","map","name","render","renderAsGridItem","headerSection","cardSection","bodySection","footerSection","renderProperty","displayName"],"sources":["../../../../src/components/EntityCard/EntityCard.tsx"],"sourcesContent":["import React, {\n Ref,\n HTMLAttributes,\n forwardRef,\n ReactNode,\n useCallback,\n} from \"react\";\nimport classnames from \"classnames\";\nimport { StyledEntityCard } from \"./Styles\";\n\nexport type cardSection = \"header\" | \"body\" | \"footer\";\n\nexport interface IEntityProperties {\n name: string;\n render: () => ReactNode;\n showInList?: boolean;\n cardSection: cardSection;\n className?: string;\n}\n\nexport interface IEntityCardProps {\n renderAs?: \"list-item\" | \"grid-item\";\n properties: IEntityProperties[];\n ref?: Ref<HTMLDivElement>;\n link?: string;\n className?: string;\n}\n\nexport const EntityCard = forwardRef(\n (\n {\n renderAs = \"list-item\",\n properties,\n className,\n }: HTMLAttributes<HTMLDivElement> & IEntityCardProps,\n ref: Ref<HTMLDivElement> | null | undefined\n ) => {\n const renderAsListItem = useCallback((properties: IEntityProperties[]) => {\n return properties\n .filter((p) => p.showInList)\n .map((p) => {\n return (\n <div key={p.name} className={`entity-property-${p.name}`}>\n {p.render()}\n </div>\n );\n });\n }, []);\n\n const renderAsGridItem = useCallback((properties: IEntityProperties[]) => {\n const headerSection = properties.filter(\n (p: IEntityProperties) => p.cardSection === \"header\"\n );\n const bodySection = properties.filter(\n (p: IEntityProperties) => p.cardSection === \"body\"\n );\n const footerSection = properties.filter(\n (p) => p.cardSection === \"footer\"\n );\n const renderProperty = (p: IEntityProperties): ReactNode => (\n <div key={p.name} className={`entity-property-${p.name}`}>\n {p.render()}\n </div>\n );\n return (\n <>\n <div className=\"card-header\">\n {headerSection.map((p) => renderProperty(p))}\n </div>\n <div className=\"card-body\">\n {bodySection.map((p) => renderProperty(p))}\n </div>\n <div className=\"card-footer\">\n {footerSection.map((p) => renderProperty(p))}\n </div>\n </>\n );\n }, []);\n\n return (\n <StyledEntityCard\n ref={ref}\n hoverable\n className={classnames(\n \"entity-card-wrapper\",\n {\n \"grid-item\": renderAs === \"grid-item\",\n \"list-item\": renderAs === \"list-item\",\n },\n className\n )}\n paperType={renderAs === \"grid-item\" ? \"paper-1\" : \"paper-2\"}\n $renderAs={renderAs}\n >\n {renderAs === \"list-item\" ? renderAsListItem(properties) : null}\n {renderAs === \"grid-item\" ? renderAsGridItem(properties) : null}\n </StyledEntityCard>\n );\n }\n);\n\nEntityCard.displayName = \"EntityCard\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAGVC,UAAU,EAEVC,WAAW,QACN,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,gBAAgB,QAAQ,UAAU;AAoB3C,OAAO,IAAMC,UAAU,gBAAGJ,UAAU,CAClC,gBAMEK,GAA2C,EACxC;EAAA,yBALDC,QAAQ;IAARA,QAAQ,8BAAG,WAAW;IACtBC,UAAU,QAAVA,UAAU;IACVC,SAAS,QAATA,SAAS;EAIX,IAAMC,gBAAgB,GAAGR,WAAW,CAAC,UAACM,UAA+B,EAAK;IACxE,OAAOA,UAAU,CACdG,MAAM,CAAC,UAACC,CAAC;MAAA,OAAKA,CAAC,CAACC,UAAU;IAAA,EAAC,CAC3BC,GAAG,CAAC,UAACF,CAAC,EAAK;MACV,oBACE;QAAK,GAAG,EAAEA,CAAC,CAACG,IAAK;QAAC,SAAS,uBAAqBH,CAAC,CAACG;MAAO,GACtDH,CAAC,CAACI,MAAM,EAAE,CACP;IAEV,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,gBAAgB,GAAGf,WAAW,CAAC,UAACM,UAA+B,EAAK;IACxE,IAAMU,aAAa,GAAGV,UAAU,CAACG,MAAM,CACrC,UAACC,CAAoB;MAAA,OAAKA,CAAC,CAACO,WAAW,KAAK,QAAQ;IAAA,EACrD;IACD,IAAMC,WAAW,GAAGZ,UAAU,CAACG,MAAM,CACnC,UAACC,CAAoB;MAAA,OAAKA,CAAC,CAACO,WAAW,KAAK,MAAM;IAAA,EACnD;IACD,IAAME,aAAa,GAAGb,UAAU,CAACG,MAAM,CACrC,UAACC,CAAC;MAAA,OAAKA,CAAC,CAACO,WAAW,KAAK,QAAQ;IAAA,EAClC;IACD,IAAMG,cAAc,GAAG,SAAjBA,cAAc,CAAIV,CAAoB;MAAA,oBAC1C;QAAK,GAAG,EAAEA,CAAC,CAACG,IAAK;QAAC,SAAS,uBAAqBH,CAAC,CAACG;MAAO,GACtDH,CAAC,CAACI,MAAM,EAAE,CACP;IAAA,CACP;IACD,oBACE,uDACE;MAAK,SAAS,EAAC;IAAa,GACzBE,aAAa,CAACJ,GAAG,CAAC,UAACF,CAAC;MAAA,OAAKU,cAAc,CAACV,CAAC,CAAC;IAAA,EAAC,CACxC,eACN;MAAK,SAAS,EAAC;IAAW,GACvBQ,WAAW,CAACN,GAAG,CAAC,UAACF,CAAC;MAAA,OAAKU,cAAc,CAACV,CAAC,CAAC;IAAA,EAAC,CACtC,eACN;MAAK,SAAS,EAAC;IAAa,GACzBS,aAAa,CAACP,GAAG,CAAC,UAACF,CAAC;MAAA,OAAKU,cAAc,CAACV,CAAC,CAAC;IAAA,EAAC,CACxC,CACL;EAEP,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE,oBAAC,gBAAgB;IACf,GAAG,EAAEN,GAAI;IACT,SAAS;IACT,SAAS,EAAEH,UAAU,CACnB,qBAAqB,EACrB;MACE,WAAW,EAAEI,QAAQ,KAAK,WAAW;MACrC,WAAW,EAAEA,QAAQ,KAAK;IAC5B,CAAC,EACDE,SAAS,CACT;IACF,SAAS,EAAEF,QAAQ,KAAK,WAAW,GAAG,SAAS,GAAG,SAAU;IAC5D,SAAS,EAAEA;EAAS,GAEnBA,QAAQ,KAAK,WAAW,GAAGG,gBAAgB,CAACF,UAAU,CAAC,GAAG,IAAI,EAC9DD,QAAQ,KAAK,WAAW,GAAGU,gBAAgB,CAACT,UAAU,CAAC,GAAG,IAAI,CAC9C;AAEvB,CAAC,CACF;AAEDH,UAAU,CAACkB,WAAW,GAAG,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","names":["React","forwardRef","classNames","StyledHeader","Header","ref","className","size","children","rest","displayName"],"sources":["../../../../src/components/Header/Header.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes, ReactNode, Ref } from \"react\";\nimport classNames from \"classnames\";\nimport { StyledHeader } from \"./Styles\";\n\ninterface IHeaderProps {\n /** CSS classes. */\n className?: string;\n /** Size */\n size?: \"small\" | \"big\";\n /** Children */\n children: ReactNode;\n}\n\nexport const Header = forwardRef(\n (\n {\n className,\n size = \"small\",\n children,\n ...rest\n }: HTMLAttributes<HTMLDivElement> & IHeaderProps,\n ref: Ref<HTMLDivElement> | null | undefined\n ) => {\n return (\n <StyledHeader\n type
|
|
1
|
+
{"version":3,"file":"Header.js","names":["React","forwardRef","classNames","StyledHeader","Header","ref","className","size","children","rest","displayName"],"sources":["../../../../src/components/Header/Header.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes, ReactNode, Ref } from \"react\";\nimport classNames from \"classnames\";\nimport { StyledHeader } from \"./Styles\";\n\ninterface IHeaderProps {\n /** CSS classes. */\n className?: string;\n /** Size */\n size?: \"small\" | \"big\";\n /** Children */\n children: ReactNode;\n}\n\nexport const Header = forwardRef(\n (\n {\n className,\n size = \"small\",\n children,\n ...rest\n }: HTMLAttributes<HTMLDivElement> & IHeaderProps,\n ref: Ref<HTMLDivElement> | null | undefined\n ) => {\n return (\n <StyledHeader\n type=\"paper-2\"\n className={classNames(\"c-header\", className)}\n size={size}\n ref={ref}\n {...rest}\n >\n {children}\n </StyledHeader>\n );\n }\n);\n\nHeader.displayName = \"Header\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAwC,OAAO;AACzE,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,YAAY,QAAQ,UAAU;AAWvC,OAAO,IAAMC,MAAM,gBAAGH,UAAU,CAC9B,gBAOEI,GAA2C,EACxC;EAAA,IANDC,SAAS,QAATA,SAAS;IAAA,iBACTC,IAAI;IAAJA,IAAI,0BAAG,OAAO;IACdC,QAAQ,QAARA,QAAQ;IACLC,IAAI;EAIT,oBACE,oBAAC,YAAY;IACX,IAAI,EAAC,SAAS;IACd,SAAS,EAAEP,UAAU,CAAC,UAAU,EAAEI,SAAS,CAAE;IAC7C,IAAI,EAAEC,IAAK;IACX,GAAG,EAAEF;EAAI,GACLI,IAAI,GAEPD,QAAQ,CACI;AAEnB,CAAC,CACF;AAEDJ,MAAM,CAACM,WAAW,GAAG,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nav.js","names":["React","useState","useRef","useCallback","useEffect","useLayoutEffect","useMemo","Children","cloneElement","classNames","ResizeObserver","debounce","Select","StyledNav","StyledNavAsMoreTarget","StyledNavAsSelect","StyledNavList","StyledNavListItemMore","ExpandSingle","Nav","children","alignment","onSelect","onMoreOptionSelect","className","role","moreLabel","type","active","setActive","visibleTabIndexes","setVisibleTabIndexes","measuringRender","setMeasuringRender","moreVisible","setMoreVisible","renderNavAsSelect","setRenderNavAsSelect","options","setOptions","moreOpened","setMoreOpened","isMounted","setIsMounted","navItemNames","map","item","props","name","allOptions","index","id","navRef","navItemsRefs","moreItemRef","onClick","e","target","currentTarget","dataset","disabled","Number","forEach","child","containerWidth","current","offsetWidth","itemsWidth","Object","values","reduce","acc","itemEl","Array","from","keys","moreItemWidth","firstItemWidth","visible","allWidth","liItem","push","filter","includes","handleResize","window","addEventListener","removeEventListener","resizeObserver","entries","entry","contentRect","width","observe","setTimeout","unobserve","disconnect","visibleTabs","tabs","toArray","onMoreOptionClick","navAsSelect","setMoreOpen","setMoreClose","element","ref","el","indexOf","displayName"],"sources":["../../../../src/components/Nav/Nav.tsx"],"sourcesContent":["import React, {\n ReactElement,\n FC,\n ReactNode,\n useState,\n useRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n Children,\n cloneElement,\n} from \"react\";\nimport classNames from \"classnames\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport debounce from \"lodash.debounce\";\nimport { ISyntheticEvent } from \"../../types\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { Select } from \"../Select/Select\";\nimport {\n StyledNav,\n StyledNavAsMoreTarget,\n StyledNavAsSelect,\n StyledNavList,\n} from \"./Styles\";\nimport { StyledNavListItemMore } from \"./Item/Styles\";\nimport { ItemProps } from \"./Item/Item\";\nimport { ExpandSingle } from \"../Expanders/ExpandSingle\";\n\ntype NavType = \"inline\" | \"dropdown\";\nexport type NavAlignType = \"left\" | \"center\" | \"right\";\nexport type NavRoleType = \"bold\" | \"light\";\n\nexport interface INavProps {\n children: ReactElement<ItemProps>[];\n /** Function for changing active navs. */\n onSelect?: (index: number) => void;\n /** Function triggered when option in More... is selected */\n onMoreOptionSelect?: (index: number) => void;\n /** Aligment of nav component. */\n alignment?: NavAlignType;\n /** CSS classes. */\n className?: string;\n /** Role of nav component. */\n role?: NavRoleType;\n /** Label for More... item */\n moreLabel?: string;\n /** Nav type */\n type?: NavType;\n}\n\nexport const Nav: FC<INavProps> = ({\n children,\n alignment = \"left\",\n onSelect,\n onMoreOptionSelect,\n className,\n role = \"bold\",\n moreLabel,\n type = \"inline\",\n}) => {\n const [active, setActive] = useState(0);\n const [visibleTabIndexes, setVisibleTabIndexes] = useState<number[]>([]);\n const [measuringRender, setMeasuringRender] = useState(false);\n const [moreVisible, setMoreVisible] = useState(false);\n const [renderNavAsSelect, setRenderNavAsSelect] = useState(false);\n const [options, setOptions] = useState<IOptionItemProps[]>([]);\n const [moreOpened, setMoreOpened] = useState(false);\n const [isMounted, setIsMounted] = useState(false);\n\n const navItemNames = useMemo(\n () => children.map((item) => item.props.name),\n [children]\n );\n\n const allOptions = useMemo(() => {\n return navItemNames.map((name, index) => {\n return { id: index, name: name };\n });\n }, [navItemNames]);\n\n // REFS\n const navRef = useRef<HTMLUListElement | null>(null);\n const navItemsRefs = useRef<\n { index: number; element: HTMLLIElement } | Record<string, unknown>\n >({});\n const moreItemRef = useRef<HTMLLIElement | null>(null);\n\n const onClick = useCallback(\n (e: ISyntheticEvent) => {\n if (\n e.target &&\n e.currentTarget.dataset.index &&\n !e.currentTarget.dataset.disabled\n ) {\n const index = Number(e.currentTarget.dataset.index);\n setActive(index);\n if (onSelect) {\n onSelect(index);\n }\n setMeasuringRender(true);\n }\n },\n [onSelect]\n );\n\n useMemo(() => {\n Children.forEach(\n children as ReactElement[],\n (child: ReactElement, index) => {\n if (child && child.props.active) {\n setActive(index);\n }\n }\n );\n }, [children]);\n\n useLayoutEffect(() => {\n if (type === \"inline\" && measuringRender && isMounted) {\n const containerWidth = navRef.current?.offsetWidth || 0;\n const itemsWidth = Object.values(navItemsRefs.current).reduce(\n (acc: number, item) => {\n const itemEl = item as HTMLLIElement;\n return acc + (itemEl ? itemEl.offsetWidth : 0);\n },\n 0\n );\n\n // all tabs are visible\n if (containerWidth >= itemsWidth) {\n setVisibleTabIndexes(Array.from(navItemNames.keys()));\n setMoreVisible(false);\n setRenderNavAsSelect(false);\n return setMeasuringRender(false);\n }\n\n setMoreVisible(true);\n\n if (moreVisible) {\n const moreItemWidth = moreItemRef.current?.offsetWidth || 0;\n const firstItemWidth = navItemsRefs.current[0].offsetWidth;\n\n // collapse Nav to Select, there is no enough room\n if (containerWidth < moreItemWidth + firstItemWidth) {\n setVisibleTabIndexes([]);\n const options = navItemNames.map((name, index) => {\n return { id: index, name: name };\n });\n setOptions(options);\n setRenderNavAsSelect(true);\n setMoreVisible(false);\n return setMeasuringRender(false);\n }\n\n // item(s) + More...\n const visible: number[] = [];\n let allWidth = 0;\n Object.values(navItemsRefs.current).forEach((item, index) => {\n const liItem = item as HTMLLIElement;\n allWidth += liItem.offsetWidth;\n if (moreItemWidth + allWidth <= containerWidth) {\n visible.push(index);\n }\n });\n setVisibleTabIndexes(visible);\n const options = navItemNames\n .map((name, index) => {\n return { id: index, name: name };\n })\n .filter((item) => !visible.includes(item.id));\n setOptions(options);\n setRenderNavAsSelect(false);\n setMeasuringRender(false);\n }\n }\n }, [\n children,\n isMounted,\n measuringRender,\n moreVisible,\n navItemNames,\n type,\n visibleTabIndexes,\n ]);\n\n useEffect(() => {\n if (type === \"inline\") {\n const handleResize = debounce((): void => {\n setMeasuringRender(true);\n }, 300);\n window.addEventListener(\"resize\", handleResize);\n return (): void => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [type]);\n\n // we are using observer to solve the problem of the initial rendering\n useEffect(() => {\n if (type === \"inline\" && navRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { contentRect } = entry;\n const { width = 0 } = contentRect;\n if (width > 0) {\n setMeasuringRender(true);\n }\n }\n });\n\n resizeObserver.observe(navRef.current);\n\n setTimeout(() => {\n if (navRef.current) {\n resizeObserver.unobserve(navRef.current);\n }\n }, 2000);\n\n return (): void => {\n resizeObserver.disconnect();\n };\n }\n }, [type]);\n\n useEffect(() => {\n setMeasuringRender(true);\n setIsMounted(true);\n }, []);\n\n const visibleTabs = useMemo(() => {\n const tabs = Children.toArray(children);\n if (measuringRender || !isMounted) {\n return tabs;\n } else {\n return tabs.filter((child, index) => {\n return visibleTabIndexes.includes(index);\n });\n }\n }, [children, isMounted, measuringRender, visibleTabIndexes]);\n\n const onMoreOptionClick = useCallback(\n (id) => {\n setActive(id);\n if (onMoreOptionSelect) {\n onMoreOptionSelect(id);\n }\n setMeasuringRender(true);\n },\n [onMoreOptionSelect]\n );\n\n const navAsSelect = useMemo(() => {\n return (\n <StyledNavAsSelect>\n <span>{navItemNames[active]}</span>\n <ExpandSingle expanded={moreOpened} fill=\"currentColor\" />\n </StyledNavAsSelect>\n );\n }, [active, moreOpened, navItemNames]);\n\n const setMoreOpen = useCallback(() => setMoreOpened(true), []);\n const setMoreClose = useCallback(() => setMoreOpened(false), []);\n\n return (\n <StyledNav\n className={classNames(\"c-nav\", className)}\n $align={alignment}\n $role={role}\n >\n <StyledNavList ref={navRef}>\n {type === \"inline\" &&\n visibleTabs.map((child: ReactNode, index: number) => {\n const element = child as ReactElement;\n return cloneElement(element, {\n active: index === active,\n role,\n ref: (el) => {\n navItemsRefs.current[index] = el;\n },\n onClick,\n \"data-index\": index,\n \"data-disabled\": element.props.disabled,\n });\n })}\n {type === \"inline\" && moreVisible ? (\n <StyledNavListItemMore\n ref={moreItemRef}\n name=\"More\"\n active={visibleTabIndexes.indexOf(active) === -1}\n role={role}\n >\n <Select\n selected={active}\n target={\n <StyledNavAsMoreTarget $role={role}>\n {moreLabel}\n </StyledNavAsMoreTarget>\n }\n disabledInternalSort\n onChange={onMoreOptionClick}\n options={options}\n type={\"single\"}\n mode={\"normal\"}\n forceCloseMenu\n disableSearch\n keepSameOptionsOrder\n onSelectOpen={setMoreOpen}\n onSelectClose={setMoreClose}\n />\n </StyledNavListItemMore>\n ) : null}\n {type === \"dropdown\" || renderNavAsSelect ? (\n <StyledNavListItemMore\n name=\"More\"\n active={visibleTabIndexes.indexOf(active) === -1}\n role={role}\n >\n <Select\n selected={active}\n target={navAsSelect}\n disabledInternalSort\n onChange={onMoreOptionClick}\n options={allOptions}\n type={\"single\"}\n mode={\"normal\"}\n forceCloseMenu\n disableSearch\n keepSameOptionsOrder\n onSelectOpen={setMoreOpen}\n onSelectClose={setMoreClose}\n />\n </StyledNavListItemMore>\n ) : null}\n </StyledNavList>\n </StyledNav>\n );\n};\n\nNav.displayName = \"Nav\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Nav.js","names":["React","useState","useRef","useCallback","useEffect","useLayoutEffect","useMemo","Children","cloneElement","classNames","ResizeObserver","debounce","Select","StyledNav","StyledNavAsMoreTarget","StyledNavAsSelect","StyledNavList","StyledNavListItemMore","ExpandSingle","Nav","children","alignment","onSelect","onMoreOptionSelect","className","role","moreLabel","type","active","setActive","visibleTabIndexes","setVisibleTabIndexes","measuringRender","setMeasuringRender","moreVisible","setMoreVisible","renderNavAsSelect","setRenderNavAsSelect","options","setOptions","moreOpened","setMoreOpened","isMounted","setIsMounted","navItemNames","map","item","props","name","allOptions","index","id","navRef","navItemsRefs","moreItemRef","onClick","e","target","currentTarget","dataset","disabled","Number","forEach","child","containerWidth","current","offsetWidth","itemsWidth","Object","values","reduce","acc","itemEl","Array","from","keys","moreItemWidth","firstItemWidth","visible","allWidth","liItem","push","filter","includes","handleResize","window","addEventListener","removeEventListener","resizeObserver","entries","entry","contentRect","width","observe","setTimeout","unobserve","disconnect","visibleTabs","tabs","toArray","onMoreOptionClick","navAsSelect","setMoreOpen","setMoreClose","element","ref","el","indexOf","displayName"],"sources":["../../../../src/components/Nav/Nav.tsx"],"sourcesContent":["import React, {\n ReactElement,\n FC,\n ReactNode,\n useState,\n useRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n Children,\n cloneElement,\n} from \"react\";\nimport classNames from \"classnames\";\nimport ResizeObserver from \"resize-observer-polyfill\";\nimport debounce from \"lodash.debounce\";\nimport { ISyntheticEvent } from \"../../types\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { Select } from \"../Select/Select\";\nimport {\n StyledNav,\n StyledNavAsMoreTarget,\n StyledNavAsSelect,\n StyledNavList,\n} from \"./Styles\";\nimport { StyledNavListItemMore } from \"./Item/Styles\";\nimport { ItemProps } from \"./Item/Item\";\nimport { ExpandSingle } from \"../Expanders/ExpandSingle\";\n\ntype NavType = \"inline\" | \"dropdown\";\nexport type NavAlignType = \"left\" | \"center\" | \"right\";\nexport type NavRoleType = \"bold\" | \"light\";\n\nexport interface INavProps {\n children: ReactElement<ItemProps>[];\n /** Function for changing active navs. */\n onSelect?: (index: number) => void;\n /** Function triggered when option in More... is selected */\n onMoreOptionSelect?: (index: number) => void;\n /** Aligment of nav component. */\n alignment?: NavAlignType;\n /** CSS classes. */\n className?: string;\n /** Role of nav component. */\n role?: NavRoleType;\n /** Label for More... item */\n moreLabel?: string;\n /** Nav type */\n type?: NavType;\n}\n\nexport const Nav: FC<INavProps> = ({\n children,\n alignment = \"left\",\n onSelect,\n onMoreOptionSelect,\n className,\n role = \"bold\",\n moreLabel,\n type = \"inline\",\n}) => {\n const [active, setActive] = useState(0);\n const [visibleTabIndexes, setVisibleTabIndexes] = useState<number[]>([]);\n const [measuringRender, setMeasuringRender] = useState(false);\n const [moreVisible, setMoreVisible] = useState(false);\n const [renderNavAsSelect, setRenderNavAsSelect] = useState(false);\n const [options, setOptions] = useState<IOptionItemProps[]>([]);\n const [moreOpened, setMoreOpened] = useState(false);\n const [isMounted, setIsMounted] = useState(false);\n\n const navItemNames = useMemo(\n () => children.map((item) => item.props.name),\n [children]\n );\n\n const allOptions = useMemo(() => {\n return navItemNames.map((name, index) => {\n return { id: index, name: name };\n });\n }, [navItemNames]);\n\n // REFS\n const navRef = useRef<HTMLUListElement | null>(null);\n const navItemsRefs = useRef<\n { index: number; element: HTMLLIElement } | Record<string, unknown>\n >({});\n const moreItemRef = useRef<HTMLLIElement | null>(null);\n\n const onClick = useCallback(\n (e: ISyntheticEvent) => {\n if (\n e.target &&\n e.currentTarget.dataset.index &&\n !e.currentTarget.dataset.disabled\n ) {\n const index = Number(e.currentTarget.dataset.index);\n setActive(index);\n if (onSelect) {\n onSelect(index);\n }\n setMeasuringRender(true);\n }\n },\n [onSelect]\n );\n\n useMemo(() => {\n Children.forEach(\n children as ReactElement[],\n (child: ReactElement, index) => {\n if (child && child.props.active) {\n setActive(index);\n }\n }\n );\n }, [children]);\n\n useLayoutEffect(() => {\n if (type === \"inline\" && measuringRender && isMounted) {\n const containerWidth = navRef.current?.offsetWidth || 0;\n const itemsWidth = Object.values(navItemsRefs.current).reduce(\n (acc: number, item) => {\n const itemEl = item as HTMLLIElement;\n return acc + (itemEl ? itemEl.offsetWidth : 0);\n },\n 0\n );\n\n // all tabs are visible\n if (containerWidth >= itemsWidth) {\n setVisibleTabIndexes(Array.from(navItemNames.keys()));\n setMoreVisible(false);\n setRenderNavAsSelect(false);\n return setMeasuringRender(false);\n }\n\n setMoreVisible(true);\n\n if (moreVisible) {\n const moreItemWidth = moreItemRef.current?.offsetWidth || 0;\n const firstItemWidth = navItemsRefs.current[0].offsetWidth;\n\n // collapse Nav to Select, there is no enough room\n if (containerWidth < moreItemWidth + firstItemWidth) {\n setVisibleTabIndexes([]);\n const options = navItemNames.map((name, index) => {\n return { id: index, name: name };\n });\n setOptions(options);\n setRenderNavAsSelect(true);\n setMoreVisible(false);\n return setMeasuringRender(false);\n }\n\n // item(s) + More...\n const visible: number[] = [];\n let allWidth = 0;\n Object.values(navItemsRefs.current).forEach((item, index) => {\n const liItem = item as HTMLLIElement;\n allWidth += liItem.offsetWidth;\n if (moreItemWidth + allWidth <= containerWidth) {\n visible.push(index);\n }\n });\n setVisibleTabIndexes(visible);\n const options = navItemNames\n .map((name, index) => {\n return { id: index, name: name };\n })\n .filter((item) => !visible.includes(item.id));\n setOptions(options);\n setRenderNavAsSelect(false);\n setMeasuringRender(false);\n }\n }\n }, [\n children,\n isMounted,\n measuringRender,\n moreVisible,\n navItemNames,\n type,\n visibleTabIndexes,\n ]);\n\n useEffect(() => {\n if (type === \"inline\") {\n const handleResize = debounce((): void => {\n setMeasuringRender(true);\n }, 300);\n window.addEventListener(\"resize\", handleResize);\n return (): void => {\n window.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [type]);\n\n // we are using observer to solve the problem of the initial rendering\n useEffect(() => {\n if (type === \"inline\" && navRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n for (const entry of entries) {\n const { contentRect } = entry;\n const { width = 0 } = contentRect;\n if (width > 0) {\n setMeasuringRender(true);\n }\n }\n });\n\n resizeObserver.observe(navRef.current);\n\n setTimeout(() => {\n if (navRef.current) {\n resizeObserver.unobserve(navRef.current);\n }\n }, 2000);\n\n return (): void => {\n resizeObserver.disconnect();\n };\n }\n }, [type]);\n\n useEffect(() => {\n setMeasuringRender(true);\n setIsMounted(true);\n }, []);\n\n const visibleTabs = useMemo(() => {\n const tabs = Children.toArray(children);\n if (measuringRender || !isMounted) {\n return tabs;\n } else {\n return tabs.filter((child, index) => {\n return visibleTabIndexes.includes(index);\n });\n }\n }, [children, isMounted, measuringRender, visibleTabIndexes]);\n\n const onMoreOptionClick = useCallback(\n (id) => {\n setActive(id);\n if (onMoreOptionSelect) {\n onMoreOptionSelect(id);\n }\n setMeasuringRender(true);\n },\n [onMoreOptionSelect]\n );\n\n const navAsSelect = useMemo(() => {\n return (\n <StyledNavAsSelect>\n <span>{navItemNames[active]}</span>\n <ExpandSingle expanded={moreOpened} fill=\"currentColor\" />\n </StyledNavAsSelect>\n );\n }, [active, moreOpened, navItemNames]);\n\n const setMoreOpen = useCallback(() => setMoreOpened(true), []);\n const setMoreClose = useCallback(() => setMoreOpened(false), []);\n\n return (\n <StyledNav\n className={classNames(\"c-nav\", className)}\n $align={alignment}\n $role={role}\n >\n <StyledNavList ref={navRef}>\n {type === \"inline\" &&\n visibleTabs.map((child: ReactNode, index: number) => {\n const element = child as ReactElement;\n return cloneElement(element, {\n active: index === active,\n role,\n ref: (el) => {\n navItemsRefs.current[index] = el;\n },\n onClick,\n \"data-index\": index,\n \"data-disabled\": element.props.disabled,\n });\n })}\n {type === \"inline\" && moreVisible ? (\n <StyledNavListItemMore\n ref={moreItemRef}\n name=\"More\"\n active={visibleTabIndexes.indexOf(active) === -1}\n role={role}\n >\n <Select\n selected={active}\n target={\n <StyledNavAsMoreTarget $role={role}>\n {moreLabel}\n </StyledNavAsMoreTarget>\n }\n disabledInternalSort\n onChange={onMoreOptionClick}\n options={options}\n type=\"single\"\n mode=\"normal\"\n forceCloseMenu\n disableSearch\n keepSameOptionsOrder\n onSelectOpen={setMoreOpen}\n onSelectClose={setMoreClose}\n />\n </StyledNavListItemMore>\n ) : null}\n {type === \"dropdown\" || renderNavAsSelect ? (\n <StyledNavListItemMore\n name=\"More\"\n active={visibleTabIndexes.indexOf(active) === -1}\n role={role}\n >\n <Select\n selected={active}\n target={navAsSelect}\n disabledInternalSort\n onChange={onMoreOptionClick}\n options={allOptions}\n type=\"single\"\n mode=\"normal\"\n forceCloseMenu\n disableSearch\n keepSameOptionsOrder\n onSelectOpen={setMoreOpen}\n onSelectClose={setMoreClose}\n />\n </StyledNavListItemMore>\n ) : null}\n </StyledNavList>\n </StyledNav>\n );\n};\n\nNav.displayName = \"Nav\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAIVC,QAAQ,EACRC,MAAM,EACNC,WAAW,EACXC,SAAS,EACTC,eAAe,EACfC,OAAO,EACPC,QAAQ,EACRC,YAAY,QACP,OAAO;AACd,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,cAAc,MAAM,0BAA0B;AACrD,OAAOC,QAAQ,MAAM,iBAAiB;AAGtC,SAASC,MAAM,QAAQ,kBAAkB;AACzC,SACEC,SAAS,EACTC,qBAAqB,EACrBC,iBAAiB,EACjBC,aAAa,QACR,UAAU;AACjB,SAASC,qBAAqB,QAAQ,eAAe;AAErD,SAASC,YAAY,QAAQ,2BAA2B;AAwBxD,OAAO,IAAMC,GAAkB,GAAG,SAArBA,GAAkB,OASzB;EAAA,IARJC,QAAQ,QAARA,QAAQ;IAAA,sBACRC,SAAS;IAATA,SAAS,+BAAG,MAAM;IAClBC,QAAQ,QAARA,QAAQ;IACRC,kBAAkB,QAAlBA,kBAAkB;IAClBC,SAAS,QAATA,SAAS;IAAA,iBACTC,IAAI;IAAJA,IAAI,0BAAG,MAAM;IACbC,SAAS,QAATA,SAAS;IAAA,iBACTC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;EAEf,gBAA4B1B,QAAQ,CAAC,CAAC,CAAC;IAAhC2B,MAAM;IAAEC,SAAS;EACxB,iBAAkD5B,QAAQ,CAAW,EAAE,CAAC;IAAjE6B,iBAAiB;IAAEC,oBAAoB;EAC9C,iBAA8C9B,QAAQ,CAAC,KAAK,CAAC;IAAtD+B,eAAe;IAAEC,kBAAkB;EAC1C,iBAAsChC,QAAQ,CAAC,KAAK,CAAC;IAA9CiC,WAAW;IAAEC,cAAc;EAClC,iBAAkDlC,QAAQ,CAAC,KAAK,CAAC;IAA1DmC,iBAAiB;IAAEC,oBAAoB;EAC9C,iBAA8BpC,QAAQ,CAAqB,EAAE,CAAC;IAAvDqC,OAAO;IAAEC,UAAU;EAC1B,iBAAoCtC,QAAQ,CAAC,KAAK,CAAC;IAA5CuC,UAAU;IAAEC,aAAa;EAChC,iBAAkCxC,QAAQ,CAAC,KAAK,CAAC;IAA1CyC,SAAS;IAAEC,YAAY;EAE9B,IAAMC,YAAY,GAAGtC,OAAO,CAC1B;IAAA,OAAMc,QAAQ,CAACyB,GAAG,CAAC,UAACC,IAAI;MAAA,OAAKA,IAAI,CAACC,KAAK,CAACC,IAAI;IAAA,EAAC;EAAA,GAC7C,CAAC5B,QAAQ,CAAC,CACX;EAED,IAAM6B,UAAU,GAAG3C,OAAO,CAAC,YAAM;IAC/B,OAAOsC,YAAY,CAACC,GAAG,CAAC,UAACG,IAAI,EAAEE,KAAK,EAAK;MACvC,OAAO;QAAEC,EAAE,EAAED,KAAK;QAAEF,IAAI,EAAEA;MAAK,CAAC;IAClC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACJ,YAAY,CAAC,CAAC;;EAElB;EACA,IAAMQ,MAAM,GAAGlD,MAAM,CAA0B,IAAI,CAAC;EACpD,IAAMmD,YAAY,GAAGnD,MAAM,CAEzB,CAAC,CAAC,CAAC;EACL,IAAMoD,WAAW,GAAGpD,MAAM,CAAuB,IAAI,CAAC;EAEtD,IAAMqD,OAAO,GAAGpD,WAAW,CACzB,UAACqD,CAAkB,EAAK;IACtB,IACEA,CAAC,CAACC,MAAM,IACRD,CAAC,CAACE,aAAa,CAACC,OAAO,CAACT,KAAK,IAC7B,CAACM,CAAC,CAACE,aAAa,CAACC,OAAO,CAACC,QAAQ,EACjC;MACA,IAAMV,MAAK,GAAGW,MAAM,CAACL,CAAC,CAACE,aAAa,CAACC,OAAO,CAACT,KAAK,CAAC;MACnDrB,SAAS,CAACqB,MAAK,CAAC;MAChB,IAAI5B,QAAQ,EAAE;QACZA,QAAQ,CAAC4B,MAAK,CAAC;MACjB;MACAjB,kBAAkB,CAAC,IAAI,CAAC;IAC1B;EACF,CAAC,EACD,CAACX,QAAQ,CAAC,CACX;EAEDhB,OAAO,CAAC,YAAM;IACZC,QAAQ,CAACuD,OAAO,CACd1C,QAAQ,EACR,UAAC2C,KAAmB,EAAEb,KAAK,EAAK;MAC9B,IAAIa,KAAK,IAAIA,KAAK,CAAChB,KAAK,CAACnB,MAAM,EAAE;QAC/BC,SAAS,CAACqB,KAAK,CAAC;MAClB;IACF,CAAC,CACF;EACH,CAAC,EAAE,CAAC9B,QAAQ,CAAC,CAAC;EAEdf,eAAe,CAAC,YAAM;IACpB,IAAIsB,IAAI,KAAK,QAAQ,IAAIK,eAAe,IAAIU,SAAS,EAAE;MAAA;MACrD,IAAMsB,cAAc,GAAG,oBAAAZ,MAAM,CAACa,OAAO,qBAAd,gBAAgBC,WAAW,KAAI,CAAC;MACvD,IAAMC,UAAU,GAAGC,MAAM,CAACC,MAAM,CAAChB,YAAY,CAACY,OAAO,CAAC,CAACK,MAAM,CAC3D,UAACC,GAAW,EAAEzB,IAAI,EAAK;QACrB,IAAM0B,MAAM,GAAG1B,IAAqB;QACpC,OAAOyB,GAAG,IAAIC,MAAM,GAAGA,MAAM,CAACN,WAAW,GAAG,CAAC,CAAC;MAChD,CAAC,EACD,CAAC,CACF;;MAED;MACA,IAAIF,cAAc,IAAIG,UAAU,EAAE;QAChCpC,oBAAoB,CAAC0C,KAAK,CAACC,IAAI,CAAC9B,YAAY,CAAC+B,IAAI,EAAE,CAAC,CAAC;QACrDxC,cAAc,CAAC,KAAK,CAAC;QACrBE,oBAAoB,CAAC,KAAK,CAAC;QAC3B,OAAOJ,kBAAkB,CAAC,KAAK,CAAC;MAClC;MAEAE,cAAc,CAAC,IAAI,CAAC;MAEpB,IAAID,WAAW,EAAE;QAAA;QACf,IAAM0C,aAAa,GAAG,yBAAAtB,WAAW,CAACW,OAAO,qBAAnB,qBAAqBC,WAAW,KAAI,CAAC;QAC3D,IAAMW,cAAc,GAAGxB,YAAY,CAACY,OAAO,CAAC,CAAC,CAAC,CAACC,WAAW;;QAE1D;QACA,IAAIF,cAAc,GAAGY,aAAa,GAAGC,cAAc,EAAE;UACnD9C,oBAAoB,CAAC,EAAE,CAAC;UACxB,IAAMO,SAAO,GAAGM,YAAY,CAACC,GAAG,CAAC,UAACG,IAAI,EAAEE,KAAK,EAAK;YAChD,OAAO;cAAEC,EAAE,EAAED,KAAK;cAAEF,IAAI,EAAEA;YAAK,CAAC;UAClC,CAAC,CAAC;UACFT,UAAU,CAACD,SAAO,CAAC;UACnBD,oBAAoB,CAAC,IAAI,CAAC;UAC1BF,cAAc,CAAC,KAAK,CAAC;UACrB,OAAOF,kBAAkB,CAAC,KAAK,CAAC;QAClC;;QAEA;QACA,IAAM6C,OAAiB,GAAG,EAAE;QAC5B,IAAIC,QAAQ,GAAG,CAAC;QAChBX,MAAM,CAACC,MAAM,CAAChB,YAAY,CAACY,OAAO,CAAC,CAACH,OAAO,CAAC,UAAChB,IAAI,EAAEI,KAAK,EAAK;UAC3D,IAAM8B,MAAM,GAAGlC,IAAqB;UACpCiC,QAAQ,IAAIC,MAAM,CAACd,WAAW;UAC9B,IAAIU,aAAa,GAAGG,QAAQ,IAAIf,cAAc,EAAE;YAC9Cc,OAAO,CAACG,IAAI,CAAC/B,KAAK,CAAC;UACrB;QACF,CAAC,CAAC;QACFnB,oBAAoB,CAAC+C,OAAO,CAAC;QAC7B,IAAMxC,QAAO,GAAGM,YAAY,CACzBC,GAAG,CAAC,UAACG,IAAI,EAAEE,KAAK,EAAK;UACpB,OAAO;YAAEC,EAAE,EAAED,KAAK;YAAEF,IAAI,EAAEA;UAAK,CAAC;QAClC,CAAC,CAAC,CACDkC,MAAM,CAAC,UAACpC,IAAI;UAAA,OAAK,CAACgC,OAAO,CAACK,QAAQ,CAACrC,IAAI,CAACK,EAAE,CAAC;QAAA,EAAC;QAC/CZ,UAAU,CAACD,QAAO,CAAC;QACnBD,oBAAoB,CAAC,KAAK,CAAC;QAC3BJ,kBAAkB,CAAC,KAAK,CAAC;MAC3B;IACF;EACF,CAAC,EAAE,CACDb,QAAQ,EACRsB,SAAS,EACTV,eAAe,EACfE,WAAW,EACXU,YAAY,EACZjB,IAAI,EACJG,iBAAiB,CAClB,CAAC;EAEF1B,SAAS,CAAC,YAAM;IACd,IAAIuB,IAAI,KAAK,QAAQ,EAAE;MACrB,IAAMyD,YAAY,GAAGzE,QAAQ,CAAC,YAAY;QACxCsB,kBAAkB,CAAC,IAAI,CAAC;MAC1B,CAAC,EAAE,GAAG,CAAC;MACPoD,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC;MAC/C,OAAO,YAAY;QACjBC,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC;MACpD,CAAC;IACH;EACF,CAAC,EAAE,CAACzD,IAAI,CAAC,CAAC;;EAEV;EACAvB,SAAS,CAAC,YAAM;IACd,IAAIuB,IAAI,KAAK,QAAQ,IAAIyB,MAAM,CAACa,OAAO,EAAE;MACvC,IAAMuB,cAAc,GAAG,IAAI9E,cAAc,CAAC,UAAC+E,OAAO,EAAK;QACrD,qDAAoBA,OAAO,wCAAE;UAAA,IAAlBC,KAAK;UACd,IAAQC,WAAW,GAAKD,KAAK,CAArBC,WAAW;UACnB,yBAAsBA,WAAW,CAAzBC,KAAK;YAALA,KAAK,mCAAG,CAAC;UACjB,IAAIA,KAAK,GAAG,CAAC,EAAE;YACb3D,kBAAkB,CAAC,IAAI,CAAC;UAC1B;QACF;MACF,CAAC,CAAC;MAEFuD,cAAc,CAACK,OAAO,CAACzC,MAAM,CAACa,OAAO,CAAC;MAEtC6B,UAAU,CAAC,YAAM;QACf,IAAI1C,MAAM,CAACa,OAAO,EAAE;UAClBuB,cAAc,CAACO,SAAS,CAAC3C,MAAM,CAACa,OAAO,CAAC;QAC1C;MACF,CAAC,EAAE,IAAI,CAAC;MAER,OAAO,YAAY;QACjBuB,cAAc,CAACQ,UAAU,EAAE;MAC7B,CAAC;IACH;EACF,CAAC,EAAE,CAACrE,IAAI,CAAC,CAAC;EAEVvB,SAAS,CAAC,YAAM;IACd6B,kBAAkB,CAAC,IAAI,CAAC;IACxBU,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMsD,WAAW,GAAG3F,OAAO,CAAC,YAAM;IAChC,IAAM4F,IAAI,GAAG3F,QAAQ,CAAC4F,OAAO,CAAC/E,QAAQ,CAAC;IACvC,IAAIY,eAAe,IAAI,CAACU,SAAS,EAAE;MACjC,OAAOwD,IAAI;IACb,CAAC,MAAM;MACL,OAAOA,IAAI,CAAChB,MAAM,CAAC,UAACnB,KAAK,EAAEb,KAAK,EAAK;QACnC,OAAOpB,iBAAiB,CAACqD,QAAQ,CAACjC,KAAK,CAAC;MAC1C,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAAC9B,QAAQ,EAAEsB,SAAS,EAAEV,eAAe,EAAEF,iBAAiB,CAAC,CAAC;EAE7D,IAAMsE,iBAAiB,GAAGjG,WAAW,CACnC,UAACgD,EAAE,EAAK;IACNtB,SAAS,CAACsB,EAAE,CAAC;IACb,IAAI5B,kBAAkB,EAAE;MACtBA,kBAAkB,CAAC4B,EAAE,CAAC;IACxB;IACAlB,kBAAkB,CAAC,IAAI,CAAC;EAC1B,CAAC,EACD,CAACV,kBAAkB,CAAC,CACrB;EAED,IAAM8E,WAAW,GAAG/F,OAAO,CAAC,YAAM;IAChC,oBACE,oBAAC,iBAAiB,qBAChB,kCAAOsC,YAAY,CAAChB,MAAM,CAAC,CAAQ,eACnC,oBAAC,YAAY;MAAC,QAAQ,EAAEY,UAAW;MAAC,IAAI,EAAC;IAAc,EAAG,CACxC;EAExB,CAAC,EAAE,CAACZ,MAAM,EAAEY,UAAU,EAAEI,YAAY,CAAC,CAAC;EAEtC,IAAM0D,WAAW,GAAGnG,WAAW,CAAC;IAAA,OAAMsC,aAAa,CAAC,IAAI,CAAC;EAAA,GAAE,EAAE,CAAC;EAC9D,IAAM8D,YAAY,GAAGpG,WAAW,CAAC;IAAA,OAAMsC,aAAa,CAAC,KAAK,CAAC;EAAA,GAAE,EAAE,CAAC;EAEhE,oBACE,oBAAC,SAAS;IACR,SAAS,EAAEhC,UAAU,CAAC,OAAO,EAAEe,SAAS,CAAE;IAC1C,MAAM,EAAEH,SAAU;IAClB,KAAK,EAAEI;EAAK,gBAEZ,oBAAC,aAAa;IAAC,GAAG,EAAE2B;EAAO,GACxBzB,IAAI,KAAK,QAAQ,IAChBsE,WAAW,CAACpD,GAAG,CAAC,UAACkB,KAAgB,EAAEb,KAAa,EAAK;IACnD,IAAMsD,OAAO,GAAGzC,KAAqB;IACrC,oBAAOvD,YAAY,CAACgG,OAAO,EAAE;MAC3B5E,MAAM,EAAEsB,KAAK,KAAKtB,MAAM;MACxBH,IAAI,EAAJA,IAAI;MACJgF,GAAG,EAAE,aAACC,EAAE,EAAK;QACXrD,YAAY,CAACY,OAAO,CAACf,KAAK,CAAC,GAAGwD,EAAE;MAClC,CAAC;MACDnD,OAAO,EAAPA,OAAO;MACP,YAAY,EAAEL,KAAK;MACnB,eAAe,EAAEsD,OAAO,CAACzD,KAAK,CAACa;IACjC,CAAC,CAAC;EACJ,CAAC,CAAC,EACHjC,IAAI,KAAK,QAAQ,IAAIO,WAAW,gBAC/B,oBAAC,qBAAqB;IACpB,GAAG,EAAEoB,WAAY;IACjB,IAAI,EAAC,MAAM;IACX,MAAM,EAAExB,iBAAiB,CAAC6E,OAAO,CAAC/E,MAAM,CAAC,KAAK,CAAC,CAAE;IACjD,IAAI,EAAEH;EAAK,gBAEX,oBAAC,MAAM;IACL,QAAQ,EAAEG,MAAO;IACjB,MAAM,eACJ,oBAAC,qBAAqB;MAAC,KAAK,EAAEH;IAAK,GAChCC,SAAS,CAEb;IACD,oBAAoB;IACpB,QAAQ,EAAE0E,iBAAkB;IAC5B,OAAO,EAAE9D,OAAQ;IACjB,IAAI,EAAC,QAAQ;IACb,IAAI,EAAC,QAAQ;IACb,cAAc;IACd,aAAa;IACb,oBAAoB;IACpB,YAAY,EAAEgE,WAAY;IAC1B,aAAa,EAAEC;EAAa,EAC5B,CACoB,GACtB,IAAI,EACP5E,IAAI,KAAK,UAAU,IAAIS,iBAAiB,gBACvC,oBAAC,qBAAqB;IACpB,IAAI,EAAC,MAAM;IACX,MAAM,EAAEN,iBAAiB,CAAC6E,OAAO,CAAC/E,MAAM,CAAC,KAAK,CAAC,CAAE;IACjD,IAAI,EAAEH;EAAK,gBAEX,oBAAC,MAAM;IACL,QAAQ,EAAEG,MAAO;IACjB,MAAM,EAAEyE,WAAY;IACpB,oBAAoB;IACpB,QAAQ,EAAED,iBAAkB;IAC5B,OAAO,EAAEnD,UAAW;IACpB,IAAI,EAAC,QAAQ;IACb,IAAI,EAAC,QAAQ;IACb,cAAc;IACd,aAAa;IACb,oBAAoB;IACpB,YAAY,EAAEqD,WAAY;IAC1B,aAAa,EAAEC;EAAa,EAC5B,CACoB,GACtB,IAAI,CACM,CACN;AAEhB,CAAC;AAEDpF,GAAG,CAACyF,WAAW,GAAG,KAAK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","names":["React","useMemo","StyledProgressBar","StyledProgressBarProgress","ProgressBar","progress","backgroundColor","progressColor","stroke","width","progressNumber","widthPercent","width_percent","height","stroke_min","displayName"],"sources":["../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import React, { FC, useMemo } from \"react\";\nimport { StyledProgressBar, StyledProgressBarProgress } from \"./Styles\";\n\nexport interface IProgressBarProps {\n /** Progress prop can be number. */\n progress: number;\n /** Custom classname for styling. */\n backgroundColor?: string;\n /** Custom classname for styling. */\n progressColor?: string;\n /** Progress height. */\n stroke?: number;\n /** Progress width in percentage. */\n width?: number;\n}\n\nexport const ProgressBar: FC<IProgressBarProps> = ({\n progress = 0,\n backgroundColor,\n progressColor,\n stroke = 3,\n width = 100,\n}) => {\n const progressNumber = useMemo(() => {\n let width = progress;\n if (progress > 100) {\n width = 100;\n }\n if (progress < 0) {\n width = 0;\n }\n return width;\n }, [progress]);\n\n const widthPercent = useMemo(() => {\n let width_percent = width;\n\n if (width > 100) {\n width_percent = 100;\n }\n\n if (width <= 0) {\n width_percent = 100;\n }\n\n return width_percent;\n }, [width]);\n\n const height = useMemo(() => {\n let stroke_min = stroke;\n\n if (stroke <= 0) {\n stroke_min = 3;\n }\n\n return stroke_min;\n }, [stroke]);\n\n return (\n <StyledProgressBar\n className
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","names":["React","useMemo","StyledProgressBar","StyledProgressBarProgress","ProgressBar","progress","backgroundColor","progressColor","stroke","width","progressNumber","widthPercent","width_percent","height","stroke_min","displayName"],"sources":["../../../../src/components/ProgressBar/ProgressBar.tsx"],"sourcesContent":["import React, { FC, useMemo } from \"react\";\nimport { StyledProgressBar, StyledProgressBarProgress } from \"./Styles\";\n\nexport interface IProgressBarProps {\n /** Progress prop can be number. */\n progress: number;\n /** Custom classname for styling. */\n backgroundColor?: string;\n /** Custom classname for styling. */\n progressColor?: string;\n /** Progress height. */\n stroke?: number;\n /** Progress width in percentage. */\n width?: number;\n}\n\nexport const ProgressBar: FC<IProgressBarProps> = ({\n progress = 0,\n backgroundColor,\n progressColor,\n stroke = 3,\n width = 100,\n}) => {\n const progressNumber = useMemo(() => {\n let width = progress;\n if (progress > 100) {\n width = 100;\n }\n if (progress < 0) {\n width = 0;\n }\n return width;\n }, [progress]);\n\n const widthPercent = useMemo(() => {\n let width_percent = width;\n\n if (width > 100) {\n width_percent = 100;\n }\n\n if (width <= 0) {\n width_percent = 100;\n }\n\n return width_percent;\n }, [width]);\n\n const height = useMemo(() => {\n let stroke_min = stroke;\n\n if (stroke <= 0) {\n stroke_min = 3;\n }\n\n return stroke_min;\n }, [stroke]);\n\n return (\n <StyledProgressBar\n className=\"c-progress-bar\"\n $color={backgroundColor}\n $width={widthPercent}\n >\n <StyledProgressBarProgress\n className=\"c-progress-bar__progress\"\n style={{ width: `${progressNumber}%` }}\n $height={height}\n $color={progressColor}\n />\n </StyledProgressBar>\n );\n};\n\nProgressBar.displayName = \"ProgressBar\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAQC,OAAO,QAAQ,OAAO;AAC1C,SAASC,iBAAiB,EAAEC,yBAAyB,QAAQ,UAAU;AAevE,OAAO,IAAMC,WAAkC,GAAG,SAArCA,WAAkC,OAMzC;EAAA,yBALJC,QAAQ;IAARA,QAAQ,8BAAG,CAAC;IACZC,eAAe,QAAfA,eAAe;IACfC,aAAa,QAAbA,aAAa;IAAA,mBACbC,MAAM;IAANA,MAAM,4BAAG,CAAC;IAAA,kBACVC,KAAK;IAALA,KAAK,2BAAG,GAAG;EAEX,IAAMC,cAAc,GAAGT,OAAO,CAAC,YAAM;IACnC,IAAIQ,KAAK,GAAGJ,QAAQ;IACpB,IAAIA,QAAQ,GAAG,GAAG,EAAE;MAClBI,KAAK,GAAG,GAAG;IACb;IACA,IAAIJ,QAAQ,GAAG,CAAC,EAAE;MAChBI,KAAK,GAAG,CAAC;IACX;IACA,OAAOA,KAAK;EACd,CAAC,EAAE,CAACJ,QAAQ,CAAC,CAAC;EAEd,IAAMM,YAAY,GAAGV,OAAO,CAAC,YAAM;IACjC,IAAIW,aAAa,GAAGH,KAAK;IAEzB,IAAIA,KAAK,GAAG,GAAG,EAAE;MACfG,aAAa,GAAG,GAAG;IACrB;IAEA,IAAIH,KAAK,IAAI,CAAC,EAAE;MACdG,aAAa,GAAG,GAAG;IACrB;IAEA,OAAOA,aAAa;EACtB,CAAC,EAAE,CAACH,KAAK,CAAC,CAAC;EAEX,IAAMI,MAAM,GAAGZ,OAAO,CAAC,YAAM;IAC3B,IAAIa,UAAU,GAAGN,MAAM;IAEvB,IAAIA,MAAM,IAAI,CAAC,EAAE;MACfM,UAAU,GAAG,CAAC;IAChB;IAEA,OAAOA,UAAU;EACnB,CAAC,EAAE,CAACN,MAAM,CAAC,CAAC;EAEZ,oBACE,oBAAC,iBAAiB;IAChB,SAAS,EAAC,gBAAgB;IAC1B,MAAM,EAAEF,eAAgB;IACxB,MAAM,EAAEK;EAAa,gBAErB,oBAAC,yBAAyB;IACxB,SAAS,EAAC,0BAA0B;IACpC,KAAK,EAAE;MAAEF,KAAK,EAAKC,cAAc;IAAI,CAAE;IACvC,OAAO,EAAEG,MAAO;IAChB,MAAM,EAAEN;EAAc,EACtB,CACgB;AAExB,CAAC;AAEDH,WAAW,CAACW,WAAW,GAAG,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.js","names":["React","useRef","useCallback","useEffect","forwardRef","useState","Transition","Window","classnames","useForkRef","StyledAnimatedSpan","StyledCssTransition","StyledSheetIcons","StyledSheetWrapper","StyledSheetWrapperPaper","Overlay","Sheet","ref","children","onClose","controls","open","defaultOpen","animation","position","mode","disableFocusLock","disableScrollLock","disableBackgroundColor","bodyStyle","bodyClassName","disableBackgroundClick","rest","setOpen","exited","setExited","innerRef","handleRef","handleEnter","handleExited","handleClose","handleBackgroundClick","event","preventDefault","length","map","item","index","maxDurationIn","maxDurationOut","control","durationOut","durationIn","state","displayName"],"sources":["../../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n useEffect,\n forwardRef,\n HTMLAttributes,\n useState,\n CSSProperties,\n ReactElement,\n MouseEvent,\n} from \"react\";\n\nimport { Transition } from \"react-transition-group\";\nimport { Window } from \"../Window\";\nimport classnames from \"classnames\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledAnimatedSpan,\n StyledCssTransition,\n StyledSheetIcons,\n StyledSheetWrapper,\n StyledSheetWrapperPaper,\n} from \"./Styles\";\nimport { Overlay } from \"../Overlay\";\n\ninterface ISheet {\n onClose?: () => void;\n controls?: JSX.Element[];\n open?: boolean;\n animation?: \"top\" | \"bottom\" | \"left\" | \"right\";\n position?: \"center\" | \"left\" | \"right\";\n mode?: \"normal\" | \"stretch\";\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n disableBackgroundColor?: boolean;\n bodyStyle?: CSSProperties;\n bodyClassName?: string;\n disableBackgroundClick?: boolean;\n}\n\nexport const Sheet = forwardRef<\n HTMLDivElement,\n ISheet & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n onClose,\n controls = [],\n open: defaultOpen = false,\n animation = \"top\",\n position = \"center\",\n mode = \"normal\",\n disableFocusLock = false,\n disableScrollLock = false,\n disableBackgroundColor = false,\n bodyStyle,\n bodyClassName,\n disableBackgroundClick = false,\n ...rest\n },\n ref\n ) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(true);\n const innerRef = useRef<HTMLDivElement>(null);\n\n const handleRef = useForkRef(innerRef, ref);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleEnter = useCallback(() => {\n setExited(false);\n }, []);\n\n const handleExited = useCallback(() => {\n setExited(true);\n typeof onClose === \"function\" && onClose();\n }, [onClose]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleBackgroundClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (!disableBackgroundClick) {\n event.preventDefault();\n handleClose();\n }\n },\n [disableBackgroundClick, handleClose]\n );\n\n if (!open && exited) {\n return null;\n }\n\n return (\n <Window\n {...rest}\n ref={handleRef}\n onClose={handleClose}\n disableFocusLock={disableFocusLock}\n disableScrollLock={disableScrollLock}\n >\n {open ? (\n <Overlay\n onClick={handleBackgroundClick}\n disableBackgroundColor={disableBackgroundColor}\n />\n ) : null}\n <StyledSheetWrapper\n className={classnames(\"c-sheet__wrapper\", bodyClassName)}\n style={bodyStyle}\n $position={position}\n $mode={mode}\n >\n {controls.length ? (\n <StyledSheetIcons>\n {controls.map((item, index) => {\n const maxDurationIn = 4; // max duration 4 for 400ms, shorten .4s\n const maxDurationOut = 2; // max duration 2 for 200ms, shorten .2s\n const control = index + 1;\n const durationOut =\n controls.length > maxDurationOut\n ? maxDurationOut\n : maxDurationOut - control;\n const durationIn = control >= maxDurationIn ? 1 : control;\n return (\n <Transition\n appear\n in={open}\n timeout={maxDurationIn * 100}\n key={`c-sheet-control-${index}`}\n >\n {(state): ReactElement => (\n <StyledAnimatedSpan\n $state={state}\n $mode={mode}\n $maxDurationIn={maxDurationIn / 10}\n $maxDurationOut={maxDurationOut / 10}\n $durationOut={durationOut / 10}\n $durationIn={durationIn / 10}\n >\n {item}\n </StyledAnimatedSpan>\n )}\n </Transition>\n );\n })}\n </StyledSheetIcons>\n ) : null}\n <StyledCssTransition\n appear\n in={open}\n timeout={400}\n classNames
|
|
1
|
+
{"version":3,"file":"Sheet.js","names":["React","useRef","useCallback","useEffect","forwardRef","useState","Transition","Window","classnames","useForkRef","StyledAnimatedSpan","StyledCssTransition","StyledSheetIcons","StyledSheetWrapper","StyledSheetWrapperPaper","Overlay","Sheet","ref","children","onClose","controls","open","defaultOpen","animation","position","mode","disableFocusLock","disableScrollLock","disableBackgroundColor","bodyStyle","bodyClassName","disableBackgroundClick","rest","setOpen","exited","setExited","innerRef","handleRef","handleEnter","handleExited","handleClose","handleBackgroundClick","event","preventDefault","length","map","item","index","maxDurationIn","maxDurationOut","control","durationOut","durationIn","state","displayName"],"sources":["../../../../src/components/Sheet/Sheet.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n useEffect,\n forwardRef,\n HTMLAttributes,\n useState,\n CSSProperties,\n ReactElement,\n MouseEvent,\n} from \"react\";\n\nimport { Transition } from \"react-transition-group\";\nimport { Window } from \"../Window\";\nimport classnames from \"classnames\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport {\n StyledAnimatedSpan,\n StyledCssTransition,\n StyledSheetIcons,\n StyledSheetWrapper,\n StyledSheetWrapperPaper,\n} from \"./Styles\";\nimport { Overlay } from \"../Overlay\";\n\ninterface ISheet {\n onClose?: () => void;\n controls?: JSX.Element[];\n open?: boolean;\n animation?: \"top\" | \"bottom\" | \"left\" | \"right\";\n position?: \"center\" | \"left\" | \"right\";\n mode?: \"normal\" | \"stretch\";\n disableFocusLock?: boolean;\n disableScrollLock?: boolean;\n disableBackgroundColor?: boolean;\n bodyStyle?: CSSProperties;\n bodyClassName?: string;\n disableBackgroundClick?: boolean;\n}\n\nexport const Sheet = forwardRef<\n HTMLDivElement,\n ISheet & HTMLAttributes<HTMLDivElement>\n>(\n (\n {\n children,\n onClose,\n controls = [],\n open: defaultOpen = false,\n animation = \"top\",\n position = \"center\",\n mode = \"normal\",\n disableFocusLock = false,\n disableScrollLock = false,\n disableBackgroundColor = false,\n bodyStyle,\n bodyClassName,\n disableBackgroundClick = false,\n ...rest\n },\n ref\n ) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(true);\n const innerRef = useRef<HTMLDivElement>(null);\n\n const handleRef = useForkRef(innerRef, ref);\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n const handleEnter = useCallback(() => {\n setExited(false);\n }, []);\n\n const handleExited = useCallback(() => {\n setExited(true);\n typeof onClose === \"function\" && onClose();\n }, [onClose]);\n\n const handleClose = useCallback(() => {\n setOpen(false);\n }, []);\n\n const handleBackgroundClick = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (!disableBackgroundClick) {\n event.preventDefault();\n handleClose();\n }\n },\n [disableBackgroundClick, handleClose]\n );\n\n if (!open && exited) {\n return null;\n }\n\n return (\n <Window\n {...rest}\n ref={handleRef}\n onClose={handleClose}\n disableFocusLock={disableFocusLock}\n disableScrollLock={disableScrollLock}\n >\n {open ? (\n <Overlay\n onClick={handleBackgroundClick}\n disableBackgroundColor={disableBackgroundColor}\n />\n ) : null}\n <StyledSheetWrapper\n className={classnames(\"c-sheet__wrapper\", bodyClassName)}\n style={bodyStyle}\n $position={position}\n $mode={mode}\n >\n {controls.length ? (\n <StyledSheetIcons>\n {controls.map((item, index) => {\n const maxDurationIn = 4; // max duration 4 for 400ms, shorten .4s\n const maxDurationOut = 2; // max duration 2 for 200ms, shorten .2s\n const control = index + 1;\n const durationOut =\n controls.length > maxDurationOut\n ? maxDurationOut\n : maxDurationOut - control;\n const durationIn = control >= maxDurationIn ? 1 : control;\n return (\n <Transition\n appear\n in={open}\n timeout={maxDurationIn * 100}\n key={`c-sheet-control-${index}`}\n >\n {(state): ReactElement => (\n <StyledAnimatedSpan\n $state={state}\n $mode={mode}\n $maxDurationIn={maxDurationIn / 10}\n $maxDurationOut={maxDurationOut / 10}\n $durationOut={durationOut / 10}\n $durationIn={durationIn / 10}\n >\n {item}\n </StyledAnimatedSpan>\n )}\n </Transition>\n );\n })}\n </StyledSheetIcons>\n ) : null}\n <StyledCssTransition\n appear\n in={open}\n timeout={400}\n classNames=\"c-sheet__animation\"\n $direction={animation}\n onEnter={handleEnter}\n onExited={handleExited}\n >\n <StyledSheetWrapperPaper className=\"c-sheet__wrapper__paper\">\n {children}\n </StyledSheetWrapperPaper>\n </StyledCssTransition>\n </StyledSheetWrapper>\n </Window>\n );\n }\n);\n\nSheet.displayName = \"Sheet\";\n"],"mappings":"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"}
|