{"version":3,"file":"index.cjs","sources":["../../../../../src/components/date-time-input/picker/index.tsx"],"sourcesContent":["import dayjs, { type UnitType } from \"dayjs\";\nimport React, {\n    useCallback,\n    useEffect,\n    useLayoutEffect,\n    useState,\n} from \"react\";\nimport { mergedCva } from \"../../../utils/components\";\nimport {\n    getUpdatedMinMaxValue,\n    rectifyDate,\n    resolvedValue,\n} from \"../../../utils/date\";\nimport { enforceDoubleDigits } from \"../../../utils/formatting\";\nimport { DatePicker, type DatePickerProps } from \"../../date-input/picker\";\nimport { Typography } from \"../../typography\";\n\nconst cellListStyles = mergedCva(\n    [\n        \"cui-h-52\",\n        \"cui-w-full md:cui-w-10\",\n        \"cui-py-2\",\n        \"cui-overflow-y-auto\",\n        \"scrollbar-none\",\n        \"cui-border-black\",\n    ],\n    {\n        variants: {\n            border: {\n                true: [\"cui-border-r\", \"dark:cui-border-white\"],\n                false: [\"cui-rounded-br-xxl\"],\n            },\n        },\n    },\n);\n\nconst cellStyles = mergedCva(\n    [\n        \"cui-flex\",\n        \"cui-items-center\",\n        \"cui-justify-center\",\n        \"cui-h-7\",\n        \"cui-cursor-pointer\",\n    ],\n    {\n        variants: {\n            selected: {\n                true: [\n                    \"cui-bg-green\",\n                    \"cui-text-black\",\n                    \"dark:!cui-text-black\",\n                ],\n                false: [\n                    \"cui-bg-white\",\n                    \"cui-text-black\",\n                    \"hover:cui-bg-gray-300\",\n                    \"dark:cui-bg-black\",\n                    \"dark:cui-text-white\",\n                    \"hover:dark:cui-bg-gray-600\",\n                ],\n            },\n            disabled: {\n                true: [\n                    \"cui-text-gray-400\",\n                    \"dark:!cui-text-gray-600\",\n                    \"hover:cui-bg-white\",\n                    \"hover:dark:cui-bg-black\",\n                    \"cui-cursor-not-allowed\",\n                ],\n                false: [\"cui-cursor-pointer\"],\n            },\n        },\n    },\n);\n\nexport type DateTimePickerProps = Omit<DatePickerProps, \"dataTestIds\"> &\n    Pick<DatePickerProps, \"dataTestIds\"> & {\n        dataTestIds?: {\n            hourCell?: string;\n            minuteCell?: string;\n            secondCell?: string;\n        };\n    };\n\nconst HOURS = new Array(24).fill(null).map((_, index) => {\n    return enforceDoubleDigits(index);\n});\nconst MINUTES_SECONDS = new Array(60).fill(null).map((_, index) => {\n    return enforceDoubleDigits(index);\n});\n\nexport const DateTimePicker = ({\n    value,\n    onChange,\n    min: minDate,\n    max: maxDate,\n    dataTestIds,\n}: DateTimePickerProps) => {\n    const [min, setMin] = useState(minDate);\n    const [max, setMax] = useState(maxDate);\n\n    // avoid inconsistent min and max values\n    useEffect(() => {\n        const updatedMin = getUpdatedMinMaxValue(min, minDate);\n        const updatedMax = getUpdatedMinMaxValue(max, maxDate);\n\n        setMin(updatedMin);\n        setMax(updatedMax);\n\n        if (\n            updatedMin &&\n            updatedMax &&\n            dayjs(updatedMin).isAfter(dayjs(updatedMax))\n        ) {\n            setMin(updatedMax);\n            console.warn(\"inconsistent min and max values\", {\n                min: updatedMin?.toISOString(),\n                max: updatedMax?.toISOString(),\n            });\n        }\n    }, [min, max, minDate, maxDate]);\n\n    // in case a value change happened, check if we're still\n    // alright with validation and rectify if needed\n    useLayoutEffect(() => {\n        if (!value || !onChange) return;\n        const originalValue = dayjs(value);\n        const rectifiedValue = rectifyDate(dayjs(value), min, max);\n        if (!originalValue.isSame(rectifiedValue, \"seconds\"))\n            onChange(rectifiedValue.toDate());\n    }, [max, min, onChange, value]);\n\n    const handleDateChange = useCallback(\n        (newValue: Date) => {\n            if (!onChange) return;\n            if (!value) onChange(newValue);\n            else\n                onChange(\n                    dayjs(value)\n                        .date(newValue.getDate())\n                        .month(newValue.getMonth())\n                        .year(newValue.getFullYear())\n                        .toDate(),\n                );\n        },\n        [onChange, value],\n    );\n\n    const handleTimeChange = useCallback(\n        (event: React.MouseEvent<HTMLDivElement>) => {\n            if (!onChange) return;\n            const data = (event.target as HTMLLIElement).dataset.data;\n            if (data !== undefined) {\n                const [unit, newValue] = data.split(\"-\");\n                const parsedNewValue = parseInt(newValue);\n                if (isNaN(parsedNewValue)) return;\n                const initialDate = resolvedValue(value, min, max);\n                const pickedDate = initialDate.set(\n                    unit as UnitType,\n                    parsedNewValue,\n                );\n                onChange(rectifyDate(pickedDate, min, max).toDate());\n            }\n        },\n        [max, min, onChange, value],\n    );\n\n    return (\n        <div className=\"cui-flex cui-flex-col md:cui-flex-row cui-bg-white dark:cui-bg-black cui-rounded-xxl\">\n            <div className=\"cui-p-3 cui-pb-0 md:cui-p-3\">\n                <DatePicker\n                    value={value}\n                    onChange={handleDateChange}\n                    min={min}\n                    max={max}\n                    dataTestIds={{\n                        chrevronLeftIcon: dataTestIds?.chrevronLeftIcon,\n                        chrevronRightIcon: dataTestIds?.chrevronRightIcon,\n                        cell: dataTestIds?.cell,\n                    }}\n                />\n            </div>\n            <div className=\"cui-w-[1px] cui-bg-black dark:cui-bg-white\" />\n            <div className=\"cui-flex cui-flex-col\">\n                <Typography\n                    className={{\n                        root: \"cui-p-2 cui-border-black md:cui-border-b dark:cui-border-white cui-text-center\",\n                    }}\n                >\n                    {value ? dayjs(value).format(\"HH:mm:ss\") : \"--:--:--\"}\n                </Typography>\n                <div className=\"cui-flex cui-h-full\">\n                    <div className={cellListStyles({ border: true })}>\n                        {HOURS.map((hour) => {\n                            const selected =\n                                value && dayjs(value).format(\"HH\") === hour;\n                            let disabled = false;\n                            if (value && (min || max)) {\n                                const atTime = dayjs(value).hour(\n                                    parseInt(hour),\n                                );\n                                disabled = !rectifyDate(\n                                    atTime,\n                                    min,\n                                    max,\n                                ).isSame(atTime);\n                            }\n                            return (\n                                <Typography\n                                    data-testid={dataTestIds?.hourCell}\n                                    variant=\"sm\"\n                                    key={hour}\n                                    className={{\n                                        root: cellStyles({\n                                            selected,\n                                            disabled,\n                                        }),\n                                    }}\n                                    onClick={\n                                        disabled ? undefined : handleTimeChange\n                                    }\n                                    data-data={`hour-${hour}`}\n                                >\n                                    {hour}\n                                </Typography>\n                            );\n                        })}\n                    </div>\n                    <div className={cellListStyles({ border: true })}>\n                        {MINUTES_SECONDS.map((minute) => {\n                            const selected =\n                                value && dayjs(value).format(\"mm\") === minute;\n                            let disabled = false;\n                            if (value) {\n                                const atTime = dayjs(value).minute(\n                                    parseInt(minute),\n                                );\n                                disabled = !rectifyDate(\n                                    atTime,\n                                    min,\n                                    max,\n                                ).isSame(atTime);\n                            }\n                            return (\n                                <Typography\n                                    data-testid={dataTestIds?.minuteCell}\n                                    variant=\"sm\"\n                                    key={minute}\n                                    className={{\n                                        root: cellStyles({\n                                            selected,\n                                            disabled,\n                                        }),\n                                    }}\n                                    onClick={\n                                        disabled ? undefined : handleTimeChange\n                                    }\n                                    data-data={`minute-${minute}`}\n                                >\n                                    {minute}\n                                </Typography>\n                            );\n                        })}\n                    </div>\n                    <div className={cellListStyles({ border: false })}>\n                        {MINUTES_SECONDS.map((second) => {\n                            const selected =\n                                value && dayjs(value).format(\"ss\") === second;\n                            let disabled = false;\n                            if (value && (min || max)) {\n                                const atTime = dayjs(value).second(\n                                    parseInt(second),\n                                );\n                                disabled = !rectifyDate(\n                                    atTime,\n                                    min,\n                                    max,\n                                ).isSame(atTime);\n                            }\n                            return (\n                                <Typography\n                                    data-testid={dataTestIds?.secondCell}\n                                    variant=\"sm\"\n                                    key={second}\n                                    className={{\n                                        root: cellStyles({\n                                            selected,\n                                            disabled,\n                                        }),\n                                    }}\n                                    onClick={\n                                        disabled ? undefined : handleTimeChange\n                                    }\n                                    data-data={`second-${second}`}\n                                >\n                                    {second}\n                                </Typography>\n                            );\n                        })}\n                    </div>\n                </div>\n            </div>\n        </div>\n    );\n};\n"],"names":["mergedCva","enforceDoubleDigits","useState","useEffect","getUpdatedMinMaxValue","dayjs","useLayoutEffect","rectifyDate","useCallback","resolvedValue","DatePicker","Typography"],"mappings":";;;;;;;;;;AAiBA,MAAM,cAAiB,GAAAA,oBAAA;AAAA,EACnB;AAAA,IACI,UAAA;AAAA,IACA,wBAAA;AAAA,IACA,UAAA;AAAA,IACA,qBAAA;AAAA,IACA,gBAAA;AAAA,IACA,kBAAA;AAAA,GACJ;AAAA,EACA;AAAA,IACI,QAAU,EAAA;AAAA,MACN,MAAQ,EAAA;AAAA,QACJ,IAAA,EAAM,CAAC,cAAA,EAAgB,uBAAuB,CAAA;AAAA,QAC9C,KAAA,EAAO,CAAC,oBAAoB,CAAA;AAAA,OAChC;AAAA,KACJ;AAAA,GACJ;AACJ,CAAA,CAAA;AAEA,MAAM,UAAa,GAAAA,oBAAA;AAAA,EACf;AAAA,IACI,UAAA;AAAA,IACA,kBAAA;AAAA,IACA,oBAAA;AAAA,IACA,SAAA;AAAA,IACA,oBAAA;AAAA,GACJ;AAAA,EACA;AAAA,IACI,QAAU,EAAA;AAAA,MACN,QAAU,EAAA;AAAA,QACN,IAAM,EAAA;AAAA,UACF,cAAA;AAAA,UACA,gBAAA;AAAA,UACA,sBAAA;AAAA,SACJ;AAAA,QACA,KAAO,EAAA;AAAA,UACH,cAAA;AAAA,UACA,gBAAA;AAAA,UACA,uBAAA;AAAA,UACA,mBAAA;AAAA,UACA,qBAAA;AAAA,UACA,4BAAA;AAAA,SACJ;AAAA,OACJ;AAAA,MACA,QAAU,EAAA;AAAA,QACN,IAAM,EAAA;AAAA,UACF,mBAAA;AAAA,UACA,yBAAA;AAAA,UACA,oBAAA;AAAA,UACA,yBAAA;AAAA,UACA,wBAAA;AAAA,SACJ;AAAA,QACA,KAAA,EAAO,CAAC,oBAAoB,CAAA;AAAA,OAChC;AAAA,KACJ;AAAA,GACJ;AACJ,CAAA,CAAA;AAWA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,EAAE,CAAA,CAAE,IAAK,CAAA,IAAI,CAAE,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,KAAU,KAAA;AACrD,EAAA,OAAOC,+BAAoB,KAAK,CAAA,CAAA;AACpC,CAAC,CAAA,CAAA;AACD,MAAM,eAAA,GAAkB,IAAI,KAAA,CAAM,EAAE,CAAA,CAAE,IAAK,CAAA,IAAI,CAAE,CAAA,GAAA,CAAI,CAAC,CAAA,EAAG,KAAU,KAAA;AAC/D,EAAA,OAAOA,+BAAoB,KAAK,CAAA,CAAA;AACpC,CAAC,CAAA,CAAA;AAEM,MAAM,iBAAiB,CAAC;AAAA,EAC3B,KAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAK,EAAA,OAAA;AAAA,EACL,GAAK,EAAA,OAAA;AAAA,EACL,WAAA;AACJ,CAA2B,KAAA;AACvB,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIC,eAAS,OAAO,CAAA,CAAA;AACtC,EAAA,MAAM,CAAC,GAAA,EAAK,MAAM,CAAA,GAAIA,eAAS,OAAO,CAAA,CAAA;AAGtC,EAAAC,eAAA,CAAU,MAAM;AACZ,IAAM,MAAA,UAAA,GAAaC,0BAAsB,CAAA,GAAA,EAAK,OAAO,CAAA,CAAA;AACrD,IAAM,MAAA,UAAA,GAAaA,0BAAsB,CAAA,GAAA,EAAK,OAAO,CAAA,CAAA;AAErD,IAAA,MAAA,CAAO,UAAU,CAAA,CAAA;AACjB,IAAA,MAAA,CAAO,UAAU,CAAA,CAAA;AAEjB,IACI,IAAA,UAAA,IACA,cACAC,SAAM,CAAA,UAAU,EAAE,OAAQ,CAAAA,SAAA,CAAM,UAAU,CAAC,CAC7C,EAAA;AACE,MAAA,MAAA,CAAO,UAAU,CAAA,CAAA;AACjB,MAAA,OAAA,CAAQ,KAAK,iCAAmC,EAAA;AAAA,QAC5C,GAAA,EAAK,YAAY,WAAY,EAAA;AAAA,QAC7B,GAAA,EAAK,YAAY,WAAY,EAAA;AAAA,OAChC,CAAA,CAAA;AAAA,KACL;AAAA,KACD,CAAC,GAAA,EAAK,GAAK,EAAA,OAAA,EAAS,OAAO,CAAC,CAAA,CAAA;AAI/B,EAAAC,qBAAA,CAAgB,MAAM;AAClB,IAAI,IAAA,CAAC,SAAS,CAAC,QAAA;AAAU,MAAA,OAAA;AACzB,IAAM,MAAA,aAAA,GAAgBD,UAAM,KAAK,CAAA,CAAA;AACjC,IAAA,MAAM,iBAAiBE,gBAAY,CAAAF,SAAA,CAAM,KAAK,CAAA,EAAG,KAAK,GAAG,CAAA,CAAA;AACzD,IAAA,IAAI,CAAC,aAAA,CAAc,MAAO,CAAA,cAAA,EAAgB,SAAS,CAAA;AAC/C,MAAS,QAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,CAAA;AAAA,KACrC,CAAC,GAAA,EAAK,GAAK,EAAA,QAAA,EAAU,KAAK,CAAC,CAAA,CAAA;AAE9B,EAAA,MAAM,gBAAmB,GAAAG,iBAAA;AAAA,IACrB,CAAC,QAAmB,KAAA;AAChB,MAAA,IAAI,CAAC,QAAA;AAAU,QAAA,OAAA;AACf,MAAA,IAAI,CAAC,KAAA;AAAO,QAAA,QAAA,CAAS,QAAQ,CAAA,CAAA;AAAA;AAEzB,QAAA,QAAA;AAAA,UACIH,UAAM,KAAK,CAAA,CACN,KAAK,QAAS,CAAA,OAAA,EAAS,CACvB,CAAA,KAAA,CAAM,QAAS,CAAA,QAAA,EAAU,CACzB,CAAA,IAAA,CAAK,SAAS,WAAY,EAAC,EAC3B,MAAO,EAAA;AAAA,SAChB,CAAA;AAAA,KACR;AAAA,IACA,CAAC,UAAU,KAAK,CAAA;AAAA,GACpB,CAAA;AAEA,EAAA,MAAM,gBAAmB,GAAAG,iBAAA;AAAA,IACrB,CAAC,KAA4C,KAAA;AACzC,MAAA,IAAI,CAAC,QAAA;AAAU,QAAA,OAAA;AACf,MAAM,MAAA,IAAA,GAAQ,KAAM,CAAA,MAAA,CAAyB,OAAQ,CAAA,IAAA,CAAA;AACrD,MAAA,IAAI,SAAS,KAAW,CAAA,EAAA;AACpB,QAAA,MAAM,CAAC,IAAM,EAAA,QAAQ,CAAI,GAAA,IAAA,CAAK,MAAM,GAAG,CAAA,CAAA;AACvC,QAAM,MAAA,cAAA,GAAiB,SAAS,QAAQ,CAAA,CAAA;AACxC,QAAA,IAAI,MAAM,cAAc,CAAA;AAAG,UAAA,OAAA;AAC3B,QAAA,MAAM,WAAc,GAAAC,kBAAA,CAAc,KAAO,EAAA,GAAA,EAAK,GAAG,CAAA,CAAA;AACjD,QAAA,MAAM,aAAa,WAAY,CAAA,GAAA;AAAA,UAC3B,IAAA;AAAA,UACA,cAAA;AAAA,SACJ,CAAA;AACA,QAAA,QAAA,CAASF,iBAAY,UAAY,EAAA,GAAA,EAAK,GAAG,CAAA,CAAE,QAAQ,CAAA,CAAA;AAAA,OACvD;AAAA,KACJ;AAAA,IACA,CAAC,GAAA,EAAK,GAAK,EAAA,QAAA,EAAU,KAAK,CAAA;AAAA,GAC9B,CAAA;AAEA,EAAA,2CACK,KAAI,EAAA,EAAA,SAAA,EAAU,0GACV,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,WAAU,6BACX,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAACG,gBAAA;AAAA,IAAA;AAAA,MACG,KAAA;AAAA,MACA,QAAU,EAAA,gBAAA;AAAA,MACV,GAAA;AAAA,MACA,GAAA;AAAA,MACA,WAAa,EAAA;AAAA,QACT,kBAAkB,WAAa,EAAA,gBAAA;AAAA,QAC/B,mBAAmB,WAAa,EAAA,iBAAA;AAAA,QAChC,MAAM,WAAa,EAAA,IAAA;AAAA,OACvB;AAAA,KAAA;AAAA,GAER,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,8CAA6C,CAC5D,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,uBACX,EAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACG,SAAW,EAAA;AAAA,QACP,IAAM,EAAA,gFAAA;AAAA,OACV;AAAA,KAAA;AAAA,IAEC,QAAQN,SAAM,CAAA,KAAK,CAAE,CAAA,MAAA,CAAO,UAAU,CAAI,GAAA,UAAA;AAAA,qBAE9C,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAI,SAAU,EAAA,qBAAA,EAAA,sCACV,KAAI,EAAA,EAAA,SAAA,EAAW,cAAe,CAAA,EAAE,QAAQ,IAAK,EAAC,KAC1C,KAAM,CAAA,GAAA,CAAI,CAAC,IAAS,KAAA;AACjB,IAAA,MAAM,WACF,KAAS,IAAAA,SAAA,CAAM,KAAK,CAAE,CAAA,MAAA,CAAO,IAAI,CAAM,KAAA,IAAA,CAAA;AAC3C,IAAA,IAAI,QAAW,GAAA,KAAA,CAAA;AACf,IAAI,IAAA,KAAA,KAAU,OAAO,GAAM,CAAA,EAAA;AACvB,MAAM,MAAA,MAAA,GAASA,SAAM,CAAA,KAAK,CAAE,CAAA,IAAA;AAAA,QACxB,SAAS,IAAI,CAAA;AAAA,OACjB,CAAA;AACA,MAAA,QAAA,GAAW,CAACE,gBAAA;AAAA,QACR,MAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,OACJ,CAAE,OAAO,MAAM,CAAA,CAAA;AAAA,KACnB;AACA,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAACI,qBAAA;AAAA,MAAA;AAAA,QACG,eAAa,WAAa,EAAA,QAAA;AAAA,QAC1B,OAAQ,EAAA,IAAA;AAAA,QACR,GAAK,EAAA,IAAA;AAAA,QACL,SAAW,EAAA;AAAA,UACP,MAAM,UAAW,CAAA;AAAA,YACb,QAAA;AAAA,YACA,QAAA;AAAA,WACH,CAAA;AAAA,SACL;AAAA,QACA,OAAA,EACI,WAAW,KAAY,CAAA,GAAA,gBAAA;AAAA,QAE3B,WAAA,EAAW,QAAQ,IAAI,CAAA,CAAA;AAAA,OAAA;AAAA,MAEtB,IAAA;AAAA,KACL,CAAA;AAAA,GAEP,CACL,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAI,SAAW,EAAA,cAAA,CAAe,EAAE,MAAA,EAAQ,MAAM,CAAA,EAAA,EAC1C,eAAgB,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AAC7B,IAAA,MAAM,WACF,KAAS,IAAAN,SAAA,CAAM,KAAK,CAAE,CAAA,MAAA,CAAO,IAAI,CAAM,KAAA,MAAA,CAAA;AAC3C,IAAA,IAAI,QAAW,GAAA,KAAA,CAAA;AACf,IAAA,IAAI,KAAO,EAAA;AACP,MAAM,MAAA,MAAA,GAASA,SAAM,CAAA,KAAK,CAAE,CAAA,MAAA;AAAA,QACxB,SAAS,MAAM,CAAA;AAAA,OACnB,CAAA;AACA,MAAA,QAAA,GAAW,CAACE,gBAAA;AAAA,QACR,MAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,OACJ,CAAE,OAAO,MAAM,CAAA,CAAA;AAAA,KACnB;AACA,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAACI,qBAAA;AAAA,MAAA;AAAA,QACG,eAAa,WAAa,EAAA,UAAA;AAAA,QAC1B,OAAQ,EAAA,IAAA;AAAA,QACR,GAAK,EAAA,MAAA;AAAA,QACL,SAAW,EAAA;AAAA,UACP,MAAM,UAAW,CAAA;AAAA,YACb,QAAA;AAAA,YACA,QAAA;AAAA,WACH,CAAA;AAAA,SACL;AAAA,QACA,OAAA,EACI,WAAW,KAAY,CAAA,GAAA,gBAAA;AAAA,QAE3B,WAAA,EAAW,UAAU,MAAM,CAAA,CAAA;AAAA,OAAA;AAAA,MAE1B,MAAA;AAAA,KACL,CAAA;AAAA,GAEP,CACL,CACA,kBAAA,KAAA,CAAA,aAAA,CAAC,SAAI,SAAW,EAAA,cAAA,CAAe,EAAE,MAAA,EAAQ,OAAO,CAAA,EAAA,EAC3C,eAAgB,CAAA,GAAA,CAAI,CAAC,MAAW,KAAA;AAC7B,IAAA,MAAM,WACF,KAAS,IAAAN,SAAA,CAAM,KAAK,CAAE,CAAA,MAAA,CAAO,IAAI,CAAM,KAAA,MAAA,CAAA;AAC3C,IAAA,IAAI,QAAW,GAAA,KAAA,CAAA;AACf,IAAI,IAAA,KAAA,KAAU,OAAO,GAAM,CAAA,EAAA;AACvB,MAAM,MAAA,MAAA,GAASA,SAAM,CAAA,KAAK,CAAE,CAAA,MAAA;AAAA,QACxB,SAAS,MAAM,CAAA;AAAA,OACnB,CAAA;AACA,MAAA,QAAA,GAAW,CAACE,gBAAA;AAAA,QACR,MAAA;AAAA,QACA,GAAA;AAAA,QACA,GAAA;AAAA,OACJ,CAAE,OAAO,MAAM,CAAA,CAAA;AAAA,KACnB;AACA,IACI,uBAAA,KAAA,CAAA,aAAA;AAAA,MAACI,qBAAA;AAAA,MAAA;AAAA,QACG,eAAa,WAAa,EAAA,UAAA;AAAA,QAC1B,OAAQ,EAAA,IAAA;AAAA,QACR,GAAK,EAAA,MAAA;AAAA,QACL,SAAW,EAAA;AAAA,UACP,MAAM,UAAW,CAAA;AAAA,YACb,QAAA;AAAA,YACA,QAAA;AAAA,WACH,CAAA;AAAA,SACL;AAAA,QACA,OAAA,EACI,WAAW,KAAY,CAAA,GAAA,gBAAA;AAAA,QAE3B,WAAA,EAAW,UAAU,MAAM,CAAA,CAAA;AAAA,OAAA;AAAA,MAE1B,MAAA;AAAA,KACL,CAAA;AAAA,GAEP,CACL,CACJ,CACJ,CACJ,CAAA,CAAA;AAER;;;;"}