@giro-ds/react 8.0.0 → 9.0.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/Button.tsx","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzName/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzOffset/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/mini.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/index.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/en-US.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/classes/DateLib.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/pt-BR.js","../src/components/Calendar/Calendar.tsx","../src/components/Callout/Callout.tsx","../src/shared/icons/CheckSmall.tsx","../src/shared/icons/CheckHalf.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chips/Chips.tsx","../src/components/Container/Container.tsx","../src/components/Popover/Popover.tsx","../src/components/TextField/utils/validation.ts","../src/shared/Label/index.tsx","../src/components/TextField/TextField.tsx","../src/components/DatePicker/Utils/DateUtils.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Search/Search.tsx","../src/components/Filter/Filter.tsx","../src/components/Radio/Radio.tsx","../src/components/ListItem/ListItem.tsx","../src/components/Menu/components/MenuItem.tsx","../src/components/Menu/hooks/useMenuLogic.ts","../src/hooks/NormalizeText.tsx","../src/components/Menu/hooks/useSearchLogic.tsx","../src/components/Menu/Menu.tsx","../src/components/Modal/Modal.tsx","../src/components/Quantity/Quantity.tsx","../src/components/Select/components/CheckboxSelectItem.tsx","../src/components/Select/components/ExpandableSelectItem.tsx","../src/components/Select/components/SelectItem.tsx","../src/components/Select/hooks/useSelectLogic.ts","../src/components/Select/Select.tsx","../src/components/Table/EmptyRows150Color.tsx","../../../node_modules/.pnpm/react-content-loader@7.1.1_react@18.3.1/node_modules/react-content-loader/dist/react-content-loader.es.js","../src/components/Table/LoaderList.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableHeader.tsx","../src/components/Table/TablePagination.tsx","../src/components/TableV2/components/EmptyState.tsx","../src/components/TableV2/Table.tsx","../src/components/TextArea/TextArea.tsx","../src/contexts/ToastContext.ts","../src/hooks/useToast.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/components/ToastProvider.tsx","../src/components/Toast/components/ToastContainer.tsx","../src/components/Switch/Switch.tsx","../src/components/VerificationCode/VerificationCode.tsx","../src/hooks/ApiSimulation.tsx","../src/hooks/InfiniteScroll.tsx"],"sourcesContent":["import clsx from 'clsx';\r\nimport { Avatar as AvatarRadix } from \"radix-ui\";\r\nimport React from 'react';\r\n\r\nimport styles from './Avatar.module.scss';\r\n\r\n\r\nimport type { AvatarProps } from './Avatar.types';\r\n\r\nconst Avatar: React.FC<AvatarProps> = ({\r\n icon,\r\n size = 'lg',\r\n src,\r\n className,\r\n initialLetters,\r\n ...rest\r\n}) => {\r\n const AvatarClass = clsx(\r\n styles.AvatarRoot,\r\n {\r\n [styles['AvatarRoot--lg']]: size === 'lg',\r\n [styles['AvatarRoot--sm']]: size === 'sm',\r\n },\r\n className\r\n );\r\n\r\n return (\r\n <AvatarRadix.Root className={AvatarClass} {...rest}>\r\n {src && (\r\n <AvatarRadix.Image\r\n className={styles.AvatarImage}\r\n src={src}\r\n alt=\"Avatar\"\r\n />\r\n )}\r\n <AvatarRadix.Fallback className={styles.AvatarFallback}>\r\n {icon || initialLetters}\r\n </AvatarRadix.Fallback>\r\n </AvatarRadix.Root>\r\n );\r\n};\r\n\r\nexport default Avatar;\r\n","import clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Badge.module.scss';\r\n\r\nimport type { BadgeProps } from './Badge.types';\r\n\r\nconst getDisplayValue = (value: BadgeProps['badgeValue']): string => {\r\n if (value === null || value === undefined) return '';\r\n if (typeof value === 'string') {\r\n const parsed = Number(value);\r\n if (isFinite(parsed) && parsed > 0 && String(parsed) === value) {\r\n return parsed > 99 ? '99+' : value;\r\n }\r\n return value;\r\n }\r\n if (!isFinite(value) || value <= 0) return '';\r\n return value > 99 ? '99+' : String(value);\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = ({\r\n children,\r\n badgeValue = null,\r\n className,\r\n id,\r\n filterVariant = false,\r\n 'aria-label': ariaLabel,\r\n ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n const displayValue = getDisplayValue(badgeValue);\r\n const isEmpty = displayValue === '';\r\n\r\n if (children) {\r\n return (\r\n <div className={styles.badgeContainer} {...rest}>\r\n <div data-testid=\"badge-content\">{children}</div>\r\n <div\r\n id={componentId}\r\n className={clsx(styles.badge, {\r\n [styles['badge__empty']]: isEmpty,\r\n [styles['badge__flex']]: displayValue.length >= 2,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && <span aria-hidden={!!ariaLabel}>{displayValue}</span>}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={styles.badgeContainer}>\r\n <div\r\n className={clsx(styles['badge__status'], {\r\n [styles['badge__status__empty']]: isEmpty,\r\n [styles['badge__status__flex']]: displayValue.length >= 2,\r\n [styles['badge__status__filterBadge']]: filterVariant,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && (\r\n <span aria-hidden={!!ariaLabel}>{displayValue}</span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Badge;","import { Tooltip as TooltipRadix} from \"radix-ui\";\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Tooltip.module.scss';\r\nimport { TooltipProps } from './Tooltip.types';\r\n\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({\r\n\tchildren,\r\n\ttext,\r\n\tside = 'bottom',\r\n\talign = 'start',\r\n\tmaxWidth,\r\n\tsideOffset = 10,\r\n\tclassName,\r\n\t...rest\r\n}) => {\r\n\treturn (\r\n\t\t<TooltipRadix.Provider>\r\n\t\t\t<TooltipRadix.Root>\r\n\t\t\t\t<TooltipRadix.Trigger asChild>\r\n\t\t\t\t\t<span className={styles.triggerWrapper}>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</TooltipRadix.Trigger>\r\n\t\t\t\t<TooltipRadix.Portal>\r\n\t\t\t\t\t<TooltipRadix.Content\r\n\t\t\t\t\tclassName={clsx(styles.tooltipContent, className)}\r\n\t\t\t\t\t\tside={side}\r\n\t\t\t\t\t\talign={align}\r\n\t\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\t\tstyle={{ maxWidth: maxWidth ? `${maxWidth}px` : 'auto' }}\r\n\t\t\t\t\t\t{...rest}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t</TooltipRadix.Content>\r\n\t\t\t\t</TooltipRadix.Portal>\r\n\t\t\t</TooltipRadix.Root>\r\n\t\t</TooltipRadix.Provider>\r\n\t);\r\n};\r\n\r\nexport default Tooltip\r\n\r\n\r\n","import { SpinnerIos16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId, useMemo } from 'react';\r\n\r\nimport Tooltip from '../Tooltip';\r\nimport styles from './Button.module.scss';\r\n\r\nimport type { ButtonProps } from './Button.types';\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonProps>(({\r\n as,\r\n children,\r\n variant = 'filled',\r\n iconPosition = 'left',\r\n href,\r\n to,\r\n external = false,\r\n target,\r\n rel,\r\n disabled = false,\r\n onClick,\r\n size = 'lg',\r\n className,\r\n type = 'button',\r\n id,\r\n icon,\r\n fullWidth = false,\r\n ariaLabel,\r\n iconOnly = false,\r\n loading = false,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n ...rest\r\n}, ref) => {\r\n\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n const getComponent = (): React.ElementType => {\r\n if (as) return as;\r\n\r\n if (href) return 'a';\r\n if (to) {\r\n if (process.env.NODE_ENV !== 'production' && !as) {\r\n console.warn(\r\n '[Button] A prop `to` foi usada sem `as`. ' +\r\n 'Para navegação via roteador (React Router, Next.js, etc.), passe `as={Link}`. ' +\r\n 'Por ora, `to` será tratado como `href` em um <a> nativo.'\r\n );\r\n }\r\n return 'a';\r\n }\r\n return 'button';\r\n };\r\n\r\n const Component = getComponent();\r\n\r\n const hasContent = useMemo(() => {\r\n return children && React.Children.count(children) > 0;\r\n }, [children]);\r\n\r\n if (process.env.NODE_ENV !== 'production' && iconOnly && !icon) {\r\n console.error(\r\n '[Button] `iconOnly={true}` foi usado sem a prop `icon`. ' +\r\n 'Forneça um ícone via `icon={<MeuIcone />}`.'\r\n );\r\n }\r\n const resolvedIcon = icon;\r\n\r\n const buttonClasses = clsx(\r\n styles.button,\r\n styles[`button-${variant}`],\r\n styles[`button-${size}`],\r\n {\r\n [styles['disabled']]: disabled,\r\n [styles['buttonLoading']]: loading,\r\n [styles['buttonWithIcon']]: resolvedIcon && !iconOnly,\r\n [styles[`buttonIconPosition-${iconPosition}`]]: resolvedIcon && !iconOnly,\r\n [styles['buttonNoContent']]: resolvedIcon && !hasContent && !iconOnly,\r\n [styles['buttonFullWidth']]: fullWidth,\r\n [styles['buttonIconOnly']]: iconOnly,\r\n },\r\n className\r\n );\r\n\r\n const getAriaLabel = () => {\r\n if (ariaLabel) return ariaLabel;\r\n if (iconOnly) {\r\n if (tooltipText) return tooltipText;\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n '[Button] Botões icon-only precisam de uma prop `ariaLabel` descritiva. ' +\r\n 'O fallback genérico foi removido pois não comunica intenção. ' +\r\n 'Forneça `ariaLabel` ou `tooltipText` para nomear o botão.'\r\n );\r\n }\r\n return undefined;\r\n }\r\n return undefined;\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n if (disabled || loading) {\r\n e.preventDefault();\r\n return;\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n const renderContent = () => {\r\n if (iconOnly && !loading) {\r\n return (\r\n <span className={styles.buttonIconOnly} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n );\r\n }\r\n if (loading) {\r\n return (\r\n <>\r\n {!iconOnly && (\r\n <span className={styles.buttonContentHidden} aria-hidden=\"true\">\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft}>{resolvedIcon}</span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight}>{resolvedIcon}</span>\r\n )}\r\n </span>\r\n )}\r\n <span className={styles.buttonLoadingSpinner} aria-hidden=\"true\">\r\n <SpinnerIos16Regular aria-hidden=\"true\" />\r\n </span>\r\n </>\r\n );\r\n }\r\n return (\r\n <>\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n const baseProps = {\r\n ref,\r\n id: componentId,\r\n className: buttonClasses,\r\n 'aria-label': getAriaLabel(),\r\n 'aria-disabled': disabled,\r\n 'aria-busy': loading || undefined,\r\n tabIndex: disabled || loading ? -1 : 0,\r\n onClick: handleClick,\r\n ...rest,\r\n };\r\n\r\n const getNavigationProps = () => {\r\n if (href) {\r\n if (disabled || loading) {\r\n return { role: 'link' };\r\n }\r\n return {\r\n href,\r\n target: external || target === '_blank' ? '_blank' : target,\r\n rel: external || target === '_blank' ? 'noopener noreferrer' : rel,\r\n };\r\n }\r\n\r\n if (to) {\r\n if (Component !== 'a') {\r\n return {\r\n to: disabled ? undefined : to,\r\n };\r\n }\r\n return {\r\n href: disabled ? undefined : to,\r\n };\r\n }\r\n if (Component === 'button') {\r\n return {\r\n type,\r\n disabled,\r\n };\r\n }\r\n\r\n return {};\r\n };\r\n\r\n if (iconOnly && tooltipText && !loading) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return (\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n );\r\n});\r\n\r\nButton.displayName = 'Button';\r\nexport default Button;","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","/**\n * Time zone name format.\n */\n\n/**\n * The function returns the time zone name for the given date in the specified\n * time zone.\n *\n * It uses the `Intl.DateTimeFormat` API and by default outputs the time zone\n * name in a long format, e.g. \"Pacific Standard Time\" or\n * \"Singapore Standard Time\".\n *\n * It is possible to specify the format as the third argument using one of the following options\n *\n * - \"short\": e.g. \"EDT\" or \"GMT+8\".\n * - \"long\": e.g. \"Eastern Daylight Time\".\n * - \"shortGeneric\": e.g. \"ET\" or \"Singapore Time\".\n * - \"longGeneric\": e.g. \"Eastern Time\" or \"Singapore Standard Time\".\n *\n * These options correspond to TR35 tokens `z..zzz`, `zzzz`, `v`, and `vvvv` respectively: https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date object to get the time zone name for\n * @param format - Optional format of the time zone name. Defaults to \"long\". Can be \"short\", \"long\", \"shortGeneric\", or \"longGeneric\".\n *\n * @returns Time zone name (e.g. \"Singapore Standard Time\")\n */\nexport function tzName(timeZone, date, format = \"long\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n // Enforces engine to render the time. Without the option JavaScriptCore omits it.\n hour: \"numeric\",\n timeZone: timeZone,\n timeZoneName: format\n }).format(date).split(/\\s/g) // Format.JS uses non-breaking spaces\n .slice(2) // Skip the hour and AM/PM parts\n .join(\" \");\n}","const offsetFormatCache = {};\nconst offsetCache = {};\n\n/**\n * The function extracts UTC offset in minutes from the given date in specified\n * time zone.\n *\n * Unlike `Date.prototype.getTimezoneOffset`, this function returns the value\n * mirrored to the sign of the offset in the time zone. For Asia/Singapore\n * (UTC+8), `tzOffset` returns 480, while `getTimezoneOffset` returns -480.\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date to check the offset for\n *\n * @returns UTC offset in minutes\n */\nexport function tzOffset(timeZone, date) {\n try {\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n const offsetStr = format(date).split(\"GMT\")[1];\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support ±HH:MM/±HHMM/±HH\n // See: https://github.com/nodejs/node/issues/53419\n if (timeZone in offsetCache) return offsetCache[timeZone];\n const captures = timeZone?.match(offsetRe);\n if (captures) return calcOffset(timeZone, captures.slice(1));\n return NaN;\n }\n}\nconst offsetRe = /([+-]\\d\\d):?(\\d\\d)?/;\nfunction calcOffset(cacheStr, values) {\n const hours = +(values[0] || 0);\n const minutes = +(values[1] || 0);\n // Convert seconds to minutes by dividing by 60 to keep the function return in minutes.\n const seconds = +(values[2] || 0) / 60;\n return offsetCache[cacheStr] = hours * 60 + minutes > 0 ? hours * 60 + minutes + seconds : hours * 60 - minutes - seconds;\n}","import { tzOffset } from \"../tzOffset/index.js\";\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n this.setTime(+args[0]);\n } else {\n this.setTime(+new Date(...args));\n adjustToSystemTZ(this, NaN);\n syncToInternal(this);\n }\n }\n }\n static tz(tz, ...args) {\n return args.length ? new TZDateMini(...args, tz) : new TZDateMini(Date.now(), tz);\n }\n\n //#endregion\n\n //#region time zone\n\n withTimeZone(timeZone) {\n return new TZDateMini(+this, timeZone);\n }\n getTimezoneOffset() {\n const offset = -tzOffset(this.timeZone, this);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(time) {\n Date.prototype.setTime.apply(this, arguments);\n syncToInternal(this);\n return +this;\n }\n\n //#endregion\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDateMini(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}\n\n// Assign getters and setters\nconst re = /^(get|set)(?!UTC)/;\nObject.getOwnPropertyNames(Date.prototype).forEach(method => {\n if (!re.test(method)) return;\n const utcMethod = method.replace(re, \"$1UTC\");\n // Filter out methods without UTC counterparts\n if (!TZDateMini.prototype[utcMethod]) return;\n if (method.startsWith(\"get\")) {\n // Delegate to internal date's UTC method\n TZDateMini.prototype[method] = function () {\n return this.internal[utcMethod]();\n };\n } else {\n // Assign regular setter\n TZDateMini.prototype[method] = function () {\n Date.prototype[utcMethod].apply(this.internal, arguments);\n syncFromInternal(this);\n return +this;\n };\n\n // Assign UTC setter\n TZDateMini.prototype[utcMethod] = function () {\n Date.prototype[utcMethod].apply(this, arguments);\n syncToInternal(this);\n return +this;\n };\n }\n});\n\n/**\n * Function syncs time to internal date, applying the time zone offset.\n *\n * @param {Date} date - Date to sync\n */\nfunction syncToInternal(date) {\n date.internal.setTime(+date);\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * Function syncs the internal date UTC values to the date. It allows to get\n * accurate timestamp value.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // First we transpose the internal values\n Date.prototype.setFullYear.call(date, date.internal.getUTCFullYear(), date.internal.getUTCMonth(), date.internal.getUTCDate());\n Date.prototype.setHours.call(date, date.internal.getUTCHours(), date.internal.getUTCMinutes(), date.internal.getUTCSeconds(), date.internal.getUTCMilliseconds());\n\n // Now we have to adjust the date to the system time zone\n adjustToSystemTZ(date);\n}\n\n/**\n * Function adjusts the date to the system time zone. It uses the time zone\n * differences to calculate the offset and adjust the date.\n *\n * @param {Date} date - Date to adjust\n */\nfunction adjustToSystemTZ(date) {\n // Save the time zone offset before all the adjustments\n const baseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const offset = baseOffset > 0 ? Math.floor(baseOffset) : Math.ceil(baseOffset);\n //#region System DST adjustment\n\n // The biggest problem with using the system time zone is that when we create\n // a date from internal values stored in UTC, the system time zone might end\n // up on the DST hour:\n //\n // $ TZ=America/New_York node\n // > new Date(2020, 2, 8, 1).toString()\n // 'Sun Mar 08 2020 01:00:00 GMT-0500 (Eastern Standard Time)'\n // > new Date(2020, 2, 8, 2).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 3).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 4).toString()\n // 'Sun Mar 08 2020 04:00:00 GMT-0400 (Eastern Daylight Time)'\n //\n // Here we get the same hour for both 2 and 3, because the system time zone\n // has DST beginning at 8 March 2020, 2 a.m. and jumps to 3 a.m. So we have\n // to adjust the internal date to reflect that.\n //\n // However we want to adjust only if that's the DST hour the change happenes,\n // not the hour where DST moves to.\n\n // We calculate the previous hour to see if the time zone offset has changed\n // and we have landed on the DST hour.\n const prevHour = new Date(+date);\n // We use UTC methods here as we don't want to land on the same hour again\n // in case of DST.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Calculate if we are on the system DST hour.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n // Detect the DST shift. System DST change will occur both on\n const dstShift = Date.prototype.getHours.apply(date) !== date.internal.getUTCHours();\n\n // Move the internal date when we are on the system DST hour.\n if (systemDSTChange && dstShift) date.internal.setUTCMinutes(date.internal.getUTCMinutes() + systemDSTChange);\n\n //#endregion\n\n //#region System diff adjustment\n\n // Now we need to adjust the date, since we just applied internal values.\n // We need to calculate the difference between the system and date time zones\n // and apply it to the date.\n\n const offsetDiff = systemOffset - offset;\n if (offsetDiff) Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds System diff adjustment\n\n const systemDate = new Date(+date);\n // Set the UTC seconds to 0 to isolate the timezone offset in seconds.\n systemDate.setUTCSeconds(0);\n // For negative systemOffset, invert the seconds.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Calculate the seconds offset based on the timezone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset) {\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() + secondsOffset);\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n }\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n const postBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const postOffset = postBaseOffset > 0 ? Math.floor(postBaseOffset) : Math.ceil(postBaseOffset);\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n const postOffsetDiff = postSystemOffset - postOffset;\n const offsetChanged = postOffset !== offset;\n const postDiff = postOffsetDiff - offsetDiff;\n if (offsetChanged && postDiff) {\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Now we need to check if got offset change during the post-adjustment.\n // If so, we also need both dates to reflect that.\n\n const newBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const newOffset = newBaseOffset > 0 ? Math.floor(newBaseOffset) : Math.ceil(newBaseOffset);\n const offsetChange = postOffset - newOffset;\n if (offsetChange) {\n date.internal.setUTCMinutes(date.internal.getUTCMinutes() + offsetChange);\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\n}","import { tzName } from \"../tzName/index.js\";\nimport { TZDateMini } from \"./mini.js\";\nexport class TZDate extends TZDateMini {\n //#region static\n\n static tz(tz, ...args) {\n return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);\n }\n\n //#endregion\n\n //#region representation\n\n toISOString() {\n const [sign, hours, minutes] = this.tzComponents();\n const tz = `${sign}${hours}:${minutes}`;\n return this.internal.toISOString().slice(0, -1) + tz;\n }\n toString() {\n // \"Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)\";\n return `${this.toDateString()} ${this.toTimeString()}`;\n }\n toDateString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const [day, date, month, year] = this.internal.toUTCString().split(\" \");\n // \"Tue Aug 13 2024\"\n return `${day?.slice(0, -1) /* Remove \",\" */} ${month} ${date} ${year}`;\n }\n toTimeString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const time = this.internal.toUTCString().split(\" \")[4];\n const [sign, hours, minutes] = this.tzComponents();\n // \"07:42:23 GMT+0800 (Singapore Standard Time)\"\n return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;\n }\n toLocaleString(locales, options) {\n return Date.prototype.toLocaleString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleDateString(locales, options) {\n return Date.prototype.toLocaleDateString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleTimeString(locales, options) {\n return Date.prototype.toLocaleTimeString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n\n //#endregion\n\n //#region private\n\n tzComponents() {\n const offset = this.getTimezoneOffset();\n const sign = offset > 0 ? \"-\" : \"+\";\n const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, \"0\");\n const minutes = String(Math.abs(offset) % 60).padStart(2, \"0\");\n return [sign, hours, minutes];\n }\n\n //#endregion\n\n withTimeZone(timeZone) {\n return new TZDate(+this, timeZone);\n }\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDate(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}","const FIVE_WEEKS = 5;\nconst FOUR_WEEKS = 4;\n/**\n * Returns the number of weeks to display in the broadcast calendar for a given\n * month.\n *\n * The broadcast calendar may have either 4 or 5 weeks in a month, depending on\n * the start and end dates of the broadcast weeks.\n *\n * @since 9.4.0\n * @param month The month for which to calculate the number of weeks.\n * @param dateLib The date library to use for date manipulation.\n * @returns The number of weeks in the broadcast calendar (4 or 5).\n */\nexport function getBroadcastWeeksInMonth(month, dateLib) {\n // Get the first day of the month\n const firstDayOfMonth = dateLib.startOfMonth(month);\n // Get the day of the week for the first day of the month (1-7, where 1 is Monday)\n const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;\n const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);\n const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);\n const numberOfWeeks = dateLib.getMonth(month) === dateLib.getMonth(lastDateOfLastWeek)\n ? FIVE_WEEKS\n : FOUR_WEEKS;\n return numberOfWeeks;\n}\n","/**\n * Returns the start date of the week in the broadcast calendar.\n *\n * The broadcast week starts on Monday. If the first day of the month is not a\n * Monday, this function calculates the previous Monday as the start of the\n * broadcast week.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the start of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The start date of the broadcast week.\n */\nexport function startOfBroadcastWeek(date, dateLib) {\n const firstOfMonth = dateLib.startOfMonth(date);\n const dayOfWeek = firstOfMonth.getDay();\n if (dayOfWeek === 1) {\n return firstOfMonth;\n }\n else if (dayOfWeek === 0) {\n return dateLib.addDays(firstOfMonth, -1 * 6);\n }\n else {\n return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));\n }\n}\n","import { getBroadcastWeeksInMonth } from \"./getBroadcastWeeksInMonth.js\";\nimport { startOfBroadcastWeek } from \"./startOfBroadcastWeek.js\";\n/**\n * Returns the end date of the week in the broadcast calendar.\n *\n * The broadcast week ends on the last day of the last broadcast week for the\n * given date.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the end of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The end date of the broadcast week.\n */\nexport function endOfBroadcastWeek(date, dateLib) {\n const startDate = startOfBroadcastWeek(date, dateLib);\n const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);\n const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);\n return endDate;\n}\n","import { format } from \"date-fns\";\nimport { enUS as dateFnsEnUS } from \"date-fns/locale\";\n/** English (United States) locale extended with DayPicker-specific translations. */\nexport const enUS = {\n ...dateFnsEnUS,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers.today)\n label = `Today, ${label}`;\n if (modifiers.selected)\n label = `${label}, selected`;\n return label;\n },\n labelMonthDropdown: \"Choose the Month\",\n labelNext: \"Go to the Next Month\",\n labelPrevious: \"Go to the Previous Month\",\n labelWeekNumber: (weekNumber) => `Week ${weekNumber}`,\n labelYearDropdown: \"Choose the Year\",\n labelGrid: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"LLLL yyyy\");\n },\n labelGridcell: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Today, ${label}`;\n }\n return label;\n },\n labelNav: \"Navigation bar\",\n labelWeekNumberHeader: \"Week Number\",\n labelWeekday: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"cccc\");\n },\n },\n};\n","import { TZDate } from \"@date-fns/tz\";\nimport { addDays, addMonths, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, eachMonthOfInterval, eachYearOfInterval, endOfISOWeek, endOfMonth, endOfWeek, endOfYear, format, getISOWeek, getMonth, getWeek, getYear, isAfter, isBefore, isDate, isSameDay, isSameMonth, isSameYear, max, min, setMonth, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfWeek, startOfYear, } from \"date-fns\";\nimport { endOfBroadcastWeek } from \"../helpers/endOfBroadcastWeek.js\";\nimport { startOfBroadcastWeek } from \"../helpers/startOfBroadcastWeek.js\";\nimport { enUS } from \"../locale/en-US.js\";\n/**\n * A wrapper class around [date-fns](http://date-fns.org) that provides utility\n * methods for date manipulation and formatting.\n *\n * @since 9.2.0\n * @example\n * const dateLib = new DateLib({ locale: es });\n * const newDate = dateLib.addDays(new Date(), 5);\n */\nexport class DateLib {\n /**\n * Creates an instance of `DateLib`.\n *\n * @param options Configuration options for the date library.\n * @param overrides Custom overrides for the date library functions.\n */\n constructor(options, overrides) {\n /**\n * Reference to the built-in Date constructor.\n *\n * @deprecated Use `newDate()` or `today()`.\n */\n this.Date = Date;\n /**\n * Creates a new `Date` object representing today's date.\n *\n * @since 9.5.0\n * @returns A `Date` object for today's date.\n */\n this.today = () => {\n if (this.overrides?.today) {\n return this.overrides.today();\n }\n if (this.options.timeZone) {\n return TZDate.tz(this.options.timeZone);\n }\n return new this.Date();\n };\n /**\n * Creates a new `Date` object with the specified year, month, and day.\n *\n * @since 9.5.0\n * @param year The year.\n * @param monthIndex The month (0-11).\n * @param date The day of the month.\n * @returns A new `Date` object.\n */\n this.newDate = (year, monthIndex, date) => {\n if (this.overrides?.newDate) {\n return this.overrides.newDate(year, monthIndex, date);\n }\n if (this.options.timeZone) {\n return new TZDate(year, monthIndex, date, this.options.timeZone);\n }\n return new Date(year, monthIndex, date);\n };\n /**\n * Adds the specified number of days to the given date.\n *\n * @param date The date to add days to.\n * @param amount The number of days to add.\n * @returns The new date with the days added.\n */\n this.addDays = (date, amount) => {\n return this.overrides?.addDays\n ? this.overrides.addDays(date, amount)\n : addDays(date, amount);\n };\n /**\n * Adds the specified number of months to the given date.\n *\n * @param date The date to add months to.\n * @param amount The number of months to add.\n * @returns The new date with the months added.\n */\n this.addMonths = (date, amount) => {\n return this.overrides?.addMonths\n ? this.overrides.addMonths(date, amount)\n : addMonths(date, amount);\n };\n /**\n * Adds the specified number of weeks to the given date.\n *\n * @param date The date to add weeks to.\n * @param amount The number of weeks to add.\n * @returns The new date with the weeks added.\n */\n this.addWeeks = (date, amount) => {\n return this.overrides?.addWeeks\n ? this.overrides.addWeeks(date, amount)\n : addWeeks(date, amount);\n };\n /**\n * Adds the specified number of years to the given date.\n *\n * @param date The date to add years to.\n * @param amount The number of years to add.\n * @returns The new date with the years added.\n */\n this.addYears = (date, amount) => {\n return this.overrides?.addYears\n ? this.overrides.addYears(date, amount)\n : addYears(date, amount);\n };\n /**\n * Returns the number of calendar days between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar days between the dates.\n */\n this.differenceInCalendarDays = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarDays\n ? this.overrides.differenceInCalendarDays(dateLeft, dateRight)\n : differenceInCalendarDays(dateLeft, dateRight);\n };\n /**\n * Returns the number of calendar months between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar months between the dates.\n */\n this.differenceInCalendarMonths = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarMonths\n ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)\n : differenceInCalendarMonths(dateLeft, dateRight);\n };\n /**\n * Returns the months between the given dates.\n *\n * @param interval The interval to get the months for.\n */\n this.eachMonthOfInterval = (interval) => {\n return this.overrides?.eachMonthOfInterval\n ? this.overrides.eachMonthOfInterval(interval)\n : eachMonthOfInterval(interval);\n };\n /**\n * Returns the years between the given dates.\n *\n * @since 9.11.1\n * @param interval The interval to get the years for.\n * @returns The array of years in the interval.\n */\n this.eachYearOfInterval = (interval) => {\n const years = this.overrides?.eachYearOfInterval\n ? this.overrides.eachYearOfInterval(interval)\n : eachYearOfInterval(interval);\n // Remove duplicates that may happen across DST transitions (e.g., \"America/Sao_Paulo\")\n // See https://github.com/date-fns/tz/issues/72\n const uniqueYears = new Set(years.map((d) => this.getYear(d)));\n if (uniqueYears.size === years.length) {\n // No duplicates, return as is\n return years;\n }\n // Rebuild the array to ensure one date per year\n const yearsArray = [];\n uniqueYears.forEach((y) => {\n yearsArray.push(new Date(y, 0, 1));\n });\n return yearsArray;\n };\n /**\n * Returns the end of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The end of the broadcast week.\n */\n this.endOfBroadcastWeek = (date) => {\n return this.overrides?.endOfBroadcastWeek\n ? this.overrides.endOfBroadcastWeek(date)\n : endOfBroadcastWeek(date, this);\n };\n /**\n * Returns the end of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The end of the ISO week.\n */\n this.endOfISOWeek = (date) => {\n return this.overrides?.endOfISOWeek\n ? this.overrides.endOfISOWeek(date)\n : endOfISOWeek(date);\n };\n /**\n * Returns the end of the month for the given date.\n *\n * @param date The original date.\n * @returns The end of the month.\n */\n this.endOfMonth = (date) => {\n return this.overrides?.endOfMonth\n ? this.overrides.endOfMonth(date)\n : endOfMonth(date);\n };\n /**\n * Returns the end of the week for the given date.\n *\n * @param date The original date.\n * @returns The end of the week.\n */\n this.endOfWeek = (date, options) => {\n return this.overrides?.endOfWeek\n ? this.overrides.endOfWeek(date, options)\n : endOfWeek(date, this.options);\n };\n /**\n * Returns the end of the year for the given date.\n *\n * @param date The original date.\n * @returns The end of the year.\n */\n this.endOfYear = (date) => {\n return this.overrides?.endOfYear\n ? this.overrides.endOfYear(date)\n : endOfYear(date);\n };\n /**\n * Formats the given date using the specified format string.\n *\n * @param date The date to format.\n * @param formatStr The format string.\n * @returns The formatted date string.\n */\n this.format = (date, formatStr, _options) => {\n const formatted = this.overrides?.format\n ? this.overrides.format(date, formatStr, this.options)\n : format(date, formatStr, this.options);\n if (this.options.numerals && this.options.numerals !== \"latn\") {\n return this.replaceDigits(formatted);\n }\n return formatted;\n };\n /**\n * Returns the ISO week number for the given date.\n *\n * @param date The date to get the ISO week number for.\n * @returns The ISO week number.\n */\n this.getISOWeek = (date) => {\n return this.overrides?.getISOWeek\n ? this.overrides.getISOWeek(date)\n : getISOWeek(date);\n };\n /**\n * Returns the month of the given date.\n *\n * @param date The date to get the month for.\n * @returns The month.\n */\n this.getMonth = (date, _options) => {\n return this.overrides?.getMonth\n ? this.overrides.getMonth(date, this.options)\n : getMonth(date, this.options);\n };\n /**\n * Returns the year of the given date.\n *\n * @param date The date to get the year for.\n * @returns The year.\n */\n this.getYear = (date, _options) => {\n return this.overrides?.getYear\n ? this.overrides.getYear(date, this.options)\n : getYear(date, this.options);\n };\n /**\n * Returns the local week number for the given date.\n *\n * @param date The date to get the week number for.\n * @returns The week number.\n */\n this.getWeek = (date, _options) => {\n return this.overrides?.getWeek\n ? this.overrides.getWeek(date, this.options)\n : getWeek(date, this.options);\n };\n /**\n * Checks if the first date is after the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is after the second date.\n */\n this.isAfter = (date, dateToCompare) => {\n return this.overrides?.isAfter\n ? this.overrides.isAfter(date, dateToCompare)\n : isAfter(date, dateToCompare);\n };\n /**\n * Checks if the first date is before the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is before the second date.\n */\n this.isBefore = (date, dateToCompare) => {\n return this.overrides?.isBefore\n ? this.overrides.isBefore(date, dateToCompare)\n : isBefore(date, dateToCompare);\n };\n /**\n * Checks if the given value is a Date object.\n *\n * @param value The value to check.\n * @returns True if the value is a Date object.\n */\n this.isDate = (value) => {\n return this.overrides?.isDate\n ? this.overrides.isDate(value)\n : isDate(value);\n };\n /**\n * Checks if the given dates are on the same day.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are on the same day.\n */\n this.isSameDay = (dateLeft, dateRight) => {\n return this.overrides?.isSameDay\n ? this.overrides.isSameDay(dateLeft, dateRight)\n : isSameDay(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same month.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same month.\n */\n this.isSameMonth = (dateLeft, dateRight) => {\n return this.overrides?.isSameMonth\n ? this.overrides.isSameMonth(dateLeft, dateRight)\n : isSameMonth(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same year.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same year.\n */\n this.isSameYear = (dateLeft, dateRight) => {\n return this.overrides?.isSameYear\n ? this.overrides.isSameYear(dateLeft, dateRight)\n : isSameYear(dateLeft, dateRight);\n };\n /**\n * Returns the latest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The latest date.\n */\n this.max = (dates) => {\n return this.overrides?.max ? this.overrides.max(dates) : max(dates);\n };\n /**\n * Returns the earliest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The earliest date.\n */\n this.min = (dates) => {\n return this.overrides?.min ? this.overrides.min(dates) : min(dates);\n };\n /**\n * Sets the month of the given date.\n *\n * @param date The date to set the month on.\n * @param month The month to set (0-11).\n * @returns The new date with the month set.\n */\n this.setMonth = (date, month) => {\n return this.overrides?.setMonth\n ? this.overrides.setMonth(date, month)\n : setMonth(date, month);\n };\n /**\n * Sets the year of the given date.\n *\n * @param date The date to set the year on.\n * @param year The year to set.\n * @returns The new date with the year set.\n */\n this.setYear = (date, year) => {\n return this.overrides?.setYear\n ? this.overrides.setYear(date, year)\n : setYear(date, year);\n };\n /**\n * Returns the start of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The start of the broadcast week.\n */\n this.startOfBroadcastWeek = (date, _dateLib) => {\n return this.overrides?.startOfBroadcastWeek\n ? this.overrides.startOfBroadcastWeek(date, this)\n : startOfBroadcastWeek(date, this);\n };\n /**\n * Returns the start of the day for the given date.\n *\n * @param date The original date.\n * @returns The start of the day.\n */\n this.startOfDay = (date) => {\n return this.overrides?.startOfDay\n ? this.overrides.startOfDay(date)\n : startOfDay(date);\n };\n /**\n * Returns the start of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The start of the ISO week.\n */\n this.startOfISOWeek = (date) => {\n return this.overrides?.startOfISOWeek\n ? this.overrides.startOfISOWeek(date)\n : startOfISOWeek(date);\n };\n /**\n * Returns the start of the month for the given date.\n *\n * @param date The original date.\n * @returns The start of the month.\n */\n this.startOfMonth = (date) => {\n return this.overrides?.startOfMonth\n ? this.overrides.startOfMonth(date)\n : startOfMonth(date);\n };\n /**\n * Returns the start of the week for the given date.\n *\n * @param date The original date.\n * @returns The start of the week.\n */\n this.startOfWeek = (date, _options) => {\n return this.overrides?.startOfWeek\n ? this.overrides.startOfWeek(date, this.options)\n : startOfWeek(date, this.options);\n };\n /**\n * Returns the start of the year for the given date.\n *\n * @param date The original date.\n * @returns The start of the year.\n */\n this.startOfYear = (date) => {\n return this.overrides?.startOfYear\n ? this.overrides.startOfYear(date)\n : startOfYear(date);\n };\n this.options = { locale: enUS, ...options };\n this.overrides = overrides;\n }\n /**\n * Generates a mapping of Arabic digits (0-9) to the target numbering system\n * digits.\n *\n * @since 9.5.0\n * @returns A record mapping Arabic digits to the target numerals.\n */\n getDigitMap() {\n const { numerals = \"latn\" } = this.options;\n // Use Intl.NumberFormat to create a formatter with the specified numbering system\n const formatter = new Intl.NumberFormat(\"en-US\", {\n numberingSystem: numerals,\n });\n // Map Arabic digits (0-9) to the target numerals\n const digitMap = {};\n for (let i = 0; i < 10; i++) {\n digitMap[i.toString()] = formatter.format(i);\n }\n return digitMap;\n }\n /**\n * Replaces Arabic digits in a string with the target numbering system digits.\n *\n * @since 9.5.0\n * @param input The string containing Arabic digits.\n * @returns The string with digits replaced.\n */\n replaceDigits(input) {\n const digitMap = this.getDigitMap();\n return input.replace(/\\d/g, (digit) => digitMap[digit] || digit);\n }\n /**\n * Formats a number using the configured numbering system.\n *\n * @since 9.5.0\n * @param value The number to format.\n * @returns The formatted number as a string.\n */\n formatNumber(value) {\n return this.replaceDigits(value.toString());\n }\n /**\n * Returns the preferred ordering for month and year labels for the current\n * locale.\n */\n getMonthYearOrder() {\n const code = this.options.locale?.code;\n if (!code) {\n return \"month-first\";\n }\n return DateLib.yearFirstLocales.has(code) ? \"year-first\" : \"month-first\";\n }\n /**\n * Formats the month/year pair respecting locale conventions.\n *\n * @since 9.11.0\n */\n formatMonthYear(date) {\n const { locale, timeZone, numerals } = this.options;\n const localeCode = locale?.code;\n if (localeCode && DateLib.yearFirstLocales.has(localeCode)) {\n try {\n const intl = new Intl.DateTimeFormat(localeCode, {\n month: \"long\",\n year: \"numeric\",\n timeZone,\n numberingSystem: numerals,\n });\n const formatted = intl.format(date);\n return formatted;\n }\n catch {\n // Fallback to date-fns formatting below.\n }\n }\n const pattern = this.getMonthYearOrder() === \"year-first\" ? \"y LLLL\" : \"LLLL y\";\n return this.format(date, pattern);\n }\n}\nDateLib.yearFirstLocales = new Set([\n \"eu\",\n \"hu\",\n \"ja\",\n \"ja-Hira\",\n \"ja-JP\",\n \"ko\",\n \"ko-KR\",\n \"lt\",\n \"lt-LT\",\n \"lv\",\n \"lv-LV\",\n \"mn\",\n \"mn-MN\",\n \"zh\",\n \"zh-CN\",\n \"zh-HK\",\n \"zh-TW\",\n]);\n/** The default locale (English). */\nexport { enUS as defaultLocale } from \"../locale/en-US.js\";\n/**\n * The default date library with English locale.\n *\n * @since 9.2.0\n */\nexport const defaultDateLib = new DateLib();\n/**\n * @ignore\n * @deprecated Use `defaultDateLib`.\n */\nexport const dateLib = defaultDateLib;\n","import { ptBR as dateFnsPtBR } from \"date-fns/locale\";\nimport { DateLib } from \"../classes/DateLib.js\";\n/** Portuguese (Brazil) locale extended with DayPicker-specific translations. */\nexport const ptBR = {\n ...dateFnsPtBR,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers.today)\n label = `Hoje, ${label}`;\n if (modifiers.selected)\n label = `${label}, selecionado`;\n return label;\n },\n labelMonthDropdown: \"Escolha o mês\",\n labelNext: \"Ir para o próximo mês\",\n labelPrevious: \"Ir para o mês anterior\",\n labelWeekNumber: (weekNumber) => `Semana ${weekNumber}`,\n labelYearDropdown: \"Escolha o ano\",\n labelGrid: (date, options, dateLib) => (dateLib ?? new DateLib(options)).formatMonthYear(date),\n labelGridcell: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Hoje, ${label}`;\n }\n return label;\n },\n labelNav: \"Barra de navegação\",\n labelWeekNumberHeader: \"Número da semana\",\n labelWeekday: (date, options, dateLib) => (dateLib ?? new DateLib(options)).format(date, \"cccc\"),\n },\n};\n","import {\r\n ChevronDown16Regular,\r\n ChevronLeft16Regular,\r\n ChevronRight16Regular,\r\n ChevronUp16Regular,\r\n} from \"@fluentui/react-icons\";\r\nimport clsx from \"clsx\";\r\nimport { createContext, useContext, useState } from \"react\";\r\nimport { DayPicker } from \"react-day-picker\";\r\nimport { enUS, ptBR } from \"react-day-picker/locale\";\r\n\r\nimport styles from \"./Calendar.module.scss\";\r\n\r\nimport type { CalendarProps } from \"./Calendar.types\";\r\nimport type { MonthCaptionProps } from \"react-day-picker\";\r\n\r\ntype ChevronOrientation = \"up\" | \"down\" | \"left\" | \"right\";\r\n\r\nconst FLUENT_CHEVRON_MAP: Record<ChevronOrientation, React.ComponentType<{ className?: string; \"aria-hidden\"?: boolean }>> = {\r\n down: ChevronDown16Regular,\r\n up: ChevronUp16Regular,\r\n left: ChevronLeft16Regular,\r\n right: ChevronRight16Regular,\r\n};\r\n\r\nconst CustomChevron = ({\r\n orientation = \"left\",\r\n className,\r\n}: {\r\n className?: string;\r\n size?: number;\r\n disabled?: boolean;\r\n orientation?: ChevronOrientation;\r\n}) => {\r\n const Icon = FLUENT_CHEVRON_MAP[orientation];\r\n return <Icon className={className} aria-hidden />;\r\n};\r\n\r\ntype GridView = \"days\" | \"months\" | \"years\";\r\n\r\ninterface GridPickerContext {\r\n view: GridView;\r\n intlLocale: string;\r\n onYearLabelClick: () => void;\r\n}\r\n\r\nconst GridCtx = createContext<GridPickerContext | null>(null);\r\n\r\nconst GridMonthCaption = ({ calendarMonth, displayIndex: _displayIndex, ...divProps }: MonthCaptionProps) => {\r\n const ctx = useContext(GridCtx);\r\n const { view, intlLocale, onYearLabelClick } = ctx ?? ({} as GridPickerContext);\r\n const date = calendarMonth.date;\r\n const monthLabel = new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(date);\r\n const yearLabel = String(date.getFullYear());\r\n\r\n return (\r\n <div {...divProps}>\r\n <span className={styles.caption_grid_label}>\r\n {monthLabel}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n aria-pressed={view === \"years\"}\r\n onClick={onYearLabelClick}\r\n >\r\n {yearLabel}\r\n {view !== \"days\" ? (\r\n <ChevronUp16Regular className={styles.caption_year_chevron} aria-hidden />\r\n ) : (\r\n <ChevronDown16Regular className={styles.caption_year_chevron} aria-hidden />\r\n )}\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nconst YEARS_PER_PAGE = 20;\r\n\r\nconst Calendar = ({\r\n selected,\r\n currentDate,\r\n defaultMonth,\r\n startMonth,\r\n endMonth,\r\n onDaySelect,\r\n onDateChange,\r\n onClear: _onClear,\r\n minDate,\r\n maxDate,\r\n disabled,\r\n format: _format,\r\n locale = \"pt-br\",\r\n autoFocus,\r\n className,\r\n id,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n}: CalendarProps) => {\r\n const animate = true;\r\n\r\n const [internalSelected, setInternalSelected] = useState<Date | undefined>(\r\n selected ?? undefined\r\n );\r\n\r\n const [internalDisplayMonth, setInternalDisplayMonth] = useState<Date>(\r\n () => currentDate ?? defaultMonth ?? new Date()\r\n );\r\n\r\n const [gridView, setGridView] = useState<GridView>(\"days\");\r\n const [yearPageStart, setYearPageStart] = useState<number>(\r\n () => (currentDate ?? defaultMonth ?? new Date()).getFullYear() - 9\r\n );\r\n\r\n const resolvedSelected =\r\n selected !== undefined\r\n ? (selected ?? undefined)\r\n : internalSelected;\r\n\r\n const resolvedLocale = locale === \"pt-br\" ? ptBR : enUS;\r\n const intlLocale = locale === \"pt-br\" ? \"pt-BR\" : \"en-US\";\r\n\r\n const disabledMatchers = [\r\n ...(minDate ? [{ before: minDate }] : []),\r\n ...(maxDate ? [{ after: maxDate }] : []),\r\n ...(disabled ? (Array.isArray(disabled) ? disabled : [disabled]) : []),\r\n ];\r\n\r\n const handleSelect = (date: Date | undefined) => {\r\n setInternalSelected(date);\r\n if (date) {\r\n onDaySelect?.(date);\r\n }\r\n };\r\n\r\n const handleMonthChange = (date: Date) => {\r\n setInternalDisplayMonth(date);\r\n onDateChange?.(date);\r\n };\r\n\r\n const resolvedDisplayMonth = currentDate ?? internalDisplayMonth;\r\n const displayedMonthIndex = resolvedDisplayMonth.getMonth();\r\n const displayedYear = resolvedDisplayMonth.getFullYear();\r\n\r\n const startYear = startMonth?.getFullYear() ?? 1900;\r\n const endYear = endMonth?.getFullYear() ?? 2100;\r\n\r\n const handleGridMonthSelect = (monthIndex: number) => {\r\n const newDate = new Date(displayedYear, monthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"days\");\r\n };\r\n\r\n const handleGridYearSelect = (year: number) => {\r\n const newDate = new Date(year, displayedMonthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"months\");\r\n };\r\n\r\n const handleYearLabelClick = () => {\r\n setYearPageStart(displayedYear - 9);\r\n setGridView((v) => (v === \"years\" ? \"days\" : \"years\"));\r\n };\r\n\r\n const clampedYearPageStart = Math.max(startYear, yearPageStart);\r\n const yearsInPage = Array.from({ length: YEARS_PER_PAGE }, (_, i) => clampedYearPageStart + i).filter(\r\n (y) => y <= endYear\r\n );\r\n\r\n const canGoPrevYears = clampedYearPageStart - YEARS_PER_PAGE >= startYear;\r\n const canGoNextYears = clampedYearPageStart + YEARS_PER_PAGE <= endYear;\r\n\r\n const monthsGrid = Array.from({ length: 12 }, (_, i) => ({\r\n index: i,\r\n label: new Intl.DateTimeFormat(intlLocale, { month: \"short\" }).format(new Date(2000, i, 1)),\r\n disabled:\r\n (startMonth != null &&\r\n new Date(displayedYear, i, 1) < new Date(startMonth.getFullYear(), startMonth.getMonth(), 1)) ||\r\n (endMonth != null &&\r\n new Date(displayedYear, i, 1) > new Date(endMonth.getFullYear(), endMonth.getMonth(), 1)),\r\n }));\r\n\r\n const gridCtxValue: GridPickerContext = {\r\n view: gridView,\r\n intlLocale,\r\n onYearLabelClick: handleYearLabelClick,\r\n };\r\n\r\n const sharedDayPickerProps = {\r\n classNames: styles,\r\n animate,\r\n mode: \"single\" as const,\r\n selected: resolvedSelected,\r\n onSelect: handleSelect,\r\n startMonth,\r\n endMonth,\r\n disabled: disabledMatchers.length > 0 ? disabledMatchers : undefined,\r\n locale: resolvedLocale,\r\n autoFocus,\r\n \"aria-label\": ariaLabel,\r\n };\r\n\r\n return (\r\n <GridCtx.Provider value={gridCtxValue}>\r\n <div className={clsx(styles.calendar_grid_wrapper, className)}>\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...rest}\r\n captionLayout=\"label\"\r\n month={resolvedDisplayMonth}\r\n onMonthChange={handleMonthChange}\r\n components={{ MonthCaption: GridMonthCaption, Chevron: CustomChevron }}\r\n />\r\n {gridView !== \"days\" && (\r\n <div\r\n className={`${styles.gridOverlay}${gridView === \"years\" ? ` ${styles.gridOverlayYears}` : \"\"}`}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={gridView === \"months\" ? \"Selecione o mês\" : \"Selecione o ano\"}\r\n >\r\n {gridView === \"months\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de mês\"\r\n >\r\n {displayedYear}\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </button>\r\n </div>\r\n <div className={styles.gridCells}>\r\n {monthsGrid.map(({ index, label, disabled: monthDisabled }) => (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n disabled={monthDisabled}\r\n className={`${styles.gridCell}${displayedMonthIndex === index ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridMonthSelect(index)}\r\n >\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n {gridView === \"years\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de ano\"\r\n >\r\n {displayedYear}\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </button>\r\n <div className={styles.gridOverlayYearsNav}>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoPrevYears}\r\n onClick={() => setYearPageStart((s) => s - YEARS_PER_PAGE)}\r\n aria-label=\"Anos anteriores\"\r\n >\r\n <ChevronLeft16Regular className={styles.chevronNavBtnPrev} aria-hidden />\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoNextYears}\r\n onClick={() => setYearPageStart((s) => s + YEARS_PER_PAGE)}\r\n aria-label=\"Próximos anos\"\r\n >\r\n <ChevronRight16Regular className={styles.chevronNavBtnNext} aria-hidden />\r\n </button>\r\n </div>\r\n </div>\r\n <div className={`${styles.gridCells} ${styles.gridCellsYears}`}>\r\n {yearsInPage.map((year) => (\r\n <button\r\n key={year}\r\n type=\"button\"\r\n className={`${styles.gridCell}${displayedYear === year ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridYearSelect(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </GridCtx.Provider>\r\n );\r\n};\r\n\r\nexport default Calendar;\r\n","import { Dismiss24Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Callout.module.scss';\r\n\r\nimport type { CalloutProps } from './Callout.types';\r\n\r\nconst Callout: React.FC<CalloutProps> = ({\r\n variant = 'neutral',\r\n title,\r\n text,\r\n icon,\r\n onDismiss,\r\n dismiss,\r\n backgroundColor,\r\n textColor,\r\n className,\r\n id,\r\n style,\r\n ...rest\r\n}) => {\r\n if (process.env.NODE_ENV !== 'production' && (text === '' || (typeof text === 'string' && !text.trim()))) {\r\n console.warn('[Callout] A prop `text` não pode ser uma string vazia.');\r\n }\r\n\r\n const generatedId = useId();\r\n const titleId = `callout-title-${id || generatedId}`;\r\n const componentId = id || generatedId;\r\n\r\n const isAlert = variant === 'alert';\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n styles[variant],\r\n { [styles.withTitle]: title },\r\n className\r\n );\r\n\r\n const customStyle: React.CSSProperties = {\r\n ...style,\r\n ...(backgroundColor && { '--callout-bg': `var(--${backgroundColor})` } as React.CSSProperties),\r\n ...(textColor && { '--callout-text': `var(--${textColor})` } as React.CSSProperties),\r\n };\r\n\r\n return (\r\n <div\r\n id={componentId}\r\n className={containerClass}\r\n role={isAlert ? 'alert' : 'status'}\r\n aria-live={isAlert ? 'assertive' : 'polite'}\r\n aria-labelledby={title ? titleId : undefined}\r\n style={customStyle}\r\n {...rest}\r\n >\r\n <div className={styles.content}>\r\n {icon && <span className={styles.icon} aria-hidden=\"true\">{icon}</span>}\r\n <div className={styles.subcontent}>\r\n {title && (\r\n <span id={titleId} className={styles.title}>{title}</span>\r\n )}\r\n {text && <span className={styles.text}>{text}</span>}\r\n </div>\r\n {dismiss && (\r\n <button\r\n className={styles.dismiss}\r\n onClick={onDismiss}\r\n type=\"button\"\r\n aria-label=\"Fechar\"\r\n >\r\n <Dismiss24Regular aria-hidden=\"true\" />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Callout;\r\n","import React from 'react';\r\n\r\nexport interface CheckSmallProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckSmall: React.FC<CheckSmallProps> = ({ \r\n className = '',\r\n width = 12,\r\n height = 10,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 12 10\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <path \r\n d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" \r\n fill={fill} \r\n />\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckSmall;\r\n","import React from 'react';\r\n\r\nexport interface CheckHalfProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckHalf: React.FC<CheckHalfProps> = ({ \r\n className = '',\r\n width = 16,\r\n height = 16,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 16 16\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <g id=\"Icons/check_indeterminate_small\">\r\n <path \r\n id=\"icon\" \r\n d=\"M3 9V7H13V9H3Z\" \r\n fill={fill} \r\n />\r\n </g>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckHalf;\r\n","import clsx from 'clsx';\r\nimport { Checkbox as CheckboxRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { CheckSmall, CheckHalf } from '@/shared/icons';\r\n\r\nimport styles from './Checkbox.module.scss';\r\nimport { CheckboxProps } from './Checkbox.types';\r\n\r\n\r\nconst Checkbox: React.FC<CheckboxProps> = ({\r\n id,\r\n label,\r\n onCheckedChange,\r\n checked,\r\n disabled,\r\n className,\r\n indeterminate = false,\r\n ...rest\r\n}) => {\r\n const componentId = id || React.useId();\r\n\r\n return (\r\n <div className={clsx(styles.container, className)}>\r\n <div\r\n className={clsx(styles.wrapperCheckbox, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"presentation\"\r\n tabIndex={disabled ? -1 : 0}\r\n >\r\n <CheckboxRadix.Root\r\n className={styles.root}\r\n checked={indeterminate ? 'indeterminate' : checked}\r\n id={componentId}\r\n onCheckedChange={onCheckedChange}\r\n disabled={disabled}\r\n data-disabled={disabled}\r\n data-indeterminate={indeterminate}\r\n aria-checked={indeterminate ? 'mixed' : checked ? 'true' : 'false'}\r\n {...rest}\r\n >\r\n <CheckboxRadix.Indicator className={styles.indicator}>\r\n {indeterminate ? <CheckHalf /> : <CheckSmall />}\r\n </CheckboxRadix.Indicator>\r\n </CheckboxRadix.Root>\r\n </div>\r\n <label\r\n className={clsx(styles.label, { [styles.disabled]: disabled })}\r\n htmlFor={componentId}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Chips.module.scss';\r\n\r\nimport type { ChipsProps } from './Chips.types';\r\n\r\nconst Chips: React.FC<ChipsProps> = ({\r\n children,\r\n leftIcon,\r\n rightIcon,\r\n variant = 'neutral',\r\n disabled = false,\r\n backgroundColor,\r\n textColor,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n\r\n const chipsClass = clsx(\r\n styles.chips,\r\n styles[variant],\r\n {\r\n [styles.disabled]: disabled,\r\n [styles.hasLeftIcon]: leftIcon,\r\n [styles.hasRightIcon]: rightIcon,\r\n },\r\n className\r\n );\r\n\r\n const colorStyle = {\r\n ...(!disabled && backgroundColor && { '--chips-bg': `var(--${backgroundColor})` }),\r\n ...(!disabled && textColor && { '--chips-text': `var(--${textColor})` }),\r\n ...style,\r\n } as React.CSSProperties;\r\n\r\n const isInteractive = typeof rest.onClick === 'function';\r\n\r\n return (\r\n <div\r\n className={chipsClass}\r\n aria-disabled={disabled}\r\n style={colorStyle}\r\n role={isInteractive ? 'button' : undefined}\r\n tabIndex={isInteractive ? (disabled ? -1 : 0) : undefined}\r\n {...rest}\r\n >\r\n {leftIcon && (\r\n <span className={styles.iconLeft} aria-hidden=\"true\">\r\n {leftIcon}\r\n </span>\r\n )}\r\n <span className={styles.title}>{children}</span>\r\n {rightIcon && (\r\n <span className={styles.iconRight}>\r\n {rightIcon}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst MemoizedChips = React.memo(Chips);\r\nMemoizedChips.displayName = 'Chips';\r\n\r\nexport default MemoizedChips;","import clsx from 'clsx';\r\nimport styles from './Container.module.scss'\r\n\r\nimport type { ContainerProps } from './Container.types';\r\n\r\nexport default function Container({ children, className }: ContainerProps) {\r\n return (\r\n <main className={clsx(styles['container'], 'mx-auto', className)}>\r\n {children}\r\n </main>\r\n )\r\n}","import { Popover as PopoverRadix } from \"radix-ui\";\r\nimport clsx from \"clsx\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from \"./Popover.module.scss\";\r\nimport { PopoverProps } from \"./Popover.types\";\r\n\r\nconst Popover: React.FC<PopoverProps> = ({\r\n trigger,\r\n content,\r\n side = \"left\",\r\n align = \"start\", \r\n sideOffset = 8, \r\n open,\r\n onOpenChange,\r\n asAnchor = false,\r\n onOpenAutoFocus,\r\n onCloseAutoFocus,\r\n showArrow = false,\r\n className,\r\n ...rest\r\n}) => {\r\n return (\r\n <PopoverRadix.Root open={open} onOpenChange={onOpenChange} {...rest}>\r\n {asAnchor ? (\r\n <PopoverRadix.Anchor asChild>\r\n {trigger}\r\n </PopoverRadix.Anchor>\r\n ) : (\r\n <PopoverRadix.Trigger asChild>\r\n {trigger}\r\n </PopoverRadix.Trigger>\r\n )}\r\n <PopoverRadix.Portal>\r\n <PopoverRadix.Content\r\n className={clsx(styles.Content, className)}\r\n sideOffset={sideOffset}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={asAnchor ? (e) => e.preventDefault() : onOpenAutoFocus}\r\n onCloseAutoFocus={asAnchor ? (e) => e.preventDefault() : onCloseAutoFocus}\r\n onInteractOutside={asAnchor ? (e) => e.preventDefault() : undefined}\r\n >\r\n {content}\r\n {showArrow && <PopoverRadix.Arrow />}\r\n </PopoverRadix.Content>\r\n </PopoverRadix.Portal>\r\n </PopoverRadix.Root>\r\n );\r\n};\r\n\r\nexport default Popover;\r\n","export interface ValidationParams {\r\n value: string;\r\n maxLength?: number;\r\n type?: string;\r\n errorMessage?: string;\r\n required?: boolean;\r\n}\r\n\r\nexport const validateInput = ({ \r\n value, \r\n maxLength, \r\n errorMessage, \r\n required \r\n}: ValidationParams): string => {\r\n if (required && value.trim() === '') {\r\n return errorMessage || 'Campo obrigatório.';\r\n }\r\n\r\n if (maxLength && value.length > maxLength) {\r\n return errorMessage || `Campo deve ter no máximo ${maxLength} caracteres.`;\r\n }\r\n\r\n return '';\r\n};\r\n","import * as React from 'react';\r\nimport { Label } from 'radix-ui';\r\nimport styles from './index.module.scss';\r\nimport clsx from 'clsx';\r\nimport Tooltip from '../../components/Tooltip/Tooltip';\r\nimport { Info12Regular } from '@fluentui/react-icons';\r\n\r\ninterface LabelProps {\r\n children: React.ReactNode;\r\n htmlFor: string;\r\n required?: boolean;\r\n className?: string;\r\n tooltipText?: string;\r\n tooltip?: boolean;\r\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\r\n align?: \"start\" | \"center\" | \"end\";\r\n error?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nconst LabelComponent = ({\r\n children,\r\n htmlFor,\r\n required = false,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n className,\r\n error = false,\r\n disabled = false\r\n}: LabelProps) => (\r\n <div className={clsx(styles.labelContainer, disabled && styles.disabledContainer)}>\r\n <Label.Root\r\n className={clsx(\r\n styles.wrapperLabel,\r\n error && !disabled && styles.errorLabel,\r\n disabled && styles.disabledLabel,\r\n className\r\n )}\r\n htmlFor={htmlFor}\r\n >\r\n {children}\r\n {required && <span className={styles.requiredLabel}>*</span>}\r\n </Label.Root>\r\n {tooltip && (\r\n <Tooltip side={side} align={align} text={tooltipText || ''}>\r\n <span\r\n className={\r\n disabled ? styles.disabledIcon : error ?\r\n styles.errorIcon : styles.infoIcon\r\n }\r\n >\r\n <Info12Regular />\r\n </span>\r\n </Tooltip>\r\n )}\r\n </div>\r\n);\r\n\r\nexport default LabelComponent;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, forwardRef, useEffect } from 'react';\r\n\r\nimport styles from './TextField.module.scss';\r\nimport { validateInput } from './utils';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextFieldProps } from './TextField.types';\r\n\r\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>(\r\n (\r\n {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n type = 'text',\r\n onChange,\r\n disabled = false,\r\n maxLength = 30,\r\n required = false,\r\n helperText,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\t align = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n icon,\r\n onBlur,\r\n onFocus,\r\n name,\r\n persistIcon = false,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const normalizeValue = (val: string | number | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n \r\n const [inputValue, setInputValue] = useState(normalizeValue(value));\r\n const [inputError, setInputError] = useState('');\r\n const [isFocused, setIsFocused] = useState(false);\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n const newValue = normalizeValue(value);\r\n setInputValue(newValue);\r\n \r\n // Reavaliar erro quando valor muda externamente (ex: DatePicker atualiza o campo)\r\n if (inputError) {\r\n const validationError = validateInput({\r\n value: newValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(validationError);\r\n }\r\n }, [value, inputError, type, maxLength, errorMessage, required]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setInputValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleClear = useCallback(() => {\r\n if (!disabled) {\r\n setInputValue('');\r\n onChange?.('');\r\n }\r\n }, [disabled, onChange]);\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n const error = validateInput({\r\n value: inputValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(error);\r\n setIsFocused(false);\r\n onBlur?.(e);\r\n },\r\n [inputValue, type, maxLength, errorMessage, required, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n setIsFocused(true);\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const showCustomIcon = inputValue.trim().length === 0 && icon;\r\n const showClearIcon = isFocused && inputValue.trim().length > 0;\r\n const hasError = Boolean(inputError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || inputError || helperText || '\\u00A0';\r\n const helperId = (inputError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerClass = clsx(styles.container, {\r\n [styles.disabled]: disabled,\r\n [styles.error]: hasError && !disabled,\r\n [className!]: className,\r\n });\r\n\r\n return (\r\n <div className={containerClass}>\r\n {label && (\r\n <LabelComponent\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <input\r\n {...rest}\r\n ref={ref}\r\n id={componentId}\r\n name={name}\r\n type={type}\r\n value={inputValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n className={clsx({\r\n [styles.inputWithIcon]: showCustomIcon || showClearIcon,\r\n })}\r\n />\r\n \r\n {showCustomIcon && <span className={styles.icon}>{icon}</span>}\r\n \r\n {showClearIcon && (\r\n <button\r\n type=\"button\"\r\n className={styles.clearButton}\r\n onMouseDown={(e) => {\r\n e.preventDefault();\r\n handleClear();\r\n }}\r\n aria-label=\"Limpar campo\"\r\n tabIndex={-1}\r\n >\r\n <Dismiss16Regular />\r\n </button>\r\n )}\r\n </div>\r\n\r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextField.displayName = 'TextField';\r\n\r\nexport default React.memo(TextField);\r\n","import { Locale } from '../../../types/common.types';\r\n\r\nexport function formatDate(date: Date, locale: Locale = 'pt-br'): string {\r\n if (!date || !(date instanceof Date)) {\r\n return '';\r\n }\r\n\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n if (locale === 'en-us') {\r\n return `${month}/${day}/${year}`;\r\n } else {\r\n return `${day}/${month}/${year}`;\r\n }\r\n}\r\n\r\nexport function applyDateMask(value: string, locale: Locale = 'pt-br'): string {\r\n const digitsOnly = value.replace(/\\D/g, '');\r\n \r\n const limitedDigits = digitsOnly.slice(0, 8);\r\n \r\n let masked = '';\r\n \r\n for (let i = 0; i < limitedDigits.length; i++) {\r\n if (i === 2 || i === 4) {\r\n masked += '/';\r\n }\r\n masked += limitedDigits[i];\r\n }\r\n \r\n return masked;\r\n}\r\n\r\nexport function isValidDateFormat(value: string, locale: Locale = 'pt-br'): boolean {\r\n const dateRegex = locale === 'en-us'\r\n ? /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/\\d{4}$/\r\n : /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n \r\n return dateRegex.test(value);\r\n}\r\nexport function parseDate(dateString: string, locale: Locale = 'pt-br'): Date | null {\r\n if (!dateString || typeof dateString !== 'string') {\r\n return null;\r\n }\r\n\r\n const dateRegex = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\r\n const match = dateString.trim().match(dateRegex);\r\n \r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const [, first, second, yearStr] = match;\r\n let day: number;\r\n let month: number;\r\n const year = parseInt(yearStr, 10);\r\n\r\n if (locale === 'en-us') {\r\n month = parseInt(first, 10);\r\n day = parseInt(second, 10);\r\n } else {\r\n day = parseInt(first, 10);\r\n month = parseInt(second, 10);\r\n }\r\n\r\n if (month < 1 || month > 12 || day < 1 || day > 31) {\r\n return null;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n \r\n if (date.getFullYear() !== year || \r\n date.getMonth() !== month - 1 || \r\n date.getDate() !== day) {\r\n return null;\r\n }\r\n\r\n return date;\r\n}\r\n\r\nexport function validatePartialDate(value: string, locale: Locale = 'pt-br'): 'valid' | 'invalid' | 'incomplete' {\r\n if (value.length === 0) return 'valid';\r\n\r\n if (value.length === 2) {\r\n const n = parseInt(value, 10);\r\n const isValid = locale === 'en-us' ? n >= 1 && n <= 12 : n >= 1 && n <= 31;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 5) {\r\n const parts = value.split('/');\r\n const a = parseInt(parts[0], 10);\r\n const b = parseInt(parts[1], 10);\r\n const isValid = locale === 'en-us'\r\n ? a >= 1 && a <= 12 && b >= 1 && b <= 31\r\n : a >= 1 && a <= 31 && b >= 1 && b <= 12;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 10) {\r\n if (!isValidDateFormat(value, locale)) return 'invalid';\r\n const parsed = parseDate(value, locale);\r\n return parsed ? 'valid' : 'invalid';\r\n }\r\n\r\n return 'incomplete';\r\n}","import { Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useEffect, useRef, useCallback, useId, KeyboardEvent } from 'react';\r\n\r\nimport Calendar from '../Calendar/Calendar';\r\nimport Popover from '../Popover';\r\nimport TextField from '../TextField';\r\nimport styles from './DatePicker.module.scss';\r\nimport { formatDate, parseDate, applyDateMask, isValidDateFormat, validatePartialDate } from './Utils/DateUtils';\r\n\r\nimport type { DatePickerProps } from './DatePicker.types';\r\n\r\nconst DatePicker: React.FC<DatePickerProps> = ({\r\n locale = 'pt-br',\r\n calendarSide = 'bottom',\r\n calendarAlign = 'start',\r\n helperText,\r\n required = false,\r\n label = 'Data',\r\n value,\r\n defaultValue,\r\n onChange,\r\n disabled = false,\r\n error: externalError,\r\n minDate,\r\n maxDate,\r\n 'data-testid': testId,\r\n className,\r\n ...rest\r\n}) => {\r\n const fieldId = useId();\r\n const calendarId = `${fieldId}-calendar`;\r\n\r\n const isControlled = value !== undefined;\r\n const [internalDate, setInternalDate] = useState<Date | null>(defaultValue || null);\r\n const [tempInputValue, setTempInputValue] = useState<string>('');\r\n const [isEditing, setIsEditing] = useState<boolean>(false);\r\n const [internalError, setInternalError] = useState<string>('');\r\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\r\n const [currentDate, setCurrentDate] = useState<Date>(new Date());\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n\r\n const currentSelectedDate = isControlled ? value : internalDate;\r\n const hasValidationError = !!(externalError || internalError);\r\n const displayValue = isEditing ? tempInputValue : (currentSelectedDate ? formatDate(currentSelectedDate, locale) : '');\r\n\r\n const combinedHelperText = externalError && helperText\r\n ? `${helperText} • ${externalError}`\r\n : externalError || helperText || '';\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n const target = event.target as Element;\r\n const isInsideWrapper = wrapperRef.current?.contains(target as Node);\r\n const isInsideCalendar = !!target.closest?.('[data-radix-popper-content-wrapper]');\r\n if (!isInsideWrapper && !isInsideCalendar) {\r\n setShowCalendar(false);\r\n }\r\n }\r\n if (showCalendar) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n }\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showCalendar]);\r\n\r\n const handleDateChange = useCallback((newDate: Date | null) => {\r\n if (!isControlled) {\r\n setInternalDate(newDate);\r\n }\r\n onChange?.(newDate);\r\n setIsEditing(false);\r\n setTempInputValue('');\r\n setInternalError('');\r\n if (newDate) {\r\n setCurrentDate(newDate);\r\n }\r\n }, [isControlled, onChange]);\r\n\r\n const handleIconClick = () => {\r\n setShowCalendar((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (key === 'Enter') {\r\n if (showCalendar) {\r\n if (currentSelectedDate) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n if (tempInputValue.length === 10 && isValidDateFormat(tempInputValue, locale)) {\r\n const parsedDate = parseDate(tempInputValue, locale);\r\n if (parsedDate && !isNaN(parsedDate.getTime())) {\r\n handleDateChange(parsedDate);\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n } else {\r\n setShowCalendar(true);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n if (key === 'Escape') {\r\n if (showCalendar) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const controlKeys = [\r\n 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight',\r\n ];\r\n\r\n if (controlKeys.includes(key)) {\r\n return;\r\n }\r\n\r\n if (!/^\\d$/.test(key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const handleDaySelect = (newSelectedDate: Date) => {\r\n setShowCalendar(false);\r\n handleDateChange(newSelectedDate);\r\n };\r\n\r\n const handleFocus = () => {\r\n if (!disabled) {\r\n setShowCalendar(true);\r\n }\r\n };\r\n\r\n const handleTextFieldChange = (value: string) => {\r\n const maskedValue = applyDateMask(value, locale);\r\n\r\n setTempInputValue(maskedValue);\r\n setIsEditing(true);\r\n\r\n if (maskedValue === '') {\r\n setInternalError('');\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n return;\r\n }\r\n\r\n const result = validatePartialDate(maskedValue, locale);\r\n\r\n if (result === 'invalid') {\r\n setInternalError('invalid');\r\n if (maskedValue.length === 10) {\r\n if (!isControlled) setInternalDate(null);\r\n onChange?.(null);\r\n }\r\n } else if (result === 'valid') {\r\n setInternalError('');\r\n if (maskedValue.length === 10) {\r\n const parsedDate = parseDate(maskedValue, locale);\r\n if (parsedDate) {\r\n handleDateChange(parsedDate);\r\n setCurrentDate(parsedDate);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div ref={wrapperRef} className={clsx(styles.datePicker, className)} {...rest}>\r\n <Popover\r\n open={showCalendar}\r\n onOpenChange={setShowCalendar}\r\n asAnchor={true}\r\n trigger={\r\n <TextField\r\n className={styles.textfieldContainer}\r\n type=\"tel\"\r\n icon={\r\n <Calendar16Regular \r\n onClick={!disabled ? handleIconClick : undefined}\r\n className={clsx(\r\n styles.datePickerIcon,\r\n disabled && styles.datePickerIconDisabled\r\n )}\r\n />\r\n }\r\n onChange={(e: string | number) => {\r\n handleTextFieldChange(String(e));\r\n }}\r\n onKeyDown={handleKeyDown}\r\n onFocus={handleFocus}\r\n persistIcon\r\n autoComplete=\"off\"\r\n value={displayValue}\r\n helperText={!externalError ? (helperText || undefined) : undefined}\r\n errorMessage={externalError ? combinedHelperText : undefined}\r\n error={hasValidationError ? true : undefined}\r\n maxLength={10}\r\n required={required}\r\n label={label}\r\n disabled={disabled}\r\n id={fieldId}\r\n data-testid={testId}\r\n placeholder={locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY'}\r\n aria-label=\"Open calendar\"\r\n aria-expanded={showCalendar}\r\n aria-controls={calendarId}\r\n aria-invalid={hasValidationError}\r\n aria-describedby={externalError ? undefined : (helperText ? `${fieldId}-help` : undefined)}\r\n /> \r\n }\r\n content={\r\n <Calendar\r\n selected={currentSelectedDate}\r\n currentDate={currentDate}\r\n onDateChange={setCurrentDate}\r\n onDaySelect={handleDaySelect}\r\n locale={locale}\r\n format={locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy'}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n id={calendarId}\r\n onClear={() => {\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n }}\r\n /> \r\n }\r\n side={calendarSide}\r\n align={calendarAlign}\r\n sideOffset={8}\r\n /> \r\n </div>\r\n );\r\n};\r\n\r\nexport default React.memo(DatePicker);","import { AlertDialog } from \"radix-ui\";\r\nimport clsx from \"clsx\";\r\nimport * as React from \"react\";\r\n\r\n\r\nimport styles from './Dialog.module.scss';\r\nimport { DialogProps } from \"./Dialog.types\";\r\nimport Button from '../Button/Button';\r\n\r\nconst Dialog: React.FC<DialogProps> = ({\r\n\tshow = false,\r\n title,\r\n bodyContent,\r\n textPrimaryAction,\r\n textSecondaryAction,\r\n\tonPrimaryAction,\r\n\tonSecondaryAction,\r\n\tclassName,\r\n ...rest\r\n}) => (\r\n\t<AlertDialog.Root open={show} {...rest}>\r\n\t\t<AlertDialog.Portal>\r\n\t\t\t<AlertDialog.Overlay className={styles.DialogOverlay} />\r\n\t\t\t<AlertDialog.Content className={clsx(styles.DialogContent, className)}>\r\n\t\t\t\t<AlertDialog.Title className={styles.DialogTitle}>\r\n\t\t\t\t\t{title}\r\n\t\t\t\t</AlertDialog.Title>\r\n\t\t\t\t<AlertDialog.Description className={styles.DialogDescription}>\r\n\t\t\t\t\t{bodyContent}\r\n\t\t\t\t</AlertDialog.Description>\r\n\t\t\t\t<div className={styles.DivButtons}>\r\n\t\t\t\t\t{!!(textSecondaryAction && textSecondaryAction.trim()) && (\r\n\t\t\t\t\t\t<AlertDialog.Cancel asChild>\r\n\t\t\t\t\t\t\t<Button variant=\"outlined\" {...(onSecondaryAction && { onClick: onSecondaryAction })}>{textSecondaryAction}</Button>\r\n\t\t\t\t\t\t</AlertDialog.Cancel>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<AlertDialog.Action asChild>\r\n\t\t\t\t\t\t<Button variant=\"filled\" {...(onPrimaryAction && { onClick: onPrimaryAction })}>{textPrimaryAction}</Button>\r\n\t\t\t\t\t</AlertDialog.Action>\r\n\t\t\t\t</div>\r\n\t\t\t</AlertDialog.Content>\r\n\t\t</AlertDialog.Portal>\r\n\t</AlertDialog.Root>\r\n);\r\n\r\nexport default Dialog;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useEffect, useState, useCallback, ReactNode, ReactElement } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport styles from './Drawer.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { DrawerProps, DrawerExampleProps } from './Drawer.types';\r\n\r\nconst Drawer: React.FC<DrawerProps> = ({\r\n children,\r\n headerContent,\r\n customWidth = '400px',\r\n onClose,\r\n title = 'Título',\r\n isOpen = false,\r\n onOpen,\r\n className,\r\n id,\r\n disabled = false,\r\n onOverlayClick,\r\n closeOnOverlayClick = true,\r\n closeOnEscape = true,\r\n ...rest\r\n}) => {\r\n\r\n const internalClose = useCallback((): void => {\r\n if (disabled) return;\r\n\r\n onClose();\r\n }, [onClose, disabled]);\r\n\r\n const handleOverlayClick = useCallback((): void => {\r\n if (onOverlayClick) {\r\n onOverlayClick();\r\n }\r\n \r\n if (closeOnOverlayClick && !disabled) {\r\n internalClose();\r\n }\r\n }, [onOverlayClick, closeOnOverlayClick, internalClose, disabled]);\r\n\r\n useEffect(() => {\r\n if (!isOpen || !closeOnEscape) return;\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n internalClose();\r\n }\r\n };\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => window.removeEventListener('keydown', handleKeyDown);\r\n }, [isOpen, internalClose, closeOnEscape]);\r\n\r\n useEffect(() => {\r\n if (isOpen && !disabled) {\r\n if (onOpen) {\r\n onOpen();\r\n }\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n document.body.style.overflow = 'unset';\r\n }\r\n\r\n return () => {\r\n document.body.style.overflow = 'unset';\r\n };\r\n }, [isOpen, onOpen, disabled]);\r\n\r\n const handleDrawerClick = (event: React.MouseEvent<HTMLDivElement>): void => {\r\n event.stopPropagation();\r\n };\r\n\r\n const handleCloseClick = (event: React.MouseEvent<HTMLElement>): void => {\r\n event.stopPropagation();\r\n internalClose();\r\n };\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={clsx(styles['drawerShadow'], {\r\n [styles['drawerShadow--visible']]: isOpen,\r\n })}\r\n onClick={handleOverlayClick}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n data-testid=\"drawer-overlay\"\r\n />\r\n <div\r\n className={clsx(\r\n styles['drawerSidebar'],\r\n {\r\n [styles['drawerSidebar--open']]: isOpen,\r\n [styles['drawerSidebar--disabled']]: disabled,\r\n },\r\n className\r\n )}\r\n style={{\r\n '--drawer-custom-width': customWidth,\r\n } as React.CSSProperties}\r\n onClick={handleDrawerClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={id ? `${id}-title` : 'drawer-title'}\r\n aria-hidden={!isOpen}\r\n data-testid=\"drawer-panel\"\r\n id={id}\r\n {...rest}\r\n >\r\n \r\n <div className={styles.drawerTitleClose}>\r\n <div \r\n className={styles.drawerTitle} \r\n id={id ? `${id}-title` : 'drawer-title'}\r\n >\r\n {title}\r\n </div>\r\n \r\n {headerContent && (\r\n <div className={styles.drawerHeaderContent}>{headerContent}</div>\r\n )}\r\n\r\n <Button \r\n onClick={handleCloseClick}\r\n variant='outlined'\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size='lg'\r\n tooltipText='Fechar'\r\n />\r\n </div>\r\n <div \r\n className={styles.drawerChildren} \r\n data-testid=\"drawer-content\"\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </>,\r\n document.body\r\n );\r\n};\r\n\r\nexport default Drawer;","import { Search16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useId } from 'react';\r\n\r\nimport styles from './Search.module.scss';\r\n\r\nimport type { SearchProps } from './Search.types';\r\n\r\nconst Search = React.forwardRef<HTMLInputElement, SearchProps>(\r\n (\r\n {\r\n placeholder = 'Dica do que deve ser buscado',\r\n disabled = false,\r\n value,\r\n onChange,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n onClear,\r\n onClick,\r\n onMouseDown,\r\n id,\r\n className,\r\n 'data-testid': testId, \r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const [internalValue, setInternalValue] = useState<string>('');\r\n const isControlled = value !== undefined && onChange !== undefined;\r\n const currentValue = isControlled ? value : internalValue;\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n onChange?.(e);\r\n } else {\r\n setInternalValue(e.target.value);\r\n }\r\n };\r\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onFocus?.(e);\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onBlur?.(e);\r\n };\r\n const clearInputSearch = (): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n const syntheticEvent = {\r\n target: { value: '' },\r\n currentTarget: { value: '' },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n\r\n onChange?.(syntheticEvent);\r\n } else {\r\n setInternalValue('');\r\n }\r\n onClear?.();\r\n };\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onKeyDown?.(e);\r\n };\r\n return (\r\n <div \r\n className={clsx(\r\n styles.search,\r\n { [styles.disabled]: disabled },\r\n className\r\n )} \r\n onClick={onClick} \r\n onMouseDown={onMouseDown}\r\n role={onClick || onMouseDown ? \"button\" : undefined}\r\n tabIndex={onClick || onMouseDown ? 0 : undefined}\r\n onKeyDown={onClick || onMouseDown ? (e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n onClick?.(e as any);\r\n }\r\n } : undefined}\r\n >\r\n <span\r\n className={clsx(styles.searchLeftIcon, { [styles.disabled]: disabled })}\r\n tabIndex={-1}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n >\r\n <Search16Regular />\r\n </span>\r\n\r\n <input\r\n ref={ref}\r\n id={inputId}\r\n type=\"text\"\r\n placeholder={placeholder}\r\n aria-label={placeholder}\r\n value={currentValue || ''}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n disabled={disabled}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n data-testid={testId}\r\n {...rest}\r\n className={clsx({ [styles.inputWithClearIcon]: currentValue && currentValue.length > 0 })} \r\n />\r\n {currentValue && currentValue.length > 0 && (\r\n <span\r\n className={styles.searchClearIcon}\r\n aria-hidden=\"true\"\r\n onClick={clearInputSearch}\r\n >\r\n <Dismiss16Regular />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nSearch.displayName = 'Search';\r\n\r\nexport default Search;\r\n","// Filter.tsx\r\nimport { ChevronDownRegular, Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useCallback,\r\n useMemo,\r\n} from 'react';\r\n\r\nimport Badge from '../Badge';\r\nimport Button from '../Button';\r\nimport Calendar from '../Calendar/Calendar';\r\nimport Checkbox from '../Checkbox';\r\nimport Popover from '../Popover/Popover';\r\nimport Search from '../Search';\r\nimport styles from './Filter.module.scss';\r\n\r\nimport type { FilterItem, FilterProps } from './Filter.types';\r\n\r\ntype SelectionState = Record<string, boolean>;\r\n\r\nconst Filter: React.FC<FilterProps> = ({\r\n items,\r\n type = 'checkbox',\r\n selectedIds,\r\n onApplyFilter,\r\n placeholder = 'Selecionar...',\r\n enableSearch = false,\r\n buttonText = 'Filter',\r\n icon,\r\n variant = 'outlined',\r\n onOpen,\r\n onClose,\r\n side = 'bottom',\r\n align = 'start',\r\n disabled = false,\r\n className,\r\n selectedDate,\r\n onDateSelect,\r\n onClearDate,\r\n minDate,\r\n maxDate,\r\n locale = 'pt-br',\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempSelectedItems, setTempSelectedItems] = useState<SelectionState>({});\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [currentCalendarDate, setCurrentCalendarDate] = useState<Date | null>(\r\n () => selectedDate || new Date()\r\n );\r\n\r\n useEffect(() => {\r\n if (selectedDate) {\r\n setCurrentCalendarDate(selectedDate);\r\n }\r\n }, [selectedDate]);\r\n\r\n const handleCalendarNavigation = useCallback((date: Date) => {\r\n setCurrentCalendarDate(date);\r\n }, []);\r\n\r\n const handleDateSelection = useCallback(\r\n (date: Date) => {\r\n onDateSelect?.(date);\r\n setIsOpen(false);\r\n onClose?.();\r\n },\r\n [onDateSelect, onClose]\r\n );\r\n\r\n const handleClear = useCallback((): void => {\r\n onClearDate?.();\r\n setCurrentCalendarDate(new Date());\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClearDate, onClose]);\r\n\r\n const handleOpenChange = useCallback(\r\n (open: boolean) => {\r\n if (disabled && open) return;\r\n if (open) {\r\n const initial: SelectionState = {};\r\n selectedIds?.forEach((itemId) => { initial[itemId] = true; });\r\n setTempSelectedItems(initial);\r\n setSearchQuery('');\r\n onOpen?.();\r\n } else {\r\n onClose?.();\r\n }\r\n setIsOpen(open);\r\n },\r\n [disabled, selectedIds, onOpen, onClose]\r\n );\r\n\r\n const toggleItem = useCallback(\r\n (itemId: string, item: FilterItem) => {\r\n if (item.disabled) return;\r\n setTempSelectedItems((prev) => {\r\n if (type === 'checkbox') {\r\n return { ...prev, [itemId]: !prev[itemId] };\r\n }\r\n return prev[itemId] ? {} : { [itemId]: true };\r\n });\r\n },\r\n [type]\r\n );\r\n\r\n const handleApplyFilter = useCallback(() => {\r\n const ids = Object.keys(tempSelectedItems).filter((k) => tempSelectedItems[k]);\r\n onApplyFilter?.(ids);\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [tempSelectedItems, onApplyFilter, onClose]);\r\n\r\n const handleClearFilter = useCallback(() => {\r\n setTempSelectedItems({});\r\n onApplyFilter?.([]);\r\n }, [onApplyFilter]);\r\n\r\n const handleSearchChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchQuery(e.target.value);\r\n }, []);\r\n\r\n const handleSearchKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n setSearchQuery('');\r\n }\r\n },\r\n []\r\n );\r\n\r\n const searchVisible = enableSearch || (items?.length ?? 0) > 4;\r\n\r\n const filteredItems = useMemo(() => {\r\n if (!items?.length) return [];\r\n if (!searchQuery.trim()) return items;\r\n const q = searchQuery.toLowerCase();\r\n return items.filter((item) => item.text.toLowerCase().includes(q));\r\n }, [items, searchQuery]);\r\n\r\n const buttonDisplayText = useMemo(() => {\r\n if (type === 'calendar' && selectedDate) {\r\n return selectedDate.toLocaleDateString(\r\n locale === 'pt-br' ? 'pt-BR' : 'en-US'\r\n );\r\n }\r\n if (!selectedIds?.length) return buttonText;\r\n const firstItem = items?.find((item) => item.id === selectedIds[0]);\r\n return firstItem?.text || selectedIds[0];\r\n }, [type, selectedDate, selectedIds, items, buttonText, locale]);\r\n\r\n const getBadgeValue = useCallback(() => {\r\n if (!selectedIds || selectedIds.length <= 1) return null;\r\n return selectedIds.length - 1;\r\n }, [selectedIds]);\r\n\r\n const filterClass = clsx(styles.container, className);\r\n\r\n const triggerButton = (\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={\r\n type === 'calendar' ? <Calendar16Regular /> : <ChevronDownRegular />\r\n }\r\n iconPosition=\"right\"\r\n size=\"lg\"\r\n >\r\n <div className={styles.buttonContent}>\r\n {icon && <span className={styles.buttonIcon}>{icon}</span>}\r\n <span className={styles.buttonText}>{buttonDisplayText}</span>\r\n <span className={clsx(styles.buttonArrow, { [styles.buttonArrowOpen]: isOpen })}>\r\n {getBadgeValue() && (\r\n <Badge badgeValue={`+${getBadgeValue()}`} filterVariant />\r\n )}\r\n </span>\r\n </div>\r\n </Button>\r\n );\r\n\r\n const popoverContent =\r\n type === 'calendar' ? (\r\n <Calendar\r\n currentDate={currentCalendarDate}\r\n selected={selectedDate}\r\n onDaySelect={handleDateSelection}\r\n onDateChange={handleCalendarNavigation}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n onClear={handleClear}\r\n id={`filter-calendar-${id || ''}`}\r\n aria-label=\"Selecionar data para filtro\"\r\n />\r\n ) : (\r\n <div className={styles.panel}>\r\n {searchVisible && (\r\n <div className={styles.search}>\r\n <Search\r\n value={searchQuery}\r\n placeholder={placeholder}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={() => setSearchQuery('')}\r\n />\r\n </div>\r\n )}\r\n <ul\r\n className={styles.list}\r\n role=\"listbox\"\r\n aria-multiselectable={type === 'checkbox'}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) => {\r\n const itemId = item.id || `filter-item-${index}`;\r\n const isSelected = !!tempSelectedItems[itemId];\r\n return (\r\n <li\r\n key={itemId}\r\n role=\"option\"\r\n aria-selected={isSelected}\r\n aria-disabled={item.disabled}\r\n className={clsx(styles.item, {\r\n [styles.itemSelected]: isSelected,\r\n [styles.itemDisabled]: item.disabled,\r\n })}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => toggleItem(itemId, item)}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n toggleItem(itemId, item);\r\n }\r\n }}\r\n >\r\n {type === 'checkbox' && (\r\n <Checkbox\r\n checked={isSelected}\r\n disabled={item.disabled}\r\n label=\"\"\r\n />\r\n )}\r\n {type === 'icon' && item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <span className={styles.itemText}>{item.text}</span>\r\n </li>\r\n );\r\n })\r\n ) : (\r\n <li className={styles.noResults} role=\"status\" aria-live=\"polite\">\r\n Nenhum item encontrado\r\n </li>\r\n )}\r\n </ul>\r\n <div className={styles.footer}>\r\n <Button fullWidth variant=\"outlined\" onClick={handleClearFilter}>\r\n Limpar\r\n </Button>\r\n <Button fullWidth onClick={handleApplyFilter}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={filterClass} id={id} {...rest}>\r\n <Popover\r\n open={isOpen}\r\n onOpenChange={handleOpenChange}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={(e) => e.preventDefault()}\r\n trigger={triggerButton}\r\n content={popoverContent}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Filter;\r\n\r\n","import clsx from 'clsx';\r\nimport { RadioGroup } from 'radix-ui';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Radio.module.scss';\r\nimport { RadioGroupProps } from './Radio.types';\r\n\r\nconst Radio: React.FC<RadioGroupProps> = ({\r\n items,\r\n onValueChange,\r\n defaultValue,\r\n name,\r\n id,\r\n ariaLabel,\r\n orientation = 'vertical',\r\n className,\r\n ...rest\r\n}) => {\r\n const componentId = id || useId();\r\n return (\r\n <RadioGroup.Root\r\n id={componentId}\r\n className={clsx(styles.root, className)}\r\n defaultValue={defaultValue}\r\n onValueChange={onValueChange}\r\n name={name}\r\n aria-label={ariaLabel}\r\n data-orientation={orientation}\r\n orientation={orientation}\r\n {...rest}\r\n >\r\n {items.map(({ id, value, disabled, label }) => {\r\n const itemKey = id ?? value;\r\n const uniqueId = `${componentId}-item-${value}`;\r\n return (\r\n <div\r\n key={itemKey}\r\n className={clsx(styles.wrapper, { [styles.disabled]: disabled })}\r\n >\r\n <label className={styles.labelWrapper} htmlFor={uniqueId}>\r\n <div className={styles.itemWrapper}>\r\n <RadioGroup.Item\r\n disabled={disabled}\r\n className={styles.item}\r\n value={value}\r\n id={uniqueId}\r\n data-disabled={disabled}\r\n >\r\n <RadioGroup.Indicator className={styles.indicator} />\r\n </RadioGroup.Item>\r\n </div>\r\n <span className={styles.labelText}>{label}</span>\r\n </label>\r\n </div>\r\n );\r\n })}\r\n </RadioGroup.Root>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n","import clsx from \"clsx\";\r\nimport React, { useId, useCallback, useState, useEffect } from \"react\";\r\n\r\nimport styles from './ListItem.module.scss';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport Radio from '../Radio/Radio';\r\n\r\nimport type { ListItemVariant, ListItemProps } from './ListItem.types';\r\n\r\nconst ListItem: React.FC<ListItemProps> = ({\r\n id,\r\n className,\r\n variant = 'text',\r\n text,\r\n name,\r\n subText,\r\n disabled = false,\r\n checked = false,\r\n selected = false,\r\n onClick,\r\n onChange,\r\n icon,\r\n value,\r\n showSubText = false,\r\n hovered = false,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const itemId = id || componentId;\r\n const [internalChecked, setInternalChecked] = useState<boolean>(checked);\r\n const [internalSelected, setInternalSelected] = useState<boolean>(selected);\r\n\r\n const handleCheckboxClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newChecked = !internalChecked;\r\n setInternalChecked(newChecked);\r\n onChange?.(newChecked);\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\r\n\r\n const handleRadioClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n if (!internalChecked) {\r\n setInternalChecked(true);\r\n onChange?.(true);\r\n }\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\r\n\r\n const handleTextOrIconClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newSelected = !internalSelected;\r\n setInternalSelected(newSelected);\r\n onClick?.(e);\r\n }, [disabled, internalSelected, onClick]);\r\n\r\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLLIElement>): void => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e);\r\n break;\r\n case 'radio':\r\n handleRadioClick(e);\r\n break;\r\n case 'text':\r\n case 'icon':\r\n default:\r\n handleTextOrIconClick(e);\r\n break;\r\n }\r\n }\r\n }, [disabled, variant, handleCheckboxClick, handleRadioClick, handleTextOrIconClick]);\r\n\r\n useEffect(() => {\r\n setInternalChecked(checked);\r\n }, [checked]);\r\n\r\n useEffect(() => {\r\n setInternalSelected(selected);\r\n }, [selected]);\r\n\r\n const renderVariantContent = useCallback((): React.ReactNode => {\r\n const validVariants: ListItemVariant[] = ['text', 'checkbox', 'radio', 'icon'];\r\n const currentVariant = validVariants.includes(variant) ? variant : 'text';\r\n\r\n switch (currentVariant) {\r\n case 'checkbox':\r\n return (\r\n <>\r\n <Checkbox\r\n checked={internalChecked}\r\n disabled={disabled}\r\n onCheckedChange={() => handleCheckboxClick({} as React.MouseEvent<HTMLElement>)}\r\n />\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__text']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'radio':\r\n return (\r\n <>\r\n <div className={styles['zds-list-item__wrapper-radio']}>\r\n <span className={styles['zds-list-item__radio']} aria-hidden=\"true\">\r\n <Radio\r\n name={name}\r\n onValueChange={() => handleRadioClick({} as React.MouseEvent<HTMLElement>)}\r\n items= {[{\r\n value: value || '',\r\n label: '',\r\n disabled: disabled}]}\r\n aria-labelledby={`${itemId}-text`}\r\n />\r\n </span>\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleRadioClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'icon':\r\n return (\r\n <>\r\n <div className={styles['zds-list-item__wrapper-icon']}>\r\n {icon}\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'text':\r\n default:\r\n return (\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n }, [variant, itemId, internalChecked, disabled, handleCheckboxClick, handleRadioClick, handleTextOrIconClick, value, text, showSubText, subText, icon, name]);\r\n\r\n const listItemClass = clsx(\r\n styles['zds-list-item__container'],\r\n {\r\n [styles[`zds-list-item--${variant}`]]: variant,\r\n [styles['zds-list-item--disabled']]: disabled,\r\n [styles['zds-list-item--hovered']]: hovered,\r\n [className || '']: className\r\n }\r\n );\r\n\r\n const getAriaChecked = useCallback((): boolean | undefined => {\r\n if (variant === 'checkbox' || variant === 'radio') {\r\n return internalChecked;\r\n }\r\n return undefined;\r\n }, [variant, internalChecked]);\r\n\r\n return (\r\n <li\r\n className={listItemClass}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n aria-selected={variant === 'text' || variant === 'icon' ? internalSelected : undefined}\r\n aria-disabled={disabled}\r\n aria-checked={getAriaChecked()}\r\n aria-labelledby={`${itemId}-text`}\r\n aria-describedby={showSubText && subText ? `${itemId}-subtext` : undefined}\r\n data-testid=\"list-item\"\r\n {...rest}\r\n >\r\n {renderVariantContent()}\r\n </li>\r\n );\r\n};\r\n\r\nexport default ListItem;","import { memo } from 'react';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport { DefaultMenuItemProps } from '../Menu.types';\r\nimport styles from '../Menu.module.scss';\r\nimport clsx from 'clsx';\r\n\r\nexport const MenuItem = memo(({ item, isSelected, onSelect }: DefaultMenuItemProps) => {\r\n \r\n const handleSelect = () => {\r\n onSelect(item);\r\n };\r\n\r\n return (\r\n <DropdownMenu.Item\r\n className={clsx(styles.item)}\r\n data-selected={isSelected || undefined}\r\n onSelect={handleSelect}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && <span className={styles.itemIcon}>{item.icon}</span>}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n </DropdownMenu.Item>\r\n );\r\n});\r\n\r\nMenuItem.displayName = 'MenuItem';\r\n\r\nexport default MenuItem;\r\n","import { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\nexport interface UseMenuLogicProps {\r\n selectedItems?: MenuItemProps[];\r\n onItemSelect?: (items: MenuItemProps) => void;\r\n onOpenChange?: (open: boolean) => void;\r\n}\r\n\r\nexport interface UseMenuLogicReturn {\r\n open: boolean;\r\n internalSelectedItems: MenuItemProps[];\r\n setOpen: (open: boolean) => void;\r\n handleItemSelect: (item: MenuItemProps) => void;\r\n isItemSelected: (item: MenuItemProps) => boolean;\r\n}\r\n\r\nexport function useMenuLogic({\r\n selectedItems = [],\r\n onItemSelect,\r\n onOpenChange,\r\n}: UseMenuLogicProps): UseMenuLogicReturn {\r\n \r\n const isControlledRef = useRef(selectedItems !== undefined);\r\n const prevSelectedItemsRef = useRef<MenuItemProps[]>(selectedItems);\r\n\r\n const [open, setOpenState] = useState(false);\r\n const [internalSelectedItems, setInternalSelectedItems] = useState<MenuItemProps[]>(\r\n selectedItems || []\r\n );\r\n\r\n const getItemKey = useCallback((item: MenuItemProps): string => {\r\n return item.value ?? item.id ?? item.text ?? '';\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isControlledRef.current || !selectedItems) return;\r\n\r\n const prevKeys = prevSelectedItemsRef.current.map(getItemKey).sort().join(',');\r\n const currentKeys = selectedItems.map(getItemKey).sort().join(',');\r\n\r\n if (prevKeys !== currentKeys) {\r\n setInternalSelectedItems(selectedItems);\r\n prevSelectedItemsRef.current = selectedItems;\r\n }\r\n }, [selectedItems, getItemKey]);\r\n\r\n const setOpen = useCallback(\r\n (newOpen: boolean) => {\r\n setOpenState(newOpen);\r\n onOpenChange?.(newOpen);\r\n },\r\n [onOpenChange]\r\n );\r\n\r\n const isItemSelected = useCallback(\r\n (item: MenuItemProps): boolean => {\r\n const itemKey = getItemKey(item);\r\n if (!itemKey) return false;\r\n\r\n return internalSelectedItems.some(\r\n (selected) => getItemKey(selected) === itemKey\r\n );\r\n },\r\n [internalSelectedItems, getItemKey]\r\n );\r\n\r\n const handleItemSelect = useCallback(\r\n (item: MenuItemProps) => {\r\n const newSelection = [item];\r\n setInternalSelectedItems(newSelection);\r\n\r\n if (onItemSelect) {\r\n onItemSelect(item);\r\n }\r\n\r\n setOpen(false);\r\n },\r\n [onItemSelect, setOpen]\r\n );\r\n\r\n return {\r\n open,\r\n internalSelectedItems,\r\n setOpen,\r\n handleItemSelect,\r\n isItemSelected,\r\n };\r\n}\r\n\r\nexport default useMenuLogic;\r\n","export const normalizeText = (text: React.ReactNode): string => {\r\n if (typeof text === 'string') return text.toLowerCase();\r\n if (typeof text === 'number') return text.toString().toLowerCase();\r\n if (typeof text === 'bigint') return text.toString().toLowerCase();\r\n if (typeof text === 'boolean') return text.toString().toLowerCase();\r\n return '';\r\n };\r\n\r\n","import { useCallback, useEffect, useRef } from 'react';\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\ninterface UseSearchLogicProps {\r\n items: MenuItemProps[];\r\n searchValue: string;\r\n searchTerm: string;\r\n enableApiSearch?: boolean;\r\n onApiSearch?: (term: string) => void;\r\n}\r\n\r\ninterface UseSearchLogicReturn {\r\n filteredItems: MenuItemProps[];\r\n}\r\n\r\nexport const useSearchLogic = ({\r\n items,\r\n searchValue,\r\n searchTerm,\r\n enableApiSearch,\r\n onApiSearch,\r\n}: UseSearchLogicProps): UseSearchLogicReturn => {\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const lastSearchTermRef = useRef<string>('');\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n\r\n const debouncedApiSearch = useCallback(\r\n (term: string) => {\r\n if (lastSearchTermRef.current === term) {\r\n return;\r\n }\r\n\r\n lastSearchTermRef.current = term;\r\n\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(term);\r\n }\r\n }, 200);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && !hasInitialSearchRef.current && onApiSearch) {\r\n hasInitialSearchRef.current = true;\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (!enableApiSearch) return;\r\n\r\n if (searchValue.trim() === '') {\r\n debouncedApiSearch('');\r\n return;\r\n }\r\n if (searchTerm !== undefined && searchTerm.trim() !== '') {\r\n debouncedApiSearch(searchTerm);\r\n }\r\n }, [searchTerm, searchValue, enableApiSearch, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const filteredItems = useCallback((): MenuItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchValue.trim()) {\r\n return items;\r\n }\r\n\r\n const normalized = normalizeText(searchValue).toLowerCase();\r\n\r\n return items.filter((item) => {\r\n const text = normalizeText(item.text || '').toLowerCase();\r\n const subText = normalizeText(item.subText || '').toLowerCase();\r\n\r\n return text.includes(normalized) || subText.includes(normalized);\r\n });\r\n }, [items, searchValue, enableApiSearch]);\r\n\r\n return { filteredItems: filteredItems() };\r\n};\r\n","import { ChevronRight16Filled } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\r\n\r\nimport Search from '../Search';\r\nimport MenuItem from './components/MenuItem';\r\nimport { useMenuLogic } from './hooks/useMenuLogic';\r\nimport { useSearchLogic } from './hooks/useSearchLogic';\r\nimport styles from './Menu.module.scss';\r\nimport { MenuItemProps, MenuProps } from './Menu.types';\r\n\r\nconst Menu: React.FC<MenuProps> = ({\r\n items,\r\n children,\r\n onItemSelect,\r\n search,\r\n enableInfiniteScroll,\r\n onScrollEnd,\r\n isLoadingMore,\r\n onApiSearch,\r\n enableApiSearch,\r\n selectedItems,\r\n onOpenChange,\r\n align = 'start',\r\n className,\r\n maxHeight = 400,\r\n ...rest\r\n}) => {\r\n const itemsWrapperRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n const observerRef = useRef<IntersectionObserver | null>(null);\r\n const sentinelRef = useRef<HTMLDivElement | null>(null);\r\n const onScrollEndRef = useRef(onScrollEnd);\r\n const isLoadingMoreRef = useRef(isLoadingMore);\r\n\r\n const [searchInput, setSearchInput] = useState('');\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n const maxHeightStyle = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\r\n\r\n const { open, setOpen, handleItemSelect: handleItemSelectLogic, isItemSelected } = useMenuLogic({\r\n selectedItems,\r\n onItemSelect,\r\n onOpenChange,\r\n });\r\n\r\n const handleItemSelect = useCallback((item: MenuItemProps) => {\r\n handleItemSelectLogic(item);\r\n }, [handleItemSelectLogic]);\r\n\r\n const { filteredItems } = useSearchLogic({\r\n items,\r\n searchValue: searchInput,\r\n searchTerm: searchTerm,\r\n onApiSearch,\r\n enableApiSearch,\r\n });\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setSearchInput(value);\r\n\r\n if (value.trim() === '') {\r\n setSearchTerm('');\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n e.stopPropagation();\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n setSearchTerm(searchInput);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onScrollEndRef.current = onScrollEnd;\r\n isLoadingMoreRef.current = isLoadingMore;\r\n }, [onScrollEnd, isLoadingMore]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll) {\r\n return;\r\n }\r\n\r\n const setupTimer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n const sentinel = sentinelRef.current;\r\n \r\n if (!container || !sentinel) {\r\n return;\r\n }\r\n\r\n observerRef.current = new IntersectionObserver(\r\n ([entry]) => {\r\n if (\r\n entry.isIntersecting &&\r\n !hasReachedEndRef.current &&\r\n !isLoadingMoreRef.current &&\r\n onScrollEndRef.current\r\n ) {\r\n hasReachedEndRef.current = true;\r\n onScrollEndRef.current();\r\n }\r\n },\r\n {\r\n root: container,\r\n threshold: 0.1,\r\n rootMargin: '50px',\r\n }\r\n );\r\n\r\n observerRef.current.observe(sentinel);\r\n }, 50);\r\n return () => {\r\n clearTimeout(setupTimer);\r\n if (observerRef.current) {\r\n observerRef.current.disconnect();\r\n observerRef.current = null;\r\n }\r\n };\r\n }, [open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!isLoadingMore && open && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [isLoadingMore, open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll || !onScrollEnd || isLoadingMore) {\r\n return;\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n if (!container) {\r\n return;\r\n }\r\n\r\n const { scrollHeight, clientHeight } = container;\r\n \r\n if (scrollHeight <= clientHeight && !hasReachedEndRef.current) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n }\r\n }, 200);\r\n\r\n return () => clearTimeout(timer);\r\n }, [open, enableInfiniteScroll, onScrollEnd, isLoadingMore, filteredItems.length]);\r\n\r\n const renderMenuItem = useCallback(\r\n (item: MenuItemProps, key: string | number) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n\r\n if (hasChildren) {\r\n return (\r\n <DropdownMenu.Sub key={key}>\r\n <DropdownMenu.SubTrigger\r\n className={styles.subTrigger}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n <ChevronRight16Filled className={styles.chevronIcon} />\r\n </DropdownMenu.SubTrigger>\r\n\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.SubContent\r\n className={styles.subContent}\r\n sideOffset={16}\r\n collisionPadding={20}\r\n >\r\n {item.children!.map((childItem, childIndex) =>\r\n renderMenuItem(childItem, `${key}-${childIndex}`)\r\n )}\r\n </DropdownMenu.SubContent>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Sub>\r\n );\r\n }\r\n return (\r\n <MenuItem\r\n key={key}\r\n item={item}\r\n isSelected={isItemSelected(item)}\r\n onSelect={handleItemSelect}\r\n />\r\n );\r\n },\r\n [handleItemSelect, isItemSelected]\r\n );\r\n\r\n const closedByPointerRef = useRef(false);\r\n\r\n const handleOpenChange = (newOpen: boolean) => {\r\n setOpen(newOpen);\r\n if (!newOpen) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n return (\r\n <DropdownMenu.Root open={open} onOpenChange={handleOpenChange}>\r\n <DropdownMenu.Trigger asChild>{children}</DropdownMenu.Trigger>\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.Content\r\n className={clsx(styles.content, className)}\r\n sideOffset={8}\r\n align={align}\r\n onPointerDown={() => { closedByPointerRef.current = true; }}\r\n onInteractOutside={() => { closedByPointerRef.current = true; }}\r\n onCloseAutoFocus={(e) => {\r\n if (closedByPointerRef.current) {\r\n e.preventDefault();\r\n closedByPointerRef.current = false;\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n if (search) {\r\n e.stopPropagation();\r\n }\r\n }}\r\n {...rest}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n placeholder=\"Buscar\"\r\n onChange={handleSearchChange}\r\n value={searchInput}\r\n onKeyDown={handleSearchKeyDown}\r\n />\r\n </div>\r\n )}\r\n\r\n <div \r\n className={styles.itemsWrapper} \r\n ref={itemsWrapperRef}\r\n style={{ maxHeight: maxHeightStyle }}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) =>\r\n renderMenuItem(item, item.value || item.text || `item-${index}`)\r\n )\r\n ) : (\r\n <div className={styles.emptyState}>Nenhum item encontrado</div>\r\n )}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>Carregando mais itens...</div>\r\n )}\r\n {enableInfiniteScroll && (\r\n <div\r\n ref={sentinelRef}\r\n data-scroll-sentinel\r\n style={{ height: '1px', visibility: 'hidden' }}\r\n />\r\n )}\r\n </div>\r\n </DropdownMenu.Content>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Root>\r\n );\r\n};\r\n\r\nexport default Menu;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Dialog } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport styles from './Modal.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { ModalProps } from './Modal.types';\r\n\r\nconst Modal: React.FC<ModalProps> = ({\r\n isOpen = false,\r\n onClose,\r\n title,\r\n children,\r\n headerContent,\r\n closeOnOverlayClick = true,\r\n className,\r\n id,\r\n footer,\r\n customWidth,\r\n fullscreen = false,\r\n ...rest\r\n}) => {\r\n const contentRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const handleOpenChange = (open: boolean): void => {\r\n if (!open) {\r\n onClose();\r\n }\r\n };\r\n\r\n const handleOpenAutoFocus = (e: Event): void => {\r\n e.preventDefault();\r\n contentRef.current?.focus();\r\n };\r\n\r\n return (\r\n <Dialog.Root open={isOpen} onOpenChange={handleOpenChange} {...rest}>\r\n <Dialog.Portal>\r\n <Dialog.Overlay className={styles.modalOverlay} />\r\n <Dialog.Content\r\n ref={contentRef}\r\n className={clsx(styles.modalContent, fullscreen && styles['modalContent--fullscreen'], className)}\r\n id={id}\r\n style={{\r\n '--modal-custom-width': customWidth,\r\n } as React.CSSProperties}\r\n onInteractOutside={!closeOnOverlayClick ? (e) => e.preventDefault() : undefined}\r\n onOpenAutoFocus={handleOpenAutoFocus}\r\n aria-labelledby={id ? `${id}-title` : 'modal-title'}\r\n tabIndex={-1}\r\n >\r\n <div className={styles.modalHeader}>\r\n {title && (\r\n <Dialog.Title\r\n className={styles.modalTitle}\r\n id={id ? `${id}-title` : 'modal-title'}\r\n >\r\n {title}\r\n </Dialog.Title>\r\n )}\r\n {headerContent && (\r\n <div>{headerContent}</div>\r\n )}\r\n <Dialog.Close asChild>\r\n <Button\r\n variant=\"outlined\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size=\"lg\"\r\n tooltipText='Fechar'\r\n />\r\n </Dialog.Close>\r\n </div>\r\n <div className={styles.modalBody}>\r\n {children}\r\n </div>\r\n {footer && (\r\n <div className={styles.modalFooter}>{footer}</div>\r\n )}\r\n </Dialog.Content>\r\n </Dialog.Portal>\r\n </Dialog.Root>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import { Add16Regular, Subtract16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useRef, useCallback, useEffect, useId, useMemo } from 'react';\r\n\r\nimport styles from './Quantity.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { QuantityProps } from './Quantity.types';\r\n\r\nconst Quantity: React.FC<QuantityProps> = ({\r\n value = 0,\r\n onChange,\r\n disabled = false,\r\n decimal = false,\r\n decimalPlaces = 2,\r\n size = 'lg',\r\n id,\r\n valueIncrement = 1,\r\n className,\r\n inputSize,\r\n minValue = 0,\r\n maxValue = 9999,\r\n decrementAriaLabel = 'Decrease quantity',\r\n incrementAriaLabel = 'Increase quantity',\r\n inputAriaLabel = 'Quantity',\r\n ...rest\r\n}) => {\r\n const initialValue = Math.min(Math.max(value, minValue), maxValue);\r\n const [internalValue, setInternalValue] = useState<number>(initialValue);\r\n const [inputValue, setInputValue] = useState<string>(\r\n decimal ? initialValue.toFixed(decimalPlaces) : String(initialValue)\r\n );\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const stepValue = valueIncrement !== undefined ? valueIncrement : decimal ? Math.pow(10, -decimalPlaces) : 1;\r\n\r\n const isMinValue = useMemo(() => internalValue <= minValue, [internalValue, minValue]);\r\n const isMaxValue = useMemo(() => internalValue >= maxValue, [internalValue, maxValue]);\r\n\r\n const validateProps = (decimalPlaces?: number, valueIncrement?: number) => {\r\n if (decimalPlaces !== undefined && (decimalPlaces < 1 || decimalPlaces > 10)) {\r\n console.warn('decimalPlaces deve estar entre 1 e 10');\r\n }\r\n if (valueIncrement !== undefined && valueIncrement <= 0) {\r\n console.warn('valueIncrement deve ser maior que 0');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n validateProps(decimalPlaces, valueIncrement);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const clamped = Math.min(Math.max(value, minValue), maxValue);\r\n setInternalValue(clamped);\r\n setInputValue(decimal ? clamped.toFixed(decimalPlaces) : String(clamped));\r\n }, [value, minValue, maxValue, decimal, decimalPlaces]);\r\n\r\n const increment = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.min(maxValue, internalValue + stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, maxValue]);\r\n\r\n const decrement = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.max(minValue, internalValue - stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, minValue]);\r\n\r\n const filterInput = useCallback((inputValue: string): string => {\r\n if (decimal) {\r\n let filtered = inputValue.replace(/[^\\d.]/g, '');\r\n\r\n const parts = filtered.split('.');\r\n if (parts.length > 2) {\r\n filtered = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0') && !filtered.startsWith('0.')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered;\r\n } else {\r\n let filtered = inputValue.replace(/[^\\d]/g, '');\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered || '0'; // Se ficar vazio, retorna '0'\r\n }\r\n }, [decimal]);\r\n const handleInputChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n const rawValue = event.target.value;\r\n\r\n const filteredValue = filterInput(rawValue);\r\n\r\n setInputValue(filteredValue);\r\n\r\n if (filteredValue === '' || filteredValue === '.') {\r\n onChange?.(0);\r\n return;\r\n }\r\n\r\n if (decimal) {\r\n if (filteredValue.endsWith('.')) {\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(filteredValue);\r\n if (!isNaN(parsedValue)) {\r\n onChange?.(parsedValue);\r\n }\r\n } else {\r\n const parsedValue = parseInt(filteredValue, 10);\r\n if (!isNaN(parsedValue)) {\r\n const validValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n onChange?.(validValue);\r\n }\r\n }\r\n }, [disabled, decimal, filterInput, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleBlur = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const currentValue = inputValue.trim();\r\n\r\n if (decimal) {\r\n if (currentValue === '' || currentValue === '.') {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n return;\r\n }\r\n\r\n if (currentValue.endsWith('.')) {\r\n const baseValue = parseFloat(currentValue.slice(0, -1));\r\n if (!isNaN(baseValue)) {\r\n const formattedValue = baseValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(baseValue);\r\n onChange?.(baseValue);\r\n }\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(currentValue);\r\n if (!isNaN(parsedValue)) {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n const formattedValue = normalizedValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n } else {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n }\r\n } else {\r\n\r\n if (currentValue === '') {\r\n setInputValue(String(internalValue));\r\n return;\r\n }\r\n\r\n const parsedValue = parseInt(currentValue, 10);\r\n if (isNaN(parsedValue)) {\r\n setInputValue(String(internalValue));\r\n } else {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n setInputValue(String(normalizedValue));\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n }\r\n }\r\n }, [disabled, decimal, inputValue, decimalPlaces, internalValue, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleInputKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n increment();\r\n break;\r\n\r\n case 'ArrowDown':\r\n e.preventDefault();\r\n decrement();\r\n break;\r\n\r\n case 'Enter':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n setInputValue(decimal ? internalValue.toFixed(decimalPlaces) : String(internalValue));\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Home':\r\n e.preventDefault();\r\n setInternalValue(minValue);\r\n setInputValue(decimal ? minValue.toFixed(decimalPlaces) : String(minValue));\r\n onChange?.(minValue);\r\n break;\r\n\r\n case 'End':\r\n if (!decimal) {\r\n e.preventDefault();\r\n setInternalValue(maxValue);\r\n setInputValue(String(maxValue));\r\n onChange?.(maxValue);\r\n }\r\n break;\r\n }\r\n },\r\n [disabled, increment, decrement, decimal, decimalPlaces, onChange, internalValue, minValue, maxValue]\r\n );\r\n\r\n const inputSizeValue = inputSize !== undefined ? inputSize : Math.max(1, inputValue.length);\r\n\r\n const uniqueId = useId();\r\n const inputId = id || uniqueId;\r\n\r\n return (\r\n <div className={clsx(styles.quantity, { [styles.disabled]: disabled }, className)} {...rest}>\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n icon={<Subtract16Regular />}\r\n onClick={decrement}\r\n disabled={disabled || isMinValue}\r\n aria-label={decrementAriaLabel}\r\n tooltipText='Diminuir'\r\n />\r\n\r\n <input\r\n ref={inputRef}\r\n className={clsx(styles.quantityInput, { [styles.disabled]: disabled })}\r\n type='text'\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleBlur}\r\n onKeyDown={handleInputKeyDown}\r\n id={inputId}\r\n step={stepValue}\r\n aria-label={inputAriaLabel}\r\n role='spinbutton'\r\n aria-valuenow={internalValue}\r\n aria-valuemin={minValue}\r\n aria-valuemax={maxValue}\r\n disabled={disabled}\r\n inputMode={decimal ? 'decimal' : 'numeric'}\r\n size={inputSizeValue}\r\n />\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n onClick={increment}\r\n disabled={disabled || isMaxValue}\r\n aria-label={incrementAriaLabel}\r\n icon={<Add16Regular />}\r\n tooltipText='Aumentar'\r\n />\r\n\r\n </div>\r\n );\r\n};\r\n\r\n\r\nconst memorizedQuantity = React.memo(Quantity);\r\nmemorizedQuantity.displayName = 'Quantity';\r\n\r\nexport default memorizedQuantity;","import clsx from 'clsx';\r\nimport React, { useRef } from 'react';\r\n\r\nimport Checkbox from '../../Checkbox';\r\nimport styles from '../Select.module.scss';\r\nimport { CheckboxItemProps } from '../Select.types';\r\n\r\nconst CheckboxSelectItem: React.FC<CheckboxItemProps> = ({\r\n text,\r\n subTitle,\r\n disabled,\r\n checked,\r\n onCheckedChange,\r\n value,\r\n ...restProps\r\n}) => {\r\n const itemRef = useRef<HTMLDivElement>(null);\r\n\r\n const handleCheckboxChange = (checkedValue: boolean | 'indeterminate') => {\r\n onCheckedChange(Boolean(checkedValue));\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n\r\n if (e.key === ' ' || e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onCheckedChange(!checked);\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n const nextElement = itemRef.current?.nextElementSibling as HTMLDivElement;\r\n if (nextElement && nextElement.getAttribute('tabIndex') === '0') {\r\n nextElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const prevElement = itemRef.current?.previousElementSibling as HTMLDivElement;\r\n if (prevElement && prevElement.getAttribute('tabIndex') === '0') {\r\n prevElement.focus();\r\n }\r\n return;\r\n }\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n \r\n const target = e.target as HTMLElement;\r\n const isCheckboxClick = target.closest('input[type=\"checkbox\"]') || \r\n target.closest('label');\r\n \r\n if (!isCheckboxClick) {\r\n e.preventDefault();\r\n onCheckedChange(!checked);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={itemRef}\r\n className={clsx(styles.checkboxItem, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"option\"\r\n aria-selected={checked}\r\n aria-disabled={disabled}\r\n data-selected={checked}\r\n data-testid={`checkbox-item-${value}`}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n onClick={handleClick}\r\n {...restProps}\r\n >\r\n <div className={styles.checkboxContent}>\r\n <Checkbox\r\n checked={checked}\r\n onCheckedChange={handleCheckboxChange}\r\n disabled={disabled}\r\n label={\r\n <div className={styles.textContent}>\r\n <span className={styles.title}>{text}</span>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n </div>\r\n }\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nCheckboxSelectItem.displayName = 'CheckboxSelectItem';\r\n\r\nexport default CheckboxSelectItem;","import { ChevronRight16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState } from 'react';\r\n\r\nimport styles from '../Select.module.scss';\r\n\r\nimport type { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\n\r\ninterface ExpandableSelectItemProps {\r\n item: SelectItemProps;\r\n variant: SelectVariant;\r\n onSelect: (value: string) => void;\r\n selectedValues: string[];\r\n level?: number; \r\n}\r\n\r\nconst ExpandableSelectItem: React.FC<ExpandableSelectItemProps> = ({\r\n item,\r\n variant,\r\n onSelect,\r\n selectedValues,\r\n level = 0,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isSelected = selectedValues.includes(item.value);\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (hasChildren) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsExpanded(!isExpanded);\r\n } else {\r\n onSelect(item.value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div \r\n className={styles.expandableItemContainer}\r\n style={{ paddingLeft: `${level * 16}px` }}\r\n >\r\n <div \r\n className={clsx(styles.itemWrapper, {\r\n [styles.selected]: isSelected && !hasChildren,\r\n [styles.disabled]: item.disabled,\r\n })}\r\n onClick={handleClick}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleClick(e as unknown as React.MouseEvent);\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={item.disabled ? -1 : 0}\r\n data-disabled={item.disabled || undefined}\r\n data-selected={isSelected && !hasChildren ? 'true' : undefined}\r\n data-testid={`select-item-${item.value}`}\r\n >\r\n {variant === 'icon' && item.icon && (\r\n <span className={styles.icon}>{item.icon}</span>\r\n )}\r\n \r\n <div className={styles.textContent}>\r\n <div className={styles.title}>{item.text}</div>\r\n {item.subTitle && <div className={styles.subTitle}>{item.subTitle}</div>}\r\n </div>\r\n \r\n {hasChildren && (\r\n <span className={styles.chevron}>\r\n {isExpanded ? <ChevronDown16Regular /> : <ChevronRight16Regular />}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n \r\n {hasChildren && isExpanded && (\r\n <div className={styles.childrenWrapper}>\r\n {item.children!.map((child) => (\r\n <ExpandableSelectItem\r\n key={child.id || child.value}\r\n item={child}\r\n variant={variant}\r\n onSelect={onSelect}\r\n selectedValues={selectedValues}\r\n level={level + 1}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ExpandableSelectItem;","import clsx from 'clsx';\r\nimport { Select } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport styles from '../Select.module.scss';\r\nimport { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\ninterface SelectItemComponentProps extends SelectItemProps {\r\n variant?: SelectVariant;\r\n disableFocusOnHover?: boolean;\r\n}\r\n\r\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemComponentProps>(\r\n ({ text, subTitle, icon, disabled, value, variant, disableFocusOnHover, ...restProps }, ref) => {\r\n return (\r\n <div\r\n className={clsx(styles.itemWrapper, {\r\n [styles.disabled]: disabled,\r\n })}\r\n data-disabled={disabled || undefined}\r\n data-testid={`select-item-${value}`}\r\n ref={ref}\r\n >\r\n {variant === 'icon' && icon && (\r\n <span className={styles.icon}>{icon}</span>\r\n )}\r\n\r\n <Select.Item\r\n className={clsx(styles.item, {\r\n [styles.disabled]: disabled,\r\n })}\r\n value={value}\r\n disabled={disabled}\r\n onPointerMove={disableFocusOnHover ? (e) => e.preventDefault() : undefined}\r\n {...restProps}\r\n >\r\n <Select.ItemText className={styles.title}>{text}</Select.ItemText>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n <Select.ItemIndicator className={styles.itemIndicator} />\r\n </Select.Item>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nSelectItem.displayName = 'SelectItem';\r\n\r\nexport default SelectItem;","import { useReducer, useEffect, useRef, useCallback } from 'react';\r\n\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport {\r\n SelectState,\r\n SelectAction,\r\n UseSelectLogicProps,\r\n UseSelectLogicReturn,\r\n SelectItemProps,\r\n} from '../Select.types';\r\n\r\nconst initialState: SelectState = {\r\n isOpen: false,\r\n selectedValues: [],\r\n searchInput: '',\r\n searchTerm: '',\r\n touched: false,\r\n hasError: false,\r\n};\r\n\r\nfunction selectReducer(state: SelectState, action: SelectAction): SelectState {\r\n switch (action.type) {\r\n case 'SET_OPEN':\r\n return { ...state, isOpen: action.payload };\r\n case 'SET_SELECTED_VALUES':\r\n return { ...state, selectedValues: action.payload };\r\n case 'SET_SEARCH_INPUT':\r\n return { ...state, searchInput: action.payload };\r\n case 'SET_SEARCH_TERM':\r\n return { ...state, searchTerm: action.payload };\r\n case 'SET_TOUCHED':\r\n return { ...state, touched: action.payload };\r\n case 'SET_ERROR':\r\n return { ...state, hasError: action.payload };\r\n case 'RESET_SEARCH':\r\n return { ...state, searchInput: '', searchTerm: '' };\r\n case 'VALIDATE': {\r\n const hasError = action.payload.required && state.selectedValues.length === 0;\r\n return { ...state, hasError, touched: true };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport function useSelectLogic({\r\n value,\r\n required = false,\r\n search = false,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\r\n}: UseSelectLogicProps): UseSelectLogicReturn {\r\n const [state, dispatch] = useReducer(selectReducer, {\r\n ...initialState,\r\n selectedValues: Array.isArray(value) ? value : value ? [value] : [],\r\n });\r\n\r\n const searchInputRef = useRef<HTMLInputElement>(null);\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n const lastSearchTermRef = useRef<string>('');\r\n\r\n const debouncedApiSearch = useCallback(\r\n (searchTerm: string) => {\r\n if (lastSearchTermRef.current === searchTerm) {\r\n return;\r\n }\r\n \r\n lastSearchTermRef.current = searchTerm;\r\n \r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(searchTerm);\r\n }\r\n }, 300);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n const newValues = Array.isArray(value) ? value : value ? [value] : [];\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: newValues });\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && search) {\r\n setTimeout(() => {\r\n searchInputRef.current?.focus();\r\n }, 0);\r\n }\r\n }, [state.isOpen, search]);\r\n\r\n useEffect(() => {\r\n if (!state.isOpen) {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [state.isOpen]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableApiSearch && !hasInitialSearchRef.current) {\r\n hasInitialSearchRef.current = true;\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }\r\n }, [state.isOpen, enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen) {\r\n if (lastSearchTermRef.current !== state.searchTerm) {\r\n debouncedApiSearch(state.searchTerm);\r\n }\r\n }\r\n }, [state.searchTerm, enableApiSearch, state.isOpen, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen && state.searchInput === '' && state.searchTerm === '') {\r\n if (lastSearchTermRef.current !== '') {\r\n lastSearchTermRef.current = '';\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n }\r\n }\r\n }\r\n }, [state.searchInput, state.searchTerm, enableApiSearch, state.isOpen, onApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n };\r\n }, []);\r\n\r\n const setOpen = (open: boolean) => {\r\n dispatch({ type: 'SET_OPEN', payload: open });\r\n onOpenChange?.(open);\r\n\r\n if (!open) {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n }\r\n };\r\n\r\n const setSelectedValues = (values: string[]) => {\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: values });\r\n };\r\n\r\n const setSearchInput = (input: string) => {\r\n dispatch({ type: 'SET_SEARCH_INPUT', payload: input });\r\n };\r\n\r\n const setSearchTerm = (term: string) => {\r\n dispatch({ type: 'SET_SEARCH_TERM', payload: term });\r\n };\r\n\r\n const setTouched = (touched: boolean) => {\r\n dispatch({ type: 'SET_TOUCHED', payload: touched });\r\n };\r\n\r\n const setError = (error: boolean) => {\r\n dispatch({ type: 'SET_ERROR', payload: error });\r\n };\r\n\r\n const resetSearch = () => {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n lastSearchTermRef.current = '';\r\n };\r\n\r\n const validate = () => {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n };\r\n\r\n const handleSingleSelect = (newValue: string) => {\r\n const newValues = [newValue];\r\n setSelectedValues(newValues);\r\n onValueChange?.(newValue);\r\n setOpen(false);\r\n\r\n if (required && state.hasError) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const handleMultipleSelect = (itemValue: string, checked: boolean) => {\r\n let newSelectedValues: string[];\r\n\r\n if (checked) {\r\n newSelectedValues = [...state.selectedValues, itemValue];\r\n } else {\r\n newSelectedValues = state.selectedValues.filter((val) => val !== itemValue);\r\n }\r\n\r\n setSelectedValues(newSelectedValues);\r\n onValueChange?.(newSelectedValues);\r\n\r\n if (required && state.hasError && newSelectedValues.length > 0) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const getDisplayText = (\r\n selectedValues: string[],\r\n placeholder: string,\r\n variant: string,\r\n items: SelectItemProps[]\r\n ): string => {\r\n if (selectedValues.length === 0) return placeholder;\r\n\r\n if (variant === 'checkbox') {\r\n const selectedItems = selectedValues\r\n .map((value) => {\r\n const item = items.find((item) => item.value === value);\r\n return (item?.text as string) || value;\r\n });\r\n\r\n if (selectedItems.length > 3) {\r\n const firstThree = selectedItems.slice(0, 3).join(', ');\r\n const remaining = selectedItems.length - 3;\r\n return `${firstThree} e mais ${remaining}`;\r\n }\r\n\r\n return selectedItems.join(', ');\r\n }\r\n\r\n return (\r\n (items.find((item) => item.value === selectedValues[0])?.text as string) ||\r\n selectedValues[0]\r\n );\r\n };\r\n\r\n const getFilteredItems = (\r\n items: SelectItemProps[],\r\n searchTerm: string\r\n ): SelectItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchTerm) return items;\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n return items.filter((item) => {\r\n const normalizedText = normalizeText(item.text);\r\n const normalizedSubTitle = item.subTitle\r\n ? normalizeText(item.subTitle)\r\n : '';\r\n const normalizedValue = normalizeText(item.value);\r\n\r\n return (\r\n normalizedText.includes(lowercasedSearchTerm) ||\r\n normalizedSubTitle.includes(lowercasedSearchTerm) ||\r\n normalizedValue.includes(lowercasedSearchTerm)\r\n );\r\n });\r\n };\r\n\r\n return {\r\n state,\r\n actions: {\r\n setOpen,\r\n setSelectedValues,\r\n setSearchInput,\r\n setSearchTerm,\r\n setTouched,\r\n setError,\r\n resetSearch,\r\n validate,\r\n handleSingleSelect,\r\n handleMultipleSelect,\r\n },\r\n computed: {\r\n displayText: '',\r\n filteredItems: [],\r\n },\r\n refs: {\r\n searchInputRef,\r\n },\r\n utils: {\r\n getDisplayText,\r\n getFilteredItems,\r\n },\r\n };\r\n}\r\n\r\nexport default useSelectLogic;","import { ChevronUp16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Select as SelectRadix } from 'radix-ui';\r\nimport React, { useMemo, useId, useRef, useEffect } from 'react';\r\n\r\nimport CheckboxSelectItem from './components/CheckboxSelectItem';\r\nimport ExpandableSelectItem from './components/ExpandableSelectItem';\r\nimport SelectItem from './components/SelectItem';\r\nimport { useSelectLogic } from './hooks/useSelectLogic';\r\nimport styles from './Select.module.scss';\r\nimport { SelectProps } from './Select.types';\r\nimport LabelComponent from '../../shared/Label';\r\nimport Search from '../Search/Search';\r\n\r\nconst Select: React.FC<SelectProps> = ({\r\n items,\r\n onValueChange,\r\n onOpenChange,\r\n variant,\r\n required = false,\r\n value,\r\n \r\n label,\r\n helperText,\r\n placeholder = 'Selecione',\r\n maxWidth,\r\n search = false,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n 'aria-label': ariaLabel,\r\n 'data-testid': testId,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n enableInfiniteScroll = false,\r\n onScrollEnd,\r\n isLoadingMore = false,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const selectId = `select-${componentId}`;\r\n const viewportRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n\r\n const {\r\n state,\r\n actions,\r\n refs,\r\n utils,\r\n } = useSelectLogic({\r\n value,\r\n required,\r\n search,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch,\r\n onApiSearch,\r\n isSearching,\r\n });\r\n\r\n useEffect(() => {\r\n const viewport = viewportRef.current;\r\n if (!viewport || !enableInfiniteScroll) return;\r\n\r\n const handleScroll = () => {\r\n const { scrollTop, scrollHeight, clientHeight } = viewport;\r\n const isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;\r\n\r\n if (isAtBottom && !hasReachedEndRef.current && onScrollEnd && !isLoadingMore) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n } else if (!isAtBottom && hasReachedEndRef.current) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n viewport.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n viewport.removeEventListener('scroll', handleScroll);\r\n };\r\n }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [state.isOpen, enableInfiniteScroll]);\r\n\r\n const displayText = useMemo(\r\n () => utils.getDisplayText(state.selectedValues, placeholder, variant, items),\r\n [state.selectedValues, placeholder, variant, items, utils]\r\n );\r\n\r\n const filteredItems = useMemo(() => {\r\n const termToFilter = enableApiSearch ? state.searchTerm : state.searchInput;\r\n return utils.getFilteredItems(items, termToFilter);\r\n }, [items, state.searchTerm, state.searchInput, enableApiSearch, utils]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n maxWidth: maxWidth ? `${maxWidth}px` : undefined,\r\n }), [maxWidth]);\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n actions.setSearchInput(value);\r\n \r\n if (enableApiSearch) {\r\n actions.setSearchTerm(value);\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n const isNavigationKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape', 'Tab'].includes(e.key);\r\n \r\n if (!isNavigationKey) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n \r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n e.currentTarget.blur();\r\n return;\r\n }\r\n\r\n if (e.key === 'Enter') {\r\n e.currentTarget.blur();\r\n return;\r\n } else if (e.key === 'Escape') {\r\n e.preventDefault();\r\n actions.resetSearch();\r\n }\r\n };\r\n\r\n const handleClear = () => {\r\n actions.resetSearch();\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch('');\r\n }\r\n };\r\n\r\n return (\r\n <SelectRadix.Root\r\n value={variant === 'checkbox' || (search && state.isOpen) ? '' : (state.selectedValues[0] || '')}\r\n onValueChange={variant === 'checkbox' ? undefined : actions.handleSingleSelect}\r\n required={required}\r\n open={state.isOpen}\r\n onOpenChange={actions.setOpen}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n <div\r\n className={clsx(styles.container, className)}\r\n style={containerStyle}\r\n data-testid={testId}\r\n >\r\n <div className={styles.fieldContainer}>\r\n <div className={styles.containerLabel}>\r\n <LabelComponent\r\n htmlFor={selectId}\r\n required={required}\r\n tooltipText={tooltipText}\r\n tooltip={tooltip}\r\n side={side}\r\n align={align}\r\n error={state.hasError && state.touched}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n \r\n <SelectRadix.Trigger\r\n className={clsx(styles.trigger, {\r\n [styles.error]: state.hasError && state.touched,\r\n [styles.disabled]: disabled,\r\n [styles.hasValue]: state.selectedValues.length > 0,\r\n [styles.open]: state.isOpen,\r\n })}\r\n id={selectId}\r\n aria-label={ariaLabel}\r\n data-testid={`${testId}-trigger`}\r\n >\r\n {variant === 'checkbox' ? (\r\n <span className={styles.triggerText}>{displayText}</span>\r\n ) : (\r\n <SelectRadix.Value placeholder={placeholder} className={styles.placeholder}>{displayText}</SelectRadix.Value>\r\n )}\r\n {state.isOpen ? <ChevronUp16Regular /> : <ChevronDown16Regular />}\r\n </SelectRadix.Trigger>\r\n\r\n {!state.isOpen && helperText && !state.hasError && (\r\n <span className={clsx(\r\n styles.helper,\r\n {\r\n [styles.disabled]: disabled\r\n } \r\n )}>{helperText}</span>\r\n )}\r\n \r\n {state.hasError && state.touched && (\r\n <span className={styles.errorMessage}>\r\n {errorMessage || 'Campo obrigatório'}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <SelectRadix.Portal>\r\n <SelectRadix.Content\r\n className={styles.content}\r\n position=\"popper\"\r\n side=\"bottom\"\r\n sideOffset={8}\r\n align=\"start\"\r\n avoidCollisions={true}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n ref={refs.searchInputRef}\r\n className={styles.search}\r\n placeholder=\"Buscar\"\r\n value={state.searchInput}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={handleClear}\r\n data-testid={`${testId}-search`}\r\n />\r\n </div>\r\n )}\r\n \r\n <SelectRadix.Viewport ref={viewportRef} className={styles.viewport} data-testid={testId ? `${testId}-viewport` : undefined}>\r\n <SelectRadix.Group className={styles.group}>\r\n {filteredItems.length === 0 ? (\r\n <div className={styles.noResults}>\r\n Nenhum resultado encontrado\r\n </div>\r\n ) : (\r\n <>\r\n {filteredItems.map((item) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n \r\n if (hasChildren) {\r\n return (\r\n <ExpandableSelectItem\r\n key={item.id || item.value}\r\n item={item}\r\n variant={variant}\r\n selectedValues={state.selectedValues}\r\n onSelect={(value) => {\r\n if (variant === 'checkbox') {\r\n const isSelected = state.selectedValues.includes(value);\r\n actions.handleMultipleSelect(value, !isSelected);\r\n } else {\r\n actions.handleSingleSelect(value);\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n \r\n return variant === 'checkbox' ? (\r\n <CheckboxSelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n checked={state.selectedValues.includes(item.value)}\r\n onCheckedChange={(checked: boolean) =>\r\n actions.handleMultipleSelect(item.value, checked)\r\n }\r\n />\r\n ) : (\r\n <SelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n variant={variant}\r\n disableFocusOnHover={search}\r\n />\r\n );\r\n })}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>\r\n Carregando mais itens...\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </SelectRadix.Group>\r\n </SelectRadix.Viewport>\r\n </SelectRadix.Content>\r\n </SelectRadix.Portal>\r\n </div>\r\n </SelectRadix.Root>\r\n );\r\n};\r\n\r\nSelect.displayName = 'Select';\r\n\r\nexport default Select;","import React from 'react';\r\n\r\n/**\r\n * Componente de ícone SVG para estado vazio da tabela\r\n * Exibe um ícone de lupa com design personalizado do Zanthus Design System\r\n * @returns Elemento SVG para estado vazio\r\n */\r\nconst EmptyRows150Color: React.FC = () => (\r\n <svg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <circle cx='75' cy='75' r='75' fill='#E8E8EE' />\r\n <path\r\n d='M67.6111 63.3889C69.36 63.3889 70.7778 64.8067 70.7778 66.5556V81.3333C70.7778 83.0822 69.36 84.5 67.6111 84.5C65.8622 84.5 64.4444 83.0822 64.4444 81.3333V66.5556C64.4444 64.8067 65.8622 63.3889 67.6111 63.3889ZM67.6111 59.1667C69.943 59.1667 71.8333 57.2763 71.8333 54.9444C71.8333 52.6126 69.943 50.7222 67.6111 50.7222C65.2792 50.7222 63.3889 52.6126 63.3889 54.9444C63.3889 57.2763 65.2792 59.1667 67.6111 59.1667ZM67.6111 37C84.5172 37 98.2222 50.7051 98.2222 67.6111C98.2222 74.9235 95.6583 81.637 91.3803 86.9017L112.073 107.594C113.309 108.831 113.309 110.836 112.073 112.073C110.948 113.197 109.189 113.299 107.949 112.379L107.594 112.073L86.9017 91.3803C81.637 95.6583 74.9235 98.2222 67.6111 98.2222C50.7051 98.2222 37 84.5172 37 67.6111C37 50.7051 50.7051 37 67.6111 37ZM67.6111 43.3333C54.2029 43.3333 43.3333 54.2029 43.3333 67.6111C43.3333 81.0194 54.2029 91.8889 67.6111 91.8889C81.0194 91.8889 91.8889 81.0194 91.8889 67.6111C91.8889 54.2029 81.0194 43.3333 67.6111 43.3333Z'\r\n fill='#3B45F2'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default EmptyRows150Color;","import { createElement, isValidElement } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar uid = (function () {\n return Math.random()\n .toString(36)\n .substring(6);\n});\n\nvar SVG = function (_a) {\n var _b = _a.animate, animate = _b === void 0 ? true : _b, _c = _a.backgroundColor, backgroundColor = _c === void 0 ? '#f5f6f7' : _c, _d = _a.backgroundOpacity, backgroundOpacity = _d === void 0 ? 1 : _d, _e = _a.baseUrl, baseUrl = _e === void 0 ? '' : _e, children = _a.children, _f = _a.foregroundColor, foregroundColor = _f === void 0 ? '#eee' : _f, _g = _a.foregroundOpacity, foregroundOpacity = _g === void 0 ? 1 : _g, _h = _a.gradientRatio, gradientRatio = _h === void 0 ? 2 : _h, uniqueKey = _a.uniqueKey, _j = _a.rtl, rtl = _j === void 0 ? false : _j, _k = _a.speed, speed = _k === void 0 ? 1.2 : _k, _l = _a.style, style = _l === void 0 ? {} : _l, _m = _a.title, title = _m === void 0 ? 'Loading...' : _m, _o = _a.beforeMask, beforeMask = _o === void 0 ? null : _o, props = __rest(_a, [\"animate\", \"backgroundColor\", \"backgroundOpacity\", \"baseUrl\", \"children\", \"foregroundColor\", \"foregroundOpacity\", \"gradientRatio\", \"uniqueKey\", \"rtl\", \"speed\", \"style\", \"title\", \"beforeMask\"]);\n var fixedId = uniqueKey || uid();\n var idClip = \"\".concat(fixedId, \"-diff\");\n var idGradient = \"\".concat(fixedId, \"-animated-diff\");\n var idAria = \"\".concat(fixedId, \"-aria\");\n var rtlStyle = rtl ? { transform: 'scaleX(-1)' } : null;\n var dur = \"\".concat(speed, \"s\");\n var from = \"\".concat(gradientRatio * -1, \" 0\");\n var to = \"\".concat(gradientRatio, \" 0\");\n return (createElement(\"svg\", __assign({ \"aria-labelledby\": idAria, role: \"img\", style: __assign(__assign({}, style), rtlStyle) }, props),\n title ? createElement(\"title\", { id: idAria }, title) : null,\n beforeMask && isValidElement(beforeMask) ? beforeMask : null,\n createElement(\"rect\", { role: \"presentation\", x: \"0\", y: \"0\", width: \"100%\", height: \"100%\", clipPath: \"url(\".concat(baseUrl, \"#\").concat(idClip, \")\"), style: { fill: \"url(\".concat(baseUrl, \"#\").concat(idGradient, \")\") } }),\n createElement(\"defs\", null,\n createElement(\"clipPath\", { id: idClip }, children),\n createElement(\"linearGradient\", { id: idGradient, gradientTransform: \"translate(\".concat(from, \")\") },\n createElement(\"stop\", { offset: \"0%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n createElement(\"stop\", { offset: \"50%\", stopColor: foregroundColor, stopOpacity: foregroundOpacity }),\n createElement(\"stop\", { offset: \"100%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n animate && (createElement(\"animateTransform\", { attributeName: \"gradientTransform\", type: \"translate\", values: \"\".concat(from, \"; 0 0; \").concat(to), dur: dur, repeatCount: \"indefinite\" }))))));\n};\n\nvar ContentLoader = function (props) {\n return props.children ? createElement(SVG, __assign({}, props)) : createElement(ReactContentLoaderFacebook, __assign({}, props));\n};\n\nvar ReactContentLoaderFacebook = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 476 124\" }, props),\n createElement(\"rect\", { x: \"48\", y: \"8\", width: \"88\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"48\", y: \"26\", width: \"52\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"56\", width: \"410\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"72\", width: \"380\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"88\", width: \"178\", height: \"6\", rx: \"3\" }),\n createElement(\"circle\", { cx: \"20\", cy: \"20\", r: \"20\" }))); };\n\nvar ReactContentLoaderInstagram = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 460\" }, props),\n createElement(\"circle\", { cx: \"31\", cy: \"31\", r: \"15\" }),\n createElement(\"rect\", { x: \"58\", y: \"18\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"58\", y: \"34\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"2\", ry: \"2\", width: \"400\", height: \"400\" }))); };\n\nvar ReactContentLoaderCode = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 340 84\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", width: \"67\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"76\", y: \"0\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"127\", y: \"48\", width: \"53\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"187\", y: \"48\", width: \"72\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"48\", width: \"100\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"71\", width: \"37\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"23\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"166\", y: \"23\", width: \"173\", height: \"11\", rx: \"3\" }))); };\n\nvar ReactContentLoaderListStyle = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 110\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"20\", rx: \"3\", ry: \"3\", width: \"220\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"40\", rx: \"3\", ry: \"3\", width: \"170\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"80\", rx: \"3\", ry: \"3\", width: \"200\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"100\", rx: \"3\", ry: \"3\", width: \"80\", height: \"10\" }))); };\n\nvar ReactContentLoaderBulletList = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 245 125\" }, props),\n createElement(\"circle\", { cx: \"10\", cy: \"20\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"15\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"50\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"45\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"80\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"75\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"110\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"105\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }))); };\n\nexport default ContentLoader;\nexport { ReactContentLoaderBulletList as BulletList, ReactContentLoaderCode as Code, ReactContentLoaderFacebook as Facebook, ReactContentLoaderInstagram as Instagram, ReactContentLoaderListStyle as List };\n//# sourceMappingURL=react-content-loader.es.js.map\n","import React from 'react';\r\nimport ContentLoader, { IContentLoaderProps } from 'react-content-loader';\r\n\r\n/**\r\n * Componente de loading para lista de tabela\r\n * Simula o carregamento de dados em formato de tabela usando ContentLoader\r\n * @param props - Propriedades adicionais para o ContentLoader\r\n * @returns Elemento de loading animado\r\n */\r\nconst LoaderList: React.FC<IContentLoaderProps> = (props) => (\r\n <ContentLoader\r\n speed={1}\r\n width=\"100%\"\r\n viewBox=\"0 0 1272 652\"\r\n backgroundColor=\"#F5F5F7\"\r\n foregroundColor=\"#FFFFFF\"\r\n {...props}\r\n >\r\n {/* Cabeçalho da tabela */}\r\n <rect x=\"0\" y=\"0\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"44\" />\r\n\r\n {/* Primeira linha */}\r\n <rect x=\"0\" y=\"76\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"116\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Segunda linha */}\r\n <rect x=\"0\" y=\"164\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"204\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Terceira linha */}\r\n <rect x=\"0\" y=\"252\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"292\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quarta linha */}\r\n <rect x=\"0\" y=\"340\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"380\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quinta linha */}\r\n <rect x=\"0\" y=\"428\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"468\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Sexta linha */}\r\n <rect x=\"0\" y=\"516\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"556\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Rodapé da tabela */}\r\n <rect x=\"0\" y=\"604\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"48\" />\r\n </ContentLoader>\r\n)\r\nexport default LoaderList;","import clsx from 'clsx';\r\nimport { format } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport React, { useState, useMemo, useCallback, ReactNode, CSSProperties } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Checkbox from '../Checkbox';\r\nimport EmptyRows150Color from './EmptyRows150Color';\r\nimport LoaderList from './LoaderList';\r\n\r\nimport type { TableColumn, TableRowData, TableProps } from './Table.types';\r\n\r\nconst useSelection = <T extends TableRowData = TableRowData>(\r\n dataSource: T[],\r\n rowSelection?: TableProps<T>['rowSelection']\r\n) => {\r\n const [internalKeys, setInternalKeys] = useState<(string | number)[]>([]);\r\n const selectedKeys = rowSelection?.selectedRowKeys ?? internalKeys;\r\n const selectedSet = useMemo(() => new Set(selectedKeys), [selectedKeys]);\r\n\r\n const handleChange = useCallback((newKeys: (string | number)[]) => {\r\n const newRows = dataSource.filter((_, index) => newKeys.includes(index)) as T[];\r\n\r\n if (rowSelection?.selectedRowKeys !== undefined) {\r\n rowSelection.onChange?.(newKeys, newRows);\r\n } else {\r\n setInternalKeys(newKeys);\r\n rowSelection?.onChange?.(newKeys, newRows);\r\n }\r\n }, [dataSource, rowSelection]);\r\n\r\n const toggleRow = useCallback((key: string | number) => {\r\n const newKeys = selectedSet.has(key)\r\n ? selectedKeys.filter(k => k !== key)\r\n : [...selectedKeys, key];\r\n handleChange(newKeys);\r\n }, [selectedKeys, selectedSet, handleChange]);\r\n\r\n const selectableKeys = useMemo(() => (\r\n dataSource\r\n .map((row, index) => ({ index, disabled: rowSelection?.getCheckboxProps?.(row, index)?.disabled }))\r\n .filter(({ disabled }) => !disabled)\r\n .map(({ index }) => index)\r\n ), [dataSource, rowSelection]);\r\n\r\n const toggleAll = useCallback(() => {\r\n const isAllSelectableSelected = selectableKeys.every(k => selectedSet.has(k));\r\n const newKeys = isAllSelectableSelected\r\n ? selectedKeys.filter(k => !selectableKeys.includes(k as number))\r\n : [...new Set([...selectedKeys, ...selectableKeys])];\r\n handleChange(newKeys);\r\n }, [selectableKeys, selectedKeys, selectedSet, handleChange]);\r\n\r\n const isAllSelected = selectableKeys.length > 0 && selectableKeys.every(k => selectedSet.has(k));\r\n const isIndeterminate = selectableKeys.some(k => selectedSet.has(k)) && !isAllSelected;\r\n\r\n return {\r\n selectedSet,\r\n selectedKeys,\r\n toggleRow,\r\n toggleAll,\r\n isAllSelected,\r\n isIndeterminate,\r\n };\r\n};\r\n\r\nconst renderCell = <T extends TableRowData = TableRowData>(column: TableColumn<T>, row: T, index: number): ReactNode => {\r\n if (column.render) {\r\n return column.render(row, index);\r\n }\r\n\r\n const value = row[column.key];\r\n\r\n switch (column.type) {\r\n case 'datetime':\r\n if (!value) return '';\r\n try {\r\n const date = new Date(value);\r\n return format(date, column.format || 'dd/MM/yyyy', { locale: ptBR });\r\n } catch {\r\n return value;\r\n }\r\n default:\r\n return value;\r\n }\r\n};\r\n\r\nconst Table = <T extends TableRowData = TableRowData>({\r\n columns,\r\n dataSource,\r\n className,\r\n loading = false,\r\n rowSelection,\r\n locale,\r\n onRow,\r\n ...rest\r\n}: TableProps<T>) => {\r\n if (!Array.isArray(columns) || !Array.isArray(dataSource)) {\r\n console.warn('Table: columns e dataSource devem ser arrays');\r\n return null;\r\n }\r\n\r\n const { selectedSet, toggleRow, toggleAll, isAllSelected, isIndeterminate } = useSelection(\r\n dataSource,\r\n rowSelection\r\n );\r\n\r\n const finalColumns = useMemo(() => {\r\n if (!rowSelection) return columns;\r\n\r\n const checkboxColumn: TableColumn<T> = {\r\n key: '__checkbox__',\r\n label: (\r\n <Checkbox\r\n checked={isAllSelected || isIndeterminate}\r\n indeterminate={isIndeterminate}\r\n onCheckedChange={toggleAll}\r\n disabled={rowSelection.disableSelectAll}\r\n />\r\n ),\r\n render: (_, index) => {\r\n const props = rowSelection.getCheckboxProps?.(dataSource[index], index) || {};\r\n return (\r\n <Checkbox\r\n checked={selectedSet.has(index)}\r\n onCheckedChange={() => toggleRow(index)}\r\n disabled={props.disabled}\r\n />\r\n );\r\n },\r\n align: 'center',\r\n };\r\n\r\n return [checkboxColumn, ...columns];\r\n }, [columns, rowSelection, isAllSelected, isIndeterminate, toggleAll, selectedSet, toggleRow, dataSource]);\r\n const tableId = useMemo(() =>\r\n `table-${Math.random().toString(36).substr(2, 9)}`, []\r\n );\r\n if (loading) {\r\n return (\r\n <div className={clsx(styles.tableContainer, className)}>\r\n <div className={styles.tableLoader}>\r\n <LoaderList />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n const emptyText = locale?.emptyText || (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n <EmptyRows150Color />\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>Nenhum dado encontrado</h3>\r\n <p className={styles.tableEmptyCaption}>Nenhum registro encontrado</p>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={clsx(styles.tableContainer, className)} {...rest}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table \r\n className={styles.table}\r\n role=\"table\"\r\n aria-label=\"Tabela de dados\"\r\n aria-describedby={loading ? `${tableId}-loading` : undefined}\r\n aria-rowcount={dataSource.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n <tr>\r\n {finalColumns.map((column) => (\r\n <th\r\n key={column.key}\r\n className={clsx(styles.tableTh, column.align && `text-${column.align}`)}\r\n style={column.style}\r\n >\r\n <div className={styles.tableThContent}>{column.label}</div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {dataSource.length > 0 ? (\r\n dataSource.map((row, index) => {\r\n const rowProps = onRow?.(row, index) || {};\r\n return (\r\n <tr\r\n key={index}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {finalColumns.map((column) => (\r\n <td\r\n key={column.key}\r\n className={clsx(styles.tableTd, column.align && `text-${column.align}`)}\r\n >\r\n {renderCell(column, row, index)}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td colSpan={finalColumns.length} className={styles.tableEmptyCell}>\r\n {emptyText}\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Table;","import React, { useState, KeyboardEvent } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\n\r\nimport type { Side, Align } from '../../types/common.types';\r\nimport type { FilterItem as FilterListItem } from '../Filter';\r\n\r\ninterface BaseFilterItem {\r\n id?: string;\r\n buttonText: string | React.ReactNode;\r\n icon?: React.ReactElement;\r\n side?: Side;\r\n align?: Exclude<Align, 'center'>;\r\n disabled?: boolean;\r\n onToggle?: (isOpen: boolean) => void;\r\n tooltip?: string;\r\n}\r\n\r\ninterface CheckboxFilterItem extends BaseFilterItem {\r\n type: 'checkbox' | 'text' | 'icon';\r\n items: FilterListItem[];\r\n selectedIds?: string[];\r\n onSelectionChange?: (selectedIds: string[]) => void;\r\n placeholder?: string;\r\n enableSearch?: boolean;\r\n}\r\n\r\ninterface CalendarFilterItem extends BaseFilterItem {\r\n type: 'calendar';\r\n selectedDate?: Date | null;\r\n onDateSelect?: (date: Date) => void;\r\n onClear?: () => void;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n locale?: string;\r\n placeholder?: string;\r\n}\r\n\r\nexport type FilterItem = CheckboxFilterItem | CalendarFilterItem;\r\n\r\nconst isCalendarFilter = (filter: FilterItem): filter is CalendarFilterItem => {\r\n return filter.type === 'calendar';\r\n};\r\n\r\nconst isCheckboxFilter = (filter: FilterItem): filter is CheckboxFilterItem => {\r\n return filter.type === 'checkbox' || filter.type === 'text' || filter.type === 'icon';\r\n};\r\n\r\nexport interface TableHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\r\n searchValue?: string;\r\n onSearchChange?: (value: string) => void;\r\n searchPlaceholder?: string;\r\n showSearch?: boolean;\r\n showFilters?: boolean;\r\n filters?: React.ReactNode;\r\n filterItems?: FilterItem[];\r\n className?: string;\r\n onSearch?: (value: string) => void;\r\n showClearSearch?: boolean;\r\n}\r\n\r\nconst TableHeader: React.FC<TableHeaderProps> = ({\r\n searchValue = '',\r\n onSearchChange,\r\n onSearch,\r\n searchPlaceholder = 'Pesquisar...',\r\n showSearch = true,\r\n showFilters = false,\r\n filters,\r\n filterItems = [],\r\n className = '',\r\n ...rest\r\n}) => {\r\n const [internalSearchValue, setInternalSearchValue] = useState(searchValue);\r\n\r\n React.useEffect(() => {\r\n setInternalSearchValue(searchValue);\r\n }, [searchValue]);\r\n\r\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setInternalSearchValue(value);\r\n \r\n if (value === '' && onSearchChange) {\r\n onSearchChange('');\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n if (onSearch) {\r\n onSearch(internalSearchValue);\r\n } else if (onSearchChange) {\r\n onSearchChange(internalSearchValue);\r\n }\r\n }\r\n };\r\n\r\n const hasFilters = filters || (filterItems && filterItems.length > 0);\r\n\r\n return (\r\n <div className={`${styles.tableHeader} ${className}`.trim()} {...rest}>\r\n {showSearch && (onSearchChange || onSearch) && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={internalSearchValue}\r\n onChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n placeholder={searchPlaceholder}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n \r\n {showFilters && (\r\n <div className={styles.tableHeaderFilters}>\r\n {hasFilters ? (\r\n <div className={styles.tableHeaderFiltersContent}>\r\n {filters && (\r\n <div className={styles.tableHeaderCustomFilters}>\r\n {filters}\r\n </div>\r\n )}\r\n\r\n <div className={styles.tableHeaderFiltersWrapper}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n \r\n <div className={styles.tableHeaderFilterItems}>\r\n {filterItems && filterItems.map((filterItem, index) => {\r\n const commonProps = {\r\n buttonText: filterItem.buttonText,\r\n icon: filterItem.icon,\r\n side: filterItem.side,\r\n align: filterItem.align,\r\n disabled: filterItem.disabled,\r\n variant: 'outlined' as const,\r\n onOpen: () => filterItem.onToggle?.(true),\r\n onClose: () => filterItem.onToggle?.(false),\r\n };\r\n if (isCalendarFilter(filterItem)) {\r\n return (\r\n <Filter\r\n key={filterItem.id || index}\r\n {...commonProps}\r\n type=\"calendar\"\r\n selectedDate={filterItem.selectedDate}\r\n onDateSelect={filterItem.onDateSelect}\r\n onClearDate={filterItem.onClear}\r\n minDate={filterItem.minDate}\r\n maxDate={filterItem.maxDate}\r\n placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n\r\n if (isCheckboxFilter(filterItem)) {\r\n return (\r\n <Filter\r\n key={filterItem.id || index}\r\n {...commonProps}\r\n type={filterItem.type}\r\n items={filterItem.items}\r\n selectedIds={filterItem.selectedIds}\r\n onApplyFilter={filterItem.onSelectionChange}\r\n placeholder={filterItem.placeholder}\r\n enableSearch={filterItem.enableSearch}\r\n />\r\n );\r\n }\r\n\r\n console.warn('TableHeader: Tipo de filtro não reconhecido:', filterItem);\r\n return null;\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className={styles.tableHeaderFiltersPlaceholder}>\r\n <span>Nenhum filtro disponível</span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport type { CalendarFilterItem, CheckboxFilterItem };\r\nexport { isCalendarFilter, isCheckboxFilter };\r\n\r\nexport default TableHeader;\r\n","import { ChevronLeft16Regular, ChevronRight16Regular } from '@fluentui/react-icons';\r\nimport React from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\n\r\nexport interface TablePaginationProps extends React.HTMLAttributes<HTMLDivElement> {\r\n currentPage: number;\r\n totalItems: number;\r\n itemsPerPage: number;\r\n onPageChange: (page: number) => void;\r\n onItemsPerPageChange: (itemsPerPage: number) => void;\r\n pageSizeOptions?: number[];\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst TablePagination: React.FC<TablePaginationProps> = ({\r\n currentPage,\r\n totalItems,\r\n itemsPerPage,\r\n onPageChange,\r\n onItemsPerPageChange,\r\n pageSizeOptions = [10, 25, 50, 100],\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const startItem = totalItems > 0 ? (currentPage - 1) * itemsPerPage + 1 : 0;\r\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\r\n \r\n const canGoPrev = currentPage > 1 && !disabled;\r\n const canGoNext = currentPage < totalPages && !disabled;\r\n \r\n const handlePrevious = () => {\r\n if (canGoPrev) {\r\n onPageChange(currentPage - 1);\r\n }\r\n };\r\n \r\n const handleNext = () => {\r\n if (canGoNext) {\r\n onPageChange(currentPage + 1);\r\n }\r\n };\r\n \r\n const handleItemsPerPageChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\r\n const newItemsPerPage = Number(event.target.value);\r\n onItemsPerPageChange(newItemsPerPage);\r\n };\r\n\r\n return (\r\n <div className={`${styles.tablePagination} ${className}`.trim()} {...rest}>\r\n\r\n <div className={styles.tablePaginationSelect}>\r\n <label htmlFor=\"items-per-page\" className={styles.tablePaginationLabel}>\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"items-per-page\"\r\n value={itemsPerPage}\r\n onChange={handleItemsPerPageChange}\r\n disabled={disabled}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {pageSizeOptions.map((option) => (\r\n <option key={option} value={option}>\r\n {option}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n \r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalItems > 0 \r\n ? `${startItem}–${endItem} de ${totalItems}`\r\n : '0 itens'\r\n }\r\n </span>\r\n </div>\r\n \r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handlePrevious}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n \r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handleNext}\r\n disabled={!canGoNext}\r\n aria-label=\"Próxima página\"\r\n >\r\n <ChevronRight16Regular />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default TablePagination;","import { SearchInfo20Regular } from '@fluentui/react-icons';\r\n\r\nimport styles from '../Table.module.scss';\r\n\r\nimport type { EmptyStateProps } from '../Table.types';\r\n\r\nconst EmptyState = ({ emptyIcon, emptyTitle, emptyText }: EmptyStateProps) => (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n {emptyIcon ?? <SearchInfo20Regular />}\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>\r\n {emptyTitle ?? 'Nenhum dado encontrado'}\r\n </h3>\r\n <p className={styles.tableEmptyCaption}>\r\n {emptyText ?? 'Nenhum registro encontrado'}\r\n </p>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport default EmptyState;\r\n","import { ChevronLeft16Regular, ChevronRight16Regular, ArrowSort16Regular, ArrowSortUp16Regular, ArrowSortDown16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport {\r\n type ColumnDef,\r\n type ColumnFiltersState,\r\n type RowSelectionState,\r\n type SortingState,\r\n flexRender,\r\n getCoreRowModel,\r\n getFilteredRowModel,\r\n getPaginationRowModel,\r\n getSortedRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table';\r\nimport clsx from 'clsx';\r\nimport { useState, useMemo, useRef, useEffect } from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\nimport 'react-loading-skeleton/dist/skeleton.css';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Button from '../Button/Button';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport EmptyState from './components/EmptyState';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\n\r\nimport type { TableV2Props } from './Table.types';\r\n\r\nconst TableV2 = <T,>({\r\n columns,\r\n data,\r\n enableFilters = false,\r\n enableRowSelection = false,\r\n enableSorting = true,\r\n onRowSelectionChange,\r\n bulkActions,\r\n header,\r\n footer,\r\n loading = false,\r\n emptyIcon,\r\n emptyTitle,\r\n emptyText,\r\n onRow,\r\n className,\r\n}: TableV2Props<T>) => {\r\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\r\n const [globalFilter, setGlobalFilter] = useState('');\r\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\r\n const rowSelectionRef = useRef<RowSelectionState>({});\r\n rowSelectionRef.current = rowSelection;\r\n const lastEmittedSelectionKey = useRef('{}');\r\n const [sorting, setSorting] = useState<SortingState>([]);\r\n const [pagination, setPagination] = useState({\r\n pageIndex: 0,\r\n pageSize: footer?.defaultPageSize ?? 10,\r\n });\r\n const { pageIndex, pageSize } = pagination;\r\n\r\n const selectionColumn = useMemo<ColumnDef<T, unknown>>(() => ({\r\n id: '__select__',\r\n size: 48,\r\n enableSorting: false,\r\n enableColumnFilter: false,\r\n header: ({ table: t }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={t.getIsAllPageRowsSelected()}\r\n indeterminate={t.getIsSomePageRowsSelected()}\r\n onCheckedChange={(checked) =>\r\n t.toggleAllPageRowsSelected(checked)\r\n }\r\n />\r\n </div>\r\n ),\r\n cell: ({ row }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n onCheckedChange={(checked) => row.toggleSelected(checked)}\r\n />\r\n </div>\r\n ),\r\n }), []);\r\n\r\n const resolvedColumns = useMemo(\r\n () => (enableRowSelection ? [selectionColumn, ...columns] : columns),\r\n [enableRowSelection, selectionColumn, columns]\r\n );\r\n\r\n const showSearch = !!(header && (header.showSearch ?? true));\r\n\r\n const table = useReactTable({\r\n data,\r\n columns: resolvedColumns,\r\n defaultColumn: { minSize: 44, size: 0 },\r\n state: {\r\n ...(enableFilters ? { columnFilters } : {}),\r\n ...(showSearch ? { globalFilter } : {}),\r\n ...(footer ? { pagination: { pageIndex, pageSize } } : {}),\r\n ...(enableRowSelection ? { rowSelection } : {}),\r\n ...(enableSorting ? { sorting } : {}),\r\n },\r\n onColumnFiltersChange: enableFilters ? setColumnFilters : undefined,\r\n onGlobalFilterChange: showSearch ? setGlobalFilter : undefined,\r\n onSortingChange: enableSorting ? setSorting : undefined,\r\n enableSorting,\r\n onRowSelectionChange: enableRowSelection\r\n ? (updater) => {\r\n const prev = rowSelectionRef.current;\r\n const next = typeof updater === 'function' ? updater(prev) : updater;\r\n const selectionKey = JSON.stringify(next, Object.keys(next).sort());\r\n if (selectionKey === lastEmittedSelectionKey.current) return;\r\n lastEmittedSelectionKey.current = selectionKey;\r\n rowSelectionRef.current = next;\r\n setRowSelection(next);\r\n if (onRowSelectionChange) {\r\n const selectedRows = table\r\n .getCoreRowModel()\r\n .rows.filter((r) => next[r.id])\r\n .map((r) => r.original);\r\n onRowSelectionChange(selectedRows);\r\n }\r\n }\r\n : undefined,\r\n enableRowSelection,\r\n onPaginationChange: footer ? setPagination : undefined,\r\n getCoreRowModel: getCoreRowModel(),\r\n getFilteredRowModel:\r\n enableFilters || showSearch ? getFilteredRowModel() : undefined,\r\n getPaginationRowModel: footer ? getPaginationRowModel() : undefined,\r\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\r\n });\r\n\r\n const filteredRowCount = table.getFilteredRowModel().rows.length;\r\n const effectiveTotalItems = footer\r\n ? (enableFilters || showSearch) ? filteredRowCount : footer.totalItems\r\n : 0;\r\n const totalPages = footer ? Math.ceil(effectiveTotalItems / pageSize) : 0;\r\n const canGoPrev = pageIndex > 0;\r\n const canGoNext = pageIndex + 1 < totalPages;\r\n\r\n const skeletonRowCount = footer ? pageSize : (data.length > 0 ? data.length : pageSize);\r\n\r\n const selectedRows = useMemo(\r\n () =>\r\n table\r\n .getCoreRowModel()\r\n .rows.filter((r) => rowSelection[r.id])\r\n .map((r) => r.original),\r\n [rowSelection, table]\r\n );\r\n const selectedCount = selectedRows.length;\r\n const showBulkActions = enableRowSelection && !!bulkActions && selectedCount > 0;\r\n\r\n useEffect(() => {\r\n if (enableRowSelection) {\r\n table.resetRowSelection();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pageIndex]);\r\n\r\n const handleClearSelection = () => {\r\n table.resetRowSelection();\r\n bulkActions?.onClear?.();\r\n };\r\n\r\n const handlePageSizeChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const size = Number(e.target.value);\r\n setPagination({ pageIndex: 0, pageSize: size });\r\n footer?.onPageSizeChange?.(size);\r\n };\r\n\r\n return (\r\n <div className={clsx(styles.wrapper, className)}>\r\n {showBulkActions && (\r\n <div className={styles.bulkActionsBar}>\r\n <div className={styles.bulkActionsInfo}>\r\n <Button\r\n variant=\"text\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n ariaLabel=\"Limpar seleção\"\r\n onClick={handleClearSelection}\r\n className={styles.bulkActionsClearButton}\r\n />\r\n <span className={styles.bulkActionsLabel}>\r\n {bulkActions.label\r\n ? bulkActions.label(selectedCount, selectedRows)\r\n : `${selectedCount} ${selectedCount === 1 ? 'item selecionado' : 'itens selecionados'}`}\r\n </span>\r\n </div>\r\n <div className={styles.bulkActionsButtons}>\r\n {bulkActions.actions.map((action, index) => (\r\n <Button\r\n key={index}\r\n variant={action.variant ?? 'outlined'}\r\n type=\"button\"\r\n disabled={action.disabled}\r\n onClick={action.onClick}\r\n size=\"sm\"\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {header && (\r\n <div className={styles.tableHeader}>\r\n {showSearch && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={globalFilter}\r\n onChange={(e) => {\r\n setGlobalFilter(e.target.value);\r\n if (footer) setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n }}\r\n placeholder={header.searchPlaceholder ?? 'Pesquisar...'}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n {!!header.filterItems?.length && (\r\n <div className={styles.tableHeaderFilters}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n <div className={styles.tableHeaderFilterItems}>\r\n {header.filterItems.map((filterItem, index) => {\r\n const commonProps = {\r\n buttonText: filterItem.buttonText,\r\n icon: filterItem.icon,\r\n side: filterItem.side,\r\n align: filterItem.align,\r\n disabled: filterItem.disabled,\r\n variant: 'outlined' as const,\r\n onOpen: () => filterItem.onToggle?.(true),\r\n onClose: () => filterItem.onToggle?.(false),\r\n };\r\n if (filterItem.type === 'calendar') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type=\"calendar\"\r\n selectedDate={filterItem.selectedDate}\r\n onDateSelect={filterItem.onDateSelect}\r\n onClearDate={filterItem.onClear}\r\n minDate={filterItem.minDate}\r\n maxDate={filterItem.maxDate}\r\n locale={filterItem.locale}\r\n placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type={filterItem.type}\r\n items={filterItem.items}\r\n selectedIds={filterItem.selectedIds}\r\n onApplyFilter={filterItem.onSelectionChange}\r\n placeholder={filterItem.placeholder}\r\n enableSearch={filterItem.enableSearch}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className={styles.tableContainer}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table\r\n className={styles.table}\r\n aria-label=\"Tabela de dados\"\r\n aria-rowcount={filteredRowCount + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <tr key={headerGroup.id}>\r\n {headerGroup.headers.map((col) => (\r\n <th\r\n key={col.id}\r\n className={styles.tableTh}\r\n style={{\r\n textAlign: col.column.columnDef.meta?.align,\r\n width: col.column.columnDef.size || undefined,\r\n minWidth: col.column.columnDef.minSize,\r\n maxWidth: col.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? col.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n <div className={styles.tableThContent}>\r\n {col.isPlaceholder ? null : col.column.getCanSort() ? (\r\n <button\r\n type=\"button\"\r\n className={styles.tableSortButton}\r\n onClick={col.column.getToggleSortingHandler()}\r\n aria-label={`Ordenar por ${typeof col.column.columnDef.header === 'string' ? col.column.columnDef.header : col.id}`}\r\n >\r\n {flexRender(col.column.columnDef.header, col.getContext())}\r\n {col.column.getIsSorted() === 'asc' ? (\r\n <ArrowSortUp16Regular className={styles.tableSortIcon} />\r\n ) : col.column.getIsSorted() === 'desc' ? (\r\n <ArrowSortDown16Regular className={styles.tableSortIcon} />\r\n ) : (\r\n <ArrowSort16Regular className={clsx(styles.tableSortIcon, styles.tableSortIconNeutral)} />\r\n )}\r\n </button>\r\n ) : (\r\n flexRender(col.column.columnDef.header, col.getContext())\r\n )}\r\n </div>\r\n {enableFilters && col.column.getCanFilter() && (\r\n <input\r\n value={(col.column.getFilterValue() as string) ?? ''}\r\n onChange={(e) =>\r\n col.column.setFilterValue(e.target.value)\r\n }\r\n placeholder=\"Filtrar...\"\r\n />\r\n )}\r\n </th>\r\n ))}\r\n </tr>\r\n ))}\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {loading ? (\r\n Array.from({ length: skeletonRowCount }).map((_, rowIdx) => (\r\n <tr key={`skeleton-row-${rowIdx}`} className={styles.tableRow}>\r\n {table.getVisibleLeafColumns().map((col) => (\r\n <td key={col.id} className={styles.tableTd}>\r\n <Skeleton />\r\n </td>\r\n ))}\r\n </tr>\r\n ))\r\n ) : table.getRowModel().rows.length > 0 ? (\r\n table.getRowModel().rows.map((row, index) => {\r\n const rowProps = onRow?.(row.original, index) ?? {};\r\n return (\r\n <tr\r\n key={row.id}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {row.getVisibleCells().map((cell) => (\r\n <td\r\n key={cell.id}\r\n className={styles.tableTd}\r\n style={{\r\n textAlign: cell.column.columnDef.meta?.align,\r\n width: cell.column.columnDef.size || undefined,\r\n minWidth: cell.column.columnDef.minSize,\r\n maxWidth: cell.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? cell.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n {cell.column.columnDef.meta?.maxHeight ? (\r\n <div \r\n className={styles.tableCellMaxHeight}\r\n style={{ maxHeight: cell.column.columnDef.meta.maxHeight}}>\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </div>\r\n ) : (\r\n flexRender(cell.column.columnDef.cell, cell.getContext())\r\n )}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td\r\n colSpan={table.getVisibleLeafColumns().length}\r\n className={styles.tableEmptyCell}\r\n >\r\n <EmptyState emptyIcon={emptyIcon} emptyTitle={emptyTitle} emptyText={emptyText} />\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n {footer && (\r\n <div className={styles.tablePagination}>\r\n <div className={styles.tablePaginationSelect}>\r\n <label\r\n htmlFor=\"tablev2-page-size\"\r\n className={styles.tablePaginationLabel}\r\n >\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"tablev2-page-size\"\r\n value={pageSize}\r\n onChange={handlePageSizeChange}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {(footer.pageSizeOptions ?? [10, 25, 50, 100]).map((opt) => (\r\n <option key={opt} value={opt}>\r\n {opt}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalPages > 0\r\n ? `${pageIndex + 1} de ${totalPages}`\r\n : '0 páginas'}\r\n </span>\r\n </div>\r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex - 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex + 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoNext}\r\n aria-label=\"Próxima página\"\r\n >\r\n <ChevronRight16Regular />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default TableV2;\r\n","import clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, forwardRef, useEffect } from 'react';\r\n\r\nimport styles from './TextArea.module.scss';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextAreaProps } from './TextArea.types';\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (\r\n {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n onChange,\r\n disabled = false,\r\n maxLength,\r\n required = false,\r\n helperText,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n align = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n onBlur,\r\n onFocus,\r\n name,\r\n resize = 'vertical',\r\n showCharCount = false,\r\n height,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const normalizeValue = (val: string | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n\r\n const [textareaValue, setTextareaValue] = useState(normalizeValue(value));\r\n const [textareaError, setTextareaError] = useState('');\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n setTextareaValue(normalizeValue(value));\r\n }, [value]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setTextareaValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n if (required && textareaValue.trim() === '') {\r\n setTextareaError(errorMessage || 'Campo obrigatório.');\r\n } else {\r\n setTextareaError('');\r\n }\r\n onBlur?.(e);\r\n },\r\n [textareaValue, required, errorMessage, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const hasError = Boolean(textareaError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || textareaError || helperText || '\\u00A0';\r\n const helperId = (textareaError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n disabled && styles.disabled,\r\n hasError && !disabled && styles.error,\r\n className\r\n );\r\n\r\n return (\r\n <div className={containerClass}>\r\n {label && (\r\n <LabelComponent\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <textarea\r\n {...rest}\r\n ref={ref}\r\n id={componentId}\r\n name={name}\r\n value={textareaValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n style={{ resize, height }}\r\n />\r\n </div>\r\n\r\n <div className={styles.footer}>\r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n\r\n {showCharCount && maxLength && (\r\n <span className={styles.charCount}>\r\n {textareaValue.length}/{maxLength}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextArea.displayName = 'TextArea';\r\n\r\nexport default React.memo(TextArea);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\n\r\n/**\r\n * Valor disponibilizado pelo contexto do sistema de Toast.\r\n *\r\n * Acessível via `useToast()` em componentes filhos do `ToastProvider`.\r\n *\r\n * @see {@link useToast}\r\n */\r\nexport interface ToastContextValue {\r\n /** Lista de toasts atualmente visíveis na tela. */\r\n toasts: ToastProps[];\r\n /**\r\n * Exibe um novo toast na tela.\r\n *\r\n * Gera um `id` único automaticamente e adiciona o toast à fila.\r\n * Quando o limite de `maxToasts` é atingido, o toast mais antigo é removido.\r\n *\r\n * @param toast - Propriedades do toast a ser exibido (sem `id`).\r\n */\r\n showToast: (toast: Omit<ToastProps, 'id'>) => void;\r\n /**\r\n * Remove um toast específico da tela pelo seu `id`.\r\n *\r\n * @remarks\r\n * Geralmente não é necessário chamar este método manualmente, pois os toasts\r\n * se fecham automaticamente (via `duration`) ou pelo botão de fechar do usuário.\r\n *\r\n * @param id - ID único do toast a ser removido.\r\n */\r\n dismissToast: (id: string) => void;\r\n}\r\n\r\n/**\r\n * Contexto React que armazena o estado e as ações do sistema de Toast.\r\n *\r\n * @remarks\r\n * Não consuma este contexto diretamente. Utilize o hook `useToast()` para\r\n * acessar as funcionalidades de forma segura e com verificação de provider.\r\n *\r\n * @see {@link ToastContextValue}\r\n * @see {@link useToast}\r\n */\r\nexport const ToastContext = React.createContext<ToastContextValue | undefined>(undefined);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\nimport { ToastContext } from '../contexts/ToastContext';\r\n\r\n/**\r\n * Hook interno que acessa o `ToastContext` diretamente.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns O valor completo do contexto — `toasts`, `showToast` e `dismissToast`.\r\n *\r\n * @internal\r\n */\r\nexport const useToastContext = () => {\r\n const context = React.useContext(ToastContext);\r\n if (!context) {\r\n throw new Error('useToastContext deve ser usado dentro de ToastProvider');\r\n }\r\n return context;\r\n};\r\n\r\n/**\r\n * Hook para exibir e remover toasts na aplicação.\r\n *\r\n * O componente que usa este hook deve ser filho de um `ToastProvider`.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns Objeto com os métodos `showToast` e `dismissToast`.\r\n *\r\n * @example\r\n * ```tsx\r\n * import { useToast } from '@giro-ds/react';\r\n *\r\n * function MeuComponente() {\r\n * const { showToast } = useToast();\r\n *\r\n * const handleSalvar = async () => {\r\n * try {\r\n * await salvarDados();\r\n * showToast({ title: 'Sucesso!', iconType: 'Success', duration: 3000 });\r\n * } catch (err) {\r\n * showToast({ title: 'Erro ao salvar', iconType: 'Alert', automaticClose: false });\r\n * }\r\n * };\r\n *\r\n * return <button onClick={handleSalvar}>Salvar</button>;\r\n * }\r\n * ```\r\n */\r\nexport const useToast = () => {\r\n const { showToast, dismissToast } = useToastContext();\r\n\r\n return {\r\n showToast: (toast: Omit<ToastProps, 'id'>) => showToast(toast),\r\n dismissToast: (id: string) => dismissToast(id),\r\n };\r\n};\r\n","import { Info20Filled, CheckmarkCircle20Filled, Warning20Filled, Dismiss16Filled} from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Toast.module.scss';\r\nimport { ToastProps } from './Toast.types';\r\nimport { useToastContext } from '../../hooks/useToast';\r\n\r\n/**\r\n * Componente individual de notificação Toast.\r\n *\r\n * Consome o contexto do `ToastProvider` para gerenciar seu próprio ciclo de vida.\r\n * Cada instância recebe um `id` único gerado pelo provider e o utiliza para\r\n * se remover da fila ao ser fechada.\r\n *\r\n * Construído sobre `Toast.Root` do **Radix UI**, com suporte completo a\r\n * acessibilidade (ARIA) e gesto de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * Este componente não deve ser usado diretamente. Utilize o hook `useToast`\r\n * para exibir toasts programaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Uso indireto via hook (recomendado)\r\n * const { showToast } = useToast();\r\n *\r\n * showToast({\r\n * title: 'Item salvo',\r\n * iconType: 'Success',\r\n * duration: 3000,\r\n * });\r\n * ```\r\n *\r\n * @param props - {@link ToastProps} combinadas com o `id` único do toast\r\n */\r\nconst Toast: React.FC<ToastProps & { id: string }> = ({ \r\n id,\r\n title,\r\n duration = 5000,\r\n icon,\r\n iconClosed = <Dismiss16Filled />,\r\n automaticClose = true,\r\n iconType = \"Info\",\r\n className,\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = React.useState(false);\r\n const { dismissToast } = useToastContext();\r\n\r\n React.useEffect(() => {\r\n setOpen(true);\r\n }, []);\r\n\r\n const handleOpenChange = (isOpen: boolean) => {\r\n setOpen(isOpen);\r\n if (!isOpen && id) {\r\n setTimeout(() => dismissToast(id), 200);\r\n }\r\n };\r\n\r\n let displayIcon = icon;\r\n const effectiveDuration = automaticClose ? duration : Infinity;\r\n\r\n if (!icon) {\r\n if (iconType === 'Info') {\r\n displayIcon = <Info20Filled />;\r\n } else if (iconType === 'Success') {\r\n displayIcon = <CheckmarkCircle20Filled />;\r\n } else if (iconType === 'Alert') {\r\n displayIcon = <Warning20Filled />;\r\n }\r\n }\r\n\r\n return (\r\n <ToastRadix.Root \r\n className={clsx(styles.toastRoot, className)} \r\n open={open} \r\n onOpenChange={handleOpenChange} \r\n duration={effectiveDuration}\r\n {...rest}\r\n >\r\n <span className={`${styles.Icon} ${iconType ? styles[`icon${iconType}`] : ''}`} aria-hidden=\"true\">\r\n {displayIcon}\r\n </span>\r\n <div className={styles.toastContent}>\r\n <ToastRadix.Title className={styles.toastTitle}> {title} </ToastRadix.Title>\r\n </div>\r\n <ToastRadix.Close className={styles.toastClose}> {iconClosed} </ToastRadix.Close>\r\n </ToastRadix.Root>\r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import * as React from 'react';\r\n\r\nimport { ToastContext } from '../../../contexts/ToastContext';\r\nimport { ToastProps } from '../Toast.types';\r\n\r\n/**\r\n * Provider que gerencia o estado global dos toasts na aplicação.\r\n *\r\n * Deve envolver toda a árvore de componentes que precisará exibir toasts.\r\n * Disponibiliza o contexto com `showToast` e `dismissToast` para todos os\r\n * componentes filhos via `useToast()`.\r\n *\r\n * @remarks\r\n * O `ToastContainer` deve ser renderizado **dentro** do `ToastProvider`.\r\n *\r\n * @example\r\n * ```tsx\r\n * // App.tsx ou layout principal\r\n * import { ToastProvider, ToastContainer } from '@giro-ds/react';\r\n *\r\n * function App() {\r\n * return (\r\n * <ToastProvider maxToasts={5}>\r\n * <Routes />\r\n * <ToastContainer />\r\n * </ToastProvider>\r\n * );\r\n * }\r\n * ```\r\n *\r\n * @param children - Árvore de componentes filhos da aplicação.\r\n * @param maxToasts - Número máximo de toasts exibidos simultaneamente.\r\n * Quando o limite é excedido, o toast mais antigo é removido automaticamente.\r\n * @default 5\r\n */\r\nexport const ToastProvider: React.FC<{ children: React.ReactNode; maxToasts?: number }> = ({ \r\n children, \r\n maxToasts = 5 \r\n}) => {\r\n const [toasts, setToasts] = React.useState<ToastProps[]>([]);\r\n\r\n const showToast = React.useCallback((toast: Omit<ToastProps, 'id'>) => {\r\n const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n const newToast: ToastProps = { ...toast, id };\r\n\r\n setToasts((prevToasts) => {\r\n const updatedToasts = [...prevToasts, newToast];\r\n if (updatedToasts.length > maxToasts) {\r\n return updatedToasts.slice(updatedToasts.length - maxToasts);\r\n }\r\n return updatedToasts;\r\n });\r\n }, [maxToasts]);\r\n\r\n const dismissToast = React.useCallback((id: string) => {\r\n setToasts((prevToasts) => prevToasts.filter((toast) => toast.id !== id));\r\n }, []);\r\n\r\n const value = React.useMemo(\r\n () => ({ toasts, showToast, dismissToast }),\r\n [toasts, showToast, dismissToast]\r\n );\r\n\r\n return (\r\n <ToastContext.Provider value={value}>\r\n {children}\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nToastProvider.displayName = 'ToastProvider';\r\n","import { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { useToastContext } from '../../../hooks/useToast';\r\nimport Toast from '../Toast';\r\nimport styles from '../Toast.module.scss';\r\n\r\n/**\r\n * Componente responsável por renderizar todos os toasts ativos na tela.\r\n *\r\n * Lê a lista de toasts do contexto fornecido pelo `ToastProvider` e os\r\n * renderiza individualmente. Configura o `Toast.Provider` do Radix UI com\r\n * direção de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * - Deve ser posicionado **dentro** do `ToastProvider`.\r\n * - Geralmente é colocado próximo à raiz da aplicação, após os demais filhos.\r\n * - Toasts sem `id` são ignorados automaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ToastProvider>\r\n * <App />\r\n * <ToastContainer /> {/* Deve estar aqui *\\/}\r\n * </ToastProvider>\r\n * ```\r\n */\r\nexport const ToastContainer: React.FC = () => {\r\n const { toasts } = useToastContext();\r\n\r\n return (\r\n <ToastRadix.Provider swipeDirection=\"left\">\r\n {toasts.map((toast) => {\r\n if (!toast.id) return null;\r\n return <Toast key={toast.id} id={toast.id} {...toast} />;\r\n })}\r\n <ToastRadix.Viewport className={styles.toastViewport} />\r\n </ToastRadix.Provider>\r\n );\r\n};\r\n\r\nToastContainer.displayName = 'ToastContainer';\r\n","import clsx from 'clsx';\r\nimport { Switch as SwitchRadix} from \"radix-ui\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Switch.module.scss';\r\nimport { SwitchProps } from './Switch.types';\r\n\r\nconst Switch: React.FC<SwitchProps> = ({\r\n\tdisabled = false,\r\n\tdefaultChecked = false,\r\n\tchecked,\r\n\tonCheckedChange,\r\n\tclassName,\r\n\t...rest\r\n}) => (\r\n\t\t<div className={clsx(styles.container, className)}>\r\n\t\t\t<SwitchRadix.Root \r\n\t\t\t\tclassName={styles.switchRoot} \r\n\t\t\t\tdisabled={disabled} \r\n\t\t\t\tdefaultChecked={defaultChecked} \r\n\t\t\t\tchecked={checked}\r\n\t\t\t\tonCheckedChange={onCheckedChange}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t<SwitchRadix.Thumb className={styles.switchThumb} />\r\n\t\t\t</SwitchRadix.Root>\r\n\t\t</div>\r\n);\r\n\r\nexport default Switch;","import clsx from 'clsx';\r\nimport React, { useRef, useState, useCallback, useEffect } from 'react';\r\n\r\nimport styles from './VerificationCode.module.scss';\r\n\r\nimport type { InputType, VerificationCodeProps } from './VerificationCode.types';\r\n\r\n/**\r\n * Mapa de regex para validação dos tipos de entrada\r\n */\r\nconst REGEX_MAP: Record<InputType, RegExp> = {\r\n numeric: /^[0-9]$/,\r\n alpha: /^[a-zA-Z]$/,\r\n alphanumeric: /^[a-zA-Z0-9]$/,\r\n};\r\n\r\n/**\r\n * Componente VerificationCode para entrada de códigos de verificação\r\n * \r\n * @description Permite entrada de códigos com múltiplos dígitos,\r\n * suportando diferentes tipos de caracteres e navegação por teclado.\r\n * \r\n * @example\r\n * ```tsx\r\n * <VerificationCode\r\n * length={6}\r\n * inputType=\"numeric\"\r\n * onComplete={(code) => console.log('Código:', code)}\r\n * hasError={false}\r\n * />\r\n * ```\r\n */\r\nconst VerificationCode: React.FC<VerificationCodeProps> = ({\r\n length = 6,\r\n inputType = 'numeric',\r\n onComplete,\r\n hasError = false,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n\r\n const validLength = Math.min(Math.max(length, 1), 100);\r\n const [values, setValues] = useState<string[]>(Array(validLength).fill(''));\r\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\r\n const currentRegex = REGEX_MAP[inputType] || REGEX_MAP.numeric;\r\n\r\n\r\n useEffect(() => {\r\n setValues(Array(validLength).fill(''));\r\n }, [inputType, validLength]);\r\n\r\n \r\n const handleChange = useCallback((index: number, value: string): void => {\r\n\r\n if (!currentRegex.test(value)) return;\r\n\r\n const newValues = [...values];\r\n newValues[index] = value;\r\n setValues(newValues);\r\n if (value && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handlePaste = useCallback((e: React.ClipboardEvent<HTMLInputElement>): void => {\r\n e.preventDefault();\r\n\r\n const pasteData = e.clipboardData.getData('Text');\r\n const valuesToPaste = pasteData.split('').slice(0, validLength);\r\n\r\n const newValues = [...values];\r\n\r\n valuesToPaste.forEach((value, index) => {\r\n if (currentRegex.test(value)) {\r\n newValues[index] = value;\r\n }\r\n });\r\n\r\n setValues(newValues);\r\n\r\n const firstEmptyIndex = newValues.findIndex(v => v === '');\r\n const focusIndex = firstEmptyIndex === -1 ? validLength - 1 : firstEmptyIndex;\r\n inputsRef.current[focusIndex]?.focus();\r\n\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handleKeyDown = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Backspace') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n\r\n if (values[index]) {\r\n\r\n newValues[index] = '';\r\n setValues(newValues);\r\n } else if (index > 0) {\r\n\r\n inputsRef.current[index - 1]?.focus();\r\n newValues[index - 1] = '';\r\n setValues(newValues);\r\n }\r\n }\r\n\r\n if (e.key === 'Delete') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n newValues[index] = '';\r\n setValues(newValues);\r\n\r\n if (index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }\r\n if (e.key === 'ArrowLeft' && index > 0) {\r\n e.preventDefault();\r\n inputsRef.current[index - 1]?.focus();\r\n }\r\n\r\n if (e.key === 'ArrowRight' && index < validLength - 1) {\r\n e.preventDefault();\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }, [values, validLength]);\r\n\r\n const handleKeyUp = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n\r\n if (values[index] && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n } else if (values[index] && index === validLength - 1) {\r\n inputsRef.current[index]?.blur();\r\n }\r\n }\r\n }, [values, validLength]);\r\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>): void => {\r\n e.target.select();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className={clsx(styles['zds-verification-code__container'], className)} {...rest}>\r\n {values.map((val, i) => (\r\n <input\r\n id={`zds-verification-code__element-${i}`}\r\n key={i}\r\n ref={(el) => {\r\n inputsRef.current[i] = el;\r\n }}\r\n type=\"text\"\r\n inputMode={inputType === 'numeric' ? 'numeric' : 'text'}\r\n maxLength={1}\r\n value={val}\r\n onChange={(e) => handleChange(i, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(i, e)}\r\n onKeyUp={(e) => handleKeyUp(i, e)}\r\n onPaste={i === 0 ? handlePaste : undefined}\r\n onFocus={handleFocus}\r\n disabled={disabled}\r\n className={clsx(styles['zds-verification-code__input'], {\r\n [styles['zds-verification-code__has-error']]: hasError,\r\n [styles['zds-verification-code__filled']]: val,\r\n })}\r\n aria-invalid={hasError}\r\n aria-label={`Dígito ${i + 1} de ${validLength}`}\r\n aria-describedby={hasError && errorMessage ? 'verification-code-error' : undefined}\r\n autoComplete=\"one-time-code\"\r\n />\r\n ))}\r\n </div>\r\n\r\n {hasError && errorMessage && (\r\n <div\r\n id=\"verification-code-error\"\r\n className={styles['zds-verification-code__error']}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n >\r\n {errorMessage}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default VerificationCode;","import { useState, useCallback, useRef, useEffect } from 'react';\r\n\r\n/**\r\n * Configurações para simulação de API\r\n */\r\nexport interface ApiSimulationConfig {\r\n /** Items por página */\r\n itemsPerPage?: number;\r\n /** Total de items no dataset */\r\n totalItems?: number;\r\n /** Delay em ms para simular latência */\r\n delay?: number;\r\n /** Taxa de erro (0-1) para simular falhas */\r\n errorRate?: number;\r\n /** Função geradora de items customizada */\r\n itemGenerator?: (index: number, searchQuery?: string) => any;\r\n /** Debug mode */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Estado da simulação de API\r\n */\r\nexport interface ApiSimulationState<T> {\r\n /** Items carregados */\r\n items: T[];\r\n /** Página atual */\r\n currentPage: number;\r\n /** Total de páginas */\r\n totalPages: number;\r\n /** Status do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Erro atual (se houver) */\r\n error: string | null;\r\n /** Query de busca atual */\r\n searchQuery: string;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se é a primeira página */\r\n isFirstPage: boolean;\r\n}\r\n\r\nexport interface ApiSimulationActions {\r\n /** Carregar próxima página */\r\n loadNextPage: () => Promise<void>;\r\n /** Realizar nova busca */\r\n search: (query: string) => Promise<void>;\r\n /** Reset completo */\r\n reset: () => void;\r\n /** Retry da última operação */\r\n retry: () => Promise<void>;\r\n}\r\n\r\nexport interface UseApiSimulationReturn<T> extends ApiSimulationState<T> {\r\n actions: ApiSimulationActions;\r\n}\r\n\r\n\r\nexport function useApiSimulation<T = any>(\r\n config: ApiSimulationConfig = {}\r\n): UseApiSimulationReturn<T> {\r\n const {\r\n itemsPerPage = 20,\r\n totalItems = 500,\r\n delay = 800,\r\n errorRate = 0,\r\n itemGenerator,\r\n debug = false\r\n } = config;\r\n\r\n // Estados\r\n const [items, setItems] = useState<T[]>([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [status, setStatus] = useState<'idle' | 'loading' | 'succeeded' | 'failed'>('idle');\r\n const [error, setError] = useState<string | null>(null);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n // Refs para evitar re-criações\r\n const abortControllerRef = useRef<AbortController | null>(null);\r\n const lastOperationRef = useRef<'load' | 'search'>('load');\r\n\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const hasNextPage = currentPage < totalPages;\r\n const isFirstPage = currentPage === 0;\r\n\r\n // ✅ Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [ApiSimulation] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ Gerador padrão de items\r\n const defaultItemGenerator = useCallback((index: number, search?: string) => {\r\n const departments = ['Vendas', 'Marketing', 'TI', 'RH', 'Financeiro', 'Operações'];\r\n const locations = ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Porto Alegre'];\r\n const itemNumber = index + 1;\r\n\r\n return {\r\n id: `item-${itemNumber}`,\r\n text: search\r\n ? `${search} - Item ${itemNumber}`\r\n : `Item ${itemNumber}`,\r\n subText: search\r\n ? `Resultado para \"${search}\" - ${departments[itemNumber % departments.length]}`\r\n : `${departments[itemNumber % departments.length]} • ${locations[itemNumber % locations.length]}`,\r\n disabled: itemNumber % 25 === 0,\r\n category: departments[itemNumber % departments.length],\r\n location: locations[itemNumber % locations.length]\r\n };\r\n }, []);\r\n\r\n // ✅ Simular chamada de API\r\n const simulateApiCall = useCallback(async (\r\n page: number,\r\n search: string = ''\r\n ): Promise<T[]> => {\r\n debugLog('Iniciando simulação de API', { page, search, delay });\r\n\r\n // Cancelar requisição anterior se existir\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n // Criar novo controller\r\n const controller = new AbortController();\r\n abortControllerRef.current = controller;\r\n\r\n try {\r\n // Simular delay de rede\r\n await new Promise((resolve, reject) => {\r\n const timeout = setTimeout(resolve, delay);\r\n controller.signal.addEventListener('abort', () => {\r\n clearTimeout(timeout);\r\n reject(new Error('Request aborted'));\r\n });\r\n });\r\n\r\n // Verificar se foi cancelada\r\n if (controller.signal.aborted) {\r\n throw new Error('Request was cancelled');\r\n }\r\n\r\n // Simular erro aleatório\r\n if (Math.random() < errorRate) {\r\n throw new Error('Simulated network error');\r\n }\r\n\r\n // Calcular range de items\r\n const startIndex = page * itemsPerPage;\r\n const generator = itemGenerator || defaultItemGenerator;\r\n\r\n // Gerar items da página\r\n const pageItems = Array.from({ length: itemsPerPage }, (_, index) => {\r\n const globalIndex = startIndex + index;\r\n if (globalIndex >= totalItems) return null;\r\n return generator(globalIndex, search);\r\n }).filter(Boolean) as T[];\r\n\r\n debugLog('API simulada com sucesso', {\r\n page,\r\n itemsReturned: pageItems.length,\r\n search\r\n });\r\n\r\n return pageItems;\r\n\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n debugLog('Request cancelada');\r\n throw err;\r\n }\r\n\r\n debugLog('Erro na simulação de API', err);\r\n throw new Error('Falha ao carregar dados. Tente novamente.');\r\n }\r\n }, [delay, errorRate, itemsPerPage, totalItems, itemGenerator, defaultItemGenerator, debugLog]);\r\n\r\n // ✅ Carregar próxima página\r\n const loadNextPage = useCallback(async () => {\r\n if (status === 'loading' || !hasNextPage) {\r\n debugLog('Load next page ignorado', { status, hasNextPage });\r\n return;\r\n }\r\n\r\n lastOperationRef.current = 'load';\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const nextPage = currentPage + 1;\r\n const newItems = await simulateApiCall(nextPage - 1, searchQuery);\r\n\r\n setItems(prev => nextPage === 1 ? newItems : [...prev, ...newItems]);\r\n setCurrentPage(nextPage);\r\n setStatus('succeeded');\r\n\r\n debugLog('Página carregada com sucesso', {\r\n page: nextPage,\r\n totalItems: items.length + newItems.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return; // Ignore cancelled requests\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro desconhecido');\r\n setStatus('failed');\r\n debugLog('Erro ao carregar página', err);\r\n }\r\n }, [status, hasNextPage, currentPage, searchQuery, simulateApiCall, items.length, debugLog]);\r\n\r\n const search = useCallback(async (query: string) => {\r\n debugLog('Iniciando busca', { query });\r\n\r\n lastOperationRef.current = 'search';\r\n setSearchQuery(query);\r\n setCurrentPage(0);\r\n setItems([]);\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const searchResults = await simulateApiCall(0, query);\r\n setItems(searchResults);\r\n setCurrentPage(1);\r\n setStatus('succeeded');\r\n\r\n debugLog('Busca concluída', {\r\n query,\r\n results: searchResults.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return;\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro na busca');\r\n setStatus('failed');\r\n debugLog('Erro na busca', err);\r\n }\r\n }, [simulateApiCall, debugLog]);\r\n\r\n const reset = useCallback(() => {\r\n debugLog('Reset completo da simulação');\r\n\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n setItems([]);\r\n setCurrentPage(0);\r\n setStatus('idle');\r\n setError(null);\r\n setSearchQuery('');\r\n }, [debugLog]);\r\n\r\n const retry = useCallback(async () => {\r\n debugLog('Retry da última operação', {\r\n lastOperation: lastOperationRef.current\r\n });\r\n\r\n if (lastOperationRef.current === 'search') {\r\n await search(searchQuery);\r\n } else {\r\n await loadNextPage();\r\n }\r\n }, [search, searchQuery, loadNextPage, debugLog]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n };\r\n }, []);\r\n\r\n return {\r\n // Estado\r\n items,\r\n currentPage,\r\n totalPages,\r\n status,\r\n error,\r\n searchQuery,\r\n hasNextPage,\r\n isFirstPage,\r\n\r\n // Ações\r\n actions: {\r\n loadNextPage,\r\n search,\r\n reset,\r\n retry\r\n }\r\n };\r\n}\r\n\r\nexport default useApiSimulation;","import { useRef, useEffect, useState, useCallback } from 'react';\r\n\r\n/**\r\n * Props para o hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollProps {\r\n /** Status atual do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Página atual */\r\n page: number;\r\n /** Última página disponível */\r\n lastPage: number;\r\n /** Callback para carregar próxima página */\r\n onLoadMore: () => void;\r\n /** Threshold para IntersectionObserver (0-1) */\r\n threshold?: number;\r\n /** Margem raiz para IntersectionObserver */\r\n rootMargin?: string;\r\n /** Habilita/desabilita o hook */\r\n enabled?: boolean;\r\n /** Debug mode - logs no console */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Retorno do hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollReturn {\r\n /** Ref para o elemento observador */\r\n observerRef: React.RefObject<HTMLDivElement | null>;\r\n /** Se o elemento está visível */\r\n isIntersecting: boolean;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se todas as páginas foram carregadas */\r\n isCompleted: boolean;\r\n /** Função para reset manual */\r\n reset: () => void;\r\n}\r\n\r\n/**\r\n * Hook otimizado para scroll infinito usando IntersectionObserver\r\n */\r\nexport function useInfiniteScroll({\r\n status,\r\n page,\r\n lastPage,\r\n onLoadMore,\r\n threshold = 0.1,\r\n rootMargin = '100px',\r\n enabled = true,\r\n debug = false\r\n}: UseInfiniteScrollProps): UseInfiniteScrollReturn {\r\n const observerRef = useRef<HTMLDivElement>(null);\r\n const [isIntersecting, setIsIntersecting] = useState(false);\r\n \r\n // Refs para controle de estado\r\n const loadingRef = useRef(false);\r\n const lastTriggeredPageRef = useRef(0);\r\n const onLoadMoreRef = useRef(onLoadMore);\r\n\r\n // Manter referência atualizada do callback\r\n useEffect(() => {\r\n onLoadMoreRef.current = onLoadMore;\r\n }, [onLoadMore]);\r\n\r\n // ✅ NOVO: Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [InfiniteScroll] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ MELHORADO: Callback do IntersectionObserver com mais controles\r\n const handleIntersect = useCallback((entries: IntersectionObserverEntry[]) => {\r\n const [target] = entries;\r\n const isVisible = target.isIntersecting;\r\n \r\n setIsIntersecting(isVisible);\r\n debugLog('Element intersecting:', isVisible);\r\n\r\n // Verificar se pode carregar mais\r\n const canLoadMore = enabled &&\r\n isVisible && \r\n status !== 'loading' && \r\n !loadingRef.current &&\r\n page < lastPage &&\r\n page !== lastTriggeredPageRef.current;\r\n\r\n debugLog('Can load more check:', {\r\n enabled,\r\n isVisible,\r\n status,\r\n isLoading: loadingRef.current,\r\n page,\r\n lastPage,\r\n lastTriggered: lastTriggeredPageRef.current,\r\n canLoad: canLoadMore\r\n });\r\n\r\n if (canLoadMore) {\r\n debugLog('Triggering load more for next page');\r\n loadingRef.current = true;\r\n lastTriggeredPageRef.current = page;\r\n onLoadMoreRef.current();\r\n }\r\n }, [enabled, status, page, lastPage, debugLog]);\r\n\r\n // ✅ MELHORADO: Observer com configurações personalizáveis\r\n useEffect(() => {\r\n if (!enabled) {\r\n debugLog('Hook disabled, skipping observer setup');\r\n return;\r\n }\r\n\r\n const observer = new IntersectionObserver(handleIntersect, {\r\n root: null,\r\n rootMargin,\r\n threshold,\r\n });\r\n\r\n const currentObserverRef = observerRef.current;\r\n if (currentObserverRef) {\r\n observer.observe(currentObserverRef);\r\n debugLog('IntersectionObserver attached', { rootMargin, threshold });\r\n }\r\n\r\n return () => {\r\n if (currentObserverRef) {\r\n observer.unobserve(currentObserverRef);\r\n debugLog('IntersectionObserver detached');\r\n }\r\n };\r\n }, [handleIntersect, rootMargin, threshold, enabled, debugLog]);\r\n\r\n // ✅ NOVO: Reset do loading flag quando status muda\r\n useEffect(() => {\r\n if (status !== 'loading') {\r\n loadingRef.current = false;\r\n debugLog('Loading flag reset', { status });\r\n }\r\n }, [status, debugLog]);\r\n\r\n // ✅ NOVO: Função de reset manual\r\n const reset = useCallback(() => {\r\n loadingRef.current = false;\r\n lastTriggeredPageRef.current = 0;\r\n setIsIntersecting(false);\r\n debugLog('Hook manually reset');\r\n }, [debugLog]);\r\n\r\n // Estados calculados\r\n const hasNextPage = page < lastPage;\r\n const isCompleted = page >= lastPage;\r\n\r\n return {\r\n observerRef,\r\n isIntersecting,\r\n hasNextPage,\r\n isCompleted,\r\n reset\r\n };\r\n}"],"names":["styles","_jsxs","AvatarRadix","_jsx","useId","TooltipRadix","useMemo","_Fragment","SpinnerIos16Regular","formatDistanceLocale","formatDistance","formatRelativeLocale","formatRelative","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","localize","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","dateFormats","timeFormats","dateTimeFormats","formatLong","enUS","ptBR","dateFnsEnUS","format","addDays","addMonths","addWeeks","addYears","differenceInCalendarDays","differenceInCalendarMonths","eachMonthOfInterval","eachYearOfInterval","endOfISOWeek","endOfMonth","endOfWeek","endOfYear","getISOWeek","getMonth","getYear","getWeek","isAfter","isBefore","isDate","isSameDay","isSameMonth","isSameYear","max","min","setMonth","setYear","startOfDay","startOfISOWeek","startOfMonth","startOfWeek","startOfYear","dateFnsPtBR","ChevronDown16Regular","ChevronUp16Regular","ChevronLeft16Regular","ChevronRight16Regular","createContext","useContext","useState","DayPicker","Dismiss24Regular","React","CheckboxRadix","PopoverRadix","Label","Info12Regular","TextField","forwardRef","useEffect","useCallback","Dismiss16Regular","useRef","Calendar16Regular","AlertDialog","createPortal","Search16Regular","ChevronDownRegular","RadioGroup","memo","DropdownMenu","ChevronRight16Filled","Dialog","Subtract16Regular","Add16Regular","Select","useReducer","SelectRadix","createElement","isValidElement","SearchInfo20Regular","useReactTable","getCoreRowModel","getFilteredRowModel","getPaginationRowModel","getSortedRowModel","flexRender","ArrowSortUp16Regular","ArrowSortDown16Regular","ArrowSort16Regular","Dismiss16Filled","Info20Filled","CheckmarkCircle20Filled","Warning20Filled","ToastRadix","SwitchRadix"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,MAAM,GAA0B,CAAC,EACrC,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,GAAG,EACH,SAAS,EACT,cAAc,EACd,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,WAAW,GAAG,IAAI,CACtBA,QAAM,CAAC,UAAU,EACjB;QACE,CAACA,QAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,KAAK,IAAI;QACzC,CAACA,QAAM,CAAC,gBAAgB,CAAC,GAAG,IAAI,KAAK,IAAI;KAC1C,EACD,SAAS,CACV;IAED,QACIC,eAAA,CAACC,cAAW,CAAC,IAAI,IAAC,SAAS,EAAE,WAAW,EAAA,GAAM,IAAI,EAAA,QAAA,EAAA,CAC/C,GAAG,KACAC,cAAA,CAACD,cAAW,CAAC,KAAK,IAChB,SAAS,EAAEF,QAAM,CAAC,WAAW,EAC7B,GAAG,EAAE,GAAG,EACR,GAAG,EAAC,QAAQ,GACZ,CACL,EACDG,cAAA,CAACD,cAAW,CAAC,QAAQ,IAAC,SAAS,EAAEF,QAAM,CAAC,cAAc,EAAA,QAAA,EACnD,IAAI,IAAI,cAAc,EAAA,CACF,CAAA,EAAA,CACN;AAEzB;;;;ACjCA,MAAM,eAAe,GAAG,CAAC,KAA+B,KAAY;AAClE,IAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAAE,QAAA,OAAO,EAAE;AACpD,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,QAAA,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE;YAC9D,OAAO,MAAM,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK;QACpC;AACA,QAAA,OAAO,KAAK;IACd;IACA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;AAAE,QAAA,OAAO,EAAE;AAC7C,IAAA,OAAO,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3C,CAAC;AAED,MAAM,KAAK,GAAyB,CAAC,EACnC,QAAQ,EACR,UAAU,GAAG,IAAI,EACjB,SAAS,EACT,EAAE,EACF,aAAa,GAAG,KAAK,EACrB,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,WAAW,GAAGI,WAAK,EAAE;AAC3B,IAAA,MAAM,WAAW,GAAG,EAAE,IAAI,WAAW;AACrC,IAAA,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC;AAChD,IAAA,MAAM,OAAO,GAAG,YAAY,KAAK,EAAE;IAEnC,IAAI,QAAQ,EAAE;AACZ,QAAA,QACEH,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,cAAc,EAAA,GAAM,IAAI,EAAA,QAAA,EAAA,CAC7CG,cAAA,CAAA,KAAA,EAAA,EAAA,aAAA,EAAiB,eAAe,EAAA,QAAA,EAAE,QAAQ,EAAA,CAAO,EACjDA,cAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,KAAK,EAAE;AAC5B,wBAAA,CAACA,QAAM,CAAC,cAAc,CAAC,GAAG,OAAO;wBACjC,CAACA,QAAM,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC;AAClD,qBAAA,EAAE,SAAS,CAAC,EAAA,aAAA,EACD,OAAO,EAAA,QAAA,EAElB,CAAC,OAAO,IAAIG,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAmB,CAAC,CAAC,SAAS,EAAA,QAAA,EAAG,YAAY,GAAQ,EAAA,CAC9D,CAAA,EAAA,CACF;IAEV;AAEA,IAAA,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,QAAA,EACnCG,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,eAAe,CAAC,EAAE;AACvC,gBAAA,CAACA,QAAM,CAAC,sBAAsB,CAAC,GAAG,OAAO;gBACzC,CAACA,QAAM,CAAC,qBAAqB,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC;AACzD,gBAAA,CAACA,QAAM,CAAC,4BAA4B,CAAC,GAAG,aAAa;aACtD,EAAE,SAAS,CAAC,EAAA,aAAA,EACD,OAAO,YAElB,CAAC,OAAO,KACPG,cAAA,CAAA,MAAA,EAAA,EAAA,aAAA,EAAmB,CAAC,CAAC,SAAS,YAAG,YAAY,EAAA,CAAQ,CACtD,EAAA,CACG,EAAA,CACF;AAEV;;;;AC5DA,MAAM,OAAO,GAA2B,CAAC,EACxC,QAAQ,EACR,IAAI,EACJ,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,OAAO,EACf,QAAQ,EACR,UAAU,GAAG,EAAE,EACf,SAAS,EACT,GAAG,IAAI,EACP,KAAI;AACJ,IAAA,QACCA,cAAA,CAACE,eAAY,CAAC,QAAQ,EAAA,EAAA,QAAA,EACrBJ,gBAACI,eAAY,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACjBF,cAAA,CAACE,eAAY,CAAC,OAAO,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC5BF,yBAAM,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,QAAA,EACpC,QAAQ,GACH,EAAA,CACe,EACvBG,eAACE,eAAY,CAAC,MAAM,EAAA,EAAA,QAAA,EACnBF,cAAA,CAACE,eAAY,CAAC,OAAO,IACrB,SAAS,EAAE,IAAI,CAACL,QAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EAChD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAG,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAI,GAAG,MAAM,EAAE,EAAA,GACpD,IAAI,YAEP,IAAI,EAAA,CACiB,GACF,CAAA,EAAA,CACH,EAAA,CACG;AAE1B;;;;AChCA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAqD,CAAC,EACnF,EAAE,EACF,QAAQ,EACR,OAAO,GAAG,QAAQ,EAClB,YAAY,GAAG,MAAM,EACrB,IAAI,EACJ,EAAE,EACF,QAAQ,GAAG,KAAK,EAChB,MAAM,EACN,GAAG,EACH,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,IAAI,GAAG,IAAI,EACX,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,EAAE,EACF,IAAI,EACJ,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,WAAW,GAAG,KAAK,EACnB,YAAY,GAAG,QAAQ,EACvB,GAAG,IAAI,EACR,EAAE,GAAG,KAAI;AAER,IAAA,MAAM,WAAW,GAAGI,WAAK,EAAE;AAC3B,IAAA,MAAM,WAAW,GAAG,EAAE,IAAI,WAAW;IAErC,MAAM,YAAY,GAAG,MAAwB;AAC3C,QAAA,IAAI,EAAE;AAAE,YAAA,OAAO,EAAE;AAEjB,QAAA,IAAI,IAAI;AAAE,YAAA,OAAO,GAAG;QACpB,IAAI,EAAE,EAAE;YACN,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CAAC,EAAE,EAAE;gBAChD,OAAO,CAAC,IAAI,CACV,2CAA2C;oBAC3C,gFAAgF;AAChF,oBAAA,0DAA0D,CAC3D;YACH;AACA,YAAA,OAAO,GAAG;QACZ;AACA,QAAA,OAAO,QAAQ;AACjB,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG,YAAY,EAAE;AAEhC,IAAA,MAAM,UAAU,GAAGE,aAAO,CAAC,MAAK;AAC9B,QAAA,OAAO,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACvD,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE;QAC9D,OAAO,CAAC,KAAK,CACX,0DAA0D;AAC1D,YAAA,6CAA6C,CAC9C;IACH;IACA,MAAM,YAAY,GAAG,IAAI;IAEzB,MAAM,aAAa,GAAG,IAAI,CACxBN,QAAM,CAAC,MAAM,EACbA,QAAM,CAAC,UAAU,OAAO,CAAA,CAAE,CAAC,EAC3BA,QAAM,CAAC,CAAA,OAAA,EAAU,IAAI,CAAA,CAAE,CAAC,EACxB;AACE,QAAA,CAACA,QAAM,CAAC,UAAU,CAAC,GAAG,QAAQ;AAC9B,QAAA,CAACA,QAAM,CAAC,eAAe,CAAC,GAAG,OAAO;QAClC,CAACA,QAAM,CAAC,gBAAgB,CAAC,GAAG,YAAY,IAAI,CAAC,QAAQ;QACrD,CAACA,QAAM,CAAC,CAAA,mBAAA,EAAsB,YAAY,CAAA,CAAE,CAAC,GAAG,YAAY,IAAI,CAAC,QAAQ;AACzE,QAAA,CAACA,QAAM,CAAC,iBAAiB,CAAC,GAAG,YAAY,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ;AACrE,QAAA,CAACA,QAAM,CAAC,iBAAiB,CAAC,GAAG,SAAS;AACtC,QAAA,CAACA,QAAM,CAAC,gBAAgB,CAAC,GAAG,QAAQ;KACrC,EACD,SAAS,CACV;IAED,MAAM,YAAY,GAAG,MAAK;AACxB,QAAA,IAAI,SAAS;AAAE,YAAA,OAAO,SAAS;QAC/B,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,WAAW;AAAE,gBAAA,OAAO,WAAW;YACnC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;gBACzC,OAAO,CAAC,IAAI,CACV,yEAAyE;oBACzE,+DAA+D;AAC/D,oBAAA,2DAA2D,CAC5D;YACH;AACA,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAgC,KAAI;AACvD,QAAA,IAAI,QAAQ,IAAI,OAAO,EAAE;YACvB,CAAC,CAAC,cAAc,EAAE;YAClB;QACF;AACA,QAAA,OAAO,GAAG,CAAC,CAAC;AACd,IAAA,CAAC;IAED,MAAM,aAAa,GAAG,MAAK;AACzB,QAAA,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE;AACxB,YAAA,QACEG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EACvD,YAAY,EAAA,CACR;QAEX;QACA,IAAI,OAAO,EAAE;AACX,YAAA,QACEC,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACG,CAAC,QAAQ,KACRN,0BAAM,SAAS,EAAED,QAAM,CAAC,mBAAmB,EAAA,aAAA,EAAc,MAAM,aAC5D,YAAY,KAAK,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM,CAAC,KACnEG,yBAAM,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,QAAA,EAAG,YAAY,GAAQ,CAC9D,EACA,QAAQ,EACR,YAAY,KAAK,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,MAAM,CAAC,KACpEG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,eAAe,EAAA,QAAA,EAAG,YAAY,EAAA,CAAQ,CAC/D,CAAA,EAAA,CACI,CACR,EACDG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,oBAAoB,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EAC9DG,cAAA,CAACK,8BAAmB,EAAA,EAAA,aAAA,EAAa,MAAM,GAAG,EAAA,CACrC,CAAA,EAAA,CACN;QAEP;QACA,QACEP,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACG,YAAY,KAAK,YAAY,KAAK,MAAM,IAAI,YAAY,KAAK,MAAM,CAAC,KACnEJ,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EACvD,YAAY,EAAA,CACR,CACR,EACA,QAAQ,EACR,YAAY,KAAK,YAAY,KAAK,OAAO,IAAI,YAAY,KAAK,MAAM,CAAC,KACpEG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,eAAe,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EACxD,YAAY,EAAA,CACR,CACR,CAAA,EAAA,CACA;AAEP,IAAA,CAAC;AAED,IAAA,MAAM,SAAS,GAAG;QAChB,GAAG;AACH,QAAA,EAAE,EAAE,WAAW;AACf,QAAA,SAAS,EAAE,aAAa;QACxB,YAAY,EAAE,YAAY,EAAE;AAC5B,QAAA,eAAe,EAAE,QAAQ;QACzB,WAAW,EAAE,OAAO,IAAI,SAAS;AACjC,QAAA,QAAQ,EAAE,QAAQ,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC;AACtC,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,GAAG,IAAI;KACR;IAED,MAAM,kBAAkB,GAAG,MAAK;QAC9B,IAAI,IAAI,EAAE;AACR,YAAA,IAAI,QAAQ,IAAI,OAAO,EAAE;AACvB,gBAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB;YACA,OAAO;gBACL,IAAI;AACJ,gBAAA,MAAM,EAAE,QAAQ,IAAI,MAAM,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAAM;AAC3D,gBAAA,GAAG,EAAE,QAAQ,IAAI,MAAM,KAAK,QAAQ,GAAG,qBAAqB,GAAG,GAAG;aACnE;QACH;QAEA,IAAI,EAAE,EAAE;AACN,YAAA,IAAI,SAAS,KAAK,GAAG,EAAE;gBACrB,OAAO;oBACL,EAAE,EAAE,QAAQ,GAAG,SAAS,GAAG,EAAE;iBAC9B;YACH;YACA,OAAO;gBACL,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,EAAE;aAChC;QACH;AACA,QAAA,IAAI,SAAS,KAAK,QAAQ,EAAE;YAC1B,OAAO;gBACL,IAAI;gBACJ,QAAQ;aACT;QACH;AAEA,QAAA,OAAO,EAAE;AACX,IAAA,CAAC;AAED,IAAA,IAAI,QAAQ,IAAI,WAAW,IAAI,CAAC,OAAO,EAAE;AACvC,QAAA,QACEG,cAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAA,QAAA,EAChEA,cAAA,CAAC,SAAS,EAAA,EAAA,GACJ,SAAS,EAAA,GACT,kBAAkB,EAAE,EAAA,QAAA,EAEvB,aAAa,EAAE,EAAA,CACN,EAAA,CACJ;IAEd;AAEA,IAAA,QACEA,cAAA,CAAC,SAAS,EAAA,EAAA,GACJ,SAAS,EAAA,GACT,kBAAkB,EAAE,EAAA,QAAA,EAEvB,aAAa,EAAE,EAAA,CACN;AAEhB,CAAC;AAED,MAAM,CAAC,WAAW,GAAG,QAAQ;;AC9NtB,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACxC,EAAE,OAAO,CAAC,OAAO,GAAG,EAAE,KAAK;AAC3B;AACA,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY;AAC3E,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AACzE,IAAI,OAAO,MAAM;AACjB,EAAE,CAAC;AACH;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO,SAAS,eAAe,CAAC,IAAI,EAAE;AACtC,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,KAAK;AAC7B,IAAI,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,YAAY;;AAE7E,IAAI,IAAI,WAAW;AACnB,IAAI,IAAI,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC3D,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,YAAY;AAC3E,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY;;AAEzE,MAAM,WAAW;AACjB,QAAQ,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;AAC3E,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;AAC5C,MAAM,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY;;AAE9E,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;AACnE,IAAI;AACJ,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,KAAK;;AAE9E;AACA,IAAI,OAAO,WAAW,CAAC,KAAK,CAAC;AAC7B,EAAE,CAAC;AACH;;AC7DO,SAAS,YAAY,CAAC,IAAI,EAAE;AACnC,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK;AACnC,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;;AAE/B,IAAI,MAAM,YAAY;AACtB,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAChD,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;;AAElD,IAAI,IAAI,CAAC,WAAW,EAAE;AACtB,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;;AAExC,IAAI,MAAM,aAAa;AACvB,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC;;AAEhD,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa;AAC3C,QAAQ,SAAS,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;AACzE;AACA,QAAQ,OAAO,CAAC,aAAa,EAAE,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;;AAExE,IAAI,IAAI,KAAK;;AAEb,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,GAAG;AAC9D,IAAI,KAAK,GAAG,OAAO,CAAC;AACpB;AACA,QAAQ,OAAO,CAAC,aAAa,CAAC,KAAK;AACnC,QAAQ,KAAK;;AAEb,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;;AAEnD,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,EAAE,CAAC;AACH;;AAEA,SAAS,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE;AACpC,EAAE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC5B,IAAI;AACJ,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;AACvD,MAAM,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAC3B,MAAM;AACN,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,SAAS;AAClB;;AAEA,SAAS,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE;AACrC,EAAE,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC/C,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/B,MAAM,OAAO,GAAG;AAChB,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,SAAS;AAClB;;ACxDO,SAAS,mBAAmB,CAAC,IAAI,EAAE;AAC1C,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK;AACnC,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI;AACjC,IAAI,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC;;AAExC,IAAI,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,IAAI,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI;AACjC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;AACrB,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;AACzC,QAAQ,WAAW,CAAC,CAAC,CAAC;;AAEtB;AACA,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK;;AAExE,IAAI,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC;;AAEnD,IAAI,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,EAAE,CAAC;AACH;;ACnBA,MAAMM,sBAAoB,GAAG;AAC7B,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,EAAE,oBAAoB;AAC7B,IAAI,KAAK,EAAE,6BAA6B;AACxC,GAAG;;AAEH,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,mBAAmB;AAC9B,GAAG;;AAEH,EAAE,WAAW,EAAE,eAAe;;AAE9B,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,EAAE,oBAAoB;AAC7B,IAAI,KAAK,EAAE,6BAA6B;AACxC,GAAG;;AAEH,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,mBAAmB;AAC9B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,cAAc;AACvB,IAAI,KAAK,EAAE,uBAAuB;AAClC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,gBAAgB;AAC3B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,cAAc;AACvB,IAAI,KAAK,EAAE,uBAAuB;AAClC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,YAAY,EAAE;AAChB,IAAI,GAAG,EAAE,eAAe;AACxB,IAAI,KAAK,EAAE,wBAAwB;AACnC,GAAG;;AAEH,EAAE,OAAO,EAAE;AACX,IAAI,GAAG,EAAE,SAAS;AAClB,IAAI,KAAK,EAAE,kBAAkB;AAC7B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,cAAc;AACvB,IAAI,KAAK,EAAE,uBAAuB;AAClC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,UAAU,EAAE;AACd,IAAI,GAAG,EAAE,aAAa;AACtB,IAAI,KAAK,EAAE,sBAAsB;AACjC,GAAG;;AAEH,EAAE,YAAY,EAAE;AAChB,IAAI,GAAG,EAAE,eAAe;AACxB,IAAI,KAAK,EAAE,wBAAwB;AACnC,GAAG;AACH,CAAC;;AAEM,MAAMC,gBAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK;AACzD,EAAE,IAAI,MAAM;;AAEZ,EAAE,MAAM,UAAU,GAAGD,sBAAoB,CAAC,KAAK,CAAC;AAChD,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACtC,IAAI,MAAM,GAAG,UAAU;AACvB,EAAE,CAAC,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AAC1B,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG;AAC3B,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;AACpE,EAAE;;AAEF,EAAE,IAAI,OAAO,EAAE,SAAS,EAAE;AAC1B,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;AACtD,MAAM,OAAO,KAAK,GAAG,MAAM;AAC3B,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,MAAM,GAAG,MAAM;AAC5B,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;ACpGD,MAAME,sBAAoB,GAAG;AAC7B,EAAE,QAAQ,EAAE,oBAAoB;AAChC,EAAE,SAAS,EAAE,kBAAkB;AAC/B,EAAE,KAAK,EAAE,cAAc;AACvB,EAAE,QAAQ,EAAE,iBAAiB;AAC7B,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,KAAK,EAAE,GAAG;AACZ,CAAC;;AAEM,MAAMC,gBAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ;AAChE,EAAED,sBAAoB,CAAC,KAAK,CAAC;;ACR7B,MAAME,WAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;AACpB,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,EAAE,IAAI,EAAE,CAAC,eAAe,EAAE,aAAa,CAAC;AACxC,CAAC;;AAED,MAAMC,eAAa,GAAG;AACtB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,EAAE,IAAI,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,CAAC;AACpE,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,aAAW,GAAG;AACpB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtE,EAAE,WAAW,EAAE;AACf,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;;AAEH,EAAE,IAAI,EAAE;AACR,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,KAAK;AACT,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,UAAU;AACd,GAAG;AACH,CAAC;;AAED,MAAMC,WAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7C,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACnD,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAChE,EAAE,IAAI,EAAE;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,GAAG;AACH,CAAC;;AAED,MAAMC,iBAAe,GAAG;AACxB,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,SAAS,EAAE,WAAW;AAC1B,IAAI,OAAO,EAAE,SAAS;AACtB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,CAAC;;AAED,MAAMC,2BAAyB,GAAG;AAClC,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,GAAG;AACb,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,SAAS,EAAE,kBAAkB;AACjC,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,SAAS,EAAE,kBAAkB;AACjC,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,QAAQ,EAAE,UAAU;AACxB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,SAAS,EAAE,kBAAkB;AACjC,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,CAAC;;AAED,MAAMC,eAAa,GAAG,CAAC,WAAW,EAAE,QAAQ,KAAK;AACjD,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;;AAEpC;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,GAAG;AAC7B,EAAE,IAAI,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,EAAE,EAAE;AAClC,IAAI,QAAQ,MAAM,GAAG,EAAE;AACvB,MAAM,KAAK,CAAC;AACZ,QAAQ,OAAO,MAAM,GAAG,IAAI;AAC5B,MAAM,KAAK,CAAC;AACZ,QAAQ,OAAO,MAAM,GAAG,IAAI;AAC5B,MAAM,KAAK,CAAC;AACZ,QAAQ,OAAO,MAAM,GAAG,IAAI;AAC5B;AACA,EAAE;AACF,EAAE,OAAO,MAAM,GAAG,IAAI;AACtB,CAAC;;AAEM,MAAMC,UAAQ,GAAG;AACxB,iBAAED,eAAa;;AAEf,EAAE,GAAG,EAAE,eAAe,CAAC;AACvB,IAAI,MAAM,EAAEN,WAAS;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,OAAO,EAAE,eAAe,CAAC;AAC3B,IAAI,MAAM,EAAEC,eAAa;AACzB,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,gBAAgB,EAAE,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC;AAC9C,GAAG,CAAC;;AAEJ,EAAE,KAAK,EAAE,eAAe,CAAC;AACzB,IAAI,MAAM,EAAEC,aAAW;AACvB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,eAAe,CAAC;AACvB,IAAI,MAAM,EAAEC,WAAS;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,SAAS,EAAE,eAAe,CAAC;AAC7B,IAAI,MAAM,EAAEC,iBAAe;AAC3B,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,gBAAgB,EAAEC,2BAAyB;AAC/C,IAAI,sBAAsB,EAAE,MAAM;AAClC,GAAG,CAAC;AACJ,CAAC;;ACvLD,MAAMG,2BAAyB,GAAG,uBAAuB;AACzD,MAAMC,2BAAyB,GAAG,MAAM;;AAExC,MAAMC,kBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,SAAS;AACnB,EAAE,WAAW,EAAE,4DAA4D;AAC3E,EAAE,IAAI,EAAE,4DAA4D;AACpE,CAAC;AACD,MAAMC,kBAAgB,GAAG;AACzB,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;AACzB,CAAC;;AAED,MAAMC,sBAAoB,GAAG;AAC7B,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,IAAI,EAAE,gCAAgC;AACxC,CAAC;AACD,MAAMC,sBAAoB,GAAG;AAC7B,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,CAAC;;AAED,MAAMC,oBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE,cAAc;AACxB,EAAE,WAAW,EAAE,qDAAqD;AACpE,EAAE,IAAI,EAAE,2FAA2F;AACnG,CAAC;AACD,MAAMC,oBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;;AAEH,EAAE,GAAG,EAAE;AACP,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;AACH,CAAC;;AAED,MAAMC,kBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,KAAK,EAAE,0BAA0B;AACnC,EAAE,WAAW,EAAE,iCAAiC;AAChD,EAAE,IAAI,EAAE,8DAA8D;AACtE,CAAC;AACD,MAAMC,kBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC3D,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;AAC5D,CAAC;;AAED,MAAMC,wBAAsB,GAAG;AAC/B,EAAE,MAAM,EAAE,4DAA4D;AACtE,EAAE,GAAG,EAAE,gFAAgF;AACvF,CAAC;AACD,MAAMC,wBAAsB,GAAG;AAC/B,EAAE,GAAG,EAAE;AACP,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,QAAQ,EAAE,MAAM;AACpB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,YAAY;AAC3B,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,QAAQ;AACnB,GAAG;AACH,CAAC;;AAEM,MAAMC,OAAK,GAAG;AACrB,EAAE,aAAa,EAAE,mBAAmB,CAAC;AACrC,IAAI,YAAY,EAAEZ,2BAAyB;AAC3C,IAAI,YAAY,EAAEC,2BAAyB;AAC3C,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,YAAY,CAAC;AACpB,IAAI,aAAa,EAAEC,kBAAgB;AACnC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAEC,kBAAgB;AACnC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,OAAO,EAAE,YAAY,CAAC;AACxB,IAAI,aAAa,EAAEC,sBAAoB;AACvC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAEC,sBAAoB;AACvC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC;AACvC,GAAG,CAAC;;AAEJ,EAAE,KAAK,EAAE,YAAY,CAAC;AACtB,IAAI,aAAa,EAAEC,oBAAkB;AACrC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAEC,oBAAkB;AACrC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,YAAY,CAAC;AACpB,IAAI,aAAa,EAAEC,kBAAgB;AACnC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAEC,kBAAgB;AACnC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,SAAS,EAAE,YAAY,CAAC;AAC1B,IAAI,aAAa,EAAEC,wBAAsB;AACzC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,aAAa,EAAEC,wBAAsB;AACzC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;AACJ,CAAC;;ACjID,MAAME,aAAW,GAAG;AACpB,EAAE,IAAI,EAAE,kBAAkB;AAC1B,EAAE,IAAI,EAAE,YAAY;AACpB,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,KAAK,EAAE,YAAY;AACrB,CAAC;;AAED,MAAMC,aAAW,GAAG;AACpB,EAAE,IAAI,EAAE,gBAAgB;AACxB,EAAE,IAAI,EAAE,aAAa;AACrB,EAAE,MAAM,EAAE,WAAW;AACrB,EAAE,KAAK,EAAE,QAAQ;AACjB,CAAC;;AAED,MAAMC,iBAAe,GAAG;AACxB,EAAE,IAAI,EAAE,wBAAwB;AAChC,EAAE,IAAI,EAAE,wBAAwB;AAChC,EAAE,MAAM,EAAE,oBAAoB;AAC9B,EAAE,KAAK,EAAE,oBAAoB;AAC7B,CAAC;;AAEM,MAAMC,YAAU,GAAG;AAC1B,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1B,IAAI,OAAO,EAAEH,aAAW;AACxB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1B,IAAI,OAAO,EAAEC,aAAW;AACxB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,QAAQ,EAAE,iBAAiB,CAAC;AAC9B,IAAI,OAAO,EAAEC,iBAAe;AAC5B,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;AACJ,CAAC;;AChCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAME,MAAI,GAAG;AACpB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,cAAc,EAAE5B,gBAAc;AAChC,EAAE,UAAU,EAAE2B,YAAU;AACxB,EAAE,cAAc,EAAEzB,gBAAc;AAChC,EAAE,QAAQ,EAAEQ,UAAQ;AACpB,EAAE,KAAK,EAAEa,OAAK;AACd,EAAE,OAAO,EAAE;AACX,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,qBAAqB,EAAE,CAAC;AAC5B,GAAG;AACH,CAAC;;ACzBD,MAAM,oBAAoB,GAAG;AAC7B,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,EAAE,qBAAqB;AAC9B,IAAI,KAAK,EAAE,6BAA6B;AACxC,GAAG;;AAEH,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG,EAAE,WAAW;AACpB,IAAI,KAAK,EAAE,oBAAoB;AAC/B,GAAG;;AAEH,EAAE,WAAW,EAAE,aAAa;;AAE5B,EAAE,gBAAgB,EAAE;AACpB,IAAI,GAAG,EAAE,oBAAoB;AAC7B,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG;;AAEH,EAAE,QAAQ,EAAE;AACZ,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,mBAAmB;AAC9B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,iBAAiB;AAC1B,IAAI,KAAK,EAAE,0BAA0B;AACrC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,QAAQ;AACjB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,KAAK,EAAE;AACT,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,gBAAgB;AAC3B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,mBAAmB;AAC5B,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,UAAU;AACnB,IAAI,KAAK,EAAE,mBAAmB;AAC9B,GAAG;;AAEH,EAAE,YAAY,EAAE;AAChB,IAAI,GAAG,EAAE,gBAAgB;AACzB,IAAI,KAAK,EAAE,0BAA0B;AACrC,GAAG;;AAEH,EAAE,OAAO,EAAE;AACX,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,iBAAiB;AAC5B,GAAG;;AAEH,EAAE,WAAW,EAAE;AACf,IAAI,GAAG,EAAE,gBAAgB;AACzB,IAAI,KAAK,EAAE,yBAAyB;AACpC,GAAG;;AAEH,EAAE,MAAM,EAAE;AACV,IAAI,GAAG,EAAE,OAAO;AAChB,IAAI,KAAK,EAAE,gBAAgB;AAC3B,GAAG;;AAEH,EAAE,UAAU,EAAE;AACd,IAAI,GAAG,EAAE,eAAe;AACxB,IAAI,KAAK,EAAE,wBAAwB;AACnC,GAAG;;AAEH,EAAE,YAAY,EAAE;AAChB,IAAI,GAAG,EAAE,aAAa;AACtB,IAAI,KAAK,EAAE,sBAAsB;AACjC,GAAG;AACH,CAAC;;AAEM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,KAAK;AACzD,EAAE,IAAI,MAAM;;AAEZ,EAAE,MAAM,UAAU,GAAG,oBAAoB,CAAC,KAAK,CAAC;AAChD,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACtC,IAAI,MAAM,GAAG,UAAU;AACvB,EAAE,CAAC,MAAM,IAAI,KAAK,KAAK,CAAC,EAAE;AAC1B,IAAI,MAAM,GAAG,UAAU,CAAC,GAAG;AAC3B,EAAE,CAAC,MAAM;AACT,IAAI,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AACjE,EAAE;;AAEF,EAAE,IAAI,OAAO,EAAE,SAAS,EAAE;AAC1B,IAAI,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAE;AACtD,MAAM,OAAO,KAAK,GAAG,MAAM;AAC3B,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,KAAK,GAAG,MAAM;AAC3B,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;AClGD,MAAM,WAAW,GAAG;AACpB,EAAE,IAAI,EAAE,0BAA0B;AAClC,EAAE,IAAI,EAAE,oBAAoB;AAC5B,EAAE,MAAM,EAAE,SAAS;AACnB,EAAE,KAAK,EAAE,YAAY;AACrB,CAAC;;AAED,MAAM,WAAW,GAAG;AACpB,EAAE,IAAI,EAAE,eAAe;AACvB,EAAE,IAAI,EAAE,YAAY;AACpB,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,KAAK,EAAE,OAAO;AAChB,CAAC;;AAED,MAAM,eAAe,GAAG;AACxB,EAAE,IAAI,EAAE,wBAAwB;AAChC,EAAE,IAAI,EAAE,wBAAwB;AAChC,EAAE,MAAM,EAAE,oBAAoB;AAC9B,EAAE,KAAK,EAAE,oBAAoB;AAC7B,CAAC;;AAEM,MAAM,UAAU,GAAG;AAC1B,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,IAAI,EAAE,iBAAiB,CAAC;AAC1B,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,QAAQ,EAAE,iBAAiB,CAAC;AAC9B,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;AACJ,CAAC;;ACtCD,MAAM,oBAAoB,GAAG;AAC7B,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAK;AACtB,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE;AACjC,IAAI,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,QAAQ,GAAG,QAAQ;AACrE,IAAI,OAAO,GAAG,GAAG,IAAI,GAAG,eAAe;AACvC,EAAE,CAAC;AACH,EAAE,SAAS,EAAE,cAAc;AAC3B,EAAE,KAAK,EAAE,aAAa;AACtB,EAAE,QAAQ,EAAE,eAAe;AAC3B,EAAE,QAAQ,EAAE,aAAa;AACzB,EAAE,KAAK,EAAE,GAAG;AACZ,CAAC;;AAEM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,KAAK;AACpE,EAAE,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC;;AAE5C,EAAE,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE;AACpC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC;AACvB,EAAE;;AAEF,EAAE,OAAO,MAAM;AACf,CAAC;;ACnBD,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AACtB,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC3B,EAAE,IAAI,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;AAC/C,CAAC;;AAED,MAAM,aAAa,GAAG;AACtB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9B,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AACvC,EAAE,IAAI,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;AACxE,CAAC;;AAED,MAAM,WAAW,GAAG;AACpB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACtE,EAAE,WAAW,EAAE;AACf,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;;AAEH,EAAE,IAAI,EAAE;AACR,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,UAAU;AACd,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,UAAU;AACd,GAAG;AACH,CAAC;;AAED,MAAM,SAAS,GAAG;AAClB,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC7C,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;AAC1D,EAAE,WAAW,EAAE;AACf,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,GAAG;;AAEH,EAAE,IAAI,EAAE;AACR,IAAI,SAAS;AACb,IAAI,eAAe;AACnB,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,QAAQ;AACZ,GAAG;AACH,CAAC;;AAED,MAAM,eAAe,GAAG;AACxB,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,SAAS,EAAE,OAAO;AACtB,IAAI,OAAO,EAAE,OAAO;AACpB,IAAI,KAAK,EAAE,OAAO;AAClB,GAAG;AACH,CAAC;;AAED,MAAM,yBAAyB,GAAG;AAClC,EAAE,MAAM,EAAE;AACV,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,QAAQ,EAAE,IAAI;AAClB,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,EAAE,EAAE,IAAI;AACZ,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,EAAE,EAAE,MAAM;AACd,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,SAAS,EAAE,UAAU;AACzB,IAAI,OAAO,EAAE,UAAU;AACvB,IAAI,KAAK,EAAE,UAAU;AACrB,GAAG;AACH,CAAC;;AAED,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,OAAO,KAAK;AAChD,EAAE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC;;AAEpC,EAAE,IAAI,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE;AAChC,IAAI,OAAO,MAAM,GAAG,GAAG;AACvB,EAAE;AACF,EAAE,OAAO,MAAM,GAAG,GAAG;AACrB,CAAC;;AAEM,MAAM,QAAQ,GAAG;AACxB,EAAE,aAAa;;AAEf,EAAE,GAAG,EAAE,eAAe,CAAC;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,OAAO,EAAE,eAAe,CAAC;AAC3B,IAAI,MAAM,EAAE,aAAa;AACzB,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,gBAAgB,EAAE,CAAC,OAAO,KAAK,OAAO,GAAG,CAAC;AAC9C,GAAG,CAAC;;AAEJ,EAAE,KAAK,EAAE,eAAe,CAAC;AACzB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,eAAe,CAAC;AACvB,IAAI,MAAM,EAAE,SAAS;AACrB,IAAI,YAAY,EAAE,MAAM;AACxB,GAAG,CAAC;;AAEJ,EAAE,SAAS,EAAE,eAAe,CAAC;AAC7B,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,YAAY,EAAE,MAAM;AACxB,IAAI,gBAAgB,EAAE,yBAAyB;AAC/C,IAAI,sBAAsB,EAAE,MAAM;AAClC,GAAG,CAAC;AACJ,CAAC;;AC7KD,MAAM,yBAAyB,GAAG,eAAe;AACjD,MAAM,yBAAyB,GAAG,MAAM;;AAExC,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,eAAe;AACzB,EAAE,WAAW,EAAE,6BAA6B;AAC5C,EAAE,IAAI,EAAE,sCAAsC;AAC9C,CAAC;AACD,MAAM,gBAAgB,GAAG;AACzB,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AACvB,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AACnD,CAAC;;AAED,MAAM,oBAAoB,GAAG;AAC7B,EAAE,MAAM,EAAE,UAAU;AACpB,EAAE,WAAW,EAAE,WAAW;AAC1B,EAAE,IAAI,EAAE,wBAAwB;AAChC,CAAC;AACD,MAAM,oBAAoB,GAAG;AAC7B,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC/B,CAAC;;AAED,MAAM,kBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE,eAAe;AACzB,EAAE,WAAW,EAAE,qDAAqD;AACpE,EAAE,IAAI,EAAE,8FAA8F;AACtG,CAAC;AACD,MAAM,kBAAkB,GAAG;AAC3B,EAAE,MAAM,EAAE;AACV,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,KAAK;AACT,GAAG;;AAEH,EAAE,GAAG,EAAE;AACP,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,GAAG;AACH,CAAC;;AAED,MAAM,gBAAgB,GAAG;AACzB,EAAE,MAAM,EAAE,0BAA0B;AACpC,EAAE,KAAK,EAAE,0BAA0B;AACnC,EAAE,WAAW,EAAE,oCAAoC;AACnD,EAAE,IAAI,EAAE,0EAA0E;AAClF,CAAC;AACD,MAAM,gBAAgB,GAAG;AACzB,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;AAC9D,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC;AAC/D,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC;AACrE,CAAC;;AAED,MAAM,sBAAsB,GAAG;AAC/B,EAAE,MAAM,EAAE,wCAAwC;AAClD,EAAE,GAAG,EAAE,yEAAyE;AAChF,CAAC;AACD,MAAM,sBAAsB,GAAG;AAC/B,EAAE,GAAG,EAAE;AACP,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,EAAE,EAAE,KAAK;AACb,IAAI,QAAQ,EAAE,sBAAsB;AACpC,IAAI,IAAI,EAAE,oBAAoB;AAC9B,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,SAAS,EAAE,QAAQ;AACvB,IAAI,OAAO,EAAE,QAAQ;AACrB,IAAI,KAAK,EAAE,QAAQ;AACnB,GAAG;AACH,CAAC;;AAEM,MAAM,KAAK,GAAG;AACrB,EAAE,aAAa,EAAE,mBAAmB,CAAC;AACrC,IAAI,YAAY,EAAE,yBAAyB;AAC3C,IAAI,YAAY,EAAE,yBAAyB;AAC3C,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AACjD,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,YAAY,CAAC;AACpB,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,OAAO,EAAE,YAAY,CAAC;AACxB,IAAI,aAAa,EAAE,oBAAoB;AACvC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,oBAAoB;AACvC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,aAAa,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,CAAC;AACvC,GAAG,CAAC;;AAEJ,EAAE,KAAK,EAAE,YAAY,CAAC;AACtB,IAAI,aAAa,EAAE,kBAAkB;AACrC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,kBAAkB;AACrC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,GAAG,EAAE,YAAY,CAAC;AACpB,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,MAAM;AAC7B,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;;AAEJ,EAAE,SAAS,EAAE,YAAY,CAAC;AAC1B,IAAI,aAAa,EAAE,sBAAsB;AACzC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,IAAI,aAAa,EAAE,sBAAsB;AACzC,IAAI,iBAAiB,EAAE,KAAK;AAC5B,GAAG,CAAC;AACJ,CAAC;;AC/HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMM,MAAI,GAAG;AACpB,EAAE,IAAI,EAAE,OAAO;AACf,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,UAAU,EAAE,UAAU;AACxB,EAAE,cAAc,EAAE,cAAc;AAChC,EAAE,QAAQ,EAAE,QAAQ;AACpB,EAAE,KAAK,EAAE,KAAK;AACd,EAAE,OAAO,EAAE;AACX,IAAI,YAAY,EAAE,CAAC;AACnB,IAAI,qBAAqB,EAAE,CAAC;AAC5B,GAAG;AACH,CAAC;;ACzBD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;AACxD,EAAE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AAC1C;AACA,IAAI,IAAI,EAAE,SAAS;AACnB,IAAI,QAAQ,EAAE,QAAQ;AACtB,IAAI,YAAY,EAAE;AAClB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B,GAAG,KAAK,CAAC,CAAC,CAAC;AACX,GAAG,IAAI,CAAC,GAAG,CAAC;AACZ;;ACpCA,MAAM,iBAAiB,GAAG,EAAE;AAC5B,MAAM,WAAW,GAAG,EAAE;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE;AACzC,EAAE,IAAI;AACN,IAAI,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACpF,MAAM,QAAQ;AACd,MAAM,YAAY,EAAE;AACpB,KAAK,CAAC,CAAC,MAAM;AACb,IAAI,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClD,IAAI,IAAI,SAAS,IAAI,WAAW,EAAE,OAAO,WAAW,CAAC,SAAS,CAAC;AAC/D,IAAI,OAAO,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACtD,EAAE,CAAC,CAAC,MAAM;AACV;AACA;AACA,IAAI,IAAI,QAAQ,IAAI,WAAW,EAAE,OAAO,WAAW,CAAC,QAAQ,CAAC;AAC7D,IAAI,MAAM,QAAQ,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC;AAC9C,IAAI,IAAI,QAAQ,EAAE,OAAO,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChE,IAAI,OAAO,GAAG;AACd,EAAE;AACF;AACA,MAAM,QAAQ,GAAG,qBAAqB;AACtC,SAAS,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE;AACtC,EAAE,MAAM,KAAK,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACjC,EAAE,MAAM,OAAO,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC;AACA,EAAE,MAAM,OAAO,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE;AACxC,EAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,GAAG,EAAE,GAAG,OAAO,GAAG,OAAO;AAC3H;;ACxCO,MAAM,UAAU,SAAS,IAAI,CAAC;AACrC;;AAEA,EAAE,WAAW,CAAC,GAAG,IAAI,EAAE;AACvB,IAAI,KAAK,EAAE;AACX,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAE;AACtE,MAAM,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;AAChC,IAAI;AACJ,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE;AAC9B,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,EAAE;AAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AACvB,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,KAAK,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE;AACzH,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC9C,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;AAC1C,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,CAAC,MAAM;AACb,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxC,QAAQ,gBAAgB,CAAC,IAAS,CAAC;AACnC,QAAQ,cAAc,CAAC,IAAI,CAAC;AAC5B,MAAM;AACN,IAAI;AACJ,EAAE;AACF,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;AACzB,IAAI,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AACrF,EAAE;;AAEF;;AAEA;;AAEA,EAAE,YAAY,CAAC,QAAQ,EAAE;AACzB,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC1C,EAAE;AACF,EAAE,iBAAiB,GAAG;AACtB,IAAI,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AACjD;AACA;AACA,IAAI,OAAO,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9D,EAAE;;AAEF;;AAEA;;AAEA,EAAE,OAAO,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACjD,IAAI,cAAc,CAAC,IAAI,CAAC;AACxB,IAAI,OAAO,CAAC,IAAI;AAChB,EAAE;;AAEF;;AAEA;;AAEA,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,IAAI,OAAO,IAAI,UAAU,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AACzD,EAAE;;AAEF;AACA;;AAEA;AACA,MAAM,EAAE,GAAG,mBAAmB;AAC9B,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,IAAI;AAC7D,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxB,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;AAC/C;AACA,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;AACxC,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;AAChC;AACA,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY;AAC/C,MAAM,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACvC,IAAI,CAAC;AACL,EAAE,CAAC,MAAM;AACT;AACA,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,YAAY;AAC/C,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC/D,MAAM,gBAAgB,CAAC,IAAI,CAAC;AAC5B,MAAM,OAAO,CAAC,IAAI;AAClB,IAAI,CAAC;;AAEL;AACA,IAAI,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,YAAY;AAClD,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACtD,MAAM,cAAc,CAAC,IAAI,CAAC;AAC1B,MAAM,OAAO,CAAC,IAAI;AAClB,IAAI,CAAC;AACL,EAAE;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE;AAC9B,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;AAC9B,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC9G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC;AACA,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;AAChI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;;AAEnK;AACA,EAAE,gBAAgB,CAAC,IAAI,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,IAAI,EAAE;AAChC;AACA,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AAClD;AACA;AACA,EAAE,MAAM,MAAM,GAAG,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AAClC;AACA;AACA,EAAE,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;;AAElD;AACA,EAAE,MAAM,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE;AAC3D,EAAE,MAAM,oBAAoB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,iBAAiB,EAAE;AACvE,EAAE,MAAM,eAAe,GAAG,YAAY,GAAG,oBAAoB;AAC7D;AACA,EAAE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;;AAEtF;AACA,EAAE,IAAI,eAAe,IAAI,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,eAAe,CAAC;;AAE/G;;AAEA;;AAEA;AACA;AACA;;AAEA,EAAE,MAAM,UAAU,GAAG,YAAY,GAAG,MAAM;AAC1C,EAAE,IAAI,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;;AAE/G;;AAEA;;AAEA,EAAE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;AACpC;AACA,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7B;AACA,EAAE,MAAM,mBAAmB,GAAG,YAAY,GAAG,CAAC,GAAG,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE;;AAE9G;AACA,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE;AAC9E,EAAE,IAAI,aAAa,IAAI,mBAAmB,EAAE;AAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,aAAa,CAAC;AAC9E,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAC1H,EAAE;;AAEF;;AAEA;;AAEA,EAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AACtD;AACA;AACA,EAAE,MAAM,UAAU,GAAG,cAAc,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AAChG,EAAE,MAAM,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE;AAC/D,EAAE,MAAM,cAAc,GAAG,gBAAgB,GAAG,UAAU;AACtD,EAAE,MAAM,aAAa,GAAG,UAAU,KAAK,MAAM;AAC7C,EAAE,MAAM,QAAQ,GAAG,cAAc,GAAG,UAAU;AAC9C,EAAE,IAAI,aAAa,IAAI,QAAQ,EAAE;AACjC,IAAI,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;;AAE/F;AACA;;AAEA,IAAI,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;AACvD;AACA;AACA,IAAI,MAAM,SAAS,GAAG,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;AAC9F,IAAI,MAAM,YAAY,GAAG,UAAU,GAAG,SAAS;AAC/C,IAAI,IAAI,YAAY,EAAE;AACtB,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,YAAY,CAAC;AAC/E,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC;AACrG,IAAI;AACJ,EAAE;;AAEF;AACA;;ACrOO,MAAM,MAAM,SAAS,UAAU,CAAC;AACvC;;AAEA,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,EAAE;AACzB,IAAI,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC;AAC7E,EAAE;;AAEF;;AAEA;;AAEA,EAAE,WAAW,GAAG;AAChB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AACtD,IAAI,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,IAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE;AACxD,EAAE;AACF,EAAE,QAAQ,GAAG;AACb;AACA,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AAC1D,EAAE;AACF,EAAE,YAAY,GAAG;AACjB;AACA,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;AAC3E;AACA,IAAI,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3E,EAAE;AACF,EAAE,YAAY,GAAG;AACjB;AACA,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1D,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE;AACtD;AACA,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE;AACF,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE;AACnC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AAC7D,MAAM,GAAG,OAAO;AAChB,MAAM,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC1C,KAAK,CAAC;AACN,EAAE;AACF,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACjE,MAAM,GAAG,OAAO;AAChB,MAAM,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC1C,KAAK,CAAC;AACN,EAAE;AACF,EAAE,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE;AACvC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE;AACjE,MAAM,GAAG,OAAO;AAChB,MAAM,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,IAAI,CAAC;AAC1C,KAAK,CAAC;AACN,EAAE;;AAEF;;AAEA;;AAEA,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE;AAC3C,IAAI,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG;AACvC,IAAI,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC5E,IAAI,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAClE,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC;AACjC,EAAE;;AAEF;;AAEA,EAAE,YAAY,CAAC,QAAQ,EAAE;AACzB,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC;AACtC,EAAE;;AAEF;;AAEA,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1C,IAAI,OAAO,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AACrD,EAAE;;AAEF;AACA;;AC/EA,MAAM,UAAU,GAAG,CAAC;AACpB,MAAM,UAAU,GAAG,CAAC;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE;AACzD;AACA,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AACvD;AACA,IAAI,MAAM,cAAc,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,GAAG,CAAC;AACtF,IAAI,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,cAAc,GAAG,CAAC,CAAC;AAC1E,IAAI,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC;AACtF,IAAI,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC,kBAAkB;AACzF,UAAU;AACV,UAAU,UAAU;AACpB,IAAI,OAAO,aAAa;AACxB;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE;AACpD,IAAI,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;AACnD,IAAI,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE;AAC3C,IAAI,IAAI,SAAS,KAAK,CAAC,EAAE;AACzB,QAAQ,OAAO,YAAY;AAC3B,IAAI;AACJ,SAAS,IAAI,SAAS,KAAK,CAAC,EAAE;AAC9B,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;AACpD,IAAI;AACJ,SAAS;AACT,QAAQ,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC;AAClE,IAAI;AACJ;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE;AAClD,IAAI,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC;AACzD,IAAI,MAAM,aAAa,GAAG,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC;AACjE,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,aAAa,GAAG,CAAC,GAAG,CAAC,CAAC;AACrE,IAAI,OAAO,OAAO;AAClB;;AChBA;AACO,MAAM,IAAI,GAAG;AACpB,IAAI,GAAGC,MAAW;AAClB,IAAI,MAAM,EAAE;AACZ,QAAQ,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK;AAC/D,YAAY,IAAI,UAAU;AAC1B,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACjE,gBAAgB,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACzD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,KAAKC,cAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAED,MAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AACpG,YAAY;AACZ,YAAY,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,YAAY,IAAI,SAAS,CAAC,KAAK;AAC/B,gBAAgB,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzC,YAAY,IAAI,SAAS,CAAC,QAAQ;AAClC,gBAAgB,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;AAC5C,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC;AACT,QAAQ,kBAAkB,EAAE,kBAAkB;AAC9C,QAAQ,SAAS,EAAE,sBAAsB;AACzC,QAAQ,aAAa,EAAE,0BAA0B;AACjD,QAAQ,eAAe,EAAE,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AAC7D,QAAQ,iBAAiB,EAAE,iBAAiB;AAC5C,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK;AAC/C,YAAY,IAAI,UAAU;AAC1B,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACjE,gBAAgB,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACzD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,KAAKC,cAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAED,MAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AACpG,YAAY;AACZ,YAAY,OAAO,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC;AAChD,QAAQ,CAAC;AACT,QAAQ,aAAa,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK;AAC9D,YAAY,IAAI,UAAU;AAC1B,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACjE,gBAAgB,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACzD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,KAAKC,cAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAED,MAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AACpG,YAAY;AACZ,YAAY,IAAI,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,YAAY,IAAI,SAAS,EAAE,KAAK,EAAE;AAClC,gBAAgB,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACzC,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC;AACT,QAAQ,QAAQ,EAAE,gBAAgB;AAClC,QAAQ,qBAAqB,EAAE,aAAa;AAC5C,QAAQ,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK;AAClD,YAAY,IAAI,UAAU;AAC1B,YAAY,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE;AACjE,gBAAgB,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AACzD,YAAY;AACZ,iBAAiB;AACjB,gBAAgB,UAAU,GAAG,CAAC,CAAC,EAAE,OAAO,KAAKC,cAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,MAAM,EAAED,MAAW,EAAE,GAAG,OAAO,EAAE,CAAC;AACpG,YAAY;AACZ,YAAY,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3C,QAAQ,CAAC;AACT,KAAK;AACL,CAAC;;AC1DD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,OAAO,CAAC;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE;AACpC;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM;AAC3B,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE;AACvC,gBAAgB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;AAC7C,YAAY;AACZ,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvC,gBAAgB,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AACvD,YAAY;AACZ,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE;AAClC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,KAAK;AACnD,YAAY,IAAI,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE;AACzC,gBAAgB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;AACrE,YAAY;AACZ,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;AACvC,gBAAgB,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;AAChF,YAAY;AACZ,YAAY,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC;AACnD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM;AACrD,kBAAkBE,eAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AACvC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AAC3C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM;AACvD,kBAAkBC,iBAAS,CAAC,IAAI,EAAE,MAAM,CAAC;AACzC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AAC1C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;AACtD,kBAAkBC,gBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK;AAC1C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM;AACtD,kBAAkBC,gBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AACxC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK;AACjE,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,QAAQ,EAAE,SAAS;AAC7E,kBAAkBC,gCAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC;AAC/D,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,0BAA0B,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK;AACnE,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,QAAQ,EAAE,SAAS;AAC/E,kBAAkBC,kCAA0B,CAAC,QAAQ,EAAE,SAAS,CAAC;AACjE,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,mBAAmB,GAAG,CAAC,QAAQ,KAAK;AACjD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,QAAQ;AAC7D,kBAAkBC,2BAAmB,CAAC,QAAQ,CAAC;AAC/C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,QAAQ,KAAK;AAChD,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE;AAC1C,kBAAkB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ;AAC5D,kBAAkBC,0BAAkB,CAAC,QAAQ,CAAC;AAC9C;AACA;AACA,YAAY,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,YAAY,IAAI,WAAW,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,EAAE;AACnD;AACA,gBAAgB,OAAO,KAAK;AAC5B,YAAY;AACZ;AACA,YAAY,MAAM,UAAU,GAAG,EAAE;AACjC,YAAY,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACvC,gBAAgB,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAClD,YAAY,CAAC,CAAC;AACd,YAAY,OAAO,UAAU;AAC7B,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,KAAK;AAC5C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI;AACxD,kBAAkB,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC;AAChD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK;AACtC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI;AAClD,kBAAkBC,oBAAY,CAAC,IAAI,CAAC;AACpC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI;AAChD,kBAAkBC,kBAAU,CAAC,IAAI,CAAC;AAClC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK;AAC5C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO;AACxD,kBAAkBC,iBAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAC/C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,KAAK;AACnC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI;AAC/C,kBAAkBC,iBAAS,CAAC,IAAI,CAAC;AACjC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,KAAK;AACrD,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE;AAC9C,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO;AACrE,kBAAkBZ,cAAM,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC;AACvD,YAAY,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;AAC3E,gBAAgB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;AACpD,YAAY;AACZ,YAAY,OAAO,SAAS;AAC5B,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI;AAChD,kBAAkBa,kBAAU,CAAC,IAAI,CAAC;AAClC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AAC5C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;AAC5D,kBAAkBC,gBAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAC9C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AAC3C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;AAC3D,kBAAkBC,eAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAC7C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AAC3C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;AAC3D,kBAAkBC,eAAO,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AAC7C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK;AAChD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,aAAa;AAC5D,kBAAkBC,eAAO,CAAC,IAAI,EAAE,aAAa,CAAC;AAC9C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK;AACjD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa;AAC7D,kBAAkBC,gBAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;AAC/C,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK;AACjC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK;AAC7C,kBAAkBC,cAAM,CAAC,KAAK,CAAC;AAC/B,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK;AAClD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS;AAC9D,kBAAkBC,iBAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;AAChD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK;AACpD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS;AAChE,kBAAkBC,mBAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;AAClD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,QAAQ,EAAE,SAAS,KAAK;AACnD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS;AAC/D,kBAAkBC,kBAAU,CAAC,QAAQ,EAAE,SAAS,CAAC;AACjD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK;AAC9B,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAGC,WAAG,CAAC,KAAK,CAAC;AAC/E,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK;AAC9B,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,GAAGC,WAAG,CAAC,KAAK,CAAC;AAC/E,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AACzC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK;AACrD,kBAAkBC,gBAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;AACvC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK;AACvC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI;AACnD,kBAAkBC,eAAO,CAAC,IAAI,EAAE,IAAI,CAAC;AACrC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AACxD,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI;AAChE,kBAAkB,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC;AAClD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK;AACpC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI;AAChD,kBAAkBC,kBAAU,CAAC,IAAI,CAAC;AAClC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,KAAK;AACxC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI;AACpD,kBAAkBC,sBAAc,CAAC,IAAI,CAAC;AACtC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK;AACtC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI;AAClD,kBAAkBC,oBAAY,CAAC,IAAI,CAAC;AACpC,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK;AAC/C,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO;AAC/D,kBAAkBC,mBAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC;AACjD,QAAQ,CAAC;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK;AACrC,YAAY,OAAO,IAAI,CAAC,SAAS,EAAE;AACnC,kBAAkB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI;AACjD,kBAAkBC,mBAAW,CAAC,IAAI,CAAC;AACnC,QAAQ,CAAC;AACT,QAAQ,IAAI,CAAC,OAAO,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE;AACnD,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO;AAClD;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;AACzD,YAAY,eAAe,EAAE,QAAQ;AACrC,SAAS,CAAC;AACV;AACA,QAAQ,MAAM,QAAQ,GAAG,EAAE;AAC3B,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACrC,YAAY,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AACxD,QAAQ;AACR,QAAQ,OAAO,QAAQ;AACvB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE;AAC3C,QAAQ,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACxE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,KAAK,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACnD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI;AAC9C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,OAAO,aAAa;AAChC,QAAQ;AACR,QAAQ,OAAO,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,GAAG,aAAa;AAChF,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI,eAAe,CAAC,IAAI,EAAE;AAC1B,QAAQ,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO;AAC3D,QAAQ,MAAM,UAAU,GAAG,MAAM,EAAE,IAAI;AACvC,QAAQ,IAAI,UAAU,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;AACpE,YAAY,IAAI;AAChB,gBAAgB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AACjE,oBAAoB,KAAK,EAAE,MAAM;AACjC,oBAAoB,IAAI,EAAE,SAAS;AACnC,oBAAoB,QAAQ;AAC5B,oBAAoB,eAAe,EAAE,QAAQ;AAC7C,iBAAiB,CAAC;AAClB,gBAAgB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACnD,gBAAgB,OAAO,SAAS;AAChC,YAAY;AACZ,YAAY,MAAM;AAClB;AACA,YAAY;AACZ,QAAQ;AACR,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ;AACvF,QAAQ,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC;AACzC,IAAI;AACJ;AACA,OAAO,CAAC,gBAAgB,GAAG,IAAI,GAAG,CAAC;AACnC,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,IAAI;AACR,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,OAAO;AACX,CAAC,CAAC;AAGF;AACA;AACA;AACA;AACA;AAC8B,IAAI,OAAO;;ACxjBzC;AACO,MAAM,IAAI,GAAG;AACpB,IAAI,GAAGC,MAAW;AAClB,IAAI,MAAM,EAAE;AACZ,QAAQ,cAAc,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK;AAC/D,YAAY,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;AACvD,YAAY,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,YAAY,IAAI,SAAS,CAAC,KAAK;AAC/B,gBAAgB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,YAAY,IAAI,SAAS,CAAC,QAAQ;AAClC,gBAAgB,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;AAC/C,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC;AACT,QAAQ,kBAAkB,EAAE,eAAe;AAC3C,QAAQ,SAAS,EAAE,uBAAuB;AAC1C,QAAQ,aAAa,EAAE,wBAAwB;AAC/C,QAAQ,eAAe,EAAE,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC/D,QAAQ,iBAAiB,EAAE,eAAe;AAC1C,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC;AACtG,QAAQ,aAAa,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK;AAC9D,YAAY,MAAM,GAAG,GAAG,OAAO,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;AACvD,YAAY,IAAI,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AAChD,YAAY,IAAI,SAAS,EAAE,KAAK,EAAE;AAClC,gBAAgB,KAAK,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,YAAY;AACZ,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC;AACT,QAAQ,QAAQ,EAAE,oBAAoB;AACtC,QAAQ,qBAAqB,EAAE,kBAAkB;AACjD,QAAQ,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,CAAC,OAAO,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;AACxG,KAAK;AACL,CAAC;;;;ACfD,MAAM,kBAAkB,GAAqG;AAC3H,IAAA,IAAI,EAAEC,+BAAoB;AAC1B,IAAA,EAAE,EAAEC,6BAAkB;AACtB,IAAA,IAAI,EAAEC,+BAAoB;AAC1B,IAAA,KAAK,EAAEC,gCAAqB;CAC7B;AAED,MAAM,aAAa,GAAG,CAAC,EACrB,WAAW,GAAG,MAAM,EACpB,SAAS,GAMV,KAAI;AACH,IAAA,MAAM,IAAI,GAAG,kBAAkB,CAAC,WAAW,CAAC;AAC5C,IAAA,OAAO1E,eAAC,IAAI,EAAA,EAAC,SAAS,EAAE,SAAS,wBAAgB;AACnD,CAAC;AAUD,MAAM,OAAO,GAAG2E,mBAAa,CAA2B,IAAI,CAAC;AAE7D,MAAM,gBAAgB,GAAG,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,QAAQ,EAAqB,KAAI;AAC1G,IAAA,MAAM,GAAG,GAAGC,gBAAU,CAAC,OAAO,CAAC;IAC/B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,GAAG,IAAK,EAAwB;AAC/E,IAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI;IAC/B,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IACtF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAE5C,IAAA,QACE9E,eAAA,CAAA,KAAA,EAAA,EAAA,GAAS,QAAQ,EAAA,QAAA,EAAA,CACfE,yBAAM,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACvC,UAAU,EAAA,CACN,EACPC,eAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAED,QAAM,CAAC,gBAAgB,EAAA,cAAA,EACpB,IAAI,KAAK,OAAO,EAC9B,OAAO,EAAE,gBAAgB,EAAA,QAAA,EAAA,CAExB,SAAS,EACT,IAAI,KAAK,MAAM,IACdG,cAAA,CAACwE,6BAAkB,EAAA,EAAC,SAAS,EAAE3E,QAAM,CAAC,oBAAoB,EAAA,aAAA,EAAA,IAAA,EAAA,CAAgB,KAE1EG,cAAA,CAACuE,+BAAoB,IAAC,SAAS,EAAE1E,QAAM,CAAC,oBAAoB,EAAA,aAAA,EAAA,IAAA,EAAA,CAAgB,CAC7E,CAAA,EAAA,CACM,CAAA,EAAA,CACL;AAEV,CAAC;AAED,MAAM,cAAc,GAAG,EAAE;AAEzB,MAAM,QAAQ,GAAG,CAAC,EAChB,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,EAAE,OAAO,EACf,MAAM,GAAG,OAAO,EAChB,SAAS,EACT,SAAS,EACT,EAAE,EACF,YAAY,EAAE,SAAS,EACvB,GAAG,IAAI,EACO,KAAI;IAClB,MAAM,OAAO,GAAG,IAAI;AAEpB,IAAA,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGgF,cAAQ,CACtD,QAAQ,IAAI,SAAS,CACtB;AAED,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAGA,cAAQ,CAC9D,MAAM,WAAW,IAAI,YAAY,IAAI,IAAI,IAAI,EAAE,CAChD;IAED,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAW,MAAM,CAAC;IAC1D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAChD,MAAM,CAAC,WAAW,IAAI,YAAY,IAAI,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,CACpE;AAED,IAAA,MAAM,gBAAgB,GACpB,QAAQ,KAAK;AACX,WAAG,QAAQ,IAAI,SAAS;UACtB,gBAAgB;AAEtB,IAAA,MAAM,cAAc,GAAG,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI;AACvD,IAAA,MAAM,UAAU,GAAG,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,OAAO;AAEzD,IAAA,MAAM,gBAAgB,GAAG;AACvB,QAAA,IAAI,OAAO,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;AACzC,QAAA,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACvE;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,IAAsB,KAAI;QAC9C,mBAAmB,CAAC,IAAI,CAAC;QACzB,IAAI,IAAI,EAAE;AACR,YAAA,WAAW,GAAG,IAAI,CAAC;QACrB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,IAAU,KAAI;QACvC,uBAAuB,CAAC,IAAI,CAAC;AAC7B,QAAA,YAAY,GAAG,IAAI,CAAC;AACtB,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,WAAW,IAAI,oBAAoB;AAChE,IAAA,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,QAAQ,EAAE;AAC3D,IAAA,MAAM,aAAa,GAAG,oBAAoB,CAAC,WAAW,EAAE;IAExD,MAAM,SAAS,GAAG,UAAU,EAAE,WAAW,EAAE,IAAI,IAAI;IACnD,MAAM,OAAO,GAAG,QAAQ,EAAE,WAAW,EAAE,IAAI,IAAI;AAE/C,IAAA,MAAM,qBAAqB,GAAG,CAAC,UAAkB,KAAI;QACnD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;QACtD,uBAAuB,CAAC,OAAO,CAAC;AAChC,QAAA,YAAY,GAAG,OAAO,CAAC;QACvB,WAAW,CAAC,MAAM,CAAC;AACrB,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,IAAY,KAAI;QAC5C,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACtD,uBAAuB,CAAC,OAAO,CAAC;AAChC,QAAA,YAAY,GAAG,OAAO,CAAC;QACvB,WAAW,CAAC,QAAQ,CAAC;AACvB,IAAA,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAK;AAChC,QAAA,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC;QACnC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AACxD,IAAA,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC;AAC/D,IAAA,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,oBAAoB,GAAG,CAAC,CAAC,CAAC,MAAM,CACnG,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CACpB;AAED,IAAA,MAAM,cAAc,GAAG,oBAAoB,GAAG,cAAc,IAAI,SAAS;AACzE,IAAA,MAAM,cAAc,GAAG,oBAAoB,GAAG,cAAc,IAAI,OAAO;AAEvE,IAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM;AACvD,QAAA,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3F,QAAA,QAAQ,EACN,CAAC,UAAU,IAAI,IAAI;YACjB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;aAC7F,QAAQ,IAAI,IAAI;gBACf,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9F,KAAA,CAAC,CAAC;AAEH,IAAA,MAAM,YAAY,GAAsB;AACtC,QAAA,IAAI,EAAE,QAAQ;QACd,UAAU;AACV,QAAA,gBAAgB,EAAE,oBAAoB;KACvC;AAED,IAAA,MAAM,oBAAoB,GAAG;AAC3B,QAAA,UAAU,EAAEhF,QAAM;QAClB,OAAO;AACP,QAAA,IAAI,EAAE,QAAiB;AACvB,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,QAAQ,EAAE,YAAY;QACtB,UAAU;QACV,QAAQ;AACR,QAAA,QAAQ,EAAE,gBAAgB,CAAC,MAAM,GAAG,CAAC,GAAG,gBAAgB,GAAG,SAAS;AACpE,QAAA,MAAM,EAAE,cAAc;QACtB,SAAS;AACT,QAAA,YAAY,EAAE,SAAS;KACxB;AAED,IAAA,QACEG,cAAA,CAAC,OAAO,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,YAAY,EAAA,QAAA,EACnCF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,qBAAqB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CAC3DG,cAAA,CAAC8E,wBAAS,EAAA,EACR,EAAE,EAAE,EAAE,EAAA,GACF,oBAAoB,EAAA,GACpB,IAAI,EACR,aAAa,EAAC,OAAO,EACrB,KAAK,EAAE,oBAAoB,EAC3B,aAAa,EAAE,iBAAiB,EAChC,UAAU,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,OAAO,EAAE,aAAa,EAAE,EAAA,CACtE,EACD,QAAQ,KAAK,MAAM,KAClBhF,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,CAAA,EAAGD,QAAM,CAAC,WAAW,CAAA,EAAG,QAAQ,KAAK,OAAO,GAAG,CAAA,CAAA,EAAIA,QAAM,CAAC,gBAAgB,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,EAC9F,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,MAAM,EAAA,YAAA,EACL,QAAQ,KAAK,QAAQ,GAAG,iBAAiB,GAAG,iBAAiB,EAAA,QAAA,EAAA,CAExE,QAAQ,KAAK,QAAQ,KACpBC,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEN,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,kBAAkB,EAAA,QAAA,EAAA,CACvCG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACvC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAA,CAC/E,EACPC,eAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAED,QAAM,CAAC,gBAAgB,EAClC,OAAO,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,EAAA,YAAA,EACvB,sCAAuB,EAAA,QAAA,EAAA,CAEjC,aAAa,EACdG,cAAA,CAACwE,6BAAkB,EAAA,EACjB,SAAS,EAAE3E,QAAM,CAAC,oBAAoB,EAAA,aAAA,EAAA,IAAA,EAAA,CAEtC,CAAA,EAAA,CACK,CAAA,EAAA,CACL,EACNG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,SAAS,YAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MACxDG,cAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,CAAA,EAAGH,QAAM,CAAC,QAAQ,CAAA,EAAG,mBAAmB,KAAK,KAAK,GAAG,CAAA,CAAA,EAAIA,QAAM,CAAC,cAAc,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,EAClG,OAAO,EAAE,MAAM,qBAAqB,CAAC,KAAK,CAAC,EAAA,QAAA,EAE1C,KAAK,EAAA,EAND,KAAK,CAOH,CACV,CAAC,EAAA,CACE,CAAA,EAAA,CACL,CACJ,EACA,QAAQ,KAAK,OAAO,KACnBC,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEN,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,kBAAkB,EAAA,QAAA,EAAA,CACvCG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACvC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAA,CAC/E,EACPC,eAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAED,QAAM,CAAC,gBAAgB,EAClC,OAAO,EAAE,MAAM,WAAW,CAAC,MAAM,CAAC,EAAA,YAAA,EACvB,iCAAuB,EAAA,QAAA,EAAA,CAEjC,aAAa,EACdG,cAAA,CAACwE,6BAAkB,EAAA,EACjB,SAAS,EAAE3E,QAAM,CAAC,oBAAoB,EAAA,aAAA,EAAA,IAAA,EAAA,CAEtC,CAAA,EAAA,CACK,EACTC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,mBAAmB,EAAA,QAAA,EAAA,CACxCG,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEH,QAAM,CAAC,UAAU,EAC5B,QAAQ,EAAE,CAAC,cAAc,EACzB,OAAO,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,EAAA,YAAA,EAC/C,iBAAiB,EAAA,QAAA,EAE5BG,cAAA,CAACyE,+BAAoB,EAAA,EAAC,SAAS,EAAE5E,QAAM,CAAC,iBAAiB,EAAA,aAAA,EAAA,IAAA,EAAA,CAAgB,EAAA,CAClE,EACTG,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEH,QAAM,CAAC,UAAU,EAC5B,QAAQ,EAAE,CAAC,cAAc,EACzB,OAAO,EAAE,MAAM,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,EAAA,YAAA,EAC/C,oBAAe,EAAA,QAAA,EAE1BG,cAAA,CAAC0E,gCAAqB,EAAA,EAAC,SAAS,EAAE7E,QAAM,CAAC,iBAAiB,EAAA,aAAA,EAAA,IAAA,EAAA,CAAgB,EAAA,CACnE,CAAA,EAAA,CACL,CAAA,EAAA,CACF,EACNG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGH,QAAM,CAAC,SAAS,CAAA,CAAA,EAAIA,QAAM,CAAC,cAAc,CAAA,CAAE,EAAA,QAAA,EAC3D,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,MACpBG,cAAA,CAAA,QAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAE,CAAA,EAAGH,QAAM,CAAC,QAAQ,CAAA,EAAG,aAAa,KAAK,IAAI,GAAG,CAAA,CAAA,EAAIA,QAAM,CAAC,cAAc,CAAA,CAAE,GAAG,EAAE,CAAA,CAAE,EAC3F,OAAO,EAAE,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAA,QAAA,EAExC,IAAI,EAAA,EALA,IAAI,CAMF,CACV,CAAC,EAAA,CACE,CAAA,EAAA,CACL,CACJ,CAAA,EAAA,CACG,CACP,CAAA,EAAA,CACG,EAAA,CACW;AAEvB;;;;ACnTA,MAAM,OAAO,GAA2B,CAAC,EACvC,OAAO,GAAG,SAAS,EACnB,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,OAAO,EACP,eAAe,EACf,SAAS,EACT,SAAS,EACT,EAAE,EACF,KAAK,EACL,GAAG,IAAI,EACR,KAAI;IACH,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,KAAK,IAAI,KAAK,EAAE,KAAK,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;AACxG,QAAA,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC;IACxE;AAEA,IAAA,MAAM,WAAW,GAAGI,WAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,CAAA,cAAA,EAAiB,EAAE,IAAI,WAAW,EAAE;AACpD,IAAA,MAAM,WAAW,GAAG,EAAE,IAAI,WAAW;AAErC,IAAA,MAAM,OAAO,GAAG,OAAO,KAAK,OAAO;IAEnC,MAAM,cAAc,GAAG,IAAI,CACzBJ,QAAM,CAAC,SAAS,EAChBA,QAAM,CAAC,OAAO,CAAC,EACf,EAAE,CAACA,QAAM,CAAC,SAAS,GAAG,KAAK,EAAE,EAC7B,SAAS,CACV;AAED,IAAA,MAAM,WAAW,GAAwB;AACvC,QAAA,GAAG,KAAK;QACR,IAAI,eAAe,IAAI,EAAE,cAAc,EAAE,CAAA,MAAA,EAAS,eAAe,CAAA,CAAA,CAAG,EAAyB,CAAC;QAC9F,IAAI,SAAS,IAAI,EAAE,gBAAgB,EAAE,CAAA,MAAA,EAAS,SAAS,CAAA,CAAA,CAAG,EAAyB,CAAC;KACrF;AAED,IAAA,QACEG,cAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,eACvB,OAAO,GAAG,WAAW,GAAG,QAAQ,EAAA,iBAAA,EAC1B,KAAK,GAAG,OAAO,GAAG,SAAS,EAC5C,KAAK,EAAE,WAAW,EAAA,GACd,IAAI,YAERF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,OAAO,EAAA,QAAA,EAAA,CAC3B,IAAI,IAAIG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,IAAI,EAAA,aAAA,EAAc,MAAM,YAAE,IAAI,EAAA,CAAQ,EACvEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC9B,KAAK,KACJG,cAAA,CAAA,MAAA,EAAA,EAAM,EAAE,EAAE,OAAO,EAAE,SAAS,EAAEH,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,KAAK,GAAQ,CAC3D,EACA,IAAI,IAAIG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,CAAA,EAAA,CAChD,EACL,OAAO,KACNG,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,OAAO,EACzB,OAAO,EAAE,SAAS,EAClB,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,QAAQ,EAAA,QAAA,EAEnBG,eAAC+E,2BAAgB,EAAA,EAAA,aAAA,EAAa,MAAM,EAAA,CAAG,EAAA,CAChC,CACV,CAAA,EAAA,CACG,EAAA,CACF;AAEV;;AClEA,MAAM,UAAU,GAA8B,CAAC,EAC7C,SAAS,GAAG,EAAE,EACd,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,OAAO,EACd,GAAG,SAAS,EACb,KAAI;AACH,IAAA,QACE/E,cAAA,CAAA,KAAA,EAAA,EACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAE,SAAS,iBACR,MAAM,EAAA,GACd,SAAS,EAAA,QAAA,EAEbA,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,+CAA+C,EACjD,IAAI,EAAE,IAAI,EAAA,CACV,EAAA,CACE;AAEV,CAAC;;ACxBD,MAAM,SAAS,GAA6B,CAAC,EAC3C,SAAS,GAAG,EAAE,EACd,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,EACX,IAAI,GAAG,OAAO,EACd,GAAG,SAAS,EACb,KAAI;IACH,QACEA,wBACE,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EAClC,SAAS,EAAE,SAAS,iBACR,MAAM,EAAA,GACd,SAAS,EAAA,QAAA,EAEbA,cAAA,CAAA,GAAA,EAAA,EAAG,EAAE,EAAC,iCAAiC,EAAA,QAAA,EACrCA,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAC,MAAM,EACT,CAAC,EAAC,gBAAgB,EAClB,IAAI,EAAE,IAAI,EAAA,CACV,EAAA,CACA,EAAA,CACA;AAEV,CAAC;;;;AC3BD,MAAM,QAAQ,GAA4B,CAAC,EACzC,EAAE,EACF,KAAK,EACL,eAAe,EACf,OAAO,EACP,QAAQ,EACR,SAAS,EACT,aAAa,GAAG,KAAK,EACrB,GAAG,IAAI,EACR,KAAI;IACH,MAAM,WAAW,GAAG,EAAE,IAAIgF,gBAAK,CAAC,KAAK,EAAE;IAEvC,QACElF,yBAAK,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CAC/CG,wBACE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,eAAe,EAAE;AACtC,oBAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;AAC5B,iBAAA,CAAC,EACF,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAA,QAAA,EAE3BG,cAAA,CAACiF,gBAAa,CAAC,IAAI,EAAA,EACjB,SAAS,EAAEpF,QAAM,CAAC,IAAI,EACtB,OAAO,EAAE,aAAa,GAAG,eAAe,GAAG,OAAO,EAClD,EAAE,EAAE,WAAW,EACf,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAAA,eAAA,EACH,QAAQ,EAAA,oBAAA,EACH,aAAa,EAAA,cAAA,EACnB,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,EAAA,GAC9D,IAAI,EAAA,QAAA,EAERG,cAAA,CAACiF,gBAAa,CAAC,SAAS,EAAA,EAAC,SAAS,EAAEpF,QAAM,CAAC,SAAS,EAAA,QAAA,EACjD,aAAa,GAAGG,cAAA,CAAC,SAAS,EAAA,EAAA,CAAG,GAAGA,cAAA,CAAC,UAAU,EAAA,EAAA,CAAG,EAAA,CACvB,EAAA,CACP,EAAA,CACjB,EACNA,cAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,KAAK,EAAE,EAAE,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAC9D,OAAO,EAAE,WAAW,EAAA,QAAA,EAEnB,KAAK,EAAA,CACA,CAAA,EAAA,CACJ;AAEV;;;;AChDA,MAAM,KAAK,GAAyB,CAAC,EACnC,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,GAAG,SAAS,EACnB,QAAQ,GAAG,KAAK,EAChB,eAAe,EACf,SAAS,EACT,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,KAAI;AAEH,IAAA,MAAM,UAAU,GAAG,IAAI,CACrBA,QAAM,CAAC,KAAK,EACZA,QAAM,CAAC,OAAO,CAAC,EACf;AACE,QAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;AAC3B,QAAA,CAACA,QAAM,CAAC,WAAW,GAAG,QAAQ;AAC9B,QAAA,CAACA,QAAM,CAAC,YAAY,GAAG,SAAS;KACjC,EACD,SAAS,CACV;AAED,IAAA,MAAM,UAAU,GAAG;AACjB,QAAA,IAAI,CAAC,QAAQ,IAAI,eAAe,IAAI,EAAE,YAAY,EAAE,CAAA,MAAA,EAAS,eAAe,CAAA,CAAA,CAAG,EAAE,CAAC;AAClF,QAAA,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,EAAE,cAAc,EAAE,CAAA,MAAA,EAAS,SAAS,CAAA,CAAA,CAAG,EAAE,CAAC;AACxE,QAAA,GAAG,KAAK;KACc;IAExB,MAAM,aAAa,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,UAAU;AAExD,IAAA,QACEC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,UAAU,EAAA,eAAA,EACN,QAAQ,EACvB,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,aAAa,GAAG,QAAQ,GAAG,SAAS,EAC1C,QAAQ,EAAE,aAAa,IAAI,QAAQ,GAAG,EAAE,GAAG,CAAC,IAAI,SAAS,EAAA,GACrD,IAAI,EAAA,QAAA,EAAA,CAEP,QAAQ,KACPE,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EACjD,QAAQ,GACJ,CACR,EACDG,yBAAM,SAAS,EAAEH,QAAM,CAAC,KAAK,YAAG,QAAQ,EAAA,CAAQ,EAC/C,SAAS,KACRG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAA,QAAA,EAC9B,SAAS,GACL,CACR,CAAA,EAAA,CACG;AAEV,CAAC;AAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK;AACtC,aAAa,CAAC,WAAW,GAAG,OAAO;;;;AC3DrB,SAAU,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAkB,EAAA;AACvE,IAAA,QACEG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,YAC3D,QAAQ,EAAA,CACN;AAEX;;;;ACJA,MAAM,OAAO,GAA2B,CAAC,EACvC,OAAO,EACP,OAAO,EACP,IAAI,GAAG,MAAM,EACb,KAAK,GAAG,OAAO,EACf,UAAU,GAAG,CAAC,EACd,IAAI,EACJ,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,eAAe,EACf,gBAAgB,EAChB,SAAS,GAAG,KAAK,EACjB,SAAS,EACT,GAAG,IAAI,EACR,KAAI;AACH,IAAA,QACEC,eAAA,CAACoF,eAAY,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAA,GAAM,IAAI,EAAA,QAAA,EAAA,CAChE,QAAQ,IACPlF,cAAA,CAACkF,eAAY,CAAC,MAAM,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACzB,OAAO,GACY,KAEtBlF,cAAA,CAACkF,eAAY,CAAC,OAAO,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC1B,OAAO,GACa,CACxB,EACDlF,cAAA,CAACkF,eAAY,CAAC,MAAM,EAAA,EAAA,QAAA,EAClBpF,eAAA,CAACoF,eAAY,CAAC,OAAO,EAAA,EACnB,SAAS,EAAE,IAAI,CAACrF,QAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAC1C,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,GAAG,eAAe,EACvE,gBAAgB,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,GAAG,gBAAgB,EACzE,iBAAiB,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,GAAG,SAAS,EAAA,QAAA,EAAA,CAElE,OAAO,EACP,SAAS,IAAIG,cAAA,CAACkF,eAAY,CAAC,KAAK,EAAA,EAAA,CAAG,CAAA,EAAA,CACf,EAAA,CACH,CAAA,EAAA,CACJ;AAExB;;;;ACzCO,MAAM,aAAa,GAAG,CAAC,EAC5B,KAAK,EACL,SAAS,EACT,YAAY,EACZ,QAAQ,EACS,KAAY;IAC7B,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACnC,OAAO,YAAY,IAAI,oBAAoB;IAC7C;IAEA,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;AACzC,QAAA,OAAO,YAAY,IAAI,CAAA,yBAAA,EAA4B,SAAS,cAAc;IAC5E;AAEA,IAAA,OAAO,EAAE;AACX,CAAC;;;;ACHD,MAAM,cAAc,GAAG,CAAC,EACtB,QAAQ,EACR,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,IAAI,GAAG,QAAQ,EAChB,KAAK,GAAG,OAAO,EACd,SAAS,EACT,KAAK,GAAG,KAAK,EACb,QAAQ,GAAG,KAAK,EACL,MACXpF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,cAAc,EAAE,QAAQ,IAAIA,QAAM,CAAC,iBAAiB,CAAC,EAAA,QAAA,EAAA,CAC/EC,eAAA,CAACqF,aAAK,CAAC,IAAI,EAAA,EACT,SAAS,EAAE,IAAI,CACbtF,QAAM,CAAC,YAAY,EACnB,KAAK,IAAI,CAAC,QAAQ,IAAIA,QAAM,CAAC,UAAU,EACvC,QAAQ,IAAIA,QAAM,CAAC,aAAa,EAChC,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAEf,QAAQ,EACR,QAAQ,IAAIG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,GAAA,EAAA,CAAU,IACjD,EACZ,OAAO,KACNG,cAAA,CAAC,OAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,EAAA,QAAA,EACxDA,cAAA,CAAA,MAAA,EAAA,EACE,SAAS,EACP,QAAQ,GAAGH,QAAM,CAAC,YAAY,GAAG,KAAK;AACtC,oBAAAA,QAAM,CAAC,SAAS,GAAGA,QAAM,CAAC,QAAQ,EAAA,QAAA,EAGpCG,cAAA,CAACoF,wBAAa,EAAA,EAAA,CAAG,EAAA,CACZ,GACC,CACX,CAAA,EAAA,CACG,CACP;;AChDD,MAAMC,WAAS,GAAGC,gBAAU,CAC1B,CACE,EACE,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,IAAI,GAAG,MAAM,EACb,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,KAAK,EAChB,UAAU,EACV,OAAO,GAAG,KAAK,EACf,WAAW,EACX,IAAI,GAAG,QAAQ,EAChB,KAAK,GAAG,OAAO,EACd,YAAY,EACZ,KAAK,EACL,EAAE,EACF,IAAI,EACJ,MAAM,EACN,OAAO,EACP,IAAI,EACJ,WAAW,GAAG,KAAK,EACnB,GAAG,IAAI,EACR,EACD,GAAG,KACD;AACF,IAAA,MAAM,cAAc,GAAG,CAAC,GAAgC,KAAY;AAClE,QAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7D,IAAA,CAAC;AAED,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGT,cAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AACjD,IAAA,MAAM,WAAW,GAAG5E,WAAK,EAAE;AAC3B,IAAA,MAAM,WAAW,GAAG,EAAE,IAAI,WAAW;IAErCsF,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC;QACtC,aAAa,CAAC,QAAQ,CAAC;;QAGvB,IAAI,UAAU,EAAE;YACd,MAAM,eAAe,GAAG,aAAa,CAAC;AACpC,gBAAA,KAAK,EAAE,QAAQ;gBAEf,SAAS;gBACT,YAAY;gBACZ,QAAQ;AACT,aAAA,CAAC;YACF,aAAa,CAAC,eAAe,CAAC;QAChC;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;AAEhE,IAAA,MAAM,YAAY,GAAGC,iBAAW,CAC9B,CAAC,CAAsC,KAAI;AACzC,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAE/B,QAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YAC7D,aAAa,CAAC,QAAQ,CAAC;AACvB,YAAA,QAAQ,GAAG,QAAQ,CAAC;QACtB;IACF,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAChC;AAED,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAAC,MAAK;QACnC,IAAI,CAAC,QAAQ,EAAE;YACb,aAAa,CAAC,EAAE,CAAC;AACjB,YAAA,QAAQ,GAAG,EAAE,CAAC;QAChB;AACF,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAExB,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAC5B,CAAC,CAAqC,KAAI;QACxC,MAAM,KAAK,GAAG,aAAa,CAAC;AAC1B,YAAA,KAAK,EAAE,UAAU;YAEjB,SAAS;YACT,YAAY;YACZ,QAAQ;AACT,SAAA,CAAC;QACF,aAAa,CAAC,KAAK,CAAC;QACpB,YAAY,CAAC,KAAK,CAAC;AACnB,QAAA,MAAM,GAAG,CAAC,CAAC;AACb,IAAA,CAAC,EACD,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAC9D;AAED,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAC7B,CAAC,CAAqC,KAAI;QACxC,YAAY,CAAC,IAAI,CAAC;AAClB,QAAA,OAAO,GAAG,CAAC,CAAC;AACd,IAAA,CAAC,EACD,CAAC,OAAO,CAAC,CACV;AAED,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI;AAC7D,IAAA,MAAM,aAAa,GAAG,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;IAC/D,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;AACtD,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAK,GAAG,YAAY,GAAG,SAAS,KAAK,UAAU,IAAI,UAAU,IAAI,QAAQ;AACpG,IAAA,MAAM,QAAQ,GAAG,CAAC,UAAU,IAAI,KAAK;UACjC,CAAA,EAAG,WAAW,CAAA,MAAA;AAChB,UAAE;cACE,CAAA,EAAG,WAAW,CAAA,OAAA;cACd,SAAS;AAEf,IAAA,MAAM,cAAc,GAAG,IAAI,CAAC3F,QAAM,CAAC,SAAS,EAAE;AAC5C,QAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;QAC3B,CAACA,QAAM,CAAC,KAAK,GAAG,QAAQ,IAAI,CAAC,QAAQ;QACrC,CAAC,SAAU,GAAG,SAAS;AACxB,KAAA,CAAC;IAEF,QACEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJE,cAAA,CAAC,cAAc,EAAA,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAEjB,KAAK,EAAA,CACS,CAClB,EAEDF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCG,cAAA,CAAA,OAAA,EAAA,EAAA,GACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,QAAQ,EAAA,eAAA,EACP,QAAQ,EAAA,kBAAA,EACL,QAAQ,EAC1B,SAAS,EAAE,IAAI,CAAC;AACd,oCAAA,CAACH,QAAM,CAAC,aAAa,GAAG,cAAc,IAAI,aAAa;AACxD,iCAAA,CAAC,EAAA,CACF,EAED,cAAc,IAAIG,yBAAM,SAAS,EAAEH,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,EAE7D,aAAa,KACZG,cAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAEH,QAAM,CAAC,WAAW,EAC7B,WAAW,EAAE,CAAC,CAAC,KAAI;oCACjB,CAAC,CAAC,cAAc,EAAE;AAClB,oCAAA,WAAW,EAAE;AACf,gCAAA,CAAC,gBACU,cAAc,EACzB,QAAQ,EAAE,EAAE,EAAA,QAAA,EAEZG,cAAA,CAACyF,2BAAgB,EAAA,EAAA,CAAG,GACb,CACV,CAAA,EAAA,CACG,EAENzF,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAEH,QAAM,CAAC,UAAU,eACjB,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAAA,QAAA,EAEzC,iBAAiB,GACb,CAAA,EAAA,CACH,CAAA,EAAA,CACF;AAEV,CAAC,CACF;AAEDwF,WAAS,CAAC,WAAW,GAAG,WAAW;AAEnC,gBAAe,KAAK,CAAC,IAAI,CAACA,WAAS,CAAC;;;;SCpMpB,UAAU,CAAC,IAAU,EAAE,SAAiB,OAAO,EAAA;IAC7D,IAAI,CAAC,IAAI,IAAI,EAAE,IAAI,YAAY,IAAI,CAAC,EAAE;AACpC,QAAA,OAAO,EAAE;IACX;AAEA,IAAA,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnD,IAAA,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC1D,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE;AAE/B,IAAA,IAAI,MAAM,KAAK,OAAO,EAAE;AACtB,QAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,EAAI,IAAI,EAAE;IAClC;SAAO;AACL,QAAA,OAAO,GAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,IAAI,EAAE;IAClC;AACF;SAEgB,aAAa,CAAC,KAAa,EAAE,SAAiB,OAAO,EAAA;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;IAE3C,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5C,IAAI,MAAM,GAAG,EAAE;AAEf,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,MAAM,IAAI,GAAG;QACf;AACA,QAAA,MAAM,IAAI,aAAa,CAAC,CAAC,CAAC;IAC5B;AAEA,IAAA,OAAO,MAAM;AACf;SAEgB,iBAAiB,CAAC,KAAa,EAAE,SAAiB,OAAO,EAAA;AACvE,IAAA,MAAM,SAAS,GAAG,MAAM,KAAK;AAC3B,UAAE;UACA,oDAAoD;AAExD,IAAA,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC9B;SACgB,SAAS,CAAC,UAAkB,EAAE,SAAiB,OAAO,EAAA;IACpE,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACjD,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,SAAS,GAAG,iCAAiC;IACnD,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;IAEhD,IAAI,CAAC,KAAK,EAAE;AACV,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK;AACxC,IAAA,IAAI,GAAW;AACf,IAAA,IAAI,KAAa;IACjB,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC;AAElC,IAAA,IAAI,MAAM,KAAK,OAAO,EAAE;AACtB,QAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AAC3B,QAAA,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5B;SAAO;AACL,QAAA,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;AACzB,QAAA,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;IAC9B;AAEA,IAAA,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,EAAE,EAAE;AAClD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC;AAE3C,IAAA,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI;AAC3B,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,GAAG,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,EAAE;AAC1B,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,IAAI;AACb;SAEgB,mBAAmB,CAAC,KAAa,EAAE,SAAiB,OAAO,EAAA;AACzE,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,OAAO;AAEtC,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,KAAK,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC1E,OAAO,OAAO,GAAG,OAAO,GAAG,SAAS;IACtC;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;QAC9B,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAChC,QAAA,MAAM,OAAO,GAAG,MAAM,KAAK;AACzB,cAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;AACtC,cAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;QAC1C,OAAO,OAAO,GAAG,OAAO,GAAG,SAAS;IACtC;AAEA,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,EAAE;AACvB,QAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC;AAAE,YAAA,OAAO,SAAS;QACvD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;QACvC,OAAO,MAAM,GAAG,OAAO,GAAG,SAAS;IACrC;AAEA,IAAA,OAAO,YAAY;AACrB;;AChGA,MAAM,UAAU,GAA8B,CAAC,EAC7C,MAAM,GAAG,OAAO,EAChB,YAAY,GAAG,QAAQ,EACvB,aAAa,GAAG,OAAO,EACvB,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,MAAM,EACd,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,KAAK,EAAE,aAAa,EACpB,OAAO,EACP,OAAO,EACP,aAAa,EAAE,MAAM,EACrB,SAAS,EACT,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,OAAO,GAAGpF,WAAK,EAAE;AACvB,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,OAAO,WAAW;AAExC,IAAA,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS;AACxC,IAAA,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG4E,cAAQ,CAAc,YAAY,IAAI,IAAI,CAAC;IACnF,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGA,cAAQ,CAAS,EAAE,CAAC;IAChE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC;IAC1D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAS,EAAE,CAAC;IAC9D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC;AAChE,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAO,IAAI,IAAI,EAAE,CAAC;AAChE,IAAA,MAAM,UAAU,GAAGa,YAAM,CAAiB,IAAI,CAAC;IAE/C,MAAM,mBAAmB,GAAG,YAAY,GAAG,KAAK,GAAG,YAAY;IAC/D,MAAM,kBAAkB,GAAG,CAAC,EAAE,aAAa,IAAI,aAAa,CAAC;IAC7D,MAAM,YAAY,GAAG,SAAS,GAAG,cAAc,IAAI,mBAAmB,GAAG,UAAU,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;AAEtH,IAAA,MAAM,kBAAkB,GAAG,aAAa,IAAI;AAC1C,UAAE,CAAA,EAAG,UAAU,CAAA,GAAA,EAAM,aAAa,CAAA;AAClC,UAAE,aAAa,IAAI,UAAU,IAAI,EAAE;IAErCH,eAAS,CAAC,MAAK;QACb,SAAS,kBAAkB,CAAC,KAAiB,EAAA;AAC3C,YAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAiB;YACtC,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAc,CAAC;YACpE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,GAAG,qCAAqC,CAAC;AAClF,YAAA,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB,EAAE;gBACzC,eAAe,CAAC,KAAK,CAAC;YACxB;QACF;QACA,IAAI,YAAY,EAAE;AAChB,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC;QAC5D;AACA,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC;AAC/D,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,MAAM,gBAAgB,GAAGC,iBAAW,CAAC,CAAC,OAAoB,KAAI;QAC5D,IAAI,CAAC,YAAY,EAAE;YACjB,eAAe,CAAC,OAAO,CAAC;QAC1B;AACA,QAAA,QAAQ,GAAG,OAAO,CAAC;QACnB,YAAY,CAAC,KAAK,CAAC;QACnB,iBAAiB,CAAC,EAAE,CAAC;QACrB,gBAAgB,CAAC,EAAE,CAAC;QACpB,IAAI,OAAO,EAAE;YACX,cAAc,CAAC,OAAO,CAAC;QACzB;AACF,IAAA,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,MAAK;QAC3B,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;AAClC,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,KAAsC,KAAI;AAC/D,QAAA,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK;AAErB,QAAA,IAAI,GAAG,KAAK,OAAO,EAAE;YACnB,IAAI,YAAY,EAAE;gBAChB,IAAI,mBAAmB,EAAE;oBACvB,eAAe,CAAC,KAAK,CAAC;oBACtB,KAAK,CAAC,cAAc,EAAE;oBACtB;gBACF;AACA,gBAAA,IAAI,cAAc,CAAC,MAAM,KAAK,EAAE,IAAI,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE;oBAC7E,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;oBACpD,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,EAAE;wBAC9C,gBAAgB,CAAC,UAAU,CAAC;wBAC5B,eAAe,CAAC,KAAK,CAAC;wBACtB,KAAK,CAAC,cAAc,EAAE;wBACtB;oBACF;gBACF;YACF;iBAAO;gBACL,eAAe,CAAC,IAAI,CAAC;gBACrB,KAAK,CAAC,cAAc,EAAE;gBACtB;YACF;QACF;AAEA,QAAA,IAAI,GAAG,KAAK,QAAQ,EAAE;YACpB,IAAI,YAAY,EAAE;gBAChB,eAAe,CAAC,KAAK,CAAC;gBACtB,KAAK,CAAC,cAAc,EAAE;gBACtB;YACF;QACF;AAEA,QAAA,MAAM,WAAW,GAAG;AAClB,YAAA,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY;SACjD;AAED,QAAA,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC7B;QACF;QAEA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACrB,KAAK,CAAC,cAAc,EAAE;QACxB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,CAAC,eAAqB,KAAI;QAChD,eAAe,CAAC,KAAK,CAAC;QACtB,gBAAgB,CAAC,eAAe,CAAC;AACnC,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,IAAI,CAAC,QAAQ,EAAE;YACb,eAAe,CAAC,IAAI,CAAC;QACvB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,qBAAqB,GAAG,CAAC,KAAa,KAAI;QAC9C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;QAEhD,iBAAiB,CAAC,WAAW,CAAC;QAC9B,YAAY,CAAC,IAAI,CAAC;AAElB,QAAA,IAAI,WAAW,KAAK,EAAE,EAAE;YACtB,gBAAgB,CAAC,EAAE,CAAC;YACpB,gBAAgB,CAAC,IAAI,CAAC;AACtB,YAAA,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;YAC1B;QACF;QAEA,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,MAAM,CAAC;AAEvD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;YACxB,gBAAgB,CAAC,SAAS,CAAC;AAC3B,YAAA,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE;AAC7B,gBAAA,IAAI,CAAC,YAAY;oBAAE,eAAe,CAAC,IAAI,CAAC;AACxC,gBAAA,QAAQ,GAAG,IAAI,CAAC;YAClB;QACF;AAAO,aAAA,IAAI,MAAM,KAAK,OAAO,EAAE;YAC7B,gBAAgB,CAAC,EAAE,CAAC;AACpB,YAAA,IAAI,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE;gBAC7B,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;gBACjD,IAAI,UAAU,EAAE;oBACd,gBAAgB,CAAC,UAAU,CAAC;oBAC5B,cAAc,CAAC,UAAU,CAAC;gBAC5B;YACF;QACF;AACF,IAAA,CAAC;AAED,IAAA,QACExF,cAAA,CAAA,KAAA,EAAA,EAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA,GAAM,IAAI,YACzEG,cAAA,CAAC,OAAO,EAAA,EACN,IAAI,EAAE,YAAY,EAClB,YAAY,EAAE,eAAe,EAC7B,QAAQ,EAAE,IAAI,EACd,OAAO,EACLA,cAAA,CAAC,SAAS,IACR,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EACpC,IAAI,EAAC,KAAK,EACV,IAAI,EACFG,cAAA,CAAC2F,4BAAiB,EAAA,EAChB,OAAO,EAAE,CAAC,QAAQ,GAAG,eAAe,GAAG,SAAS,EAChD,SAAS,EAAE,IAAI,CACb9F,QAAM,CAAC,cAAc,EACrB,QAAQ,IAAIA,QAAM,CAAC,sBAAsB,CAC1C,GACD,EAEJ,QAAQ,EAAE,CAAC,CAAkB,KAAI;AAC/B,oBAAA,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAClC,gBAAA,CAAC,EACD,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAA,IAAA,EACX,YAAY,EAAC,KAAK,EAClB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,CAAC,aAAa,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,EAClE,YAAY,EAAE,aAAa,GAAG,kBAAkB,GAAG,SAAS,EAC5D,KAAK,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,EAC5C,SAAS,EAAE,EAAE,EACb,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,EAAE,EAAE,OAAO,EAAA,aAAA,EACE,MAAM,EACnB,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,YAAY,GAAG,YAAY,gBAClD,eAAe,EAAA,eAAA,EACX,YAAY,EAAA,eAAA,EACZ,UAAU,kBACX,kBAAkB,EAAA,kBAAA,EACd,aAAa,GAAG,SAAS,IAAI,UAAU,GAAG,CAAA,EAAG,OAAO,CAAA,KAAA,CAAO,GAAG,SAAS,CAAC,EAAA,CAC1F,EAEJ,OAAO,EACLG,cAAA,CAAC,QAAQ,EAAA,EACP,QAAQ,EAAE,mBAAmB,EAC7B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,cAAc,EAC5B,WAAW,EAAE,eAAe,EAC5B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,KAAK,OAAO,GAAG,YAAY,GAAG,YAAY,EACxD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAK;oBACZ,gBAAgB,CAAC,IAAI,CAAC;AACtB,oBAAA,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC;AAC5B,gBAAA,CAAC,GACD,EAEJ,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,CAAC,EAAA,CACb,EAAA,CACA;AAEV,CAAC;AAED,yBAAe,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;;;AC3OrC,MAAM,MAAM,GAA0B,CAAC,EACtC,IAAI,GAAG,KAAK,EACX,KAAK,EACL,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACpB,eAAe,EACf,iBAAiB,EACjB,SAAS,EACR,GAAG,IAAI,EACR,MACAA,eAAC4F,mBAAW,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,IAAI,EAAA,GAAM,IAAI,EAAA,QAAA,EACrC9F,eAAA,CAAC8F,mBAAW,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,CAClB5F,cAAA,CAAC4F,mBAAW,CAAC,OAAO,IAAC,SAAS,EAAE/F,QAAM,CAAC,aAAa,GAAI,EACxDC,eAAA,CAAC8F,mBAAW,CAAC,OAAO,IAAC,SAAS,EAAE,IAAI,CAAC/F,QAAM,CAAC,aAAa,EAAE,SAAS,CAAC,aACpEG,cAAA,CAAC4F,mBAAW,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE/F,QAAM,CAAC,WAAW,EAAA,QAAA,EAC9C,KAAK,EAAA,CACa,EACpBG,eAAC4F,mBAAW,CAAC,WAAW,EAAA,EAAC,SAAS,EAAE/F,QAAM,CAAC,iBAAiB,EAAA,QAAA,EAC1D,WAAW,EAAA,CACa,EAC1BC,yBAAK,SAAS,EAAED,QAAM,CAAC,UAAU,aAC/B,CAAC,EAAE,mBAAmB,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC,KACrDG,cAAA,CAAC4F,mBAAW,CAAC,MAAM,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC1B5F,eAAC,MAAM,EAAA,EAAC,OAAO,EAAC,UAAU,MAAM,iBAAiB,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,EAAA,QAAA,EAAG,mBAAmB,EAAA,CAAU,EAAA,CAChG,CACrB,EACDA,cAAA,CAAC4F,mBAAW,CAAC,MAAM,IAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC1B5F,eAAC,MAAM,EAAA,EAAC,OAAO,EAAC,QAAQ,MAAM,eAAe,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,EAAA,QAAA,EAAG,iBAAiB,GAAU,EAAA,CACxF,CAAA,EAAA,CAChB,IACe,CAAA,EAAA,CACF,EAAA,CACH;;;;AChCpB,MAAM,MAAM,GAA0B,CAAC,EACrC,QAAQ,EACR,aAAa,EACb,WAAW,GAAG,OAAO,EACrB,OAAO,EACP,KAAK,GAAG,QAAQ,EAChB,MAAM,GAAG,KAAK,EACd,MAAM,EACN,SAAS,EACT,EAAE,EACF,QAAQ,GAAG,KAAK,EAChB,cAAc,EACd,mBAAmB,GAAG,IAAI,EAC1B,aAAa,GAAG,IAAI,EACpB,GAAG,IAAI,EACR,KAAI;AAEH,IAAA,MAAM,aAAa,GAAGwF,iBAAW,CAAC,MAAW;AAC3C,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,OAAO,EAAE;AACX,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAEvB,IAAA,MAAM,kBAAkB,GAAGA,iBAAW,CAAC,MAAW;QAChD,IAAI,cAAc,EAAE;AAClB,YAAA,cAAc,EAAE;QAClB;AAEA,QAAA,IAAI,mBAAmB,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,aAAa,EAAE;QACjB;IACF,CAAC,EAAE,CAAC,cAAc,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;IAElED,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,MAAM,IAAI,CAAC,aAAa;YAAE;AAE/B,QAAA,MAAM,aAAa,GAAG,CAAC,KAAoB,KAAU;AACnD,YAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAC1B,KAAK,CAAC,cAAc,EAAE;AACtB,gBAAA,aAAa,EAAE;YACjB;AACF,QAAA,CAAC;AAED,QAAA,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC;QACjD,OAAO,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC;IACnE,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAE1CA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,EAAE;YACV;YACA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ;QACzC;aAAO;YACL,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;QACxC;AAEA,QAAA,OAAO,MAAK;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,OAAO;AACxC,QAAA,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9B,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAuC,KAAU;QAC1E,KAAK,CAAC,eAAe,EAAE;AACzB,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,KAAoC,KAAU;QACtE,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,aAAa,EAAE;AACjB,IAAA,CAAC;AAED,IAAA,OAAOM,qBAAY,CACjB/F,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,cAAc,CAAC,EAAE;AACtC,oBAAA,CAACA,QAAM,CAAC,uBAAuB,CAAC,GAAG,MAAM;iBAC1C,CAAC,EACF,OAAO,EAAE,kBAAkB,EAC3B,IAAI,EAAC,cAAc,EAAA,aAAA,EACP,MAAM,EAAA,aAAA,EACN,gBAAgB,EAAA,CAC5B,EACFC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CACbD,QAAM,CAAC,eAAe,CAAC,EACvB;AACE,oBAAA,CAACA,QAAM,CAAC,qBAAqB,CAAC,GAAG,MAAM;AACvC,oBAAA,CAACA,QAAM,CAAC,yBAAyB,CAAC,GAAG,QAAQ;AAC9C,iBAAA,EACD,SAAS,CACV,EACD,KAAK,EAAE;AACL,oBAAA,uBAAuB,EAAE,WAAW;AACd,iBAAA,EACxB,OAAO,EAAE,iBAAiB,EAC1B,IAAI,EAAC,QAAQ,EAAA,YAAA,EACF,MAAM,EAAA,iBAAA,EACA,EAAE,GAAG,CAAA,EAAG,EAAE,CAAA,MAAA,CAAQ,GAAG,cAAc,EAAA,aAAA,EACvC,CAAC,MAAM,EAAA,aAAA,EACR,cAAc,EAC1B,EAAE,EAAE,EAAE,EAAA,GACF,IAAI,EAAA,QAAA,EAAA,CAGRC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,gBAAgB,EAAA,QAAA,EAAA,CACrCG,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,WAAW,EAC7B,EAAE,EAAE,EAAE,GAAG,CAAA,EAAG,EAAE,CAAA,MAAA,CAAQ,GAAG,cAAc,EAAA,QAAA,EAEtC,KAAK,EAAA,CACF,EAEL,aAAa,KACZG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,mBAAmB,EAAA,QAAA,EAAG,aAAa,EAAA,CAAO,CAClE,EAEDG,cAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAC,UAAU,EAClB,QAAQ,EAAA,IAAA,EACR,IAAI,EAAEA,cAAA,CAACyF,2BAAgB,EAAA,EAAA,CAAG,EAC1B,IAAI,EAAC,IAAI,EACT,WAAW,EAAC,QAAQ,EAAA,CACpB,CAAA,EAAA,CACE,EACNzF,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,aAAA,EACpB,gBAAgB,EAAA,QAAA,EAE3B,QAAQ,EAAA,CACL,CAAA,EAAA,CACF,CAAA,EAAA,CACL,EACH,QAAQ,CAAC,IAAI,CACd;AACH;;;;ACzIA,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAC7B,CACE,EACE,WAAW,GAAG,8BAA8B,EAC5C,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,WAAW,EACX,EAAE,EACF,SAAS,EACT,aAAa,EAAE,MAAM,EACrB,GAAG,IAAI,EACR,EACD,GAAG,KACD;IACF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGgF,cAAQ,CAAS,EAAE,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;IAClE,MAAM,YAAY,GAAG,YAAY,GAAG,KAAK,GAAG,aAAa;AACzD,IAAA,MAAM,WAAW,GAAG5E,WAAK,EAAE;AAC3B,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,WAAW;AACjC,IAAA,MAAM,YAAY,GAAG,CAAC,CAAsC,KAAU;AACpE,QAAA,IAAI,QAAQ;YAAE;QAEd,IAAI,YAAY,EAAE;AAChB,YAAA,QAAQ,GAAG,CAAC,CAAC;QACf;aAAO;AACL,YAAA,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAClC;AACF,IAAA,CAAC;AACD,IAAA,MAAM,WAAW,GAAG,CAAC,CAAqC,KAAU;AAClE,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,OAAO,GAAG,CAAC,CAAC;AACd,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,CAAqC,KAAU;AACjE,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,MAAM,GAAG,CAAC,CAAC;AACb,IAAA,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAW;AAClC,QAAA,IAAI,QAAQ;YAAE;QAEd,IAAI,YAAY,EAAE;AAChB,YAAA,MAAM,cAAc,GAAG;AACrB,gBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;AACrB,gBAAA,aAAa,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;aACU;AAExC,YAAA,QAAQ,GAAG,cAAc,CAAC;QAC5B;aAAO;YACL,gBAAgB,CAAC,EAAE,CAAC;QACtB;QACA,OAAO,IAAI;AACb,IAAA,CAAC;AACD,IAAA,MAAM,aAAa,GAAG,CAAC,CAAwC,KAAU;AACvE,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,SAAS,GAAG,CAAC,CAAC;AAChB,IAAA,CAAC;AACD,IAAA,QACEH,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CACbD,QAAM,CAAC,MAAM,EACb,EAAE,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,EAC/B,SAAS,CACV,EACD,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,OAAO,IAAI,WAAW,GAAG,QAAQ,GAAG,SAAS,EACnD,QAAQ,EAAE,OAAO,IAAI,WAAW,GAAG,CAAC,GAAG,SAAS,EAChD,SAAS,EAAE,OAAO,IAAI,WAAW,GAAG,CAAC,CAAC,KAAI;AACxC,YAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gBACtC,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,OAAO,GAAG,CAAQ,CAAC;YACrB;AACF,QAAA,CAAC,GAAG,SAAS,aAEbG,cAAA,CAAA,MAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,cAAc,EAAE,EAAE,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EACvE,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,cAAc,EAAA,aAAA,EACP,MAAM,EAAA,QAAA,EAElBG,cAAA,CAAC8F,0BAAe,EAAA,EAAA,CAAG,EAAA,CACd,EAEP9F,cAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,OAAO,EACX,IAAI,EAAC,MAAM,EACX,WAAW,EAAE,WAAW,EAAA,YAAA,EACZ,WAAW,EACvB,KAAK,EAAE,YAAY,IAAI,EAAE,EACzB,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,iBACL,MAAM,EAAA,GACf,IAAI,EACR,SAAS,EAAE,IAAI,CAAC,EAAE,CAACH,QAAM,CAAC,kBAAkB,GAAG,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAA,CACzF,EACD,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,KACtCG,yBACE,SAAS,EAAEH,QAAM,CAAC,eAAe,EAAA,aAAA,EACrB,MAAM,EAClB,OAAO,EAAE,gBAAgB,EAAA,QAAA,EAEzBG,cAAA,CAACyF,2BAAgB,EAAA,EAAA,CAAG,EAAA,CACf,CACR,CAAA,EAAA,CACG;AAEV,CAAC;AAGH,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;ACzG7B,MAAM,MAAM,GAA0B,CAAC,EACrC,KAAK,EACL,IAAI,GAAG,UAAU,EACjB,WAAW,EACX,aAAa,EACb,WAAW,GAAG,eAAe,EAC7B,YAAY,GAAG,KAAK,EACpB,UAAU,GAAG,QAAQ,EACrB,IAAI,EACJ,OAAO,GAAG,UAAU,EACpB,MAAM,EACN,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,OAAO,EACf,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,OAAO,EACP,OAAO,EACP,MAAM,GAAG,OAAO,EAChB,EAAE,EACF,GAAG,IAAI,EACR,KAAI;IACH,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGZ,cAAQ,CAAC,KAAK,CAAC;IAC3C,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAGA,cAAQ,CAAiB,EAAE,CAAC;IAC9E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;AAClD,IAAA,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAGA,cAAQ,CAC5D,MAAM,YAAY,IAAI,IAAI,IAAI,EAAE,CACjC;IAEDU,eAAS,CAAC,MAAK;QACb,IAAI,YAAY,EAAE;YAChB,sBAAsB,CAAC,YAAY,CAAC;QACtC;AACF,IAAA,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAElB,IAAA,MAAM,wBAAwB,GAAGC,iBAAW,CAAC,CAAC,IAAU,KAAI;QAC1D,sBAAsB,CAAC,IAAI,CAAC;IAC9B,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,mBAAmB,GAAGA,iBAAW,CACrC,CAAC,IAAU,KAAI;AACb,QAAA,YAAY,GAAG,IAAI,CAAC;QACpB,SAAS,CAAC,KAAK,CAAC;QAChB,OAAO,IAAI;AACb,IAAA,CAAC,EACD,CAAC,YAAY,EAAE,OAAO,CAAC,CACxB;AAED,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAAC,MAAW;QACzC,WAAW,IAAI;AACf,QAAA,sBAAsB,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,SAAS,CAAC,KAAK,CAAC;QAChB,OAAO,IAAI;AACb,IAAA,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;AAE1B,IAAA,MAAM,gBAAgB,GAAGA,iBAAW,CAClC,CAAC,IAAa,KAAI;QAChB,IAAI,QAAQ,IAAI,IAAI;YAAE;QACtB,IAAI,IAAI,EAAE;YACR,MAAM,OAAO,GAAmB,EAAE;AAClC,YAAA,WAAW,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI,EAAG,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7D,oBAAoB,CAAC,OAAO,CAAC;YAC7B,cAAc,CAAC,EAAE,CAAC;YAClB,MAAM,IAAI;QACZ;aAAO;YACL,OAAO,IAAI;QACb;QACA,SAAS,CAAC,IAAI,CAAC;IACjB,CAAC,EACD,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CACzC;IAED,MAAM,UAAU,GAAGA,iBAAW,CAC5B,CAAC,MAAc,EAAE,IAAgB,KAAI;QACnC,IAAI,IAAI,CAAC,QAAQ;YAAE;AACnB,QAAA,oBAAoB,CAAC,CAAC,IAAI,KAAI;AAC5B,YAAA,IAAI,IAAI,KAAK,UAAU,EAAE;AACvB,gBAAA,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YAC7C;AACA,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,EAAE;AAC/C,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,EACD,CAAC,IAAI,CAAC,CACP;AAED,IAAA,MAAM,iBAAiB,GAAGA,iBAAW,CAAC,MAAK;QACzC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC9E,QAAA,aAAa,GAAG,GAAG,CAAC;QACpB,SAAS,CAAC,KAAK,CAAC;QAChB,OAAO,IAAI;IACb,CAAC,EAAE,CAAC,iBAAiB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAE/C,IAAA,MAAM,iBAAiB,GAAGA,iBAAW,CAAC,MAAK;QACzC,oBAAoB,CAAC,EAAE,CAAC;AACxB,QAAA,aAAa,GAAG,EAAE,CAAC;AACrB,IAAA,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAEnB,IAAA,MAAM,kBAAkB,GAAGA,iBAAW,CAAC,CAAC,CAAsC,KAAI;AAChF,QAAA,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAChC,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,mBAAmB,GAAGA,iBAAW,CACrC,CAAC,CAAwC,KAAI;AAC3C,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,CAAC,CAAC,cAAc,EAAE;YAClB,cAAc,CAAC,EAAE,CAAC;QACpB;IACF,CAAC,EACD,EAAE,CACH;AAED,IAAA,MAAM,aAAa,GAAG,YAAY,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC;AAE9D,IAAA,MAAM,aAAa,GAAGrF,aAAO,CAAC,MAAK;QACjC,IAAI,CAAC,KAAK,EAAE,MAAM;AAAE,YAAA,OAAO,EAAE;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;AAAE,YAAA,OAAO,KAAK;AACrC,QAAA,MAAM,CAAC,GAAG,WAAW,CAAC,WAAW,EAAE;QACnC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpE,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AAExB,IAAA,MAAM,iBAAiB,GAAGA,aAAO,CAAC,MAAK;AACrC,QAAA,IAAI,IAAI,KAAK,UAAU,IAAI,YAAY,EAAE;AACvC,YAAA,OAAO,YAAY,CAAC,kBAAkB,CACpC,MAAM,KAAK,OAAO,GAAG,OAAO,GAAG,OAAO,CACvC;QACH;QACA,IAAI,CAAC,WAAW,EAAE,MAAM;AAAE,YAAA,OAAO,UAAU;QAC3C,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,SAAS,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC;AAC1C,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AAEhE,IAAA,MAAM,aAAa,GAAGqF,iBAAW,CAAC,MAAK;AACrC,QAAA,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI;AACxD,QAAA,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC;AAC/B,IAAA,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAEjB,MAAM,WAAW,GAAG,IAAI,CAAC3F,QAAM,CAAC,SAAS,EAAE,SAAS,CAAC;IAErD,MAAM,aAAa,IACjBG,cAAA,CAAC,MAAM,IACL,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EACF,IAAI,KAAK,UAAU,GAAGA,cAAA,CAAC2F,4BAAiB,EAAA,EAAA,CAAG,GAAG3F,cAAA,CAAC+F,6BAAkB,EAAA,EAAA,CAAG,EAEtE,YAAY,EAAC,OAAO,EACpB,IAAI,EAAC,IAAI,EAAA,QAAA,EAETjG,yBAAK,SAAS,EAAED,QAAM,CAAC,aAAa,EAAA,QAAA,EAAA,CACjC,IAAI,IAAIG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,UAAU,YAAG,IAAI,EAAA,CAAQ,EAC1DG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,UAAU,EAAA,QAAA,EAAG,iBAAiB,EAAA,CAAQ,EAC9DG,yBAAM,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,WAAW,EAAE,EAAE,CAACA,QAAM,CAAC,eAAe,GAAG,MAAM,EAAE,CAAC,EAAA,QAAA,EAC5E,aAAa,EAAE,KACdG,cAAA,CAAC,KAAK,EAAA,EAAC,UAAU,EAAE,CAAA,CAAA,EAAI,aAAa,EAAE,CAAA,CAAE,EAAE,aAAa,EAAA,IAAA,EAAA,CAAG,CAC3D,EAAA,CACI,CAAA,EAAA,CACH,EAAA,CACC,CACV;AAED,IAAA,MAAM,cAAc,GAClB,IAAI,KAAK,UAAU,IACjBA,cAAA,CAAC,QAAQ,EAAA,EACP,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,mBAAmB,EAChC,YAAY,EAAE,wBAAwB,EACtC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,EACpB,EAAE,EAAE,CAAA,gBAAA,EAAmB,EAAE,IAAI,EAAE,CAAA,CAAE,EAAA,YAAA,EACtB,6BAA6B,EAAA,CACxC,KAEFF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,KAAK,EAAA,QAAA,EAAA,CACzB,aAAa,KACZG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,MAAM,EAAA,QAAA,EAC3BG,eAAC,MAAM,EAAA,EACL,KAAK,EAAE,WAAW,EAClB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,MAAM,cAAc,CAAC,EAAE,CAAC,EAAA,CACjC,EAAA,CACE,CACP,EACDA,cAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,IAAI,EACtB,IAAI,EAAC,SAAS,EAAA,sBAAA,EACQ,IAAI,KAAK,UAAU,EAAA,QAAA,EAExC,aAAa,CAAC,MAAM,GAAG,CAAC,IACvB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;oBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,CAAA,YAAA,EAAe,KAAK,CAAA,CAAE;oBAChD,MAAM,UAAU,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAC9C,oBAAA,QACEC,eAAA,CAAA,IAAA,EAAA,EAEE,IAAI,EAAC,QAAQ,EAAA,eAAA,EACE,UAAU,EAAA,eAAA,EACV,IAAI,CAAC,QAAQ,EAC5B,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,IAAI,EAAE;AAC3B,4BAAA,CAACA,QAAM,CAAC,YAAY,GAAG,UAAU;AACjC,4BAAA,CAACA,QAAM,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ;AACrC,yBAAA,CAAC,EACF,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,EACtC,OAAO,EAAE,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EACvC,SAAS,EAAE,CAAC,CAAC,KAAI;AACf,4BAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;gCACtC,CAAC,CAAC,cAAc,EAAE;AAClB,gCAAA,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;4BAC1B;AACF,wBAAA,CAAC,EAAA,QAAA,EAAA,CAEA,IAAI,KAAK,UAAU,KAClBG,cAAA,CAAC,QAAQ,EAAA,EACP,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAC,EAAE,EAAA,CACR,CACH,EACA,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAC3BA,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,CACrD,EACDG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,CAAA,EAAA,EA3B/C,MAAM,CA4BR;gBAET,CAAC,CAAC,KAEFG,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAE,IAAI,EAAC,QAAQ,EAAA,WAAA,EAAW,QAAQ,EAAA,QAAA,EAAA,wBAAA,EAAA,CAE5D,CACN,EAAA,CACE,EACLC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC3BG,cAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAA,IAAA,EAAC,OAAO,EAAC,UAAU,EAAC,OAAO,EAAE,iBAAiB,EAAA,QAAA,EAAA,QAAA,EAAA,CAEtD,EACTA,cAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAA,IAAA,EAAC,OAAO,EAAE,iBAAiB,EAAA,QAAA,EAAA,SAAA,EAAA,CAEnC,CAAA,EAAA,CACL,CAAA,EAAA,CACF,CACP;IAEH,QACEA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAA,GAAM,IAAI,EAAA,QAAA,EAC3CA,eAAC,OAAO,EAAA,EACN,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,EAC1C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,cAAc,EAAA,CACvB,EAAA,CACE;AAEV;;;;;;ACrRA,MAAM,KAAK,GAA8B,CAAC,EACxC,KAAK,EACL,aAAa,EACb,YAAY,EACZ,IAAI,EACJ,EAAE,EACF,SAAS,EACT,WAAW,GAAG,UAAU,EACxB,SAAS,EACT,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,WAAW,GAAG,EAAE,IAAIC,WAAK,EAAE;IACjC,QACED,cAAA,CAACgG,kBAAU,CAAC,IAAI,EAAA,EACd,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,IAAI,CAACnG,QAAM,CAAC,IAAI,EAAE,SAAS,CAAC,EACvC,YAAY,EAAE,YAAY,EAC1B,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,IAAI,EAAA,YAAA,EACE,SAAS,EAAA,kBAAA,EACH,WAAW,EAC7B,WAAW,EAAE,WAAW,EAAA,GACpB,IAAI,EAAA,QAAA,EAEP,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAI;AAC5C,YAAA,MAAM,OAAO,GAAG,EAAE,IAAI,KAAK;AAC3B,YAAA,MAAM,QAAQ,GAAG,CAAA,EAAG,WAAW,CAAA,MAAA,EAAS,KAAK,EAAE;YAC/C,QACEG,wBAEE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,OAAO,EAAE,EAAE,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAAA,QAAA,EAEhEC,eAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAED,QAAM,CAAC,YAAY,EAAE,OAAO,EAAE,QAAQ,aACtDG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAChCG,cAAA,CAACgG,kBAAU,CAAC,IAAI,IACd,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAEnG,QAAM,CAAC,IAAI,EACtB,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,QAAQ,mBACG,QAAQ,EAAA,QAAA,EAEvBG,eAACgG,kBAAU,CAAC,SAAS,EAAA,EAAC,SAAS,EAAEnG,QAAM,CAAC,SAAS,EAAA,CAAI,EAAA,CACrC,GACd,EACNG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAA,QAAA,EAAG,KAAK,EAAA,CAAQ,CAAA,EAAA,CAC3C,IAhBH,OAAO,CAiBR;QAEV,CAAC,CAAC,EAAA,CACc;AAEtB;;ACjDA,MAAM,QAAQ,GAA4B,CAAC,EACzC,EAAE,EACF,SAAS,EACT,OAAO,GAAG,MAAM,EAChB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,QAAQ,GAAG,KAAK,EAChB,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,KAAK,EACf,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,WAAW,GAAGI,WAAK,EAAE;AAC3B,IAAA,MAAM,MAAM,GAAG,EAAE,IAAI,WAAW;IAChC,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG4E,cAAQ,CAAU,OAAO,CAAC;IACxE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAGA,cAAQ,CAAU,QAAQ,CAAC;AAE3E,IAAA,MAAM,mBAAmB,GAAGW,iBAAW,CAAC,CAAC,CAAmE,KAAU;AACpH,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,MAAM,UAAU,GAAG,CAAC,eAAe;QACnC,kBAAkB,CAAC,UAAU,CAAC;AAC9B,QAAA,QAAQ,GAAG,UAAU,CAAC;AACtB,QAAA,OAAO,GAAG,CAAC,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAElD,IAAA,MAAM,gBAAgB,GAAGA,iBAAW,CAAC,CAAC,CAAmE,KAAU;AACjH,QAAA,IAAI,QAAQ;YAAE;QACd,IAAI,CAAC,eAAe,EAAE;YACpB,kBAAkB,CAAC,IAAI,CAAC;AACxB,YAAA,QAAQ,GAAG,IAAI,CAAC;QAClB;AACA,QAAA,OAAO,GAAG,CAAC,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAElD,IAAA,MAAM,qBAAqB,GAAGA,iBAAW,CAAC,CAAC,CAAmE,KAAU;AACtH,QAAA,IAAI,QAAQ;YAAE;AACd,QAAA,MAAM,WAAW,GAAG,CAAC,gBAAgB;QACrC,mBAAmB,CAAC,WAAW,CAAC;AAChC,QAAA,OAAO,GAAG,CAAC,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAEzC,IAAA,MAAM,aAAa,GAAGA,iBAAW,CAAC,CAAC,CAAqC,KAAU;AAChF,QAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE;YACrD,CAAC,CAAC,cAAc,EAAE;YAClB,QAAQ,OAAO;AACb,gBAAA,KAAK,UAAU;oBACb,mBAAmB,CAAC,CAAC,CAAC;oBACtB;AACF,gBAAA,KAAK,OAAO;oBACV,gBAAgB,CAAC,CAAC,CAAC;oBACnB;AACF,gBAAA,KAAK,MAAM;AACX,gBAAA,KAAK,MAAM;AACX,gBAAA;oBACE,qBAAqB,CAAC,CAAC,CAAC;oBACxB;;QAEN;AACF,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,CAAC;IAErFD,eAAS,CAAC,MAAK;QACb,kBAAkB,CAAC,OAAO,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAEbA,eAAS,CAAC,MAAK;QACb,mBAAmB,CAAC,QAAQ,CAAC;AAC/B,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,MAAM,oBAAoB,GAAGC,iBAAW,CAAC,MAAsB;QAC7D,MAAM,aAAa,GAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC;AAC9E,QAAA,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,MAAM;QAEzE,QAAQ,cAAc;AACpB,YAAA,KAAK,UAAU;AACb,gBAAA,QACE1F,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAA,CAAC,QAAQ,EAAA,EACP,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,MAAM,mBAAmB,CAAC,EAAmC,CAAC,EAAA,CAC/E,EACFF,yBAAK,SAAS,EAAED,QAAM,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,CACnDG,yBACE,EAAE,EAAE,GAAG,MAAM,CAAA,KAAA,CAAO,EACpB,SAAS,EAAEH,QAAM,CAAC,qBAAqB,CAAC,EACxC,OAAO,EAAE,mBAAmB,EAAA,QAAA,EAE3B,IAAI,EAAA,CACA,EACN,WAAW,IAAI,OAAO,KACrBG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU,EACvB,SAAS,EAAEH,QAAM,CAAC,wBAAwB,CAAC,EAC3C,OAAO,EAAE,mBAAmB,YAE3B,OAAO,EAAA,CACH,CACR,CAAA,EAAA,CACG,CAAA,EAAA,CACL;AAGP,YAAA,KAAK,OAAO;AACV,gBAAA,QACEC,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,8BAA8B,CAAC,EAAA,QAAA,EACpDG,yBAAM,SAAS,EAAEH,QAAM,CAAC,sBAAsB,CAAC,EAAA,aAAA,EAAc,MAAM,EAAA,QAAA,EACjEG,cAAA,CAAC,KAAK,EAAA,EACJ,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,gBAAgB,CAAC,EAAmC,CAAC,EAC1E,KAAK,EAAG,CAAC;4CACP,KAAK,EAAE,KAAK,IAAI,EAAE;AAClB,4CAAA,KAAK,EAAE,EAAE;AACT,4CAAA,QAAQ,EAAE;AAAS,yCAAA,CAAC,EAAA,iBAAA,EACL,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,EAAA,CACjC,EAAA,CACG,EAAA,CACH,EACNF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,CACnDG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,EACpB,SAAS,EAAEH,QAAM,CAAC,sBAAsB,CAAC,EACzC,OAAO,EAAE,gBAAgB,EAAA,QAAA,EAExB,IAAI,EAAA,CACA,EACN,WAAW,IAAI,OAAO,KACrBG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU,EACvB,SAAS,EAAEH,QAAM,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAE1C,OAAO,EAAA,CACH,CACR,CAAA,EAAA,CACG,CAAA,EAAA,CACL;AAGP,YAAA,KAAK,MAAM;AACT,gBAAA,QACEC,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAClD,IAAI,EAAA,CACD,EACNC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,CACnDG,yBACE,EAAE,EAAE,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,EACpB,SAAS,EAAEH,QAAM,CAAC,sBAAsB,CAAC,EACzC,OAAO,EAAE,qBAAqB,EAAA,QAAA,EAE7B,IAAI,EAAA,CACA,EACN,WAAW,IAAI,OAAO,KACrBG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU,EACvB,SAAS,EAAEH,QAAM,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAE1C,OAAO,EAAA,CACH,CACR,CAAA,EAAA,CACG,CAAA,EAAA,CACL;AAGP,YAAA,KAAK,MAAM;AACX,YAAA;gBACE,QACEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,CACnDG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,GAAG,MAAM,CAAA,KAAA,CAAO,EACpB,SAAS,EAAEH,QAAM,CAAC,sBAAsB,CAAC,EACzC,OAAO,EAAE,qBAAqB,EAAA,QAAA,EAE7B,IAAI,EAAA,CACA,EACN,WAAW,IAAI,OAAO,KACrBG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU,EACvB,SAAS,EAAEH,QAAM,CAAC,wBAAwB,CAAC,EAAA,QAAA,EAE1C,OAAO,EAAA,CACH,CACR,CAAA,EAAA,CACG;;AAGd,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAE7J,MAAM,aAAa,GAAG,IAAI,CACxBA,QAAM,CAAC,0BAA0B,CAAC,EAClC;QACE,CAACA,QAAM,CAAC,CAAA,eAAA,EAAkB,OAAO,EAAE,CAAC,GAAG,OAAO;AAC9C,QAAA,CAACA,QAAM,CAAC,yBAAyB,CAAC,GAAG,QAAQ;AAC7C,QAAA,CAACA,QAAM,CAAC,wBAAwB,CAAC,GAAG,OAAO;AAC3C,QAAA,CAAC,SAAS,IAAI,EAAE,GAAG;AACpB,KAAA,CACF;AAED,IAAA,MAAM,cAAc,GAAG2F,iBAAW,CAAC,MAA0B;QAC3D,IAAI,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,OAAO,EAAE;AACjD,YAAA,OAAO,eAAe;QACxB;AACA,QAAA,OAAO,SAAS;AAClB,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAE9B,IAAA,QACExF,cAAA,CAAA,IAAA,EAAA,EACE,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAC3B,SAAS,EAAE,aAAa,mBACT,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,MAAM,GAAG,gBAAgB,GAAG,SAAS,EAAA,eAAA,EACvE,QAAQ,EAAA,cAAA,EACT,cAAc,EAAE,EAAA,iBAAA,EACb,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,EAAA,kBAAA,EACf,WAAW,IAAI,OAAO,GAAG,CAAA,EAAG,MAAM,CAAA,QAAA,CAAU,GAAG,SAAS,EAAA,aAAA,EAC9D,WAAW,EAAA,GACnB,IAAI,EAAA,QAAA,EAEP,oBAAoB,EAAE,EAAA,CACpB;AAET;;;;ACtOO,MAAM,QAAQ,GAAGiG,UAAI,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAwB,KAAI;IAEpF,MAAM,YAAY,GAAG,MAAK;QACxB,QAAQ,CAAC,IAAI,CAAC;AAChB,IAAA,CAAC;AAED,IAAA,QACEnG,eAAA,CAACoG,oBAAY,CAAC,IAAI,EAAA,EAChB,SAAS,EAAE,IAAI,CAACrG,QAAM,CAAC,IAAI,CAAC,mBACb,UAAU,IAAI,SAAS,EACtC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ,aAEtB,IAAI,CAAC,IAAI,IAAIG,yBAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,YAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,EAClEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,YAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,EACnD,IAAI,CAAC,OAAO,KACXG,yBAAM,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,IAAI,CAAC,OAAO,EAAA,CAAQ,CAC3D,CAAA,EAAA,CACG,CAAA,EAAA,CACY;AAExB,CAAC,CAAC;AAEF,QAAQ,CAAC,WAAW,GAAG,UAAU;;ACb3B,SAAU,YAAY,CAAC,EAC3B,aAAa,GAAG,EAAE,EAClB,YAAY,EACZ,YAAY,GACM,EAAA;IAElB,MAAM,eAAe,GAAG6F,YAAM,CAAC,aAAa,KAAK,SAAS,CAAC;AAC3D,IAAA,MAAM,oBAAoB,GAAGA,YAAM,CAAkB,aAAa,CAAC;IAEnE,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAGb,cAAQ,CAAC,KAAK,CAAC;AAC5C,IAAA,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAGA,cAAQ,CAChE,aAAa,IAAI,EAAE,CACpB;AAED,IAAA,MAAM,UAAU,GAAGW,iBAAW,CAAC,CAAC,IAAmB,KAAY;AAC7D,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,EAAE;IACjD,CAAC,EAAE,EAAE,CAAC;IAEND,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,aAAa;YAAE;AAEhD,QAAA,MAAM,QAAQ,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AAC9E,QAAA,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;AAElE,QAAA,IAAI,QAAQ,KAAK,WAAW,EAAE;YAC5B,wBAAwB,CAAC,aAAa,CAAC;AACvC,YAAA,oBAAoB,CAAC,OAAO,GAAG,aAAa;QAC9C;AACF,IAAA,CAAC,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAE/B,IAAA,MAAM,OAAO,GAAGC,iBAAW,CACzB,CAAC,OAAgB,KAAI;QACnB,YAAY,CAAC,OAAO,CAAC;AACrB,QAAA,YAAY,GAAG,OAAO,CAAC;AACzB,IAAA,CAAC,EACD,CAAC,YAAY,CAAC,CACf;AAED,IAAA,MAAM,cAAc,GAAGA,iBAAW,CAChC,CAAC,IAAmB,KAAa;AAC/B,QAAA,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,KAAK;AAE1B,QAAA,OAAO,qBAAqB,CAAC,IAAI,CAC/B,CAAC,QAAQ,KAAK,UAAU,CAAC,QAAQ,CAAC,KAAK,OAAO,CAC/C;AACH,IAAA,CAAC,EACD,CAAC,qBAAqB,EAAE,UAAU,CAAC,CACpC;AAED,IAAA,MAAM,gBAAgB,GAAGA,iBAAW,CAClC,CAAC,IAAmB,KAAI;AACtB,QAAA,MAAM,YAAY,GAAG,CAAC,IAAI,CAAC;QAC3B,wBAAwB,CAAC,YAAY,CAAC;QAEtC,IAAI,YAAY,EAAE;YAChB,YAAY,CAAC,IAAI,CAAC;QACpB;QAEA,OAAO,CAAC,KAAK,CAAC;AAChB,IAAA,CAAC,EACD,CAAC,YAAY,EAAE,OAAO,CAAC,CACxB;IAED,OAAO;QACL,IAAI;QACJ,qBAAqB;QACrB,OAAO;QACP,gBAAgB;QAChB,cAAc;KACf;AACH;;ACxFO,MAAM,aAAa,GAAG,CAAC,IAAqB,KAAY;IAC3D,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IACvD,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;IAClE,IAAI,OAAO,IAAI,KAAK,QAAQ;AAAE,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;IAClE,IAAI,OAAO,IAAI,KAAK,SAAS;AAAE,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;AACnE,IAAA,OAAO,EAAE;AACX;;ACUK,MAAM,cAAc,GAAG,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,UAAU,EACV,eAAe,EACf,WAAW,GACS,KAA0B;AAC9C,IAAA,MAAM,kBAAkB,GAAGE,YAAM,CAAwB,IAAI,CAAC;AAC9D,IAAA,MAAM,iBAAiB,GAAGA,YAAM,CAAS,EAAE,CAAC;AAC5C,IAAA,MAAM,mBAAmB,GAAGA,YAAM,CAAU,KAAK,CAAC;AAElD,IAAA,MAAM,kBAAkB,GAAGF,iBAAW,CACpC,CAAC,IAAY,KAAI;AACf,QAAA,IAAI,iBAAiB,CAAC,OAAO,KAAK,IAAI,EAAE;YACtC;QACF;AAEA,QAAA,iBAAiB,CAAC,OAAO,GAAG,IAAI;AAEhC,QAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC9B,YAAA,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC1C;AAEA,QAAA,kBAAkB,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;AAC3C,YAAA,IAAI,eAAe,IAAI,WAAW,EAAE;gBAClC,WAAW,CAAC,IAAI,CAAC;YACnB;QACF,CAAC,EAAE,GAAG,CAAC;AACT,IAAA,CAAC,EACD,CAAC,eAAe,EAAE,WAAW,CAAC,CAC/B;IAEDD,eAAS,CAAC,MAAK;QACb,IAAI,eAAe,IAAI,CAAC,mBAAmB,CAAC,OAAO,IAAI,WAAW,EAAE;AAClE,YAAA,mBAAmB,CAAC,OAAO,GAAG,IAAI;YAClC,WAAW,CAAC,EAAE,CAAC;AACf,YAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE;QAChC;AACF,IAAA,CAAC,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAElCA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,eAAe;YAAE;AAEtB,QAAA,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC7B,kBAAkB,CAAC,EAAE,CAAC;YACtB;QACF;QACA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACxD,kBAAkB,CAAC,UAAU,CAAC;QAChC;IACF,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAElEA,eAAS,CAAC,MAAK;AACb,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC9B,gBAAA,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAC1C;AACF,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,aAAa,GAAGC,iBAAW,CAAC,MAAsB;QACtD,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE;AACvB,YAAA,OAAO,KAAK;QACd;QAEA,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE;AAE3D,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC3B,YAAA,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;AACzD,YAAA,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE;AAE/D,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;AAClE,QAAA,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;AAEzC,IAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE;AAC3C,CAAC;;ACpFD,MAAM,IAAI,GAAwB,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,GAAG,OAAO,EACf,SAAS,EACT,SAAS,GAAG,GAAG,EACf,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,eAAe,GAAGE,YAAM,CAAiB,IAAI,CAAC;AACpD,IAAA,MAAM,gBAAgB,GAAGA,YAAM,CAAU,KAAK,CAAC;AAC/C,IAAA,MAAM,WAAW,GAAGA,YAAM,CAA8B,IAAI,CAAC;AAC7D,IAAA,MAAM,WAAW,GAAGA,YAAM,CAAwB,IAAI,CAAC;AACvD,IAAA,MAAM,cAAc,GAAGA,YAAM,CAAC,WAAW,CAAC;AAC1C,IAAA,MAAM,gBAAgB,GAAGA,YAAM,CAAC,aAAa,CAAC;IAE9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGb,cAAQ,CAAC,EAAE,CAAC;IAClD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;AAEhD,IAAA,MAAM,cAAc,GAAG,OAAO,SAAS,KAAK,QAAQ,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI,GAAG,SAAS;AAEnF,IAAA,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;QAC9F,aAAa;QACb,YAAY;QACZ,YAAY;AACb,KAAA,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAGW,iBAAW,CAAC,CAAC,IAAmB,KAAI;QAC3D,qBAAqB,CAAC,IAAI,CAAC;AAC7B,IAAA,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC;AAE3B,IAAA,MAAM,EAAE,aAAa,EAAE,GAAG,cAAc,CAAC;QACvC,KAAK;AACL,QAAA,WAAW,EAAE,WAAW;AACxB,QAAA,UAAU,EAAE,UAAU;QACtB,WAAW;QACX,eAAe;AAChB,KAAA,CAAC;AAEF,IAAA,MAAM,kBAAkB,GAAG,CAAC,CAAsC,KAAI;AACpE,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;QAC5B,cAAc,CAAC,KAAK,CAAC;AAErB,QAAA,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvB,aAAa,CAAC,EAAE,CAAC;QACnB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAwC,KAAI;QACvE,CAAC,CAAC,eAAe,EAAE;AACnB,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAClB,aAAa,CAAC,WAAW,CAAC;QAC5B;AACF,IAAA,CAAC;IAEDD,eAAS,CAAC,MAAK;AACb,QAAA,cAAc,CAAC,OAAO,GAAG,WAAW;AACpC,QAAA,gBAAgB,CAAC,OAAO,GAAG,aAAa;AAC1C,IAAA,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEhCA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAClC;QACF;AAEA,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,MAAK;AACjC,YAAA,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO;AACzC,YAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO;AAEpC,YAAA,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE;gBAC3B;YACF;YAEA,WAAW,CAAC,OAAO,GAAG,IAAI,oBAAoB,CAC5C,CAAC,CAAC,KAAK,CAAC,KAAI;gBACV,IACE,KAAK,CAAC,cAAc;oBACpB,CAAC,gBAAgB,CAAC,OAAO;oBACzB,CAAC,gBAAgB,CAAC,OAAO;oBACzB,cAAc,CAAC,OAAO,EACtB;AACA,oBAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;oBAC/B,cAAc,CAAC,OAAO,EAAE;gBAC1B;AACF,YAAA,CAAC,EACD;AACE,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,SAAS,EAAE,GAAG;AACd,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CACF;AAED,YAAA,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC,EAAE,EAAE,CAAC;AACN,QAAA,OAAO,MAAK;YACV,YAAY,CAAC,UAAU,CAAC;AACxB,YAAA,IAAI,WAAW,CAAC,OAAO,EAAE;AACvB,gBAAA,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE;AAChC,gBAAA,WAAW,CAAC,OAAO,GAAG,IAAI;YAC5B;AACF,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAEhCA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,oBAAoB,EAAE;AAClD,YAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK;QAClC;IACF,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;IAE/CA,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,IAAI,IAAI,CAAC,oBAAoB,IAAI,CAAC,WAAW,IAAI,aAAa,EAAE;YACnE;QACF;AAEA,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,MAAK;AAC5B,YAAA,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO;YACzC,IAAI,CAAC,SAAS,EAAE;gBACd;YACF;AAEA,YAAA,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,SAAS;YAEhD,IAAI,YAAY,IAAI,YAAY,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;AAC7D,gBAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;AAC/B,gBAAA,WAAW,EAAE;YACf;QACF,CAAC,EAAE,GAAG,CAAC;AAEP,QAAA,OAAO,MAAM,YAAY,CAAC,KAAK,CAAC;AAClC,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAElF,MAAM,cAAc,GAAGC,iBAAW,CAChC,CAAC,IAAmB,EAAE,GAAoB,KAAI;AAC5C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAE7D,IAAI,WAAW,EAAE;AACf,YAAA,QACE1F,eAAA,CAACoG,oBAAY,CAAC,GAAG,EAAA,EAAA,QAAA,EAAA,CACfpG,eAAA,CAACoG,oBAAY,CAAC,UAAU,EAAA,EACtB,SAAS,EAAErG,QAAM,CAAC,UAAU,EAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,aAEtB,IAAI,CAAC,IAAI,KACRG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,CACrD,EACDC,yBAAK,SAAS,EAAED,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,EACnD,IAAI,CAAC,OAAO,KACXG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,IAAI,CAAC,OAAO,EAAA,CAAQ,CAC3D,CAAA,EAAA,CACG,EACNG,cAAA,CAACmG,+BAAoB,EAAA,EAAC,SAAS,EAAEtG,QAAM,CAAC,WAAW,GAAI,CAAA,EAAA,CAC/B,EAE1BG,cAAA,CAACkG,oBAAY,CAAC,MAAM,EAAA,EAAA,QAAA,EAClBlG,cAAA,CAACkG,oBAAY,CAAC,UAAU,EAAA,EACtB,SAAS,EAAErG,QAAM,CAAC,UAAU,EAC5B,UAAU,EAAE,EAAE,EACd,gBAAgB,EAAE,EAAE,EAAA,QAAA,EAEnB,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,UAAU,KACxC,cAAc,CAAC,SAAS,EAAE,CAAA,EAAG,GAAG,IAAI,UAAU,CAAA,CAAE,CAAC,CAClD,GACuB,EAAA,CACN,CAAA,EAAA,EA3BD,GAAG,CA4BP;QAEvB;QACA,QACEG,eAAC,QAAQ,EAAA,EAEP,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,EAChC,QAAQ,EAAE,gBAAgB,EAAA,EAHrB,GAAG,CAIR;AAEN,IAAA,CAAC,EACD,CAAC,gBAAgB,EAAE,cAAc,CAAC,CACnC;AAED,IAAA,MAAM,kBAAkB,GAAG0F,YAAM,CAAC,KAAK,CAAC;AAExC,IAAA,MAAM,gBAAgB,GAAG,CAAC,OAAgB,KAAI;QAC5C,OAAO,CAAC,OAAO,CAAC;QAChB,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK;QAClC;AACF,IAAA,CAAC;AAED,IAAA,QACE5F,eAAA,CAACoG,oBAAY,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAA,QAAA,EAAA,CAC3DlG,eAACkG,oBAAY,CAAC,OAAO,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAAE,QAAQ,GAAwB,EAC/DlG,cAAA,CAACkG,oBAAY,CAAC,MAAM,cAClBpG,eAAA,CAACoG,oBAAY,CAAC,OAAO,EAAA,EACnB,SAAS,EAAE,IAAI,CAACrG,QAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAC1C,UAAU,EAAE,CAAC,EACb,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,MAAK,EAAG,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAC3D,iBAAiB,EAAE,MAAK,EAAG,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,EAC/D,gBAAgB,EAAE,CAAC,CAAC,KAAI;AACtB,wBAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;4BAC9B,CAAC,CAAC,cAAc,EAAE;AAClB,4BAAA,kBAAkB,CAAC,OAAO,GAAG,KAAK;wBACpC;AACF,oBAAA,CAAC,EACD,SAAS,EAAE,CAAC,CAAC,KAAI;wBACf,IAAI,MAAM,EAAE;4BACV,CAAC,CAAC,eAAe,EAAE;wBACrB;AACF,oBAAA,CAAC,EAAA,GACG,IAAI,EAAA,QAAA,EAAA,CAEP,MAAM,KACLG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,aAAa,EAAA,QAAA,EAClCG,eAAC,MAAM,EAAA,EACL,WAAW,EAAC,QAAQ,EACpB,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,mBAAmB,EAAA,CAC9B,GACE,CACP,EAEDF,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAED,QAAM,CAAC,YAAY,EAC9B,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,EAAA,QAAA,EAAA,CAEnC,aAAa,CAAC,MAAM,GAAG,CAAC,IACvB,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAC5B,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAA,KAAA,EAAQ,KAAK,CAAA,CAAE,CAAC,CACjE,KAEDG,wBAAK,SAAS,EAAEH,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,wBAAA,EAAA,CAA8B,CAChE,EACA,oBAAoB,IAAI,aAAa,KACpCG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAgC,CACnE,EACA,oBAAoB,KACnBG,cAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,WAAW,EAAA,sBAAA,EAAA,IAAA,EAEhB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAA,CAC9C,CACH,CAAA,EAAA,CACG,CAAA,EAAA,CACe,EAAA,CACH,CAAA,EAAA,CACJ;AAExB;;;;ACrQA,MAAM,KAAK,GAAyB,CAAC,EACnC,MAAM,GAAG,KAAK,EACd,OAAO,EACP,KAAK,EACL,QAAQ,EACR,aAAa,EACb,mBAAmB,GAAG,IAAI,EAC1B,SAAS,EACT,EAAE,EACF,MAAM,EACN,WAAW,EACX,UAAU,GAAG,KAAK,EAClB,GAAG,IAAI,EACR,KAAI;IACH,MAAM,UAAU,GAAGgF,gBAAK,CAAC,MAAM,CAAiB,IAAI,CAAC;AAErD,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAa,KAAU;QAC/C,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,OAAO,EAAE;QACX;AACF,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAQ,KAAU;QAC7C,CAAC,CAAC,cAAc,EAAE;AAClB,QAAA,UAAU,CAAC,OAAO,EAAE,KAAK,EAAE;AAC7B,IAAA,CAAC;AAED,IAAA,QACEhF,cAAA,CAACoG,cAAM,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAA,GAAM,IAAI,EAAA,QAAA,EACjEtG,eAAA,CAACsG,cAAM,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,CACZpG,cAAA,CAACoG,cAAM,CAAC,OAAO,EAAA,EAAC,SAAS,EAAEvG,QAAM,CAAC,YAAY,EAAA,CAAI,EAClDC,eAAA,CAACsG,cAAM,CAAC,OAAO,EAAA,EACb,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,IAAI,CAACvG,QAAM,CAAC,YAAY,EAAE,UAAU,IAAIA,QAAM,CAAC,0BAA0B,CAAC,EAAE,SAAS,CAAC,EACjG,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;AACL,wBAAA,sBAAsB,EAAE,WAAW;AACb,qBAAA,EACxB,iBAAiB,EAAE,CAAC,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,GAAG,SAAS,EAC/E,eAAe,EAAE,mBAAmB,EAAA,iBAAA,EACnB,EAAE,GAAG,CAAA,EAAG,EAAE,CAAA,MAAA,CAAQ,GAAG,aAAa,EACnD,QAAQ,EAAE,EAAE,EAAA,QAAA,EAAA,CAEZC,yBAAK,SAAS,EAAED,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC/B,KAAK,KACJG,eAACoG,cAAM,CAAC,KAAK,EAAA,EACX,SAAS,EAAEvG,QAAM,CAAC,UAAU,EAC5B,EAAE,EAAE,EAAE,GAAG,CAAA,EAAG,EAAE,QAAQ,GAAG,aAAa,EAAA,QAAA,EAErC,KAAK,EAAA,CACO,CAChB,EACA,aAAa,KACZG,cAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAM,aAAa,EAAA,CAAO,CAC3B,EACDA,cAAA,CAACoG,cAAM,CAAC,KAAK,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EACnBpG,cAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,QAAQ,QACR,IAAI,EAAEA,cAAA,CAACyF,2BAAgB,KAAG,EAC1B,IAAI,EAAC,IAAI,EACT,WAAW,EAAC,QAAQ,GACpB,EAAA,CACW,CAAA,EAAA,CACX,EACNzF,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,SAAS,YAC7B,QAAQ,EAAA,CACL,EACL,MAAM,KACLG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,MAAM,GAAO,CACnD,CAAA,EAAA,CACc,CAAA,EAAA,CACH,EAAA,CACJ;AAElB;;;;AC5EA,MAAM,QAAQ,GAA4B,CAAC,EACzC,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,aAAa,GAAG,CAAC,EACjB,IAAI,GAAG,IAAI,EACX,EAAE,EACF,cAAc,GAAG,CAAC,EAClB,SAAS,EACT,SAAS,EACT,QAAQ,GAAG,CAAC,EACZ,QAAQ,GAAG,IAAI,EACf,kBAAkB,GAAG,mBAAmB,EACxC,kBAAkB,GAAG,mBAAmB,EACxC,cAAc,GAAG,UAAU,EAC3B,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAClE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGgF,cAAQ,CAAS,YAAY,CAAC;IACxE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAC1C,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,CACrE;AACD,IAAA,MAAM,QAAQ,GAAGa,YAAM,CAAmB,IAAI,CAAC;AAE/C,IAAA,MAAM,SAAS,GAAG,cAAc,KAAK,SAAS,GAAG,cAAc,GAAG,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;AAE5G,IAAA,MAAM,UAAU,GAAGvF,aAAO,CAAC,MAAM,aAAa,IAAI,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACtF,IAAA,MAAM,UAAU,GAAGA,aAAO,CAAC,MAAM,aAAa,IAAI,QAAQ,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAEtF,IAAA,MAAM,aAAa,GAAG,CAAC,aAAsB,EAAE,cAAuB,KAAI;AACxE,QAAA,IAAI,aAAa,KAAK,SAAS,KAAK,aAAa,GAAG,CAAC,IAAI,aAAa,GAAG,EAAE,CAAC,EAAE;AAC5E,YAAA,OAAO,CAAC,IAAI,CAAC,uCAAuC,CAAC;QACvD;QACA,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,IAAI,CAAC,EAAE;AACvD,YAAA,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC;QACrD;AACF,IAAA,CAAC;IAEDoF,eAAS,CAAC,MAAK;AACb,QAAA,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC;IAENA,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;QAC7D,gBAAgB,CAAC,OAAO,CAAC;AACzB,QAAA,aAAa,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAC3E,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAEvD,IAAA,MAAM,SAAS,GAAGC,iBAAW,CAAC,MAAK;AACjC,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;QAE9D,gBAAgB,CAAC,QAAQ,CAAC;AAC1B,QAAA,aAAa,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3E,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACtB,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEpF,IAAA,MAAM,SAAS,GAAGA,iBAAW,CAAC,MAAK;AACjC,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAAC;QAE9D,gBAAgB,CAAC,QAAQ,CAAC;AAC1B,QAAA,aAAa,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3E,QAAA,QAAQ,GAAG,QAAQ,CAAC;AACtB,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAEpF,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAAC,CAAC,UAAkB,KAAY;QAC7D,IAAI,OAAO,EAAE;YACX,IAAI,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YAEhD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;AACjC,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,gBAAA,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD;YAEA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACjF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACxC;AAEA,YAAA,OAAO,QAAQ;QACjB;aAAO;YACL,IAAI,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAE/C,YAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;gBACnD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACxC;AAEA,YAAA,OAAO,QAAQ,IAAI,GAAG,CAAC;QACzB;AACF,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AACb,IAAA,MAAM,iBAAiB,GAAGA,iBAAW,CAAC,CAAC,KAA0C,KAAI;AACnF,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAEnC,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC;QAE3C,aAAa,CAAC,aAAa,CAAC;QAE5B,IAAI,aAAa,KAAK,EAAE,IAAI,aAAa,KAAK,GAAG,EAAE;AACjD,YAAA,QAAQ,GAAG,CAAC,CAAC;YACb;QACF;QAEA,IAAI,OAAO,EAAE;AACX,YAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBAC/B;YACF;AAEA,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,aAAa,CAAC;AAC7C,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACvB,gBAAA,QAAQ,GAAG,WAAW,CAAC;YACzB;QACF;aAAO;YACL,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;AAC/C,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACvB,gBAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;AACtE,gBAAA,QAAQ,GAAG,UAAU,CAAC;YACxB;QACF;AACF,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAGlE,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAAC,MAAK;AAClC,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,EAAE;QAEtC,IAAI,OAAO,EAAE;YACX,IAAI,YAAY,KAAK,EAAE,IAAI,YAAY,KAAK,GAAG,EAAE;gBAC/C,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBACnD;YACF;AAEA,YAAA,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC9B,gBAAA,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvD,gBAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;oBACrB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;oBACvD,aAAa,CAAC,cAAc,CAAC;oBAC7B,gBAAgB,CAAC,SAAS,CAAC;AAC3B,oBAAA,QAAQ,GAAG,SAAS,CAAC;gBACvB;gBACA;YACF;AAEA,YAAA,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,CAAC;AAC5C,YAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;AACvB,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;gBAC3E,MAAM,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC7D,aAAa,CAAC,cAAc,CAAC;gBAC7B,gBAAgB,CAAC,eAAe,CAAC;AACjC,gBAAA,QAAQ,GAAG,eAAe,CAAC;YAC7B;iBAAO;gBACL,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACrD;QACF;aAAO;AAEL,YAAA,IAAI,YAAY,KAAK,EAAE,EAAE;AACvB,gBAAA,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBACpC;YACF;YAEA,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC;AAC9C,YAAA,IAAI,KAAK,CAAC,WAAW,CAAC,EAAE;AACtB,gBAAA,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACtC;iBAAO;AACL,gBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC;AAC3E,gBAAA,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACtC,gBAAgB,CAAC,eAAe,CAAC;AACjC,gBAAA,QAAQ,GAAG,eAAe,CAAC;YAC7B;QACF;AACF,IAAA,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAG/F,IAAA,MAAM,kBAAkB,GAAGA,iBAAW,CACpC,CAAC,CAAwC,KAAI;AAC3C,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,QAAQ,CAAC,CAAC,GAAG;AACX,YAAA,KAAK,SAAS;gBACZ,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,SAAS,EAAE;gBACX;AAEF,YAAA,KAAK,WAAW;gBACd,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,SAAS,EAAE;gBACX;AAEF,YAAA,KAAK,OAAO;gBACV,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,oBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;gBACzB;gBACA;AAEF,YAAA,KAAK,QAAQ;gBACX,CAAC,CAAC,cAAc,EAAE;AAClB,gBAAA,IAAI,QAAQ,CAAC,OAAO,EAAE;AACpB,oBAAA,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AACrF,oBAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE;gBACzB;gBACA;AAEF,YAAA,KAAK,MAAM;gBACT,CAAC,CAAC,cAAc,EAAE;gBAClB,gBAAgB,CAAC,QAAQ,CAAC;AAC1B,gBAAA,aAAa,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC3E,gBAAA,QAAQ,GAAG,QAAQ,CAAC;gBACpB;AAEF,YAAA,KAAK,KAAK;gBACR,IAAI,CAAC,OAAO,EAAE;oBACZ,CAAC,CAAC,cAAc,EAAE;oBAClB,gBAAgB,CAAC,QAAQ,CAAC;AAC1B,oBAAA,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/B,oBAAA,QAAQ,GAAG,QAAQ,CAAC;gBACtB;gBACA;;IAEN,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACtG;IAED,MAAM,cAAc,GAAG,SAAS,KAAK,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC;AAE3F,IAAA,MAAM,QAAQ,GAAGvF,WAAK,EAAE;AACxB,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,QAAQ;IAE9B,QACEH,yBAAK,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,QAAQ,EAAE,EAAE,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,EAAE,SAAS,CAAC,KAAM,IAAI,EAAA,QAAA,EAAA,CACzFG,eAAC,MAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAA,IAAA,EACR,IAAI,EAAEA,cAAA,CAACqG,4BAAiB,KAAG,EAC3B,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAAA,YAAA,EACpB,kBAAkB,EAC9B,WAAW,EAAC,UAAU,EAAA,CACtB,EAEFrG,cAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,aAAa,EAAE,EAAE,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EACtE,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,kBAAkB,EAC7B,EAAE,EAAE,OAAO,EACX,IAAI,EAAE,SAAS,gBACH,cAAc,EAC1B,IAAI,EAAC,YAAY,mBACF,aAAa,EAAA,eAAA,EACb,QAAQ,EAAA,eAAA,EACR,QAAQ,EACvB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,EAC1C,IAAI,EAAE,cAAc,EAAA,CACpB,EACFG,eAAC,MAAM,EAAA,EACL,OAAO,EAAC,UAAU,EAClB,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAA,IAAA,EACR,OAAO,EAAE,SAAS,EAClB,QAAQ,EAAE,QAAQ,IAAI,UAAU,EAAA,YAAA,EACpB,kBAAkB,EAC9B,IAAI,EAAEA,cAAA,CAACsG,uBAAY,KAAG,EACtB,WAAW,EAAC,UAAU,EAAA,CACtB,CAAA,EAAA,CAEE;AAEV,CAAC;AAGD,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ;AAC7C,iBAAiB,CAAC,WAAW,GAAG,UAAU;;;;AC9R1C,MAAM,kBAAkB,GAAgC,CAAC,EACvD,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,eAAe,EACf,KAAK,EACL,GAAG,SAAS,EACb,KAAI;AACH,IAAA,MAAM,OAAO,GAAGZ,YAAM,CAAiB,IAAI,CAAC;AAE5C,IAAA,MAAM,oBAAoB,GAAG,CAAC,YAAuC,KAAI;AACvE,QAAA,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxC,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAsC,KAAI;AAC/D,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,eAAe,CAAC,CAAC,OAAO,CAAC;YACzB;QACF;AAEA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACzB,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,kBAAoC;YACzE,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;gBAC/D,WAAW,CAAC,KAAK,EAAE;YACrB;YACA;QACF;AAEA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE;YACvB,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,sBAAwC;YAC7E,IAAI,WAAW,IAAI,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE;gBAC/D,WAAW,CAAC,KAAK,EAAE;YACrB;YACA;QACF;AACF,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAAmC,KAAI;AAC1D,QAAA,IAAI,QAAQ;YAAE;AAEd,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAqB;AACtC,QAAA,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC;AACzC,YAAA,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;QAE9C,IAAI,CAAC,eAAe,EAAE;YACpB,CAAC,CAAC,cAAc,EAAE;AAClB,YAAA,eAAe,CAAC,CAAC,OAAO,CAAC;QAC3B;AACF,IAAA,CAAC;AAED,IAAA,QACE1F,cAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,YAAY,EAAE;AACnC,YAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;SAC5B,CAAC,EACF,IAAI,EAAC,QAAQ,mBACE,OAAO,EAAA,eAAA,EACP,QAAQ,EAAA,eAAA,EACR,OAAO,iBACT,CAAA,cAAA,EAAiB,KAAK,EAAE,EACrC,QAAQ,EAAE,QAAQ,GAAG,EAAE,GAAG,CAAC,EAC3B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,WAAW,EAAA,GAChB,SAAS,YAEbG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,eAAe,EAAA,QAAA,EACpCG,cAAA,CAAC,QAAQ,IACP,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,oBAAoB,EACrC,QAAQ,EAAE,QAAQ,EAClB,KAAK,EACHF,yBAAK,SAAS,EAAED,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,KAAK,YAAG,IAAI,EAAA,CAAQ,EAC3C,QAAQ,IAAIG,wBAAK,SAAS,EAAEH,QAAM,CAAC,QAAQ,YAAG,QAAQ,EAAA,CAAO,IAC1D,EAAA,CAER,EAAA,CACE,EAAA,CACF;AAEV,CAAC;AAED,kBAAkB,CAAC,WAAW,GAAG,oBAAoB;;AChFrD,MAAM,oBAAoB,GAAwC,CAAC,EACjE,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,cAAc,EACd,KAAK,GAAG,CAAC,GACV,KAAI;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGgF,cAAQ,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;IAC7D,MAAM,UAAU,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AAEtD,IAAA,MAAM,WAAW,GAAG,CAAC,CAAmB,KAAI;QAC1C,IAAI,WAAW,EAAE;YACf,CAAC,CAAC,cAAc,EAAE;YAClB,CAAC,CAAC,eAAe,EAAE;AACnB,YAAA,aAAa,CAAC,CAAC,UAAU,CAAC;QAC5B;aAAO;AACL,YAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QACtB;AACF,IAAA,CAAC;AAED,IAAA,QACE/E,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,uBAAuB,EACzC,KAAK,EAAE,EAAE,WAAW,EAAE,CAAA,EAAG,KAAK,GAAG,EAAE,CAAA,EAAA,CAAI,EAAE,EAAA,QAAA,EAEzCC,eAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,WAAW,EAAE;wBAClC,CAACA,QAAM,CAAC,QAAQ,GAAG,UAAU,IAAI,CAAC,WAAW;AAC7C,wBAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;qBACjC,CAAC,EACF,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,CAAC,CAAC,KAAI;AACf,wBAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE;4BACtC,CAAC,CAAC,cAAc,EAAE;4BAClB,WAAW,CAAC,CAAgC,CAAC;wBAC/C;oBACF,CAAC,EACD,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,CAAC,mBACjB,IAAI,CAAC,QAAQ,IAAI,SAAS,mBAC1B,UAAU,IAAI,CAAC,WAAW,GAAG,MAAM,GAAG,SAAS,EAAA,aAAA,EACjD,CAAA,YAAA,EAAe,IAAI,CAAC,KAAK,CAAA,CAAE,EAAA,QAAA,EAAA,CAEvC,OAAO,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAC9BG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,EAAA,CAAQ,CACjD,EAEDC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAChCG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,KAAK,EAAA,QAAA,EAAG,IAAI,CAAC,IAAI,GAAO,EAC9C,IAAI,CAAC,QAAQ,IAAIG,wBAAK,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,IAAI,CAAC,QAAQ,GAAO,CAAA,EAAA,CACpE,EAEL,WAAW,KACVG,yBAAM,SAAS,EAAEH,QAAM,CAAC,OAAO,YAC5B,UAAU,GAAGG,cAAA,CAACuE,+BAAoB,EAAA,EAAA,CAAG,GAAGvE,cAAA,CAAC0E,gCAAqB,EAAA,EAAA,CAAG,EAAA,CAC7D,CACR,CAAA,EAAA,CACG,EAAA,CACF,EAEL,WAAW,IAAI,UAAU,KACxB1E,wBAAK,SAAS,EAAEH,QAAM,CAAC,eAAe,EAAA,QAAA,EACnC,IAAI,CAAC,QAAS,CAAC,GAAG,CAAC,CAAC,KAAK,MACxBG,eAAC,oBAAoB,EAAA,EAEnB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,KAAK,EAAE,KAAK,GAAG,CAAC,EAAA,EALX,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,KAAK,CAM5B,CACH,CAAC,EAAA,CACE,CACP,CAAA,EAAA,CACA;AAEP,CAAC;;ACnFD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACjC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG,KAAI;IAC7F,QACEF,yBACE,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,WAAW,EAAE;AAClC,YAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;AAC5B,SAAA,CAAC,mBACa,QAAQ,IAAI,SAAS,EAAA,aAAA,EACvB,CAAA,YAAA,EAAe,KAAK,CAAA,CAAE,EACnC,GAAG,EAAE,GAAG,aAEP,OAAO,KAAK,MAAM,IAAI,IAAI,KACzBG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,IAAI,EAAA,QAAA,EAAG,IAAI,EAAA,CAAQ,CAC5C,EAEDC,eAAA,CAACyG,cAAM,CAAC,IAAI,EAAA,EACV,SAAS,EAAE,IAAI,CAAC1G,QAAM,CAAC,IAAI,EAAE;AAC3B,oBAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;AAC5B,iBAAA,CAAC,EACF,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,aAAa,EAAE,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,GAAG,SAAS,EAAA,GACtE,SAAS,EAAA,QAAA,EAAA,CAEbG,cAAA,CAACuG,cAAM,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE1G,QAAM,CAAC,KAAK,YAAG,IAAI,EAAA,CAAmB,EACjE,QAAQ,IAAIG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAAG,QAAQ,EAAA,CAAO,EAC9DG,cAAA,CAACuG,cAAM,CAAC,aAAa,EAAA,EAAC,SAAS,EAAE1G,QAAM,CAAC,aAAa,EAAA,CAAI,CAAA,EAAA,CAC7C,CAAA,EAAA,CACV;AAEV,CAAC,CACF;AAED,UAAU,CAAC,WAAW,GAAG,YAAY;;AClCrC,MAAM,YAAY,GAAgB;AAChC,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,WAAW,EAAE,EAAE;AACf,IAAA,UAAU,EAAE,EAAE;AACd,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,QAAQ,EAAE,KAAK;CAChB;AAED,SAAS,aAAa,CAAC,KAAkB,EAAE,MAAoB,EAAA;AAC7D,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,UAAU;YACb,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;AAC7C,QAAA,KAAK,qBAAqB;YACxB,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,MAAM,CAAC,OAAO,EAAE;AACrD,QAAA,KAAK,kBAAkB;YACrB,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE;AAClD,QAAA,KAAK,iBAAiB;YACpB,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE;AACjD,QAAA,KAAK,aAAa;YAChB,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;AAC9C,QAAA,KAAK,WAAW;YACd,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE;AAC/C,QAAA,KAAK,cAAc;AACjB,YAAA,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACtD,KAAK,UAAU,EAAE;AACf,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YAC7E,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;QAC9C;AACA,QAAA;AACE,YAAA,OAAO,KAAK;;AAElB;AAEM,SAAU,cAAc,CAAC,EAC7B,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,MAAM,GAAG,KAAK,EACd,aAAa,EACb,YAAY,EACZ,eAAe,GAAG,KAAK,EACvB,WAAW,EACX,WAAW,GAAG,KAAK,GACC,EAAA;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG2G,gBAAU,CAAC,aAAa,EAAE;AAClD,QAAA,GAAG,YAAY;QACf,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;AACpE,KAAA,CAAC;AAEF,IAAA,MAAM,cAAc,GAAGd,YAAM,CAAmB,IAAI,CAAC;AACrD,IAAA,MAAM,kBAAkB,GAAGA,YAAM,CAAwB,IAAI,CAAC;AAC9D,IAAA,MAAM,mBAAmB,GAAGA,YAAM,CAAU,KAAK,CAAC;AAClD,IAAA,MAAM,iBAAiB,GAAGA,YAAM,CAAS,EAAE,CAAC;AAE5C,IAAA,MAAM,kBAAkB,GAAGF,iBAAW,CACpC,CAAC,UAAkB,KAAI;AACrB,QAAA,IAAI,iBAAiB,CAAC,OAAO,KAAK,UAAU,EAAE;YAC5C;QACF;AAEA,QAAA,iBAAiB,CAAC,OAAO,GAAG,UAAU;AAEtC,QAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC9B,YAAA,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;QAC1C;AAEA,QAAA,kBAAkB,CAAC,OAAO,GAAG,UAAU,CAAC,MAAK;AAC3C,YAAA,IAAI,eAAe,IAAI,WAAW,EAAE;gBAClC,WAAW,CAAC,UAAU,CAAC;YACzB;QACF,CAAC,EAAE,GAAG,CAAC;AACT,IAAA,CAAC,EACD,CAAC,eAAe,EAAE,WAAW,CAAC,CAC/B;IAEDD,eAAS,CAAC,MAAK;QACb,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE;QACrE,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC/D,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEXA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,EAAE;YAC1B,UAAU,CAAC,MAAK;AACd,gBAAA,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE;YACjC,CAAC,EAAE,CAAC,CAAC;QACP;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE1BA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClC,YAAA,mBAAmB,CAAC,OAAO,GAAG,KAAK;AACnC,YAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE;QAChC;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAElBA,eAAS,CAAC,MAAK;QACb,IAAI,KAAK,CAAC,MAAM,IAAI,eAAe,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE;AACnE,YAAA,mBAAmB,CAAC,OAAO,GAAG,IAAI;YAClC,IAAI,WAAW,EAAE;gBACf,WAAW,CAAC,EAAE,CAAC;AACf,gBAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE;YAChC;QACF;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IAEhDA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,eAAe,IAAI,KAAK,CAAC,MAAM,EAAE;YACnC,IAAI,iBAAiB,CAAC,OAAO,KAAK,KAAK,CAAC,UAAU,EAAE;AAClD,gBAAA,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC;YACtC;QACF;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAEzEA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,eAAe,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,KAAK,EAAE,EAAE;AAC1F,YAAA,IAAI,iBAAiB,CAAC,OAAO,KAAK,EAAE,EAAE;AACpC,gBAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE;gBAC9B,IAAI,WAAW,EAAE;oBACf,WAAW,CAAC,EAAE,CAAC;gBACjB;YACF;QACF;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAErFA,eAAS,CAAC,MAAK;AACb,QAAA,OAAO,MAAK;AACV,YAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC9B,gBAAA,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAC1C;AACA,YAAA,mBAAmB,CAAC,OAAO,GAAG,KAAK;AACnC,YAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE;AAChC,QAAA,CAAC;IACH,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,OAAO,GAAG,CAAC,IAAa,KAAI;QAChC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC7C,QAAA,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,IAAI,EAAE;AACT,YAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;QACvD;AACF,IAAA,CAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,MAAgB,KAAI;QAC7C,QAAQ,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC5D,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,KAAa,KAAI;QACvC,QAAQ,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACxD,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;QACrC,QAAQ,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACtD,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,OAAgB,KAAI;QACtC,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACrD,IAAA,CAAC;AAED,IAAA,MAAM,QAAQ,GAAG,CAAC,KAAc,KAAI;QAClC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjD,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;AAClC,QAAA,iBAAiB,CAAC,OAAO,GAAG,EAAE;AAChC,IAAA,CAAC;IAED,MAAM,QAAQ,GAAG,MAAK;AACpB,QAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC;AACvD,IAAA,CAAC;AAED,IAAA,MAAM,kBAAkB,GAAG,CAAC,QAAgB,KAAI;AAC9C,QAAA,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC;QAC5B,iBAAiB,CAAC,SAAS,CAAC;AAC5B,QAAA,aAAa,GAAG,QAAQ,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC;AAEd,QAAA,IAAI,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE;YAC9B,QAAQ,CAAC,KAAK,CAAC;QACjB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,SAAiB,EAAE,OAAgB,KAAI;AACnE,QAAA,IAAI,iBAA2B;QAE/B,IAAI,OAAO,EAAE;YACX,iBAAiB,GAAG,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,SAAS,CAAC;QAC1D;aAAO;AACL,YAAA,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,SAAS,CAAC;QAC7E;QAEA,iBAAiB,CAAC,iBAAiB,CAAC;AACpC,QAAA,aAAa,GAAG,iBAAiB,CAAC;AAElC,QAAA,IAAI,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,QAAQ,CAAC,KAAK,CAAC;QACjB;AACF,IAAA,CAAC;IAED,MAAM,cAAc,GAAG,CACrB,cAAwB,EACxB,WAAmB,EACnB,OAAe,EACf,KAAwB,KACd;AACV,QAAA,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,OAAO,WAAW;AAEnD,QAAA,IAAI,OAAO,KAAK,UAAU,EAAE;YAC1B,MAAM,aAAa,GAAG;AACnB,iBAAA,GAAG,CAAC,CAAC,KAAK,KAAI;AACb,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC;AACvD,gBAAA,OAAQ,IAAI,EAAE,IAAe,IAAI,KAAK;AACxC,YAAA,CAAC,CAAC;AAEJ,YAAA,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,gBAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACvD,gBAAA,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;AAC1C,gBAAA,OAAO,CAAA,EAAG,UAAU,CAAA,QAAA,EAAW,SAAS,EAAE;YAC5C;AAEA,YAAA,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC;QAEA,QACG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE,IAAe;AACxE,YAAA,cAAc,CAAC,CAAC,CAAC;AAErB,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CACvB,KAAwB,EACxB,UAAkB,KACG;QACrB,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK;AAE7B,QAAA,MAAM,oBAAoB,GAAG,UAAU,CAAC,WAAW,EAAE;AACrD,QAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;YAC3B,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/C,YAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAC9B,kBAAE,aAAa,CAAC,IAAI,CAAC,QAAQ;kBAC3B,EAAE;YACN,MAAM,eAAe,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAEjD,YAAA,QACE,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AAC7C,gBAAA,kBAAkB,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AACjD,gBAAA,eAAe,CAAC,QAAQ,CAAC,oBAAoB,CAAC;AAElD,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;IAED,OAAO;QACL,KAAK;AACL,QAAA,OAAO,EAAE;YACP,OAAO;YACP,iBAAiB;YACjB,cAAc;YACd,aAAa;YACb,UAAU;YACV,QAAQ;YACR,WAAW;YACX,QAAQ;YACR,kBAAkB;YAClB,oBAAoB;AACrB,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,WAAW,EAAE,EAAE;AACf,YAAA,aAAa,EAAE,EAAE;AAClB,SAAA;AACD,QAAA,IAAI,EAAE;YACJ,cAAc;AACf,SAAA;AACD,QAAA,KAAK,EAAE;YACL,cAAc;YACd,gBAAgB;AACjB,SAAA;KACF;AACH;;ACxRA,MAAM,MAAM,GAA0B,CAAC,EACrC,KAAK,EACL,aAAa,EACb,YAAY,EACZ,OAAO,EACP,QAAQ,GAAG,KAAK,EAChB,KAAK,EAEL,KAAK,EACL,UAAU,EACV,WAAW,GAAG,WAAW,EACzB,QAAQ,EACR,MAAM,GAAG,KAAK,EACd,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,MAAM,EACrB,OAAO,GAAG,KAAK,EACf,WAAW,EACX,IAAI,GAAG,QAAQ,EAChB,KAAK,GAAG,OAAO,EACd,oBAAoB,GAAG,KAAK,EAC5B,WAAW,EACX,aAAa,GAAG,KAAK,EACrB,eAAe,GAAG,KAAK,EACvB,WAAW,EACX,WAAW,GAAG,KAAK,EACnB,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,WAAW,GAAGtF,WAAK,EAAE;AAC3B,IAAA,MAAM,QAAQ,GAAG,CAAA,OAAA,EAAU,WAAW,EAAE;AACxC,IAAA,MAAM,WAAW,GAAGyF,YAAM,CAAiB,IAAI,CAAC;AAChD,IAAA,MAAM,gBAAgB,GAAGA,YAAM,CAAU,KAAK,CAAC;IAE/C,MAAM,EACJ,KAAK,EACL,OAAO,EACP,IAAI,EACJ,KAAK,GACN,GAAG,cAAc,CAAC;QACjB,KAAK;QACL,QAAQ;QACR,MAAM;QACN,aAAa;QACb,YAAY;QACZ,eAAe;QACf,WAAW;QACX,WAAW;AACZ,KAAA,CAAC;IAEFH,eAAS,CAAC,MAAK;AACb,QAAA,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO;AACpC,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,oBAAoB;YAAE;QAExC,MAAM,YAAY,GAAG,MAAK;YACxB,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,QAAQ;YAC1D,MAAM,UAAU,GAAG,SAAS,GAAG,YAAY,IAAI,YAAY,GAAG,CAAC;AAE/D,YAAA,IAAI,UAAU,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,WAAW,IAAI,CAAC,aAAa,EAAE;AAC5E,gBAAA,gBAAgB,CAAC,OAAO,GAAG,IAAI;AAC/B,gBAAA,WAAW,EAAE;YACf;AAAO,iBAAA,IAAI,CAAC,UAAU,IAAI,gBAAgB,CAAC,OAAO,EAAE;AAClD,gBAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK;YAClC;AACF,QAAA,CAAC;AAED,QAAA,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAEjD,QAAA,OAAO,MAAK;AACV,YAAA,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACtD,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAEpEA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,oBAAoB,EAAE;AACxC,YAAA,gBAAgB,CAAC,OAAO,GAAG,KAAK;QAClC;IACF,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAExC,IAAA,MAAM,WAAW,GAAGpF,aAAO,CACzB,MAAM,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,CAAC,EAC7E,CAAC,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAC3D;AAED,IAAA,MAAM,aAAa,GAAGA,aAAO,CAAC,MAAK;AACjC,QAAA,MAAM,YAAY,GAAG,eAAe,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW;QAC3E,OAAO,KAAK,CAAC,gBAAgB,CAAC,KAAK,EAAE,YAAY,CAAC;AACpD,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AAExE,IAAA,MAAM,cAAc,GAAGA,aAAO,CAAC,OAAO;QACpC,QAAQ,EAAE,QAAQ,GAAG,CAAA,EAAG,QAAQ,CAAA,EAAA,CAAI,GAAG,SAAS;AACjD,KAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEf,IAAA,MAAM,kBAAkB,GAAG,CAAC,CAAsC,KAAI;AACpE,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAC5B,QAAA,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;QAE7B,IAAI,eAAe,EAAE;AACnB,YAAA,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC9B;AACF,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAwC,KAAI;QACvE,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;QAE1F,IAAI,CAAC,eAAe,EAAE;YACpB,CAAC,CAAC,eAAe,EAAE;YACnB;QACF;AAEA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE;AAChD,YAAA,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;AACrB,YAAA,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;YACtB;QACF;AAAO,aAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC7B,CAAC,CAAC,cAAc,EAAE;YAClB,OAAO,CAAC,WAAW,EAAE;QACvB;AACF,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACvB,OAAO,CAAC,WAAW,EAAE;AACrB,QAAA,IAAI,eAAe,IAAI,WAAW,EAAE;YAClC,WAAW,CAAC,EAAE,CAAC;QACjB;AACF,IAAA,CAAC;AAED,IAAA,QACEH,cAAA,CAACyG,cAAW,CAAC,IAAI,IACf,KAAK,EAAE,OAAO,KAAK,UAAU,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAChG,aAAa,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC,kBAAkB,EAC9E,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,KAAK,CAAC,MAAM,EAClB,YAAY,EAAE,OAAO,CAAC,OAAO,EAC7B,QAAQ,EAAE,QAAQ,KACd,IAAI,EAAA,QAAA,EAER3G,yBACE,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAC5C,KAAK,EAAE,cAAc,EAAA,aAAA,EACR,MAAM,EAAA,QAAA,EAAA,CAEnBG,wBAAK,SAAS,EAAEH,QAAM,CAAC,cAAc,YACnCC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCG,cAAA,CAAC,cAAc,IACb,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EACtC,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAEjB,KAAK,EAAA,CACS,EAEjBF,gBAAC2G,cAAW,CAAC,OAAO,EAAA,EAClB,SAAS,EAAE,IAAI,CAAC5G,QAAM,CAAC,OAAO,EAAE;oCAC9B,CAACA,QAAM,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO;AAC/C,oCAAA,CAACA,QAAM,CAAC,QAAQ,GAAG,QAAQ;oCAC3B,CAACA,QAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;AAClD,oCAAA,CAACA,QAAM,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM;AAC5B,iCAAA,CAAC,EACF,EAAE,EAAE,QAAQ,EAAA,YAAA,EACA,SAAS,iBACR,CAAA,EAAG,MAAM,UAAU,EAAA,QAAA,EAAA,CAE/B,OAAO,KAAK,UAAU,IACrBG,yBAAM,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAAG,WAAW,GAAQ,KAEzDG,eAACyG,cAAW,CAAC,KAAK,EAAA,EAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE5G,QAAM,CAAC,WAAW,YAAG,WAAW,EAAA,CAAqB,CAC9G,EACA,KAAK,CAAC,MAAM,GAAGG,cAAA,CAACwE,6BAAkB,EAAA,EAAA,CAAG,GAAGxE,cAAA,CAACuE,+BAAoB,EAAA,EAAA,CAAG,CAAA,EAAA,CAC7C,EAErB,CAAC,KAAK,CAAC,MAAM,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,QAAQ,KAC7CvE,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,IAAI,CACnBH,QAAM,CAAC,MAAM,EACb;AACE,oCAAA,CAACA,QAAM,CAAC,QAAQ,GAAG;AACpB,iCAAA,CACF,YAAG,UAAU,EAAA,CAAQ,CACvB,EAEA,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,KAC9BG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,YAAY,EAAA,QAAA,EACjC,YAAY,IAAI,mBAAmB,GAC/B,CACR,CAAA,EAAA,CACG,GACF,EAENG,cAAA,CAACyG,cAAW,CAAC,MAAM,cACjB3G,eAAA,CAAC2G,cAAW,CAAC,OAAO,EAAA,EAClB,SAAS,EAAE5G,QAAM,CAAC,OAAO,EACzB,QAAQ,EAAC,QAAQ,EACjB,IAAI,EAAC,QAAQ,EACb,UAAU,EAAE,CAAC,EACb,KAAK,EAAC,OAAO,EACb,eAAe,EAAE,IAAI,EAAA,QAAA,EAAA,CAEpB,MAAM,KACLG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,aAAa,EAAA,QAAA,EAClCG,eAAC,MAAM,EAAA,EACL,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,SAAS,EAAEH,QAAM,CAAC,MAAM,EACxB,WAAW,EAAC,QAAQ,EACpB,KAAK,EAAE,KAAK,CAAC,WAAW,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,WAAW,EAAA,aAAA,EACP,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS,EAAA,CAC/B,GACE,CACP,EAEDG,eAACyG,cAAW,CAAC,QAAQ,EAAA,EAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE5G,QAAM,CAAC,QAAQ,EAAA,aAAA,EAAe,MAAM,GAAG,CAAA,EAAG,MAAM,WAAW,GAAG,SAAS,EAAA,QAAA,EACxHG,eAACyG,cAAW,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE5G,QAAM,CAAC,KAAK,EAAA,QAAA,EACvC,aAAa,CAAC,MAAM,KAAK,CAAC,IACzBG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,6BAAA,EAAA,CAE1B,KAENC,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AAC1B,gDAAA,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gDAE7D,IAAI,WAAW,EAAE;oDACf,QACEJ,eAAC,oBAAoB,EAAA,EAEnB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,QAAQ,EAAE,CAAC,KAAK,KAAI;AAClB,4DAAA,IAAI,OAAO,KAAK,UAAU,EAAE;gEAC1B,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC;gEACvD,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC;4DAClD;iEAAO;AACL,gEAAA,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;4DACnC;wDACF,CAAC,EAAA,EAXI,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAY1B;gDAEN;AAEA,gDAAA,OAAO,OAAO,KAAK,UAAU,IAC3BA,cAAA,CAAC,kBAAkB,EAAA,EAAA,GAEb,IAAI,EACR,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAClD,eAAe,EAAE,CAAC,OAAgB,KAChC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAA,EAJ9C,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAM1B,KAEFA,eAAC,UAAU,EAAA,EAAA,GAEL,IAAI,EACR,OAAO,EAAE,OAAO,EAChB,mBAAmB,EAAE,MAAM,EAAA,EAHtB,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAI1B,CACH;4CACH,CAAC,CAAC,EACD,oBAAoB,IAAI,aAAa,KACpCA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,0BAAA,EAAA,CAE5B,CACP,CAAA,EAAA,CACA,CACJ,EAAA,CACiB,EAAA,CACC,IACH,EAAA,CACH,CAAA,EAAA,CACjB,EAAA,CACW;AAEvB;AAEA,MAAM,CAAC,WAAW,GAAG,QAAQ;;;;AC1S7B;;;;AAIG;AACH,MAAM,iBAAiB,GAAa,OAClCC,eAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAA,QAAA,EAAA,CAChGE,cAAA,CAAA,QAAA,EAAA,EAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,SAAS,GAAG,EAChDA,cAAA,CAAA,MAAA,EAAA,EACE,CAAC,EAAC,k+BAAk+B,EACp+B,IAAI,EAAC,SAAS,EAAA,CACd,CAAA,EAAA,CACE,CACP;;ACbD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG,WAAW;AAC1B,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,QAAQ,CAAC;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,IAAI,CAAC,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,QAAQ,CAAC;AACT,IAAI,OAAO,CAAC,CAAC;AACb;;AAEA,IAAI,GAAG,IAAI,YAAY;AACvB,IAAI,OAAO,IAAI,CAAC,MAAM;AACtB,SAAS,QAAQ,CAAC,EAAE;AACpB,SAAS,SAAS,CAAC,CAAC,CAAC;AACrB,CAAC,CAAC;;AAEF,IAAI,GAAG,GAAG,UAAU,EAAE,EAAE;AACxB,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,eAAe,GAAG,EAAE,KAAK,MAAM,GAAG,SAAS,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,eAAe,GAAG,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,aAAa,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,MAAM,GAAG,KAAK,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,KAAK,MAAM,GAAG,YAAY,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,GAAG,EAAE,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;AAC99B,IAAI,IAAI,OAAO,GAAG,SAAS,IAAI,GAAG,EAAE;AACpC,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;AAC5C,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACzD,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;AAC5C,IAAI,IAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI;AAC3D,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;AACnC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,GAAG,EAAE,EAAE,IAAI,CAAC;AAClD,IAAI,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC;AAC3C,IAAI,QAAQ0G,mBAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;AAC5I,QAAQ,KAAK,GAAGA,mBAAa,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,GAAG,IAAI;AACpE,QAAQ,UAAU,IAAIC,oBAAc,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,IAAI;AACpE,QAAQD,mBAAa,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACvO,QAAQA,mBAAa,CAAC,MAAM,EAAE,IAAI;AAClC,YAAYA,mBAAa,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC;AAC/D,YAAYA,mBAAa,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,iBAAiB,EAAE,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE;AACjH,gBAAgBA,mBAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AACnH,gBAAgBA,mBAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AACpH,gBAAgBA,mBAAa,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AACrH,gBAAgB,OAAO,KAAKA,mBAAa,CAAC,kBAAkB,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAChN,CAAC;;AAED,IAAI,aAAa,GAAG,UAAU,KAAK,EAAE;AACrC,IAAI,OAAO,KAAK,CAAC,QAAQ,GAAGA,mBAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,GAAGA,mBAAa,CAAC,0BAA0B,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACpI,CAAC;;AAED,IAAI,0BAA0B,GAAG,UAAU,KAAK,EAAE,EAAE,QAAQA,mBAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,KAAK,CAAC;AACpI,IAAIA,mBAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AACjF,IAAIA,mBAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClF,IAAIA,mBAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClF,IAAIA,mBAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClF,IAAIA,mBAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC;AAClF,IAAIA,mBAAa,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;;AC5EjE;;;;;AAKG;AACH,MAAM,UAAU,GAAkC,CAAC,KAAK,MACtD5G,eAAA,CAAC,aAAa,IACZ,KAAK,EAAE,CAAC,EACR,KAAK,EAAC,MAAM,EACZ,OAAO,EAAC,cAAc,EACtB,eAAe,EAAC,SAAS,EACzB,eAAe,EAAC,SAAS,EAAA,GACrB,KAAK,EAAA,QAAA,EAAA,CAGTE,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAG3DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC7DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC5DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC/DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC/DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC/DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC7DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAG9DA,yBAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,yBAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC5DA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,EAC7DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EACjEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,EAG9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC5DA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,yBAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC7DA,yBAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EACjEA,yBAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAG9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC5DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC7DA,yBAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EACjEA,yBAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAG9DA,yBAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,yBAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC5DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,EAC7DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,GAAG,EACjEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAG9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC5DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAChEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAC7DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EACjEA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,EAG9DA,cAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,IAAI,EAAA,CAAG,CAAA,EAAA,CAC/C,CACjB;;ACpFD,MAAM,YAAY,GAAG,CACnB,UAAe,EACf,YAA4C,KAC1C;IACF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG6E,cAAQ,CAAsB,EAAE,CAAC;AACzE,IAAA,MAAM,YAAY,GAAG,YAAY,EAAE,eAAe,IAAI,YAAY;AAClE,IAAA,MAAM,WAAW,GAAG1E,aAAO,CAAC,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;AAExE,IAAA,MAAM,YAAY,GAAGqF,iBAAW,CAAC,CAAC,OAA4B,KAAI;QAChE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAQ;AAE/E,QAAA,IAAI,YAAY,EAAE,eAAe,KAAK,SAAS,EAAE;YAC/C,YAAY,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC;QAC3C;aAAO;YACL,eAAe,CAAC,OAAO,CAAC;YACxB,YAAY,EAAE,QAAQ,GAAG,OAAO,EAAE,OAAO,CAAC;QAC5C;AACF,IAAA,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAE9B,IAAA,MAAM,SAAS,GAAGA,iBAAW,CAAC,CAAC,GAAoB,KAAI;AACrD,QAAA,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG;AACjC,cAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG;AACpC,cAAE,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC;QAC1B,YAAY,CAAC,OAAO,CAAC;IACvB,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAE7C,MAAM,cAAc,GAAGrF,aAAO,CAAC,OAC7B;SACG,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,GAAG,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;SACjG,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ;AAClC,SAAA,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,CAAC,CAC7B,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAE9B,IAAA,MAAM,SAAS,GAAGqF,iBAAW,CAAC,MAAK;AACjC,QAAA,MAAM,uBAAuB,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG;AACd,cAAE,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAW,CAAC;AAChE,cAAE,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC;QACtD,YAAY,CAAC,OAAO,CAAC;IACvB,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAE7D,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChG,MAAM,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;IAEtF,OAAO;QACL,WAAW;QACX,YAAY;QACZ,SAAS;QACT,SAAS;QACT,aAAa;QACb,eAAe;KAChB;AACH,CAAC;AAED,MAAM,UAAU,GAAG,CAAwC,MAAsB,EAAE,GAAM,EAAE,KAAa,KAAe;AACrH,IAAA,IAAI,MAAM,CAAC,MAAM,EAAE;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC;IAClC;IAEA,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAE7B,IAAA,QAAQ,MAAM,CAAC,IAAI;AACjB,QAAA,KAAK,UAAU;AACb,YAAA,IAAI,CAAC,KAAK;AAAE,gBAAA,OAAO,EAAE;AACrB,YAAA,IAAI;AACF,gBAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC5B,gBAAA,OAAOlD,cAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,IAAI,YAAY,EAAE,EAAE,MAAM,EAAEF,MAAI,EAAE,CAAC;YACtE;AAAE,YAAA,MAAM;AACN,gBAAA,OAAO,KAAK;YACd;AACF,QAAA;AACE,YAAA,OAAO,KAAK;;AAElB,CAAC;AAED,MAAM,KAAK,GAAG,CAAwC,EACpD,OAAO,EACP,UAAU,EACV,SAAS,EACT,OAAO,GAAG,KAAK,EACf,YAAY,EACZ,MAAM,EACN,KAAK,EACL,GAAG,IAAI,EACO,KAAI;AAClB,IAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;AACzD,QAAA,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC;AAC5D,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,YAAY,CACxF,UAAU,EACV,YAAY,CACb;AAED,IAAA,MAAM,YAAY,GAAGjC,aAAO,CAAC,MAAK;AAChC,QAAA,IAAI,CAAC,YAAY;AAAE,YAAA,OAAO,OAAO;AAEjC,QAAA,MAAM,cAAc,GAAmB;AACrC,YAAA,GAAG,EAAE,cAAc;YACnB,KAAK,GACDH,cAAA,CAAC,QAAQ,EAAA,EACP,OAAO,EAAE,aAAa,IAAI,eAAe,EACzC,aAAa,EAAE,eAAe,EAC9B,eAAe,EAAE,SAAS,EAC1B,QAAQ,EAAE,YAAY,CAAC,gBAAgB,EAAA,CACvC,CACH;AACD,YAAA,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;AACnB,gBAAA,MAAM,KAAK,GAAG,YAAY,CAAC,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE;AAC7E,gBAAA,QACEA,cAAA,CAAC,QAAQ,EAAA,EACP,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAC/B,eAAe,EAAE,MAAM,SAAS,CAAC,KAAK,CAAC,EACvC,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAA,CACxB;YAER,CAAC;AACD,YAAA,KAAK,EAAE,QAAQ;SAChB;AAED,QAAA,OAAO,CAAC,cAAc,EAAE,GAAG,OAAO,CAAC;AACrC,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAC1G,IAAA,MAAM,OAAO,GAAGG,aAAO,CAAC,MACtB,CAAA,MAAA,EAAS,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,EAAE,EAAE,CACvD;IACD,IAAI,OAAO,EAAE;QACX,QACEH,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EAAA,QAAA,EACpDG,wBAAK,SAAS,EAAEH,QAAM,CAAC,WAAW,EAAA,QAAA,EAChCG,cAAA,CAAC,UAAU,EAAA,EAAA,CAAG,EAAA,CACV,EAAA,CACF;IAEV;IAEA,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,KACjCF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,iBAAiB,EAAA,QAAA,EACtCG,cAAA,CAAC,iBAAiB,EAAA,EAAA,CAAG,EAAA,CACjB,EACNF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,cAAc,aACnCG,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEH,QAAM,CAAC,eAAe,uCAA6B,EAClEG,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEH,QAAM,CAAC,iBAAiB,EAAA,QAAA,EAAA,4BAAA,EAAA,CAAgC,CAAA,EAAA,CAClE,CAAA,EAAA,CACF,CACP;AAED,IAAA,QACEG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,cAAc,EAAE,SAAS,CAAC,EAAA,GAAM,IAAI,EAAA,QAAA,EAC9DG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACvCC,2BACE,SAAS,EAAED,QAAM,CAAC,KAAK,EACvB,IAAI,EAAC,OAAO,EAAA,YAAA,EACD,iBAAiB,EAAA,kBAAA,EACV,OAAO,GAAG,CAAA,EAAG,OAAO,CAAA,QAAA,CAAU,GAAG,SAAS,EAAA,eAAA,EAC7C,UAAU,CAAC,MAAM,GAAG,CAAC,EAAA,QAAA,EAAA,CAEpCG,cAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAA,QAAA,EAChCG,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACG,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,MACvBA,cAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,CAAA,KAAA,EAAQ,MAAM,CAAC,KAAK,CAAA,CAAE,CAAC,EACvE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAA,QAAA,EAEnBG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,QAAA,EAAG,MAAM,CAAC,KAAK,EAAA,CAAO,EAAA,EAJtD,MAAM,CAAC,GAAG,CAKZ,CACN,CAAC,EAAA,CACC,EAAA,CACC,EACRG,cAAA,CAAA,OAAA,EAAA,EAAO,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAA,QAAA,EAC/B,UAAU,CAAC,MAAM,GAAG,CAAC,IACpB,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;4BAC5B,MAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE;AAC1C,4BAAA,QACEG,cAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EACpD,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAA,QAAA,EAEpC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,MACvBG,cAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,QAAQ,MAAM,CAAC,KAAK,CAAA,CAAE,CAAC,EAAA,QAAA,EAEtE,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,IAH1B,MAAM,CAAC,GAAG,CAIZ,CACN,CAAC,EAAA,EAZG,KAAK,CAaP;AAET,wBAAA,CAAC,CAAC,KAEFG,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,cAAA,CAAA,IAAA,EAAA,EAAI,OAAO,EAAE,YAAY,CAAC,MAAM,EAAE,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,QAAA,EAC/D,SAAS,EAAA,CACP,EAAA,CACF,CACN,EAAA,CACK,CAAA,EAAA,CACF,EAAA,CACJ,EAAA,CACF;AAEV;;AC/KA,MAAM,gBAAgB,GAAG,CAAC,MAAkB,KAAkC;AAC5E,IAAA,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU;AACnC,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,MAAkB,KAAkC;AAC5E,IAAA,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM;AACvF,CAAC;AAeD,MAAM,WAAW,GAA+B,CAAC,EAC/C,WAAW,GAAG,EAAE,EAChB,cAAc,EACd,QAAQ,EACR,iBAAiB,GAAG,cAAc,EAClC,UAAU,GAAG,IAAI,EACjB,WAAW,GAAG,KAAK,EACnB,OAAO,EACP,WAAW,GAAG,EAAE,EAChB,SAAS,GAAG,EAAE,EACd,GAAG,IAAI,EACR,KAAI;IACH,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAGgF,cAAQ,CAAC,WAAW,CAAC;AAE3E,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;QACnB,sBAAsB,CAAC,WAAW,CAAC;AACrC,IAAA,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAEjB,IAAA,MAAM,iBAAiB,GAAG,CAAC,CAAsC,KAAI;AACnE,QAAA,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;QAC5B,sBAAsB,CAAC,KAAK,CAAC;AAE7B,QAAA,IAAI,KAAK,KAAK,EAAE,IAAI,cAAc,EAAE;YAClC,cAAc,CAAC,EAAE,CAAC;QACpB;AACF,IAAA,CAAC;AAED,IAAA,MAAM,aAAa,GAAG,CAAC,CAAkC,KAAI;AAC3D,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAClB,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,mBAAmB,CAAC;YAC/B;iBAAO,IAAI,cAAc,EAAE;gBACzB,cAAc,CAAC,mBAAmB,CAAC;YACrC;QACF;AACF,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,OAAO,KAAK,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAErE,IAAA,QACE/E,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAA,EAAGD,QAAM,CAAC,WAAW,CAAA,CAAA,EAAI,SAAS,CAAA,CAAE,CAAC,IAAI,EAAE,EAAA,GAAM,IAAI,EAAA,QAAA,EAAA,CAClE,UAAU,KAAK,cAAc,IAAI,QAAQ,CAAC,KACzCG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,0BAA0B,EAAA,QAAA,EAC/CG,cAAA,CAAC,MAAM,EAAA,EACL,KAAK,EAAE,mBAAmB,EAC1B,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,iBAAiB,EAC9B,SAAS,EAAEH,QAAM,CAAC,iBAAiB,EAAA,CACnC,EAAA,CACE,CACP,EAEA,WAAW,KACVG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACtC,UAAU,IACTC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,yBAAyB,EAAA,QAAA,EAAA,CAC7C,OAAO,KACNG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,wBAAwB,EAAA,QAAA,EAC5C,OAAO,EAAA,CACJ,CACP,EAEDC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,yBAAyB,EAAA,QAAA,EAAA,CAC9CG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,sBAAsB,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,EAE9DG,wBAAK,SAAS,EAAEH,QAAM,CAAC,sBAAsB,EAAA,QAAA,EAC1C,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,KAAI;AACpD,wCAAA,MAAM,WAAW,GAAG;4CAClB,UAAU,EAAE,UAAU,CAAC,UAAU;4CACjC,IAAI,EAAE,UAAU,CAAC,IAAI;4CACrB,IAAI,EAAE,UAAU,CAAC,IAAI;4CACrB,KAAK,EAAE,UAAU,CAAC,KAAK;4CACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7B,4CAAA,OAAO,EAAE,UAAmB;4CAC5B,MAAM,EAAE,MAAM,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;4CACzC,OAAO,EAAE,MAAM,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;yCAC5C;AACD,wCAAA,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE;4CAChC,QACEG,cAAA,CAAC,MAAM,EAAA,EAAA,GAED,WAAW,EACf,IAAI,EAAC,UAAU,EACf,YAAY,EAAE,UAAU,CAAC,YAAY,EACrC,YAAY,EAAE,UAAU,CAAC,YAAY,EACrC,WAAW,EAAE,UAAU,CAAC,OAAO,EAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,WAAW,EAAE,UAAU,CAAC,WAAW,EAAA,EAR9B,UAAU,CAAC,EAAE,IAAI,KAAK,CAS3B;wCAEN;AAEA,wCAAA,IAAI,gBAAgB,CAAC,UAAU,CAAC,EAAE;4CAChC,QACEA,eAAC,MAAM,EAAA,EAAA,GAED,WAAW,EACf,IAAI,EAAE,UAAU,CAAC,IAAI,EACrB,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAC3C,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,YAAY,EAAE,UAAU,CAAC,YAAY,EAAA,EAPhC,UAAU,CAAC,EAAE,IAAI,KAAK,CAQ3B;wCAEN;AAEA,wCAAA,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,UAAU,CAAC;AACxE,wCAAA,OAAO,IAAI;oCACb,CAAC,CAAC,GACE,CAAA,EAAA,CACF,CAAA,EAAA,CACF,KAENA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,6BAA6B,EAAA,QAAA,EAClDG,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,CAAqC,EAAA,CACjC,CACP,EAAA,CACG,CACP,CAAA,EAAA,CACG;AAEV;;AC5KA,MAAM,eAAe,GAAmC,CAAC,EACvD,WAAW,EACX,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EACnC,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,GAAG,IAAI,EACR,KAAI;IACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;IACvD,MAAM,SAAS,GAAG,UAAU,GAAG,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC;AAC3E,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,EAAE,UAAU,CAAC;IAEhE,MAAM,SAAS,GAAG,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ;IAC9C,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,IAAI,CAAC,QAAQ;IAEvD,MAAM,cAAc,GAAG,MAAK;QAC1B,IAAI,SAAS,EAAE;AACb,YAAA,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAC/B;AACF,IAAA,CAAC;IAED,MAAM,UAAU,GAAG,MAAK;QACtB,IAAI,SAAS,EAAE;AACb,YAAA,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;QAC/B;AACF,IAAA,CAAC;AAED,IAAA,MAAM,wBAAwB,GAAG,CAAC,KAA2C,KAAI;QAC/E,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAClD,oBAAoB,CAAC,eAAe,CAAC;AACvC,IAAA,CAAC;IAED,QACEF,yBAAK,SAAS,EAAE,GAAGD,QAAM,CAAC,eAAe,CAAA,CAAA,EAAI,SAAS,EAAE,CAAC,IAAI,EAAE,EAAA,GAAM,IAAI,aAEvEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,qBAAqB,EAAA,QAAA,EAAA,CAC1CG,cAAA,CAAA,OAAA,EAAA,EAAO,OAAO,EAAC,gBAAgB,EAAC,SAAS,EAAEH,QAAM,CAAC,oBAAoB,sCAE9D,EACRG,cAAA,CAAA,QAAA,EAAA,EACE,EAAE,EAAC,gBAAgB,EACnB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,wBAAwB,EAClC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAEH,QAAM,CAAC,0BAA0B,YAE3C,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,MAC1BG,cAAA,CAAA,QAAA,EAAA,EAAqB,KAAK,EAAE,MAAM,YAC/B,MAAM,EAAA,EADI,MAAM,CAEV,CACV,CAAC,EAAA,CACK,CAAA,EAAA,CACL,EAENA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,mBAAmB,EAAA,QAAA,EACxCG,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACG,UAAU,GAAG;AACZ,0BAAE,CAAA,EAAG,SAAS,IAAI,OAAO,CAAA,IAAA,EAAO,UAAU,CAAA;AAC1C,0BAAE,SAAS,EAAA,CAER,EAAA,CACH,EAENF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,uBAAuB,EAAA,QAAA,EAAA,CAC5CG,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,qBAAqB,EACvC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,CAAC,SAAS,EAAA,YAAA,EACT,sBAAiB,EAAA,QAAA,EAE5BG,cAAA,CAACyE,+BAAoB,EAAA,EAAA,CAAG,EAAA,CACjB,EAETzE,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,qBAAqB,EACvC,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,CAAC,SAAS,EAAA,YAAA,EACT,0BAAgB,EAAA,QAAA,EAE3BG,cAAA,CAAC0E,gCAAqB,EAAA,EAAA,CAAG,EAAA,CAClB,CAAA,EAAA,CACL,CAAA,EAAA,CACF;AAEV;;;;ACjGA,MAAM,UAAU,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAmB,MACvE5E,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAC/BG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,iBAAiB,EAAA,QAAA,EACrC,SAAS,IAAIG,cAAA,CAAC4G,8BAAmB,EAAA,EAAA,CAAG,EAAA,CACjC,EACN9G,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACnCG,cAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAEH,QAAM,CAAC,eAAe,EAAA,QAAA,EAClC,UAAU,IAAI,wBAAwB,EAAA,CACpC,EACLG,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAEH,QAAM,CAAC,iBAAiB,EAAA,QAAA,EACnC,SAAS,IAAI,4BAA4B,EAAA,CACxC,CAAA,EAAA,CACA,CAAA,EAAA,CACF,CACP;;ACOD,MAAM,OAAO,GAAG,CAAK,EACnB,OAAO,EACP,IAAI,EACJ,aAAa,GAAG,KAAK,EACrB,kBAAkB,GAAG,KAAK,EAC1B,aAAa,GAAG,IAAI,EACpB,oBAAoB,EACpB,WAAW,EACX,MAAM,EACN,MAAM,EACN,OAAO,GAAG,KAAK,EACf,SAAS,EACT,UAAU,EACV,SAAS,EACT,KAAK,EACL,SAAS,GACO,KAAI;IACpB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGgF,cAAQ,CAAqB,EAAE,CAAC;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGA,cAAQ,CAAoB,EAAE,CAAC;AACvE,IAAA,MAAM,eAAe,GAAGa,YAAM,CAAoB,EAAE,CAAC;AACrD,IAAA,eAAe,CAAC,OAAO,GAAG,YAAY;AACtC,IAAA,MAAM,uBAAuB,GAAGA,YAAM,CAAC,IAAI,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGb,cAAQ,CAAe,EAAE,CAAC;AACxD,IAAA,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC;AAC3C,QAAA,SAAS,EAAE,CAAC;AACZ,QAAA,QAAQ,EAAE,MAAM,EAAE,eAAe,IAAI,EAAE;AACxC,KAAA,CAAC;AACF,IAAA,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,UAAU;AAE1C,IAAA,MAAM,eAAe,GAAG1E,aAAO,CAAwB,OAAO;AAC5D,QAAA,EAAE,EAAE,YAAY;AAChB,QAAA,IAAI,EAAE,EAAE;AACR,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,kBAAkB,EAAE,KAAK;QACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MACnBH,wBAAK,SAAS,EAAEH,QAAM,CAAC,YAAY,EAAA,QAAA,EACjCG,eAAC,QAAQ,EAAA,EACP,OAAO,EAAE,CAAC,CAAC,wBAAwB,EAAE,EACrC,aAAa,EAAE,CAAC,CAAC,yBAAyB,EAAE,EAC5C,eAAe,EAAE,CAAC,OAAO,KACvB,CAAC,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAA,CAEtC,EAAA,CACE,CACP;AACD,QAAA,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,MACZA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,YAAY,EAAA,QAAA,EACjCG,cAAA,CAAC,QAAQ,EAAA,EACP,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,eAAe,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,EAAA,CACzD,GACE,CACP;KACF,CAAC,EAAE,EAAE,CAAC;AAEP,IAAA,MAAM,eAAe,GAAGG,aAAO,CAC7B,OAAO,kBAAkB,GAAG,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,EACpE,CAAC,kBAAkB,EAAE,eAAe,EAAE,OAAO,CAAC,CAC/C;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;IAE5D,MAAM,KAAK,GAAG0G,wBAAa,CAAC;QAC1B,IAAI;AACJ,QAAA,OAAO,EAAE,eAAe;QACxB,aAAa,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACvC,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,aAAa,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC;AAC3C,YAAA,IAAI,UAAU,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AACvC,YAAA,IAAI,MAAM,GAAG,EAAE,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC;AAC1D,YAAA,IAAI,kBAAkB,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC;AAC/C,YAAA,IAAI,aAAa,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AACtC,SAAA;QACD,qBAAqB,EAAE,aAAa,GAAG,gBAAgB,GAAG,SAAS;QACnE,oBAAoB,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS;QAC9D,eAAe,EAAE,aAAa,GAAG,UAAU,GAAG,SAAS;QACvD,aAAa;AACb,QAAA,oBAAoB,EAAE;AACpB,cAAE,CAAC,OAAO,KAAI;AACV,gBAAA,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO;AACpC,gBAAA,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO;AACpE,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACnE,gBAAA,IAAI,YAAY,KAAK,uBAAuB,CAAC,OAAO;oBAAE;AACtD,gBAAA,uBAAuB,CAAC,OAAO,GAAG,YAAY;AAC9C,gBAAA,eAAe,CAAC,OAAO,GAAG,IAAI;gBAC9B,eAAe,CAAC,IAAI,CAAC;gBACrB,IAAI,oBAAoB,EAAE;oBACxB,MAAM,YAAY,GAAG;AAClB,yBAAA,eAAe;AACf,yBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC7B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC;oBACzB,oBAAoB,CAAC,YAAY,CAAC;gBACpC;YACF;AACF,cAAE,SAAS;QACb,kBAAkB;QAClB,kBAAkB,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;QACtD,eAAe,EAAEC,0BAAe,EAAE;AAClC,QAAA,mBAAmB,EACjB,aAAa,IAAI,UAAU,GAAGC,8BAAmB,EAAE,GAAG,SAAS;QACjE,qBAAqB,EAAE,MAAM,GAAGC,gCAAqB,EAAE,GAAG,SAAS;QACnE,iBAAiB,EAAE,aAAa,GAAGC,4BAAiB,EAAE,GAAG,SAAS;AACnE,KAAA,CAAC;IAEF,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,MAAM;IAChE,MAAM,mBAAmB,GAAG;AAC1B,UAAE,CAAC,aAAa,IAAI,UAAU,IAAI,gBAAgB,GAAG,MAAM,CAAC;UAC1D,CAAC;AACL,IAAA,MAAM,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,GAAG,QAAQ,CAAC,GAAG,CAAC;AACzE,IAAA,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC;AAC/B,IAAA,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,UAAU;IAE5C,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AAEvF,IAAA,MAAM,YAAY,GAAG9G,aAAO,CAC1B,MACE;AACG,SAAA,eAAe;AACf,SAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;AACrC,SAAA,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAC3B,CAAC,YAAY,EAAE,KAAK,CAAC,CACtB;AACD,IAAA,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM;IACzC,MAAM,eAAe,GAAG,kBAAkB,IAAI,CAAC,CAAC,WAAW,IAAI,aAAa,GAAG,CAAC;IAEhFoF,eAAS,CAAC,MAAK;QACb,IAAI,kBAAkB,EAAE;YACtB,KAAK,CAAC,iBAAiB,EAAE;QAC3B;;AAEF,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAEf,MAAM,oBAAoB,GAAG,MAAK;QAChC,KAAK,CAAC,iBAAiB,EAAE;AACzB,QAAA,WAAW,EAAE,OAAO,IAAI;AAC1B,IAAA,CAAC;AAED,IAAA,MAAM,oBAAoB,GAAG,CAAC,CAAuC,KAAI;QACvE,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACnC,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/C,QAAA,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAC;AAClC,IAAA,CAAC;AAED,IAAA,QACEzF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAACD,QAAM,CAAC,OAAO,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CAC5C,eAAe,KACdC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,cAAc,aACnCC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCG,cAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,MAAM,EACd,QAAQ,EAAA,IAAA,EACR,IAAI,EAAEA,cAAA,CAACyF,2BAAgB,EAAA,EAAA,CAAG,EAC1B,SAAS,EAAC,0BAAgB,EAC1B,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE5F,QAAM,CAAC,sBAAsB,GACxC,EACFG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,gBAAgB,EAAA,QAAA,EACrC,WAAW,CAAC;sCACT,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY;sCAC7C,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,aAAa,KAAK,CAAC,GAAG,kBAAkB,GAAG,oBAAoB,CAAA,CAAE,EAAA,CACpF,CAAA,EAAA,CACH,EACNG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACtC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,MACrCG,cAAA,CAAC,MAAM,IAEL,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,UAAU,EACrC,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,IAAI,EAAC,IAAI,EAAA,QAAA,EAER,MAAM,CAAC,KAAK,EAAA,EAPR,KAAK,CAQH,CACV,CAAC,EAAA,CACE,CAAA,EAAA,CACF,CACP,EACA,MAAM,KACLF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,WAAW,EAAA,QAAA,EAAA,CAC/B,UAAU,KACTG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,0BAA0B,YAC/CG,cAAA,CAAC,MAAM,EAAA,EACL,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,CAAC,KAAI;AACd,gCAAA,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,gCAAA,IAAI,MAAM;AAAE,oCAAA,aAAa,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;AAClE,4BAAA,CAAC,EACD,WAAW,EAAE,MAAM,CAAC,iBAAiB,IAAI,cAAc,EACvD,SAAS,EAAEH,QAAM,CAAC,iBAAiB,EAAA,CACnC,EAAA,CACE,CACP,EACA,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,KAC3BC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,kBAAkB,EAAA,QAAA,EAAA,CACvCG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEH,QAAM,CAAC,sBAAsB,EAAA,QAAA,EAAA,SAAA,EAAA,CAAgB,EAC9DG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,sBAAsB,EAAA,QAAA,EAC1C,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,KAAI;AAC5C,oCAAA,MAAM,WAAW,GAAG;wCAClB,UAAU,EAAE,UAAU,CAAC,UAAU;wCACjC,IAAI,EAAE,UAAU,CAAC,IAAI;wCACrB,IAAI,EAAE,UAAU,CAAC,IAAI;wCACrB,KAAK,EAAE,UAAU,CAAC,KAAK;wCACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;AAC7B,wCAAA,OAAO,EAAE,UAAmB;wCAC5B,MAAM,EAAE,MAAM,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;wCACzC,OAAO,EAAE,MAAM,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;qCAC5C;AACD,oCAAA,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE;wCAClC,QACEG,cAAA,CAAC,MAAM,EAAA,EAAA,GAED,WAAW,EACf,IAAI,EAAC,UAAU,EACf,YAAY,EAAE,UAAU,CAAC,YAAY,EACrC,YAAY,EAAE,UAAU,CAAC,YAAY,EACrC,WAAW,EAAE,UAAU,CAAC,OAAO,EAC/B,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,MAAM,EAAE,UAAU,CAAC,MAAM,EACzB,WAAW,EAAE,UAAU,CAAC,WAAW,EAAA,EAT9B,UAAU,CAAC,EAAE,IAAI,KAAK,CAU3B;oCAEN;oCACA,QACEA,eAAC,MAAM,EAAA,EAAA,GAED,WAAW,EACf,IAAI,EAAE,UAAU,CAAC,IAAI,EACrB,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,aAAa,EAAE,UAAU,CAAC,iBAAiB,EAC3C,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,YAAY,EAAE,UAAU,CAAC,YAAY,EAAA,EAPhC,UAAU,CAAC,EAAE,IAAI,KAAK,CAQ3B;AAEN,gCAAA,CAAC,CAAC,EAAA,CACE,CAAA,EAAA,CACF,CACP,IACG,CACP,EACDA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,cAAc,EAAA,QAAA,EACnCG,wBAAK,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EAAA,QAAA,EACvCC,eAAA,CAAA,OAAA,EAAA,EACE,SAAS,EAAED,QAAM,CAAC,KAAK,EAAA,YAAA,EACZ,iBAAiB,mBACb,gBAAgB,GAAG,CAAC,EAAA,QAAA,EAAA,CAEnCG,0BAAO,SAAS,EAAEH,QAAM,CAAC,SAAS,EAAA,QAAA,EAC/B,KAAK,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,MACvCG,iCACG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MAC3BF,eAAA,CAAA,IAAA,EAAA,EAEE,SAAS,EAAED,QAAM,CAAC,OAAO,EACzB,KAAK,EAAE;4CACL,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK;4CAC3C,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS;AAC7C,4CAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;4CACtC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC;AAChD,kDAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;AACvB,kDAAE,SAAS;AACd,yCAAA,EAAA,QAAA,EAAA,CAEDG,wBAAK,SAAS,EAAEH,QAAM,CAAC,cAAc,YAClC,GAAG,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,IACjDC,eAAA,CAAA,QAAA,EAAA,EACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAED,QAAM,CAAC,eAAe,EACjC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAA,YAAA,EACjC,CAAA,YAAA,EAAe,OAAO,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAA,CAAE,EAAA,QAAA,EAAA,CAElHqH,qBAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,EACzD,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,IACjClH,eAACmH,+BAAoB,EAAA,EAAC,SAAS,EAAEtH,QAAM,CAAC,aAAa,GAAI,IACvD,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,IACrCG,cAAA,CAACoH,iCAAsB,EAAA,EAAC,SAAS,EAAEvH,QAAM,CAAC,aAAa,EAAA,CAAI,KAE3DG,cAAA,CAACqH,6BAAkB,EAAA,EAAC,SAAS,EAAE,IAAI,CAACxH,QAAM,CAAC,aAAa,EAAEA,QAAM,CAAC,oBAAoB,CAAC,EAAA,CAAI,CAC3F,IACM,KAETqH,qBAAU,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAC1D,EAAA,CACG,EACL,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,EAAE,KACzClH,0BACE,KAAK,EAAG,GAAG,CAAC,MAAM,CAAC,cAAc,EAAa,IAAI,EAAE,EACpD,QAAQ,EAAE,CAAC,CAAC,KACV,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAE3C,WAAW,EAAC,YAAY,EAAA,CACxB,CACH,KAxCI,GAAG,CAAC,EAAE,CAyCR,CACN,CAAC,EAAA,EA7CK,WAAW,CAAC,EAAE,CA8ClB,CACN,CAAC,EAAA,CACI,EACRA,0BAAO,SAAS,EAAEH,QAAM,CAAC,SAAS,YAC/B,OAAO,IACN,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,MACrDG,cAAA,CAAA,IAAA,EAAA,EAAmC,SAAS,EAAEH,QAAM,CAAC,QAAQ,EAAA,QAAA,EAC1D,KAAK,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MACrCG,cAAA,CAAA,IAAA,EAAA,EAAiB,SAAS,EAAEH,QAAM,CAAC,OAAO,EAAA,QAAA,EACxCG,eAAC,QAAQ,EAAA,EAAA,CAAG,IADL,GAAG,CAAC,EAAE,CAEV,CACN,CAAC,EAAA,EALK,gBAAgB,MAAM,CAAA,CAAE,CAM5B,CACN,CAAC,IACA,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IACrC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,KAAI;AAC1C,oCAAA,MAAM,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;oCACnD,QACEA,uBAEE,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EACpD,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,aAAa,EAAE,QAAQ,CAAC,aAAa,EAAA,QAAA,EAEpC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAC9BG,uBAEE,SAAS,EAAEH,QAAM,CAAC,OAAO,EACzB,KAAK,EAAE;gDACL,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK;gDAC5C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS;AAC9C,gDAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO;gDACvC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC;AACjD,sDAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AACxB,sDAAE,SAAS;AACd,6CAAA,EAAA,QAAA,EAEA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,IACpCG,cAAA,CAAA,KAAA,EAAA,EACA,SAAS,EAAEH,QAAM,CAAC,kBAAkB,EACpC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAC,EAAA,QAAA,EACtDqH,qBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,GACtD,KAENA,qBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAC1D,IAnBI,IAAI,CAAC,EAAE,CAoBT,CACN,CAAC,EAAA,EA5BG,GAAG,CAAC,EAAE,CA6BR;AAET,gCAAA,CAAC,CAAC,KAEFlH,cAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,cAAA,CAAA,IAAA,EAAA,EACE,OAAO,EAAE,KAAK,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAC7C,SAAS,EAAEH,QAAM,CAAC,cAAc,YAEhCG,cAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAA,CAAI,EAAA,CAC/E,EAAA,CACF,CACN,EAAA,CACK,CAAA,EAAA,CACF,EAAA,CACJ,EAAA,CACF,EACL,MAAM,KACLF,yBAAK,SAAS,EAAED,QAAM,CAAC,eAAe,EAAA,QAAA,EAAA,CACpCC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,qBAAqB,EAAA,QAAA,EAAA,CAC1CG,0BACE,OAAO,EAAC,mBAAmB,EAC3B,SAAS,EAAEH,QAAM,CAAC,oBAAoB,EAAA,QAAA,EAAA,uBAAA,EAAA,CAGhC,EACRG,cAAA,CAAA,QAAA,EAAA,EACE,EAAE,EAAC,mBAAmB,EACtB,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,EAAEH,QAAM,CAAC,0BAA0B,EAAA,QAAA,EAE3C,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,MACrDG,cAAA,CAAA,QAAA,EAAA,EAAkB,KAAK,EAAE,GAAG,YACzB,GAAG,EAAA,EADO,GAAG,CAEP,CACV,CAAC,EAAA,CACK,CAAA,EAAA,CACL,EACNA,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEH,QAAM,CAAC,mBAAmB,EAAA,QAAA,EACxCG,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EACG,UAAU,GAAG;AACZ,kCAAE,CAAA,EAAG,SAAS,GAAG,CAAC,CAAA,IAAA,EAAO,UAAU,CAAA;kCACjC,WAAW,EAAA,CACV,EAAA,CACH,EACNF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,uBAAuB,aAC5CG,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,qBAAqB,EACvC,OAAO,EAAE,MAAK;AACZ,oCAAA,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC;AAC7B,oCAAA,aAAa,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;oCAC1D,MAAM,EAAE,YAAY,GAAG,OAAO,GAAG,CAAC,CAAC;gCACrC,CAAC,EACD,QAAQ,EAAE,CAAC,SAAS,EAAA,YAAA,EACT,sBAAiB,EAAA,QAAA,EAE5BG,cAAA,CAACyE,+BAAoB,EAAA,EAAA,CAAG,GACjB,EACTzE,cAAA,CAAA,QAAA,EAAA,EACE,SAAS,EAAEH,QAAM,CAAC,qBAAqB,EACvC,OAAO,EAAE,MAAK;AACZ,oCAAA,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC;AAC7B,oCAAA,aAAa,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;oCAC1D,MAAM,EAAE,YAAY,GAAG,OAAO,GAAG,CAAC,CAAC;AACrC,gCAAA,CAAC,EACD,QAAQ,EAAE,CAAC,SAAS,gBACT,0BAAgB,EAAA,QAAA,EAE3BG,cAAA,CAAC0E,gCAAqB,KAAG,EAAA,CAClB,CAAA,EAAA,CACL,IACF,CACP,CAAA,EAAA,CACG;AAEV;;;;ACzbA,MAAM,QAAQ,GAAGY,gBAAU,CACzB,CACE,EACE,SAAS,EACT,KAAK,EACL,KAAK,EACL,WAAW,EACX,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,QAAQ,GAAG,KAAK,EAChB,UAAU,EACV,OAAO,GAAG,KAAK,EACf,WAAW,EACX,IAAI,GAAG,QAAQ,EACf,KAAK,GAAG,OAAO,EACf,YAAY,EACZ,KAAK,EACL,EAAE,EACF,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,GAAG,UAAU,EACnB,aAAa,GAAG,KAAK,EACrB,MAAM,EACN,GAAG,IAAI,EACR,EACD,GAAG,KACD;AACF,IAAA,MAAM,cAAc,GAAG,CAAC,GAAuB,KAAY;AACzD,QAAA,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7D,IAAA,CAAC;AAED,IAAA,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGT,cAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IACzE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;AACtD,IAAA,MAAM,WAAW,GAAG5E,WAAK,EAAE;AAC3B,IAAA,MAAM,WAAW,GAAG,EAAE,IAAI,WAAW;IAErCsF,eAAS,CAAC,MAAK;AACb,QAAA,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;AACzC,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,YAAY,GAAGC,iBAAW,CAC9B,CAAC,CAAyC,KAAI;AAC5C,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;AAE/B,QAAA,IAAI,CAAC,QAAQ,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;YAC7D,gBAAgB,CAAC,QAAQ,CAAC;AAC1B,YAAA,QAAQ,GAAG,QAAQ,CAAC;QACtB;IACF,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAChC;AAED,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAC5B,CAAC,CAAwC,KAAI;QAC3C,IAAI,QAAQ,IAAI,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC3C,YAAA,gBAAgB,CAAC,YAAY,IAAI,oBAAoB,CAAC;QACxD;aAAO;YACL,gBAAgB,CAAC,EAAE,CAAC;QACtB;AACA,QAAA,MAAM,GAAG,CAAC,CAAC;IACb,CAAC,EACD,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,CAAC,CAChD;AAED,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAC7B,CAAC,CAAwC,KAAI;AAC3C,QAAA,OAAO,GAAG,CAAC,CAAC;AACd,IAAA,CAAC,EACD,CAAC,OAAO,CAAC,CACV;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC;AACzD,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAK,GAAG,YAAY,GAAG,SAAS,KAAK,aAAa,IAAI,UAAU,IAAI,QAAQ;AACvG,IAAA,MAAM,QAAQ,GAAG,CAAC,aAAa,IAAI,KAAK;UACpC,CAAA,EAAG,WAAW,CAAA,MAAA;AAChB,UAAE;cACE,CAAA,EAAG,WAAW,CAAA,OAAA;cACd,SAAS;IAEf,MAAM,cAAc,GAAG,IAAI,CACzB3F,QAAM,CAAC,SAAS,EAChB,QAAQ,IAAIA,QAAM,CAAC,QAAQ,EAC3B,QAAQ,IAAI,CAAC,QAAQ,IAAIA,QAAM,CAAC,KAAK,EACrC,SAAS,CACV;AAED,IAAA,QACEC,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA,QAAA,EAAA,CAC3B,KAAK,KACJE,cAAA,CAAC,cAAc,IACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,QAAQ,EAAA,QAAA,EAEjB,KAAK,EAAA,CACS,CAClB,EAEDF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,YAAY,EAAA,QAAA,EAAA,CACjCG,wBAAK,SAAS,EAAEH,QAAM,CAAC,cAAc,YACnCG,cAAA,CAAA,UAAA,EAAA,EAAA,GACM,IAAI,EACR,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,EACtB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAAA,cAAA,EACJ,QAAQ,mBACP,QAAQ,EAAA,kBAAA,EACL,QAAQ,EAC1B,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAA,CACzB,EAAA,CACE,EAENF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAED,QAAM,CAAC,MAAM,EAAA,QAAA,EAAA,CAC3BG,cAAA,CAAA,MAAA,EAAA,EACE,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAEH,QAAM,CAAC,UAAU,EAAA,WAAA,EACjB,QAAQ,GAAG,QAAQ,GAAG,SAAS,YAEzC,iBAAiB,EAAA,CACb,EAEN,aAAa,IAAI,SAAS,KACzBC,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAED,QAAM,CAAC,SAAS,EAAA,QAAA,EAAA,CAC9B,aAAa,CAAC,MAAM,EAAA,GAAA,EAAG,SAAS,CAAA,EAAA,CAC5B,CACR,IACG,CAAA,EAAA,CACF,CAAA,EAAA,CACF;AAEV,CAAC,CACF;AAED,QAAQ,CAAC,WAAW,GAAG,UAAU;AAEjC,uBAAe,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;AC1HnC;;;;;;;;;AASG;AACI,MAAM,YAAY,GAAGmF,gBAAK,CAAC,aAAa,CAAgC,SAAS,CAAC;;ACxCzF;;;;;;;;;AASG;AACI,MAAM,eAAe,GAAG,MAAK;IAClC,MAAM,OAAO,GAAGA,gBAAK,CAAC,UAAU,CAAC,YAAY,CAAC;IAC9C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;IAC3E;AACA,IAAA,OAAO,OAAO;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACI,MAAM,QAAQ,GAAG,MAAK;IAC3B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE;IAErD,OAAO;QACL,SAAS,EAAE,CAAC,KAA6B,KAAK,SAAS,CAAC,KAAK,CAAC;QAC9D,YAAY,EAAE,CAAC,EAAU,KAAK,YAAY,CAAC,EAAE,CAAC;KAC/C;AACH;;ACnDA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BG;AACH,MAAM,KAAK,GAA0C,CAAC,EACpD,EAAE,EACF,KAAK,EACL,QAAQ,GAAG,IAAI,EACf,IAAI,EACJ,UAAU,GAAGhF,cAAA,CAACsH,0BAAe,EAAA,EAAA,CAAG,EAChC,cAAc,GAAG,IAAI,EACrB,QAAQ,GAAG,MAAM,EACjB,SAAS,EACT,GAAG,IAAI,EACR,KAAI;AACH,IAAA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGtC,gBAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC7C,IAAA,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,EAAE;AAE1C,IAAAA,gBAAK,CAAC,SAAS,CAAC,MAAK;QACnB,OAAO,CAAC,IAAI,CAAC;IACf,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,gBAAgB,GAAG,CAAC,MAAe,KAAI;QAC3C,OAAO,CAAC,MAAM,CAAC;AACf,QAAA,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;YACjB,UAAU,CAAC,MAAM,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;QACzC;AACF,IAAA,CAAC;IAED,IAAI,WAAW,GAAG,IAAI;IACtB,MAAM,iBAAiB,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ;IAE9D,IAAI,CAAC,IAAI,EAAE;AACT,QAAA,IAAI,QAAQ,KAAK,MAAM,EAAE;AACvB,YAAA,WAAW,GAAGhF,cAAA,CAACuH,uBAAY,EAAA,EAAA,CAAG;QAChC;AAAO,aAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AACjC,YAAA,WAAW,GAAGvH,cAAA,CAACwH,kCAAuB,EAAA,EAAA,CAAG;QAC3C;AAAO,aAAA,IAAI,QAAQ,KAAK,OAAO,EAAE;AAC/B,YAAA,WAAW,GAAGxH,cAAA,CAACyH,0BAAe,EAAA,EAAA,CAAG;QACnC;IACF;IAEA,QACE3H,gBAAC4H,aAAU,CAAC,IAAI,EAAA,EACd,SAAS,EAAE,IAAI,CAAC7H,QAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAC5C,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,iBAAiB,EAAA,GACvB,IAAI,EAAA,QAAA,EAAA,CAERG,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,CAAA,EAAGH,QAAM,CAAC,IAAI,IAAI,QAAQ,GAAGA,QAAM,CAAC,CAAA,IAAA,EAAO,QAAQ,CAAA,CAAE,CAAC,GAAG,EAAE,CAAA,CAAE,iBAAc,MAAM,EAAA,QAAA,EAC/F,WAAW,EAAA,CACP,EACPG,wBAAK,SAAS,EAAEH,QAAM,CAAC,YAAY,YACjCC,eAAA,CAAC4H,aAAU,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE7H,QAAM,CAAC,UAAU,EAAA,QAAA,EAAA,CAAA,GAAA,EAAI,KAAK,SAAqB,EAAA,CACxE,EACNC,eAAA,CAAC4H,aAAU,CAAC,KAAK,IAAC,SAAS,EAAE7H,QAAM,CAAC,UAAU,kBAAI,UAAU,EAAA,GAAA,CAAA,EAAA,CAAqB,CAAA,EAAA,CACjE;AAEtB;;ACvFA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BG;AACI,MAAM,aAAa,GAAgE,CAAC,EACzF,QAAQ,EACR,SAAS,GAAG,CAAC,EACd,KAAI;AACH,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGmF,gBAAK,CAAC,QAAQ,CAAe,EAAE,CAAC;IAE5D,MAAM,SAAS,GAAGA,gBAAK,CAAC,WAAW,CAAC,CAAC,KAA6B,KAAI;QACpE,MAAM,EAAE,GAAG,CAAA,MAAA,EAAS,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE;QAC3E,MAAM,QAAQ,GAAe,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;AAE7C,QAAA,SAAS,CAAC,CAAC,UAAU,KAAI;YACvB,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,EAAE,QAAQ,CAAC;AAC/C,YAAA,IAAI,aAAa,CAAC,MAAM,GAAG,SAAS,EAAE;gBACpC,OAAO,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,SAAS,CAAC;YAC9D;AACA,YAAA,OAAO,aAAa;AACtB,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAEf,MAAM,YAAY,GAAGA,gBAAK,CAAC,WAAW,CAAC,CAAC,EAAU,KAAI;QACpD,SAAS,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC,EAAE,EAAE,CAAC;IAEN,MAAM,KAAK,GAAGA,gBAAK,CAAC,OAAO,CACzB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,EAC3C,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAClC;AAED,IAAA,QACEhF,cAAA,CAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,KAAK,EAAA,QAAA,EAChC,QAAQ,EAAA,CACa;AAE5B;AAEA,aAAa,CAAC,WAAW,GAAG,eAAe;;AC/D3C;;;;;;;;;;;;;;;;;;;AAmBG;AACI,MAAM,cAAc,GAAa,MAAK;AAC3C,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE;AAEpC,IAAA,QACEF,eAAA,CAAC4H,aAAU,CAAC,QAAQ,IAAC,cAAc,EAAC,MAAM,EAAA,QAAA,EAAA,CACvC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAI;gBACpB,IAAI,CAAC,KAAK,CAAC,EAAE;AAAE,oBAAA,OAAO,IAAI;AAC1B,gBAAA,OAAO1H,cAAA,CAAC,KAAK,EAAA,EAAgB,EAAE,EAAE,KAAK,CAAC,EAAE,EAAA,GAAM,KAAK,EAAA,EAAjC,KAAK,CAAC,EAAE,CAA6B;AAC1D,YAAA,CAAC,CAAC,EACFA,cAAA,CAAC0H,aAAU,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAE7H,QAAM,CAAC,aAAa,EAAA,CAAI,CAAA,EAAA,CACpC;AAE1B;AAEA,cAAc,CAAC,WAAW,GAAG,gBAAgB;;;;AClC7C,MAAM,MAAM,GAA0B,CAAC,EACtC,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK,EACtB,OAAO,EACP,eAAe,EACf,SAAS,EACT,GAAG,IAAI,EACP,MACCG,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAACH,QAAM,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAChDG,eAAC2H,cAAW,CAAC,IAAI,EAAA,EAChB,SAAS,EAAE9H,QAAM,CAAC,UAAU,EAC5B,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,OAAO,EAChB,eAAe,EAAE,eAAe,KAC5B,IAAI,EAAA,QAAA,EAERG,cAAA,CAAC2H,cAAW,CAAC,KAAK,EAAA,EAAC,SAAS,EAAE9H,QAAM,CAAC,WAAW,GAAI,EAAA,CAClC,EAAA,CACd;;;;ACnBR;;AAEG;AACH,MAAM,SAAS,GAA8B;AAC3C,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,YAAY,EAAE,eAAe;CAC9B;AAED;;;;;;;;;;;;;;;AAeG;AACH,MAAM,gBAAgB,GAAoC,CAAC,EACzD,MAAM,GAAG,CAAC,EACV,SAAS,GAAG,SAAS,EACrB,UAAU,EACV,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,QAAQ,GAAG,KAAK,EAChB,SAAS,EACT,GAAG,IAAI,EACR,KAAI;AAEH,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;AACtD,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGgF,cAAQ,CAAW,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3E,IAAA,MAAM,SAAS,GAAGa,YAAM,CAA8B,EAAE,CAAC;IACzD,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO;IAG9DH,eAAS,CAAC,MAAK;QACb,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxC,IAAA,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAG5B,MAAM,YAAY,GAAGC,iBAAW,CAAC,CAAC,KAAa,EAAE,KAAa,KAAU;AAEtE,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE;AAE/B,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7B,QAAA,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;QACxB,SAAS,CAAC,SAAS,CAAC;QACpB,IAAI,KAAK,IAAI,KAAK,GAAG,WAAW,GAAG,CAAC,EAAE;YACpC,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;QACvC;AAEA,QAAA,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;YAClC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC;IACF,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAEnD,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAAC,CAAC,CAAyC,KAAU;QAClF,CAAC,CAAC,cAAc,EAAE;QAElB,MAAM,SAAS,GAAG,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC;AACjD,QAAA,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;AAE/D,QAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;QAE7B,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,KAAI;AACrC,YAAA,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC5B,gBAAA,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK;YAC1B;AACF,QAAA,CAAC,CAAC;QAEF,SAAS,CAAC,SAAS,CAAC;AAEpB,QAAA,MAAM,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAC1D,QAAA,MAAM,UAAU,GAAG,eAAe,KAAK,EAAE,GAAG,WAAW,GAAG,CAAC,GAAG,eAAe;QAC7E,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE;AAGtC,QAAA,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE;YAClC,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC;IACF,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAEnD,MAAM,aAAa,GAAGA,iBAAW,CAAC,CAAC,KAAa,EAAE,CAAwC,KAAU;AAClG,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,EAAE;YACzB,CAAC,CAAC,cAAc,EAAE;AAElB,YAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;AAE7B,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AAEjB,gBAAA,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrB,SAAS,CAAC,SAAS,CAAC;YACtB;AAAO,iBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;gBAEpB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;AACrC,gBAAA,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE;gBACzB,SAAS,CAAC,SAAS,CAAC;YACtB;QACF;AAEA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE;YACtB,CAAC,CAAC,cAAc,EAAE;AAElB,YAAA,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC;AAC7B,YAAA,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,SAAS,CAAC,SAAS,CAAC;AAEpB,YAAA,IAAI,KAAK,GAAG,WAAW,GAAG,CAAC,EAAE;gBAC3B,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;YACvC;QACF;QACA,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,GAAG,CAAC,EAAE;YACtC,CAAC,CAAC,cAAc,EAAE;YAClB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;QACvC;AAEA,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,YAAY,IAAI,KAAK,GAAG,WAAW,GAAG,CAAC,EAAE;YACrD,CAAC,CAAC,cAAc,EAAE;YAClB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;QACvC;AACF,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAEzB,MAAM,WAAW,GAAGA,iBAAW,CAAC,CAAC,KAAa,EAAE,CAAwC,KAAU;AAChG,QAAA,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE;YAElB,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,WAAW,GAAG,CAAC,EAAE;gBAC5C,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE;YACvC;iBAAO,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,WAAW,GAAG,CAAC,EAAE;gBACrD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE;YAClC;QACF;AACF,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AACzB,IAAA,MAAM,WAAW,GAAGA,iBAAW,CAAC,CAAC,CAAqC,KAAU;AAC9E,QAAA,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;IACnB,CAAC,EAAE,EAAE,CAAC;AAEN,IAAA,QACE1F,eAAA,CAAAM,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,kCAAkC,CAAC,EAAE,SAAS,CAAC,KAAM,IAAI,EAAA,QAAA,EAClF,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,MACjBA,cAAA,CAAA,OAAA,EAAA,EACE,EAAE,EAAE,CAAA,+BAAA,EAAkC,CAAC,EAAE,EAEzC,GAAG,EAAE,CAAC,EAAE,KAAI;AACV,wBAAA,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE;oBAC3B,CAAC,EACD,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,GAAG,MAAM,EACvD,SAAS,EAAE,CAAC,EACZ,KAAK,EAAE,GAAG,EACV,QAAQ,EAAE,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAChD,SAAS,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,EACrC,OAAO,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,EACjC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,GAAG,SAAS,EAC1C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,EAAE;AACtD,wBAAA,CAAC,MAAM,CAAC,kCAAkC,CAAC,GAAG,QAAQ;AACtD,wBAAA,CAAC,MAAM,CAAC,+BAA+B,CAAC,GAAG,GAAG;AAC/C,qBAAA,CAAC,EAAA,cAAA,EACY,QAAQ,EAAA,YAAA,EACV,CAAA,OAAA,EAAU,CAAC,GAAG,CAAC,CAAA,IAAA,EAAO,WAAW,CAAA,CAAE,EAAA,kBAAA,EAC7B,QAAQ,IAAI,YAAY,GAAG,yBAAyB,GAAG,SAAS,EAClF,YAAY,EAAC,eAAe,EAAA,EArBvB,CAAC,CAsBN,CACH,CAAC,EAAA,CACE,EAEL,QAAQ,IAAI,YAAY,KACvBA,cAAA,CAAA,KAAA,EAAA,EACE,EAAE,EAAC,yBAAyB,EAC5B,SAAS,EAAE,MAAM,CAAC,8BAA8B,CAAC,EACjD,IAAI,EAAC,OAAO,EAAA,WAAA,EACF,WAAW,EAAA,QAAA,EAEpB,YAAY,EAAA,CACT,CACP,CAAA,EAAA,CACA;AAEP;;ACzIM,SAAU,gBAAgB,CAC5B,MAAA,GAA8B,EAAE,EAAA;IAEhC,MAAM,EACF,YAAY,GAAG,EAAE,EACjB,UAAU,GAAG,GAAG,EAChB,KAAK,GAAG,GAAG,EACX,SAAS,GAAG,CAAC,EACb,aAAa,EACb,KAAK,GAAG,KAAK,EAChB,GAAG,MAAM;;IAGV,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG6E,cAAQ,CAAM,EAAE,CAAC;IAC3C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAC,CAAC,CAAC;IACjD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAA8C,MAAM,CAAC;IACzF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAgB,IAAI,CAAC;IACvD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAC,EAAE,CAAC;;AAGlD,IAAA,MAAM,kBAAkB,GAAGa,YAAM,CAAyB,IAAI,CAAC;AAC/D,IAAA,MAAM,gBAAgB,GAAGA,YAAM,CAAoB,MAAM,CAAC;IAE1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;AACvD,IAAA,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU;AAC5C,IAAA,MAAM,WAAW,GAAG,WAAW,KAAK,CAAC;;IAGrC,MAAM,QAAQ,GAAGF,iBAAW,CAAC,CAAC,OAAe,EAAE,IAAU,KAAI;QACzD,IAAI,KAAK,EAAE;YACP,OAAO,CAAC,GAAG,CAAC,CAAA,mBAAA,EAAsB,OAAO,CAAA,CAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QAC5D;AACJ,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;IAGX,MAAM,oBAAoB,GAAGA,iBAAW,CAAC,CAAC,KAAa,EAAE,MAAe,KAAI;AACxE,QAAA,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,CAAC;QAClF,MAAM,SAAS,GAAG,CAAC,WAAW,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,CAAC;AACnF,QAAA,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC;QAE5B,OAAO;YACH,EAAE,EAAE,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAE;AACxB,YAAA,IAAI,EAAE;AACF,kBAAE,CAAA,EAAG,MAAM,CAAA,QAAA,EAAW,UAAU,CAAA;kBAC9B,CAAA,KAAA,EAAQ,UAAU,CAAA,CAAE;AAC1B,YAAA,OAAO,EAAE;AACL,kBAAE,CAAA,gBAAA,EAAmB,MAAM,CAAA,IAAA,EAAO,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;AAC9E,kBAAE,CAAA,EAAG,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA,GAAA,EAAM,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA,CAAE;AACrG,YAAA,QAAQ,EAAE,UAAU,GAAG,EAAE,KAAK,CAAC;YAC/B,QAAQ,EAAE,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC;YACtD,QAAQ,EAAE,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,MAAM;SACpD;IACL,CAAC,EAAE,EAAE,CAAC;;IAGN,MAAM,eAAe,GAAGA,iBAAW,CAAC,OAChC,IAAY,EACZ,MAAA,GAAiB,EAAE,KACL;QACd,QAAQ,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;;AAG/D,QAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC5B,YAAA,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE;QACtC;;AAGA,QAAA,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE;AACxC,QAAA,kBAAkB,CAAC,OAAO,GAAG,UAAU;AAEvC,QAAA,IAAI;;YAEA,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;gBAClC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;gBAC1C,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;oBAC7C,YAAY,CAAC,OAAO,CAAC;AACrB,oBAAA,MAAM,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACxC,gBAAA,CAAC,CAAC;AACN,YAAA,CAAC,CAAC;;AAGF,YAAA,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC;YAC5C;;AAGA,YAAA,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC;YAC9C;;AAGA,YAAA,MAAM,UAAU,GAAG,IAAI,GAAG,YAAY;AACtC,YAAA,MAAM,SAAS,GAAG,aAAa,IAAI,oBAAoB;;AAGvD,YAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;AAChE,gBAAA,MAAM,WAAW,GAAG,UAAU,GAAG,KAAK;gBACtC,IAAI,WAAW,IAAI,UAAU;AAAE,oBAAA,OAAO,IAAI;AAC1C,gBAAA,OAAO,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;AACzC,YAAA,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAQ;YAEzB,QAAQ,CAAC,0BAA0B,EAAE;gBACjC,IAAI;gBACJ,aAAa,EAAE,SAAS,CAAC,MAAM;gBAC/B;AACH,aAAA,CAAC;AAEF,YAAA,OAAO,SAAS;QAEpB;QAAE,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,uBAAuB,EAAE;gBACjE,QAAQ,CAAC,mBAAmB,CAAC;AAC7B,gBAAA,MAAM,GAAG;YACb;AAEA,YAAA,QAAQ,CAAC,0BAA0B,EAAE,GAAG,CAAC;AACzC,YAAA,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC;QAChE;AACJ,IAAA,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;;AAG/F,IAAA,MAAM,YAAY,GAAGA,iBAAW,CAAC,YAAW;AACxC,QAAA,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE;YACtC,QAAQ,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;YAC5D;QACJ;AAEA,QAAA,gBAAgB,CAAC,OAAO,GAAG,MAAM;QACjC,SAAS,CAAC,SAAS,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC;AAEd,QAAA,IAAI;AACA,YAAA,MAAM,QAAQ,GAAG,WAAW,GAAG,CAAC;YAChC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,GAAG,CAAC,EAAE,WAAW,CAAC;YAEjE,QAAQ,CAAC,IAAI,IAAI,QAAQ,KAAK,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;YACpE,cAAc,CAAC,QAAQ,CAAC;YACxB,SAAS,CAAC,WAAW,CAAC;YAEtB,QAAQ,CAAC,8BAA8B,EAAE;AACrC,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;AACvC,aAAA,CAAC;QACN;QAAE,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,uBAAuB,EAAE;AACjE,gBAAA,OAAO;YACX;AAEA,YAAA,QAAQ,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,mBAAmB,CAAC;YAClE,SAAS,CAAC,QAAQ,CAAC;AACnB,YAAA,QAAQ,CAAC,yBAAyB,EAAE,GAAG,CAAC;QAC5C;AACJ,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE5F,MAAM,MAAM,GAAGA,iBAAW,CAAC,OAAO,KAAa,KAAI;AAC/C,QAAA,QAAQ,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC;AAEtC,QAAA,gBAAgB,CAAC,OAAO,GAAG,QAAQ;QACnC,cAAc,CAAC,KAAK,CAAC;QACrB,cAAc,CAAC,CAAC,CAAC;QACjB,QAAQ,CAAC,EAAE,CAAC;QACZ,SAAS,CAAC,SAAS,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC;AAEd,QAAA,IAAI;YACA,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC;YACrD,QAAQ,CAAC,aAAa,CAAC;YACvB,cAAc,CAAC,CAAC,CAAC;YACjB,SAAS,CAAC,WAAW,CAAC;YAEtB,QAAQ,CAAC,iBAAiB,EAAE;gBACxB,KAAK;gBACL,OAAO,EAAE,aAAa,CAAC;AAC1B,aAAA,CAAC;QACN;QAAE,OAAO,GAAG,EAAE;YACV,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,uBAAuB,EAAE;gBACjE;YACJ;AAEA,YAAA,QAAQ,CAAC,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,eAAe,CAAC;YAC9D,SAAS,CAAC,QAAQ,CAAC;AACnB,YAAA,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;QAClC;AACJ,IAAA,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAE/B,IAAA,MAAM,KAAK,GAAGA,iBAAW,CAAC,MAAK;QAC3B,QAAQ,CAAC,6BAA6B,CAAC;AAEvC,QAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC5B,YAAA,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE;QACtC;QAEA,QAAQ,CAAC,EAAE,CAAC;QACZ,cAAc,CAAC,CAAC,CAAC;QACjB,SAAS,CAAC,MAAM,CAAC;QACjB,QAAQ,CAAC,IAAI,CAAC;QACd,cAAc,CAAC,EAAE,CAAC;AACtB,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAEd,IAAA,MAAM,KAAK,GAAGA,iBAAW,CAAC,YAAW;QACjC,QAAQ,CAAC,0BAA0B,EAAE;YACjC,aAAa,EAAE,gBAAgB,CAAC;AACnC,SAAA,CAAC;AAEF,QAAA,IAAI,gBAAgB,CAAC,OAAO,KAAK,QAAQ,EAAE;AACvC,YAAA,MAAM,MAAM,CAAC,WAAW,CAAC;QAC7B;aAAO;YACH,MAAM,YAAY,EAAE;QACxB;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEjDD,eAAS,CAAC,MAAK;AACX,QAAA,OAAO,MAAK;AACR,YAAA,IAAI,kBAAkB,CAAC,OAAO,EAAE;AAC5B,gBAAA,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE;YACtC;AACJ,QAAA,CAAC;IACL,CAAC,EAAE,EAAE,CAAC;IAEN,OAAO;;QAEH,KAAK;QACL,WAAW;QACX,UAAU;QACV,MAAM;QACN,KAAK;QACL,WAAW;QACX,WAAW;QACX,WAAW;;AAGX,QAAA,OAAO,EAAE;YACL,YAAY;YACZ,MAAM;YACN,KAAK;YACL;AACH;KACJ;AACL;;AChQA;;AAEG;AACG,SAAU,iBAAiB,CAAC,EAChC,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,SAAS,GAAG,GAAG,EACf,UAAU,GAAG,OAAO,EACpB,OAAO,GAAG,IAAI,EACd,KAAK,GAAG,KAAK,EACU,EAAA;AACvB,IAAA,MAAM,WAAW,GAAGG,YAAM,CAAiB,IAAI,CAAC;IAChD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGb,cAAQ,CAAC,KAAK,CAAC;;AAG3D,IAAA,MAAM,UAAU,GAAGa,YAAM,CAAC,KAAK,CAAC;AAChC,IAAA,MAAM,oBAAoB,GAAGA,YAAM,CAAC,CAAC,CAAC;AACtC,IAAA,MAAM,aAAa,GAAGA,YAAM,CAAC,UAAU,CAAC;;IAGxCH,eAAS,CAAC,MAAK;AACb,QAAA,aAAa,CAAC,OAAO,GAAG,UAAU;AACpC,IAAA,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;;IAGhB,MAAM,QAAQ,GAAGC,iBAAW,CAAC,CAAC,OAAe,EAAE,IAAU,KAAI;QAC3D,IAAI,KAAK,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,CAAA,oBAAA,EAAuB,OAAO,CAAA,CAAE,EAAE,IAAI,IAAI,EAAE,CAAC;QAC3D;AACF,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;;AAGX,IAAA,MAAM,eAAe,GAAGA,iBAAW,CAAC,CAAC,OAAoC,KAAI;AAC3E,QAAA,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO;AACxB,QAAA,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc;QAEvC,iBAAiB,CAAC,SAAS,CAAC;AAC5B,QAAA,QAAQ,CAAC,uBAAuB,EAAE,SAAS,CAAC;;QAG5C,MAAM,WAAW,GAAG,OAAO;YACR,SAAS;AACT,YAAA,MAAM,KAAK,SAAS;YACpB,CAAC,UAAU,CAAC,OAAO;AACnB,YAAA,IAAI,GAAG,QAAQ;AACf,YAAA,IAAI,KAAK,oBAAoB,CAAC,OAAO;QAExD,QAAQ,CAAC,sBAAsB,EAAE;YAC/B,OAAO;YACP,SAAS;YACT,MAAM;YACN,SAAS,EAAE,UAAU,CAAC,OAAO;YAC7B,IAAI;YACJ,QAAQ;YACR,aAAa,EAAE,oBAAoB,CAAC,OAAO;AAC3C,YAAA,OAAO,EAAE;AACV,SAAA,CAAC;QAEF,IAAI,WAAW,EAAE;YACf,QAAQ,CAAC,oCAAoC,CAAC;AAC9C,YAAA,UAAU,CAAC,OAAO,GAAG,IAAI;AACzB,YAAA,oBAAoB,CAAC,OAAO,GAAG,IAAI;YACnC,aAAa,CAAC,OAAO,EAAE;QACzB;AACF,IAAA,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;;IAG/CD,eAAS,CAAC,MAAK;QACb,IAAI,CAAC,OAAO,EAAE;YACZ,QAAQ,CAAC,wCAAwC,CAAC;YAClD;QACF;AAEA,QAAA,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,eAAe,EAAE;AACzD,YAAA,IAAI,EAAE,IAAI;YACV,UAAU;YACV,SAAS;AACV,SAAA,CAAC;AAEF,QAAA,MAAM,kBAAkB,GAAG,WAAW,CAAC,OAAO;QAC9C,IAAI,kBAAkB,EAAE;AACtB,YAAA,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACpC,QAAQ,CAAC,+BAA+B,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;QACtE;AAEA,QAAA,OAAO,MAAK;YACV,IAAI,kBAAkB,EAAE;AACtB,gBAAA,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC;gBACtC,QAAQ,CAAC,+BAA+B,CAAC;YAC3C;AACF,QAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;;IAG/DA,eAAS,CAAC,MAAK;AACb,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACxB,YAAA,UAAU,CAAC,OAAO,GAAG,KAAK;AAC1B,YAAA,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,CAAC;QAC5C;AACF,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAGtB,IAAA,MAAM,KAAK,GAAGC,iBAAW,CAAC,MAAK;AAC7B,QAAA,UAAU,CAAC,OAAO,GAAG,KAAK;AAC1B,QAAA,oBAAoB,CAAC,OAAO,GAAG,CAAC;QAChC,iBAAiB,CAAC,KAAK,CAAC;QACxB,QAAQ,CAAC,qBAAqB,CAAC;AACjC,IAAA,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAGd,IAAA,MAAM,WAAW,GAAG,IAAI,GAAG,QAAQ;AACnC,IAAA,MAAM,WAAW,GAAG,IAAI,IAAI,QAAQ;IAEpC,OAAO;QACL,WAAW;QACX,cAAc;QACd,WAAW;QACX,WAAW;QACX;KACD;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,62]}
1
+ {"version":3,"file":"index.cjs","sources":["../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/Button/Button.tsx","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/en-US.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/.pnpm/date-fns@4.1.0/node_modules/date-fns/locale/pt-BR.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzName/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/tzOffset/index.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/mini.js","../../../node_modules/.pnpm/@date-fns+tz@1.4.1/node_modules/@date-fns/tz/date/index.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/getBroadcastWeeksInMonth.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/startOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/helpers/endOfBroadcastWeek.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/en-US.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/classes/DateLib.js","../../../node_modules/.pnpm/react-day-picker@9.14.0_react@18.3.1/node_modules/react-day-picker/dist/esm/locale/pt-BR.js","../src/components/Calendar/Calendar.tsx","../src/components/Callout/Callout.tsx","../src/shared/icons/CheckSmall.tsx","../src/shared/icons/CheckHalf.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chips/Chips.tsx","../src/components/Container/Container.tsx","../src/components/Popover/Popover.tsx","../src/components/TextField/utils/validation.ts","../src/shared/Label/index.tsx","../src/components/TextField/TextField.tsx","../src/components/DatePicker/Utils/DateUtils.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Drawer/Drawer.tsx","../src/components/Filter/components/Combined.tsx","../src/components/Search/Search.tsx","../src/components/Filter/components/Simple.tsx","../src/components/Filter/Filter.tsx","../src/components/Radio/Radio.tsx","../src/components/ListItem/ListItem.tsx","../src/components/Menu/components/MenuItem.tsx","../src/components/Menu/hooks/useMenuLogic.ts","../src/hooks/NormalizeText.tsx","../src/components/Menu/hooks/useSearchLogic.tsx","../src/components/Menu/Menu.tsx","../src/components/Modal/Modal.tsx","../src/components/Quantity/Quantity.tsx","../src/components/Select/components/CheckboxSelectItem.tsx","../src/components/Select/components/ExpandableSelectItem.tsx","../src/components/Select/components/SelectItem.tsx","../src/components/Select/hooks/useSelectLogic.ts","../src/components/Select/Select.tsx","../src/components/Table/EmptyRows150Color.tsx","../../../node_modules/.pnpm/react-content-loader@7.1.1_react@18.3.1/node_modules/react-content-loader/dist/react-content-loader.es.js","../src/components/Table/LoaderList.tsx","../src/components/Table/Table.tsx","../src/components/Table/TableHeader.tsx","../src/components/Table/TablePagination.tsx","../src/components/TableV2/components/EmptyState.tsx","../src/components/TableV2/Table.tsx","../src/components/TextArea/TextArea.tsx","../src/contexts/ToastContext.ts","../src/hooks/useToast.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/components/ToastProvider.tsx","../src/components/Toast/components/ToastContainer.tsx","../src/components/Switch/Switch.tsx","../src/components/VerificationCode/VerificationCode.tsx","../src/hooks/ApiSimulation.tsx","../src/hooks/InfiniteScroll.tsx"],"sourcesContent":["import clsx from 'clsx';\r\nimport { Avatar as AvatarRadix } from \"radix-ui\";\r\nimport React from 'react';\r\n\r\nimport styles from './Avatar.module.scss';\r\n\r\n\r\nimport type { AvatarProps } from './Avatar.types';\r\n\r\nconst Avatar: React.FC<AvatarProps> = ({\r\n icon,\r\n size = 'lg',\r\n src,\r\n className,\r\n initialLetters,\r\n ...rest\r\n}) => {\r\n const AvatarClass = clsx(\r\n styles.AvatarRoot,\r\n {\r\n [styles['AvatarRoot--lg']]: size === 'lg',\r\n [styles['AvatarRoot--sm']]: size === 'sm',\r\n },\r\n className\r\n );\r\n\r\n return (\r\n <AvatarRadix.Root className={AvatarClass} {...rest}>\r\n {src && (\r\n <AvatarRadix.Image\r\n className={styles.AvatarImage}\r\n src={src}\r\n alt=\"Avatar\"\r\n />\r\n )}\r\n <AvatarRadix.Fallback className={styles.AvatarFallback}>\r\n {icon || initialLetters}\r\n </AvatarRadix.Fallback>\r\n </AvatarRadix.Root>\r\n );\r\n};\r\n\r\nexport default Avatar;\r\n","import clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Badge.module.scss';\r\n\r\nimport type { BadgeProps } from './Badge.types';\r\n\r\nconst getDisplayValue = (value: BadgeProps['badgeValue']): string => {\r\n if (value === null || value === undefined) return '';\r\n if (typeof value === 'string') {\r\n const parsed = Number(value);\r\n if (isFinite(parsed) && parsed > 0 && String(parsed) === value) {\r\n return parsed > 99 ? '99+' : value;\r\n }\r\n return value;\r\n }\r\n if (!isFinite(value) || value <= 0) return '';\r\n return value > 99 ? '99+' : String(value);\r\n};\r\n\r\nconst Badge: React.FC<BadgeProps> = ({\r\n children,\r\n badgeValue = null,\r\n className,\r\n id,\r\n filterVariant = false,\r\n 'aria-label': ariaLabel,\r\n ...rest\r\n}) => {\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n const displayValue = getDisplayValue(badgeValue);\r\n const isEmpty = displayValue === '';\r\n\r\n if (children) {\r\n return (\r\n <div className={styles.badgeContainer} {...rest}>\r\n <div data-testid=\"badge-content\">{children}</div>\r\n <div\r\n id={componentId}\r\n className={clsx(styles.badge, {\r\n [styles['badge__empty']]: isEmpty,\r\n [styles['badge__flex']]: displayValue.length >= 2,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && <span aria-hidden={!!ariaLabel}>{displayValue}</span>}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={styles.badgeContainer}>\r\n <div\r\n className={clsx(styles['badge__status'], {\r\n [styles['badge__status__empty']]: isEmpty,\r\n [styles['badge__status__flex']]: displayValue.length >= 2,\r\n [styles['badge__status__filterBadge']]: filterVariant,\r\n }, className)}\r\n data-testid=\"badge\"\r\n >\r\n {!isEmpty && (\r\n <span aria-hidden={!!ariaLabel}>{displayValue}</span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Badge;","import { Tooltip as TooltipRadix} from \"radix-ui\";\r\nimport clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Tooltip.module.scss';\r\nimport { TooltipProps } from './Tooltip.types';\r\n\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({\r\n\tchildren,\r\n\ttext,\r\n\tside = 'bottom',\r\n\talign = 'start',\r\n\tmaxWidth,\r\n\tsideOffset = 10,\r\n\tclassName,\r\n\t...rest\r\n}) => {\r\n\treturn (\r\n\t\t<TooltipRadix.Provider>\r\n\t\t\t<TooltipRadix.Root>\r\n\t\t\t\t<TooltipRadix.Trigger asChild>\r\n\t\t\t\t\t<span className={styles.triggerWrapper}>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</TooltipRadix.Trigger>\r\n\t\t\t\t<TooltipRadix.Portal>\r\n\t\t\t\t\t<TooltipRadix.Content\r\n\t\t\t\t\tclassName={clsx(styles.tooltipContent, className)}\r\n\t\t\t\t\t\tside={side}\r\n\t\t\t\t\t\talign={align}\r\n\t\t\t\t\t\tsideOffset={sideOffset}\r\n\t\t\t\t\t\tstyle={{ maxWidth: maxWidth ? `${maxWidth}px` : 'auto' }}\r\n\t\t\t\t\t\t{...rest}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{text}\r\n\t\t\t\t\t</TooltipRadix.Content>\r\n\t\t\t\t</TooltipRadix.Portal>\r\n\t\t\t</TooltipRadix.Root>\r\n\t\t</TooltipRadix.Provider>\r\n\t);\r\n};\r\n\r\nexport default Tooltip\r\n\r\n\r\n","import { SpinnerIos16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId, useMemo } from 'react';\r\n\r\nimport Tooltip from '../Tooltip';\r\nimport styles from './Button.module.scss';\r\n\r\nimport type { ButtonProps } from './Button.types';\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement | HTMLAnchorElement, ButtonProps>(({\r\n as,\r\n children,\r\n variant = 'filled',\r\n iconPosition = 'left',\r\n href,\r\n to,\r\n external = false,\r\n target,\r\n rel,\r\n disabled = false,\r\n onClick,\r\n size = 'lg',\r\n className,\r\n type = 'button',\r\n id,\r\n icon,\r\n fullWidth = false,\r\n ariaLabel,\r\n iconOnly = false,\r\n loading = false,\r\n tooltipText,\r\n tooltipSide = 'top',\r\n tooltipAlign = 'center',\r\n ...rest\r\n}, ref) => {\r\n\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n const getComponent = (): React.ElementType => {\r\n if (as) return as;\r\n\r\n if (href) return 'a';\r\n if (to) {\r\n if (process.env.NODE_ENV !== 'production' && !as) {\r\n console.warn(\r\n '[Button] A prop `to` foi usada sem `as`. ' +\r\n 'Para navegação via roteador (React Router, Next.js, etc.), passe `as={Link}`. ' +\r\n 'Por ora, `to` será tratado como `href` em um <a> nativo.'\r\n );\r\n }\r\n return 'a';\r\n }\r\n return 'button';\r\n };\r\n\r\n const Component = getComponent();\r\n\r\n const hasContent = useMemo(() => {\r\n return children && React.Children.count(children) > 0;\r\n }, [children]);\r\n\r\n if (process.env.NODE_ENV !== 'production' && iconOnly && !icon) {\r\n console.error(\r\n '[Button] `iconOnly={true}` foi usado sem a prop `icon`. ' +\r\n 'Forneça um ícone via `icon={<MeuIcone />}`.'\r\n );\r\n }\r\n const resolvedIcon = icon;\r\n\r\n const buttonClasses = clsx(\r\n styles.button,\r\n styles[`button-${variant}`],\r\n styles[`button-${size}`],\r\n {\r\n [styles['disabled']]: disabled,\r\n [styles['buttonLoading']]: loading,\r\n [styles['buttonWithIcon']]: resolvedIcon && !iconOnly,\r\n [styles[`buttonIconPosition-${iconPosition}`]]: resolvedIcon && !iconOnly,\r\n [styles['buttonNoContent']]: resolvedIcon && !hasContent && !iconOnly,\r\n [styles['buttonFullWidth']]: fullWidth,\r\n [styles['buttonIconOnly']]: iconOnly,\r\n },\r\n className\r\n );\r\n\r\n const getAriaLabel = () => {\r\n if (ariaLabel) return ariaLabel;\r\n if (iconOnly) {\r\n if (tooltipText) return tooltipText;\r\n if (process.env.NODE_ENV !== 'production') {\r\n console.warn(\r\n '[Button] Botões icon-only precisam de uma prop `ariaLabel` descritiva. ' +\r\n 'O fallback genérico foi removido pois não comunica intenção. ' +\r\n 'Forneça `ariaLabel` ou `tooltipText` para nomear o botão.'\r\n );\r\n }\r\n return undefined;\r\n }\r\n return undefined;\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLElement>) => {\r\n if (disabled || loading) {\r\n e.preventDefault();\r\n return;\r\n }\r\n onClick?.(e);\r\n };\r\n\r\n const renderContent = () => {\r\n if (iconOnly && !loading) {\r\n return (\r\n <span className={styles.buttonIconOnly} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n );\r\n }\r\n if (loading) {\r\n return (\r\n <>\r\n {!iconOnly && (\r\n <span className={styles.buttonContentHidden} aria-hidden=\"true\">\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft}>{resolvedIcon}</span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight}>{resolvedIcon}</span>\r\n )}\r\n </span>\r\n )}\r\n <span className={styles.buttonLoadingSpinner} aria-hidden=\"true\">\r\n <SpinnerIos16Regular aria-hidden=\"true\" />\r\n </span>\r\n </>\r\n );\r\n }\r\n return (\r\n <>\r\n {resolvedIcon && (iconPosition === 'left' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconLeft} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n {children}\r\n {resolvedIcon && (iconPosition === 'right' || iconPosition === 'both') && (\r\n <span className={styles.buttonIconRight} aria-hidden=\"true\">\r\n {resolvedIcon}\r\n </span>\r\n )}\r\n </>\r\n );\r\n };\r\n\r\n const baseProps = {\r\n ref,\r\n id: componentId,\r\n className: buttonClasses,\r\n 'aria-label': getAriaLabel(),\r\n 'aria-disabled': disabled,\r\n 'aria-busy': loading || undefined,\r\n tabIndex: disabled || loading ? -1 : 0,\r\n onClick: handleClick,\r\n ...rest,\r\n };\r\n\r\n const getNavigationProps = () => {\r\n if (href) {\r\n if (disabled || loading) {\r\n return { role: 'link' };\r\n }\r\n return {\r\n href,\r\n target: external || target === '_blank' ? '_blank' : target,\r\n rel: external || target === '_blank' ? 'noopener noreferrer' : rel,\r\n };\r\n }\r\n\r\n if (to) {\r\n if (Component !== 'a') {\r\n return {\r\n to: disabled ? undefined : to,\r\n };\r\n }\r\n return {\r\n href: disabled ? undefined : to,\r\n };\r\n }\r\n if (Component === 'button') {\r\n return {\r\n type,\r\n disabled,\r\n };\r\n }\r\n\r\n return {};\r\n };\r\n\r\n if (iconOnly && tooltipText && !loading) {\r\n return (\r\n <Tooltip text={tooltipText} side={tooltipSide} align={tooltipAlign}>\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return (\r\n <Component\r\n {...baseProps}\r\n {...getNavigationProps()}\r\n >\r\n {renderContent()}\r\n </Component>\r\n );\r\n});\r\n\r\nButton.displayName = 'Button';\r\nexport default Button;","export function buildFormatLongFn(args) {\n return (options = {}) => {\n // TODO: Remove String()\n const width = options.width ? String(options.width) : args.defaultWidth;\n const format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}\n","/**\n * The localize function argument callback which allows to convert raw value to\n * the actual type.\n *\n * @param value - The value to convert\n *\n * @returns The converted value\n */\n\n/**\n * The map of localized values for each width.\n */\n\n/**\n * The index type of the locale unit value. It types conversion of units of\n * values that don't start at 0 (i.e. quarters).\n */\n\n/**\n * Converts the unit value to the tuple of values.\n */\n\n/**\n * The tuple of localized era values. The first element represents BC,\n * the second element represents AD.\n */\n\n/**\n * The tuple of localized quarter values. The first element represents Q1.\n */\n\n/**\n * The tuple of localized day values. The first element represents Sunday.\n */\n\n/**\n * The tuple of localized month values. The first element represents January.\n */\n\nexport function buildLocalizeFn(args) {\n return (value, options) => {\n const context = options?.context ? String(options.context) : \"standalone\";\n\n let valuesArray;\n if (context === \"formatting\" && args.formattingValues) {\n const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n const width = options?.width ? String(options.width) : defaultWidth;\n\n valuesArray =\n args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n const defaultWidth = args.defaultWidth;\n const width = options?.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[width] || args.values[defaultWidth];\n }\n const index = args.argumentCallback ? args.argumentCallback(value) : value;\n\n // @ts-expect-error - For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}\n","export function buildMatchFn(args) {\n return (string, options = {}) => {\n const width = options.width;\n\n const matchPattern =\n (width && args.matchPatterns[width]) ||\n args.matchPatterns[args.defaultMatchWidth];\n const matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n const matchedString = matchResult[0];\n\n const parsePatterns =\n (width && args.parsePatterns[width]) ||\n args.parsePatterns[args.defaultParseWidth];\n\n const key = Array.isArray(parsePatterns)\n ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString))\n : // [TODO] -- I challenge you to fix the type\n findKey(parsePatterns, (pattern) => pattern.test(matchedString));\n\n let value;\n\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback\n ? // [TODO] -- I challenge you to fix the type\n options.valueCallback(value)\n : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n\nfunction findKey(object, predicate) {\n for (const key in object) {\n if (\n Object.prototype.hasOwnProperty.call(object, key) &&\n predicate(object[key])\n ) {\n return key;\n }\n }\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (let key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}\n","export function buildMatchPatternFn(args) {\n return (string, options = {}) => {\n const matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n const matchedString = matchResult[0];\n\n const parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n let value = args.valueCallback\n ? args.valueCallback(parseResult[0])\n : parseResult[0];\n\n // [TODO] I challenge you to fix the type\n value = options.valueCallback ? options.valueCallback(value) : value;\n\n const rest = string.slice(matchedString.length);\n\n return { value, rest };\n };\n}\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"less than a second\",\n other: \"less than {{count}} seconds\",\n },\n\n xSeconds: {\n one: \"1 second\",\n other: \"{{count}} seconds\",\n },\n\n halfAMinute: \"half a minute\",\n\n lessThanXMinutes: {\n one: \"less than a minute\",\n other: \"less than {{count}} minutes\",\n },\n\n xMinutes: {\n one: \"1 minute\",\n other: \"{{count}} minutes\",\n },\n\n aboutXHours: {\n one: \"about 1 hour\",\n other: \"about {{count}} hours\",\n },\n\n xHours: {\n one: \"1 hour\",\n other: \"{{count}} hours\",\n },\n\n xDays: {\n one: \"1 day\",\n other: \"{{count}} days\",\n },\n\n aboutXWeeks: {\n one: \"about 1 week\",\n other: \"about {{count}} weeks\",\n },\n\n xWeeks: {\n one: \"1 week\",\n other: \"{{count}} weeks\",\n },\n\n aboutXMonths: {\n one: \"about 1 month\",\n other: \"about {{count}} months\",\n },\n\n xMonths: {\n one: \"1 month\",\n other: \"{{count}} months\",\n },\n\n aboutXYears: {\n one: \"about 1 year\",\n other: \"about {{count}} years\",\n },\n\n xYears: {\n one: \"1 year\",\n other: \"{{count}} years\",\n },\n\n overXYears: {\n one: \"over 1 year\",\n other: \"over {{count}} years\",\n },\n\n almostXYears: {\n one: \"almost 1 year\",\n other: \"almost {{count}} years\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", count.toString());\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"in \" + result;\n } else {\n return result + \" ago\";\n }\n }\n\n return result;\n};\n","const formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"B\", \"A\"],\n abbreviated: [\"BC\", \"AD\"],\n wide: [\"Before Christ\", \"Anno Domini\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n wide: [\"1st quarter\", \"2nd quarter\", \"3rd quarter\", \"4th quarter\"],\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nconst monthValues = {\n narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"],\n short: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n abbreviated: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"morning\",\n afternoon: \"afternoon\",\n evening: \"evening\",\n night: \"night\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mi\",\n noon: \"n\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"midnight\",\n noon: \"noon\",\n morning: \"in the morning\",\n afternoon: \"in the afternoon\",\n evening: \"in the evening\",\n night: \"at night\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n const number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n const rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + \"st\";\n case 2:\n return number + \"nd\";\n case 3:\n return number + \"rd\";\n }\n }\n return number + \"th\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i,\n};\nconst parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^f/i,\n /^mar/i,\n /^ap/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^au/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i,\n};\nconst parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, MMMM do, y\",\n long: \"MMMM do, y\",\n medium: \"MMM d, y\",\n short: \"MM/dd/yyyy\",\n};\n\nconst timeFormats = {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","import { formatDistance } from \"./en-US/_lib/formatDistance.js\";\nimport { formatLong } from \"./en-US/_lib/formatLong.js\";\nimport { formatRelative } from \"./en-US/_lib/formatRelative.js\";\nimport { localize } from \"./en-US/_lib/localize.js\";\nimport { match } from \"./en-US/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const enUS = {\n code: \"en-US\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default enUS;\n","const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","/**\n * Time zone name format.\n */\n\n/**\n * The function returns the time zone name for the given date in the specified\n * time zone.\n *\n * It uses the `Intl.DateTimeFormat` API and by default outputs the time zone\n * name in a long format, e.g. \"Pacific Standard Time\" or\n * \"Singapore Standard Time\".\n *\n * It is possible to specify the format as the third argument using one of the following options\n *\n * - \"short\": e.g. \"EDT\" or \"GMT+8\".\n * - \"long\": e.g. \"Eastern Daylight Time\".\n * - \"shortGeneric\": e.g. \"ET\" or \"Singapore Time\".\n * - \"longGeneric\": e.g. \"Eastern Time\" or \"Singapore Standard Time\".\n *\n * These options correspond to TR35 tokens `z..zzz`, `zzzz`, `v`, and `vvvv` respectively: https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-zone\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date object to get the time zone name for\n * @param format - Optional format of the time zone name. Defaults to \"long\". Can be \"short\", \"long\", \"shortGeneric\", or \"longGeneric\".\n *\n * @returns Time zone name (e.g. \"Singapore Standard Time\")\n */\nexport function tzName(timeZone, date, format = \"long\") {\n return new Intl.DateTimeFormat(\"en-US\", {\n // Enforces engine to render the time. Without the option JavaScriptCore omits it.\n hour: \"numeric\",\n timeZone: timeZone,\n timeZoneName: format\n }).format(date).split(/\\s/g) // Format.JS uses non-breaking spaces\n .slice(2) // Skip the hour and AM/PM parts\n .join(\" \");\n}","const offsetFormatCache = {};\nconst offsetCache = {};\n\n/**\n * The function extracts UTC offset in minutes from the given date in specified\n * time zone.\n *\n * Unlike `Date.prototype.getTimezoneOffset`, this function returns the value\n * mirrored to the sign of the offset in the time zone. For Asia/Singapore\n * (UTC+8), `tzOffset` returns 480, while `getTimezoneOffset` returns -480.\n *\n * @param timeZone - Time zone name (IANA or UTC offset)\n * @param date - Date to check the offset for\n *\n * @returns UTC offset in minutes\n */\nexport function tzOffset(timeZone, date) {\n try {\n const format = offsetFormatCache[timeZone] ||= new Intl.DateTimeFormat(\"en-US\", {\n timeZone,\n timeZoneName: \"longOffset\"\n }).format;\n const offsetStr = format(date).split(\"GMT\")[1];\n if (offsetStr in offsetCache) return offsetCache[offsetStr];\n return calcOffset(offsetStr, offsetStr.split(\":\"));\n } catch {\n // Fallback to manual parsing if the runtime doesn't support ±HH:MM/±HHMM/±HH\n // See: https://github.com/nodejs/node/issues/53419\n if (timeZone in offsetCache) return offsetCache[timeZone];\n const captures = timeZone?.match(offsetRe);\n if (captures) return calcOffset(timeZone, captures.slice(1));\n return NaN;\n }\n}\nconst offsetRe = /([+-]\\d\\d):?(\\d\\d)?/;\nfunction calcOffset(cacheStr, values) {\n const hours = +(values[0] || 0);\n const minutes = +(values[1] || 0);\n // Convert seconds to minutes by dividing by 60 to keep the function return in minutes.\n const seconds = +(values[2] || 0) / 60;\n return offsetCache[cacheStr] = hours * 60 + minutes > 0 ? hours * 60 + minutes + seconds : hours * 60 - minutes - seconds;\n}","import { tzOffset } from \"../tzOffset/index.js\";\nexport class TZDateMini extends Date {\n //#region static\n\n constructor(...args) {\n super();\n if (args.length > 1 && typeof args[args.length - 1] === \"string\") {\n this.timeZone = args.pop();\n }\n this.internal = new Date();\n if (isNaN(tzOffset(this.timeZone, this))) {\n this.setTime(NaN);\n } else {\n if (!args.length) {\n this.setTime(Date.now());\n } else if (typeof args[0] === \"number\" && (args.length === 1 || args.length === 2 && typeof args[1] !== \"number\")) {\n this.setTime(args[0]);\n } else if (typeof args[0] === \"string\") {\n this.setTime(+new Date(args[0]));\n } else if (args[0] instanceof Date) {\n this.setTime(+args[0]);\n } else {\n this.setTime(+new Date(...args));\n adjustToSystemTZ(this, NaN);\n syncToInternal(this);\n }\n }\n }\n static tz(tz, ...args) {\n return args.length ? new TZDateMini(...args, tz) : new TZDateMini(Date.now(), tz);\n }\n\n //#endregion\n\n //#region time zone\n\n withTimeZone(timeZone) {\n return new TZDateMini(+this, timeZone);\n }\n getTimezoneOffset() {\n const offset = -tzOffset(this.timeZone, this);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n return offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n }\n\n //#endregion\n\n //#region time\n\n setTime(time) {\n Date.prototype.setTime.apply(this, arguments);\n syncToInternal(this);\n return +this;\n }\n\n //#endregion\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDateMini(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}\n\n// Assign getters and setters\nconst re = /^(get|set)(?!UTC)/;\nObject.getOwnPropertyNames(Date.prototype).forEach(method => {\n if (!re.test(method)) return;\n const utcMethod = method.replace(re, \"$1UTC\");\n // Filter out methods without UTC counterparts\n if (!TZDateMini.prototype[utcMethod]) return;\n if (method.startsWith(\"get\")) {\n // Delegate to internal date's UTC method\n TZDateMini.prototype[method] = function () {\n return this.internal[utcMethod]();\n };\n } else {\n // Assign regular setter\n TZDateMini.prototype[method] = function () {\n Date.prototype[utcMethod].apply(this.internal, arguments);\n syncFromInternal(this);\n return +this;\n };\n\n // Assign UTC setter\n TZDateMini.prototype[utcMethod] = function () {\n Date.prototype[utcMethod].apply(this, arguments);\n syncToInternal(this);\n return +this;\n };\n }\n});\n\n/**\n * Function syncs time to internal date, applying the time zone offset.\n *\n * @param {Date} date - Date to sync\n */\nfunction syncToInternal(date) {\n date.internal.setTime(+date);\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() - Math.round(-tzOffset(date.timeZone, date) * 60));\n}\n\n/**\n * Function syncs the internal date UTC values to the date. It allows to get\n * accurate timestamp value.\n *\n * @param {Date} date - The date to sync\n */\nfunction syncFromInternal(date) {\n // First we transpose the internal values\n Date.prototype.setFullYear.call(date, date.internal.getUTCFullYear(), date.internal.getUTCMonth(), date.internal.getUTCDate());\n Date.prototype.setHours.call(date, date.internal.getUTCHours(), date.internal.getUTCMinutes(), date.internal.getUTCSeconds(), date.internal.getUTCMilliseconds());\n\n // Now we have to adjust the date to the system time zone\n adjustToSystemTZ(date);\n}\n\n/**\n * Function adjusts the date to the system time zone. It uses the time zone\n * differences to calculate the offset and adjust the date.\n *\n * @param {Date} date - Date to adjust\n */\nfunction adjustToSystemTZ(date) {\n // Save the time zone offset before all the adjustments\n const baseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const offset = baseOffset > 0 ? Math.floor(baseOffset) : Math.ceil(baseOffset);\n //#region System DST adjustment\n\n // The biggest problem with using the system time zone is that when we create\n // a date from internal values stored in UTC, the system time zone might end\n // up on the DST hour:\n //\n // $ TZ=America/New_York node\n // > new Date(2020, 2, 8, 1).toString()\n // 'Sun Mar 08 2020 01:00:00 GMT-0500 (Eastern Standard Time)'\n // > new Date(2020, 2, 8, 2).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 3).toString()\n // 'Sun Mar 08 2020 03:00:00 GMT-0400 (Eastern Daylight Time)'\n // > new Date(2020, 2, 8, 4).toString()\n // 'Sun Mar 08 2020 04:00:00 GMT-0400 (Eastern Daylight Time)'\n //\n // Here we get the same hour for both 2 and 3, because the system time zone\n // has DST beginning at 8 March 2020, 2 a.m. and jumps to 3 a.m. So we have\n // to adjust the internal date to reflect that.\n //\n // However we want to adjust only if that's the DST hour the change happenes,\n // not the hour where DST moves to.\n\n // We calculate the previous hour to see if the time zone offset has changed\n // and we have landed on the DST hour.\n const prevHour = new Date(+date);\n // We use UTC methods here as we don't want to land on the same hour again\n // in case of DST.\n prevHour.setUTCHours(prevHour.getUTCHours() - 1);\n\n // Calculate if we are on the system DST hour.\n const systemOffset = -new Date(+date).getTimezoneOffset();\n const prevHourSystemOffset = -new Date(+prevHour).getTimezoneOffset();\n const systemDSTChange = systemOffset - prevHourSystemOffset;\n // Detect the DST shift. System DST change will occur both on\n const dstShift = Date.prototype.getHours.apply(date) !== date.internal.getUTCHours();\n\n // Move the internal date when we are on the system DST hour.\n if (systemDSTChange && dstShift) date.internal.setUTCMinutes(date.internal.getUTCMinutes() + systemDSTChange);\n\n //#endregion\n\n //#region System diff adjustment\n\n // Now we need to adjust the date, since we just applied internal values.\n // We need to calculate the difference between the system and date time zones\n // and apply it to the date.\n\n const offsetDiff = systemOffset - offset;\n if (offsetDiff) Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetDiff);\n\n //#endregion\n\n //#region Seconds System diff adjustment\n\n const systemDate = new Date(+date);\n // Set the UTC seconds to 0 to isolate the timezone offset in seconds.\n systemDate.setUTCSeconds(0);\n // For negative systemOffset, invert the seconds.\n const systemSecondsOffset = systemOffset > 0 ? systemDate.getSeconds() : (systemDate.getSeconds() - 60) % 60;\n\n // Calculate the seconds offset based on the timezone offset.\n const secondsOffset = Math.round(-(tzOffset(date.timeZone, date) * 60)) % 60;\n if (secondsOffset || systemSecondsOffset) {\n date.internal.setUTCSeconds(date.internal.getUTCSeconds() + secondsOffset);\n Date.prototype.setUTCSeconds.call(date, Date.prototype.getUTCSeconds.call(date) + secondsOffset + systemSecondsOffset);\n }\n\n //#endregion\n\n //#region Post-adjustment DST fix\n\n const postBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const postOffset = postBaseOffset > 0 ? Math.floor(postBaseOffset) : Math.ceil(postBaseOffset);\n const postSystemOffset = -new Date(+date).getTimezoneOffset();\n const postOffsetDiff = postSystemOffset - postOffset;\n const offsetChanged = postOffset !== offset;\n const postDiff = postOffsetDiff - offsetDiff;\n if (offsetChanged && postDiff) {\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + postDiff);\n\n // Now we need to check if got offset change during the post-adjustment.\n // If so, we also need both dates to reflect that.\n\n const newBaseOffset = tzOffset(date.timeZone, date);\n // Remove the seconds offset\n // use Math.floor for negative GMT timezones and Math.ceil for positive GMT timezones.\n const newOffset = newBaseOffset > 0 ? Math.floor(newBaseOffset) : Math.ceil(newBaseOffset);\n const offsetChange = postOffset - newOffset;\n if (offsetChange) {\n date.internal.setUTCMinutes(date.internal.getUTCMinutes() + offsetChange);\n Date.prototype.setUTCMinutes.call(date, Date.prototype.getUTCMinutes.call(date) + offsetChange);\n }\n }\n\n //#endregion\n}","import { tzName } from \"../tzName/index.js\";\nimport { TZDateMini } from \"./mini.js\";\nexport class TZDate extends TZDateMini {\n //#region static\n\n static tz(tz, ...args) {\n return args.length ? new TZDate(...args, tz) : new TZDate(Date.now(), tz);\n }\n\n //#endregion\n\n //#region representation\n\n toISOString() {\n const [sign, hours, minutes] = this.tzComponents();\n const tz = `${sign}${hours}:${minutes}`;\n return this.internal.toISOString().slice(0, -1) + tz;\n }\n toString() {\n // \"Tue Aug 13 2024 07:50:19 GMT+0800 (Singapore Standard Time)\";\n return `${this.toDateString()} ${this.toTimeString()}`;\n }\n toDateString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const [day, date, month, year] = this.internal.toUTCString().split(\" \");\n // \"Tue Aug 13 2024\"\n return `${day?.slice(0, -1) /* Remove \",\" */} ${month} ${date} ${year}`;\n }\n toTimeString() {\n // toUTCString returns RFC 7231 (\"Mon, 12 Aug 2024 23:36:08 GMT\")\n const time = this.internal.toUTCString().split(\" \")[4];\n const [sign, hours, minutes] = this.tzComponents();\n // \"07:42:23 GMT+0800 (Singapore Standard Time)\"\n return `${time} GMT${sign}${hours}${minutes} (${tzName(this.timeZone, this)})`;\n }\n toLocaleString(locales, options) {\n return Date.prototype.toLocaleString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleDateString(locales, options) {\n return Date.prototype.toLocaleDateString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n toLocaleTimeString(locales, options) {\n return Date.prototype.toLocaleTimeString.call(this, locales, {\n ...options,\n timeZone: options?.timeZone || this.timeZone\n });\n }\n\n //#endregion\n\n //#region private\n\n tzComponents() {\n const offset = this.getTimezoneOffset();\n const sign = offset > 0 ? \"-\" : \"+\";\n const hours = String(Math.floor(Math.abs(offset) / 60)).padStart(2, \"0\");\n const minutes = String(Math.abs(offset) % 60).padStart(2, \"0\");\n return [sign, hours, minutes];\n }\n\n //#endregion\n\n withTimeZone(timeZone) {\n return new TZDate(+this, timeZone);\n }\n\n //#region date-fns integration\n\n [Symbol.for(\"constructDateFrom\")](date) {\n return new TZDate(+new Date(date), this.timeZone);\n }\n\n //#endregion\n}","const FIVE_WEEKS = 5;\nconst FOUR_WEEKS = 4;\n/**\n * Returns the number of weeks to display in the broadcast calendar for a given\n * month.\n *\n * The broadcast calendar may have either 4 or 5 weeks in a month, depending on\n * the start and end dates of the broadcast weeks.\n *\n * @since 9.4.0\n * @param month The month for which to calculate the number of weeks.\n * @param dateLib The date library to use for date manipulation.\n * @returns The number of weeks in the broadcast calendar (4 or 5).\n */\nexport function getBroadcastWeeksInMonth(month, dateLib) {\n // Get the first day of the month\n const firstDayOfMonth = dateLib.startOfMonth(month);\n // Get the day of the week for the first day of the month (1-7, where 1 is Monday)\n const firstDayOfWeek = firstDayOfMonth.getDay() > 0 ? firstDayOfMonth.getDay() : 7;\n const broadcastStartDate = dateLib.addDays(month, -firstDayOfWeek + 1);\n const lastDateOfLastWeek = dateLib.addDays(broadcastStartDate, FIVE_WEEKS * 7 - 1);\n const numberOfWeeks = dateLib.getMonth(month) === dateLib.getMonth(lastDateOfLastWeek)\n ? FIVE_WEEKS\n : FOUR_WEEKS;\n return numberOfWeeks;\n}\n","/**\n * Returns the start date of the week in the broadcast calendar.\n *\n * The broadcast week starts on Monday. If the first day of the month is not a\n * Monday, this function calculates the previous Monday as the start of the\n * broadcast week.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the start of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The start date of the broadcast week.\n */\nexport function startOfBroadcastWeek(date, dateLib) {\n const firstOfMonth = dateLib.startOfMonth(date);\n const dayOfWeek = firstOfMonth.getDay();\n if (dayOfWeek === 1) {\n return firstOfMonth;\n }\n else if (dayOfWeek === 0) {\n return dateLib.addDays(firstOfMonth, -1 * 6);\n }\n else {\n return dateLib.addDays(firstOfMonth, -1 * (dayOfWeek - 1));\n }\n}\n","import { getBroadcastWeeksInMonth } from \"./getBroadcastWeeksInMonth.js\";\nimport { startOfBroadcastWeek } from \"./startOfBroadcastWeek.js\";\n/**\n * Returns the end date of the week in the broadcast calendar.\n *\n * The broadcast week ends on the last day of the last broadcast week for the\n * given date.\n *\n * @since 9.4.0\n * @param date The date for which to calculate the end of the broadcast week.\n * @param dateLib The date library to use for date manipulation.\n * @returns The end date of the broadcast week.\n */\nexport function endOfBroadcastWeek(date, dateLib) {\n const startDate = startOfBroadcastWeek(date, dateLib);\n const numberOfWeeks = getBroadcastWeeksInMonth(date, dateLib);\n const endDate = dateLib.addDays(startDate, numberOfWeeks * 7 - 1);\n return endDate;\n}\n","import { format } from \"date-fns\";\nimport { enUS as dateFnsEnUS } from \"date-fns/locale\";\n/** English (United States) locale extended with DayPicker-specific translations. */\nexport const enUS = {\n ...dateFnsEnUS,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers.today)\n label = `Today, ${label}`;\n if (modifiers.selected)\n label = `${label}, selected`;\n return label;\n },\n labelMonthDropdown: \"Choose the Month\",\n labelNext: \"Go to the Next Month\",\n labelPrevious: \"Go to the Previous Month\",\n labelWeekNumber: (weekNumber) => `Week ${weekNumber}`,\n labelYearDropdown: \"Choose the Year\",\n labelGrid: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"LLLL yyyy\");\n },\n labelGridcell: (date, modifiers, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n let label = formatDate(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Today, ${label}`;\n }\n return label;\n },\n labelNav: \"Navigation bar\",\n labelWeekNumberHeader: \"Week Number\",\n labelWeekday: (date, options, dateLib) => {\n let formatDate;\n if (dateLib && typeof dateLib.format === \"function\") {\n formatDate = dateLib.format.bind(dateLib);\n }\n else {\n formatDate = (d, pattern) => format(d, pattern, { locale: dateFnsEnUS, ...options });\n }\n return formatDate(date, \"cccc\");\n },\n },\n};\n","import { TZDate } from \"@date-fns/tz\";\nimport { addDays, addMonths, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, eachMonthOfInterval, eachYearOfInterval, endOfISOWeek, endOfMonth, endOfWeek, endOfYear, format, getISOWeek, getMonth, getWeek, getYear, isAfter, isBefore, isDate, isSameDay, isSameMonth, isSameYear, max, min, setMonth, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfWeek, startOfYear, } from \"date-fns\";\nimport { endOfBroadcastWeek } from \"../helpers/endOfBroadcastWeek.js\";\nimport { startOfBroadcastWeek } from \"../helpers/startOfBroadcastWeek.js\";\nimport { enUS } from \"../locale/en-US.js\";\n/**\n * A wrapper class around [date-fns](http://date-fns.org) that provides utility\n * methods for date manipulation and formatting.\n *\n * @since 9.2.0\n * @example\n * const dateLib = new DateLib({ locale: es });\n * const newDate = dateLib.addDays(new Date(), 5);\n */\nexport class DateLib {\n /**\n * Creates an instance of `DateLib`.\n *\n * @param options Configuration options for the date library.\n * @param overrides Custom overrides for the date library functions.\n */\n constructor(options, overrides) {\n /**\n * Reference to the built-in Date constructor.\n *\n * @deprecated Use `newDate()` or `today()`.\n */\n this.Date = Date;\n /**\n * Creates a new `Date` object representing today's date.\n *\n * @since 9.5.0\n * @returns A `Date` object for today's date.\n */\n this.today = () => {\n if (this.overrides?.today) {\n return this.overrides.today();\n }\n if (this.options.timeZone) {\n return TZDate.tz(this.options.timeZone);\n }\n return new this.Date();\n };\n /**\n * Creates a new `Date` object with the specified year, month, and day.\n *\n * @since 9.5.0\n * @param year The year.\n * @param monthIndex The month (0-11).\n * @param date The day of the month.\n * @returns A new `Date` object.\n */\n this.newDate = (year, monthIndex, date) => {\n if (this.overrides?.newDate) {\n return this.overrides.newDate(year, monthIndex, date);\n }\n if (this.options.timeZone) {\n return new TZDate(year, monthIndex, date, this.options.timeZone);\n }\n return new Date(year, monthIndex, date);\n };\n /**\n * Adds the specified number of days to the given date.\n *\n * @param date The date to add days to.\n * @param amount The number of days to add.\n * @returns The new date with the days added.\n */\n this.addDays = (date, amount) => {\n return this.overrides?.addDays\n ? this.overrides.addDays(date, amount)\n : addDays(date, amount);\n };\n /**\n * Adds the specified number of months to the given date.\n *\n * @param date The date to add months to.\n * @param amount The number of months to add.\n * @returns The new date with the months added.\n */\n this.addMonths = (date, amount) => {\n return this.overrides?.addMonths\n ? this.overrides.addMonths(date, amount)\n : addMonths(date, amount);\n };\n /**\n * Adds the specified number of weeks to the given date.\n *\n * @param date The date to add weeks to.\n * @param amount The number of weeks to add.\n * @returns The new date with the weeks added.\n */\n this.addWeeks = (date, amount) => {\n return this.overrides?.addWeeks\n ? this.overrides.addWeeks(date, amount)\n : addWeeks(date, amount);\n };\n /**\n * Adds the specified number of years to the given date.\n *\n * @param date The date to add years to.\n * @param amount The number of years to add.\n * @returns The new date with the years added.\n */\n this.addYears = (date, amount) => {\n return this.overrides?.addYears\n ? this.overrides.addYears(date, amount)\n : addYears(date, amount);\n };\n /**\n * Returns the number of calendar days between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar days between the dates.\n */\n this.differenceInCalendarDays = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarDays\n ? this.overrides.differenceInCalendarDays(dateLeft, dateRight)\n : differenceInCalendarDays(dateLeft, dateRight);\n };\n /**\n * Returns the number of calendar months between the given dates.\n *\n * @param dateLeft The later date.\n * @param dateRight The earlier date.\n * @returns The number of calendar months between the dates.\n */\n this.differenceInCalendarMonths = (dateLeft, dateRight) => {\n return this.overrides?.differenceInCalendarMonths\n ? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)\n : differenceInCalendarMonths(dateLeft, dateRight);\n };\n /**\n * Returns the months between the given dates.\n *\n * @param interval The interval to get the months for.\n */\n this.eachMonthOfInterval = (interval) => {\n return this.overrides?.eachMonthOfInterval\n ? this.overrides.eachMonthOfInterval(interval)\n : eachMonthOfInterval(interval);\n };\n /**\n * Returns the years between the given dates.\n *\n * @since 9.11.1\n * @param interval The interval to get the years for.\n * @returns The array of years in the interval.\n */\n this.eachYearOfInterval = (interval) => {\n const years = this.overrides?.eachYearOfInterval\n ? this.overrides.eachYearOfInterval(interval)\n : eachYearOfInterval(interval);\n // Remove duplicates that may happen across DST transitions (e.g., \"America/Sao_Paulo\")\n // See https://github.com/date-fns/tz/issues/72\n const uniqueYears = new Set(years.map((d) => this.getYear(d)));\n if (uniqueYears.size === years.length) {\n // No duplicates, return as is\n return years;\n }\n // Rebuild the array to ensure one date per year\n const yearsArray = [];\n uniqueYears.forEach((y) => {\n yearsArray.push(new Date(y, 0, 1));\n });\n return yearsArray;\n };\n /**\n * Returns the end of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The end of the broadcast week.\n */\n this.endOfBroadcastWeek = (date) => {\n return this.overrides?.endOfBroadcastWeek\n ? this.overrides.endOfBroadcastWeek(date)\n : endOfBroadcastWeek(date, this);\n };\n /**\n * Returns the end of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The end of the ISO week.\n */\n this.endOfISOWeek = (date) => {\n return this.overrides?.endOfISOWeek\n ? this.overrides.endOfISOWeek(date)\n : endOfISOWeek(date);\n };\n /**\n * Returns the end of the month for the given date.\n *\n * @param date The original date.\n * @returns The end of the month.\n */\n this.endOfMonth = (date) => {\n return this.overrides?.endOfMonth\n ? this.overrides.endOfMonth(date)\n : endOfMonth(date);\n };\n /**\n * Returns the end of the week for the given date.\n *\n * @param date The original date.\n * @returns The end of the week.\n */\n this.endOfWeek = (date, options) => {\n return this.overrides?.endOfWeek\n ? this.overrides.endOfWeek(date, options)\n : endOfWeek(date, this.options);\n };\n /**\n * Returns the end of the year for the given date.\n *\n * @param date The original date.\n * @returns The end of the year.\n */\n this.endOfYear = (date) => {\n return this.overrides?.endOfYear\n ? this.overrides.endOfYear(date)\n : endOfYear(date);\n };\n /**\n * Formats the given date using the specified format string.\n *\n * @param date The date to format.\n * @param formatStr The format string.\n * @returns The formatted date string.\n */\n this.format = (date, formatStr, _options) => {\n const formatted = this.overrides?.format\n ? this.overrides.format(date, formatStr, this.options)\n : format(date, formatStr, this.options);\n if (this.options.numerals && this.options.numerals !== \"latn\") {\n return this.replaceDigits(formatted);\n }\n return formatted;\n };\n /**\n * Returns the ISO week number for the given date.\n *\n * @param date The date to get the ISO week number for.\n * @returns The ISO week number.\n */\n this.getISOWeek = (date) => {\n return this.overrides?.getISOWeek\n ? this.overrides.getISOWeek(date)\n : getISOWeek(date);\n };\n /**\n * Returns the month of the given date.\n *\n * @param date The date to get the month for.\n * @returns The month.\n */\n this.getMonth = (date, _options) => {\n return this.overrides?.getMonth\n ? this.overrides.getMonth(date, this.options)\n : getMonth(date, this.options);\n };\n /**\n * Returns the year of the given date.\n *\n * @param date The date to get the year for.\n * @returns The year.\n */\n this.getYear = (date, _options) => {\n return this.overrides?.getYear\n ? this.overrides.getYear(date, this.options)\n : getYear(date, this.options);\n };\n /**\n * Returns the local week number for the given date.\n *\n * @param date The date to get the week number for.\n * @returns The week number.\n */\n this.getWeek = (date, _options) => {\n return this.overrides?.getWeek\n ? this.overrides.getWeek(date, this.options)\n : getWeek(date, this.options);\n };\n /**\n * Checks if the first date is after the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is after the second date.\n */\n this.isAfter = (date, dateToCompare) => {\n return this.overrides?.isAfter\n ? this.overrides.isAfter(date, dateToCompare)\n : isAfter(date, dateToCompare);\n };\n /**\n * Checks if the first date is before the second date.\n *\n * @param date The date to compare.\n * @param dateToCompare The date to compare with.\n * @returns True if the first date is before the second date.\n */\n this.isBefore = (date, dateToCompare) => {\n return this.overrides?.isBefore\n ? this.overrides.isBefore(date, dateToCompare)\n : isBefore(date, dateToCompare);\n };\n /**\n * Checks if the given value is a Date object.\n *\n * @param value The value to check.\n * @returns True if the value is a Date object.\n */\n this.isDate = (value) => {\n return this.overrides?.isDate\n ? this.overrides.isDate(value)\n : isDate(value);\n };\n /**\n * Checks if the given dates are on the same day.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are on the same day.\n */\n this.isSameDay = (dateLeft, dateRight) => {\n return this.overrides?.isSameDay\n ? this.overrides.isSameDay(dateLeft, dateRight)\n : isSameDay(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same month.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same month.\n */\n this.isSameMonth = (dateLeft, dateRight) => {\n return this.overrides?.isSameMonth\n ? this.overrides.isSameMonth(dateLeft, dateRight)\n : isSameMonth(dateLeft, dateRight);\n };\n /**\n * Checks if the given dates are in the same year.\n *\n * @param dateLeft The first date to compare.\n * @param dateRight The second date to compare.\n * @returns True if the dates are in the same year.\n */\n this.isSameYear = (dateLeft, dateRight) => {\n return this.overrides?.isSameYear\n ? this.overrides.isSameYear(dateLeft, dateRight)\n : isSameYear(dateLeft, dateRight);\n };\n /**\n * Returns the latest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The latest date.\n */\n this.max = (dates) => {\n return this.overrides?.max ? this.overrides.max(dates) : max(dates);\n };\n /**\n * Returns the earliest date in the given array of dates.\n *\n * @param dates The array of dates to compare.\n * @returns The earliest date.\n */\n this.min = (dates) => {\n return this.overrides?.min ? this.overrides.min(dates) : min(dates);\n };\n /**\n * Sets the month of the given date.\n *\n * @param date The date to set the month on.\n * @param month The month to set (0-11).\n * @returns The new date with the month set.\n */\n this.setMonth = (date, month) => {\n return this.overrides?.setMonth\n ? this.overrides.setMonth(date, month)\n : setMonth(date, month);\n };\n /**\n * Sets the year of the given date.\n *\n * @param date The date to set the year on.\n * @param year The year to set.\n * @returns The new date with the year set.\n */\n this.setYear = (date, year) => {\n return this.overrides?.setYear\n ? this.overrides.setYear(date, year)\n : setYear(date, year);\n };\n /**\n * Returns the start of the broadcast week for the given date.\n *\n * @param date The original date.\n * @returns The start of the broadcast week.\n */\n this.startOfBroadcastWeek = (date, _dateLib) => {\n return this.overrides?.startOfBroadcastWeek\n ? this.overrides.startOfBroadcastWeek(date, this)\n : startOfBroadcastWeek(date, this);\n };\n /**\n * Returns the start of the day for the given date.\n *\n * @param date The original date.\n * @returns The start of the day.\n */\n this.startOfDay = (date) => {\n return this.overrides?.startOfDay\n ? this.overrides.startOfDay(date)\n : startOfDay(date);\n };\n /**\n * Returns the start of the ISO week for the given date.\n *\n * @param date The original date.\n * @returns The start of the ISO week.\n */\n this.startOfISOWeek = (date) => {\n return this.overrides?.startOfISOWeek\n ? this.overrides.startOfISOWeek(date)\n : startOfISOWeek(date);\n };\n /**\n * Returns the start of the month for the given date.\n *\n * @param date The original date.\n * @returns The start of the month.\n */\n this.startOfMonth = (date) => {\n return this.overrides?.startOfMonth\n ? this.overrides.startOfMonth(date)\n : startOfMonth(date);\n };\n /**\n * Returns the start of the week for the given date.\n *\n * @param date The original date.\n * @returns The start of the week.\n */\n this.startOfWeek = (date, _options) => {\n return this.overrides?.startOfWeek\n ? this.overrides.startOfWeek(date, this.options)\n : startOfWeek(date, this.options);\n };\n /**\n * Returns the start of the year for the given date.\n *\n * @param date The original date.\n * @returns The start of the year.\n */\n this.startOfYear = (date) => {\n return this.overrides?.startOfYear\n ? this.overrides.startOfYear(date)\n : startOfYear(date);\n };\n this.options = { locale: enUS, ...options };\n this.overrides = overrides;\n }\n /**\n * Generates a mapping of Arabic digits (0-9) to the target numbering system\n * digits.\n *\n * @since 9.5.0\n * @returns A record mapping Arabic digits to the target numerals.\n */\n getDigitMap() {\n const { numerals = \"latn\" } = this.options;\n // Use Intl.NumberFormat to create a formatter with the specified numbering system\n const formatter = new Intl.NumberFormat(\"en-US\", {\n numberingSystem: numerals,\n });\n // Map Arabic digits (0-9) to the target numerals\n const digitMap = {};\n for (let i = 0; i < 10; i++) {\n digitMap[i.toString()] = formatter.format(i);\n }\n return digitMap;\n }\n /**\n * Replaces Arabic digits in a string with the target numbering system digits.\n *\n * @since 9.5.0\n * @param input The string containing Arabic digits.\n * @returns The string with digits replaced.\n */\n replaceDigits(input) {\n const digitMap = this.getDigitMap();\n return input.replace(/\\d/g, (digit) => digitMap[digit] || digit);\n }\n /**\n * Formats a number using the configured numbering system.\n *\n * @since 9.5.0\n * @param value The number to format.\n * @returns The formatted number as a string.\n */\n formatNumber(value) {\n return this.replaceDigits(value.toString());\n }\n /**\n * Returns the preferred ordering for month and year labels for the current\n * locale.\n */\n getMonthYearOrder() {\n const code = this.options.locale?.code;\n if (!code) {\n return \"month-first\";\n }\n return DateLib.yearFirstLocales.has(code) ? \"year-first\" : \"month-first\";\n }\n /**\n * Formats the month/year pair respecting locale conventions.\n *\n * @since 9.11.0\n */\n formatMonthYear(date) {\n const { locale, timeZone, numerals } = this.options;\n const localeCode = locale?.code;\n if (localeCode && DateLib.yearFirstLocales.has(localeCode)) {\n try {\n const intl = new Intl.DateTimeFormat(localeCode, {\n month: \"long\",\n year: \"numeric\",\n timeZone,\n numberingSystem: numerals,\n });\n const formatted = intl.format(date);\n return formatted;\n }\n catch {\n // Fallback to date-fns formatting below.\n }\n }\n const pattern = this.getMonthYearOrder() === \"year-first\" ? \"y LLLL\" : \"LLLL y\";\n return this.format(date, pattern);\n }\n}\nDateLib.yearFirstLocales = new Set([\n \"eu\",\n \"hu\",\n \"ja\",\n \"ja-Hira\",\n \"ja-JP\",\n \"ko\",\n \"ko-KR\",\n \"lt\",\n \"lt-LT\",\n \"lv\",\n \"lv-LV\",\n \"mn\",\n \"mn-MN\",\n \"zh\",\n \"zh-CN\",\n \"zh-HK\",\n \"zh-TW\",\n]);\n/** The default locale (English). */\nexport { enUS as defaultLocale } from \"../locale/en-US.js\";\n/**\n * The default date library with English locale.\n *\n * @since 9.2.0\n */\nexport const defaultDateLib = new DateLib();\n/**\n * @ignore\n * @deprecated Use `defaultDateLib`.\n */\nexport const dateLib = defaultDateLib;\n","import { ptBR as dateFnsPtBR } from \"date-fns/locale\";\nimport { DateLib } from \"../classes/DateLib.js\";\n/** Portuguese (Brazil) locale extended with DayPicker-specific translations. */\nexport const ptBR = {\n ...dateFnsPtBR,\n labels: {\n labelDayButton: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers.today)\n label = `Hoje, ${label}`;\n if (modifiers.selected)\n label = `${label}, selecionado`;\n return label;\n },\n labelMonthDropdown: \"Escolha o mês\",\n labelNext: \"Ir para o próximo mês\",\n labelPrevious: \"Ir para o mês anterior\",\n labelWeekNumber: (weekNumber) => `Semana ${weekNumber}`,\n labelYearDropdown: \"Escolha o ano\",\n labelGrid: (date, options, dateLib) => (dateLib ?? new DateLib(options)).formatMonthYear(date),\n labelGridcell: (date, modifiers, options, dateLib) => {\n const lib = dateLib ?? new DateLib(options);\n let label = lib.format(date, \"PPPP\");\n if (modifiers?.today) {\n label = `Hoje, ${label}`;\n }\n return label;\n },\n labelNav: \"Barra de navegação\",\n labelWeekNumberHeader: \"Número da semana\",\n labelWeekday: (date, options, dateLib) => (dateLib ?? new DateLib(options)).format(date, \"cccc\"),\n },\n};\n","import {\r\n ChevronDown16Regular,\r\n ChevronLeft16Regular,\r\n ChevronRight16Regular,\r\n ChevronUp16Regular,\r\n} from \"@fluentui/react-icons\";\r\nimport clsx from \"clsx\";\r\nimport { createContext, useContext, useState } from \"react\";\r\nimport { DayPicker } from \"react-day-picker\";\r\nimport { enUS, ptBR } from \"react-day-picker/locale\";\r\n\r\nimport styles from \"./Calendar.module.scss\";\r\n\r\nimport type { CalendarProps } from \"./Calendar.types\";\r\nimport type { MonthCaptionProps } from \"react-day-picker\";\r\n\r\ntype ChevronOrientation = \"up\" | \"down\" | \"left\" | \"right\";\r\n\r\nconst FLUENT_CHEVRON_MAP: Record<ChevronOrientation, React.ComponentType<{ className?: string; \"aria-hidden\"?: boolean }>> = {\r\n down: ChevronDown16Regular,\r\n up: ChevronUp16Regular,\r\n left: ChevronLeft16Regular,\r\n right: ChevronRight16Regular,\r\n};\r\n\r\nconst CustomChevron = ({\r\n orientation = \"left\",\r\n className,\r\n}: {\r\n className?: string;\r\n size?: number;\r\n disabled?: boolean;\r\n orientation?: ChevronOrientation;\r\n}) => {\r\n const Icon = FLUENT_CHEVRON_MAP[orientation];\r\n return <Icon className={className} aria-hidden />;\r\n};\r\n\r\ntype GridView = \"days\" | \"months\" | \"years\";\r\n\r\ninterface GridPickerContext {\r\n view: GridView;\r\n intlLocale: string;\r\n onYearLabelClick: () => void;\r\n}\r\n\r\nconst GridCtx = createContext<GridPickerContext | null>(null);\r\n\r\nconst GridMonthCaption = ({ calendarMonth, displayIndex: _displayIndex, ...divProps }: MonthCaptionProps) => {\r\n const ctx = useContext(GridCtx);\r\n const { view, intlLocale, onYearLabelClick } = ctx ?? ({} as GridPickerContext);\r\n const date = calendarMonth.date;\r\n const monthLabel = new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(date);\r\n const yearLabel = String(date.getFullYear());\r\n\r\n return (\r\n <div {...divProps}>\r\n <span className={styles.caption_grid_label}>\r\n {monthLabel}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n aria-pressed={view === \"years\"}\r\n onClick={onYearLabelClick}\r\n >\r\n {yearLabel}\r\n {view !== \"days\" ? (\r\n <ChevronUp16Regular className={styles.caption_year_chevron} aria-hidden />\r\n ) : (\r\n <ChevronDown16Regular className={styles.caption_year_chevron} aria-hidden />\r\n )}\r\n </button>\r\n </div>\r\n );\r\n};\r\n\r\nconst YEARS_PER_PAGE = 20;\r\n\r\nconst Calendar = ({\r\n selected,\r\n currentDate,\r\n defaultMonth,\r\n startMonth,\r\n endMonth,\r\n onDaySelect,\r\n onDateChange,\r\n onClear: _onClear,\r\n minDate,\r\n maxDate,\r\n disabled,\r\n format: _format,\r\n locale = \"pt-br\",\r\n autoFocus,\r\n className,\r\n id,\r\n \"aria-label\": ariaLabel,\r\n ...rest\r\n}: CalendarProps) => {\r\n const animate = true;\r\n\r\n const [internalSelected, setInternalSelected] = useState<Date | undefined>(\r\n selected ?? undefined\r\n );\r\n\r\n const [internalDisplayMonth, setInternalDisplayMonth] = useState<Date>(\r\n () => currentDate ?? defaultMonth ?? new Date()\r\n );\r\n\r\n const [gridView, setGridView] = useState<GridView>(\"days\");\r\n const [yearPageStart, setYearPageStart] = useState<number>(\r\n () => (currentDate ?? defaultMonth ?? new Date()).getFullYear() - 9\r\n );\r\n\r\n const resolvedSelected =\r\n selected !== undefined\r\n ? (selected ?? undefined)\r\n : internalSelected;\r\n\r\n const resolvedLocale = locale === \"pt-br\" ? ptBR : enUS;\r\n const intlLocale = locale === \"pt-br\" ? \"pt-BR\" : \"en-US\";\r\n\r\n const disabledMatchers = [\r\n ...(minDate ? [{ before: minDate }] : []),\r\n ...(maxDate ? [{ after: maxDate }] : []),\r\n ...(disabled ? (Array.isArray(disabled) ? disabled : [disabled]) : []),\r\n ];\r\n\r\n const handleSelect = (date: Date | undefined) => {\r\n setInternalSelected(date);\r\n if (date) {\r\n onDaySelect?.(date);\r\n }\r\n };\r\n\r\n const handleMonthChange = (date: Date) => {\r\n setInternalDisplayMonth(date);\r\n onDateChange?.(date);\r\n };\r\n\r\n const resolvedDisplayMonth = currentDate ?? internalDisplayMonth;\r\n const displayedMonthIndex = resolvedDisplayMonth.getMonth();\r\n const displayedYear = resolvedDisplayMonth.getFullYear();\r\n\r\n const startYear = startMonth?.getFullYear() ?? 1900;\r\n const endYear = endMonth?.getFullYear() ?? 2100;\r\n\r\n const handleGridMonthSelect = (monthIndex: number) => {\r\n const newDate = new Date(displayedYear, monthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"days\");\r\n };\r\n\r\n const handleGridYearSelect = (year: number) => {\r\n const newDate = new Date(year, displayedMonthIndex, 1);\r\n setInternalDisplayMonth(newDate);\r\n onDateChange?.(newDate);\r\n setGridView(\"months\");\r\n };\r\n\r\n const handleYearLabelClick = () => {\r\n setYearPageStart(displayedYear - 9);\r\n setGridView((v) => (v === \"years\" ? \"days\" : \"years\"));\r\n };\r\n\r\n const clampedYearPageStart = Math.max(startYear, yearPageStart);\r\n const yearsInPage = Array.from({ length: YEARS_PER_PAGE }, (_, i) => clampedYearPageStart + i).filter(\r\n (y) => y <= endYear\r\n );\r\n\r\n const canGoPrevYears = clampedYearPageStart - YEARS_PER_PAGE >= startYear;\r\n const canGoNextYears = clampedYearPageStart + YEARS_PER_PAGE <= endYear;\r\n\r\n const monthsGrid = Array.from({ length: 12 }, (_, i) => ({\r\n index: i,\r\n label: new Intl.DateTimeFormat(intlLocale, { month: \"short\" }).format(new Date(2000, i, 1)),\r\n disabled:\r\n (startMonth != null &&\r\n new Date(displayedYear, i, 1) < new Date(startMonth.getFullYear(), startMonth.getMonth(), 1)) ||\r\n (endMonth != null &&\r\n new Date(displayedYear, i, 1) > new Date(endMonth.getFullYear(), endMonth.getMonth(), 1)),\r\n }));\r\n\r\n const gridCtxValue: GridPickerContext = {\r\n view: gridView,\r\n intlLocale,\r\n onYearLabelClick: handleYearLabelClick,\r\n };\r\n\r\n const sharedDayPickerProps = {\r\n classNames: styles,\r\n animate,\r\n mode: \"single\" as const,\r\n selected: resolvedSelected,\r\n onSelect: handleSelect,\r\n startMonth,\r\n endMonth,\r\n disabled: disabledMatchers.length > 0 ? disabledMatchers : undefined,\r\n locale: resolvedLocale,\r\n autoFocus,\r\n \"aria-label\": ariaLabel,\r\n };\r\n\r\n return (\r\n <GridCtx.Provider value={gridCtxValue}>\r\n <div className={clsx(styles.calendar_grid_wrapper, className)}>\r\n <DayPicker\r\n id={id}\r\n {...sharedDayPickerProps}\r\n {...rest}\r\n captionLayout=\"label\"\r\n month={resolvedDisplayMonth}\r\n onMonthChange={handleMonthChange}\r\n components={{ MonthCaption: GridMonthCaption, Chevron: CustomChevron }}\r\n />\r\n {gridView !== \"days\" && (\r\n <div\r\n className={`${styles.gridOverlay}${gridView === \"years\" ? ` ${styles.gridOverlayYears}` : \"\"}`}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-label={gridView === \"months\" ? \"Selecione o mês\" : \"Selecione o ano\"}\r\n >\r\n {gridView === \"months\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de mês\"\r\n >\r\n {displayedYear}\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </button>\r\n </div>\r\n <div className={styles.gridCells}>\r\n {monthsGrid.map(({ index, label, disabled: monthDisabled }) => (\r\n <button\r\n key={index}\r\n type=\"button\"\r\n disabled={monthDisabled}\r\n className={`${styles.gridCell}${displayedMonthIndex === index ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridMonthSelect(index)}\r\n >\r\n {label}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n {gridView === \"years\" && (\r\n <>\r\n <div className={styles.gridOverlayCaption}>\r\n <span className={styles.caption_grid_label}>\r\n {new Intl.DateTimeFormat(intlLocale, { month: \"long\" }).format(resolvedDisplayMonth)}\r\n </span>\r\n <button\r\n type=\"button\"\r\n className={styles.caption_grid_btn}\r\n onClick={() => setGridView(\"days\")}\r\n aria-label=\"Fechar seleção de ano\"\r\n >\r\n {displayedYear}\r\n <ChevronUp16Regular\r\n className={styles.caption_year_chevron}\r\n aria-hidden\r\n />\r\n </button>\r\n <div className={styles.gridOverlayYearsNav}>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoPrevYears}\r\n onClick={() => setYearPageStart((s) => s - YEARS_PER_PAGE)}\r\n aria-label=\"Anos anteriores\"\r\n >\r\n <ChevronLeft16Regular className={styles.chevronNavBtnPrev} aria-hidden />\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={styles.gridNavBtn}\r\n disabled={!canGoNextYears}\r\n onClick={() => setYearPageStart((s) => s + YEARS_PER_PAGE)}\r\n aria-label=\"Próximos anos\"\r\n >\r\n <ChevronRight16Regular className={styles.chevronNavBtnNext} aria-hidden />\r\n </button>\r\n </div>\r\n </div>\r\n <div className={`${styles.gridCells} ${styles.gridCellsYears}`}>\r\n {yearsInPage.map((year) => (\r\n <button\r\n key={year}\r\n type=\"button\"\r\n className={`${styles.gridCell}${displayedYear === year ? ` ${styles.gridCellActive}` : \"\"}`}\r\n onClick={() => handleGridYearSelect(year)}\r\n >\r\n {year}\r\n </button>\r\n ))}\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </GridCtx.Provider>\r\n );\r\n};\r\n\r\nexport default Calendar;\r\n","import { Dismiss24Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Callout.module.scss';\r\n\r\nimport type { CalloutProps } from './Callout.types';\r\n\r\nconst Callout: React.FC<CalloutProps> = ({\r\n variant = 'neutral',\r\n title,\r\n text,\r\n icon,\r\n onDismiss,\r\n dismiss,\r\n backgroundColor,\r\n textColor,\r\n className,\r\n id,\r\n style,\r\n ...rest\r\n}) => {\r\n if (process.env.NODE_ENV !== 'production' && (text === '' || (typeof text === 'string' && !text.trim()))) {\r\n console.warn('[Callout] A prop `text` não pode ser uma string vazia.');\r\n }\r\n\r\n const generatedId = useId();\r\n const titleId = `callout-title-${id || generatedId}`;\r\n const componentId = id || generatedId;\r\n\r\n const isAlert = variant === 'alert';\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n styles[variant],\r\n { [styles.withTitle]: title },\r\n className\r\n );\r\n\r\n const customStyle: React.CSSProperties = {\r\n ...style,\r\n ...(backgroundColor && { '--callout-bg': `var(--${backgroundColor})` } as React.CSSProperties),\r\n ...(textColor && { '--callout-text': `var(--${textColor})` } as React.CSSProperties),\r\n };\r\n\r\n return (\r\n <div\r\n id={componentId}\r\n className={containerClass}\r\n role={isAlert ? 'alert' : 'status'}\r\n aria-live={isAlert ? 'assertive' : 'polite'}\r\n aria-labelledby={title ? titleId : undefined}\r\n style={customStyle}\r\n {...rest}\r\n >\r\n <div className={styles.content}>\r\n {icon && <span className={styles.icon} aria-hidden=\"true\">{icon}</span>}\r\n <div className={styles.subcontent}>\r\n {title && (\r\n <span id={titleId} className={styles.title}>{title}</span>\r\n )}\r\n {text && <span className={styles.text}>{text}</span>}\r\n </div>\r\n {dismiss && (\r\n <button\r\n className={styles.dismiss}\r\n onClick={onDismiss}\r\n type=\"button\"\r\n aria-label=\"Fechar\"\r\n >\r\n <Dismiss24Regular aria-hidden=\"true\" />\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Callout;\r\n","import React from 'react';\r\n\r\nexport interface CheckSmallProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckSmall: React.FC<CheckSmallProps> = ({ \r\n className = '',\r\n width = 12,\r\n height = 10,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 12 10\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <path \r\n d=\"M4 9.4L0 5.4L1.4 4L4 6.6L10.6 0L12 1.4L4 9.4Z\" \r\n fill={fill} \r\n />\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckSmall;\r\n","import React from 'react';\r\n\r\nexport interface CheckHalfProps {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n fill?: string;\r\n [key: string]: any;\r\n}\r\n\r\nconst CheckHalf: React.FC<CheckHalfProps> = ({ \r\n className = '',\r\n width = 16,\r\n height = 16,\r\n fill = 'white',\r\n ...restProps\r\n}) => {\r\n return (\r\n <svg \r\n width={width} \r\n height={height} \r\n viewBox=\"0 0 16 16\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n aria-hidden=\"true\"\r\n {...restProps}\r\n >\r\n <g id=\"Icons/check_indeterminate_small\">\r\n <path \r\n id=\"icon\" \r\n d=\"M3 9V7H13V9H3Z\" \r\n fill={fill} \r\n />\r\n </g>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default CheckHalf;\r\n","import clsx from 'clsx';\r\nimport { Checkbox as CheckboxRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { CheckSmall, CheckHalf } from '@/shared/icons';\r\n\r\nimport styles from './Checkbox.module.scss';\r\nimport { CheckboxProps } from './Checkbox.types';\r\n\r\n\r\nconst Checkbox: React.FC<CheckboxProps> = ({\r\n id,\r\n label,\r\n onCheckedChange,\r\n checked,\r\n disabled,\r\n className,\r\n indeterminate = false,\r\n ...rest\r\n}) => {\r\n const componentId = id || React.useId();\r\n\r\n return (\r\n <div className={clsx(styles.container, className)}>\r\n <div\r\n className={clsx(styles.wrapperCheckbox, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"presentation\"\r\n tabIndex={disabled ? -1 : 0}\r\n >\r\n <CheckboxRadix.Root\r\n className={styles.root}\r\n checked={indeterminate ? 'indeterminate' : checked}\r\n id={componentId}\r\n onCheckedChange={onCheckedChange}\r\n disabled={disabled}\r\n data-disabled={disabled}\r\n data-indeterminate={indeterminate}\r\n aria-checked={indeterminate ? 'mixed' : checked ? 'true' : 'false'}\r\n {...rest}\r\n >\r\n <CheckboxRadix.Indicator className={styles.indicator}>\r\n {indeterminate ? <CheckHalf /> : <CheckSmall />}\r\n </CheckboxRadix.Indicator>\r\n </CheckboxRadix.Root>\r\n </div>\r\n <label\r\n className={clsx(styles.label, { [styles.disabled]: disabled })}\r\n htmlFor={componentId}\r\n >\r\n {label}\r\n </label>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Checkbox;\r\n","import clsx from 'clsx';\r\nimport React from 'react';\r\n\r\nimport styles from './Chips.module.scss';\r\n\r\nimport type { ChipsProps } from './Chips.types';\r\n\r\nconst Chips: React.FC<ChipsProps> = ({\r\n children,\r\n leftIcon,\r\n rightIcon,\r\n variant = 'neutral',\r\n disabled = false,\r\n backgroundColor,\r\n textColor,\r\n className,\r\n style,\r\n ...rest\r\n}) => {\r\n\r\n const chipsClass = clsx(\r\n styles.chips,\r\n styles[variant],\r\n {\r\n [styles.disabled]: disabled,\r\n [styles.hasLeftIcon]: leftIcon,\r\n [styles.hasRightIcon]: rightIcon,\r\n },\r\n className\r\n );\r\n\r\n const colorStyle = {\r\n ...(!disabled && backgroundColor && { '--chips-bg': `var(--${backgroundColor})` }),\r\n ...(!disabled && textColor && { '--chips-text': `var(--${textColor})` }),\r\n ...style,\r\n } as React.CSSProperties;\r\n\r\n const isInteractive = typeof rest.onClick === 'function';\r\n\r\n return (\r\n <div\r\n className={chipsClass}\r\n aria-disabled={disabled}\r\n style={colorStyle}\r\n role={isInteractive ? 'button' : undefined}\r\n tabIndex={isInteractive ? (disabled ? -1 : 0) : undefined}\r\n {...rest}\r\n >\r\n {leftIcon && (\r\n <span className={styles.iconLeft} aria-hidden=\"true\">\r\n {leftIcon}\r\n </span>\r\n )}\r\n <span className={styles.title}>{children}</span>\r\n {rightIcon && (\r\n <span className={styles.iconRight}>\r\n {rightIcon}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst MemoizedChips = React.memo(Chips);\r\nMemoizedChips.displayName = 'Chips';\r\n\r\nexport default MemoizedChips;","import clsx from 'clsx';\r\nimport styles from './Container.module.scss'\r\n\r\nimport type { ContainerProps } from './Container.types';\r\n\r\nexport default function Container({ children, className }: ContainerProps) {\r\n return (\r\n <main className={clsx(styles['container'], 'mx-auto', className)}>\r\n {children}\r\n </main>\r\n )\r\n}","import { Popover as PopoverRadix } from \"radix-ui\";\r\nimport clsx from \"clsx\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from \"./Popover.module.scss\";\r\nimport { PopoverProps } from \"./Popover.types\";\r\n\r\nconst Popover: React.FC<PopoverProps> = ({\r\n trigger,\r\n content,\r\n side = \"left\",\r\n align = \"start\", \r\n sideOffset = 8, \r\n open,\r\n onOpenChange,\r\n asAnchor = false,\r\n onOpenAutoFocus,\r\n onCloseAutoFocus,\r\n showArrow = false,\r\n className,\r\n ...rest\r\n}) => {\r\n return (\r\n <PopoverRadix.Root open={open} onOpenChange={onOpenChange} {...rest}>\r\n {asAnchor ? (\r\n <PopoverRadix.Anchor asChild>\r\n {trigger}\r\n </PopoverRadix.Anchor>\r\n ) : (\r\n <PopoverRadix.Trigger asChild>\r\n {trigger}\r\n </PopoverRadix.Trigger>\r\n )}\r\n <PopoverRadix.Portal>\r\n <PopoverRadix.Content\r\n className={clsx(styles.Content, className)}\r\n sideOffset={sideOffset}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={asAnchor ? (e) => e.preventDefault() : onOpenAutoFocus}\r\n onCloseAutoFocus={asAnchor ? (e) => e.preventDefault() : onCloseAutoFocus}\r\n onInteractOutside={asAnchor ? (e) => e.preventDefault() : undefined}\r\n >\r\n {content}\r\n {showArrow && <PopoverRadix.Arrow />}\r\n </PopoverRadix.Content>\r\n </PopoverRadix.Portal>\r\n </PopoverRadix.Root>\r\n );\r\n};\r\n\r\nexport default Popover;\r\n","export interface ValidationParams {\r\n value: string;\r\n maxLength?: number;\r\n type?: string;\r\n errorMessage?: string;\r\n required?: boolean;\r\n}\r\n\r\nexport const validateInput = ({ \r\n value, \r\n maxLength, \r\n errorMessage, \r\n required \r\n}: ValidationParams): string => {\r\n if (required && value.trim() === '') {\r\n return errorMessage || 'Campo obrigatório.';\r\n }\r\n\r\n if (maxLength && value.length > maxLength) {\r\n return errorMessage || `Campo deve ter no máximo ${maxLength} caracteres.`;\r\n }\r\n\r\n return '';\r\n};\r\n","import * as React from 'react';\r\nimport { Label } from 'radix-ui';\r\nimport styles from './index.module.scss';\r\nimport clsx from 'clsx';\r\nimport Tooltip from '../../components/Tooltip/Tooltip';\r\nimport { Info12Regular } from '@fluentui/react-icons';\r\n\r\ninterface LabelProps {\r\n children: React.ReactNode;\r\n htmlFor: string;\r\n required?: boolean;\r\n className?: string;\r\n tooltipText?: string;\r\n tooltip?: boolean;\r\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\r\n align?: \"start\" | \"center\" | \"end\";\r\n error?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nconst LabelComponent = ({\r\n children,\r\n htmlFor,\r\n required = false,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n className,\r\n error = false,\r\n disabled = false\r\n}: LabelProps) => {\r\n const container = (\r\n <div className={clsx(styles.labelContainer, disabled && styles.disabledContainer)}>\r\n <Label.Root\r\n className={clsx(\r\n styles.wrapperLabel,\r\n error && !disabled && styles.errorLabel,\r\n disabled && styles.disabledLabel,\r\n className\r\n )}\r\n htmlFor={htmlFor}\r\n >\r\n {children}\r\n {required && <span className={styles.requiredLabel}>*</span>}\r\n </Label.Root>\r\n {tooltip && (\r\n <span\r\n className={\r\n disabled ? styles.disabledIcon : error ?\r\n styles.errorIcon : styles.infoIcon\r\n }\r\n >\r\n <Info12Regular />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n\r\n if (tooltip) {\r\n return (\r\n <Tooltip side={side} align={align} text={tooltipText || ''}>\r\n {container}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return container;\r\n};\r\n\r\nexport default LabelComponent;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, forwardRef, useEffect } from 'react';\r\n\r\nimport styles from './TextField.module.scss';\r\nimport { validateInput } from './utils';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextFieldProps } from './TextField.types';\r\n\r\nconst TextField = forwardRef<HTMLInputElement, TextFieldProps>(\r\n (\r\n {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n type = 'text',\r\n onChange,\r\n disabled = false,\r\n maxLength = 30,\r\n required = false,\r\n helperText,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\t align = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n icon,\r\n onBlur,\r\n onFocus,\r\n name,\r\n persistIcon = false,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const normalizeValue = (val: string | number | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n \r\n const [inputValue, setInputValue] = useState(normalizeValue(value));\r\n const [inputError, setInputError] = useState('');\r\n const [isFocused, setIsFocused] = useState(false);\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n const newValue = normalizeValue(value);\r\n setInputValue(newValue);\r\n \r\n // Reavaliar erro quando valor muda externamente (ex: DatePicker atualiza o campo)\r\n if (inputError) {\r\n const validationError = validateInput({\r\n value: newValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(validationError);\r\n }\r\n }, [value, inputError, type, maxLength, errorMessage, required]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setInputValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleClear = useCallback(() => {\r\n if (!disabled) {\r\n setInputValue('');\r\n onChange?.('');\r\n }\r\n }, [disabled, onChange]);\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n const error = validateInput({\r\n value: inputValue,\r\n type,\r\n maxLength,\r\n errorMessage,\r\n required,\r\n });\r\n setInputError(error);\r\n setIsFocused(false);\r\n onBlur?.(e);\r\n },\r\n [inputValue, type, maxLength, errorMessage, required, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLInputElement>) => {\r\n setIsFocused(true);\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const showCustomIcon = inputValue.trim().length === 0 && icon;\r\n const showClearIcon = isFocused && inputValue.trim().length > 0;\r\n const hasError = Boolean(inputError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || inputError || helperText || '\\u00A0';\r\n const helperId = (inputError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerClass = clsx(styles.container, {\r\n [styles.disabled]: disabled,\r\n [styles.error]: hasError && !disabled,\r\n [className!]: className,\r\n });\r\n\r\n return (\r\n <div className={containerClass}>\r\n {label && (\r\n <LabelComponent\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <input\r\n {...rest}\r\n ref={ref}\r\n id={componentId}\r\n name={name}\r\n type={type}\r\n value={inputValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n className={clsx({\r\n [styles.inputWithIcon]: showCustomIcon || showClearIcon,\r\n })}\r\n />\r\n \r\n {showCustomIcon && <span className={styles.icon}>{icon}</span>}\r\n \r\n {showClearIcon && (\r\n <button\r\n type=\"button\"\r\n className={styles.clearButton}\r\n onMouseDown={(e) => {\r\n e.preventDefault();\r\n handleClear();\r\n }}\r\n aria-label=\"Limpar campo\"\r\n tabIndex={-1}\r\n >\r\n <Dismiss16Regular />\r\n </button>\r\n )}\r\n </div>\r\n\r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextField.displayName = 'TextField';\r\n\r\nexport default React.memo(TextField);\r\n","import { Locale } from '../../../types/common.types';\r\n\r\nexport function formatDate(date: Date, locale: Locale = 'pt-br'): string {\r\n if (!date || !(date instanceof Date)) {\r\n return '';\r\n }\r\n\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0');\r\n const year = date.getFullYear();\r\n\r\n if (locale === 'en-us') {\r\n return `${month}/${day}/${year}`;\r\n } else {\r\n return `${day}/${month}/${year}`;\r\n }\r\n}\r\n\r\nexport function applyDateMask(value: string, locale: Locale = 'pt-br'): string {\r\n const digitsOnly = value.replace(/\\D/g, '');\r\n \r\n const limitedDigits = digitsOnly.slice(0, 8);\r\n \r\n let masked = '';\r\n \r\n for (let i = 0; i < limitedDigits.length; i++) {\r\n if (i === 2 || i === 4) {\r\n masked += '/';\r\n }\r\n masked += limitedDigits[i];\r\n }\r\n \r\n return masked;\r\n}\r\n\r\nexport function isValidDateFormat(value: string, locale: Locale = 'pt-br'): boolean {\r\n const dateRegex = locale === 'en-us'\r\n ? /^(0[1-9]|1[0-2])\\/(0[1-9]|[12][0-9]|3[01])\\/\\d{4}$/\r\n : /^(0[1-9]|[12][0-9]|3[01])\\/(0[1-9]|1[0-2])\\/\\d{4}$/;\r\n \r\n return dateRegex.test(value);\r\n}\r\nexport function parseDate(dateString: string, locale: Locale = 'pt-br'): Date | null {\r\n if (!dateString || typeof dateString !== 'string') {\r\n return null;\r\n }\r\n\r\n const dateRegex = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/;\r\n const match = dateString.trim().match(dateRegex);\r\n \r\n if (!match) {\r\n return null;\r\n }\r\n\r\n const [, first, second, yearStr] = match;\r\n let day: number;\r\n let month: number;\r\n const year = parseInt(yearStr, 10);\r\n\r\n if (locale === 'en-us') {\r\n month = parseInt(first, 10);\r\n day = parseInt(second, 10);\r\n } else {\r\n day = parseInt(first, 10);\r\n month = parseInt(second, 10);\r\n }\r\n\r\n if (month < 1 || month > 12 || day < 1 || day > 31) {\r\n return null;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n \r\n if (date.getFullYear() !== year || \r\n date.getMonth() !== month - 1 || \r\n date.getDate() !== day) {\r\n return null;\r\n }\r\n\r\n return date;\r\n}\r\n\r\nexport function validatePartialDate(value: string, locale: Locale = 'pt-br'): 'valid' | 'invalid' | 'incomplete' {\r\n if (value.length === 0) return 'valid';\r\n\r\n if (value.length === 2) {\r\n const n = parseInt(value, 10);\r\n const isValid = locale === 'en-us' ? n >= 1 && n <= 12 : n >= 1 && n <= 31;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 5) {\r\n const parts = value.split('/');\r\n const a = parseInt(parts[0], 10);\r\n const b = parseInt(parts[1], 10);\r\n const isValid = locale === 'en-us'\r\n ? a >= 1 && a <= 12 && b >= 1 && b <= 31\r\n : a >= 1 && a <= 31 && b >= 1 && b <= 12;\r\n return isValid ? 'valid' : 'invalid';\r\n }\r\n\r\n if (value.length === 10) {\r\n if (!isValidDateFormat(value, locale)) return 'invalid';\r\n const parsed = parseDate(value, locale);\r\n return parsed ? 'valid' : 'invalid';\r\n }\r\n\r\n return 'incomplete';\r\n}","import { Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useEffect, useRef, useCallback, useId, KeyboardEvent } from 'react';\r\n\r\nimport Calendar from '../Calendar/Calendar';\r\nimport Popover from '../Popover';\r\nimport TextField from '../TextField';\r\nimport styles from './DatePicker.module.scss';\r\nimport { formatDate, parseDate, applyDateMask, isValidDateFormat, validatePartialDate } from './Utils/DateUtils';\r\n\r\nimport type { DatePickerProps } from './DatePicker.types';\r\n\r\nconst DatePicker: React.FC<DatePickerProps> = ({\r\n locale = 'pt-br',\r\n calendarSide = 'bottom',\r\n calendarAlign = 'start',\r\n helperText,\r\n required = false,\r\n label = 'Data',\r\n value,\r\n defaultValue,\r\n onChange,\r\n disabled = false,\r\n error: externalError,\r\n minDate,\r\n maxDate,\r\n 'data-testid': testId,\r\n className,\r\n ...rest\r\n}) => {\r\n const fieldId = useId();\r\n const calendarId = `${fieldId}-calendar`;\r\n\r\n const isControlled = value !== undefined;\r\n const [internalDate, setInternalDate] = useState<Date | null>(defaultValue || null);\r\n const [tempInputValue, setTempInputValue] = useState<string>('');\r\n const [isEditing, setIsEditing] = useState<boolean>(false);\r\n const [internalError, setInternalError] = useState<string>('');\r\n const [showCalendar, setShowCalendar] = useState<boolean>(false);\r\n const [currentDate, setCurrentDate] = useState<Date>(new Date());\r\n const wrapperRef = useRef<HTMLDivElement>(null);\r\n\r\n const currentSelectedDate = isControlled ? value : internalDate;\r\n const hasValidationError = !!(externalError || internalError);\r\n const displayValue = isEditing ? tempInputValue : (currentSelectedDate ? formatDate(currentSelectedDate, locale) : '');\r\n\r\n const combinedHelperText = externalError && helperText\r\n ? `${helperText} • ${externalError}`\r\n : externalError || helperText || '';\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event: MouseEvent) {\r\n const target = event.target as Element;\r\n const isInsideWrapper = wrapperRef.current?.contains(target as Node);\r\n const isInsideCalendar = !!target.closest?.('[data-radix-popper-content-wrapper]');\r\n if (!isInsideWrapper && !isInsideCalendar) {\r\n setShowCalendar(false);\r\n }\r\n }\r\n if (showCalendar) {\r\n document.addEventListener('mousedown', handleClickOutside);\r\n }\r\n return () => {\r\n document.removeEventListener('mousedown', handleClickOutside);\r\n };\r\n }, [showCalendar]);\r\n\r\n const handleDateChange = useCallback((newDate: Date | null) => {\r\n if (!isControlled) {\r\n setInternalDate(newDate);\r\n }\r\n onChange?.(newDate);\r\n setIsEditing(false);\r\n setTempInputValue('');\r\n setInternalError('');\r\n if (newDate) {\r\n setCurrentDate(newDate);\r\n }\r\n }, [isControlled, onChange]);\r\n\r\n const handleIconClick = () => {\r\n setShowCalendar((prev) => !prev);\r\n };\r\n\r\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\r\n const { key } = event;\r\n\r\n if (key === 'Enter') {\r\n if (showCalendar) {\r\n if (currentSelectedDate) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n if (tempInputValue.length === 10 && isValidDateFormat(tempInputValue, locale)) {\r\n const parsedDate = parseDate(tempInputValue, locale);\r\n if (parsedDate && !isNaN(parsedDate.getTime())) {\r\n handleDateChange(parsedDate);\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n } else {\r\n setShowCalendar(true);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n if (key === 'Escape') {\r\n if (showCalendar) {\r\n setShowCalendar(false);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n const controlKeys = [\r\n 'Backspace', 'Delete', 'ArrowLeft', 'ArrowRight',\r\n ];\r\n\r\n if (controlKeys.includes(key)) {\r\n return;\r\n }\r\n\r\n if (!/^\\d$/.test(key)) {\r\n event.preventDefault();\r\n }\r\n };\r\n\r\n const handleDaySelect = (newSelectedDate: Date) => {\r\n setShowCalendar(false);\r\n handleDateChange(newSelectedDate);\r\n };\r\n\r\n const handleFocus = () => {\r\n if (!disabled) {\r\n setShowCalendar(true);\r\n }\r\n };\r\n\r\n const handleTextFieldChange = (value: string) => {\r\n const maskedValue = applyDateMask(value, locale);\r\n\r\n setTempInputValue(maskedValue);\r\n setIsEditing(true);\r\n\r\n if (maskedValue === '') {\r\n setInternalError('');\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n return;\r\n }\r\n\r\n const result = validatePartialDate(maskedValue, locale);\r\n\r\n if (result === 'invalid') {\r\n setInternalError('invalid');\r\n if (maskedValue.length === 10) {\r\n if (!isControlled) setInternalDate(null);\r\n onChange?.(null);\r\n }\r\n } else if (result === 'valid') {\r\n setInternalError('');\r\n if (maskedValue.length === 10) {\r\n const parsedDate = parseDate(maskedValue, locale);\r\n if (parsedDate) {\r\n handleDateChange(parsedDate);\r\n setCurrentDate(parsedDate);\r\n }\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div ref={wrapperRef} className={clsx(styles.datePicker, className)} {...rest}>\r\n <Popover\r\n open={showCalendar}\r\n onOpenChange={setShowCalendar}\r\n asAnchor={true}\r\n trigger={\r\n <TextField\r\n className={styles.textfieldContainer}\r\n type=\"tel\"\r\n icon={\r\n <Calendar16Regular \r\n onClick={!disabled ? handleIconClick : undefined}\r\n className={clsx(\r\n styles.datePickerIcon,\r\n disabled && styles.datePickerIconDisabled\r\n )}\r\n />\r\n }\r\n onChange={(e: string | number) => {\r\n handleTextFieldChange(String(e));\r\n }}\r\n onKeyDown={handleKeyDown}\r\n onFocus={handleFocus}\r\n persistIcon\r\n autoComplete=\"off\"\r\n value={displayValue}\r\n helperText={!externalError ? (helperText || undefined) : undefined}\r\n errorMessage={externalError ? combinedHelperText : undefined}\r\n error={hasValidationError ? true : undefined}\r\n maxLength={10}\r\n required={required}\r\n label={label}\r\n disabled={disabled}\r\n id={fieldId}\r\n data-testid={testId}\r\n placeholder={locale === 'en-us' ? 'MM/DD/YYYY' : 'DD/MM/YYYY'}\r\n aria-label=\"Open calendar\"\r\n aria-expanded={showCalendar}\r\n aria-controls={calendarId}\r\n aria-invalid={hasValidationError}\r\n aria-describedby={externalError ? undefined : (helperText ? `${fieldId}-help` : undefined)}\r\n /> \r\n }\r\n content={\r\n <Calendar\r\n selected={currentSelectedDate}\r\n currentDate={currentDate}\r\n onDateChange={setCurrentDate}\r\n onDaySelect={handleDaySelect}\r\n locale={locale}\r\n format={locale === 'en-us' ? 'mm/dd/yyyy' : 'dd/mm/yyyy'}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n id={calendarId}\r\n onClear={() => {\r\n handleDateChange(null);\r\n setCurrentDate(new Date());\r\n }}\r\n /> \r\n }\r\n side={calendarSide}\r\n align={calendarAlign}\r\n sideOffset={8}\r\n /> \r\n </div>\r\n );\r\n};\r\n\r\nexport default React.memo(DatePicker);","import { AlertDialog } from \"radix-ui\";\r\nimport clsx from \"clsx\";\r\nimport * as React from \"react\";\r\n\r\n\r\nimport styles from './Dialog.module.scss';\r\nimport { DialogProps } from \"./Dialog.types\";\r\nimport Button from '../Button/Button';\r\n\r\nconst Dialog: React.FC<DialogProps> = ({\r\n\tshow = false,\r\n title,\r\n bodyContent,\r\n textPrimaryAction,\r\n textSecondaryAction,\r\n\tonPrimaryAction,\r\n\tonSecondaryAction,\r\n\tclassName,\r\n ...rest\r\n}) => (\r\n\t<AlertDialog.Root open={show} {...rest}>\r\n\t\t<AlertDialog.Portal>\r\n\t\t\t<AlertDialog.Overlay className={styles.DialogOverlay} />\r\n\t\t\t<AlertDialog.Content className={clsx(styles.DialogContent, className)}>\r\n\t\t\t\t<AlertDialog.Title className={styles.DialogTitle}>\r\n\t\t\t\t\t{title}\r\n\t\t\t\t</AlertDialog.Title>\r\n\t\t\t\t<AlertDialog.Description className={styles.DialogDescription}>\r\n\t\t\t\t\t{bodyContent}\r\n\t\t\t\t</AlertDialog.Description>\r\n\t\t\t\t<div className={styles.DivButtons}>\r\n\t\t\t\t\t{!!(textSecondaryAction && textSecondaryAction.trim()) && (\r\n\t\t\t\t\t\t<AlertDialog.Cancel asChild>\r\n\t\t\t\t\t\t\t<Button variant=\"outlined\" {...(onSecondaryAction && { onClick: onSecondaryAction })}>{textSecondaryAction}</Button>\r\n\t\t\t\t\t\t</AlertDialog.Cancel>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t<AlertDialog.Action asChild>\r\n\t\t\t\t\t\t<Button variant=\"filled\" {...(onPrimaryAction && { onClick: onPrimaryAction })}>{textPrimaryAction}</Button>\r\n\t\t\t\t\t</AlertDialog.Action>\r\n\t\t\t\t</div>\r\n\t\t\t</AlertDialog.Content>\r\n\t\t</AlertDialog.Portal>\r\n\t</AlertDialog.Root>\r\n);\r\n\r\nexport default Dialog;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useEffect, useState, useCallback, ReactNode, ReactElement } from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\nimport styles from './Drawer.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { DrawerProps, DrawerExampleProps } from './Drawer.types';\r\n\r\nconst Drawer: React.FC<DrawerProps> = ({\r\n children,\r\n headerContent,\r\n footer,\r\n customWidth = '400px',\r\n onClose,\r\n title = 'Título',\r\n isOpen = false,\r\n onOpen,\r\n className,\r\n id,\r\n disabled = false,\r\n onOverlayClick,\r\n closeOnOverlayClick = true,\r\n closeOnEscape = true,\r\n ...rest\r\n}) => {\r\n\r\n const internalClose = useCallback((): void => {\r\n if (disabled) return;\r\n\r\n onClose();\r\n }, [onClose, disabled]);\r\n\r\n const handleOverlayClick = useCallback((): void => {\r\n if (onOverlayClick) {\r\n onOverlayClick();\r\n }\r\n \r\n if (closeOnOverlayClick && !disabled) {\r\n internalClose();\r\n }\r\n }, [onOverlayClick, closeOnOverlayClick, internalClose, disabled]);\r\n\r\n useEffect(() => {\r\n if (!isOpen || !closeOnEscape) return;\r\n\r\n const handleKeyDown = (event: KeyboardEvent): void => {\r\n if (event.key === 'Escape') {\r\n event.preventDefault();\r\n internalClose();\r\n }\r\n };\r\n\r\n window.addEventListener('keydown', handleKeyDown);\r\n return () => window.removeEventListener('keydown', handleKeyDown);\r\n }, [isOpen, internalClose, closeOnEscape]);\r\n\r\n useEffect(() => {\r\n if (isOpen && !disabled) {\r\n if (onOpen) {\r\n onOpen();\r\n }\r\n document.body.style.overflow = 'hidden';\r\n } else {\r\n document.body.style.overflow = 'unset';\r\n }\r\n\r\n return () => {\r\n document.body.style.overflow = 'unset';\r\n };\r\n }, [isOpen, onOpen, disabled]);\r\n\r\n const handleDrawerClick = (event: React.MouseEvent<HTMLDivElement>): void => {\r\n event.stopPropagation();\r\n };\r\n\r\n const handleCloseClick = (event: React.MouseEvent<HTMLElement>): void => {\r\n event.stopPropagation();\r\n internalClose();\r\n };\r\n\r\n return createPortal(\r\n <>\r\n <div\r\n className={clsx(styles['drawerShadow'], {\r\n [styles['drawerShadow--visible']]: isOpen,\r\n })}\r\n onClick={handleOverlayClick}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n data-testid=\"drawer-overlay\"\r\n />\r\n <div\r\n className={clsx(\r\n styles['drawerSidebar'],\r\n {\r\n [styles['drawerSidebar--open']]: isOpen,\r\n [styles['drawerSidebar--disabled']]: disabled,\r\n },\r\n className\r\n )}\r\n style={{\r\n '--drawer-custom-width': customWidth,\r\n } as React.CSSProperties}\r\n onClick={handleDrawerClick}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n aria-labelledby={id ? `${id}-title` : 'drawer-title'}\r\n aria-hidden={!isOpen}\r\n data-testid=\"drawer-panel\"\r\n id={id}\r\n {...rest}\r\n >\r\n \r\n <div className={styles.drawerTitleClose}>\r\n <div \r\n className={styles.drawerTitle} \r\n id={id ? `${id}-title` : 'drawer-title'}\r\n >\r\n {title}\r\n </div>\r\n \r\n {headerContent && (\r\n <div className={styles.drawerHeaderContent}>{headerContent}</div>\r\n )}\r\n\r\n <Button \r\n onClick={handleCloseClick}\r\n variant='outlined'\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size='lg'\r\n tooltipText='Fechar'\r\n />\r\n </div>\r\n <div \r\n className={styles.drawerChildren} \r\n data-testid=\"drawer-content\"\r\n >\r\n {children}\r\n </div>\r\n {footer}\r\n </div>\r\n </>,\r\n document.body\r\n );\r\n};\r\n\r\nexport default Drawer;","import { FilterRegular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useCallback } from 'react';\r\n\r\nimport Badge from '../../Badge';\r\nimport Button from '../../Button';\r\nimport Drawer from '../../Drawer/Drawer';\r\nimport styles from '../Filter.module.scss';\r\n\r\nimport type { FilterProps } from '../Filter.types';\r\n\r\nconst Combined: React.FC<FilterProps> = ({\r\n buttonText = 'Filtrar',\r\n icon,\r\n variant = 'outlined',\r\n disabled = false,\r\n className,\r\n title = 'Filtrar',\r\n drawerWidth = \"fit-content\",\r\n activeCount = 0,\r\n drawerHeaderContent,\r\n children,\r\n onApply,\r\n onClear,\r\n onOpen,\r\n onClose,\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleOpen = useCallback(() => {\r\n setIsOpen(true);\r\n onOpen?.();\r\n }, [onOpen]);\r\n\r\n const handleClose = useCallback(() => {\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClose]);\r\n\r\n const handleApply = useCallback(() => {\r\n onApply?.();\r\n handleClose();\r\n }, [onApply, handleClose]);\r\n\r\n const handleClear = useCallback(() => {\r\n onClear?.();\r\n }, [onClear]);\r\n\r\n return (\r\n <div className={clsx(styles.triggerWrapper, className)} id={id} {...rest}>\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={icon ?? <FilterRegular />}\r\n iconPosition=\"left\"\r\n onClick={handleOpen}\r\n >\r\n <span className={styles.triggerContent}>\r\n {buttonText}\r\n {activeCount > 0 && (\r\n <Badge badgeValue={activeCount} filterVariant />\r\n )}\r\n </span>\r\n </Button>\r\n <Drawer\r\n isOpen={isOpen}\r\n onClose={handleClose}\r\n title={title}\r\n customWidth={drawerWidth}\r\n closeOnOverlayClick\r\n closeOnEscape\r\n headerContent={drawerHeaderContent}\r\n footer={\r\n <div className={styles.combinedFooter}>\r\n <Button variant=\"outlined\" onClick={handleClear}>\r\n Limpar\r\n </Button>\r\n <Button onClick={handleApply}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n }\r\n >\r\n <div className={styles.body}>\r\n {children}\r\n </div>\r\n </Drawer>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Combined;\r\n","import { Search16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useId } from 'react';\r\n\r\nimport styles from './Search.module.scss';\r\n\r\nimport type { SearchProps } from './Search.types';\r\n\r\nconst Search = React.forwardRef<HTMLInputElement, SearchProps>(\r\n (\r\n {\r\n placeholder = 'Dica do que deve ser buscado',\r\n disabled = false,\r\n value,\r\n onChange,\r\n onKeyDown,\r\n onFocus,\r\n onBlur,\r\n onClear,\r\n onClick,\r\n onMouseDown,\r\n searchMode = 'instant',\r\n onSearch,\r\n id,\r\n className,\r\n 'data-testid': testId, \r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const [internalValue, setInternalValue] = useState<string>('');\r\n const isControlled = value !== undefined && onChange !== undefined;\r\n const currentValue = isControlled ? value : internalValue;\r\n const generatedId = useId();\r\n const inputId = id || generatedId;\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n onChange?.(e);\r\n } else {\r\n setInternalValue(e.target.value);\r\n }\r\n\r\n if (searchMode === 'instant') {\r\n onSearch?.(e.target.value);\r\n }\r\n };\r\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onFocus?.(e);\r\n };\r\n\r\n const handleBlur = (e: React.FocusEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n onBlur?.(e);\r\n };\r\n const clearInputSearch = (): void => {\r\n if (disabled) return;\r\n\r\n if (isControlled) {\r\n const syntheticEvent = {\r\n target: { value: '' },\r\n currentTarget: { value: '' },\r\n } as React.ChangeEvent<HTMLInputElement>;\r\n\r\n onChange?.(syntheticEvent);\r\n } else {\r\n setInternalValue('');\r\n }\r\n onClear?.();\r\n };\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (disabled) return;\r\n\r\n if (searchMode === 'on-enter' && e.key === 'Enter') {\r\n onSearch?.(currentValue || '');\r\n }\r\n\r\n onKeyDown?.(e);\r\n };\r\n return (\r\n <div \r\n className={clsx(\r\n styles.search,\r\n { [styles.disabled]: disabled },\r\n className\r\n )} \r\n onClick={onClick} \r\n onMouseDown={onMouseDown}\r\n role={onClick || onMouseDown ? \"button\" : undefined}\r\n tabIndex={onClick || onMouseDown ? 0 : undefined}\r\n onKeyDown={onClick || onMouseDown ? (e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n onClick?.(e as any);\r\n }\r\n } : undefined}\r\n >\r\n <span\r\n className={clsx(styles.searchLeftIcon, { [styles.disabled]: disabled })}\r\n tabIndex={-1}\r\n role=\"presentation\"\r\n aria-hidden=\"true\"\r\n >\r\n <Search16Regular />\r\n </span>\r\n\r\n <input\r\n ref={ref}\r\n id={inputId}\r\n type=\"text\"\r\n placeholder={placeholder}\r\n aria-label={placeholder}\r\n value={currentValue || ''}\r\n onChange={handleChange}\r\n onKeyDown={handleKeyDown}\r\n disabled={disabled}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n data-testid={testId}\r\n {...rest}\r\n className={clsx({ [styles.inputWithClearIcon]: currentValue && currentValue.length > 0 })} \r\n />\r\n {currentValue && currentValue.length > 0 && (\r\n <span\r\n className={styles.searchClearIcon}\r\n aria-hidden=\"true\"\r\n onClick={clearInputSearch}\r\n >\r\n <Dismiss16Regular />\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nSearch.displayName = 'Search';\r\n\r\nexport default Search;\r\n","import { ChevronDownRegular, Calendar16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useCallback,\r\n useMemo,\r\n} from 'react';\r\n\r\nimport Badge from '../../Badge';\r\nimport Button from '../../Button';\r\nimport Calendar from '../../Calendar/Calendar';\r\nimport Checkbox from '../../Checkbox';\r\nimport Popover from '../../Popover/Popover';\r\nimport Search from '../../Search';\r\nimport styles from '../Filter.module.scss';\r\n\r\nimport type { FilterItem, FilterProps } from '../Filter.types';\r\n\r\ntype SelectionState = Record<string, boolean>;\r\n\r\nconst Simple: React.FC<FilterProps> = ({\r\n items,\r\n type = 'multiple',\r\n selectedIds,\r\n onApplyFilter,\r\n placeholder = 'Selecionar...',\r\n enableSearch = false,\r\n buttonText = 'Filter',\r\n icon,\r\n variant = 'outlined',\r\n onOpen,\r\n onClose,\r\n side = 'bottom',\r\n align = 'start',\r\n disabled = false,\r\n className,\r\n selectedDate,\r\n onDateSelect,\r\n onClearDate,\r\n minDate,\r\n maxDate,\r\n locale = 'pt-br',\r\n id,\r\n ...rest\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [tempSelectedItems, setTempSelectedItems] = useState<SelectionState>({});\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const [currentCalendarDate, setCurrentCalendarDate] = useState<Date | null>(\r\n () => selectedDate || new Date()\r\n );\r\n\r\n useEffect(() => {\r\n if (selectedDate) {\r\n setCurrentCalendarDate(selectedDate);\r\n }\r\n }, [selectedDate]);\r\n\r\n const handleCalendarNavigation = useCallback((date: Date) => {\r\n setCurrentCalendarDate(date);\r\n }, []);\r\n\r\n const handleDateSelection = useCallback(\r\n (date: Date) => {\r\n onDateSelect?.(date);\r\n setIsOpen(false);\r\n onClose?.();\r\n },\r\n [onDateSelect, onClose]\r\n );\r\n\r\n const handleClear = useCallback((): void => {\r\n onClearDate?.();\r\n setCurrentCalendarDate(new Date());\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [onClearDate, onClose]);\r\n\r\n const handleOpenChange = useCallback(\r\n (open: boolean) => {\r\n if (disabled && open) return;\r\n if (open) {\r\n const initial: SelectionState = {};\r\n selectedIds?.forEach((itemId) => { initial[itemId] = true; });\r\n setTempSelectedItems(initial);\r\n setSearchQuery('');\r\n onOpen?.();\r\n } else {\r\n onClose?.();\r\n }\r\n setIsOpen(open);\r\n },\r\n [disabled, selectedIds, onOpen, onClose]\r\n );\r\n\r\n const toggleItem = useCallback(\r\n (itemId: string, item: FilterItem) => {\r\n if (item.disabled) return;\r\n setTempSelectedItems((prev) => {\r\n if (type === 'multiple') {\r\n return { ...prev, [itemId]: !prev[itemId] };\r\n }\r\n return prev[itemId] ? {} : { [itemId]: true };\r\n });\r\n },\r\n [type]\r\n );\r\n\r\n const handleApplyFilter = useCallback(() => {\r\n const ids = Object.keys(tempSelectedItems).filter((k) => tempSelectedItems[k]);\r\n onApplyFilter?.(ids);\r\n setIsOpen(false);\r\n onClose?.();\r\n }, [tempSelectedItems, onApplyFilter, onClose]);\r\n\r\n const handleClearFilter = useCallback(() => {\r\n setTempSelectedItems({});\r\n onApplyFilter?.([]);\r\n }, [onApplyFilter]);\r\n\r\n const handleSearchChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\r\n setSearchQuery(e.target.value);\r\n }, []);\r\n\r\n const handleSearchKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Escape') {\r\n e.preventDefault();\r\n setSearchQuery('');\r\n }\r\n },\r\n []\r\n );\r\n\r\n const searchVisible = enableSearch || (items?.length ?? 0) > 4;\r\n\r\n const filteredItems = useMemo(() => {\r\n if (!items?.length) return [];\r\n if (!searchQuery.trim()) return items;\r\n const q = searchQuery.toLowerCase();\r\n return items.filter((item) => item.text.toLowerCase().includes(q));\r\n }, [items, searchQuery]);\r\n\r\n const buttonDisplayText = useMemo(() => {\r\n if (type === 'calendar' && selectedDate) {\r\n return selectedDate.toLocaleDateString(\r\n locale === 'pt-br' ? 'pt-BR' : 'en-US'\r\n );\r\n }\r\n if (!selectedIds?.length) return buttonText;\r\n const firstItem = items?.find((item) => item.id === selectedIds[0]);\r\n return firstItem?.text || selectedIds[0];\r\n }, [type, selectedDate, selectedIds, items, buttonText, locale]);\r\n\r\n const getBadgeValue = useCallback(() => {\r\n if (!selectedIds || selectedIds.length <= 1) return null;\r\n return selectedIds.length - 1;\r\n }, [selectedIds]);\r\n\r\n const filterClass = clsx(styles.container, className);\r\n\r\n const triggerButton = (\r\n <Button\r\n variant={variant}\r\n disabled={disabled}\r\n icon={\r\n type === 'calendar' ? <Calendar16Regular /> : <ChevronDownRegular />\r\n }\r\n iconPosition=\"right\"\r\n size=\"lg\"\r\n >\r\n <div className={styles.buttonContent}>\r\n {icon && <span className={styles.buttonIcon}>{icon}</span>}\r\n <span className={styles.buttonText}>{buttonDisplayText}</span>\r\n <span className={clsx(styles.buttonArrow, { [styles.buttonArrowOpen]: isOpen })}>\r\n {getBadgeValue() && (\r\n <Badge badgeValue={`+${getBadgeValue()}`} filterVariant />\r\n )}\r\n </span>\r\n </div>\r\n </Button>\r\n );\r\n\r\n const popoverContent =\r\n type === 'calendar' ? (\r\n <Calendar\r\n currentDate={currentCalendarDate}\r\n selected={selectedDate}\r\n onDaySelect={handleDateSelection}\r\n onDateChange={handleCalendarNavigation}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n locale={locale}\r\n onClear={handleClear}\r\n id={`filter-calendar-${id || ''}`}\r\n aria-label=\"Selecionar data para filtro\"\r\n />\r\n ) : (\r\n <div className={styles.panel}>\r\n {searchVisible && (\r\n <div className={styles.search}>\r\n <Search\r\n value={searchQuery}\r\n placeholder={placeholder}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={() => setSearchQuery('')}\r\n />\r\n </div>\r\n )}\r\n <ul\r\n className={styles.list}\r\n role=\"listbox\"\r\n aria-multiselectable={type === 'multiple'}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) => {\r\n const itemId = item.id || `filter-item-${index}`;\r\n const isSelected = !!tempSelectedItems[itemId];\r\n return (\r\n <li\r\n key={itemId}\r\n role=\"option\"\r\n aria-selected={isSelected}\r\n aria-disabled={item.disabled}\r\n className={clsx(styles.item, {\r\n [styles.itemSelected]: isSelected,\r\n [styles.itemDisabled]: item.disabled,\r\n })}\r\n onMouseDown={(e) => e.preventDefault()}\r\n onClick={() => toggleItem(itemId, item)}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n toggleItem(itemId, item);\r\n }\r\n }}\r\n >\r\n {type === 'multiple' && (\r\n <Checkbox\r\n checked={isSelected}\r\n disabled={item.disabled}\r\n label=\"\"\r\n />\r\n )}\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <span className={styles.itemText}>{item.text}</span>\r\n </li>\r\n );\r\n })\r\n ) : (\r\n <li className={styles.noResults} role=\"status\" aria-live=\"polite\">\r\n Nenhum item encontrado\r\n </li>\r\n )}\r\n </ul>\r\n <div className={styles.footer}>\r\n <Button fullWidth variant=\"outlined\" onClick={handleClearFilter}>\r\n Limpar\r\n </Button>\r\n <Button fullWidth onClick={handleApplyFilter}>\r\n Aplicar\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={filterClass} id={id} {...rest}>\r\n <Popover\r\n open={isOpen}\r\n onOpenChange={handleOpenChange}\r\n side={side}\r\n align={align}\r\n onOpenAutoFocus={(e) => e.preventDefault()}\r\n trigger={triggerButton}\r\n content={popoverContent}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport default Simple;\r\n","import React from 'react';\r\n\r\nimport Combined from './components/Combined';\r\nimport Simple from './components/Simple';\r\n\r\nimport type { FilterProps } from './Filter.types';\r\n\r\nconst Filter: React.FC<FilterProps> = ({\r\n mode = 'simple',\r\n ...props\r\n}) => {\r\n if (mode === 'combined') {\r\n return <Combined {...props} />;\r\n }\r\n\r\n return <Simple {...props} />;\r\n};\r\n\r\nexport default Filter;\r\n\r\n","import clsx from 'clsx';\r\nimport { RadioGroup } from 'radix-ui';\r\nimport React, { useId } from 'react';\r\n\r\nimport styles from './Radio.module.scss';\r\nimport { RadioGroupProps } from './Radio.types';\r\n\r\nconst Radio: React.FC<RadioGroupProps> = ({\r\n items,\r\n onValueChange,\r\n defaultValue,\r\n name,\r\n id,\r\n ariaLabel,\r\n orientation = 'vertical',\r\n className,\r\n ...rest\r\n}) => {\r\n const componentId = id || useId();\r\n return (\r\n <RadioGroup.Root\r\n id={componentId}\r\n className={clsx(styles.root, className)}\r\n defaultValue={defaultValue}\r\n onValueChange={onValueChange}\r\n name={name}\r\n aria-label={ariaLabel}\r\n data-orientation={orientation}\r\n orientation={orientation}\r\n {...rest}\r\n >\r\n {items.map(({ id, value, disabled, label }) => {\r\n const itemKey = id ?? value;\r\n const uniqueId = `${componentId}-item-${value}`;\r\n return (\r\n <div\r\n key={itemKey}\r\n className={clsx(styles.wrapper, { [styles.disabled]: disabled })}\r\n >\r\n <label className={styles.labelWrapper} htmlFor={uniqueId}>\r\n <div className={styles.itemWrapper}>\r\n <RadioGroup.Item\r\n disabled={disabled}\r\n className={styles.item}\r\n value={value}\r\n id={uniqueId}\r\n data-disabled={disabled}\r\n >\r\n <RadioGroup.Indicator className={styles.indicator} />\r\n </RadioGroup.Item>\r\n </div>\r\n <span className={styles.labelText}>{label}</span>\r\n </label>\r\n </div>\r\n );\r\n })}\r\n </RadioGroup.Root>\r\n );\r\n};\r\n\r\nexport default Radio;\r\n","import clsx from \"clsx\";\r\nimport React, { useId, useCallback, useState, useEffect } from \"react\";\r\n\r\nimport styles from './ListItem.module.scss';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport Radio from '../Radio/Radio';\r\n\r\nimport type { ListItemVariant, ListItemProps } from './ListItem.types';\r\n\r\nconst ListItem: React.FC<ListItemProps> = ({\r\n id,\r\n className,\r\n variant = 'text',\r\n text,\r\n name,\r\n subText,\r\n disabled = false,\r\n checked = false,\r\n selected = false,\r\n onClick,\r\n onChange,\r\n icon,\r\n value,\r\n showSubText = false,\r\n hovered = false,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const itemId = id || componentId;\r\n const [internalChecked, setInternalChecked] = useState<boolean>(checked);\r\n const [internalSelected, setInternalSelected] = useState<boolean>(selected);\r\n\r\n const handleCheckboxClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newChecked = !internalChecked;\r\n setInternalChecked(newChecked);\r\n onChange?.(newChecked);\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\r\n\r\n const handleRadioClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n if (!internalChecked) {\r\n setInternalChecked(true);\r\n onChange?.(true);\r\n }\r\n onClick?.(e);\r\n }, [disabled, internalChecked, onChange, onClick]);\r\n\r\n const handleTextOrIconClick = useCallback((e: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>): void => {\r\n if (disabled) return;\r\n const newSelected = !internalSelected;\r\n setInternalSelected(newSelected);\r\n onClick?.(e);\r\n }, [disabled, internalSelected, onClick]);\r\n\r\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLLIElement>): void => {\r\n if (!disabled && (e.key === 'Enter' || e.key === ' ')) {\r\n e.preventDefault();\r\n switch (variant) {\r\n case 'checkbox':\r\n handleCheckboxClick(e);\r\n break;\r\n case 'radio':\r\n handleRadioClick(e);\r\n break;\r\n case 'text':\r\n case 'icon':\r\n default:\r\n handleTextOrIconClick(e);\r\n break;\r\n }\r\n }\r\n }, [disabled, variant, handleCheckboxClick, handleRadioClick, handleTextOrIconClick]);\r\n\r\n useEffect(() => {\r\n setInternalChecked(checked);\r\n }, [checked]);\r\n\r\n useEffect(() => {\r\n setInternalSelected(selected);\r\n }, [selected]);\r\n\r\n const renderVariantContent = useCallback((): React.ReactNode => {\r\n const validVariants: ListItemVariant[] = ['text', 'checkbox', 'radio', 'icon'];\r\n const currentVariant = validVariants.includes(variant) ? variant : 'text';\r\n\r\n switch (currentVariant) {\r\n case 'checkbox':\r\n return (\r\n <>\r\n <Checkbox\r\n checked={internalChecked}\r\n disabled={disabled}\r\n onCheckedChange={() => handleCheckboxClick({} as React.MouseEvent<HTMLElement>)}\r\n />\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__text']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n onClick={handleCheckboxClick}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'radio':\r\n return (\r\n <>\r\n <div className={styles['zds-list-item__wrapper-radio']}>\r\n <span className={styles['zds-list-item__radio']} aria-hidden=\"true\">\r\n <Radio\r\n name={name}\r\n onValueChange={() => handleRadioClick({} as React.MouseEvent<HTMLElement>)}\r\n items= {[{\r\n value: value || '',\r\n label: '',\r\n disabled: disabled}]}\r\n aria-labelledby={`${itemId}-text`}\r\n />\r\n </span>\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleRadioClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'icon':\r\n return (\r\n <>\r\n <div className={styles['zds-list-item__wrapper-icon']}>\r\n {icon}\r\n </div>\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n </>\r\n );\r\n\r\n case 'text':\r\n default:\r\n return (\r\n <div className={styles['zds-list-item__wrapper-text']}>\r\n <span\r\n id={`${itemId}-text`}\r\n className={styles['zds-list-item__title']}\r\n onClick={handleTextOrIconClick}\r\n >\r\n {text}\r\n </span>\r\n {showSubText && subText && (\r\n <span\r\n id={`${itemId}-subtext`}\r\n className={styles['zds-list-item__subtext']}\r\n >\r\n {subText}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n }, [variant, itemId, internalChecked, disabled, handleCheckboxClick, handleRadioClick, handleTextOrIconClick, value, text, showSubText, subText, icon, name]);\r\n\r\n const listItemClass = clsx(\r\n styles['zds-list-item__container'],\r\n {\r\n [styles[`zds-list-item--${variant}`]]: variant,\r\n [styles['zds-list-item--disabled']]: disabled,\r\n [styles['zds-list-item--hovered']]: hovered,\r\n [className || '']: className\r\n }\r\n );\r\n\r\n const getAriaChecked = useCallback((): boolean | undefined => {\r\n if (variant === 'checkbox' || variant === 'radio') {\r\n return internalChecked;\r\n }\r\n return undefined;\r\n }, [variant, internalChecked]);\r\n\r\n return (\r\n <li\r\n className={listItemClass}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n aria-selected={variant === 'text' || variant === 'icon' ? internalSelected : undefined}\r\n aria-disabled={disabled}\r\n aria-checked={getAriaChecked()}\r\n aria-labelledby={`${itemId}-text`}\r\n aria-describedby={showSubText && subText ? `${itemId}-subtext` : undefined}\r\n data-testid=\"list-item\"\r\n {...rest}\r\n >\r\n {renderVariantContent()}\r\n </li>\r\n );\r\n};\r\n\r\nexport default ListItem;","import { memo } from 'react';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport { DefaultMenuItemProps } from '../Menu.types';\r\nimport styles from '../Menu.module.scss';\r\nimport clsx from 'clsx';\r\n\r\nexport const MenuItem = memo(({ item, isSelected, onSelect }: DefaultMenuItemProps) => {\r\n \r\n const handleSelect = () => {\r\n onSelect(item);\r\n };\r\n\r\n return (\r\n <DropdownMenu.Item\r\n className={clsx(styles.item)}\r\n data-selected={isSelected || undefined}\r\n onSelect={handleSelect}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && <span className={styles.itemIcon}>{item.icon}</span>}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n </DropdownMenu.Item>\r\n );\r\n});\r\n\r\nMenuItem.displayName = 'MenuItem';\r\n\r\nexport default MenuItem;\r\n","import { useState, useEffect, useCallback, useRef } from 'react';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\nexport interface UseMenuLogicProps {\r\n selectedItems?: MenuItemProps[];\r\n onItemSelect?: (items: MenuItemProps) => void;\r\n onOpenChange?: (open: boolean) => void;\r\n}\r\n\r\nexport interface UseMenuLogicReturn {\r\n open: boolean;\r\n internalSelectedItems: MenuItemProps[];\r\n setOpen: (open: boolean) => void;\r\n handleItemSelect: (item: MenuItemProps) => void;\r\n isItemSelected: (item: MenuItemProps) => boolean;\r\n}\r\n\r\nexport function useMenuLogic({\r\n selectedItems = [],\r\n onItemSelect,\r\n onOpenChange,\r\n}: UseMenuLogicProps): UseMenuLogicReturn {\r\n \r\n const isControlledRef = useRef(selectedItems !== undefined);\r\n const prevSelectedItemsRef = useRef<MenuItemProps[]>(selectedItems);\r\n\r\n const [open, setOpenState] = useState(false);\r\n const [internalSelectedItems, setInternalSelectedItems] = useState<MenuItemProps[]>(\r\n selectedItems || []\r\n );\r\n\r\n const getItemKey = useCallback((item: MenuItemProps): string => {\r\n return item.value ?? item.id ?? item.text ?? '';\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!isControlledRef.current || !selectedItems) return;\r\n\r\n const prevKeys = prevSelectedItemsRef.current.map(getItemKey).sort().join(',');\r\n const currentKeys = selectedItems.map(getItemKey).sort().join(',');\r\n\r\n if (prevKeys !== currentKeys) {\r\n setInternalSelectedItems(selectedItems);\r\n prevSelectedItemsRef.current = selectedItems;\r\n }\r\n }, [selectedItems, getItemKey]);\r\n\r\n const setOpen = useCallback(\r\n (newOpen: boolean) => {\r\n setOpenState(newOpen);\r\n onOpenChange?.(newOpen);\r\n },\r\n [onOpenChange]\r\n );\r\n\r\n const isItemSelected = useCallback(\r\n (item: MenuItemProps): boolean => {\r\n const itemKey = getItemKey(item);\r\n if (!itemKey) return false;\r\n\r\n return internalSelectedItems.some(\r\n (selected) => getItemKey(selected) === itemKey\r\n );\r\n },\r\n [internalSelectedItems, getItemKey]\r\n );\r\n\r\n const handleItemSelect = useCallback(\r\n (item: MenuItemProps) => {\r\n const newSelection = [item];\r\n setInternalSelectedItems(newSelection);\r\n\r\n if (onItemSelect) {\r\n onItemSelect(item);\r\n }\r\n\r\n setOpen(false);\r\n },\r\n [onItemSelect, setOpen]\r\n );\r\n\r\n return {\r\n open,\r\n internalSelectedItems,\r\n setOpen,\r\n handleItemSelect,\r\n isItemSelected,\r\n };\r\n}\r\n\r\nexport default useMenuLogic;\r\n","export const normalizeText = (text: React.ReactNode): string => {\r\n if (typeof text === 'string') return text.toLowerCase();\r\n if (typeof text === 'number') return text.toString().toLowerCase();\r\n if (typeof text === 'bigint') return text.toString().toLowerCase();\r\n if (typeof text === 'boolean') return text.toString().toLowerCase();\r\n return '';\r\n };\r\n\r\n","import { useCallback, useEffect, useRef } from 'react';\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport { MenuItemProps } from '../Menu.types';\r\n\r\ninterface UseSearchLogicProps {\r\n items: MenuItemProps[];\r\n searchValue: string;\r\n searchTerm: string;\r\n enableApiSearch?: boolean;\r\n onApiSearch?: (term: string) => void;\r\n}\r\n\r\ninterface UseSearchLogicReturn {\r\n filteredItems: MenuItemProps[];\r\n}\r\n\r\nexport const useSearchLogic = ({\r\n items,\r\n searchValue,\r\n searchTerm,\r\n enableApiSearch,\r\n onApiSearch,\r\n}: UseSearchLogicProps): UseSearchLogicReturn => {\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const lastSearchTermRef = useRef<string>('');\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n\r\n const debouncedApiSearch = useCallback(\r\n (term: string) => {\r\n if (lastSearchTermRef.current === term) {\r\n return;\r\n }\r\n\r\n lastSearchTermRef.current = term;\r\n\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(term);\r\n }\r\n }, 200);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && !hasInitialSearchRef.current && onApiSearch) {\r\n hasInitialSearchRef.current = true;\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (!enableApiSearch) return;\r\n\r\n if (searchValue.trim() === '') {\r\n debouncedApiSearch('');\r\n return;\r\n }\r\n if (searchTerm !== undefined && searchTerm.trim() !== '') {\r\n debouncedApiSearch(searchTerm);\r\n }\r\n }, [searchTerm, searchValue, enableApiSearch, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n };\r\n }, []);\r\n\r\n const filteredItems = useCallback((): MenuItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchValue.trim()) {\r\n return items;\r\n }\r\n\r\n const normalized = normalizeText(searchValue).toLowerCase();\r\n\r\n return items.filter((item) => {\r\n const text = normalizeText(item.text || '').toLowerCase();\r\n const subText = normalizeText(item.subText || '').toLowerCase();\r\n\r\n return text.includes(normalized) || subText.includes(normalized);\r\n });\r\n }, [items, searchValue, enableApiSearch]);\r\n\r\n return { filteredItems: filteredItems() };\r\n};\r\n","import { ChevronRight16Filled } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { DropdownMenu } from 'radix-ui';\r\nimport React, { useState, useEffect, useCallback, useRef } from 'react';\r\n\r\nimport Search from '../Search';\r\nimport MenuItem from './components/MenuItem';\r\nimport { useMenuLogic } from './hooks/useMenuLogic';\r\nimport { useSearchLogic } from './hooks/useSearchLogic';\r\nimport styles from './Menu.module.scss';\r\nimport { MenuItemProps, MenuProps } from './Menu.types';\r\n\r\nconst Menu: React.FC<MenuProps> = ({\r\n items,\r\n children,\r\n onItemSelect,\r\n search,\r\n enableInfiniteScroll,\r\n onScrollEnd,\r\n isLoadingMore,\r\n onApiSearch,\r\n enableApiSearch,\r\n selectedItems,\r\n onOpenChange,\r\n align = 'start',\r\n className,\r\n maxHeight = 400,\r\n ...rest\r\n}) => {\r\n const itemsWrapperRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n const observerRef = useRef<IntersectionObserver | null>(null);\r\n const sentinelRef = useRef<HTMLDivElement | null>(null);\r\n const onScrollEndRef = useRef(onScrollEnd);\r\n const isLoadingMoreRef = useRef(isLoadingMore);\r\n\r\n const [searchInput, setSearchInput] = useState('');\r\n const [searchTerm, setSearchTerm] = useState('');\r\n\r\n const maxHeightStyle = typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight;\r\n\r\n const { open, setOpen, handleItemSelect: handleItemSelectLogic, isItemSelected } = useMenuLogic({\r\n selectedItems,\r\n onItemSelect,\r\n onOpenChange,\r\n });\r\n\r\n const handleItemSelect = useCallback((item: MenuItemProps) => {\r\n handleItemSelectLogic(item);\r\n }, [handleItemSelectLogic]);\r\n\r\n const { filteredItems } = useSearchLogic({\r\n items,\r\n searchValue: searchInput,\r\n searchTerm: searchTerm,\r\n onApiSearch,\r\n enableApiSearch,\r\n });\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setSearchInput(value);\r\n\r\n if (value.trim() === '') {\r\n setSearchTerm('');\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n e.stopPropagation();\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n setSearchTerm(searchInput);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n onScrollEndRef.current = onScrollEnd;\r\n isLoadingMoreRef.current = isLoadingMore;\r\n }, [onScrollEnd, isLoadingMore]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll) {\r\n return;\r\n }\r\n\r\n const setupTimer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n const sentinel = sentinelRef.current;\r\n \r\n if (!container || !sentinel) {\r\n return;\r\n }\r\n\r\n observerRef.current = new IntersectionObserver(\r\n ([entry]) => {\r\n if (\r\n entry.isIntersecting &&\r\n !hasReachedEndRef.current &&\r\n !isLoadingMoreRef.current &&\r\n onScrollEndRef.current\r\n ) {\r\n hasReachedEndRef.current = true;\r\n onScrollEndRef.current();\r\n }\r\n },\r\n {\r\n root: container,\r\n threshold: 0.1,\r\n rootMargin: '50px',\r\n }\r\n );\r\n\r\n observerRef.current.observe(sentinel);\r\n }, 50);\r\n return () => {\r\n clearTimeout(setupTimer);\r\n if (observerRef.current) {\r\n observerRef.current.disconnect();\r\n observerRef.current = null;\r\n }\r\n };\r\n }, [open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!isLoadingMore && open && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [isLoadingMore, open, enableInfiniteScroll]);\r\n\r\n useEffect(() => {\r\n if (!open || !enableInfiniteScroll || !onScrollEnd || isLoadingMore) {\r\n return;\r\n }\r\n\r\n const timer = setTimeout(() => {\r\n const container = itemsWrapperRef.current;\r\n if (!container) {\r\n return;\r\n }\r\n\r\n const { scrollHeight, clientHeight } = container;\r\n \r\n if (scrollHeight <= clientHeight && !hasReachedEndRef.current) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n }\r\n }, 200);\r\n\r\n return () => clearTimeout(timer);\r\n }, [open, enableInfiniteScroll, onScrollEnd, isLoadingMore, filteredItems.length]);\r\n\r\n const renderMenuItem = useCallback(\r\n (item: MenuItemProps, key: string | number) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n\r\n if (hasChildren) {\r\n return (\r\n <DropdownMenu.Sub key={key}>\r\n <DropdownMenu.SubTrigger\r\n className={styles.subTrigger}\r\n disabled={item.disabled}\r\n >\r\n {item.icon && (\r\n <span className={styles.itemIcon}>{item.icon}</span>\r\n )}\r\n <div className={styles.wrapperText}>\r\n <span className={styles.itemText}>{item.text}</span>\r\n {item.subText && (\r\n <span className={styles.itemSubText}>{item.subText}</span>\r\n )}\r\n </div>\r\n <ChevronRight16Filled className={styles.chevronIcon} />\r\n </DropdownMenu.SubTrigger>\r\n\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.SubContent\r\n className={styles.subContent}\r\n sideOffset={16}\r\n collisionPadding={20}\r\n >\r\n {item.children!.map((childItem, childIndex) =>\r\n renderMenuItem(childItem, `${key}-${childIndex}`)\r\n )}\r\n </DropdownMenu.SubContent>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Sub>\r\n );\r\n }\r\n return (\r\n <MenuItem\r\n key={key}\r\n item={item}\r\n isSelected={isItemSelected(item)}\r\n onSelect={handleItemSelect}\r\n />\r\n );\r\n },\r\n [handleItemSelect, isItemSelected]\r\n );\r\n\r\n const closedByPointerRef = useRef(false);\r\n\r\n const handleOpenChange = (newOpen: boolean) => {\r\n setOpen(newOpen);\r\n if (!newOpen) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n return (\r\n <DropdownMenu.Root open={open} onOpenChange={handleOpenChange}>\r\n <DropdownMenu.Trigger asChild>{children}</DropdownMenu.Trigger>\r\n <DropdownMenu.Portal>\r\n <DropdownMenu.Content\r\n className={clsx(styles.content, className)}\r\n sideOffset={8}\r\n align={align}\r\n onPointerDown={() => { closedByPointerRef.current = true; }}\r\n onInteractOutside={() => { closedByPointerRef.current = true; }}\r\n onCloseAutoFocus={(e) => {\r\n if (closedByPointerRef.current) {\r\n e.preventDefault();\r\n closedByPointerRef.current = false;\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n if (search) {\r\n e.stopPropagation();\r\n }\r\n }}\r\n {...rest}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n placeholder=\"Buscar\"\r\n onChange={handleSearchChange}\r\n value={searchInput}\r\n onKeyDown={handleSearchKeyDown}\r\n />\r\n </div>\r\n )}\r\n\r\n <div \r\n className={styles.itemsWrapper} \r\n ref={itemsWrapperRef}\r\n style={{ maxHeight: maxHeightStyle }}\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, index) =>\r\n renderMenuItem(item, item.value || item.text || `item-${index}`)\r\n )\r\n ) : (\r\n <div className={styles.emptyState}>Nenhum item encontrado</div>\r\n )}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>Carregando mais itens...</div>\r\n )}\r\n {enableInfiniteScroll && (\r\n <div\r\n ref={sentinelRef}\r\n data-scroll-sentinel\r\n style={{ height: '1px', visibility: 'hidden' }}\r\n />\r\n )}\r\n </div>\r\n </DropdownMenu.Content>\r\n </DropdownMenu.Portal>\r\n </DropdownMenu.Root>\r\n );\r\n};\r\n\r\nexport default Menu;\r\n","import { Dismiss16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Dialog } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport styles from './Modal.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { ModalProps } from './Modal.types';\r\n\r\nconst Modal: React.FC<ModalProps> = ({\r\n isOpen = false,\r\n onClose,\r\n title,\r\n children,\r\n headerContent,\r\n closeOnOverlayClick = true,\r\n className,\r\n id,\r\n footer,\r\n customWidth,\r\n fullscreen = false,\r\n ...rest\r\n}) => {\r\n const contentRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const handleOpenChange = (open: boolean): void => {\r\n if (!open) {\r\n onClose();\r\n }\r\n };\r\n\r\n const handleOpenAutoFocus = (e: Event): void => {\r\n e.preventDefault();\r\n contentRef.current?.focus();\r\n };\r\n\r\n return (\r\n <Dialog.Root open={isOpen} onOpenChange={handleOpenChange} {...rest}>\r\n <Dialog.Portal>\r\n <Dialog.Overlay className={styles.modalOverlay} />\r\n <Dialog.Content\r\n ref={contentRef}\r\n className={clsx(styles.modalContent, fullscreen && styles['modalContent--fullscreen'], className)}\r\n id={id}\r\n style={{\r\n '--modal-custom-width': customWidth,\r\n } as React.CSSProperties}\r\n onInteractOutside={!closeOnOverlayClick ? (e) => e.preventDefault() : undefined}\r\n onOpenAutoFocus={handleOpenAutoFocus}\r\n aria-labelledby={id ? `${id}-title` : 'modal-title'}\r\n tabIndex={-1}\r\n >\r\n <div className={styles.modalHeader}>\r\n {title && (\r\n <Dialog.Title\r\n className={styles.modalTitle}\r\n id={id ? `${id}-title` : 'modal-title'}\r\n >\r\n {title}\r\n </Dialog.Title>\r\n )}\r\n {headerContent && (\r\n <div>{headerContent}</div>\r\n )}\r\n <Dialog.Close asChild>\r\n <Button\r\n variant=\"outlined\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n size=\"lg\"\r\n tooltipText='Fechar'\r\n />\r\n </Dialog.Close>\r\n </div>\r\n <div className={styles.modalBody}>\r\n {children}\r\n </div>\r\n {footer && (\r\n <div className={styles.modalFooter}>{footer}</div>\r\n )}\r\n </Dialog.Content>\r\n </Dialog.Portal>\r\n </Dialog.Root>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import { Add16Regular, Subtract16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState, useRef, useCallback, useEffect, useId, useMemo } from 'react';\r\n\r\nimport styles from './Quantity.module.scss';\r\nimport Button from '../Button/Button';\r\n\r\nimport type { QuantityProps } from './Quantity.types';\r\n\r\nconst Quantity: React.FC<QuantityProps> = ({\r\n value = 0,\r\n onChange,\r\n disabled = false,\r\n decimal = false,\r\n decimalPlaces = 2,\r\n size = 'lg',\r\n id,\r\n valueIncrement = 1,\r\n className,\r\n inputSize,\r\n minValue = 0,\r\n maxValue = 9999,\r\n decrementAriaLabel = 'Decrease quantity',\r\n incrementAriaLabel = 'Increase quantity',\r\n inputAriaLabel = 'Quantity',\r\n ...rest\r\n}) => {\r\n const initialValue = Math.min(Math.max(value, minValue), maxValue);\r\n const [internalValue, setInternalValue] = useState<number>(initialValue);\r\n const [inputValue, setInputValue] = useState<string>(\r\n decimal ? initialValue.toFixed(decimalPlaces) : String(initialValue)\r\n );\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n\r\n const stepValue = valueIncrement !== undefined ? valueIncrement : decimal ? Math.pow(10, -decimalPlaces) : 1;\r\n\r\n const isMinValue = useMemo(() => internalValue <= minValue, [internalValue, minValue]);\r\n const isMaxValue = useMemo(() => internalValue >= maxValue, [internalValue, maxValue]);\r\n\r\n const validateProps = (decimalPlaces?: number, valueIncrement?: number) => {\r\n if (decimalPlaces !== undefined && (decimalPlaces < 1 || decimalPlaces > 10)) {\r\n console.warn('decimalPlaces deve estar entre 1 e 10');\r\n }\r\n if (valueIncrement !== undefined && valueIncrement <= 0) {\r\n console.warn('valueIncrement deve ser maior que 0');\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n validateProps(decimalPlaces, valueIncrement);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const clamped = Math.min(Math.max(value, minValue), maxValue);\r\n setInternalValue(clamped);\r\n setInputValue(decimal ? clamped.toFixed(decimalPlaces) : String(clamped));\r\n }, [value, minValue, maxValue, decimal, decimalPlaces]);\r\n\r\n const increment = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.min(maxValue, internalValue + stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, maxValue]);\r\n\r\n const decrement = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const newValue = Math.max(minValue, internalValue - stepValue);\r\n\r\n setInternalValue(newValue);\r\n setInputValue(decimal ? newValue.toFixed(decimalPlaces) : String(newValue));\r\n onChange?.(newValue);\r\n }, [disabled, internalValue, stepValue, decimal, decimalPlaces, onChange, minValue]);\r\n\r\n const filterInput = useCallback((inputValue: string): string => {\r\n if (decimal) {\r\n let filtered = inputValue.replace(/[^\\d.]/g, '');\r\n\r\n const parts = filtered.split('.');\r\n if (parts.length > 2) {\r\n filtered = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0') && !filtered.startsWith('0.')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered;\r\n } else {\r\n let filtered = inputValue.replace(/[^\\d]/g, '');\r\n\r\n if (filtered.length > 1 && filtered.startsWith('0')) {\r\n filtered = filtered.replace(/^0+/, '');\r\n }\r\n\r\n return filtered || '0'; // Se ficar vazio, retorna '0'\r\n }\r\n }, [decimal]);\r\n const handleInputChange = useCallback((event: React.ChangeEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n const rawValue = event.target.value;\r\n\r\n const filteredValue = filterInput(rawValue);\r\n\r\n setInputValue(filteredValue);\r\n\r\n if (filteredValue === '' || filteredValue === '.') {\r\n onChange?.(0);\r\n return;\r\n }\r\n\r\n if (decimal) {\r\n if (filteredValue.endsWith('.')) {\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(filteredValue);\r\n if (!isNaN(parsedValue)) {\r\n onChange?.(parsedValue);\r\n }\r\n } else {\r\n const parsedValue = parseInt(filteredValue, 10);\r\n if (!isNaN(parsedValue)) {\r\n const validValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n onChange?.(validValue);\r\n }\r\n }\r\n }, [disabled, decimal, filterInput, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleBlur = useCallback(() => {\r\n if (disabled) return;\r\n\r\n const currentValue = inputValue.trim();\r\n\r\n if (decimal) {\r\n if (currentValue === '' || currentValue === '.') {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n return;\r\n }\r\n\r\n if (currentValue.endsWith('.')) {\r\n const baseValue = parseFloat(currentValue.slice(0, -1));\r\n if (!isNaN(baseValue)) {\r\n const formattedValue = baseValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(baseValue);\r\n onChange?.(baseValue);\r\n }\r\n return;\r\n }\r\n\r\n const parsedValue = parseFloat(currentValue);\r\n if (!isNaN(parsedValue)) {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n const formattedValue = normalizedValue.toFixed(decimalPlaces);\r\n setInputValue(formattedValue);\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n } else {\r\n setInputValue(internalValue.toFixed(decimalPlaces));\r\n }\r\n } else {\r\n\r\n if (currentValue === '') {\r\n setInputValue(String(internalValue));\r\n return;\r\n }\r\n\r\n const parsedValue = parseInt(currentValue, 10);\r\n if (isNaN(parsedValue)) {\r\n setInputValue(String(internalValue));\r\n } else {\r\n const normalizedValue = Math.min(Math.max(parsedValue, minValue), maxValue);\r\n setInputValue(String(normalizedValue));\r\n setInternalValue(normalizedValue);\r\n onChange?.(normalizedValue);\r\n }\r\n }\r\n }, [disabled, decimal, inputValue, decimalPlaces, internalValue, onChange, minValue, maxValue]);\r\n\r\n\r\n const handleInputKeyDown = useCallback(\r\n (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (disabled) return;\r\n\r\n switch (e.key) {\r\n case 'ArrowUp':\r\n e.preventDefault();\r\n increment();\r\n break;\r\n\r\n case 'ArrowDown':\r\n e.preventDefault();\r\n decrement();\r\n break;\r\n\r\n case 'Enter':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Escape':\r\n e.preventDefault();\r\n if (inputRef.current) {\r\n setInputValue(decimal ? internalValue.toFixed(decimalPlaces) : String(internalValue));\r\n inputRef.current.blur();\r\n }\r\n break;\r\n\r\n case 'Home':\r\n e.preventDefault();\r\n setInternalValue(minValue);\r\n setInputValue(decimal ? minValue.toFixed(decimalPlaces) : String(minValue));\r\n onChange?.(minValue);\r\n break;\r\n\r\n case 'End':\r\n if (!decimal) {\r\n e.preventDefault();\r\n setInternalValue(maxValue);\r\n setInputValue(String(maxValue));\r\n onChange?.(maxValue);\r\n }\r\n break;\r\n }\r\n },\r\n [disabled, increment, decrement, decimal, decimalPlaces, onChange, internalValue, minValue, maxValue]\r\n );\r\n\r\n const inputSizeValue = inputSize !== undefined ? inputSize : Math.max(1, inputValue.length);\r\n\r\n const uniqueId = useId();\r\n const inputId = id || uniqueId;\r\n\r\n return (\r\n <div className={clsx(styles.quantity, { [styles.disabled]: disabled }, className)} {...rest}>\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n icon={<Subtract16Regular />}\r\n onClick={decrement}\r\n disabled={disabled || isMinValue}\r\n aria-label={decrementAriaLabel}\r\n tooltipText='Diminuir'\r\n />\r\n\r\n <input\r\n ref={inputRef}\r\n className={clsx(styles.quantityInput, { [styles.disabled]: disabled })}\r\n type='text'\r\n value={inputValue}\r\n onChange={handleInputChange}\r\n onBlur={handleBlur}\r\n onKeyDown={handleInputKeyDown}\r\n id={inputId}\r\n step={stepValue}\r\n aria-label={inputAriaLabel}\r\n role='spinbutton'\r\n aria-valuenow={internalValue}\r\n aria-valuemin={minValue}\r\n aria-valuemax={maxValue}\r\n disabled={disabled}\r\n inputMode={decimal ? 'decimal' : 'numeric'}\r\n size={inputSizeValue}\r\n />\r\n <Button\r\n variant='outlined'\r\n size={size}\r\n type='button'\r\n iconOnly\r\n onClick={increment}\r\n disabled={disabled || isMaxValue}\r\n aria-label={incrementAriaLabel}\r\n icon={<Add16Regular />}\r\n tooltipText='Aumentar'\r\n />\r\n\r\n </div>\r\n );\r\n};\r\n\r\n\r\nconst memorizedQuantity = React.memo(Quantity);\r\nmemorizedQuantity.displayName = 'Quantity';\r\n\r\nexport default memorizedQuantity;","import clsx from 'clsx';\r\nimport React, { useRef } from 'react';\r\n\r\nimport Checkbox from '../../Checkbox';\r\nimport styles from '../Select.module.scss';\r\nimport { CheckboxItemProps } from '../Select.types';\r\n\r\nconst CheckboxSelectItem: React.FC<CheckboxItemProps> = ({\r\n text,\r\n subTitle,\r\n disabled,\r\n checked,\r\n onCheckedChange,\r\n value,\r\n ...restProps\r\n}) => {\r\n const itemRef = useRef<HTMLDivElement>(null);\r\n\r\n const handleCheckboxChange = (checkedValue: boolean | 'indeterminate') => {\r\n onCheckedChange(Boolean(checkedValue));\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n\r\n if (e.key === ' ' || e.key === 'Enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n onCheckedChange(!checked);\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowDown') {\r\n e.preventDefault();\r\n const nextElement = itemRef.current?.nextElementSibling as HTMLDivElement;\r\n if (nextElement && nextElement.getAttribute('tabIndex') === '0') {\r\n nextElement.focus();\r\n }\r\n return;\r\n }\r\n\r\n if (e.key === 'ArrowUp') {\r\n e.preventDefault();\r\n const prevElement = itemRef.current?.previousElementSibling as HTMLDivElement;\r\n if (prevElement && prevElement.getAttribute('tabIndex') === '0') {\r\n prevElement.focus();\r\n }\r\n return;\r\n }\r\n };\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (disabled) return;\r\n \r\n const target = e.target as HTMLElement;\r\n const isCheckboxClick = target.closest('input[type=\"checkbox\"]') || \r\n target.closest('label');\r\n \r\n if (!isCheckboxClick) {\r\n e.preventDefault();\r\n onCheckedChange(!checked);\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n ref={itemRef}\r\n className={clsx(styles.checkboxItem, {\r\n [styles.disabled]: disabled,\r\n })}\r\n role=\"option\"\r\n aria-selected={checked}\r\n aria-disabled={disabled}\r\n data-selected={checked}\r\n data-testid={`checkbox-item-${value}`}\r\n tabIndex={disabled ? -1 : 0}\r\n onKeyDown={handleKeyDown}\r\n onClick={handleClick}\r\n {...restProps}\r\n >\r\n <div className={styles.checkboxContent}>\r\n <Checkbox\r\n checked={checked}\r\n onCheckedChange={handleCheckboxChange}\r\n disabled={disabled}\r\n label={\r\n <div className={styles.textContent}>\r\n <span className={styles.title}>{text}</span>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n </div>\r\n }\r\n />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nCheckboxSelectItem.displayName = 'CheckboxSelectItem';\r\n\r\nexport default CheckboxSelectItem;","import { ChevronRight16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport React, { useState } from 'react';\r\n\r\nimport styles from '../Select.module.scss';\r\n\r\nimport type { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\n\r\ninterface ExpandableSelectItemProps {\r\n item: SelectItemProps;\r\n variant: SelectVariant;\r\n onSelect: (value: string) => void;\r\n selectedValues: string[];\r\n level?: number; \r\n}\r\n\r\nconst ExpandableSelectItem: React.FC<ExpandableSelectItemProps> = ({\r\n item,\r\n variant,\r\n onSelect,\r\n selectedValues,\r\n level = 0,\r\n}) => {\r\n const [isExpanded, setIsExpanded] = useState(false);\r\n const hasChildren = item.children && item.children.length > 0;\r\n const isSelected = selectedValues.includes(item.value);\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n if (hasChildren) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n setIsExpanded(!isExpanded);\r\n } else {\r\n onSelect(item.value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div \r\n className={styles.expandableItemContainer}\r\n style={{ paddingLeft: `${level * 16}px` }}\r\n >\r\n <div \r\n className={clsx(styles.itemWrapper, {\r\n [styles.selected]: isSelected && !hasChildren,\r\n [styles.disabled]: item.disabled,\r\n })}\r\n onClick={handleClick}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter' || e.key === ' ') {\r\n e.preventDefault();\r\n handleClick(e as unknown as React.MouseEvent);\r\n }\r\n }}\r\n role=\"button\"\r\n tabIndex={item.disabled ? -1 : 0}\r\n data-disabled={item.disabled || undefined}\r\n data-selected={isSelected && !hasChildren ? 'true' : undefined}\r\n data-testid={`select-item-${item.value}`}\r\n >\r\n {variant === 'icon' && item.icon && (\r\n <span className={styles.icon}>{item.icon}</span>\r\n )}\r\n \r\n <div className={styles.textContent}>\r\n <div className={styles.title}>{item.text}</div>\r\n {item.subTitle && <div className={styles.subTitle}>{item.subTitle}</div>}\r\n </div>\r\n \r\n {hasChildren && (\r\n <span className={styles.chevron}>\r\n {isExpanded ? <ChevronDown16Regular /> : <ChevronRight16Regular />}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n \r\n {hasChildren && isExpanded && (\r\n <div className={styles.childrenWrapper}>\r\n {item.children!.map((child) => (\r\n <ExpandableSelectItem\r\n key={child.id || child.value}\r\n item={child}\r\n variant={variant}\r\n onSelect={onSelect}\r\n selectedValues={selectedValues}\r\n level={level + 1}\r\n />\r\n ))}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ExpandableSelectItem;","import clsx from 'clsx';\r\nimport { Select } from 'radix-ui';\r\nimport React from 'react';\r\n\r\nimport styles from '../Select.module.scss';\r\nimport { SelectItemProps, SelectVariant } from '../Select.types';\r\n\r\ninterface SelectItemComponentProps extends SelectItemProps {\r\n variant?: SelectVariant;\r\n disableFocusOnHover?: boolean;\r\n}\r\n\r\nconst SelectItem = React.forwardRef<HTMLDivElement, SelectItemComponentProps>(\r\n ({ text, subTitle, icon, disabled, value, variant, disableFocusOnHover, ...restProps }, ref) => {\r\n return (\r\n <div\r\n className={clsx(styles.itemWrapper, {\r\n [styles.disabled]: disabled,\r\n })}\r\n data-disabled={disabled || undefined}\r\n data-testid={`select-item-${value}`}\r\n ref={ref}\r\n >\r\n {variant === 'icon' && icon && (\r\n <span className={styles.icon}>{icon}</span>\r\n )}\r\n\r\n <Select.Item\r\n className={clsx(styles.item, {\r\n [styles.disabled]: disabled,\r\n })}\r\n value={value}\r\n disabled={disabled}\r\n onPointerMove={disableFocusOnHover ? (e) => e.preventDefault() : undefined}\r\n {...restProps}\r\n >\r\n <Select.ItemText className={styles.title}>{text}</Select.ItemText>\r\n {subTitle && <div className={styles.subTitle}>{subTitle}</div>}\r\n <Select.ItemIndicator className={styles.itemIndicator} />\r\n </Select.Item>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nSelectItem.displayName = 'SelectItem';\r\n\r\nexport default SelectItem;","import { useReducer, useEffect, useRef, useCallback } from 'react';\r\n\r\nimport { normalizeText } from '../../../hooks/NormalizeText';\r\nimport {\r\n SelectState,\r\n SelectAction,\r\n UseSelectLogicProps,\r\n UseSelectLogicReturn,\r\n SelectItemProps,\r\n} from '../Select.types';\r\n\r\nconst initialState: SelectState = {\r\n isOpen: false,\r\n selectedValues: [],\r\n searchInput: '',\r\n searchTerm: '',\r\n touched: false,\r\n hasError: false,\r\n};\r\n\r\nfunction selectReducer(state: SelectState, action: SelectAction): SelectState {\r\n switch (action.type) {\r\n case 'SET_OPEN':\r\n return { ...state, isOpen: action.payload };\r\n case 'SET_SELECTED_VALUES':\r\n return { ...state, selectedValues: action.payload };\r\n case 'SET_SEARCH_INPUT':\r\n return { ...state, searchInput: action.payload };\r\n case 'SET_SEARCH_TERM':\r\n return { ...state, searchTerm: action.payload };\r\n case 'SET_TOUCHED':\r\n return { ...state, touched: action.payload };\r\n case 'SET_ERROR':\r\n return { ...state, hasError: action.payload };\r\n case 'RESET_SEARCH':\r\n return { ...state, searchInput: '', searchTerm: '' };\r\n case 'VALIDATE': {\r\n const hasError = action.payload.required && state.selectedValues.length === 0;\r\n return { ...state, hasError, touched: true };\r\n }\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nexport function useSelectLogic({\r\n value,\r\n required = false,\r\n search = false,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\r\n}: UseSelectLogicProps): UseSelectLogicReturn {\r\n const [state, dispatch] = useReducer(selectReducer, {\r\n ...initialState,\r\n selectedValues: Array.isArray(value) ? value : value ? [value] : [],\r\n });\r\n\r\n const searchInputRef = useRef<HTMLInputElement>(null);\r\n const debounceTimeoutRef = useRef<NodeJS.Timeout | null>(null);\r\n const hasInitialSearchRef = useRef<boolean>(false);\r\n const lastSearchTermRef = useRef<string>('');\r\n\r\n const debouncedApiSearch = useCallback(\r\n (searchTerm: string) => {\r\n if (lastSearchTermRef.current === searchTerm) {\r\n return;\r\n }\r\n \r\n lastSearchTermRef.current = searchTerm;\r\n \r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n\r\n debounceTimeoutRef.current = setTimeout(() => {\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch(searchTerm);\r\n }\r\n }, 300);\r\n },\r\n [enableApiSearch, onApiSearch]\r\n );\r\n\r\n useEffect(() => {\r\n const newValues = Array.isArray(value) ? value : value ? [value] : [];\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: newValues });\r\n }, [value]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && search) {\r\n setTimeout(() => {\r\n searchInputRef.current?.focus();\r\n }, 0);\r\n }\r\n }, [state.isOpen, search]);\r\n\r\n useEffect(() => {\r\n if (!state.isOpen) {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n }\r\n }, [state.isOpen]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableApiSearch && !hasInitialSearchRef.current) {\r\n hasInitialSearchRef.current = true;\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n lastSearchTermRef.current = '';\r\n }\r\n }\r\n }, [state.isOpen, enableApiSearch, onApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen) {\r\n if (lastSearchTermRef.current !== state.searchTerm) {\r\n debouncedApiSearch(state.searchTerm);\r\n }\r\n }\r\n }, [state.searchTerm, enableApiSearch, state.isOpen, debouncedApiSearch]);\r\n\r\n useEffect(() => {\r\n if (enableApiSearch && state.isOpen && state.searchInput === '' && state.searchTerm === '') {\r\n if (lastSearchTermRef.current !== '') {\r\n lastSearchTermRef.current = '';\r\n if (onApiSearch) {\r\n onApiSearch('');\r\n }\r\n }\r\n }\r\n }, [state.searchInput, state.searchTerm, enableApiSearch, state.isOpen, onApiSearch]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (debounceTimeoutRef.current) {\r\n clearTimeout(debounceTimeoutRef.current);\r\n }\r\n hasInitialSearchRef.current = false;\r\n lastSearchTermRef.current = '';\r\n };\r\n }, []);\r\n\r\n const setOpen = (open: boolean) => {\r\n dispatch({ type: 'SET_OPEN', payload: open });\r\n onOpenChange?.(open);\r\n\r\n if (!open) {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n }\r\n };\r\n\r\n const setSelectedValues = (values: string[]) => {\r\n dispatch({ type: 'SET_SELECTED_VALUES', payload: values });\r\n };\r\n\r\n const setSearchInput = (input: string) => {\r\n dispatch({ type: 'SET_SEARCH_INPUT', payload: input });\r\n };\r\n\r\n const setSearchTerm = (term: string) => {\r\n dispatch({ type: 'SET_SEARCH_TERM', payload: term });\r\n };\r\n\r\n const setTouched = (touched: boolean) => {\r\n dispatch({ type: 'SET_TOUCHED', payload: touched });\r\n };\r\n\r\n const setError = (error: boolean) => {\r\n dispatch({ type: 'SET_ERROR', payload: error });\r\n };\r\n\r\n const resetSearch = () => {\r\n dispatch({ type: 'RESET_SEARCH' });\r\n lastSearchTermRef.current = '';\r\n };\r\n\r\n const validate = () => {\r\n dispatch({ type: 'VALIDATE', payload: { required } });\r\n };\r\n\r\n const handleSingleSelect = (newValue: string) => {\r\n const newValues = [newValue];\r\n setSelectedValues(newValues);\r\n onValueChange?.(newValue);\r\n setOpen(false);\r\n\r\n if (required && state.hasError) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const handleMultipleSelect = (itemValue: string, checked: boolean) => {\r\n let newSelectedValues: string[];\r\n\r\n if (checked) {\r\n newSelectedValues = [...state.selectedValues, itemValue];\r\n } else {\r\n newSelectedValues = state.selectedValues.filter((val) => val !== itemValue);\r\n }\r\n\r\n setSelectedValues(newSelectedValues);\r\n onValueChange?.(newSelectedValues);\r\n\r\n if (required && state.hasError && newSelectedValues.length > 0) {\r\n setError(false);\r\n }\r\n };\r\n\r\n const getDisplayText = (\r\n selectedValues: string[],\r\n placeholder: string,\r\n variant: string,\r\n items: SelectItemProps[]\r\n ): string => {\r\n if (selectedValues.length === 0) return placeholder;\r\n\r\n if (variant === 'checkbox') {\r\n const selectedItems = selectedValues\r\n .map((value) => {\r\n const item = items.find((item) => item.value === value);\r\n return (item?.text as string) || value;\r\n });\r\n\r\n if (selectedItems.length > 3) {\r\n const firstThree = selectedItems.slice(0, 3).join(', ');\r\n const remaining = selectedItems.length - 3;\r\n return `${firstThree} e mais ${remaining}`;\r\n }\r\n\r\n return selectedItems.join(', ');\r\n }\r\n\r\n return (\r\n (items.find((item) => item.value === selectedValues[0])?.text as string) ||\r\n selectedValues[0]\r\n );\r\n };\r\n\r\n const getFilteredItems = (\r\n items: SelectItemProps[],\r\n searchTerm: string\r\n ): SelectItemProps[] => {\r\n if (enableApiSearch) {\r\n return items;\r\n }\r\n\r\n if (!searchTerm) return items;\r\n\r\n const lowercasedSearchTerm = searchTerm.toLowerCase();\r\n return items.filter((item) => {\r\n const normalizedText = normalizeText(item.text);\r\n const normalizedSubTitle = item.subTitle\r\n ? normalizeText(item.subTitle)\r\n : '';\r\n const normalizedValue = normalizeText(item.value);\r\n\r\n return (\r\n normalizedText.includes(lowercasedSearchTerm) ||\r\n normalizedSubTitle.includes(lowercasedSearchTerm) ||\r\n normalizedValue.includes(lowercasedSearchTerm)\r\n );\r\n });\r\n };\r\n\r\n return {\r\n state,\r\n actions: {\r\n setOpen,\r\n setSelectedValues,\r\n setSearchInput,\r\n setSearchTerm,\r\n setTouched,\r\n setError,\r\n resetSearch,\r\n validate,\r\n handleSingleSelect,\r\n handleMultipleSelect,\r\n },\r\n computed: {\r\n displayText: '',\r\n filteredItems: [],\r\n },\r\n refs: {\r\n searchInputRef,\r\n },\r\n utils: {\r\n getDisplayText,\r\n getFilteredItems,\r\n },\r\n };\r\n}\r\n\r\nexport default useSelectLogic;","import { ChevronUp16Regular, ChevronDown16Regular } from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Select as SelectRadix } from 'radix-ui';\r\nimport React, { useMemo, useId, useRef, useEffect } from 'react';\r\n\r\nimport CheckboxSelectItem from './components/CheckboxSelectItem';\r\nimport ExpandableSelectItem from './components/ExpandableSelectItem';\r\nimport SelectItem from './components/SelectItem';\r\nimport { useSelectLogic } from './hooks/useSelectLogic';\r\nimport styles from './Select.module.scss';\r\nimport { SelectProps } from './Select.types';\r\nimport LabelComponent from '../../shared/Label';\r\nimport Search from '../Search/Search';\r\n\r\nconst Select: React.FC<SelectProps> = ({\r\n items,\r\n onValueChange,\r\n onOpenChange,\r\n variant,\r\n required = false,\r\n value,\r\n \r\n label,\r\n helperText,\r\n placeholder = 'Selecione',\r\n maxWidth,\r\n search = false,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n 'aria-label': ariaLabel,\r\n 'data-testid': testId,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n\talign = 'start',\r\n enableInfiniteScroll = false,\r\n onScrollEnd,\r\n isLoadingMore = false,\r\n enableApiSearch = false,\r\n onApiSearch,\r\n isSearching = false,\r\n ...rest\r\n}) => {\r\n const componentId = useId();\r\n const selectId = `select-${componentId}`;\r\n const viewportRef = useRef<HTMLDivElement>(null);\r\n const hasReachedEndRef = useRef<boolean>(false);\r\n\r\n const {\r\n state,\r\n actions,\r\n refs,\r\n utils,\r\n } = useSelectLogic({\r\n value,\r\n required,\r\n search,\r\n onValueChange,\r\n onOpenChange,\r\n enableApiSearch,\r\n onApiSearch,\r\n isSearching,\r\n });\r\n\r\n useEffect(() => {\r\n const viewport = viewportRef.current;\r\n if (!viewport || !enableInfiniteScroll) return;\r\n\r\n const handleScroll = () => {\r\n const { scrollTop, scrollHeight, clientHeight } = viewport;\r\n const isAtBottom = scrollTop + clientHeight >= scrollHeight - 1;\r\n\r\n if (isAtBottom && !hasReachedEndRef.current && onScrollEnd && !isLoadingMore) {\r\n hasReachedEndRef.current = true;\r\n onScrollEnd();\r\n } else if (!isAtBottom && hasReachedEndRef.current) {\r\n hasReachedEndRef.current = false;\r\n }\r\n };\r\n\r\n viewport.addEventListener('scroll', handleScroll);\r\n\r\n return () => {\r\n viewport.removeEventListener('scroll', handleScroll);\r\n };\r\n }, [state.isOpen, enableInfiniteScroll, onScrollEnd, isLoadingMore]);\r\n\r\n useEffect(() => {\r\n if (state.isOpen && enableInfiniteScroll) {\r\n hasReachedEndRef.current = false;\r\n }\r\n }, [state.isOpen, enableInfiniteScroll]);\r\n\r\n const displayText = useMemo(\r\n () => utils.getDisplayText(state.selectedValues, placeholder, variant, items),\r\n [state.selectedValues, placeholder, variant, items, utils]\r\n );\r\n\r\n const filteredItems = useMemo(() => {\r\n const termToFilter = enableApiSearch ? state.searchTerm : state.searchInput;\r\n return utils.getFilteredItems(items, termToFilter);\r\n }, [items, state.searchTerm, state.searchInput, enableApiSearch, utils]);\r\n\r\n const containerStyle = useMemo(() => ({\r\n maxWidth: maxWidth ? `${maxWidth}px` : undefined,\r\n }), [maxWidth]);\r\n\r\n const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n actions.setSearchInput(value);\r\n \r\n if (enableApiSearch) {\r\n actions.setSearchTerm(value);\r\n }\r\n };\r\n\r\n const handleSearchKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\r\n const isNavigationKey = ['ArrowDown', 'ArrowUp', 'Enter', 'Escape', 'Tab'].includes(e.key);\r\n \r\n if (!isNavigationKey) {\r\n e.stopPropagation();\r\n return;\r\n }\r\n \r\n if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\r\n e.currentTarget.blur();\r\n return;\r\n }\r\n\r\n if (e.key === 'Enter') {\r\n e.currentTarget.blur();\r\n return;\r\n } else if (e.key === 'Escape') {\r\n e.preventDefault();\r\n actions.resetSearch();\r\n }\r\n };\r\n\r\n const handleClear = () => {\r\n actions.resetSearch();\r\n if (enableApiSearch && onApiSearch) {\r\n onApiSearch('');\r\n }\r\n };\r\n\r\n return (\r\n <SelectRadix.Root\r\n value={variant === 'checkbox' || (search && state.isOpen) ? '' : (state.selectedValues[0] || '')}\r\n onValueChange={variant === 'checkbox' ? undefined : actions.handleSingleSelect}\r\n required={required}\r\n open={state.isOpen}\r\n onOpenChange={actions.setOpen}\r\n disabled={disabled}\r\n {...rest}\r\n >\r\n <div\r\n className={clsx(styles.container, className)}\r\n style={containerStyle}\r\n data-testid={testId}\r\n >\r\n <div className={styles.fieldContainer}>\r\n <div className={styles.containerLabel}>\r\n <LabelComponent\r\n htmlFor={selectId}\r\n required={required}\r\n tooltipText={tooltipText}\r\n tooltip={tooltip}\r\n side={side}\r\n align={align}\r\n error={state.hasError && state.touched}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n \r\n <SelectRadix.Trigger\r\n className={clsx(styles.trigger, {\r\n [styles.error]: state.hasError && state.touched,\r\n [styles.disabled]: disabled,\r\n [styles.hasValue]: state.selectedValues.length > 0,\r\n [styles.open]: state.isOpen,\r\n })}\r\n id={selectId}\r\n aria-label={ariaLabel}\r\n data-testid={`${testId}-trigger`}\r\n >\r\n {variant === 'checkbox' ? (\r\n <span className={styles.triggerText}>{displayText}</span>\r\n ) : (\r\n <SelectRadix.Value placeholder={placeholder} className={styles.placeholder}>{displayText}</SelectRadix.Value>\r\n )}\r\n {state.isOpen ? <ChevronUp16Regular /> : <ChevronDown16Regular />}\r\n </SelectRadix.Trigger>\r\n\r\n {!state.isOpen && helperText && !state.hasError && (\r\n <span className={clsx(\r\n styles.helper,\r\n {\r\n [styles.disabled]: disabled\r\n } \r\n )}>{helperText}</span>\r\n )}\r\n \r\n {state.hasError && state.touched && (\r\n <span className={styles.errorMessage}>\r\n {errorMessage || 'Campo obrigatório'}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <SelectRadix.Portal>\r\n <SelectRadix.Content\r\n className={styles.content}\r\n position=\"popper\"\r\n side=\"bottom\"\r\n sideOffset={8}\r\n align=\"start\"\r\n avoidCollisions={true}\r\n >\r\n {search && (\r\n <div className={styles.searchWrapper}>\r\n <Search\r\n ref={refs.searchInputRef}\r\n className={styles.search}\r\n placeholder=\"Buscar\"\r\n value={state.searchInput}\r\n onChange={handleSearchChange}\r\n onKeyDown={handleSearchKeyDown}\r\n onClear={handleClear}\r\n data-testid={`${testId}-search`}\r\n />\r\n </div>\r\n )}\r\n \r\n <SelectRadix.Viewport ref={viewportRef} className={styles.viewport} data-testid={testId ? `${testId}-viewport` : undefined}>\r\n <SelectRadix.Group className={styles.group}>\r\n {filteredItems.length === 0 ? (\r\n <div className={styles.noResults}>\r\n Nenhum resultado encontrado\r\n </div>\r\n ) : (\r\n <>\r\n {filteredItems.map((item) => {\r\n const hasChildren = item.children && item.children.length > 0;\r\n \r\n if (hasChildren) {\r\n return (\r\n <ExpandableSelectItem\r\n key={item.id || item.value}\r\n item={item}\r\n variant={variant}\r\n selectedValues={state.selectedValues}\r\n onSelect={(value) => {\r\n if (variant === 'checkbox') {\r\n const isSelected = state.selectedValues.includes(value);\r\n actions.handleMultipleSelect(value, !isSelected);\r\n } else {\r\n actions.handleSingleSelect(value);\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n \r\n return variant === 'checkbox' ? (\r\n <CheckboxSelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n checked={state.selectedValues.includes(item.value)}\r\n onCheckedChange={(checked: boolean) =>\r\n actions.handleMultipleSelect(item.value, checked)\r\n }\r\n />\r\n ) : (\r\n <SelectItem\r\n key={item.id || item.value}\r\n {...item}\r\n variant={variant}\r\n disableFocusOnHover={search}\r\n />\r\n );\r\n })}\r\n {enableInfiniteScroll && isLoadingMore && (\r\n <div className={styles.loadingMore}>\r\n Carregando mais itens...\r\n </div>\r\n )}\r\n </>\r\n )}\r\n </SelectRadix.Group>\r\n </SelectRadix.Viewport>\r\n </SelectRadix.Content>\r\n </SelectRadix.Portal>\r\n </div>\r\n </SelectRadix.Root>\r\n );\r\n};\r\n\r\nSelect.displayName = 'Select';\r\n\r\nexport default Select;","import React from 'react';\r\n\r\n/**\r\n * Componente de ícone SVG para estado vazio da tabela\r\n * Exibe um ícone de lupa com design personalizado do Zanthus Design System\r\n * @returns Elemento SVG para estado vazio\r\n */\r\nconst EmptyRows150Color: React.FC = () => (\r\n <svg width='150' height='150' viewBox='0 0 150 150' fill='none' xmlns='http://www.w3.org/2000/svg'>\r\n <circle cx='75' cy='75' r='75' fill='#E8E8EE' />\r\n <path\r\n d='M67.6111 63.3889C69.36 63.3889 70.7778 64.8067 70.7778 66.5556V81.3333C70.7778 83.0822 69.36 84.5 67.6111 84.5C65.8622 84.5 64.4444 83.0822 64.4444 81.3333V66.5556C64.4444 64.8067 65.8622 63.3889 67.6111 63.3889ZM67.6111 59.1667C69.943 59.1667 71.8333 57.2763 71.8333 54.9444C71.8333 52.6126 69.943 50.7222 67.6111 50.7222C65.2792 50.7222 63.3889 52.6126 63.3889 54.9444C63.3889 57.2763 65.2792 59.1667 67.6111 59.1667ZM67.6111 37C84.5172 37 98.2222 50.7051 98.2222 67.6111C98.2222 74.9235 95.6583 81.637 91.3803 86.9017L112.073 107.594C113.309 108.831 113.309 110.836 112.073 112.073C110.948 113.197 109.189 113.299 107.949 112.379L107.594 112.073L86.9017 91.3803C81.637 95.6583 74.9235 98.2222 67.6111 98.2222C50.7051 98.2222 37 84.5172 37 67.6111C37 50.7051 50.7051 37 67.6111 37ZM67.6111 43.3333C54.2029 43.3333 43.3333 54.2029 43.3333 67.6111C43.3333 81.0194 54.2029 91.8889 67.6111 91.8889C81.0194 91.8889 91.8889 81.0194 91.8889 67.6111C91.8889 54.2029 81.0194 43.3333 67.6111 43.3333Z'\r\n fill='#3B45F2'\r\n />\r\n </svg>\r\n);\r\n\r\nexport default EmptyRows150Color;","import { createElement, isValidElement } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar uid = (function () {\n return Math.random()\n .toString(36)\n .substring(6);\n});\n\nvar SVG = function (_a) {\n var _b = _a.animate, animate = _b === void 0 ? true : _b, _c = _a.backgroundColor, backgroundColor = _c === void 0 ? '#f5f6f7' : _c, _d = _a.backgroundOpacity, backgroundOpacity = _d === void 0 ? 1 : _d, _e = _a.baseUrl, baseUrl = _e === void 0 ? '' : _e, children = _a.children, _f = _a.foregroundColor, foregroundColor = _f === void 0 ? '#eee' : _f, _g = _a.foregroundOpacity, foregroundOpacity = _g === void 0 ? 1 : _g, _h = _a.gradientRatio, gradientRatio = _h === void 0 ? 2 : _h, uniqueKey = _a.uniqueKey, _j = _a.rtl, rtl = _j === void 0 ? false : _j, _k = _a.speed, speed = _k === void 0 ? 1.2 : _k, _l = _a.style, style = _l === void 0 ? {} : _l, _m = _a.title, title = _m === void 0 ? 'Loading...' : _m, _o = _a.beforeMask, beforeMask = _o === void 0 ? null : _o, props = __rest(_a, [\"animate\", \"backgroundColor\", \"backgroundOpacity\", \"baseUrl\", \"children\", \"foregroundColor\", \"foregroundOpacity\", \"gradientRatio\", \"uniqueKey\", \"rtl\", \"speed\", \"style\", \"title\", \"beforeMask\"]);\n var fixedId = uniqueKey || uid();\n var idClip = \"\".concat(fixedId, \"-diff\");\n var idGradient = \"\".concat(fixedId, \"-animated-diff\");\n var idAria = \"\".concat(fixedId, \"-aria\");\n var rtlStyle = rtl ? { transform: 'scaleX(-1)' } : null;\n var dur = \"\".concat(speed, \"s\");\n var from = \"\".concat(gradientRatio * -1, \" 0\");\n var to = \"\".concat(gradientRatio, \" 0\");\n return (createElement(\"svg\", __assign({ \"aria-labelledby\": idAria, role: \"img\", style: __assign(__assign({}, style), rtlStyle) }, props),\n title ? createElement(\"title\", { id: idAria }, title) : null,\n beforeMask && isValidElement(beforeMask) ? beforeMask : null,\n createElement(\"rect\", { role: \"presentation\", x: \"0\", y: \"0\", width: \"100%\", height: \"100%\", clipPath: \"url(\".concat(baseUrl, \"#\").concat(idClip, \")\"), style: { fill: \"url(\".concat(baseUrl, \"#\").concat(idGradient, \")\") } }),\n createElement(\"defs\", null,\n createElement(\"clipPath\", { id: idClip }, children),\n createElement(\"linearGradient\", { id: idGradient, gradientTransform: \"translate(\".concat(from, \")\") },\n createElement(\"stop\", { offset: \"0%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n createElement(\"stop\", { offset: \"50%\", stopColor: foregroundColor, stopOpacity: foregroundOpacity }),\n createElement(\"stop\", { offset: \"100%\", stopColor: backgroundColor, stopOpacity: backgroundOpacity }),\n animate && (createElement(\"animateTransform\", { attributeName: \"gradientTransform\", type: \"translate\", values: \"\".concat(from, \"; 0 0; \").concat(to), dur: dur, repeatCount: \"indefinite\" }))))));\n};\n\nvar ContentLoader = function (props) {\n return props.children ? createElement(SVG, __assign({}, props)) : createElement(ReactContentLoaderFacebook, __assign({}, props));\n};\n\nvar ReactContentLoaderFacebook = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 476 124\" }, props),\n createElement(\"rect\", { x: \"48\", y: \"8\", width: \"88\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"48\", y: \"26\", width: \"52\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"56\", width: \"410\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"72\", width: \"380\", height: \"6\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"88\", width: \"178\", height: \"6\", rx: \"3\" }),\n createElement(\"circle\", { cx: \"20\", cy: \"20\", r: \"20\" }))); };\n\nvar ReactContentLoaderInstagram = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 460\" }, props),\n createElement(\"circle\", { cx: \"31\", cy: \"31\", r: \"15\" }),\n createElement(\"rect\", { x: \"58\", y: \"18\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"58\", y: \"34\", rx: \"2\", ry: \"2\", width: \"140\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"2\", ry: \"2\", width: \"400\", height: \"400\" }))); };\n\nvar ReactContentLoaderCode = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 340 84\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", width: \"67\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"76\", y: \"0\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"127\", y: \"48\", width: \"53\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"187\", y: \"48\", width: \"72\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"48\", width: \"100\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"0\", y: \"71\", width: \"37\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"18\", y: \"23\", width: \"140\", height: \"11\", rx: \"3\" }),\n createElement(\"rect\", { x: \"166\", y: \"23\", width: \"173\", height: \"11\", rx: \"3\" }))); };\n\nvar ReactContentLoaderListStyle = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 400 110\" }, props),\n createElement(\"rect\", { x: \"0\", y: \"0\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"20\", rx: \"3\", ry: \"3\", width: \"220\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"40\", rx: \"3\", ry: \"3\", width: \"170\", height: \"10\" }),\n createElement(\"rect\", { x: \"0\", y: \"60\", rx: \"3\", ry: \"3\", width: \"250\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"80\", rx: \"3\", ry: \"3\", width: \"200\", height: \"10\" }),\n createElement(\"rect\", { x: \"20\", y: \"100\", rx: \"3\", ry: \"3\", width: \"80\", height: \"10\" }))); };\n\nvar ReactContentLoaderBulletList = function (props) { return (createElement(ContentLoader, __assign({ viewBox: \"0 0 245 125\" }, props),\n createElement(\"circle\", { cx: \"10\", cy: \"20\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"15\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"50\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"45\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"80\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"75\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }),\n createElement(\"circle\", { cx: \"10\", cy: \"110\", r: \"8\" }),\n createElement(\"rect\", { x: \"25\", y: \"105\", rx: \"5\", ry: \"5\", width: \"220\", height: \"10\" }))); };\n\nexport default ContentLoader;\nexport { ReactContentLoaderBulletList as BulletList, ReactContentLoaderCode as Code, ReactContentLoaderFacebook as Facebook, ReactContentLoaderInstagram as Instagram, ReactContentLoaderListStyle as List };\n//# sourceMappingURL=react-content-loader.es.js.map\n","import React from 'react';\r\nimport ContentLoader, { IContentLoaderProps } from 'react-content-loader';\r\n\r\n/**\r\n * Componente de loading para lista de tabela\r\n * Simula o carregamento de dados em formato de tabela usando ContentLoader\r\n * @param props - Propriedades adicionais para o ContentLoader\r\n * @returns Elemento de loading animado\r\n */\r\nconst LoaderList: React.FC<IContentLoaderProps> = (props) => (\r\n <ContentLoader\r\n speed={1}\r\n width=\"100%\"\r\n viewBox=\"0 0 1272 652\"\r\n backgroundColor=\"#F5F5F7\"\r\n foregroundColor=\"#FFFFFF\"\r\n {...props}\r\n >\r\n {/* Cabeçalho da tabela */}\r\n <rect x=\"0\" y=\"0\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"44\" />\r\n\r\n {/* Primeira linha */}\r\n <rect x=\"0\" y=\"76\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"116\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"76\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"116\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"76\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"116\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Segunda linha */}\r\n <rect x=\"0\" y=\"164\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"204\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"164\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"204\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"164\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"204\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Terceira linha */}\r\n <rect x=\"0\" y=\"252\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"292\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"252\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"292\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"252\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"292\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quarta linha */}\r\n <rect x=\"0\" y=\"340\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"380\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"340\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"380\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"340\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"380\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Quinta linha */}\r\n <rect x=\"0\" y=\"428\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"468\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"428\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"468\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"428\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"468\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Sexta linha */}\r\n <rect x=\"0\" y=\"516\" rx=\"12\" ry=\"12\" width=\"402\" height=\"24\" />\r\n <rect x=\"0\" y=\"556\" rx=\"8\" ry=\"8\" width=\"280\" height=\"16\" />\r\n <rect x=\"426\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"426\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"694\" y=\"516\" rx=\"12\" ry=\"12\" width=\"244\" height=\"24\" />\r\n <rect x=\"694\" y=\"556\" rx=\"8\" ry=\"8\" width=\"178\" height=\"16\" />\r\n <rect x=\"962\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"962\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n <rect x=\"1129\" y=\"516\" rx=\"12\" ry=\"12\" width=\"143\" height=\"24\" />\r\n <rect x=\"1129\" y=\"556\" rx=\"8\" ry=\"8\" width=\"90\" height=\"16\" />\r\n\r\n {/* Rodapé da tabela */}\r\n <rect x=\"0\" y=\"604\" rx=\"8\" ry=\"8\" width=\"1272\" height=\"48\" />\r\n </ContentLoader>\r\n)\r\nexport default LoaderList;","import clsx from 'clsx';\r\nimport { format } from 'date-fns';\r\nimport { ptBR } from 'date-fns/locale';\r\nimport React, { useState, useMemo, useCallback, ReactNode, CSSProperties } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Checkbox from '../Checkbox';\r\nimport EmptyRows150Color from './EmptyRows150Color';\r\nimport LoaderList from './LoaderList';\r\n\r\nimport type { TableColumn, TableRowData, TableProps } from './Table.types';\r\n\r\nconst useSelection = <T extends TableRowData = TableRowData>(\r\n dataSource: T[],\r\n rowSelection?: TableProps<T>['rowSelection']\r\n) => {\r\n const [internalKeys, setInternalKeys] = useState<(string | number)[]>([]);\r\n const selectedKeys = rowSelection?.selectedRowKeys ?? internalKeys;\r\n const selectedSet = useMemo(() => new Set(selectedKeys), [selectedKeys]);\r\n\r\n const handleChange = useCallback((newKeys: (string | number)[]) => {\r\n const newRows = dataSource.filter((_, index) => newKeys.includes(index)) as T[];\r\n\r\n if (rowSelection?.selectedRowKeys !== undefined) {\r\n rowSelection.onChange?.(newKeys, newRows);\r\n } else {\r\n setInternalKeys(newKeys);\r\n rowSelection?.onChange?.(newKeys, newRows);\r\n }\r\n }, [dataSource, rowSelection]);\r\n\r\n const toggleRow = useCallback((key: string | number) => {\r\n const newKeys = selectedSet.has(key)\r\n ? selectedKeys.filter(k => k !== key)\r\n : [...selectedKeys, key];\r\n handleChange(newKeys);\r\n }, [selectedKeys, selectedSet, handleChange]);\r\n\r\n const selectableKeys = useMemo(() => (\r\n dataSource\r\n .map((row, index) => ({ index, disabled: rowSelection?.getCheckboxProps?.(row, index)?.disabled }))\r\n .filter(({ disabled }) => !disabled)\r\n .map(({ index }) => index)\r\n ), [dataSource, rowSelection]);\r\n\r\n const toggleAll = useCallback(() => {\r\n const isAllSelectableSelected = selectableKeys.every(k => selectedSet.has(k));\r\n const newKeys = isAllSelectableSelected\r\n ? selectedKeys.filter(k => !selectableKeys.includes(k as number))\r\n : [...new Set([...selectedKeys, ...selectableKeys])];\r\n handleChange(newKeys);\r\n }, [selectableKeys, selectedKeys, selectedSet, handleChange]);\r\n\r\n const isAllSelected = selectableKeys.length > 0 && selectableKeys.every(k => selectedSet.has(k));\r\n const isIndeterminate = selectableKeys.some(k => selectedSet.has(k)) && !isAllSelected;\r\n\r\n return {\r\n selectedSet,\r\n selectedKeys,\r\n toggleRow,\r\n toggleAll,\r\n isAllSelected,\r\n isIndeterminate,\r\n };\r\n};\r\n\r\nconst renderCell = <T extends TableRowData = TableRowData>(column: TableColumn<T>, row: T, index: number): ReactNode => {\r\n if (column.render) {\r\n return column.render(row, index);\r\n }\r\n\r\n const value = row[column.key];\r\n\r\n switch (column.type) {\r\n case 'datetime':\r\n if (!value) return '';\r\n try {\r\n const date = new Date(value);\r\n return format(date, column.format || 'dd/MM/yyyy', { locale: ptBR });\r\n } catch {\r\n return value;\r\n }\r\n default:\r\n return value;\r\n }\r\n};\r\n\r\nconst Table = <T extends TableRowData = TableRowData>({\r\n columns,\r\n dataSource,\r\n className,\r\n loading = false,\r\n rowSelection,\r\n locale,\r\n onRow,\r\n ...rest\r\n}: TableProps<T>) => {\r\n if (!Array.isArray(columns) || !Array.isArray(dataSource)) {\r\n console.warn('Table: columns e dataSource devem ser arrays');\r\n return null;\r\n }\r\n\r\n const { selectedSet, toggleRow, toggleAll, isAllSelected, isIndeterminate } = useSelection(\r\n dataSource,\r\n rowSelection\r\n );\r\n\r\n const finalColumns = useMemo(() => {\r\n if (!rowSelection) return columns;\r\n\r\n const checkboxColumn: TableColumn<T> = {\r\n key: '__checkbox__',\r\n label: (\r\n <Checkbox\r\n checked={isAllSelected || isIndeterminate}\r\n indeterminate={isIndeterminate}\r\n onCheckedChange={toggleAll}\r\n disabled={rowSelection.disableSelectAll}\r\n />\r\n ),\r\n render: (_, index) => {\r\n const props = rowSelection.getCheckboxProps?.(dataSource[index], index) || {};\r\n return (\r\n <Checkbox\r\n checked={selectedSet.has(index)}\r\n onCheckedChange={() => toggleRow(index)}\r\n disabled={props.disabled}\r\n />\r\n );\r\n },\r\n align: 'center',\r\n };\r\n\r\n return [checkboxColumn, ...columns];\r\n }, [columns, rowSelection, isAllSelected, isIndeterminate, toggleAll, selectedSet, toggleRow, dataSource]);\r\n const tableId = useMemo(() =>\r\n `table-${Math.random().toString(36).substr(2, 9)}`, []\r\n );\r\n if (loading) {\r\n return (\r\n <div className={clsx(styles.tableContainer, className)}>\r\n <div className={styles.tableLoader}>\r\n <LoaderList />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n const emptyText = locale?.emptyText || (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n <EmptyRows150Color />\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>Nenhum dado encontrado</h3>\r\n <p className={styles.tableEmptyCaption}>Nenhum registro encontrado</p>\r\n </div>\r\n </div>\r\n );\r\n\r\n return (\r\n <div className={clsx(styles.tableContainer, className)} {...rest}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table \r\n className={styles.table}\r\n role=\"table\"\r\n aria-label=\"Tabela de dados\"\r\n aria-describedby={loading ? `${tableId}-loading` : undefined}\r\n aria-rowcount={dataSource.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n <tr>\r\n {finalColumns.map((column) => (\r\n <th\r\n key={column.key}\r\n className={clsx(styles.tableTh, column.align && `text-${column.align}`)}\r\n style={column.style}\r\n >\r\n <div className={styles.tableThContent}>{column.label}</div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {dataSource.length > 0 ? (\r\n dataSource.map((row, index) => {\r\n const rowProps = onRow?.(row, index) || {};\r\n return (\r\n <tr\r\n key={index}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {finalColumns.map((column) => (\r\n <td\r\n key={column.key}\r\n className={clsx(styles.tableTd, column.align && `text-${column.align}`)}\r\n >\r\n {renderCell(column, row, index)}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td colSpan={finalColumns.length} className={styles.tableEmptyCell}>\r\n {emptyText}\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Table;","import React, { useState, KeyboardEvent } from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\n\r\nimport type { Side, Align } from '../../types/common.types';\r\nimport type { FilterItem as FilterListItem } from '../Filter';\r\n\r\ninterface BaseFilterItem {\r\n id?: string;\r\n buttonText: string | React.ReactNode;\r\n icon?: React.ReactElement;\r\n side?: Side;\r\n align?: Exclude<Align, 'center'>;\r\n disabled?: boolean;\r\n onToggle?: (isOpen: boolean) => void;\r\n tooltip?: string;\r\n}\r\n\r\ninterface CheckboxFilterItem extends BaseFilterItem {\r\n type: 'multiple' | 'single';\r\n items: FilterListItem[];\r\n selectedIds?: string[];\r\n onSelectionChange?: (selectedIds: string[]) => void;\r\n placeholder?: string;\r\n enableSearch?: boolean;\r\n}\r\n\r\ninterface CalendarFilterItem extends BaseFilterItem {\r\n type: 'calendar';\r\n selectedDate?: Date | null;\r\n onDateSelect?: (date: Date) => void;\r\n onClear?: () => void;\r\n minDate?: Date;\r\n maxDate?: Date;\r\n locale?: string;\r\n placeholder?: string;\r\n}\r\n\r\nexport type FilterItem = CheckboxFilterItem | CalendarFilterItem;\r\n\r\nconst isCalendarFilter = (filter: FilterItem): filter is CalendarFilterItem => {\r\n return filter.type === 'calendar';\r\n};\r\n\r\nconst isCheckboxFilter = (filter: FilterItem): filter is CheckboxFilterItem => {\r\n return filter.type === 'multiple' || filter.type === 'single';\r\n};\r\n\r\nexport interface TableHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\r\n searchValue?: string;\r\n onSearchChange?: (value: string) => void;\r\n searchPlaceholder?: string;\r\n showSearch?: boolean;\r\n showFilters?: boolean;\r\n filters?: React.ReactNode;\r\n filterItems?: FilterItem[];\r\n className?: string;\r\n onSearch?: (value: string) => void;\r\n showClearSearch?: boolean;\r\n}\r\n\r\nconst TableHeader: React.FC<TableHeaderProps> = ({\r\n searchValue = '',\r\n onSearchChange,\r\n onSearch,\r\n searchPlaceholder = 'Pesquisar...',\r\n showSearch = true,\r\n showFilters = false,\r\n filters,\r\n filterItems = [],\r\n className = '',\r\n ...rest\r\n}) => {\r\n const [internalSearchValue, setInternalSearchValue] = useState(searchValue);\r\n\r\n React.useEffect(() => {\r\n setInternalSearchValue(searchValue);\r\n }, [searchValue]);\r\n\r\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const value = e.target.value;\r\n setInternalSearchValue(value);\r\n \r\n if (value === '' && onSearchChange) {\r\n onSearchChange('');\r\n }\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n if (onSearch) {\r\n onSearch(internalSearchValue);\r\n } else if (onSearchChange) {\r\n onSearchChange(internalSearchValue);\r\n }\r\n }\r\n };\r\n\r\n const hasFilters = filters || (filterItems && filterItems.length > 0);\r\n\r\n return (\r\n <div className={`${styles.tableHeader} ${className}`.trim()} {...rest}>\r\n {showSearch && (onSearchChange || onSearch) && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={internalSearchValue}\r\n onChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n placeholder={searchPlaceholder}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n \r\n {showFilters && (\r\n <div className={styles.tableHeaderFilters}>\r\n {hasFilters ? (\r\n <div className={styles.tableHeaderFiltersContent}>\r\n {filters && (\r\n <div className={styles.tableHeaderCustomFilters}>\r\n {filters}\r\n </div>\r\n )}\r\n\r\n <div className={styles.tableHeaderFiltersWrapper}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n \r\n <div className={styles.tableHeaderFilterItems}>\r\n {filterItems && filterItems.map((filterItem, index) => {\r\n const commonProps = {\r\n buttonText: filterItem.buttonText,\r\n icon: filterItem.icon,\r\n side: filterItem.side,\r\n align: filterItem.align,\r\n disabled: filterItem.disabled,\r\n variant: 'outlined' as const,\r\n onOpen: () => filterItem.onToggle?.(true),\r\n onClose: () => filterItem.onToggle?.(false),\r\n };\r\n if (isCalendarFilter(filterItem)) {\r\n return (\r\n <Filter\r\n key={filterItem.id || index}\r\n {...commonProps}\r\n type=\"calendar\"\r\n selectedDate={filterItem.selectedDate}\r\n onDateSelect={filterItem.onDateSelect}\r\n onClearDate={filterItem.onClear}\r\n minDate={filterItem.minDate}\r\n maxDate={filterItem.maxDate}\r\n placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n\r\n if (isCheckboxFilter(filterItem)) {\r\n return (\r\n <Filter\r\n key={filterItem.id || index}\r\n {...commonProps}\r\n type={filterItem.type}\r\n items={filterItem.items}\r\n selectedIds={filterItem.selectedIds}\r\n onApplyFilter={filterItem.onSelectionChange}\r\n placeholder={filterItem.placeholder}\r\n enableSearch={filterItem.enableSearch}\r\n />\r\n );\r\n }\r\n\r\n console.warn('TableHeader: Tipo de filtro não reconhecido:', filterItem);\r\n return null;\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className={styles.tableHeaderFiltersPlaceholder}>\r\n <span>Nenhum filtro disponível</span>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport type { CalendarFilterItem, CheckboxFilterItem };\r\nexport { isCalendarFilter, isCheckboxFilter };\r\n\r\nexport default TableHeader;\r\n","import { ChevronLeft16Regular, ChevronRight16Regular } from '@fluentui/react-icons';\r\nimport React from 'react';\r\n\r\nimport styles from './Table.module.scss';\r\n\r\nexport interface TablePaginationProps extends React.HTMLAttributes<HTMLDivElement> {\r\n currentPage: number;\r\n totalItems: number;\r\n itemsPerPage: number;\r\n onPageChange: (page: number) => void;\r\n onItemsPerPageChange: (itemsPerPage: number) => void;\r\n pageSizeOptions?: number[];\r\n disabled?: boolean;\r\n className?: string;\r\n}\r\n\r\nconst TablePagination: React.FC<TablePaginationProps> = ({\r\n currentPage,\r\n totalItems,\r\n itemsPerPage,\r\n onPageChange,\r\n onItemsPerPageChange,\r\n pageSizeOptions = [10, 25, 50, 100],\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const startItem = totalItems > 0 ? (currentPage - 1) * itemsPerPage + 1 : 0;\r\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\r\n \r\n const canGoPrev = currentPage > 1 && !disabled;\r\n const canGoNext = currentPage < totalPages && !disabled;\r\n \r\n const handlePrevious = () => {\r\n if (canGoPrev) {\r\n onPageChange(currentPage - 1);\r\n }\r\n };\r\n \r\n const handleNext = () => {\r\n if (canGoNext) {\r\n onPageChange(currentPage + 1);\r\n }\r\n };\r\n \r\n const handleItemsPerPageChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\r\n const newItemsPerPage = Number(event.target.value);\r\n onItemsPerPageChange(newItemsPerPage);\r\n };\r\n\r\n return (\r\n <div className={`${styles.tablePagination} ${className}`.trim()} {...rest}>\r\n\r\n <div className={styles.tablePaginationSelect}>\r\n <label htmlFor=\"items-per-page\" className={styles.tablePaginationLabel}>\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"items-per-page\"\r\n value={itemsPerPage}\r\n onChange={handleItemsPerPageChange}\r\n disabled={disabled}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {pageSizeOptions.map((option) => (\r\n <option key={option} value={option}>\r\n {option}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n \r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalItems > 0 \r\n ? `${startItem}–${endItem} de ${totalItems}`\r\n : '0 itens'\r\n }\r\n </span>\r\n </div>\r\n \r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handlePrevious}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n \r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={handleNext}\r\n disabled={!canGoNext}\r\n aria-label=\"Próxima página\"\r\n >\r\n <ChevronRight16Regular />\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default TablePagination;","import { SearchInfo20Regular } from '@fluentui/react-icons';\r\n\r\nimport styles from '../Table.module.scss';\r\n\r\nimport type { EmptyStateProps } from '../Table.types';\r\n\r\nconst EmptyState = ({ emptyIcon, emptyTitle, emptyText }: EmptyStateProps) => (\r\n <div className={styles.tableEmpty}>\r\n <div className={styles.tableEmptyContent}>\r\n {emptyIcon ?? <SearchInfo20Regular />}\r\n </div>\r\n <div className={styles.tableEmptyText}>\r\n <h3 className={styles.tableEmptyTitle}>\r\n {emptyTitle ?? 'Nenhum dado encontrado'}\r\n </h3>\r\n <p className={styles.tableEmptyCaption}>\r\n {emptyText ?? 'Nenhum registro encontrado'}\r\n </p>\r\n </div>\r\n </div>\r\n);\r\n\r\nexport default EmptyState;\r\n","import { ChevronLeft16Regular, ChevronRight16Regular, ArrowSort16Regular, ArrowSortUp16Regular, ArrowSortDown16Regular, Dismiss16Regular } from '@fluentui/react-icons';\r\nimport {\r\n type ColumnDef,\r\n type RowSelectionState,\r\n type SortingState,\r\n flexRender,\r\n getCoreRowModel,\r\n getSortedRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table';\r\nimport clsx from 'clsx';\r\nimport { useState, useMemo, useRef, useEffect } from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\nimport 'react-loading-skeleton/dist/skeleton.css';\r\n\r\nimport styles from './Table.module.scss';\r\nimport Button from '../Button/Button';\r\nimport Checkbox from '../Checkbox/Checkbox';\r\nimport EmptyState from './components/EmptyState';\r\nimport Filter from '../Filter/Filter';\r\nimport Search from '../Search/Search';\r\n\r\nimport type { TableV2Props } from './Table.types';\r\n\r\nconst TableV2 = <T,>({\r\n columns,\r\n data,\r\n rowSelection: rowSelectionConfig,\r\n enableSorting = true,\r\n bulkActions,\r\n header,\r\n footer,\r\n loading = false,\r\n emptyIcon,\r\n emptyTitle,\r\n emptyText,\r\n onRow,\r\n className,\r\n}: TableV2Props<T>) => {\r\n const isRowSelectionEnabled = !!rowSelectionConfig;\r\n const isControlled = rowSelectionConfig?.selectedRowKeys !== undefined;\r\n\r\n const [pendingSearch, setPendingSearch] = useState(header?.searchValue ?? '');\r\n\r\n useEffect(() => {\r\n if (header?.searchValue !== undefined) {\r\n setPendingSearch(header.searchValue);\r\n }\r\n }, [header?.searchValue]);\r\n const [rowSelectionState, setRowSelectionState] = useState<RowSelectionState>({});\r\n const rowSelectionRef = useRef<RowSelectionState>({});\r\n\r\n const externalSelectionState = useMemo<RowSelectionState>(() => {\r\n if (!rowSelectionConfig?.selectedRowKeys) return {};\r\n return Object.fromEntries(\r\n rowSelectionConfig.selectedRowKeys.map((key) => [String(key), true])\r\n );\r\n }, [rowSelectionConfig?.selectedRowKeys]);\r\n\r\n const effectiveRowSelection = isControlled ? externalSelectionState : rowSelectionState;\r\n rowSelectionRef.current = effectiveRowSelection;\r\n const lastEmittedSelectionKey = useRef('{}');\r\n const [sorting, setSorting] = useState<SortingState>([]);\r\n const [pagination, setPagination] = useState({\r\n pageIndex: 0,\r\n pageSize: footer?.defaultPageSize ?? 10,\r\n });\r\n const { pageIndex, pageSize } = pagination;\r\n\r\n const selectionColumn = useMemo<ColumnDef<T, unknown>>(() => ({\r\n id: '__select__',\r\n size: 48,\r\n enableSorting: false,\r\n enableColumnFilter: false,\r\n header: ({ table: t }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={t.getIsAllPageRowsSelected()}\r\n indeterminate={t.getIsSomePageRowsSelected()}\r\n disabled={rowSelectionConfig?.disableSelectAll}\r\n onCheckedChange={(checked) =>\r\n t.toggleAllPageRowsSelected(checked)\r\n }\r\n />\r\n </div>\r\n ),\r\n cell: ({ row }) => (\r\n <div className={styles.checkboxCell}>\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n disabled={!row.getCanSelect()}\r\n onCheckedChange={(checked) => row.toggleSelected(checked)}\r\n />\r\n </div>\r\n ),\r\n }), [rowSelectionConfig?.disableSelectAll]);\r\n\r\n const resolvedColumns = useMemo(\r\n () => (isRowSelectionEnabled ? [selectionColumn, ...columns] : columns),\r\n [isRowSelectionEnabled, selectionColumn, columns]\r\n );\r\n\r\n const showSearch = !!(header?.onSearchChange);\r\n\r\n const table = useReactTable({\r\n data,\r\n columns: resolvedColumns,\r\n defaultColumn: { minSize: 44, size: 0 },\r\n state: {\r\n ...(isRowSelectionEnabled ? { rowSelection: effectiveRowSelection } : {}),\r\n ...(enableSorting ? { sorting } : {}),\r\n },\r\n onSortingChange: enableSorting ? setSorting : undefined,\r\n enableSorting,\r\n onRowSelectionChange: isRowSelectionEnabled\r\n ? (updater) => {\r\n const prev = rowSelectionRef.current;\r\n const next = typeof updater === 'function' ? updater(prev) : updater;\r\n const selectionKey = JSON.stringify(next, Object.keys(next).sort());\r\n if (selectionKey === lastEmittedSelectionKey.current) return;\r\n lastEmittedSelectionKey.current = selectionKey;\r\n rowSelectionRef.current = next;\r\n if (!isControlled) {\r\n setRowSelectionState(next);\r\n }\r\n if (rowSelectionConfig?.onRowChange) {\r\n const allRows = table.getCoreRowModel().rows;\r\n const selectedRows = allRows.filter((r) => next[r.id]).map((r) => r.original);\r\n const selectedKeys = allRows.filter((r) => next[r.id]).map((r) => r.index as (string | number));\r\n rowSelectionConfig.onRowChange(selectedRows, selectedKeys);\r\n }\r\n }\r\n : undefined,\r\n enableRowSelection: isRowSelectionEnabled\r\n ? typeof rowSelectionConfig?.disabled === 'function'\r\n ? (row) => !(rowSelectionConfig.disabled as (r: T, i: number) => boolean)(row.original, row.index)\r\n : typeof rowSelectionConfig?.disabled === 'boolean'\r\n ? !rowSelectionConfig.disabled\r\n : true\r\n : false,\r\n getCoreRowModel: getCoreRowModel(),\r\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined,\r\n });\r\n\r\n const effectiveTotalItems = footer?.totalItems ?? 0;\r\n const totalPages = footer ? Math.ceil(effectiveTotalItems / pageSize) : 0;\r\n const canGoPrev = pageIndex > 0;\r\n const canGoNext = pageIndex + 1 < totalPages;\r\n\r\n const skeletonRowCount = footer ? pageSize : (data.length > 0 ? data.length : pageSize);\r\n\r\n const selectedRows = useMemo(\r\n () =>\r\n table\r\n .getCoreRowModel()\r\n .rows.filter((r) => effectiveRowSelection[r.id])\r\n .map((r) => r.original),\r\n [effectiveRowSelection, table]\r\n );\r\n const selectedCount = selectedRows.length;\r\n const showBulkActions = isRowSelectionEnabled && !!bulkActions && selectedCount > 0;\r\n\r\n useEffect(() => {\r\n if (isRowSelectionEnabled) {\r\n table.resetRowSelection();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [pageIndex]);\r\n\r\n useEffect(() => {\r\n if (footer?.currentPage !== undefined) {\r\n const targetPageIndex = footer.currentPage - 1;\r\n setPagination((prev) =>\r\n prev.pageIndex !== targetPageIndex\r\n ? { ...prev, pageIndex: targetPageIndex }\r\n : prev,\r\n );\r\n }\r\n }, [footer?.currentPage]);\r\n\r\n const handleClearSelection = () => {\r\n table.resetRowSelection();\r\n bulkActions?.onClear?.();\r\n };\r\n\r\n const handlePageSizeChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\r\n const size = Number(e.target.value);\r\n setPagination({ pageIndex: 0, pageSize: size });\r\n footer?.onPageSizeChange?.(size);\r\n };\r\n\r\n return (\r\n <div className={clsx(styles.wrapper, className)}>\r\n {showBulkActions && (\r\n <div className={styles.bulkActionsBar}>\r\n <div className={styles.bulkActionsInfo}>\r\n <Button\r\n variant=\"text\"\r\n iconOnly\r\n icon={<Dismiss16Regular />}\r\n ariaLabel=\"Limpar seleção\"\r\n onClick={handleClearSelection}\r\n className={styles.bulkActionsClearButton}\r\n />\r\n <span className={styles.bulkActionsLabel}>\r\n {bulkActions.label\r\n ? bulkActions.label(selectedCount, selectedRows)\r\n : `${selectedCount} ${selectedCount === 1 ? 'item selecionado' : 'itens selecionados'}`}\r\n </span>\r\n </div>\r\n <div className={styles.bulkActionsButtons}>\r\n {bulkActions.actions.map((action, index) => (\r\n <Button\r\n key={index}\r\n variant={action.variant ?? 'outlined'}\r\n type=\"button\"\r\n disabled={action.disabled}\r\n onClick={action.onClick}\r\n size=\"sm\"\r\n >\r\n {action.label}\r\n </Button>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n {header && (\r\n <div className={styles.tableHeader}>\r\n {showSearch && (\r\n <div className={styles.tableHeaderSearchContainer}>\r\n <Search\r\n value={pendingSearch}\r\n searchMode={header?.searchMode ?? \"on-enter\"}\r\n onChange={(e) => {\r\n setPendingSearch(e.target.value);\r\n }}\r\n onSearch={(val) => {\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header?.onSearchChange?.(val);\r\n }}\r\n onClear={() => {\r\n setPendingSearch('');\r\n if (footer) {\r\n setPagination((prev) => ({ ...prev, pageIndex: 0 }));\r\n footer?.onPageChange?.(1);\r\n }\r\n header?.onSearchChange?.('');\r\n }}\r\n placeholder={header.searchPlaceholder ?? 'Pesquisar...'}\r\n className={styles.tableHeaderSearch}\r\n />\r\n </div>\r\n )}\r\n {!!header.filterItems?.length && (\r\n <div className={styles.tableHeaderFilters}>\r\n <span className={styles.tableHeaderFilterLabel}>Filtros</span>\r\n <div className={styles.tableHeaderFilterItems}>\r\n {header.filterItems.map((filterItem, index) => {\r\n const commonProps = {\r\n buttonText: filterItem.buttonText,\r\n icon: filterItem.icon,\r\n side: filterItem.side,\r\n align: filterItem.align,\r\n disabled: filterItem.disabled,\r\n variant: 'outlined' as const,\r\n onOpen: () => filterItem.onToggle?.(true),\r\n onClose: () => filterItem.onToggle?.(false),\r\n };\r\n if (filterItem.type === 'combined') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n mode=\"combined\"\r\n buttonText={filterItem.buttonText}\r\n icon={filterItem.icon}\r\n title={filterItem.title}\r\n drawerWidth={filterItem.drawerWidth}\r\n activeCount={filterItem.activeCount}\r\n drawerHeaderContent={filterItem.drawerHeaderContent}\r\n onApply={filterItem.onApply}\r\n onClear={filterItem.onClear}\r\n variant={filterItem.variant ?? 'outlined'}\r\n disabled={filterItem.disabled}\r\n >\r\n {filterItem.children}\r\n </Filter>\r\n );\r\n }\r\n if (filterItem.type === 'calendar') {\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type=\"calendar\"\r\n selectedDate={filterItem.selectedDate}\r\n onDateSelect={filterItem.onDateSelect}\r\n onClearDate={filterItem.onClear}\r\n minDate={filterItem.minDate}\r\n maxDate={filterItem.maxDate}\r\n locale={filterItem.locale}\r\n placeholder={filterItem.placeholder}\r\n />\r\n );\r\n }\r\n return (\r\n <Filter\r\n key={filterItem.id ?? index}\r\n {...commonProps}\r\n type={filterItem.type}\r\n items={filterItem.items}\r\n selectedIds={filterItem.selectedIds}\r\n onApplyFilter={filterItem.onSelectionChange}\r\n placeholder={filterItem.placeholder}\r\n enableSearch={filterItem.enableSearch}\r\n />\r\n );\r\n })}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n )}\r\n <div className={styles.tableContainer}>\r\n <div className={styles.tableScrollWrapper}>\r\n <table\r\n className={styles.table}\r\n aria-label=\"Tabela de dados\"\r\n aria-rowcount={data.length + 1}\r\n >\r\n <thead className={styles.tableHead}>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <tr key={headerGroup.id}>\r\n {headerGroup.headers.map((col) => (\r\n <th\r\n key={col.id}\r\n className={styles.tableTh}\r\n style={{\r\n textAlign: col.column.columnDef.meta?.align,\r\n width: col.column.columnDef.size || undefined,\r\n minWidth: col.column.columnDef.minSize,\r\n maxWidth: col.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? col.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n <div className={styles.tableThContent}>\r\n {col.isPlaceholder ? null : col.column.getCanSort() ? (\r\n <button\r\n type=\"button\"\r\n className={styles.tableSortButton}\r\n onClick={col.column.getToggleSortingHandler()}\r\n aria-label={`Ordenar por ${typeof col.column.columnDef.header === 'string' ? col.column.columnDef.header : col.id}`}\r\n >\r\n {flexRender(col.column.columnDef.header, col.getContext())}\r\n {col.column.getIsSorted() === 'asc' ? (\r\n <ArrowSortUp16Regular className={styles.tableSortIcon} />\r\n ) : col.column.getIsSorted() === 'desc' ? (\r\n <ArrowSortDown16Regular className={styles.tableSortIcon} />\r\n ) : (\r\n <ArrowSort16Regular className={clsx(styles.tableSortIcon, styles.tableSortIconNeutral)} />\r\n )}\r\n </button>\r\n ) : (\r\n flexRender(col.column.columnDef.header, col.getContext())\r\n )}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n ))}\r\n </thead>\r\n <tbody className={styles.tableBody}>\r\n {loading ? (\r\n Array.from({ length: skeletonRowCount }).map((_, rowIdx) => (\r\n <tr key={`skeleton-row-${rowIdx}`} className={styles.tableRow}>\r\n {table.getVisibleLeafColumns().map((col) => (\r\n <td key={col.id} className={styles.tableTd}>\r\n <Skeleton />\r\n </td>\r\n ))}\r\n </tr>\r\n ))\r\n ) : table.getRowModel().rows.length > 0 ? (\r\n table.getRowModel().rows.map((row, index) => {\r\n const rowProps = onRow?.(row.original, index) ?? {};\r\n return (\r\n <tr\r\n key={row.id}\r\n className={clsx(styles.tableRow, rowProps.className)}\r\n onClick={rowProps.onClick}\r\n onDoubleClick={rowProps.onDoubleClick}\r\n >\r\n {row.getVisibleCells().map((cell) => (\r\n <td\r\n key={cell.id}\r\n className={styles.tableTd}\r\n style={{\r\n textAlign: cell.column.columnDef.meta?.align,\r\n width: cell.column.columnDef.size || undefined,\r\n minWidth: cell.column.columnDef.minSize,\r\n maxWidth: cell.column.columnDef.maxSize !== Number.MAX_SAFE_INTEGER\r\n ? cell.column.columnDef.maxSize\r\n : undefined,\r\n }}\r\n >\r\n {cell.column.columnDef.meta?.maxHeight ? (\r\n <div \r\n className={styles.tableCellMaxHeight}\r\n style={{ maxHeight: cell.column.columnDef.meta.maxHeight}}>\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </div>\r\n ) : (\r\n flexRender(cell.column.columnDef.cell, cell.getContext())\r\n )}\r\n </td>\r\n ))}\r\n </tr>\r\n );\r\n })\r\n ) : (\r\n <tr>\r\n <td\r\n colSpan={table.getVisibleLeafColumns().length}\r\n className={styles.tableEmptyCell}\r\n >\r\n <EmptyState emptyIcon={emptyIcon} emptyTitle={emptyTitle} emptyText={emptyText} />\r\n </td>\r\n </tr>\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n {footer && (\r\n <div className={styles.tablePagination}>\r\n <div className={styles.tablePaginationSelect}>\r\n <label\r\n htmlFor=\"tablev2-page-size\"\r\n className={styles.tablePaginationLabel}\r\n >\r\n Itens por página\r\n </label>\r\n <select\r\n id=\"tablev2-page-size\"\r\n value={pageSize}\r\n onChange={handlePageSizeChange}\r\n className={styles.tablePaginationSelectInput}\r\n >\r\n {(footer.pageSizeOptions ?? [10, 25, 50, 100]).map((opt) => (\r\n <option key={opt} value={opt}>\r\n {opt}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n <div className={styles.tablePaginationInfo}>\r\n <span>\r\n {totalPages > 0\r\n ? `${pageIndex + 1} de ${totalPages}`\r\n : '0 páginas'}\r\n </span>\r\n </div>\r\n <div className={styles.tablePaginationControls}>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex - 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoPrev}\r\n aria-label=\"Página anterior\"\r\n >\r\n <ChevronLeft16Regular />\r\n </button>\r\n <button\r\n className={styles.tablePaginationButton}\r\n onClick={() => {\r\n const newPage = pageIndex + 1;\r\n setPagination((prev) => ({ ...prev, pageIndex: newPage }));\r\n footer?.onPageChange?.(newPage + 1);\r\n }}\r\n disabled={!canGoNext}\r\n aria-label=\"Próxima página\"\r\n >\r\n <ChevronRight16Regular />\r\n </button>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default TableV2;\r\n","import clsx from 'clsx';\r\nimport React, { useState, useCallback, useId, forwardRef, useEffect } from 'react';\r\n\r\nimport styles from './TextArea.module.scss';\r\nimport LabelComponent from '../../shared/Label';\r\n\r\nimport type { TextAreaProps } from './TextArea.types';\r\n\r\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\r\n (\r\n {\r\n className,\r\n value,\r\n label,\r\n placeholder,\r\n onChange,\r\n disabled = false,\r\n maxLength,\r\n required = false,\r\n helperText,\r\n tooltip = false,\r\n tooltipText,\r\n side = 'bottom',\r\n align = 'start',\r\n errorMessage,\r\n error,\r\n id,\r\n onBlur,\r\n onFocus,\r\n name,\r\n resize = 'vertical',\r\n showCharCount = false,\r\n height,\r\n ...rest\r\n },\r\n ref\r\n ) => {\r\n const normalizeValue = (val: string | undefined): string => {\r\n return val === undefined || val === null ? '' : String(val);\r\n };\r\n\r\n const [textareaValue, setTextareaValue] = useState(normalizeValue(value));\r\n const [textareaError, setTextareaError] = useState('');\r\n const generatedId = useId();\r\n const componentId = id || generatedId;\r\n\r\n useEffect(() => {\r\n setTextareaValue(normalizeValue(value));\r\n }, [value]);\r\n\r\n const handleChange = useCallback(\r\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n const newValue = e.target.value;\r\n\r\n if (!disabled && (!maxLength || newValue.length <= maxLength)) {\r\n setTextareaValue(newValue);\r\n onChange?.(newValue);\r\n }\r\n },\r\n [disabled, maxLength, onChange]\r\n );\r\n\r\n const handleBlur = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n if (required && textareaValue.trim() === '') {\r\n setTextareaError(errorMessage || 'Campo obrigatório.');\r\n } else {\r\n setTextareaError('');\r\n }\r\n onBlur?.(e);\r\n },\r\n [textareaValue, required, errorMessage, onBlur]\r\n );\r\n\r\n const handleFocus = useCallback(\r\n (e: React.FocusEvent<HTMLTextAreaElement>) => {\r\n onFocus?.(e);\r\n },\r\n [onFocus]\r\n );\r\n\r\n const hasError = Boolean(textareaError) || Boolean(error);\r\n const displayHelperText = (error ? errorMessage : undefined) || textareaError || helperText || '\\u00A0';\r\n const helperId = (textareaError || error)\r\n ? `${componentId}-error`\r\n : helperText\r\n ? `${componentId}-helper`\r\n : undefined;\r\n\r\n const containerClass = clsx(\r\n styles.container,\r\n disabled && styles.disabled,\r\n hasError && !disabled && styles.error,\r\n className\r\n );\r\n\r\n return (\r\n <div className={containerClass}>\r\n {label && (\r\n <LabelComponent\r\n htmlFor={componentId}\r\n required={required}\r\n tooltip={tooltip}\r\n tooltipText={tooltipText}\r\n side={side}\r\n align={align}\r\n error={hasError}\r\n disabled={disabled}\r\n >\r\n {label}\r\n </LabelComponent>\r\n )}\r\n\r\n <div className={styles.inputWrapper}>\r\n <div className={styles.inputContainer}>\r\n <textarea\r\n {...rest}\r\n ref={ref}\r\n id={componentId}\r\n name={name}\r\n value={textareaValue}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n onFocus={handleFocus}\r\n onBlur={handleBlur}\r\n maxLength={maxLength}\r\n disabled={disabled}\r\n aria-invalid={hasError}\r\n aria-required={required}\r\n aria-describedby={helperId}\r\n style={{ resize, height }}\r\n />\r\n </div>\r\n\r\n <div className={styles.footer}>\r\n <span\r\n id={helperId}\r\n className={styles.helperText}\r\n aria-live={hasError ? 'polite' : undefined}\r\n >\r\n {displayHelperText}\r\n </span>\r\n\r\n {showCharCount && maxLength && (\r\n <span className={styles.charCount}>\r\n {textareaValue.length}/{maxLength}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n }\r\n);\r\n\r\nTextArea.displayName = 'TextArea';\r\n\r\nexport default React.memo(TextArea);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\n\r\n/**\r\n * Valor disponibilizado pelo contexto do sistema de Toast.\r\n *\r\n * Acessível via `useToast()` em componentes filhos do `ToastProvider`.\r\n *\r\n * @see {@link useToast}\r\n */\r\nexport interface ToastContextValue {\r\n /** Lista de toasts atualmente visíveis na tela. */\r\n toasts: ToastProps[];\r\n /**\r\n * Exibe um novo toast na tela.\r\n *\r\n * Gera um `id` único automaticamente e adiciona o toast à fila.\r\n * Quando o limite de `maxToasts` é atingido, o toast mais antigo é removido.\r\n *\r\n * @param toast - Propriedades do toast a ser exibido (sem `id`).\r\n */\r\n showToast: (toast: Omit<ToastProps, 'id'>) => void;\r\n /**\r\n * Remove um toast específico da tela pelo seu `id`.\r\n *\r\n * @remarks\r\n * Geralmente não é necessário chamar este método manualmente, pois os toasts\r\n * se fecham automaticamente (via `duration`) ou pelo botão de fechar do usuário.\r\n *\r\n * @param id - ID único do toast a ser removido.\r\n */\r\n dismissToast: (id: string) => void;\r\n}\r\n\r\n/**\r\n * Contexto React que armazena o estado e as ações do sistema de Toast.\r\n *\r\n * @remarks\r\n * Não consuma este contexto diretamente. Utilize o hook `useToast()` para\r\n * acessar as funcionalidades de forma segura e com verificação de provider.\r\n *\r\n * @see {@link ToastContextValue}\r\n * @see {@link useToast}\r\n */\r\nexport const ToastContext = React.createContext<ToastContextValue | undefined>(undefined);\r\n","import * as React from 'react';\r\n\r\nimport { ToastProps } from '../components/Toast/Toast.types';\r\nimport { ToastContext } from '../contexts/ToastContext';\r\n\r\n/**\r\n * Hook interno que acessa o `ToastContext` diretamente.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns O valor completo do contexto — `toasts`, `showToast` e `dismissToast`.\r\n *\r\n * @internal\r\n */\r\nexport const useToastContext = () => {\r\n const context = React.useContext(ToastContext);\r\n if (!context) {\r\n throw new Error('useToastContext deve ser usado dentro de ToastProvider');\r\n }\r\n return context;\r\n};\r\n\r\n/**\r\n * Hook para exibir e remover toasts na aplicação.\r\n *\r\n * O componente que usa este hook deve ser filho de um `ToastProvider`.\r\n *\r\n * @throws {Error} Lança um erro se utilizado fora de um `ToastProvider`:\r\n * *\"useToastContext deve ser usado dentro de ToastProvider\"*\r\n *\r\n * @returns Objeto com os métodos `showToast` e `dismissToast`.\r\n *\r\n * @example\r\n * ```tsx\r\n * import { useToast } from '@giro-ds/react';\r\n *\r\n * function MeuComponente() {\r\n * const { showToast } = useToast();\r\n *\r\n * const handleSalvar = async () => {\r\n * try {\r\n * await salvarDados();\r\n * showToast({ title: 'Sucesso!', iconType: 'Success', duration: 3000 });\r\n * } catch (err) {\r\n * showToast({ title: 'Erro ao salvar', iconType: 'Alert', automaticClose: false });\r\n * }\r\n * };\r\n *\r\n * return <button onClick={handleSalvar}>Salvar</button>;\r\n * }\r\n * ```\r\n */\r\nexport const useToast = () => {\r\n const { showToast, dismissToast } = useToastContext();\r\n\r\n return {\r\n showToast: (toast: Omit<ToastProps, 'id'>) => showToast(toast),\r\n dismissToast: (id: string) => dismissToast(id),\r\n };\r\n};\r\n","import { Info20Filled, CheckmarkCircle20Filled, Warning20Filled, Dismiss16Filled} from '@fluentui/react-icons';\r\nimport clsx from 'clsx';\r\nimport { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Toast.module.scss';\r\nimport { ToastProps } from './Toast.types';\r\nimport { useToastContext } from '../../hooks/useToast';\r\n\r\n/**\r\n * Componente individual de notificação Toast.\r\n *\r\n * Consome o contexto do `ToastProvider` para gerenciar seu próprio ciclo de vida.\r\n * Cada instância recebe um `id` único gerado pelo provider e o utiliza para\r\n * se remover da fila ao ser fechada.\r\n *\r\n * Construído sobre `Toast.Root` do **Radix UI**, com suporte completo a\r\n * acessibilidade (ARIA) e gesto de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * Este componente não deve ser usado diretamente. Utilize o hook `useToast`\r\n * para exibir toasts programaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * // Uso indireto via hook (recomendado)\r\n * const { showToast } = useToast();\r\n *\r\n * showToast({\r\n * title: 'Item salvo',\r\n * iconType: 'Success',\r\n * duration: 3000,\r\n * });\r\n * ```\r\n *\r\n * @param props - {@link ToastProps} combinadas com o `id` único do toast\r\n */\r\nconst Toast: React.FC<ToastProps & { id: string }> = ({ \r\n id,\r\n title,\r\n duration = 5000,\r\n icon,\r\n iconClosed = <Dismiss16Filled />,\r\n automaticClose = true,\r\n iconType = \"Info\",\r\n className,\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = React.useState(false);\r\n const { dismissToast } = useToastContext();\r\n\r\n React.useEffect(() => {\r\n setOpen(true);\r\n }, []);\r\n\r\n const handleOpenChange = (isOpen: boolean) => {\r\n setOpen(isOpen);\r\n if (!isOpen && id) {\r\n setTimeout(() => dismissToast(id), 200);\r\n }\r\n };\r\n\r\n let displayIcon = icon;\r\n const effectiveDuration = automaticClose ? duration : Infinity;\r\n\r\n if (!icon) {\r\n if (iconType === 'Info') {\r\n displayIcon = <Info20Filled />;\r\n } else if (iconType === 'Success') {\r\n displayIcon = <CheckmarkCircle20Filled />;\r\n } else if (iconType === 'Alert') {\r\n displayIcon = <Warning20Filled />;\r\n }\r\n }\r\n\r\n return (\r\n <ToastRadix.Root \r\n className={clsx(styles.toastRoot, className)} \r\n open={open} \r\n onOpenChange={handleOpenChange} \r\n duration={effectiveDuration}\r\n {...rest}\r\n >\r\n <span className={`${styles.Icon} ${iconType ? styles[`icon${iconType}`] : ''}`} aria-hidden=\"true\">\r\n {displayIcon}\r\n </span>\r\n <div className={styles.toastContent}>\r\n <ToastRadix.Title className={styles.toastTitle}> {title} </ToastRadix.Title>\r\n </div>\r\n <ToastRadix.Close className={styles.toastClose}> {iconClosed} </ToastRadix.Close>\r\n </ToastRadix.Root>\r\n );\r\n};\r\n\r\nexport default Toast;\r\n","import * as React from 'react';\r\n\r\nimport { ToastContext } from '../../../contexts/ToastContext';\r\nimport { ToastProps } from '../Toast.types';\r\n\r\n/**\r\n * Provider que gerencia o estado global dos toasts na aplicação.\r\n *\r\n * Deve envolver toda a árvore de componentes que precisará exibir toasts.\r\n * Disponibiliza o contexto com `showToast` e `dismissToast` para todos os\r\n * componentes filhos via `useToast()`.\r\n *\r\n * @remarks\r\n * O `ToastContainer` deve ser renderizado **dentro** do `ToastProvider`.\r\n *\r\n * @example\r\n * ```tsx\r\n * // App.tsx ou layout principal\r\n * import { ToastProvider, ToastContainer } from '@giro-ds/react';\r\n *\r\n * function App() {\r\n * return (\r\n * <ToastProvider maxToasts={5}>\r\n * <Routes />\r\n * <ToastContainer />\r\n * </ToastProvider>\r\n * );\r\n * }\r\n * ```\r\n *\r\n * @param children - Árvore de componentes filhos da aplicação.\r\n * @param maxToasts - Número máximo de toasts exibidos simultaneamente.\r\n * Quando o limite é excedido, o toast mais antigo é removido automaticamente.\r\n * @default 5\r\n */\r\nexport const ToastProvider: React.FC<{ children: React.ReactNode; maxToasts?: number }> = ({ \r\n children, \r\n maxToasts = 5 \r\n}) => {\r\n const [toasts, setToasts] = React.useState<ToastProps[]>([]);\r\n\r\n const showToast = React.useCallback((toast: Omit<ToastProps, 'id'>) => {\r\n const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\r\n const newToast: ToastProps = { ...toast, id };\r\n\r\n setToasts((prevToasts) => {\r\n const updatedToasts = [...prevToasts, newToast];\r\n if (updatedToasts.length > maxToasts) {\r\n return updatedToasts.slice(updatedToasts.length - maxToasts);\r\n }\r\n return updatedToasts;\r\n });\r\n }, [maxToasts]);\r\n\r\n const dismissToast = React.useCallback((id: string) => {\r\n setToasts((prevToasts) => prevToasts.filter((toast) => toast.id !== id));\r\n }, []);\r\n\r\n const value = React.useMemo(\r\n () => ({ toasts, showToast, dismissToast }),\r\n [toasts, showToast, dismissToast]\r\n );\r\n\r\n return (\r\n <ToastContext.Provider value={value}>\r\n {children}\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nToastProvider.displayName = 'ToastProvider';\r\n","import { Toast as ToastRadix } from 'radix-ui';\r\nimport * as React from 'react';\r\n\r\nimport { useToastContext } from '../../../hooks/useToast';\r\nimport Toast from '../Toast';\r\nimport styles from '../Toast.module.scss';\r\n\r\n/**\r\n * Componente responsável por renderizar todos os toasts ativos na tela.\r\n *\r\n * Lê a lista de toasts do contexto fornecido pelo `ToastProvider` e os\r\n * renderiza individualmente. Configura o `Toast.Provider` do Radix UI com\r\n * direção de swipe para a esquerda.\r\n *\r\n * @remarks\r\n * - Deve ser posicionado **dentro** do `ToastProvider`.\r\n * - Geralmente é colocado próximo à raiz da aplicação, após os demais filhos.\r\n * - Toasts sem `id` são ignorados automaticamente.\r\n *\r\n * @example\r\n * ```tsx\r\n * <ToastProvider>\r\n * <App />\r\n * <ToastContainer /> {/* Deve estar aqui *\\/}\r\n * </ToastProvider>\r\n * ```\r\n */\r\nexport const ToastContainer: React.FC = () => {\r\n const { toasts } = useToastContext();\r\n\r\n return (\r\n <ToastRadix.Provider swipeDirection=\"left\">\r\n {toasts.map((toast) => {\r\n if (!toast.id) return null;\r\n return <Toast key={toast.id} id={toast.id} {...toast} />;\r\n })}\r\n <ToastRadix.Viewport className={styles.toastViewport} />\r\n </ToastRadix.Provider>\r\n );\r\n};\r\n\r\nToastContainer.displayName = 'ToastContainer';\r\n","import clsx from 'clsx';\r\nimport { Switch as SwitchRadix} from \"radix-ui\";\r\nimport * as React from \"react\";\r\n\r\nimport styles from './Switch.module.scss';\r\nimport { SwitchProps } from './Switch.types';\r\n\r\nconst Switch: React.FC<SwitchProps> = ({\r\n\tdisabled = false,\r\n\tdefaultChecked = false,\r\n\tchecked,\r\n\tonCheckedChange,\r\n\tclassName,\r\n\t...rest\r\n}) => (\r\n\t\t<div className={clsx(styles.container, className)}>\r\n\t\t\t<SwitchRadix.Root \r\n\t\t\t\tclassName={styles.switchRoot} \r\n\t\t\t\tdisabled={disabled} \r\n\t\t\t\tdefaultChecked={defaultChecked} \r\n\t\t\t\tchecked={checked}\r\n\t\t\t\tonCheckedChange={onCheckedChange}\r\n\t\t\t\t{...rest}\r\n\t\t\t>\r\n\t\t\t\t<SwitchRadix.Thumb className={styles.switchThumb} />\r\n\t\t\t</SwitchRadix.Root>\r\n\t\t</div>\r\n);\r\n\r\nexport default Switch;","import clsx from 'clsx';\r\nimport React, { useRef, useState, useCallback, useEffect } from 'react';\r\n\r\nimport styles from './VerificationCode.module.scss';\r\n\r\nimport type { InputType, VerificationCodeProps } from './VerificationCode.types';\r\n\r\n/**\r\n * Mapa de regex para validação dos tipos de entrada\r\n */\r\nconst REGEX_MAP: Record<InputType, RegExp> = {\r\n numeric: /^[0-9]$/,\r\n alpha: /^[a-zA-Z]$/,\r\n alphanumeric: /^[a-zA-Z0-9]$/,\r\n};\r\n\r\n/**\r\n * Componente VerificationCode para entrada de códigos de verificação\r\n * \r\n * @description Permite entrada de códigos com múltiplos dígitos,\r\n * suportando diferentes tipos de caracteres e navegação por teclado.\r\n * \r\n * @example\r\n * ```tsx\r\n * <VerificationCode\r\n * length={6}\r\n * inputType=\"numeric\"\r\n * onComplete={(code) => console.log('Código:', code)}\r\n * hasError={false}\r\n * />\r\n * ```\r\n */\r\nconst VerificationCode: React.FC<VerificationCodeProps> = ({\r\n length = 6,\r\n inputType = 'numeric',\r\n onComplete,\r\n hasError = false,\r\n errorMessage,\r\n disabled = false,\r\n className,\r\n ...rest\r\n}) => {\r\n\r\n const validLength = Math.min(Math.max(length, 1), 100);\r\n const [values, setValues] = useState<string[]>(Array(validLength).fill(''));\r\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\r\n const currentRegex = REGEX_MAP[inputType] || REGEX_MAP.numeric;\r\n\r\n\r\n useEffect(() => {\r\n setValues(Array(validLength).fill(''));\r\n }, [inputType, validLength]);\r\n\r\n \r\n const handleChange = useCallback((index: number, value: string): void => {\r\n\r\n if (!currentRegex.test(value)) return;\r\n\r\n const newValues = [...values];\r\n newValues[index] = value;\r\n setValues(newValues);\r\n if (value && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handlePaste = useCallback((e: React.ClipboardEvent<HTMLInputElement>): void => {\r\n e.preventDefault();\r\n\r\n const pasteData = e.clipboardData.getData('Text');\r\n const valuesToPaste = pasteData.split('').slice(0, validLength);\r\n\r\n const newValues = [...values];\r\n\r\n valuesToPaste.forEach((value, index) => {\r\n if (currentRegex.test(value)) {\r\n newValues[index] = value;\r\n }\r\n });\r\n\r\n setValues(newValues);\r\n\r\n const firstEmptyIndex = newValues.findIndex(v => v === '');\r\n const focusIndex = firstEmptyIndex === -1 ? validLength - 1 : firstEmptyIndex;\r\n inputsRef.current[focusIndex]?.focus();\r\n\r\n\r\n if (newValues.every(v => v !== '')) {\r\n onComplete?.(newValues.join(''));\r\n }\r\n }, [values, currentRegex, onComplete, validLength]);\r\n\r\n const handleKeyDown = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Backspace') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n\r\n if (values[index]) {\r\n\r\n newValues[index] = '';\r\n setValues(newValues);\r\n } else if (index > 0) {\r\n\r\n inputsRef.current[index - 1]?.focus();\r\n newValues[index - 1] = '';\r\n setValues(newValues);\r\n }\r\n }\r\n\r\n if (e.key === 'Delete') {\r\n e.preventDefault();\r\n\r\n const newValues = [...values];\r\n newValues[index] = '';\r\n setValues(newValues);\r\n\r\n if (index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }\r\n if (e.key === 'ArrowLeft' && index > 0) {\r\n e.preventDefault();\r\n inputsRef.current[index - 1]?.focus();\r\n }\r\n\r\n if (e.key === 'ArrowRight' && index < validLength - 1) {\r\n e.preventDefault();\r\n inputsRef.current[index + 1]?.focus();\r\n }\r\n }, [values, validLength]);\r\n\r\n const handleKeyUp = useCallback((index: number, e: React.KeyboardEvent<HTMLInputElement>): void => {\r\n if (e.key === 'Enter') {\r\n e.preventDefault();\r\n\r\n if (values[index] && index < validLength - 1) {\r\n inputsRef.current[index + 1]?.focus();\r\n } else if (values[index] && index === validLength - 1) {\r\n inputsRef.current[index]?.blur();\r\n }\r\n }\r\n }, [values, validLength]);\r\n const handleFocus = useCallback((e: React.FocusEvent<HTMLInputElement>): void => {\r\n e.target.select();\r\n }, []);\r\n\r\n return (\r\n <>\r\n <div className={clsx(styles['zds-verification-code__container'], className)} {...rest}>\r\n {values.map((val, i) => (\r\n <input\r\n id={`zds-verification-code__element-${i}`}\r\n key={i}\r\n ref={(el) => {\r\n inputsRef.current[i] = el;\r\n }}\r\n type=\"text\"\r\n inputMode={inputType === 'numeric' ? 'numeric' : 'text'}\r\n maxLength={1}\r\n value={val}\r\n onChange={(e) => handleChange(i, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(i, e)}\r\n onKeyUp={(e) => handleKeyUp(i, e)}\r\n onPaste={i === 0 ? handlePaste : undefined}\r\n onFocus={handleFocus}\r\n disabled={disabled}\r\n className={clsx(styles['zds-verification-code__input'], {\r\n [styles['zds-verification-code__has-error']]: hasError,\r\n [styles['zds-verification-code__filled']]: val,\r\n })}\r\n aria-invalid={hasError}\r\n aria-label={`Dígito ${i + 1} de ${validLength}`}\r\n aria-describedby={hasError && errorMessage ? 'verification-code-error' : undefined}\r\n autoComplete=\"one-time-code\"\r\n />\r\n ))}\r\n </div>\r\n\r\n {hasError && errorMessage && (\r\n <div\r\n id=\"verification-code-error\"\r\n className={styles['zds-verification-code__error']}\r\n role=\"alert\"\r\n aria-live=\"assertive\"\r\n >\r\n {errorMessage}\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default VerificationCode;","import { useState, useCallback, useRef, useEffect } from 'react';\r\n\r\n/**\r\n * Configurações para simulação de API\r\n */\r\nexport interface ApiSimulationConfig {\r\n /** Items por página */\r\n itemsPerPage?: number;\r\n /** Total de items no dataset */\r\n totalItems?: number;\r\n /** Delay em ms para simular latência */\r\n delay?: number;\r\n /** Taxa de erro (0-1) para simular falhas */\r\n errorRate?: number;\r\n /** Função geradora de items customizada */\r\n itemGenerator?: (index: number, searchQuery?: string) => any;\r\n /** Debug mode */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Estado da simulação de API\r\n */\r\nexport interface ApiSimulationState<T> {\r\n /** Items carregados */\r\n items: T[];\r\n /** Página atual */\r\n currentPage: number;\r\n /** Total de páginas */\r\n totalPages: number;\r\n /** Status do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Erro atual (se houver) */\r\n error: string | null;\r\n /** Query de busca atual */\r\n searchQuery: string;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se é a primeira página */\r\n isFirstPage: boolean;\r\n}\r\n\r\nexport interface ApiSimulationActions {\r\n /** Carregar próxima página */\r\n loadNextPage: () => Promise<void>;\r\n /** Realizar nova busca */\r\n search: (query: string) => Promise<void>;\r\n /** Reset completo */\r\n reset: () => void;\r\n /** Retry da última operação */\r\n retry: () => Promise<void>;\r\n}\r\n\r\nexport interface UseApiSimulationReturn<T> extends ApiSimulationState<T> {\r\n actions: ApiSimulationActions;\r\n}\r\n\r\n\r\nexport function useApiSimulation<T = any>(\r\n config: ApiSimulationConfig = {}\r\n): UseApiSimulationReturn<T> {\r\n const {\r\n itemsPerPage = 20,\r\n totalItems = 500,\r\n delay = 800,\r\n errorRate = 0,\r\n itemGenerator,\r\n debug = false\r\n } = config;\r\n\r\n // Estados\r\n const [items, setItems] = useState<T[]>([]);\r\n const [currentPage, setCurrentPage] = useState(0);\r\n const [status, setStatus] = useState<'idle' | 'loading' | 'succeeded' | 'failed'>('idle');\r\n const [error, setError] = useState<string | null>(null);\r\n const [searchQuery, setSearchQuery] = useState('');\r\n\r\n // Refs para evitar re-criações\r\n const abortControllerRef = useRef<AbortController | null>(null);\r\n const lastOperationRef = useRef<'load' | 'search'>('load');\r\n\r\n const totalPages = Math.ceil(totalItems / itemsPerPage);\r\n const hasNextPage = currentPage < totalPages;\r\n const isFirstPage = currentPage === 0;\r\n\r\n // ✅ Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [ApiSimulation] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ Gerador padrão de items\r\n const defaultItemGenerator = useCallback((index: number, search?: string) => {\r\n const departments = ['Vendas', 'Marketing', 'TI', 'RH', 'Financeiro', 'Operações'];\r\n const locations = ['São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Porto Alegre'];\r\n const itemNumber = index + 1;\r\n\r\n return {\r\n id: `item-${itemNumber}`,\r\n text: search\r\n ? `${search} - Item ${itemNumber}`\r\n : `Item ${itemNumber}`,\r\n subText: search\r\n ? `Resultado para \"${search}\" - ${departments[itemNumber % departments.length]}`\r\n : `${departments[itemNumber % departments.length]} • ${locations[itemNumber % locations.length]}`,\r\n disabled: itemNumber % 25 === 0,\r\n category: departments[itemNumber % departments.length],\r\n location: locations[itemNumber % locations.length]\r\n };\r\n }, []);\r\n\r\n // ✅ Simular chamada de API\r\n const simulateApiCall = useCallback(async (\r\n page: number,\r\n search: string = ''\r\n ): Promise<T[]> => {\r\n debugLog('Iniciando simulação de API', { page, search, delay });\r\n\r\n // Cancelar requisição anterior se existir\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n // Criar novo controller\r\n const controller = new AbortController();\r\n abortControllerRef.current = controller;\r\n\r\n try {\r\n // Simular delay de rede\r\n await new Promise((resolve, reject) => {\r\n const timeout = setTimeout(resolve, delay);\r\n controller.signal.addEventListener('abort', () => {\r\n clearTimeout(timeout);\r\n reject(new Error('Request aborted'));\r\n });\r\n });\r\n\r\n // Verificar se foi cancelada\r\n if (controller.signal.aborted) {\r\n throw new Error('Request was cancelled');\r\n }\r\n\r\n // Simular erro aleatório\r\n if (Math.random() < errorRate) {\r\n throw new Error('Simulated network error');\r\n }\r\n\r\n // Calcular range de items\r\n const startIndex = page * itemsPerPage;\r\n const generator = itemGenerator || defaultItemGenerator;\r\n\r\n // Gerar items da página\r\n const pageItems = Array.from({ length: itemsPerPage }, (_, index) => {\r\n const globalIndex = startIndex + index;\r\n if (globalIndex >= totalItems) return null;\r\n return generator(globalIndex, search);\r\n }).filter(Boolean) as T[];\r\n\r\n debugLog('API simulada com sucesso', {\r\n page,\r\n itemsReturned: pageItems.length,\r\n search\r\n });\r\n\r\n return pageItems;\r\n\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n debugLog('Request cancelada');\r\n throw err;\r\n }\r\n\r\n debugLog('Erro na simulação de API', err);\r\n throw new Error('Falha ao carregar dados. Tente novamente.');\r\n }\r\n }, [delay, errorRate, itemsPerPage, totalItems, itemGenerator, defaultItemGenerator, debugLog]);\r\n\r\n // ✅ Carregar próxima página\r\n const loadNextPage = useCallback(async () => {\r\n if (status === 'loading' || !hasNextPage) {\r\n debugLog('Load next page ignorado', { status, hasNextPage });\r\n return;\r\n }\r\n\r\n lastOperationRef.current = 'load';\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const nextPage = currentPage + 1;\r\n const newItems = await simulateApiCall(nextPage - 1, searchQuery);\r\n\r\n setItems(prev => nextPage === 1 ? newItems : [...prev, ...newItems]);\r\n setCurrentPage(nextPage);\r\n setStatus('succeeded');\r\n\r\n debugLog('Página carregada com sucesso', {\r\n page: nextPage,\r\n totalItems: items.length + newItems.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return; // Ignore cancelled requests\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro desconhecido');\r\n setStatus('failed');\r\n debugLog('Erro ao carregar página', err);\r\n }\r\n }, [status, hasNextPage, currentPage, searchQuery, simulateApiCall, items.length, debugLog]);\r\n\r\n const search = useCallback(async (query: string) => {\r\n debugLog('Iniciando busca', { query });\r\n\r\n lastOperationRef.current = 'search';\r\n setSearchQuery(query);\r\n setCurrentPage(0);\r\n setItems([]);\r\n setStatus('loading');\r\n setError(null);\r\n\r\n try {\r\n const searchResults = await simulateApiCall(0, query);\r\n setItems(searchResults);\r\n setCurrentPage(1);\r\n setStatus('succeeded');\r\n\r\n debugLog('Busca concluída', {\r\n query,\r\n results: searchResults.length\r\n });\r\n } catch (err) {\r\n if (err instanceof Error && err.message === 'Request was cancelled') {\r\n return;\r\n }\r\n\r\n setError(err instanceof Error ? err.message : 'Erro na busca');\r\n setStatus('failed');\r\n debugLog('Erro na busca', err);\r\n }\r\n }, [simulateApiCall, debugLog]);\r\n\r\n const reset = useCallback(() => {\r\n debugLog('Reset completo da simulação');\r\n\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n\r\n setItems([]);\r\n setCurrentPage(0);\r\n setStatus('idle');\r\n setError(null);\r\n setSearchQuery('');\r\n }, [debugLog]);\r\n\r\n const retry = useCallback(async () => {\r\n debugLog('Retry da última operação', {\r\n lastOperation: lastOperationRef.current\r\n });\r\n\r\n if (lastOperationRef.current === 'search') {\r\n await search(searchQuery);\r\n } else {\r\n await loadNextPage();\r\n }\r\n }, [search, searchQuery, loadNextPage, debugLog]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (abortControllerRef.current) {\r\n abortControllerRef.current.abort();\r\n }\r\n };\r\n }, []);\r\n\r\n return {\r\n // Estado\r\n items,\r\n currentPage,\r\n totalPages,\r\n status,\r\n error,\r\n searchQuery,\r\n hasNextPage,\r\n isFirstPage,\r\n\r\n // Ações\r\n actions: {\r\n loadNextPage,\r\n search,\r\n reset,\r\n retry\r\n }\r\n };\r\n}\r\n\r\nexport default useApiSimulation;","import { useRef, useEffect, useState, useCallback } from 'react';\r\n\r\n/**\r\n * Props para o hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollProps {\r\n /** Status atual do carregamento */\r\n status: 'idle' | 'loading' | 'succeeded' | 'failed';\r\n /** Página atual */\r\n page: number;\r\n /** Última página disponível */\r\n lastPage: number;\r\n /** Callback para carregar próxima página */\r\n onLoadMore: () => void;\r\n /** Threshold para IntersectionObserver (0-1) */\r\n threshold?: number;\r\n /** Margem raiz para IntersectionObserver */\r\n rootMargin?: string;\r\n /** Habilita/desabilita o hook */\r\n enabled?: boolean;\r\n /** Debug mode - logs no console */\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Retorno do hook useInfiniteScroll\r\n */\r\ninterface UseInfiniteScrollReturn {\r\n /** Ref para o elemento observador */\r\n observerRef: React.RefObject<HTMLDivElement | null>;\r\n /** Se o elemento está visível */\r\n isIntersecting: boolean;\r\n /** Se há próxima página */\r\n hasNextPage: boolean;\r\n /** Se todas as páginas foram carregadas */\r\n isCompleted: boolean;\r\n /** Função para reset manual */\r\n reset: () => void;\r\n}\r\n\r\n/**\r\n * Hook otimizado para scroll infinito usando IntersectionObserver\r\n */\r\nexport function useInfiniteScroll({\r\n status,\r\n page,\r\n lastPage,\r\n onLoadMore,\r\n threshold = 0.1,\r\n rootMargin = '100px',\r\n enabled = true,\r\n debug = false\r\n}: UseInfiniteScrollProps): UseInfiniteScrollReturn {\r\n const observerRef = useRef<HTMLDivElement>(null);\r\n const [isIntersecting, setIsIntersecting] = useState(false);\r\n \r\n // Refs para controle de estado\r\n const loadingRef = useRef(false);\r\n const lastTriggeredPageRef = useRef(0);\r\n const onLoadMoreRef = useRef(onLoadMore);\r\n\r\n // Manter referência atualizada do callback\r\n useEffect(() => {\r\n onLoadMoreRef.current = onLoadMore;\r\n }, [onLoadMore]);\r\n\r\n // ✅ NOVO: Debug logger\r\n const debugLog = useCallback((message: string, data?: any) => {\r\n if (debug) {\r\n console.log(`🔄 [InfiniteScroll] ${message}`, data || '');\r\n }\r\n }, [debug]);\r\n\r\n // ✅ MELHORADO: Callback do IntersectionObserver com mais controles\r\n const handleIntersect = useCallback((entries: IntersectionObserverEntry[]) => {\r\n const [target] = entries;\r\n const isVisible = target.isIntersecting;\r\n \r\n setIsIntersecting(isVisible);\r\n debugLog('Element intersecting:', isVisible);\r\n\r\n // Verificar se pode carregar mais\r\n const canLoadMore = enabled &&\r\n isVisible && \r\n status !== 'loading' && \r\n !loadingRef.current &&\r\n page < lastPage &&\r\n page !== lastTriggeredPageRef.current;\r\n\r\n debugLog('Can load more check:', {\r\n enabled,\r\n isVisible,\r\n status,\r\n isLoading: loadingRef.current,\r\n page,\r\n lastPage,\r\n lastTriggered: lastTriggeredPageRef.current,\r\n canLoad: canLoadMore\r\n });\r\n\r\n if (canLoadMore) {\r\n debugLog('Triggering load more for next page');\r\n loadingRef.current = true;\r\n lastTriggeredPageRef.current = page;\r\n onLoadMoreRef.current();\r\n }\r\n }, [enabled, status, page, lastPage, debugLog]);\r\n\r\n // ✅ MELHORADO: Observer com configurações personalizáveis\r\n useEffect(() => {\r\n if (!enabled) {\r\n debugLog('Hook disabled, skipping observer setup');\r\n return;\r\n }\r\n\r\n const observer = new IntersectionObserver(handleIntersect, {\r\n root: null,\r\n rootMargin,\r\n threshold,\r\n });\r\n\r\n const currentObserverRef = observerRef.current;\r\n if (currentObserverRef) {\r\n observer.observe(currentObserverRef);\r\n debugLog('IntersectionObserver attached', { rootMargin, threshold });\r\n }\r\n\r\n return () => {\r\n if (currentObserverRef) {\r\n observer.unobserve(currentObserverRef);\r\n debugLog('IntersectionObserver detached');\r\n }\r\n };\r\n }, [handleIntersect, rootMargin, threshold, enabled, debugLog]);\r\n\r\n // ✅ NOVO: Reset do loading flag quando status muda\r\n useEffect(() => {\r\n if (status !== 'loading') {\r\n loadingRef.current = false;\r\n debugLog('Loading flag reset', { status });\r\n }\r\n }, [status, debugLog]);\r\n\r\n // ✅ NOVO: Função de reset manual\r\n const reset = useCallback(() => {\r\n loadingRef.current = false;\r\n lastTriggeredPageRef.current = 0;\r\n setIsIntersecting(false);\r\n debugLog('Hook manually reset');\r\n }, [debugLog]);\r\n\r\n // Estados calculados\r\n const hasNextPage = page < lastPage;\r\n const isCompleted = page >= lastPage;\r\n\r\n return {\r\n observerRef,\r\n isIntersecting,\r\n hasNextPage,\r\n isCompleted,\r\n reset\r\n };\r\n}"],"names":["styles","_jsxs","AvatarRadix","_jsx","useId","TooltipRadix","useMemo","_Fragment","SpinnerIos16Regular","formatDistanceLocale","formatDistance","formatRelativeLocale","formatRelative","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","localize","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","dateFormats","timeFormats","dateTimeFormats","formatLong","enUS","ptBR","dateFnsEnUS","format","addDays","addMonths","addWeeks","addYears","differenceInCalendarDays","differenceInCalendarMonths","eachMonthOfInterval","eachYearOfInterval","endOfISOWeek","endOfMonth","endOfWeek","endOfYear","getISOWeek","getMonth","getYear","getWeek","isAfter","isBefore","isDate","isSameDay","isSameMonth","isSameYear","max","min","setMonth","setYear","startOfDay","startOfISOWeek","startOfMonth","startOfWeek","startOfYear","dateFnsPtBR","ChevronDown16Regular","ChevronUp16Regular","ChevronLeft16Regular","ChevronRight16Regular","createContext","useContext","useState","DayPicker","Dismiss24Regular","React","CheckboxRadix","PopoverRadix","Label","Info12Regular","TextField","forwardRef","useEffect","useCallback","Dismiss16Regular","useRef","Calendar16Regular","AlertDialog","createPortal","FilterRegular","Search16Regular","ChevronDownRegular","RadioGroup","memo","DropdownMenu","ChevronRight16Filled","Dialog","Subtract16Regular","Add16Regular","Select","useReducer","SelectRadix","createElement","isValidElement","SearchInfo20Regular","useReactTable","getCoreRowModel","getSortedRowModel","flexRender","ArrowSortUp16Regular","ArrowSortDown16Regular","ArrowSort16Regular","Dismiss16Filled","Info20Filled","CheckmarkCircle20Filled","Warning20Filled","ToastRadix","SwitchRadix"],"mappings":"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","x_google_ignoreList":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,64]}