@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":"Chip.js","names":["Chip","React","forwardRef","ref","leftAdornment","label","onClose","size","color","backgroundColor","closeClassName","variant","typographyProps","rest","showClose","_variant","useMemo","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":["Chip","React","forwardRef","ref","leftAdornment","label","onClose","size","color","backgroundColor","closeClassName","variant","typographyProps","rest","showClose","_variant","useMemo","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;AACA;AAEA;AAIkC;AAAA;AAAA;AAAA;AAAA;AAAA;AAc3B,IAAMA,IAAI,gBAAGC,cAAK,CAACC,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,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC7B,IAAI,OAAOL,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,6BAAC,qBAAa,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,6BAAC,sBAAU;IACT,OAAO,EAAEW,QAAS;IAClB,eAAY;EAAiB,GACzBH,eAAe,GAElBP,KAAK,CACK,EACZS,SAAS,gBACR,6BAAC,mBAAW;IACV,KAAK,EAAEP,IAAK;IACZ,OAAO,EAAED,OAAQ;IACjB,SAAS,EAAEI;EAAe,gBAE1B,6BAAC,qBAAa;IAAC,IAAI,EAAEF,KAAK,GAAGA,KAAK,GAAG;EAAe,EAAG,CAC3C,GACZ,IAAI,CACM;AAEpB,CAAC,CACF;AAAC;AAEFR,IAAI,CAACiB,WAAW,GAAG,MAAM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","handleOnChange","useCallback","e","target","childNode","setChildNode","elementRef","useRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","classNames","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":["ComboBox","options","selected","loading","loadingText","onChange","placeholder","handleEmptyAction","disabled","size","invalid","type","renderChip","forceCloseMenu","renderOption","limitChips","hiddenNumberText","inPortal","inputWrapperClassName","scrollWrapper","prop","selectedName","useMemo","value","map","v","find","q","id","name","useState","setValue","handleOnChange","useCallback","e","target","childNode","setChildNode","elementRef","useRef","handleRef","useForkRef","wrapperRef","chipWrapper","comboBoxRef","open","setOpen","useOnClickOutside","current","contains","handleOnKeyDown","key","stopPropagation","useEffect","focus","blur","emptyAction","handleChange","selectedValue","onOpen","handleRenderOption","option","props","image","color","textColor","handleDeselect","handleMouseDown","preventDefault","handleBlur","renderChipAdornment","index","avatarProps","leftAdornment","undefined","onClose","Array","isArray","includes","newSelected","filter","item","showOnClose","autoSize","length","startAdornment","elements","total","forEach","isGrouped","isOptionGroup","push","groupedOptions","o","_index","hidden","splice","showXIcon","hasSelected","classNames","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":["CounterButton","forwardRef","ref","label","icon","active","counter","tooltipText","onClearAll","className","args","classNames","React","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":["CounterButton","forwardRef","ref","label","icon","active","counter","tooltipText","onClearAll","className","args","classNames","React","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;AACA;AACA;AACA;AACA;AAMkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmBX,IAAMA,aAAa,gBAAG,IAAAC,iBAAU,EACrC,gBAWEC,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,6BAAC,kCAA0B;IAAC,GAAG,EAAER,GAAI;IAAC,SAAS,EAAEO;EAAU,gBACzD,6BAAC,2BAAmB;IAClB,SAAS,EAAE,IAAAE,mBAAU,EAAC,kBAAkB,EAAE;MACxC,4BAA4B,EAAEL;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,iBACHQ,cAAK,CAACC,YAAY,CAACT,IAAI,EAAE;IACvBK,SAAS,EAAE,IAAAE,mBAAU,EAAC,wBAAwB;EAChD,CAAC,CAAC,EACHR,KAAK,iBACJ,6BAAC,gCAAwB;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,6BAAC,kCAA0B;IAAC,SAAS,EAAC;EAA2B,GAC9DA,OAAO,CACmB,GAC3B,IAAI,CACY,EACrBA,OAAO,GAAG,CAAC,gBACV,6BAAC,gBAAO;IACN,KAAK,YAAKC,WAAW,CAAG;IACxB,sBAAsB,EAAC;EAAc,gBAErC,6BAAC,gCAAwB;IACvB,OAAO,EAAC,cAAc;IACtB,SAAS,EAAC,yBAAyB;IACnC,OAAO,EAAEC;EAAW,gBAEpB,6BAAC,mBAAc,OAAG,CACO,CACnB,GACR,IAAI,CACmB;AAEjC,CAAC,CACF;AAAC;AAEFR,aAAa,CAACc,WAAW,GAAG,eAAe"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","names":["DatePicker","className","onChange","onDayClick","selectedDays","disabledDays","selectionMode","month","Date","onMonthChange","dateRequired","firstDayOfWeek","fixedWeeks","defaultModifiers","modifiers","rest","useState","enteredTo","setEnteredTo","enteredFrom","setEnteredFrom","stopScroll","setStopScroll","direction","setDirection","from","to","isPreselected","setIsPreselected","showMonthPicker","setShowMonthPicker","setModifiers","week","useEffect","prev","hovered","handleDayClick","useCallback","day","getMonth","moment","isSame","undefined","startOf","toDate","endOf","isBetween","DateUtils","isDayAfter","isSelectedFirstDay","handleDayMouseEnter","onDayMouseLeave","onWheel","e","getTime","nextMonth","addMonths","previousMonth","deltaY","togglePicker","customNavBarElement","props","handleYearMonthChange","m","text","useMemo","getFullYear","format","handleYearMonthForm","onKeyDownCallback","key","document","addEventListener","removeEventListener","customClassNames","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":["DatePicker","className","onChange","onDayClick","selectedDays","disabledDays","selectionMode","month","Date","onMonthChange","dateRequired","firstDayOfWeek","fixedWeeks","defaultModifiers","modifiers","rest","useState","enteredTo","setEnteredTo","enteredFrom","setEnteredFrom","stopScroll","setStopScroll","direction","setDirection","from","to","isPreselected","setIsPreselected","showMonthPicker","setShowMonthPicker","setModifiers","week","useEffect","prev","hovered","handleDayClick","useCallback","day","getMonth","moment","isSame","undefined","startOf","toDate","endOf","isBetween","DateUtils","isDayAfter","isSelectedFirstDay","handleDayMouseEnter","onDayMouseLeave","onWheel","e","getTime","nextMonth","addMonths","previousMonth","deltaY","togglePicker","customNavBarElement","props","handleYearMonthChange","m","text","useMemo","getFullYear","format","handleYearMonthForm","onKeyDownCallback","key","document","addEventListener","removeEventListener","customClassNames","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":["EntityCard","forwardRef","ref","renderAs","properties","className","renderAsListItem","useCallback","filter","p","showInList","map","name","render","renderAsGridItem","headerSection","cardSection","bodySection","footerSection","renderProperty","classnames","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":["EntityCard","forwardRef","ref","renderAs","properties","className","renderAsListItem","useCallback","filter","p","showInList","map","name","render","renderAsGridItem","headerSection","cardSection","bodySection","footerSection","renderProperty","classnames","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;AAOA;AACA;AAA4C;AAAA;AAAA;AAoBrC,IAAMA,UAAU,gBAAG,IAAAC,iBAAU,EAClC,gBAMEC,GAA2C,EACxC;EAAA,yBALDC,QAAQ;IAARA,QAAQ,8BAAG,WAAW;IACtBC,UAAU,QAAVA,UAAU;IACVC,SAAS,QAATA,SAAS;EAIX,IAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAAC,UAACH,UAA+B,EAAK;IACxE,OAAOA,UAAU,CACdI,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,4BAAqBH,CAAC,CAACG,IAAI;MAAG,GACtDH,CAAC,CAACI,MAAM,EAAE,CACP;IAEV,CAAC,CAAC;EACN,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMC,gBAAgB,GAAG,IAAAP,kBAAW,EAAC,UAACH,UAA+B,EAAK;IACxE,IAAMW,aAAa,GAAGX,UAAU,CAACI,MAAM,CACrC,UAACC,CAAoB;MAAA,OAAKA,CAAC,CAACO,WAAW,KAAK,QAAQ;IAAA,EACrD;IACD,IAAMC,WAAW,GAAGb,UAAU,CAACI,MAAM,CACnC,UAACC,CAAoB;MAAA,OAAKA,CAAC,CAACO,WAAW,KAAK,MAAM;IAAA,EACnD;IACD,IAAME,aAAa,GAAGd,UAAU,CAACI,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,4BAAqBH,CAAC,CAACG,IAAI;MAAG,GACtDH,CAAC,CAACI,MAAM,EAAE,CACP;IAAA,CACP;IACD,oBACE,yEACE;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,6BAAC,wBAAgB;IACf,GAAG,EAAEP,GAAI;IACT,SAAS;IACT,SAAS,EAAE,IAAAkB,mBAAU,EACnB,qBAAqB,EACrB;MACE,WAAW,EAAEjB,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,GAAGW,gBAAgB,CAACV,UAAU,CAAC,GAAG,IAAI,CAC9C;AAEvB,CAAC,CACF;AAAC;AAEFJ,UAAU,CAACqB,WAAW,GAAG,YAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","names":["Header","forwardRef","ref","className","size","children","rest","classNames","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":["Header","forwardRef","ref","className","size","children","rest","classNames","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;AACA;AACA;AAAwC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWjC,IAAMA,MAAM,gBAAG,IAAAC,iBAAU,EAC9B,gBAOEC,GAA2C,EACxC;EAAA,IANDC,SAAS,QAATA,SAAS;IAAA,iBACTC,IAAI;IAAJA,IAAI,0BAAG,OAAO;IACdC,QAAQ,QAARA,QAAQ;IACLC,IAAI;EAIT,oBACE,6BAAC,oBAAY;IACX,IAAI,EAAC,SAAS;IACd,SAAS,EAAE,IAAAC,mBAAU,EAAC,UAAU,EAAEJ,SAAS,CAAE;IAC7C,IAAI,EAAEC,IAAK;IACX,GAAG,EAAEF;EAAI,GACLI,IAAI,GAEPD,QAAQ,CACI;AAEnB,CAAC,CACF;AAAC;AAEFL,MAAM,CAACQ,WAAW,GAAG,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Nav.js","names":["Nav","children","alignment","onSelect","onMoreOptionSelect","className","role","moreLabel","type","useState","active","setActive","visibleTabIndexes","setVisibleTabIndexes","measuringRender","setMeasuringRender","moreVisible","setMoreVisible","renderNavAsSelect","setRenderNavAsSelect","options","setOptions","moreOpened","setMoreOpened","isMounted","setIsMounted","navItemNames","useMemo","map","item","props","name","allOptions","index","id","navRef","useRef","navItemsRefs","moreItemRef","onClick","useCallback","e","target","currentTarget","dataset","disabled","Number","Children","forEach","child","useLayoutEffect","containerWidth","current","offsetWidth","itemsWidth","Object","values","reduce","acc","itemEl","Array","from","keys","moreItemWidth","firstItemWidth","visible","allWidth","liItem","push","filter","includes","useEffect","handleResize","debounce","window","addEventListener","removeEventListener","resizeObserver","ResizeObserver","entries","entry","contentRect","width","observe","setTimeout","unobserve","disconnect","visibleTabs","tabs","toArray","onMoreOptionClick","navAsSelect","setMoreOpen","setMoreClose","classNames","element","cloneElement","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":["Nav","children","alignment","onSelect","onMoreOptionSelect","className","role","moreLabel","type","useState","active","setActive","visibleTabIndexes","setVisibleTabIndexes","measuringRender","setMeasuringRender","moreVisible","setMoreVisible","renderNavAsSelect","setRenderNavAsSelect","options","setOptions","moreOpened","setMoreOpened","isMounted","setIsMounted","navItemNames","useMemo","map","item","props","name","allOptions","index","id","navRef","useRef","navItemsRefs","moreItemRef","onClick","useCallback","e","target","currentTarget","dataset","disabled","Number","Children","forEach","child","useLayoutEffect","containerWidth","current","offsetWidth","itemsWidth","Object","values","reduce","acc","itemEl","Array","from","keys","moreItemWidth","firstItemWidth","visible","allWidth","liItem","push","filter","includes","useEffect","handleResize","debounce","window","addEventListener","removeEventListener","resizeObserver","ResizeObserver","entries","entry","contentRect","width","observe","setTimeout","unobserve","disconnect","visibleTabs","tabs","toArray","onMoreOptionClick","navAsSelect","setMoreOpen","setMoreClose","classNames","element","cloneElement","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","names":["ProgressBar","progress","backgroundColor","progressColor","stroke","width","progressNumber","useMemo","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":["ProgressBar","progress","backgroundColor","progressColor","stroke","width","progressNumber","useMemo","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;AACA;AAAwE;AAAA;AAejE,IAAMA,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,GAAG,IAAAC,cAAO,EAAC,YAAM;IACnC,IAAIF,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,IAAMO,YAAY,GAAG,IAAAD,cAAO,EAAC,YAAM;IACjC,IAAIE,aAAa,GAAGJ,KAAK;IAEzB,IAAIA,KAAK,GAAG,GAAG,EAAE;MACfI,aAAa,GAAG,GAAG;IACrB;IAEA,IAAIJ,KAAK,IAAI,CAAC,EAAE;MACdI,aAAa,GAAG,GAAG;IACrB;IAEA,OAAOA,aAAa;EACtB,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAEX,IAAMK,MAAM,GAAG,IAAAH,cAAO,EAAC,YAAM;IAC3B,IAAII,UAAU,GAAGP,MAAM;IAEvB,IAAIA,MAAM,IAAI,CAAC,EAAE;MACfO,UAAU,GAAG,CAAC;IAChB;IAEA,OAAOA,UAAU;EACnB,CAAC,EAAE,CAACP,MAAM,CAAC,CAAC;EAEZ,oBACE,6BAAC,yBAAiB;IAChB,SAAS,EAAC,gBAAgB;IAC1B,MAAM,EAAEF,eAAgB;IACxB,MAAM,EAAEM;EAAa,gBAErB,6BAAC,iCAAyB;IACxB,SAAS,EAAC,0BAA0B;IACpC,KAAK,EAAE;MAAEH,KAAK,YAAKC,cAAc;IAAI,CAAE;IACvC,OAAO,EAAEI,MAAO;IAChB,MAAM,EAAEP;EAAc,EACtB,CACgB;AAExB,CAAC;AAAC;AAEFH,WAAW,CAACY,WAAW,GAAG,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheet.js","names":["Sheet","forwardRef","ref","children","onClose","controls","open","defaultOpen","animation","position","mode","disableFocusLock","disableScrollLock","disableBackgroundColor","bodyStyle","bodyClassName","disableBackgroundClick","rest","useState","setOpen","exited","setExited","innerRef","useRef","handleRef","useForkRef","useEffect","handleEnter","useCallback","handleExited","handleClose","handleBackgroundClick","event","preventDefault","classnames","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":["Sheet","forwardRef","ref","children","onClose","controls","open","defaultOpen","animation","position","mode","disableFocusLock","disableScrollLock","disableBackgroundColor","bodyStyle","bodyClassName","disableBackgroundClick","rest","useState","setOpen","exited","setExited","innerRef","useRef","handleRef","useForkRef","useEffect","handleEnter","useCallback","handleExited","handleClose","handleBackgroundClick","event","preventDefault","classnames","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":";;;;;;;AAAA;AAYA;AACA;AACA;AACA;AACA;AAOA;AAAqC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiB9B,IAAMA,KAAK,gBAAG,IAAAC,iBAAU,EAI7B,gBAiBEC,GAAG,EACA;EAAA,IAhBDC,QAAQ,QAARA,QAAQ;IACRC,OAAO,QAAPA,OAAO;IAAA,qBACPC,QAAQ;IAARA,QAAQ,8BAAG,EAAE;IAAA,iBACbC,IAAI;IAAEC,WAAW,0BAAG,KAAK;IAAA,sBACzBC,SAAS;IAATA,SAAS,+BAAG,KAAK;IAAA,qBACjBC,QAAQ;IAARA,QAAQ,8BAAG,QAAQ;IAAA,iBACnBC,IAAI;IAAJA,IAAI,0BAAG,QAAQ;IAAA,6BACfC,gBAAgB;IAAhBA,gBAAgB,sCAAG,KAAK;IAAA,6BACxBC,iBAAiB;IAAjBA,iBAAiB,sCAAG,KAAK;IAAA,6BACzBC,sBAAsB;IAAtBA,sBAAsB,sCAAG,KAAK;IAC9BC,SAAS,QAATA,SAAS;IACTC,aAAa,QAAbA,aAAa;IAAA,8BACbC,sBAAsB;IAAtBA,sBAAsB,uCAAG,KAAK;IAC3BC,IAAI;EAIT,gBAAwB,IAAAC,eAAQ,EAACX,WAAW,CAAC;IAAA;IAAtCD,IAAI;IAAEa,OAAO;EACpB,iBAA4B,IAAAD,eAAQ,EAAC,IAAI,CAAC;IAAA;IAAnCE,MAAM;IAAEC,SAAS;EACxB,IAAMC,QAAQ,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAE7C,IAAMC,SAAS,GAAG,IAAAC,mBAAU,EAACH,QAAQ,EAAEpB,GAAG,CAAC;EAE3C,IAAAwB,gBAAS,EAAC,YAAM;IACdP,OAAO,CAACZ,WAAW,CAAC;EACtB,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;EAEjB,IAAMoB,WAAW,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACpCP,SAAS,CAAC,KAAK,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMQ,YAAY,GAAG,IAAAD,kBAAW,EAAC,YAAM;IACrCP,SAAS,CAAC,IAAI,CAAC;IACf,OAAOjB,OAAO,KAAK,UAAU,IAAIA,OAAO,EAAE;EAC5C,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,IAAM0B,WAAW,GAAG,IAAAF,kBAAW,EAAC,YAAM;IACpCT,OAAO,CAAC,KAAK,CAAC;EAChB,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMY,qBAAqB,GAAG,IAAAH,kBAAW,EACvC,UAACI,KAAiC,EAAK;IACrC,IAAI,CAAChB,sBAAsB,EAAE;MAC3BgB,KAAK,CAACC,cAAc,EAAE;MACtBH,WAAW,EAAE;IACf;EACF,CAAC,EACD,CAACd,sBAAsB,EAAEc,WAAW,CAAC,CACtC;EAED,IAAI,CAACxB,IAAI,IAAIc,MAAM,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,oBACE,6BAAC,cAAM,eACDH,IAAI;IACR,GAAG,EAAEO,SAAU;IACf,OAAO,EAAEM,WAAY;IACrB,gBAAgB,EAAEnB,gBAAiB;IACnC,iBAAiB,EAAEC;EAAkB,IAEpCN,IAAI,gBACH,6BAAC,gBAAO;IACN,OAAO,EAAEyB,qBAAsB;IAC/B,sBAAsB,EAAElB;EAAuB,EAC/C,GACA,IAAI,eACR,6BAAC,0BAAkB;IACjB,SAAS,EAAE,IAAAqB,mBAAU,EAAC,kBAAkB,EAAEnB,aAAa,CAAE;IACzD,KAAK,EAAED,SAAU;IACjB,SAAS,EAAEL,QAAS;IACpB,KAAK,EAAEC;EAAK,GAEXL,QAAQ,CAAC8B,MAAM,gBACd,6BAAC,wBAAgB,QACd9B,QAAQ,CAAC+B,GAAG,CAAC,UAACC,IAAI,EAAEC,KAAK,EAAK;IAC7B,IAAMC,aAAa,GAAG,CAAC,CAAC,CAAC;IACzB,IAAMC,cAAc,GAAG,CAAC,CAAC,CAAC;IAC1B,IAAMC,OAAO,GAAGH,KAAK,GAAG,CAAC;IACzB,IAAMI,WAAW,GACfrC,QAAQ,CAAC8B,MAAM,GAAGK,cAAc,GAC5BA,cAAc,GACdA,cAAc,GAAGC,OAAO;IAC9B,IAAME,UAAU,GAAGF,OAAO,IAAIF,aAAa,GAAG,CAAC,GAAGE,OAAO;IACzD,oBACE,6BAAC,gCAAU;MACT,MAAM;MACN,EAAE,EAAEnC,IAAK;MACT,OAAO,EAAEiC,aAAa,GAAG,GAAI;MAC7B,GAAG,4BAAqBD,KAAK;IAAG,GAE/B,UAACM,KAAK;MAAA,oBACL,6BAAC,0BAAkB;QACjB,MAAM,EAAEA,KAAM;QACd,KAAK,EAAElC,IAAK;QACZ,cAAc,EAAE6B,aAAa,GAAG,EAAG;QACnC,eAAe,EAAEC,cAAc,GAAG,EAAG;QACrC,YAAY,EAAEE,WAAW,GAAG,EAAG;QAC/B,WAAW,EAAEC,UAAU,GAAG;MAAG,GAE5BN,IAAI,CACc;IAAA,CACtB,CACU;EAEjB,CAAC,CAAC,CACe,GACjB,IAAI,eACR,6BAAC,2BAAmB;IAClB,MAAM;IACN,EAAE,EAAE/B,IAAK;IACT,OAAO,EAAE,GAAI;IACb,UAAU,EAAC,oBAAoB;IAC/B,UAAU,EAAEE,SAAU;IACtB,OAAO,EAAEmB,WAAY;IACrB,QAAQ,EAAEE;EAAa,gBAEvB,6BAAC,+BAAuB;IAAC,SAAS,EAAC;EAAyB,GACzD1B,QAAQ,CACe,CACN,CACH,CACd;AAEb,CAAC,CACF;AAAC;AAEFH,KAAK,CAAC6C,WAAW,GAAG,OAAO"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Signifier.js","names":["signifierTypes","Signifier","Component","type","value","className","tooltipText","tooltipClassName","indexOf","displayName","console","warn","useState","direction","setDirection","setPrevValue","label","useMemo","max","newValue","Math","floor","useEffect","v","renderSignifier","classnames","includes"],"sources":["../../../../src/components/Signifier/Signifier.tsx"],"sourcesContent":["import React, { FC, useMemo, ElementType, useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\nimport { SwitchTransition } from \"react-transition-group\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Body1, Caption1 } from \"../Typography\";\nimport {\n StyledIcon,\n StyledSignifier,\n StyledSignifierTransition,\n} from \"./Styles\";\n\ninterface ISignifierProps {\n /** One of icon types */\n type: ElementType;\n /** Number that represent total value */\n value?: number;\n /** Value that represent class names */\n className?: string;\n /** The text that will be displayed on hover in tooltip */\n tooltipText?: string;\n /** ClassName for tooltip if there is one */\n tooltipClassName?: string;\n}\n\nexport const signifierTypes = [\n \"EyeIcon\",\n \"EyeSmallIcon\",\n \"PencilIcon\",\n \"PencilSmallIcon\",\n \"EyeOffIcon\",\n \"EyeOffSmallIcon\",\n \"ChecklistIcon\",\n \"ChecklistSmallIcon\",\n \"WarningTriangleIcon\",\n \"WarningTriangleSmallIcon\",\n \"DependencyIcon\",\n \"DependencySmallIcon\",\n \"MessageIcon\",\n \"MessageSmallIcon\",\n \"ClockStopwatchIcon\",\n \"ClockStopwatchSmallIcon\",\n \"ClockIcon\",\n \"ClockSmallIcon\",\n \"DollarOffIcon\",\n \"DollarOffSmallIcon\",\n \"DollarIcon\",\n \"DollarSmallIcon\",\n \"DollarCheckmarkIcon\",\n \"DollarCheckmarkSmallIcon\",\n \"DollarClockIcon\",\n \"DollarClockSmallIcon\",\n \"BellOffIcon\",\n \"BellOffSmallIcon\",\n \"LockIcon\",\n \"LockSmallIcon\",\n \"RecurringCheckmarkIcon\",\n \"RecurringCheckmarkSmallIcon\",\n];\n\nexport const Signifier: FC<ISignifierProps> = ({\n type: Component,\n value = null,\n className,\n tooltipText,\n tooltipClassName,\n}) => {\n if (\n signifierTypes.indexOf(\n (Component as { displayName: string }).displayName\n ) === -1\n ) {\n console.warn(\"You are using unsupported Signifier icon\");\n }\n\n const [direction, setDirection] = useState(\"c-signifier--top\");\n const [, setPrevValue] = useState(value);\n\n const label: string | null = useMemo(() => {\n if (!value || value < 1) return null;\n\n const max = 1_000_000_000;\n let newValue = value;\n\n if (newValue > max) {\n newValue = max;\n }\n\n if (newValue === max) {\n return `${Math.floor(newValue / 1_000_000_000)}B+`;\n } else if (newValue > 999_999) {\n return `${Math.floor(newValue / 1_000_000)}M`;\n } else if (newValue > 999) {\n return `${Math.floor(newValue / 1000)}k`;\n }\n\n return `${newValue}`;\n }, [value]);\n\n useEffect(() => {\n value &&\n setPrevValue((v) => {\n v &&\n setDirection(\n v - value > 0 ? \"c-signifier--top\" : \"c-signifier--bottom\"\n );\n return value;\n });\n }, [value]);\n\n const renderSignifier = useMemo(\n () => (\n <StyledSignifier\n className={classnames(\"c-signifier\", className)}\n $direction={direction}\n >\n <StyledIcon as={Component} />\n {value !== null && (\n <SwitchTransition mode
|
|
1
|
+
{"version":3,"file":"Signifier.js","names":["signifierTypes","Signifier","Component","type","value","className","tooltipText","tooltipClassName","indexOf","displayName","console","warn","useState","direction","setDirection","setPrevValue","label","useMemo","max","newValue","Math","floor","useEffect","v","renderSignifier","classnames","includes"],"sources":["../../../../src/components/Signifier/Signifier.tsx"],"sourcesContent":["import React, { FC, useMemo, ElementType, useState, useEffect } from \"react\";\nimport classnames from \"classnames\";\nimport { SwitchTransition } from \"react-transition-group\";\nimport { Tooltip } from \"../Tooltip\";\nimport { Body1, Caption1 } from \"../Typography\";\nimport {\n StyledIcon,\n StyledSignifier,\n StyledSignifierTransition,\n} from \"./Styles\";\n\ninterface ISignifierProps {\n /** One of icon types */\n type: ElementType;\n /** Number that represent total value */\n value?: number;\n /** Value that represent class names */\n className?: string;\n /** The text that will be displayed on hover in tooltip */\n tooltipText?: string;\n /** ClassName for tooltip if there is one */\n tooltipClassName?: string;\n}\n\nexport const signifierTypes = [\n \"EyeIcon\",\n \"EyeSmallIcon\",\n \"PencilIcon\",\n \"PencilSmallIcon\",\n \"EyeOffIcon\",\n \"EyeOffSmallIcon\",\n \"ChecklistIcon\",\n \"ChecklistSmallIcon\",\n \"WarningTriangleIcon\",\n \"WarningTriangleSmallIcon\",\n \"DependencyIcon\",\n \"DependencySmallIcon\",\n \"MessageIcon\",\n \"MessageSmallIcon\",\n \"ClockStopwatchIcon\",\n \"ClockStopwatchSmallIcon\",\n \"ClockIcon\",\n \"ClockSmallIcon\",\n \"DollarOffIcon\",\n \"DollarOffSmallIcon\",\n \"DollarIcon\",\n \"DollarSmallIcon\",\n \"DollarCheckmarkIcon\",\n \"DollarCheckmarkSmallIcon\",\n \"DollarClockIcon\",\n \"DollarClockSmallIcon\",\n \"BellOffIcon\",\n \"BellOffSmallIcon\",\n \"LockIcon\",\n \"LockSmallIcon\",\n \"RecurringCheckmarkIcon\",\n \"RecurringCheckmarkSmallIcon\",\n];\n\nexport const Signifier: FC<ISignifierProps> = ({\n type: Component,\n value = null,\n className,\n tooltipText,\n tooltipClassName,\n}) => {\n if (\n signifierTypes.indexOf(\n (Component as { displayName: string }).displayName\n ) === -1\n ) {\n console.warn(\"You are using unsupported Signifier icon\");\n }\n\n const [direction, setDirection] = useState(\"c-signifier--top\");\n const [, setPrevValue] = useState(value);\n\n const label: string | null = useMemo(() => {\n if (!value || value < 1) return null;\n\n const max = 1_000_000_000;\n let newValue = value;\n\n if (newValue > max) {\n newValue = max;\n }\n\n if (newValue === max) {\n return `${Math.floor(newValue / 1_000_000_000)}B+`;\n } else if (newValue > 999_999) {\n return `${Math.floor(newValue / 1_000_000)}M`;\n } else if (newValue > 999) {\n return `${Math.floor(newValue / 1000)}k`;\n }\n\n return `${newValue}`;\n }, [value]);\n\n useEffect(() => {\n value &&\n setPrevValue((v) => {\n v &&\n setDirection(\n v - value > 0 ? \"c-signifier--top\" : \"c-signifier--bottom\"\n );\n return value;\n });\n }, [value]);\n\n const renderSignifier = useMemo(\n () => (\n <StyledSignifier\n className={classnames(\"c-signifier\", className)}\n $direction={direction}\n >\n <StyledIcon as={Component} />\n {value !== null && (\n <SwitchTransition mode=\"out-in\">\n <StyledSignifierTransition\n key={label}\n timeout={300}\n classNames=\"c-signifier--animate\"\n >\n {(Component as { displayName: string }).displayName.includes(\n \"SmallIcon\"\n ) ? (\n <Caption1 color=\"secondary\">{label}</Caption1>\n ) : (\n <Body1 color=\"secondary\">{label}</Body1>\n )}\n </StyledSignifierTransition>\n </SwitchTransition>\n )}\n </StyledSignifier>\n ),\n [className, direction, Component, value, label]\n );\n\n return (\n <Tooltip\n title={tooltipText ?? \"\"}\n disable={!tooltipText}\n popperTooltipClassName={tooltipClassName}\n >\n {renderSignifier}\n </Tooltip>\n );\n};\n\nSignifier.displayName = \"Signifier\";\n"],"mappings":"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"}
|