@kne/react-filter 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +558 -284
- package/dist/index.css +38 -3
- package/dist/index.css.map +1 -1
- package/dist/index.js +475 -106
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +467 -102
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/context.js","../src/hooks/useMobile.js","../src/hooks/useHorizontalScrollShadows.js","../src/FilterLines.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/FilterValueDisplay.js","../src/FilterProvider.js","../src/FilterOuter.js","../src/Filter.js","../src/FilterItem.js","../src/withFieldItem.js","../src/PopoverItem.js","../src/fields/InputFilterItem.js","../src/fields/NumberRangeFilterItem.js","../src/fields/DatePickerFilterItem.js","../src/fields/DateRangePickerFilterItem.js","../src/common/TypeDateRangePickerField/index.js","../src/fields/TypeDateRangePickerFilterItem.js","../src/fields/index.js","../src/getFilterValue.js","../src/withFilterValue.js","../src/SearchInput.js","../src/pickSelectValues.js","../src/createFilterValueMapper.js","../src/useUrlFilter.js","../src/filterToUrlParams.js","../src/useUrlFilterValue.js","../src/filterInterceptors.js","../src/AdvancedFilter/fields/InputFilterItem.js","../src/AdvancedFilter/fields/ListFilterItem.js","../src/AdvancedFilter/fields/CityFilterItem.js","../src/AdvancedFilter/fields/index.js","../src/AdvancedFilter/index.js","../src/FilterItemContainer.js","../src/index.js"],"sourcesContent":["import { createContext, useContext as useReactContext } from 'react';\n\nexport const context = createContext({});\n\nexport const { Provider } = context;\n\nexport const useContext = () => useReactContext(context);\n","import { useEffect, useState } from 'react';\n\nconst useMobile = () => {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const updateIsMobile = () => {\n setIsMobile(mediaQuery.matches);\n };\n updateIsMobile();\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', updateIsMobile) : mediaQuery.addListener(updateIsMobile);\n return () => {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', updateIsMobile) : mediaQuery.removeListener(updateIsMobile);\n };\n }, []);\n\n return isMobile;\n};\n\nexport default useMobile;\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nconst useHorizontalScrollShadows = ({ enabled, suspend = false, preserveOverflowOnSuspend = false, refreshKey } = {}) => {\n const scrollRef = useRef(null);\n const [isOverflow, setIsOverflow] = useState(false);\n const [showScrollPrev, setShowScrollPrev] = useState(false);\n const [showScrollNext, setShowScrollNext] = useState(false);\n\n const update = useCallback(() => {\n const el = scrollRef.current;\n if (!el || !enabled) {\n setShowScrollPrev(false);\n setShowScrollNext(false);\n setIsOverflow(false);\n return;\n }\n\n if (suspend) {\n setShowScrollPrev(false);\n setShowScrollNext(false);\n if (!preserveOverflowOnSuspend) {\n setIsOverflow(false);\n }\n return;\n }\n\n setIsOverflow(el.scrollWidth > el.clientWidth);\n setShowScrollPrev(el.scrollLeft > 1);\n setShowScrollNext(el.scrollWidth > el.clientWidth && el.scrollLeft + el.clientWidth < el.scrollWidth - 1);\n }, [enabled, preserveOverflowOnSuspend, suspend]);\n\n useEffect(() => {\n const el = scrollRef.current;\n if (!el || !enabled || suspend) {\n update();\n return;\n }\n\n update();\n el.addEventListener('scroll', update);\n window.addEventListener('resize', update);\n const rafId = window.requestAnimationFrame(update);\n return () => {\n el.removeEventListener('scroll', update);\n window.removeEventListener('resize', update);\n window.cancelAnimationFrame(rafId);\n };\n }, [enabled, refreshKey, suspend, update]);\n\n return { scrollRef, isOverflow, showScrollPrev, showScrollNext, updateScrollShadowVisible: update };\n};\n\nexport default useHorizontalScrollShadows;\n","import classnames from 'classnames';\nimport { useCallback, useState } from 'react';\nimport style from './style.module.scss';\nimport { Col, Row, Space } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { useContext } from './context';\nimport get from 'lodash/get';\nimport useMobile from './hooks/useMobile';\nimport useHorizontalScrollShadows from './hooks/useHorizontalScrollShadows';\n\nconst Line = ({ list, children }) => {\n const { value, onChange } = useContext();\n return (\n <div className={style['filter-line']}>\n {list\n .filter(item => !!item.type)\n .map((item, index) => {\n if (typeof item === 'function') {\n return item(props => {\n return {\n index,\n value: value ? get(value.get(props?.name), 'value') : props?.value,\n onChange: onChange\n ? value =>\n onChange({\n name: props?.name,\n label: props?.label,\n value\n })\n : props?.onChange\n };\n });\n }\n const ComponentItem = item.type;\n return (\n <ComponentItem\n {...Object.assign({}, item.props, {\n value: value ? get(value.get(item.props.name), 'value') : item.props.value,\n onChange: onChange\n ? value =>\n onChange({\n name: item.props.name,\n label: item.props.label,\n value\n })\n : item.props.onChange\n })}\n key={item.key || item.props.name || index}\n />\n );\n })}\n {children}\n </div>\n );\n};\n\nconst FilterLines = ({ className, list = [], displayLine = 1, label, extra, children }) => {\n const hasMore = list.length > displayLine;\n const mobileList = list.reduce((result, item) => result.concat(Array.isArray(item) ? item : [item]), []);\n const [isExpand, setIsExpand] = useState(false);\n const isMobile = useMobile();\n const { scrollRef, showScrollPrev, showScrollNext } = useHorizontalScrollShadows({ enabled: isMobile, refreshKey: list });\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n const scrollToNext = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n el.scrollTo({\n left: el.scrollLeft + el.clientWidth * 0.8,\n behavior: 'smooth'\n });\n }, [scrollRef]);\n const scrollItemIntoView = useCallback(\n e => {\n if (!isMobile) return;\n const container = scrollRef.current;\n const item = e.target.closest(`.${style['filter-item-wrap']}`) || e.target.closest(`.${style['filter-item']}`);\n if (!container || !item) return;\n item.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center'\n });\n },\n [isMobile, scrollRef]\n );\n\n return (\n <>\n <Space className={classnames(style['filter-title'], 'filter-title', className)} align=\"top\" size={16}>\n <span className={style['filter-label']}>{list && list.length > 0 && (label || formatMessage({ id: 'filterText' }))}</span>\n <Row justify=\"space-between\" wrap={false} align=\"top\">\n <Col className={style['filter-list']} flex={1}>\n <div className={style['filter-list-scroll-wrap']}>\n {isMobile && showScrollPrev ? <div className={style['filter-scroll-prev-shadow']} /> : null}\n <div className={style['filter-list-scroll']} ref={scrollRef} onClick={scrollItemIntoView}>\n {(isMobile ? mobileList : list.slice(0, displayLine)).map((item, index) => (\n <Line key={index} list={isMobile ? [item] : item}>\n {!isMobile && hasMore && isExpand === false && index === displayLine - 1 ? (\n <Space\n size={4}\n className={classnames(style['filter-item'], style['option'])}\n onClick={() => {\n setIsExpand(value => !value);\n }}\n >\n {formatMessage({ id: 'moreText' })}\n <span className={style['filter-item-option-icon']}>▼</span>\n </Space>\n ) : null}\n </Line>\n ))}\n </div>\n {isMobile && showScrollNext ? (\n <button type=\"button\" className={style['filter-scroll-next']} onClick={scrollToNext} aria-label=\"scroll next\">\n <span className={style['filter-scroll-next-icon']}>›</span>\n </button>\n ) : null}\n </div>\n </Col>\n <Col>{extra}</Col>\n </Row>\n </Space>\n <Space className={classnames(style['filter-title'], 'filter-title-wrap')} align=\"center\" size={16}>\n {children}\n </Space>\n <Space\n className={classnames(style['filter-title'], 'filter-title-wrap', {\n [style['filter-title-hidden']]: isMobile || !(hasMore && isExpand)\n })}\n align=\"top\"\n size={16}\n >\n <span className={style['filter-label']}>{formatMessage({ id: 'moreText' })}</span>\n <div className={style['filter-list']}>\n {list.slice(displayLine).map((item, index) => (\n <Line key={index} list={item}>\n {index === list.length - displayLine - 1 && (\n <>\n <Space size={4} className={classnames(style['un-expand-shadow'])}>\n <Space size={4} className={classnames(style['option'], style['filter-item'])}>\n {formatMessage({ id: 'toggleUpText' })}\n <span className={style['filter-item-option-icon']}>▲</span>\n </Space>\n </Space>\n <Space\n size={4}\n className={classnames(style['un-expand'])}\n onClick={() => {\n setIsExpand(value => !value);\n }}\n >\n <Space size={4} className={classnames(style['option'], style['filter-item'])}>\n {formatMessage({ id: 'toggleUpText' })}\n <span className={style['filter-item-option-icon']}>▲</span>\n </Space>\n </Space>\n </>\n )}\n </Line>\n ))}\n </div>\n </Space>\n </>\n );\n};\n\nexport default FilterLines;\n","const message = {\n filterText: '筛选',\n moreText: '更多',\n selectedText: '您已选择',\n clearAllText: '清空全部',\n toggleUpText: '收起',\n selectedTextAdvanced: '已选',\n clearText: '清空筛选',\n otherText: '其他',\n cancelText: '取消',\n determineText: '确定',\n year: '年',\n over: '{count}{unit}以上',\n lessThan: '{count}{unit}以下',\n inputPlaceholder: '请输入{label}',\n pleaseInput: '请输入',\n defaultInputPlaceholder: '请输入{label}',\n maxSelectedCount: '最多选择{count}项',\n customTime: '自定义时间',\n monthly: '按月',\n weekly: '按周',\n last7Days: '近7天',\n thisMonth: '本月',\n last3Months: '近三个月',\n thisYear: '当年',\n fullYear: '本年度',\n pleaseSelect: '请选择'\n};\n\nexport default message;\n","const message = {\n filterText: 'Filter',\n moreText: 'More',\n selectedText: 'Selected',\n clearAllText: 'Clear All',\n toggleUpText: 'Pack Up',\n selectedTextAdvanced: 'Selected',\n clearText: 'Clear Filter',\n otherText: 'Other',\n cancelText: 'Cancel',\n determineText: 'Determine',\n year: 'year',\n over: 'over {count} {unit}s',\n lessThan: 'less than {count} {unit}s',\n inputPlaceholder: 'Please enter {label}',\n pleaseInput: 'Please enter ',\n defaultInputPlaceholder: 'Please enter {label}',\n maxSelectedCount: 'Select up to {count} items',\n customTime: 'Custom Time',\n monthly: 'Monthly',\n weekly: 'Weekly',\n last7Days: 'Last 7 Days',\n thisMonth: 'This Month',\n last3Months: 'Last 3 Months',\n thisYear: 'Year to Date',\n fullYear: 'Full Year',\n pleaseSelect: 'Please Select'\n};\n\nexport default message;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCN from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCN,\n 'en-US': enUS\n },\n namespace: 'react-filter'\n});\n\nexport default withLocale;\n","import { Button, Space, Tag } from 'antd';\nimport style from './style.module.scss';\nimport classnames from 'classnames';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from './withLocale';\nimport { useState } from 'react';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport useMobile from './hooks/useMobile';\nimport useHorizontalScrollShadows from './hooks/useHorizontalScrollShadows';\n\nconst FilterValueDisplay = withLocale(({ value: filterValue, extraExpand, onChange }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const [isExpand, setIsExpand] = useState(false);\n const isMobile = useMobile();\n const { scrollRef, isOverflow, showScrollPrev, showScrollNext } = useHorizontalScrollShadows({\n enabled: isMobile,\n suspend: isExpand,\n preserveOverflowOnSuspend: true,\n refreshKey: filterValue\n });\n\n const tags = filterValue.map(({ name, label, value }, index) => {\n const valueLabel = Array.isArray(value) ? value.map(item => item.label).join(',') : value?.label;\n return (\n <Tag\n key={name}\n closable\n className={style['filter-value-tag']}\n onClose={() => {\n const newValue = filterValue.slice(0);\n newValue.splice(index, 1);\n onChange(newValue);\n }}\n >\n <span className={style['filter-value-tag-label']}>{label}:</span>\n <span className={style['filter-value-tag-content']}>{valueLabel}</span>\n </Tag>\n );\n });\n\n return (\n <Space className={classnames(style['filter-title'], style['filter-value-display'])} align=\"top\" size={16}>\n <span className={style['filter-label']}>{formatMessage({ id: 'selectedText' })}</span>\n {isMobile ? (\n <div className={classnames(style['filter-value-display-content'], !isOverflow && style['is-not-overflow'])}>\n <div className={classnames(style['filter-value-tags-wrap'], isExpand && style['is-expand'])}>\n {showScrollPrev ? <div className={classnames(style['filter-scroll-prev-shadow'], style['filter-value-scroll-prev-shadow'])} /> : null}\n <div ref={scrollRef} className={classnames(style['filter-line'], style['filter-value-tags'], isExpand && style['is-expand'])}>\n {tags}\n </div>\n {showScrollNext ? <div className={classnames(style['filter-value-scroll-next-shadow'])} /> : null}\n </div>\n <div className={classnames(style['filter-value-actions'], isOverflow && style['is-overflow'])}>\n <div className={style['filter-value-action-right']}>\n <Space size={4}>\n {extraExpand}\n <Button\n size=\"small\"\n onClick={() => {\n onChange([]);\n }}\n >\n {formatMessage({ id: 'clearAllText' })}\n </Button>\n </Space>\n </div>\n {isOverflow ? (\n <Button\n type=\"link\"\n size=\"small\"\n className={style['filter-value-toggle']}\n icon={isExpand ? <UpOutlined /> : <DownOutlined />}\n onClick={() => {\n setIsExpand(value => !value);\n }}\n >\n {isExpand ? '收起' : '展开'}\n </Button>\n ) : null}\n <div className={style['filter-value-action-placeholder']}>\n {extraExpand}\n <Button size=\"small\">{formatMessage({ id: 'clearAllText' })}</Button>\n </div>\n </div>\n </div>\n ) : (\n <div className={style['filter-line']}>\n {tags}\n <Space size={4} className={classnames(style['un-expand-shadow'])}>\n {extraExpand}\n <Button size=\"small\">{formatMessage({ id: 'clearAllText' })}</Button>\n </Space>\n <Space size={4} className={classnames(style['un-expand'])}>\n {extraExpand}\n <Button\n size=\"small\"\n onClick={() => {\n onChange([]);\n }}\n >\n {formatMessage({ id: 'clearAllText' })}\n </Button>\n </Space>\n </div>\n )}\n </Space>\n );\n});\n\nexport default FilterValueDisplay;\n","import { Provider } from './context';\nimport clone from 'lodash/clone';\nimport { useMemo } from 'react';\n\nconst isNotEmpty = value => {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string' && value.trim() === '') return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n};\n\nconst FilterProvider = ({ children, value: valueBase, onChange, defaultValue = [] }) => {\n const value = useMemo(() => {\n return (valueBase || defaultValue).filter(item => isNotEmpty(item.value));\n }, [valueBase, defaultValue]);\n\n const filterValue = useMemo(() => {\n return new Map(value.map(item => [item.name, item]));\n }, [value]);\n\n return (\n <Provider\n value={{\n value: filterValue,\n onChange: item => {\n const newFilterValue = clone(filterValue);\n item.value ? newFilterValue.set(item.name, item) : newFilterValue.delete(item.name);\n onChange?.(Array.from(newFilterValue.values()));\n }\n }}\n >\n {typeof children === 'function' ? children({ value, onChange }) : children}\n </Provider>\n );\n};\n\nexport default FilterProvider;\n","import classnames from 'classnames';\nimport style from './style.module.scss';\nimport FilterProvider from './FilterProvider';\n\nconst FilterOuter = ({ children, className, ...props }) => {\n return <FilterProvider {...props}>{context => <div className={classnames(style['filter'], 'filter', className)}>{children({ ...context, props })}</div>}</FilterProvider>;\n};\n\nexport default FilterOuter;\n","import FilterLines from './FilterLines';\nimport FilterValueDisplay from './FilterValueDisplay';\nimport FilterOuter from './FilterOuter';\nimport withLocale from './withLocale';\n\nconst Filter = withLocale(({ defaultValue = [], ...props }) => {\n return (\n <FilterOuter {...props} defaultValue={defaultValue}>\n {({ props: filterProps = {}, value, onChange }) => {\n const { extraExpand, ...others } = filterProps;\n return (\n <>\n <FilterLines {...others} />\n {value && value.length > 0 && <FilterValueDisplay value={value} onChange={onChange} extraExpand={extraExpand} />}\n </>\n );\n }}\n </FilterOuter>\n );\n});\n\nexport default Filter;\n","import classnames from 'classnames';\nimport { Space } from 'antd';\nimport style from './style.module.scss';\nimport withLocale from './withLocale';\n\nconst FilterItem = withLocale(({ open, active, label, children }) => {\n return (\n <Space className={style['filter-item-wrap']}>\n <div\n className={classnames(style['filter-item'], {\n [style['is-active']]: active,\n [style['is-visited']]: open\n })}\n >\n <Space className={style['filter-item-label']} size={4}>\n <div>{label}</div>\n <span className={style['filter-item-icon']}>▼</span>\n </Space>\n <div className={style['filter-item-field']}>{children}</div>\n </div>\n </Space>\n );\n});\n\nexport default FilterItem;\n","import { useState, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport FilterItem from './FilterItem';\nimport style from './style.module.scss';\nimport classnames from 'classnames';\n\nconst isNotEmpty = value => {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string' && value.trim() === '') return false;\n return !(Array.isArray(value) && value.length === 0);\n};\n\nconst MASK_ANIMATION_DURATION = 180;\nconst FIELD_MOBILE_POPUP_CLASS = 'react-filter-field-mobile-popup';\nconst MOBILE_POPUP_OFFSET = 4;\n\nconst withFieldItem =\n (WrappedComponent, options = {}) =>\n ({ value, onChange, interceptor, label, render, ...props }) => {\n const [open, setOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n const [renderMask, setRenderMask] = useState(false);\n const [maskClosing, setMaskClosing] = useState(false);\n const [popupMetrics, setPopupMetrics] = useState({ top: 0, pageTop: 0, height: 0 });\n const triggerRef = useRef(null);\n const setMobilePopupVariables = useCallback(metrics => {\n if (typeof document === 'undefined') return;\n document.body.style.setProperty('--react-filter-field-mobile-height', `${metrics.height}px`);\n document.body.style.setProperty('--react-filter-popover-mobile-height', `${metrics.height}px`);\n document.body.style.setProperty('--react-filter-field-mobile-top', `${metrics.top}px`);\n }, []);\n const updatePopupMetrics = useCallback(() => {\n if (typeof window === 'undefined' || !triggerRef.current) return;\n const rect = triggerRef.current.getBoundingClientRect();\n const top = Math.max(rect.bottom + MOBILE_POPUP_OFFSET, 0);\n const metrics = {\n top,\n height: Math.max(window.innerHeight - top, 0)\n };\n setPopupMetrics(metrics);\n setMobilePopupVariables(metrics);\n }, [setMobilePopupVariables]);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const updateIsMobile = () => {\n setIsMobile(mediaQuery.matches);\n };\n updateIsMobile();\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', updateIsMobile) : mediaQuery.addListener(updateIsMobile);\n return () => {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', updateIsMobile) : mediaQuery.removeListener(updateIsMobile);\n };\n }, []);\n\n useEffect(() => {\n if (!open || !isMobile) return;\n updatePopupMetrics();\n window.addEventListener('resize', updatePopupMetrics);\n window.addEventListener('scroll', updatePopupMetrics, true);\n return () => {\n window.removeEventListener('resize', updatePopupMetrics);\n window.removeEventListener('scroll', updatePopupMetrics, true);\n };\n }, [isMobile, open, updatePopupMetrics]);\n\n useEffect(() => {\n if (typeof document === 'undefined' || !isMobile || popupMetrics.height <= 0) return;\n setMobilePopupVariables(popupMetrics);\n return () => {\n document.body.style.removeProperty('--react-filter-field-mobile-height');\n document.body.style.removeProperty('--react-filter-popover-mobile-height');\n document.body.style.removeProperty('--react-filter-field-mobile-top');\n };\n }, [isMobile, popupMetrics, setMobilePopupVariables]);\n\n useEffect(() => {\n if (open && isMobile) {\n setRenderMask(true);\n setMaskClosing(false);\n return;\n }\n\n if (!renderMask) return;\n setMaskClosing(true);\n const timer = setTimeout(() => {\n setRenderMask(false);\n setMaskClosing(false);\n }, MASK_ANIMATION_DURATION);\n return () => {\n clearTimeout(timer);\n };\n }, [isMobile, open, renderMask]);\n\n const closeFieldItem = useCallback(() => {\n setOpen(false);\n props.onOpenChange && props.onOpenChange(false);\n props.onDropdownVisibleChange && props.onDropdownVisibleChange(false);\n }, [props]);\n\n const handleOpenChange = useCallback(\n open => {\n if (open && isMobile) {\n updatePopupMetrics();\n }\n setOpen(open);\n props.onOpenChange && props.onOpenChange(open);\n props.onDropdownVisibleChange && props.onDropdownVisibleChange(open);\n },\n [isMobile, props, updatePopupMetrics]\n );\n\n const mobilePopupStyle = isMobile\n ? {\n '--react-filter-field-mobile-height': `${popupMetrics.height}px`,\n '--react-filter-popover-mobile-height': `${popupMetrics.height}px`,\n '--react-filter-field-mobile-top': `${popupMetrics.top}px`,\n top: popupMetrics.top,\n left: 0\n }\n : undefined;\n\n const mergePopupClassNames = classNames => {\n if (!isMobile) return classNames;\n return Object.assign({}, classNames, {\n popup: Object.assign({}, classNames?.popup, {\n root: classnames(classNames?.popup?.root, style['field-item-mobile-popup'], FIELD_MOBILE_POPUP_CLASS)\n })\n });\n };\n\n const mergePopupStyles = styles => {\n if (!isMobile) return styles;\n return Object.assign({}, styles, {\n popup: Object.assign({}, styles?.popup, {\n root: Object.assign({}, styles?.popup?.root, mobilePopupStyle)\n })\n });\n };\n\n const renderChildren = otherProps => {\n const inputValue = typeof interceptor?.input === 'function' ? interceptor.input(value) : value;\n const fieldValue = options.forcePopup && inputValue == null ? (props.single ? null : []) : inputValue;\n return (\n <WrappedComponent\n allowClear={false}\n {...Object.assign({}, props, otherProps)}\n className={style['filter-item-inner']}\n value={fieldValue}\n onChange={typeof interceptor?.output === 'function' ? (...args) => onChange(interceptor.output(...args)) : onChange}\n valueType=\"all\"\n onOpenChange={handleOpenChange}\n onDropdownVisibleChange={handleOpenChange}\n popupClassName={classnames(props.popupClassName, isMobile && style['field-item-mobile-popup'], isMobile && FIELD_MOBILE_POPUP_CLASS)}\n dropdownClassName={classnames(props.dropdownClassName, isMobile && style['field-item-mobile-popup'], isMobile && FIELD_MOBILE_POPUP_CLASS)}\n overlayClassName={classnames(props.overlayClassName, isMobile && style['field-item-mobile-popup'], isMobile && FIELD_MOBILE_POPUP_CLASS)}\n overlayStyle={Object.assign({}, props.overlayStyle, mobilePopupStyle)}\n popupStyle={Object.assign({}, props.popupStyle, mobilePopupStyle)}\n dropdownStyle={Object.assign({}, props.dropdownStyle, mobilePopupStyle)}\n classNames={mergePopupClassNames(props.classNames)}\n styles={mergePopupStyles(props.styles)}\n transitionName={isMobile ? '' : props.transitionName}\n autoAdjustOverflow={isMobile ? false : props.autoAdjustOverflow}\n align={isMobile ? { offset: [0, 0] } : props.align}\n isPopup={options.forcePopup ? true : props.isPopup}\n overlayWidth={isMobile && options.forcePopup ? (typeof window === 'undefined' ? props.overlayWidth : window.innerWidth) : props.overlayWidth}\n />\n );\n };\n return (\n <>\n {renderMask &&\n typeof document !== 'undefined' &&\n createPortal(\n <div\n className={classnames(style['pop-util-mask'], maskClosing && style['pop-util-mask-leave'])}\n style={{\n top: popupMetrics.top,\n height: popupMetrics.height\n }}\n onClick={closeFieldItem}\n onTouchMove={e => {\n e.preventDefault();\n }}\n />,\n document.body\n )}\n <span ref={triggerRef}>\n <FilterItem label={label} open={open} active={isNotEmpty(value)}>\n {typeof render === 'function'\n ? render({\n children: renderChildren\n })\n : renderChildren()}\n </FilterItem>\n </span>\n </>\n );\n };\n\nexport default withFieldItem;\n","import { useState, useMemo, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Button, Col, Dropdown, Row } from 'antd';\nimport FilterItem from './FilterItem';\nimport classnames from 'classnames';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from './withLocale';\nimport style from './style.module.scss';\n\nconst isNotEmpty = value => {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string' && value.trim() === '') return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n};\n\nconst MASK_ANIMATION_DURATION = 180;\nconst MOBILE_POPUP_OFFSET = 4;\n\nconst PopoverItem = withLocale(({ value, label, onValidate, overlayClassName, placement = 'bottomLeft', onOpenChange, onChange, children }) => {\n const [state, setState] = useState(value);\n const [open, setOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n const [renderMask, setRenderMask] = useState(false);\n const [maskClosing, setMaskClosing] = useState(false);\n const [popupMetrics, setPopupMetrics] = useState({ top: 0, pageTop: 0, height: 0 });\n const triggerRef = useRef(null);\n const disabled = useMemo(() => {\n return onValidate && !onValidate(state);\n }, [onValidate, state]);\n\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const updateIsMobile = () => {\n setIsMobile(mediaQuery.matches);\n };\n updateIsMobile();\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', updateIsMobile) : mediaQuery.addListener(updateIsMobile);\n return () => {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', updateIsMobile) : mediaQuery.removeListener(updateIsMobile);\n };\n }, []);\n\n const updatePopupMetrics = useCallback(() => {\n if (typeof window === 'undefined' || !triggerRef.current) return;\n const rect = triggerRef.current.getBoundingClientRect();\n const top = Math.max(rect.bottom + MOBILE_POPUP_OFFSET, 0);\n setPopupMetrics({\n top,\n height: Math.max(window.innerHeight - top, 0)\n });\n }, []);\n\n useEffect(() => {\n if (!open || !isMobile) return;\n updatePopupMetrics();\n window.addEventListener('resize', updatePopupMetrics);\n window.addEventListener('scroll', updatePopupMetrics, true);\n return () => {\n window.removeEventListener('resize', updatePopupMetrics);\n window.removeEventListener('scroll', updatePopupMetrics, true);\n };\n }, [isMobile, open, updatePopupMetrics]);\n\n useEffect(() => {\n if (open && isMobile) {\n setRenderMask(true);\n setMaskClosing(false);\n return;\n }\n\n if (!renderMask) return;\n setMaskClosing(true);\n const timer = setTimeout(() => {\n setRenderMask(false);\n setMaskClosing(false);\n }, MASK_ANIMATION_DURATION);\n return () => {\n clearTimeout(timer);\n };\n }, [isMobile, open, renderMask]);\n\n const closeDropdown = useCallback(() => {\n setOpen(false);\n onOpenChange && onOpenChange(false);\n }, [onOpenChange]);\n\n const handleOpenChange = useCallback(\n open => {\n if (open && isMobile) {\n updatePopupMetrics();\n }\n setOpen(open);\n setState(value);\n onOpenChange && onOpenChange(open);\n },\n [isMobile, onOpenChange, updatePopupMetrics, value]\n );\n\n const mobileOverlayStyle = isMobile\n ? {\n '--react-filter-popover-mobile-height': `${popupMetrics.height}px`,\n top: popupMetrics.top,\n left: 0\n }\n : undefined;\n\n const overlayContent = (\n <div\n className={style['pop-util-body']}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <div className={style['pop-util-content']}>{children({ value: state, onChange: setState })}</div>\n <Row className={style['pop-util-footer']} justify=\"end\" gutter={8}>\n <Col>\n <Button size={isMobile ? undefined : 'small'} onClick={closeDropdown}>\n {formatMessage({ id: 'cancelText' })}\n </Button>\n </Col>\n <Col>\n <Button\n size={isMobile ? undefined : 'small'}\n type=\"primary\"\n disabled={disabled}\n onClick={() => {\n closeDropdown();\n onChange && onChange(state);\n }}\n >\n {formatMessage({ id: 'determineText' })}\n </Button>\n </Col>\n </Row>\n </div>\n );\n\n return (\n <>\n {renderMask &&\n typeof document !== 'undefined' &&\n createPortal(\n <div\n className={classnames(style['pop-util-mask'], maskClosing && style['pop-util-mask-leave'])}\n style={{\n top: popupMetrics.top,\n height: popupMetrics.height\n }}\n onClick={closeDropdown}\n onTouchMove={e => {\n e.preventDefault();\n }}\n />,\n document.body\n )}\n <Dropdown\n open={open}\n trigger={['click']}\n placement={isMobile ? 'bottomLeft' : placement}\n autoAdjustOverflow={!isMobile}\n align={isMobile ? { offset: [0, 0] } : undefined}\n overlayClassName={classnames(style['pop-util-overlay'], overlayClassName)}\n overlayStyle={mobileOverlayStyle}\n onOpenChange={handleOpenChange}\n menu={{ items: [{ key: 'content', label: null }] }}\n dropdownRender={() => overlayContent}\n >\n <span ref={triggerRef}>\n <FilterItem open={open} active={isNotEmpty(value)} label={label} />\n </span>\n </Dropdown>\n </>\n );\n});\n\nexport default PopoverItem;\n","import PopoverItem from '../PopoverItem';\nimport { Input } from 'antd';\nimport get from 'lodash/get';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\n\nconst InputFilterItem = withLocale(({ label, value, onChange, placeholder, onValidate, overlayClassName, placement, onOpenChange, ...props }) => {\n return (\n <PopoverItem label={label} value={value} onChange={onChange} {...{ onValidate, overlayClassName, placement, onOpenChange }}>\n {({ value, onChange }) => (\n <Input\n {...props}\n placeholder={placeholder || `请输入${label}`}\n className={style['filter-item-text']}\n value={get(value, 'value', '')}\n onChange={e => onChange(e.target.value ? { label: e.target.value, value: e.target.value } : null)}\n />\n )}\n </PopoverItem>\n );\n});\n\nexport default InputFilterItem;\n","import PopoverItem from '../PopoverItem';\nimport { Input, InputNumber, Space } from 'antd';\nimport get from 'lodash/get';\nimport isNumber from 'lodash/isNumber';\nimport { useIntl } from '@kne/react-intl';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\n\nconst computedFilterValue = (range, unit, formatMessage) => {\n if (!isNumber(range[0]) && !isNumber(range[1])) {\n return null;\n }\n\n return {\n label: (range => {\n if (isNumber(range[0]) && isNumber(range[1])) {\n return `${range[0]}-${range[1]}${unit || ''}`;\n }\n if (isNumber(range[0])) {\n return formatMessage({ id: 'over' }, { count: range[0], unit });\n }\n if (isNumber(range[1])) {\n return formatMessage({ id: 'lessThan' }, { count: range[1], unit });\n }\n })(range),\n value: [range[0] || null, range[1] || null]\n };\n};\n\nconst defaultPropsOnValidate = value => {\n const range = get(value, 'value');\n return !(range && isNumber(range[0]) && isNumber(range[1]) && range[1] < range[0]);\n};\n\nconst NumberRangeFilterItem = withLocale(({ label, value, onChange, placeholder, onValidate = defaultPropsOnValidate, overlayClassName, placement, onOpenChange, unit, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <PopoverItem label={label} value={value} onChange={onChange} {...{ onValidate, overlayClassName, placement, onOpenChange }}>\n {({ value, onChange }) => (\n <Space.Compact>\n <InputNumber\n {...props}\n placeholder={placeholder || `${formatMessage({ id: 'pleaseInput' })}${label}`}\n className={style['filter-item-number-range']}\n value={get(value, 'value[0]', '')}\n onChange={target => {\n onChange(computedFilterValue([target, get(value, 'value[1]')], unit, formatMessage));\n }}\n />\n <Input\n style={{\n width: 30,\n borderLeft: 0,\n borderRight: 0,\n pointerEvents: 'none'\n }}\n placeholder=\"~\"\n disabled\n />\n <InputNumber\n {...props}\n placeholder={placeholder || `${formatMessage({ id: 'pleaseInput' })}${label}`}\n className={style['filter-item-number-range']}\n value={get(value, 'value[1]', '')}\n onChange={target => {\n onChange(computedFilterValue([get(value, 'value[0]'), target], unit, formatMessage));\n }}\n />\n {unit && (\n <Input\n style={{\n width: 50,\n borderLeft: 0\n }}\n value={unit}\n disabled\n />\n )}\n </Space.Compact>\n )}\n </PopoverItem>\n );\n});\n\nexport default NumberRangeFilterItem;\n","import { DatePicker } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\nimport style from '../style.module.scss';\nimport classnames from 'classnames';\n\nconst DatePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, picker = 'date', ...props }) => {\n return (\n <DatePicker\n {...props}\n inputReadOnly\n picker={picker}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-picker-popup'])\n }\n }}\n value={value && dayjs(value.value)}\n onChange={value => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n value &&\n onChange({\n label: picker !== 'date' ? `${value.startOf(picker).format(format)}~${value.endOf(picker).format(format)}` : value.format(format),\n value: new Date(value.startOf(picker).valueOf())\n });\n }}\n />\n );\n })\n);\n\nexport default DatePickerFilterItem;\n","import { DatePicker, Flex } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\nimport classnames from 'classnames';\n\nconst DateRangePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, header, ...props }) => {\n return (\n <Flex vertical>\n {typeof header === 'function' ? header({ value, onChange }) : header}\n <DatePicker.RangePicker\n {...props}\n inputReadOnly\n allowEmpty={[false, false]}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-range-picker-popup'])\n }\n }}\n value={value && Array.isArray(value.value) && value.value.length === 2 && value.value.map(item => dayjs(item))}\n onChange={value => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n onChange({\n label: value.map(item => item.format(format)).join('~'),\n value: value.map(item => new Date(item.valueOf()))\n });\n }}\n />\n </Flex>\n );\n })\n);\n\nexport default DateRangePickerFilterItem;\n","import { DatePicker, Select, Space, Flex } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { useRef, useCallback, useMemo } from 'react';\nimport dayjs from 'dayjs';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\n\nconst TypeDateRangePickerField = ({ value: valueProp, onChange: onChangeProp, defaultValue, shortcuts = true, shortcutOptions, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n const typeList = new Map([\n ['date', formatMessage({ id: 'customTime' })],\n ['month', formatMessage({ id: 'monthly' })],\n ['week', formatMessage({ id: 'weekly' })]\n ]);\n\n const defaultShortcuts = useMemo(\n () => [\n {\n label: formatMessage({ id: 'last7Days' }),\n getValue: () => [dayjs().subtract(7, 'day').startOf('day'), dayjs().endOf('day')]\n },\n {\n label: formatMessage({ id: 'thisMonth' }),\n getValue: () => [dayjs().startOf('month'), dayjs().endOf('month')]\n },\n {\n label: formatMessage({ id: 'last3Months' }),\n getValue: () => [dayjs().subtract(3, 'month').startOf('day'), dayjs().endOf('day')]\n },\n {\n label: formatMessage({ id: 'thisYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('day')]\n },\n {\n label: formatMessage({ id: 'fullYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('year')]\n }\n ],\n [formatMessage]\n );\n\n const currentShortcuts = shortcutOptions !== undefined ? shortcutOptions : shortcuts ? defaultShortcuts : null;\n\n const isControlled = valueProp !== undefined;\n const innerValueRef = useRef(defaultValue || { type: 'date', value: null });\n\n const value = isControlled ? valueProp : innerValueRef.current;\n\n const onChange = useCallback(\n newValue => {\n if (!isControlled) {\n innerValueRef.current = typeof newValue === 'function' ? newValue(innerValueRef.current) : newValue;\n }\n onChangeProp?.(typeof newValue === 'function' ? newValue(value) : newValue);\n },\n [isControlled, onChangeProp, value]\n );\n\n const handleShortcutClick = useCallback(\n shortcut => {\n const [start, end] = shortcut.getValue();\n const type = 'date';\n onChange({\n type,\n value: [start.startOf(type).toDate(), end.endOf(type).toDate()]\n });\n },\n [onChange]\n );\n\n const isShortcutActive = useCallback(\n shortcut => {\n if (!value?.value || !Array.isArray(value.value) || value.value.length !== 2) {\n return false;\n }\n const [start, end] = shortcut.getValue();\n const type = value?.type || 'date';\n const valueStart = dayjs(value.value[0]).startOf(type);\n const valueEnd = dayjs(value.value[1]).endOf(type);\n const shortcutStart = start.startOf(type);\n const shortcutEnd = end.endOf(type);\n return valueStart.isSame(shortcutStart, type) && valueEnd.isSame(shortcutEnd, type);\n },\n [value]\n );\n\n const renderShortcuts = useMemo(() => {\n if (!currentShortcuts || currentShortcuts.length === 0) {\n return null;\n }\n return (\n <div className={style['shortcuts-container']}>\n {currentShortcuts.map((shortcut, index) => (\n <span\n key={index}\n className={classnames(style['shortcut-item'], {\n [style['is-active']]: isShortcutActive(shortcut)\n })}\n onClick={() => handleShortcutClick(shortcut)}\n >\n {shortcut.label}\n </span>\n ))}\n </div>\n );\n }, [currentShortcuts, handleShortcutClick, isShortcutActive]);\n\n return (\n <Flex vertical gap={0}>\n <Space.Compact>\n <Select\n style={{ width: '120px' }}\n value={value?.type || 'date'}\n onChange={typeValue => {\n onChange(currentValue => {\n if (!currentValue?.value?.length) {\n return { value: null, type: typeValue || 'date' };\n }\n const startTime = dayjs(currentValue.value[0]);\n const endTime = dayjs(currentValue.value[1]);\n return {\n value: [startTime.isValid() ? startTime.startOf(typeValue || 'date').toDate() : null, endTime.isValid() ? endTime.endOf(typeValue || 'date').toDate() : null],\n type: typeValue || 'date'\n };\n });\n }}\n options={Array.from(typeList).map(([val, label]) => ({\n label,\n value: val\n }))}\n />\n <DatePicker.RangePicker\n {...props}\n picker={value?.type || 'date'}\n value={Array.isArray(value?.value) && value.value.length === 2 ? value.value.map(item => item && dayjs(item)) : null}\n onChange={dateValue => {\n onChange(currentValue => {\n return Object.assign({ type: 'date' }, currentValue, {\n value: dateValue && dateValue[0] && dateValue[1] ? [dateValue[0].startOf(currentValue?.type || 'date').toDate(), dateValue[1].endOf(currentValue?.type || 'date').toDate()] : null\n });\n });\n }}\n />\n </Space.Compact>\n {renderShortcuts}\n </Flex>\n );\n};\n\nexport default TypeDateRangePickerField;\n","import PopoverItem from '../PopoverItem';\nimport TypeDateRangePickerField from '../common/TypeDateRangePickerField';\nimport get from 'lodash/get';\nimport style from '../style.module.scss';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\n\nconst TypeDateRangePickerFilterItem = withLocale(({ label, value, onChange, ...props }) => {\n return (\n <PopoverItem\n label={label}\n value={value}\n onChange={onChange}\n onValidate={item => {\n const itemValue = item?.value;\n return itemValue?.type && Array.isArray(itemValue?.value) && itemValue.value.length === 2;\n }}\n >\n {({ value, onChange }) => (\n <TypeDateRangePickerField\n {...props}\n inputReadOnly\n className={style['filter-item-text']}\n value={get(value, 'value')}\n onChange={pickerValue => {\n const { format = 'YYYY-MM-DD' } = props;\n const val = pickerValue?.value || [];\n let displayLabel = '';\n if (val[0] && !val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}以后`;\n } else if (!val[0] && val[1]) {\n displayLabel = `${dayjs(val[1]).format(format)}以前`;\n } else if (val[0] && val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}~${dayjs(val[1]).format(format)}`;\n }\n onChange({\n label: displayLabel,\n value: pickerValue\n });\n }}\n />\n )}\n </PopoverItem>\n );\n});\n\nexport default TypeDateRangePickerFilterItem;\n","import { useIntl } from '@kne/react-intl';\nimport withFieldItem from '../withFieldItem';\nimport InputFilterItemField from './InputFilterItem';\nimport NumberRangeFilterItemField from './NumberRangeFilterItem';\nimport withLocale from '../withLocale';\nimport SuperSelect from '@kne/super-select';\nimport { SelectAddress, SelectFunction, SelectIndustry } from '@kne/super-select-plus';\nimport '@kne/super-select-plus/dist/index.css';\nimport '@kne/super-select-plus/dist/index.css';\n\nconst withInputDefaultPlaceholder = WrappedComponent =>\n withLocale(({ placeholder, label, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return <WrappedComponent {...props} label={label} placeholder={placeholder || formatMessage({ id: 'defaultInputPlaceholder' }, { label })} />;\n });\n\nexport const InputFilterItem = withInputDefaultPlaceholder(InputFilterItemField);\nexport const NumberRangeFilterItem = withInputDefaultPlaceholder(NumberRangeFilterItemField);\n\nexport { default as DatePickerFilterItem } from './DatePickerFilterItem';\nexport { default as DateRangePickerFilterItem } from './DateRangePickerFilterItem';\nexport { default as TypeDateRangePickerFilterItem } from './TypeDateRangePickerFilterItem';\n\nexport const SuperSelectFilterItem = withFieldItem(SuperSelect, { forcePopup: true });\nexport const SelectFunctionFilterItem = withFieldItem(SelectFunction, { forcePopup: true });\nexport const SelectIndustryFilterItem = withFieldItem(SelectIndustry, { forcePopup: true });\nexport const SelectAddressFilterItem = withFieldItem(SelectAddress, { forcePopup: true });\n","import transform from 'lodash/transform';\n\nconst getFilterValue = filterValue => {\n return transform(\n filterValue,\n (result, { name, value }) => {\n result[name] = Array.isArray(value) ? value.map(({ value }) => value) : value?.value;\n },\n {}\n );\n};\n\nexport default getFilterValue;\n","import { useContext } from './context';\nimport get from 'lodash/get';\n\nconst withFilterValue = WrappedComponent => {\n return ({ name, label, ...props }) => {\n const { value, onChange } = useContext();\n return (\n <WrappedComponent\n {...props}\n label={label}\n onChange={\n onChange\n ? value =>\n onChange({\n name,\n label,\n value\n })\n : props.onChange\n }\n value={value ? get(value.get(name), 'value') : props.value}\n />\n );\n };\n};\n\nexport default withFilterValue;\n","import { Input } from 'antd';\nimport withFilterValue from './withFilterValue';\nimport { useIntl } from '@kne/react-intl';\n\nconst { Search } = Input;\n\nconst SearchInput = withFilterValue(({ label, onChange, value, placeholder, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <Search\n {...props}\n placeholder={placeholder || formatMessage({ id: 'inputPlaceholder' }, { label })}\n value={value?.value || ''}\n onSearch={value => {\n onChange({ label: value, value });\n }}\n />\n );\n});\n\nexport default SearchInput;\n","/**\n * 从筛选值中提取原始值数组。\n * 支持:原始值、{ value } 对象、{ id } 对象、以及它们的数组。\n *\n * @example\n * pickSelectValues([{ value: 1 }, { id: 2 }, '3'])\n * // => ['1', '2', '3']\n *\n * pickSelectValues({ value: 'open' })\n * // => ['open']\n *\n * pickSelectValues(null)\n * // => []\n */\nconst pickSelectValues = value => {\n if (value == null || value === '') {\n return [];\n }\n const list = Array.isArray(value) ? value : [value];\n return list\n .map(item => {\n if (item == null) {\n return null;\n }\n if (typeof item !== 'object') {\n return String(item);\n }\n if (item.value != null && item.value !== '') {\n return String(item.value);\n }\n if (item.id != null && item.id !== '') {\n return String(item.id);\n }\n return null;\n })\n .filter(Boolean);\n};\n\nexport default pickSelectValues;\n","import pickSelectValues from './pickSelectValues';\n\n/**\n * 声明式创建 mapFilterValue 函数。\n *\n * Filter.getFilterValue 默认只读取 { value },而 SuperSelectFilterItem 等\n * 组件使用 { id, name } 格式,需要额外处理。此工具通过声明字段映射规则,\n * 自动生成符合 (filter, getFilterValue) => value 签名的函数。\n *\n * @param {Object} fieldMappers - 字段名到映射规则的映射\n * @param {'string'} fieldMappers[field] - 确保值为字符串类型\n * @param {'multi'} fieldMappers[field] - 多选,从 filter entry 提取值数组\n * @param {'single'} fieldMappers[field] - 单选,从 filter entry 提取第一个值\n * @param {Function} fieldMappers[field] - 自定义转换,接收 (rawValue, { entry, filter, value }) 返回新值\n *\n * @example\n * const mapFilterValue = createFilterValueMapper({\n * id: 'string',\n * roles: 'multi',\n * tenantOrgId: 'single',\n * status: (rawValue) => normalizeStatus(rawValue)\n * });\n *\n * // 使用方式与手写 mapFilterValue 一致\n * const filterValue = mapFilterValue(filter, Filter.getFilterValue);\n *\n * // 也可直接传给 BizUnit 的 options.mapFilterValue\n * <BizUnit options={{ mapFilterValue }} />\n */\nconst createFilterValueMapper = fieldMappers => {\n return (filter, getFilterValue) => {\n const value = getFilterValue(filter);\n\n Object.entries(fieldMappers).forEach(([fieldName, mapper]) => {\n const entry = filter.find(item => item.name === fieldName);\n\n if (mapper === 'string') {\n if (value[fieldName] != null && value[fieldName] !== '') {\n value[fieldName] = String(value[fieldName]);\n }\n } else if (mapper === 'multi') {\n if (entry) {\n const values = pickSelectValues(entry.value);\n if (values.length) {\n value[fieldName] = values;\n } else {\n delete value[fieldName];\n }\n }\n } else if (mapper === 'single') {\n if (entry) {\n const values = pickSelectValues(entry.value);\n if (values[0] != null) {\n value[fieldName] = values[0];\n } else {\n delete value[fieldName];\n }\n } else if (value[fieldName] != null && typeof value[fieldName] === 'object') {\n const values = pickSelectValues(value[fieldName]);\n if (values.length) {\n value[fieldName] = values[0];\n } else {\n delete value[fieldName];\n }\n }\n } else if (typeof mapper === 'function') {\n let rawValue = value[fieldName];\n if (rawValue != null && typeof rawValue === 'object' && 'value' in rawValue) {\n rawValue = rawValue.value;\n }\n if (rawValue != null && rawValue !== '') {\n const result = mapper(rawValue, { entry, filter, value });\n if (result != null && result !== '') {\n value[fieldName] = result;\n } else {\n delete value[fieldName];\n }\n }\n }\n });\n\n return value;\n };\n};\n\nexport default createFilterValueMapper;\n","import { useState, useRef, useEffect } from 'react';\nimport { useSearchParams } from 'react-router-dom';\n\n/**\n * 创建 URL 参数读取器,自动追踪已消费的参数 key。\n *\n * @param {URLSearchParams} searchParams - React Router 的 searchParams 对象\n * @returns {{ take: (key: string) => string|null, getConsumedKeys: () => string[] }}\n *\n * @example\n * const { take, getConsumedKeys } = createUrlParamsReader(searchParams);\n * const orgId = take('tenantOrgId');\n * const orgName = take('orgName');\n * // getConsumedKeys() => ['tenantOrgId', 'orgName']\n */\nexport const createUrlParamsReader = searchParams => {\n const consumedKeys = [];\n const take = key => {\n if (!searchParams.has(key)) return null;\n consumedKeys.push(key);\n return searchParams.get(key);\n };\n const getConsumedKeys = () => consumedKeys;\n return { take, getConsumedKeys };\n};\n\n/**\n * 从 URL 参数中移除已消费的 key,返回新的 URLSearchParams 或 null(无变化时)。\n *\n * @param {URLSearchParams} searchParams - 当前 URL 参数\n * @param {string[]} consumedKeys - 需要移除的 key 列表\n * @returns {URLSearchParams|null}\n */\nexport const stripConsumedUrlParams = (searchParams, consumedKeys) => {\n if (!consumedKeys?.length) return null;\n const next = new URLSearchParams(searchParams);\n let changed = false;\n consumedKeys.forEach(key => {\n if (next.has(key)) {\n next.delete(key);\n changed = true;\n }\n });\n return changed ? next : null;\n};\n\n/**\n * 从 URL 参数初始化 Filter 状态的 hook。\n *\n * 读取 URL 参数构建初始筛选值,并在挂载后自动清除已消费的 URL 参数。\n *\n * @param {Object} options\n * @param {Function} options.readUrlParams - 读取 URL 参数并返回 { consumedKeys: string[], ...data }\n * @param {Function} options.buildFilter - 接收 readUrlParams 的返回值,构建初始 filter 数组\n * @returns {[Array, Function]} - [filter, setFilter]\n *\n * @example\n * const [filter, setFilter] = useUrlFilter({\n * readUrlParams: (searchParams) => {\n * const { take, getConsumedKeys } = createUrlParamsReader(searchParams);\n * const orgId = take('tenantOrgId');\n * return { consumedKeys: getConsumedKeys(), orgId };\n * },\n * buildFilter: ({ orgId }) => [\n * { name: 'status', value: { label: '开启', value: 'open' } },\n * ...(orgId ? [{ name: 'tenantOrgId', value: { label: orgId, value: orgId } }] : [])\n * ]\n * });\n */\nconst useUrlFilter = ({ readUrlParams, buildFilter }) => {\n const [searchParams, setSearchParams] = useSearchParams();\n const urlFilterSnapshotRef = useRef(null);\n\n if (urlFilterSnapshotRef.current === null) {\n urlFilterSnapshotRef.current = readUrlParams(searchParams);\n }\n\n const [filter, setFilter] = useState(() => buildFilter(urlFilterSnapshotRef.current));\n\n const urlStrippedRef = useRef(false);\n useEffect(() => {\n if (urlStrippedRef.current) return;\n urlStrippedRef.current = true;\n const nextParams = stripConsumedUrlParams(searchParams, urlFilterSnapshotRef.current?.consumedKeys);\n if (nextParams) {\n setSearchParams(nextParams, { replace: true });\n }\n }, [searchParams, setSearchParams]);\n\n return [filter, setFilter];\n};\n\nexport default useUrlFilter;\n","/**\n * 将筛选值数组序列化为 URLSearchParams,保留 label 信息以便反序列化还原完整筛选状态。\n *\n * 序列化格式(使用冒号分隔 label 和 value,逗号分隔多值):\n * - 单值且 label === value:prefix[name]=value(如输入框)\n * - 单值且 label !== value:prefix[name]=label:value\n * - 多值:prefix[name]=label1:value1,label2:value2\n *\n * @param {Array} filterValue - 筛选值数组,格式为 [{ name, label, value }, ...]\n * @param {Object} [options] - 选项\n * @param {string} [options.prefix='filterParams'] - URL 参数前缀,设为空字符串则不加前缀\n * @returns {URLSearchParams}\n *\n * @example\n * const params = filterToUrlParams([\n * { name: 'keyword', label: '关键词', value: { label: '测试', value: '测试' } },\n * { name: 'city', label: '城市', value: [{ label: '上海', value: '010' }, { label: '北京', value: '020' }] },\n * { name: 'status', label: '状态', value: { label: '启用', value: 'active' } },\n * ]);\n * // params.toString() => 'filterParams[keyword]=测试&filterParams[city]=上海:010,北京:020&filterParams[status]=启用:active'\n *\n * // 自定义前缀\n * filterToUrlParams(filterValue, { prefix: 'f' })\n * // => 'f[keyword]=测试&f[city]=上海:010,北京:020'\n *\n * // 无前缀(直接平铺)\n * filterToUrlParams(filterValue, { prefix: '' })\n * // => 'keyword=测试&city=上海:010,北京:020'\n */\nconst filterToUrlParams = (filterValue, { prefix = 'filterParams' } = {}) => {\n const params = new URLSearchParams();\n\n if (!Array.isArray(filterValue)) return params;\n\n filterValue.forEach(({ name, value }) => {\n if (value == null || value === '') return;\n\n const key = prefix ? `${prefix}[${name}]` : name;\n\n if (Array.isArray(value)) {\n if (value.length === 0) return;\n const serialized = value\n .map(item => serializeEntry(item))\n .filter(Boolean)\n .join(',');\n if (serialized) params.set(key, serialized);\n } else {\n const serialized = serializeEntry(value);\n if (serialized) params.set(key, serialized);\n }\n });\n\n return params;\n};\n\n/**\n * 序列化单个筛选值项。\n * - label === value 时返回 value(简化格式)\n * - 否则返回 label:value\n */\nconst serializeEntry = item => {\n if (item == null) return null;\n if (typeof item !== 'object') return String(item);\n\n const label = item.label ?? item.name;\n const value = item.value ?? item.id;\n\n if (value == null || value === '') return null;\n if (label === value) return String(value);\n return `${label}:${value}`;\n};\n\n/**\n * 解析 URL 参数中的单个筛选值项,反序列化为 { label, value } 对象。\n * 与 filterToUrlParams 配合使用。\n *\n * 解析规则:\n * - 无冒号:label 和 value 相同,如 \"测试\" → { label: '测试', value: '测试' }\n * - 有冒号:冒号前为 label,冒号后为 value,如 \"启用:active\" → { label: '启用', value: 'active' }\n *\n * @param {string} str - URL 参数中的原始字符串\n * @returns {{ label: string, value: string }}\n *\n * @example\n * parseFilterEntry('测试')\n * // => { label: '测试', value: '测试' }\n *\n * parseFilterEntry('启用:active')\n * // => { label: '启用', value: 'active' }\n */\nconst parseFilterEntry = str => {\n const colonIndex = str.indexOf(':');\n if (colonIndex === -1) {\n return { label: str, value: str };\n }\n return {\n label: str.slice(0, colonIndex),\n value: str.slice(colonIndex + 1)\n };\n};\n\n/**\n * 从 URL 参数中读取筛选值项,返回单选 { label, value } 或多选数组。\n *\n * @param {URLSearchParams} searchParams - URL 参数对象\n * @param {string} key - 参数名(不含前缀)\n * @param {Object} [options] - 选项\n * @param {boolean} [options.multi=false] - 是否多选,多选返回数组\n * @param {string} [options.prefix='filterParams'] - URL 参数前缀,设为空字符串则不加前缀\n * @returns {{ label: string, value: string } | { label: string, value: string }[] | null}\n *\n * @example\n * // URL: ?filterParams[city]=上海:010,北京:020&filterParams[status]=启用:active\n * takeFilterEntry(searchParams, 'city', { multi: true })\n * // => [{ label: '上海', value: '010' }, { label: '北京', value: '020' }]\n *\n * // 无前缀\n * takeFilterEntry(searchParams, 'keyword', { prefix: '' })\n * // => { label: '测试', value: '测试' }\n */\nconst takeFilterEntry = (searchParams, key, { multi = false, prefix = 'filterParams' } = {}) => {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n if (!searchParams.has(fullKey)) return null;\n\n const raw = searchParams.get(fullKey);\n if (!raw) return null;\n\n if (multi) {\n return raw.split(',').map(parseFilterEntry);\n }\n\n // 单选时,如果包含逗号,只取第一个\n const firstEntry = raw.includes(',') ? raw.split(',')[0] : raw;\n return parseFilterEntry(firstEntry);\n};\n\n/**\n * 创建 URL 筛选参数读取器,自动追踪已消费的参数 key。\n * 配合 useUrlFilter 使用,readUrlParams 返回的 consumedKeys 可被自动清除。\n *\n * @param {URLSearchParams} searchParams - React Router 的 searchParams 对象\n * @param {Object} [options] - 选项\n * @param {string} [options.prefix='filterParams'] - URL 参数前缀\n * @returns {{ takeFilterEntry, getConsumedKeys }}\n *\n * @example\n * const { takeFilterEntry, getConsumedKeys } = createUrlFilterReader(searchParams);\n * const keyword = takeFilterEntry('keyword');\n * const city = takeFilterEntry('city', { multi: true });\n * const status = takeFilterEntry('status');\n * // getConsumedKeys() => ['filterParams[keyword]', 'filterParams[city]', 'filterParams[status]']\n *\n * // 配合 useUrlFilter 使用\n * const [filter, setFilter] = useUrlFilter({\n * readUrlParams: (searchParams) => {\n * const { takeFilterEntry, getConsumedKeys } = createUrlFilterReader(searchParams);\n * const keyword = takeFilterEntry('keyword');\n * const city = takeFilterEntry('city', { multi: true });\n * return { consumedKeys: getConsumedKeys(), keyword, city };\n * },\n * buildFilter: ({ keyword, city }) => [\n * ...(keyword ? [{ name: 'keyword', label: '关键词', value: keyword }] : []),\n * ...(city ? [{ name: 'city', label: '城市', value: city }] : []),\n * ],\n * });\n */\nconst createUrlFilterReader = (searchParams, { prefix = 'filterParams' } = {}) => {\n const consumedKeys = [];\n\n const takeFilterEntry = (key, { multi = false } = {}) => {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n if (!searchParams.has(fullKey)) return null;\n\n consumedKeys.push(fullKey);\n const raw = searchParams.get(fullKey);\n if (!raw) return null;\n\n if (multi) {\n return raw.split(',').map(parseFilterEntry);\n }\n\n const firstEntry = raw.includes(',') ? raw.split(',')[0] : raw;\n return parseFilterEntry(firstEntry);\n };\n\n const getConsumedKeys = () => consumedKeys;\n\n return { takeFilterEntry, getConsumedKeys };\n};\n\nexport default filterToUrlParams;\nexport { parseFilterEntry, takeFilterEntry, createUrlFilterReader };\n","import useUrlFilter from './useUrlFilter';\nimport { createUrlFilterReader } from './filterToUrlParams';\n\n/**\n * 从 URL 参数初始化 Filter 状态的 hook(简化版)。\n *\n * 基于 useUrlFilter 封装,使用 createUrlFilterReader 解析 filterParams[key] 格式的 URL 参数,\n * 自动解析 label:value 格式,支持单选和多选。\n *\n * @param {string[]|Object} mapping - URL 参数映射\n * - 数组: ['tenantOrgId', 'orgName'],默认单选,自动创建 { name: key, value: { label, value } }\n * - 对象:\n * - 值为 true: 单选,使用默认转换 { name: key, value: { label, value } }\n * - 值为 { multi: true }: 多选,value 为 [{ label, value }, ...] 数组\n * - 值为函数: 自定义转换,接收解析后的值(单选为 { label, value },多选为数组),返回 filter 项或 null/falsy 跳过\n * @returns {[Array, Function]} - [filter, setFilter]\n *\n * @example\n * // 数组形式(默认单选)\n * const [filter, setFilter] = useUrlFilterValue(['keyword', 'status']);\n * // URL: ?filterParams[keyword]=前端开发&filterParams[status]=招聘中:active\n * // → filter: [\n * // { name: 'keyword', value: { label: '前端开发', value: '前端开发' } },\n * // { name: 'status', value: { label: '招聘中', value: 'active' } }\n * // ]\n *\n * @example\n * // 对象形式(多选 + 自定义)\n * const [filter, setFilter] = useUrlFilterValue({\n * keyword: true,\n * city: { multi: true },\n * status: (parsed) => parsed ? { name: 'status', value: parsed } : null\n * });\n * // URL: ?filterParams[keyword]=测试&filterParams[city]=上海:010,北京:020\n * // → keyword: { label: '测试', value: '测试' }\n * // → city: [{ label: '上海', value: '010' }, { label: '北京', value: '020' }]\n */\nconst useUrlFilterValue = mapping => {\n const normalizedMapping = Array.isArray(mapping)\n ? mapping.reduce((acc, item) => {\n const key = typeof item === 'string' ? item : item.name;\n acc[key] = typeof item === 'string' ? true : item;\n return acc;\n }, {})\n : mapping;\n\n return useUrlFilter({\n readUrlParams: searchParams => {\n const { takeFilterEntry, getConsumedKeys } = createUrlFilterReader(searchParams);\n const data = {};\n Object.entries(normalizedMapping).forEach(([key, config]) => {\n const multi = typeof config === 'object' && config !== null && config.multi;\n const val = takeFilterEntry(key, { multi });\n if (val !== null) data[key] = val;\n });\n return { consumedKeys: getConsumedKeys(), ...data };\n },\n buildFilter: data => {\n const { consumedKeys, ...values } = data;\n const filters = [];\n Object.entries(normalizedMapping).forEach(([key, config]) => {\n if (values[key] === undefined) return;\n const parsedValue = values[key];\n if (typeof config === 'function') {\n const result = config(parsedValue);\n if (result) filters.push(result);\n } else {\n const label = typeof config === 'object' && config !== null ? config.label : key;\n filters.push({ name: key, label, value: parsedValue });\n }\n });\n return filters;\n }\n });\n};\n\nexport default useUrlFilterValue;\n","const toIdName = item => {\n if (!item) {\n return null;\n }\n if (item.id != null) {\n return item;\n }\n if (item.value != null) {\n return { id: item.value, name: item.label };\n }\n return item;\n};\n\nconst toLabelValue = item => {\n if (!item) {\n return null;\n }\n return {\n label: item.name ?? item.label,\n value: item.id ?? item.value\n };\n};\n\n/**\n * 单选 SuperSelect interceptor:{id, name} ↔ {label, value}\n * 适用于 valueKey=\"id\" labelKey=\"name\" 的单选场景\n */\nexport const singleSelectInterceptor = {\n input: value => {\n if (!value) {\n return value;\n }\n const item = Array.isArray(value) ? value[0] : value;\n const result = toIdName(item);\n return result;\n },\n output: selected => {\n if (!selected) {\n return selected;\n }\n const item = Array.isArray(selected) ? selected[0] : selected;\n return toLabelValue(item);\n }\n};\n\n/**\n * 多选 SuperSelect interceptor:[{id, name}] ↔ [{label, value}]\n * 适用于 valueKey=\"id\" labelKey=\"name\" 的多选场景\n */\nexport const multiSelectInterceptor = {\n input: value => {\n if (!value) {\n return value;\n }\n const list = Array.isArray(value) ? value : [value];\n return list.map(toIdName).filter(Boolean);\n },\n output: selected => {\n if (!selected) {\n return selected;\n }\n const list = Array.isArray(selected) ? selected : [selected];\n return list.map(toLabelValue).filter(Boolean);\n }\n};\n\nexport default { single: singleSelectInterceptor, multi: multiSelectInterceptor };\n","import { Input, Space, Button } from 'antd';\nimport { useState, useEffect, useRef } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../../withLocale';\n\nconst InputFilterItem = withLocale(({ value, label, onChange, ...props }) => {\n const propsValue = value?.value;\n const [inputValue, setInputValue] = useState(propsValue || '');\n const [active, setActive] = useState(false);\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n const searchHandler = () => {\n onChange(inputValue ? { label: inputValue, value: inputValue } : null);\n };\n\n const handleBlur = () => {\n setActive(false);\n searchHandler();\n };\n\n const inputValueRef = useRef('');\n inputValueRef.current = inputValue;\n\n useEffect(() => {\n if (propsValue !== inputValueRef.current) {\n setInputValue(propsValue);\n }\n }, [propsValue]);\n\n return (\n <Space.Compact>\n <Input\n placeholder={`${formatMessage({ id: 'pleaseInput' })}${label}`}\n {...props}\n size=\"small\"\n value={inputValue}\n onFocus={() => {\n setActive(true);\n }}\n onBlur={handleBlur}\n onChange={e => {\n setInputValue(e.target.value);\n }}\n onPressEnter={searchHandler}\n />\n {active && (\n <Button size=\"small\" type=\"primary\" onClick={searchHandler}>\n {formatMessage({ id: 'determineText' })}\n </Button>\n )}\n </Space.Compact>\n );\n});\n\nexport default InputFilterItem;\n","import { Tag, App, Space } from 'antd';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../../withLocale';\n\nconst { CheckableTag } = Tag;\n\nconst ListFilterItem = withLocale(({ value, onChange, label, single = false, maxLength = 5, items = [] }) => {\n const { message } = App.useApp();\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n return (\n <Space size={4} wrap block>\n {items.map(({ label: itemLabel, value: itemValue }) => {\n return (\n <CheckableTag\n key={itemLabel}\n size=\"small\"\n checked={single ? isEqual(itemValue, value?.value) : !!(value || []).find(({ value }) => isEqual(itemValue, value))}\n onChange={checked => {\n if (single) {\n onChange(checked ? { value: itemValue, label: itemLabel } : null);\n return;\n }\n const newValue = (value || []).slice(0);\n if (checked) {\n newValue.push({ value: itemValue, label: itemLabel });\n } else {\n const index = newValue.findIndex(({ value }) => isEqual(itemValue, value));\n if (index > -1) {\n newValue.splice(index, 1);\n }\n }\n if (newValue.length > maxLength) {\n message.error(formatMessage({ id: 'maxSelectedCount' }, { count: maxLength }));\n return;\n }\n onChange(newValue);\n }}\n >\n {itemLabel}\n </CheckableTag>\n );\n })}\n </Space>\n );\n});\n\nexport default ListFilterItem;\n","import { App, Tag, Space } from 'antd';\nimport { SelectAddress, createAddressApi } from '@kne/super-select-plus';\nimport '@kne/super-select-plus/dist/index.css';\nimport { useIntl } from '@kne/react-intl';\nimport { useMemo, useState, useEffect } from 'react';\nimport withLocale from '../../withLocale';\nimport style from '../../style.module.scss';\n\nconst { CheckableTag } = Tag;\n\nconst getLabelForLocal = (item, locale) => {\n if (locale === 'en-US') {\n return item?.enName || item?.name;\n }\n return item?.name;\n};\n\nconst CityFilterItemInner = ({ value, onChange, single = false, maxLength = 5, ...props }) => {\n const { message } = App.useApp();\n const { locale } = useIntl();\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const [addressApi, setAddressApi] = useState(null);\n\n useEffect(() => {\n let cancelled = false;\n SelectAddress.defaultData().then(data => {\n if (!cancelled && data) {\n setAddressApi(createAddressApi(data));\n }\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n const cityList = useMemo(() => {\n return addressApi ? addressApi.getChinaHotCities() : [];\n }, [addressApi]);\n\n return (\n <Space size={4} wrap block>\n {cityList.map(city => {\n const label = getLabelForLocal(city, locale);\n return (\n <CheckableTag\n key={city.code}\n size=\"small\"\n checked={single ? value?.value === city.code : !!(value || []).find(({ value }) => value === city.code)}\n onChange={checked => {\n if (single) {\n onChange(checked ? city : null);\n return;\n }\n const newValue = (value || []).slice(0);\n checked\n ? newValue.push(Object.assign({}, city, { label, value: city.code }))\n : (() => {\n const index = newValue.findIndex(({ value }) => value === city.code);\n newValue.splice(index, 1);\n })();\n if (newValue.length > maxLength) {\n message.error(formatMessage({ id: 'maxSelectedCount' }, { count: maxLength }));\n return;\n }\n onChange(newValue);\n }}\n >\n {label}\n </CheckableTag>\n );\n })}\n <CheckableTag\n className={style['filter-advanced-item-other']}\n size=\"small\"\n checked={(single ? value?.value : value?.length > 0) && !cityList.find(({ code }) => (single ? value?.value === code : !!(value || []).find(({ value }) => value === code)))}\n >\n {formatMessage({ id: 'otherText' })}\n <SelectAddress\n {...props}\n className={style['filter-advanced-item-other-inner']}\n maxLength={maxLength}\n allowClear={false}\n value={value}\n single={single}\n onChange={value => {\n if (value.length > maxLength) {\n message.error(formatMessage({ id: 'maxSelectedCount' }, { count: maxLength }));\n return;\n }\n onChange(value);\n }}\n />\n </CheckableTag>\n </Space>\n );\n};\n\nconst CityFilterItem = withLocale(CityFilterItemInner);\n\nexport default CityFilterItem;\n","import InputFilterItem from './InputFilterItem';\nimport ListFilterItem from './ListFilterItem';\nimport CityFilterItem from './CityFilterItem';\n\nconst fields = { InputFilterItem, ListFilterItem, CityFilterItem };\n\nexport default fields;\n","import FilterOuter from '../FilterOuter';\nimport FilterLines from '../FilterLines';\nimport { Flex } from 'antd';\nimport advancedFields from './fields';\nimport { useIntl } from '@kne/react-intl';\nimport { useContext } from '../context';\nimport style from '../style.module.scss';\nimport FilterValueDisplay from '../FilterValueDisplay';\nimport withLocale from '../withLocale';\nimport get from 'lodash/get';\n\nconst Line = ({ list }) => {\n const { value, onChange } = useContext();\n return (\n <Flex gap={8}>\n {list.map((item, index) => {\n const ComponentItem = item.type;\n return (\n <Flex gap={16} key={item.key || item.props.name || index} align=\"center\">\n <div className={style['filter-label']}>{item.props.label}:</div>\n <Flex wrap={true} align=\"center\">\n <ComponentItem\n {...item.props}\n value={value ? get(value.get(item.props.name), 'value') : item.props.value}\n onChange={\n onChange\n ? value =>\n onChange({\n name: item.props.name,\n label: item.props.label,\n value\n })\n : item.props.onChange\n }\n />\n </Flex>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst AdvancedFilter = withLocale(props => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <FilterOuter {...props}>\n {({ value, onChange, props: filterProps = {} }) => {\n const { list, more } = filterProps;\n return (\n <div>\n <Flex gap={8} vertical className={style['filter-advanced']}>\n {list &&\n list.map((item, index) => {\n return <Line key={index} list={item} />;\n })}\n {more && <FilterLines className={style['filter-advanced-more']} label={`${formatMessage({ id: 'moreText' })}:`} list={[more]} />}\n </Flex>\n {value && value.length > 0 && <FilterValueDisplay value={value} onChange={onChange} />}\n </div>\n );\n }}\n </FilterOuter>\n );\n});\n\nAdvancedFilter.fields = advancedFields;\nexport default AdvancedFilter;\n\nexport { advancedFields };\n","const FilterItemContainer = ({ children, ...props }) => {\n return children(props);\n};\n\nexport default FilterItemContainer;\n","import Filter from './Filter';\nimport * as fields from './fields';\nimport getFilterValue from './getFilterValue';\nimport { useContext as useFilter } from './context';\nimport withFilterValue from './withFilterValue';\nimport SearchInput from './SearchInput';\nimport FilterProvider from './FilterProvider';\nimport pickSelectValues from './pickSelectValues';\nimport createFilterValueMapper from './createFilterValueMapper';\nimport useUrlFilter, { createUrlParamsReader, stripConsumedUrlParams } from './useUrlFilter';\nimport useUrlFilterValue from './useUrlFilterValue';\nimport filterToUrlParams, { parseFilterEntry, takeFilterEntry, createUrlFilterReader } from './filterToUrlParams';\nimport filterInterceptors, { singleSelectInterceptor, multiSelectInterceptor } from './filterInterceptors';\n\nFilter.fields = fields;\nFilter.getFilterValue = getFilterValue;\nFilter.useFilter = useFilter;\nFilter.SearchInput = SearchInput;\nFilter.withFilterValue = withFilterValue;\nFilter.FilterProvider = FilterProvider;\n\nFilter.pickSelectValues = pickSelectValues;\nFilter.createFilterValueMapper = createFilterValueMapper;\nFilter.useUrlFilter = useUrlFilter;\nFilter.useUrlFilterValue = useUrlFilterValue;\nFilter.createUrlParamsReader = createUrlParamsReader;\nFilter.stripConsumedUrlParams = stripConsumedUrlParams;\nFilter.filterToUrlParams = filterToUrlParams;\nFilter.parseFilterEntry = parseFilterEntry;\nFilter.takeFilterEntry = takeFilterEntry;\nFilter.createUrlFilterReader = createUrlFilterReader;\nFilter.filterInterceptors = filterInterceptors;\nFilter.singleSelectInterceptor = singleSelectInterceptor;\nFilter.multiSelectInterceptor = multiSelectInterceptor;\n\nexport default Filter;\nexport {\n fields,\n getFilterValue,\n useFilter,\n withFilterValue,\n SearchInput,\n FilterProvider,\n pickSelectValues,\n createFilterValueMapper,\n useUrlFilter,\n useUrlFilterValue,\n createUrlParamsReader,\n stripConsumedUrlParams,\n filterToUrlParams,\n parseFilterEntry,\n takeFilterEntry,\n createUrlFilterReader,\n filterInterceptors,\n singleSelectInterceptor,\n multiSelectInterceptor\n};\nexport { default as AdvancedFilter } from './AdvancedFilter';\nexport { default as FilterValueDisplay } from './FilterValueDisplay';\nexport { default as FilterItem } from './FilterItem';\nexport { default as FilterLines } from './FilterLines';\nexport { default as PopoverItem } from './PopoverItem';\nexport { default as withFieldItem } from './withFieldItem';\nexport { default as FilterItemContainer } from './FilterItemContainer';\nexport { default as TypeDateRangePickerField } from './common/TypeDateRangePickerField';\nexport {\n NumberRangeFilterItem,\n InputFilterItem,\n DatePickerFilterItem,\n DateRangePickerFilterItem,\n TypeDateRangePickerFilterItem,\n SuperSelectFilterItem,\n SelectFunctionFilterItem,\n SelectIndustryFilterItem,\n SelectAddressFilterItem\n} from './fields';\n"],"names":["context","createContext","Provider","useContext","useReactContext","useMobile","isMobile","setIsMobile","useState","useEffect","window","mediaQuery","matchMedia","updateIsMobile","matches","addEventListener","addListener","removeEventListener","removeListener","useHorizontalScrollShadows","enabled","suspend","preserveOverflowOnSuspend","refreshKey","scrollRef","useRef","isOverflow","setIsOverflow","showScrollPrev","setShowScrollPrev","showScrollNext","setShowScrollNext","update","useCallback","el","current","scrollWidth","clientWidth","scrollLeft","rafId","requestAnimationFrame","cancelAnimationFrame","updateScrollShadowVisible","Line","_ref","list","children","_useContext","value","onChange","_jsxs","className","style","filter","item","type","map","index","props","get","name","label","ComponentItem","_createElement","_extends","Object","assign","key","FilterLines","_ref2","_ref2$list","_ref2$displayLine","displayLine","extra","hasMore","length","mobileList","reduce","result","concat","Array","isArray","_useState","isExpand","setIsExpand","_useHorizontalScrollS","_useIntl","useIntl","moduleName","formatMessage","scrollToNext","scrollTo","left","behavior","scrollItemIntoView","e","container","target","closest","scrollIntoView","block","inline","_Fragment","Space","classnames","align","size","_jsx","id","Row","justify","wrap","Col","flex","ref","onClick","slice","message","filterText","moreText","selectedText","clearAllText","toggleUpText","selectedTextAdvanced","clearText","otherText","cancelText","determineText","year","over","lessThan","inputPlaceholder","pleaseInput","defaultInputPlaceholder","maxSelectedCount","customTime","monthly","weekly","last7Days","thisMonth","last3Months","thisYear","fullYear","pleaseSelect","withLocale","createWithIntlProvider","defaultLocale","messages","zhCN","enUS","namespace","FilterValueDisplay","filterValue","extraExpand","tags","valueLabel","join","Tag","closable","onClose","newValue","splice","Button","icon","UpOutlined","DownOutlined","isNotEmpty","undefined","trim","FilterProvider","valueBase","_ref$defaultValue","defaultValue","useMemo","Map","newFilterValue","clone","set","delete","from","values","FilterOuter","Filter","_objectWithoutPropertiesLoose","_excluded","_ref2$props","filterProps","others","_excluded2","FilterItem","open","active","MASK_ANIMATION_DURATION","FIELD_MOBILE_POPUP_CLASS","MOBILE_POPUP_OFFSET","withFieldItem","WrappedComponent","options","interceptor","render","setOpen","_useState2","_useState3","renderMask","setRenderMask","_useState4","maskClosing","setMaskClosing","_useState5","top","pageTop","height","popupMetrics","setPopupMetrics","triggerRef","setMobilePopupVariables","metrics","document","body","setProperty","updatePopupMetrics","rect","getBoundingClientRect","Math","max","bottom","innerHeight","removeProperty","timer","setTimeout","clearTimeout","closeFieldItem","onOpenChange","onDropdownVisibleChange","handleOpenChange","mobilePopupStyle","mergePopupClassNames","classNames","_classNames$popup","popup","root","mergePopupStyles","styles","_styles$popup","renderChildren","otherProps","inputValue","input","fieldValue","forcePopup","single","allowClear","output","call","arguments","valueType","popupClassName","dropdownClassName","overlayClassName","overlayStyle","popupStyle","dropdownStyle","transitionName","autoAdjustOverflow","offset","isPopup","overlayWidth","innerWidth","createPortal","onTouchMove","preventDefault","PopoverItem","onValidate","_ref$placement","placement","state","setState","_useState6","disabled","closeDropdown","mobileOverlayStyle","overlayContent","stopPropagation","gutter","Dropdown","trigger","menu","items","dropdownRender","InputFilterItem","placeholder","Input","computedFilterValue","range","unit","isNumber","count","defaultPropsOnValidate","NumberRangeFilterItem","Compact","InputNumber","width","borderLeft","borderRight","pointerEvents","DatePickerFilterItem","picker","DatePicker","inputReadOnly","dayjs","format","startOf","endOf","Date","valueOf","DateRangePickerFilterItem","header","Flex","vertical","RangePicker","allowEmpty","TypeDateRangePickerField","valueProp","onChangeProp","_ref$shortcuts","shortcuts","shortcutOptions","typeList","defaultShortcuts","getValue","subtract","currentShortcuts","isControlled","innerValueRef","handleShortcutClick","shortcut","_shortcut$getValue","start","end","toDate","isShortcutActive","_shortcut$getValue2","valueStart","valueEnd","shortcutStart","shortcutEnd","isSame","renderShortcuts","gap","Select","typeValue","currentValue","_currentValue$value","startTime","endTime","isValid","val","dateValue","TypeDateRangePickerFilterItem","itemValue","pickerValue","displayLabel","withInputDefaultPlaceholder","InputFilterItemField","NumberRangeFilterItemField","SuperSelectFilterItem","SuperSelect","SelectFunctionFilterItem","SelectFunction","SelectIndustryFilterItem","SelectIndustry","SelectAddressFilterItem","SelectAddress","getFilterValue","transform","withFilterValue","Search","SearchInput","onSearch","pickSelectValues","String","Boolean","createFilterValueMapper","fieldMappers","entries","forEach","fieldName","mapper","entry","find","rawValue","createUrlParamsReader","searchParams","consumedKeys","take","has","push","getConsumedKeys","stripConsumedUrlParams","next","URLSearchParams","changed","useUrlFilter","readUrlParams","buildFilter","_useSearchParams","useSearchParams","setSearchParams","urlFilterSnapshotRef","setFilter","urlStrippedRef","_urlFilterSnapshotRef","nextParams","replace","filterToUrlParams","_temp","_ref$prefix","prefix","params","serialized","serializeEntry","_item$label","_item$value","parseFilterEntry","str","colonIndex","indexOf","takeFilterEntry","_temp2","_ref3","_ref3$multi","multi","_ref3$prefix","fullKey","raw","split","firstEntry","includes","createUrlFilterReader","_temp3","_ref4","_ref4$prefix","_temp4","_ref5","_ref5$multi","useUrlFilterValue","mapping","normalizedMapping","acc","_createUrlFilterReade","data","config","filters","parsedValue","toIdName","toLabelValue","_item$name","_item$id","singleSelectInterceptor","selected","multiSelectInterceptor","propsValue","setInputValue","setActive","searchHandler","handleBlur","inputValueRef","onFocus","onBlur","onPressEnter","CheckableTag","ListFilterItem","maxLength","App","useApp","itemLabel","checked","isEqual","findIndex","error","getLabelForLocal","locale","enName","CityFilterItemInner","addressApi","setAddressApi","cancelled","defaultData","then","createAddressApi","cityList","getChinaHotCities","city","code","CityFilterItem","fields","AdvancedFilter","more","advancedFields","FilterItemContainer","useFilter","filterInterceptors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/context.js","../src/hooks/useMobile.js","../src/hooks/useHorizontalScrollShadows.js","../src/hooks/useVisibleItemCount.js","../src/normalizeFilterList.js","../src/FilterLines.js","../src/locale/zh-CN.js","../src/locale/en-US.js","../src/withLocale.js","../src/FilterValueDisplay.js","../src/FilterProvider.js","../src/FilterOuter.js","../src/Filter.js","../src/FilterItem.js","../src/withFieldItem.js","../src/PopoverItem.js","../src/fields/InputFilterItem.js","../src/fields/NumberRangeFilterItem.js","../src/fields/DatePickerFilterItem.js","../src/fields/DateRangePickerFilterItem.js","../src/common/TypeDateRangePickerField/index.js","../src/fields/TypeDateRangePickerFilterItem.js","../src/fields/index.js","../src/getFilterValue.js","../src/withFilterValue.js","../src/SearchInput.js","../src/pickSelectValues.js","../src/createFilterValueMapper.js","../src/useUrlFilter.js","../src/filterToUrlParams.js","../src/useUrlFilterValue.js","../src/filterInterceptors.js","../src/AdvancedFilter/fields/InputFilterItem.js","../src/AdvancedFilter/fields/ListFilterItem.js","../src/AdvancedFilter/fields/CityFilterItem.js","../src/AdvancedFilter/fields/index.js","../src/AdvancedFilter/index.js","../src/FilterItemContainer.js","../src/index.js"],"sourcesContent":["import { createContext, useContext as useReactContext } from 'react';\n\nexport const context = createContext({});\n\nexport const { Provider } = context;\n\nexport const useContext = () => useReactContext(context);\n","import { useEffect, useState } from 'react';\n\nconst useMobile = () => {\n const [isMobile, setIsMobile] = useState(false);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const updateIsMobile = () => {\n setIsMobile(mediaQuery.matches);\n };\n updateIsMobile();\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', updateIsMobile) : mediaQuery.addListener(updateIsMobile);\n return () => {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', updateIsMobile) : mediaQuery.removeListener(updateIsMobile);\n };\n }, []);\n\n return isMobile;\n};\n\nexport default useMobile;\n","import { useCallback, useEffect, useRef, useState } from 'react';\n\nconst useHorizontalScrollShadows = ({ enabled, suspend = false, preserveOverflowOnSuspend = false, refreshKey } = {}) => {\n const scrollRef = useRef(null);\n const [isOverflow, setIsOverflow] = useState(false);\n const [showScrollPrev, setShowScrollPrev] = useState(false);\n const [showScrollNext, setShowScrollNext] = useState(false);\n\n const update = useCallback(() => {\n const el = scrollRef.current;\n if (!el || !enabled) {\n setShowScrollPrev(false);\n setShowScrollNext(false);\n setIsOverflow(false);\n return;\n }\n\n if (suspend) {\n setShowScrollPrev(false);\n setShowScrollNext(false);\n if (!preserveOverflowOnSuspend) {\n setIsOverflow(false);\n }\n return;\n }\n\n setIsOverflow(el.scrollWidth > el.clientWidth);\n setShowScrollPrev(el.scrollLeft > 1);\n setShowScrollNext(el.scrollWidth > el.clientWidth && el.scrollLeft + el.clientWidth < el.scrollWidth - 1);\n }, [enabled, preserveOverflowOnSuspend, suspend]);\n\n useEffect(() => {\n const el = scrollRef.current;\n if (!el || !enabled || suspend) {\n update();\n return;\n }\n\n update();\n el.addEventListener('scroll', update);\n window.addEventListener('resize', update);\n const rafId = window.requestAnimationFrame(update);\n return () => {\n el.removeEventListener('scroll', update);\n window.removeEventListener('resize', update);\n window.cancelAnimationFrame(rafId);\n };\n }, [enabled, refreshKey, suspend, update]);\n\n return { scrollRef, isOverflow, showScrollPrev, showScrollNext, updateScrollShadowVisible: update };\n};\n\nexport default useHorizontalScrollShadows;\n","import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nconst GAP = 8;\nconst SAFETY_GAP = 2;\n\nconst useVisibleItemCount = ({ items, enabled, strategy = 'asc' }) => {\n const containerRef = useRef(null);\n const measureRef = useRef(null);\n const moreMeasureRef = useRef(null);\n const rafRef = useRef(null);\n const lastWidthRef = useRef(0);\n const [containerEl, setContainerEl] = useState(null);\n const [visibleCount, setVisibleCount] = useState(() => (items.length > 0 ? 1 : 0));\n\n const setContainerRef = useCallback(node => {\n containerRef.current = node;\n setContainerEl(node || null);\n }, []);\n\n const setMeasureRef = useCallback(node => {\n measureRef.current = node;\n }, []);\n\n const setMoreMeasureRef = useCallback(node => {\n moreMeasureRef.current = node;\n }, []);\n\n const getWidths = useCallback(() => {\n const container = containerRef.current;\n const measureEl = measureRef.current;\n if (!container || !measureEl) {\n return null;\n }\n\n const containerWidth = container.clientWidth;\n if (containerWidth <= 0) {\n return null;\n }\n\n const itemNodes = measureEl.querySelectorAll('[data-filter-measure-item]');\n if (!itemNodes.length) {\n return null;\n }\n\n const moreButtonWidth = moreMeasureRef.current?.getBoundingClientRect().width || 0;\n if (items.length > 1 && moreButtonWidth <= 0) {\n return null;\n }\n\n const itemWidths = Array.from(itemNodes, node => node.getBoundingClientRect().width);\n return { containerWidth, itemWidths, moreButtonWidth };\n }, [items.length]);\n\n const getWidthForCount = useCallback(\n (itemWidths, moreButtonWidth, count) => {\n let usedWidth = 0;\n for (let i = 0; i < count; i++) {\n usedWidth += itemWidths[i] + (i > 0 ? GAP : 0);\n }\n\n if (count < items.length) {\n usedWidth += GAP + moreButtonWidth;\n }\n\n return usedWidth;\n },\n [items.length]\n );\n\n const resolveVisibleCount = useCallback(\n widths => {\n const { containerWidth, itemWidths, moreButtonWidth } = widths;\n const maxCount = Math.min(items.length, itemWidths.length);\n let count = 1;\n\n if (strategy === 'desc') {\n count = maxCount;\n while (count > 1) {\n const usedWidth = getWidthForCount(itemWidths, moreButtonWidth, count);\n if (usedWidth + SAFETY_GAP <= containerWidth) {\n break;\n }\n count -= 1;\n }\n } else {\n count = 1;\n while (count < maxCount) {\n const nextCount = count + 1;\n const usedWidth = getWidthForCount(itemWidths, moreButtonWidth, nextCount);\n if (usedWidth + SAFETY_GAP > containerWidth) {\n break;\n }\n count = nextCount;\n }\n }\n\n return Math.max(1, count);\n },\n [getWidthForCount, items.length, strategy]\n );\n\n const calculateByWidth = useCallback(() => {\n if (!enabled || !items.length) {\n setVisibleCount(prev => (prev === items.length ? prev : items.length));\n return;\n }\n\n const widths = getWidths();\n if (!widths) {\n return;\n }\n\n const nextCount = resolveVisibleCount(widths);\n setVisibleCount(prev => (prev === nextCount ? prev : nextCount));\n }, [enabled, getWidths, items.length, resolveVisibleCount]);\n\n const scheduleCalculate = useCallback(() => {\n if (rafRef.current) {\n window.cancelAnimationFrame(rafRef.current);\n }\n\n rafRef.current = window.requestAnimationFrame(() => {\n rafRef.current = null;\n calculateByWidth();\n });\n }, [calculateByWidth]);\n\n useLayoutEffect(() => {\n scheduleCalculate();\n return () => {\n if (rafRef.current) {\n window.cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n };\n }, [items, scheduleCalculate]);\n\n useEffect(() => {\n if (!enabled || !containerEl) {\n return undefined;\n }\n\n const observer = new ResizeObserver(entries => {\n const entry = entries.find(item => item.target === containerEl);\n const nextWidth = entry?.contentRect.width ?? containerEl.clientWidth;\n\n if (Math.abs(nextWidth - lastWidthRef.current) < 1) {\n return;\n }\n\n lastWidthRef.current = nextWidth;\n scheduleCalculate();\n });\n\n lastWidthRef.current = containerEl.clientWidth;\n observer.observe(containerEl);\n window.addEventListener('resize', scheduleCalculate);\n\n return () => {\n observer.disconnect();\n window.removeEventListener('resize', scheduleCalculate);\n if (rafRef.current) {\n window.cancelAnimationFrame(rafRef.current);\n rafRef.current = null;\n }\n };\n }, [containerEl, enabled, scheduleCalculate]);\n\n return { setContainerRef, setMeasureRef, setMoreMeasureRef, visibleCount };\n};\n\nexport default useVisibleItemCount;\n","export const isFilterListItem = item => {\n if (!item) return false;\n if (typeof item === 'function') return true;\n return !!item.type;\n};\n\nexport const isNestedFilterList = list => {\n if (!Array.isArray(list) || list.length === 0) return false;\n return Array.isArray(list[0]) && !isFilterListItem(list[0]);\n};\n\nexport const normalizeFilterList = list => {\n const safeList = Array.isArray(list) ? list : [];\n if (!safeList.length) {\n return { mode: 'flat', items: [], lines: [] };\n }\n if (isNestedFilterList(safeList)) {\n return { mode: 'nested', items: null, lines: safeList };\n }\n return { mode: 'flat', items: safeList, lines: null };\n};\n\nexport const getMobileFilterList = list => {\n const { mode, items, lines } = normalizeFilterList(list);\n if (mode === 'flat') return items;\n return lines.reduce((result, line) => result.concat(line), []);\n};\n","import classnames from 'classnames';\nimport { useCallback, useMemo, useState } from 'react';\nimport style from './style.module.scss';\nimport { Col, Row, Space } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { useContext } from './context';\nimport get from 'lodash/get';\nimport useMobile from './hooks/useMobile';\nimport useHorizontalScrollShadows from './hooks/useHorizontalScrollShadows';\nimport useVisibleItemCount from './hooks/useVisibleItemCount';\nimport { getMobileFilterList, normalizeFilterList } from './normalizeFilterList';\n\nconst isValidFilterItem = item => !!item && (item.type || typeof item === 'function');\n\nconst useFilterItemRenderer = () => {\n const { value, onChange } = useContext();\n\n return useCallback(\n (item, index) => {\n if (typeof item === 'function') {\n return item(props => ({\n index,\n value: value ? get(value.get(props?.name), 'value') : props?.value,\n onChange: onChange\n ? nextValue =>\n onChange({\n name: props?.name,\n label: props?.label,\n value: nextValue\n })\n : props?.onChange\n }));\n }\n\n const ComponentItem = item.type;\n return (\n <ComponentItem\n {...Object.assign({}, item.props, {\n value: value ? get(value.get(item.props.name), 'value') : item.props.value,\n onChange: onChange\n ? nextValue =>\n onChange({\n name: item.props.name,\n label: item.props.label,\n value: nextValue\n })\n : item.props.onChange\n })}\n key={item.key || item.props.name || index}\n />\n );\n },\n [onChange, value]\n );\n};\n\nconst Line = ({ list, children, innerRef, nowrap }) => {\n const renderItem = useFilterItemRenderer();\n\n return (\n <div\n ref={innerRef}\n className={classnames(style['filter-line'], {\n [style['filter-line-nowrap']]: nowrap\n })}\n >\n {list.filter(isValidFilterItem).map((item, index) => renderItem(item, index))}\n {children}\n </div>\n );\n};\n\nconst CollapseButtons = ({ onClick, toggleUpText }) => (\n <>\n <Space size={4} className={classnames(style['un-expand-shadow'])}>\n <Space size={4} className={classnames(style['option'], style['filter-item'])}>\n {toggleUpText}\n <span className={style['filter-item-option-icon']}>▲</span>\n </Space>\n </Space>\n <Space size={4} className={classnames(style['un-expand'])} onClick={onClick}>\n <Space size={4} className={classnames(style['option'], style['filter-item'])}>\n {toggleUpText}\n <span className={style['filter-item-option-icon']}>▲</span>\n </Space>\n </Space>\n </>\n);\n\nconst FilterLines = ({ className, list = [], displayLine = 1, label, extra, children, visibleCountStrategy = 'asc' }) => {\n const { mode, items: flatItems, lines } = useMemo(() => normalizeFilterList(list), [list]);\n const mobileList = useMemo(() => getMobileFilterList(list), [list]);\n const isFlatMode = mode === 'flat';\n const [isExpand, setIsExpand] = useState(false);\n const isMobile = useMobile();\n const { scrollRef, showScrollPrev, showScrollNext } = useHorizontalScrollShadows({ enabled: isMobile, refreshKey: list });\n const { setContainerRef, setMeasureRef, setMoreMeasureRef, visibleCount } = useVisibleItemCount({\n items: flatItems,\n enabled: !isMobile && isFlatMode,\n strategy: visibleCountStrategy\n });\n const renderItem = useFilterItemRenderer();\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n const visibleFlatItems = isFlatMode ? flatItems.slice(0, visibleCount) : [];\n const hiddenFlatItems = isFlatMode ? flatItems.slice(visibleCount) : [];\n const hasMoreFlat = hiddenFlatItems.length > 0;\n const hasMoreNested = !isFlatMode && lines.length > displayLine;\n const hasMore = isFlatMode ? hasMoreFlat : hasMoreNested;\n const visibleLines = !isFlatMode ? lines.slice(0, displayLine) : [];\n const hiddenLines = !isFlatMode ? lines.slice(displayLine) : [];\n const showLabel = isFlatMode ? flatItems.length > 0 : lines.length > 0;\n\n const setScrollContainerRef = useCallback(\n node => {\n scrollRef.current = node;\n },\n [scrollRef]\n );\n\n const setMeasureContainerRef = useCallback(\n node => {\n if (!isMobile && isFlatMode) {\n setContainerRef(node);\n } else {\n setContainerRef(null);\n }\n },\n [isFlatMode, isMobile, setContainerRef]\n );\n\n const scrollToNext = useCallback(() => {\n const el = scrollRef.current;\n if (!el) return;\n el.scrollTo({\n left: el.scrollLeft + el.clientWidth * 0.8,\n behavior: 'smooth'\n });\n }, [scrollRef]);\n\n const scrollItemIntoView = useCallback(\n e => {\n if (!isMobile) return;\n const container = scrollRef.current;\n const item = e.target.closest(`.${style['filter-item-wrap']}`) || e.target.closest(`.${style['filter-item']}`);\n if (!container || !item) return;\n item.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center'\n });\n },\n [isMobile, scrollRef]\n );\n\n const toggleExpand = useCallback(() => {\n setIsExpand(value => !value);\n }, []);\n\n const moreButtonLabel = (\n <>\n {formatMessage({ id: 'moreText' })}\n <span className={style['filter-item-option-icon']}>▼</span>\n </>\n );\n\n const moreButton = (\n <Space size={4} className={classnames(style['filter-item'], style['option'])} onClick={toggleExpand}>\n {moreButtonLabel}\n </Space>\n );\n\n const renderDesktopContent = () => {\n if (isFlatMode) {\n return (\n <Line list={visibleFlatItems} nowrap={hasMoreFlat && !isExpand}>\n {hasMoreFlat && !isExpand ? <span data-filter-more>{moreButton}</span> : null}\n </Line>\n );\n }\n\n return visibleLines.map((line, index) => (\n <Line key={index} list={line}>\n {hasMoreNested && !isExpand && index === displayLine - 1 ? moreButton : null}\n </Line>\n ));\n };\n\n const renderExpandedContent = () => {\n if (isFlatMode) {\n if (!hiddenFlatItems.length) return null;\n return (\n <Line list={hiddenFlatItems}>\n <CollapseButtons onClick={toggleExpand} toggleUpText={formatMessage({ id: 'toggleUpText' })} />\n </Line>\n );\n }\n\n return hiddenLines.map((line, index) => (\n <Line key={index} list={line}>\n {index === hiddenLines.length - 1 ? <CollapseButtons onClick={toggleExpand} toggleUpText={formatMessage({ id: 'toggleUpText' })} /> : null}\n </Line>\n ));\n };\n\n return (\n <>\n <Space className={classnames(style['filter-title'], 'filter-title', className)} align=\"top\" size={16}>\n <span className={style['filter-label']}>{showLabel && (label || formatMessage({ id: 'filterText' }))}</span>\n <Row justify=\"space-between\" wrap={false} align=\"top\">\n <Col className={style['filter-list']} flex={1}>\n <div\n ref={setMeasureContainerRef}\n className={classnames(style['filter-list-scroll-wrap'], {\n [style['filter-list-constrained']]: !isMobile && isFlatMode\n })}\n >\n {!isMobile && isFlatMode ? (\n <div ref={setMeasureRef} className={classnames(style['filter-line'], style['filter-line-measure'])} aria-hidden>\n {flatItems.filter(isValidFilterItem).map((item, index) => (\n <div key={item.key || item.props?.name || index} data-filter-measure-item>\n {renderItem(item, index)}\n </div>\n ))}\n <div ref={setMoreMeasureRef} data-filter-measure-more>\n <Space size={4} className={classnames(style['filter-item'], style['option'])}>\n {moreButtonLabel}\n </Space>\n </div>\n </div>\n ) : null}\n {isMobile && showScrollPrev ? <div className={style['filter-scroll-prev-shadow']} /> : null}\n <div className={style['filter-list-scroll']} ref={setScrollContainerRef} onClick={scrollItemIntoView}>\n {isMobile ? mobileList.map((item, index) => <Line key={index} list={[item]} />) : renderDesktopContent()}\n </div>\n {isMobile && showScrollNext ? (\n <button type=\"button\" className={style['filter-scroll-next']} onClick={scrollToNext} aria-label=\"scroll next\">\n <span className={style['filter-scroll-next-icon']}>›</span>\n </button>\n ) : null}\n </div>\n </Col>\n <Col>{extra}</Col>\n </Row>\n </Space>\n <Space className={classnames(style['filter-title'], 'filter-title-wrap')} align=\"center\" size={16}>\n {children}\n </Space>\n <Space\n className={classnames(style['filter-title'], 'filter-title-wrap', {\n [style['filter-title-hidden']]: isMobile || !(hasMore && isExpand)\n })}\n align=\"top\"\n size={16}\n >\n <span className={style['filter-label']}>{formatMessage({ id: 'moreText' })}</span>\n <div className={style['filter-list']}>{renderExpandedContent()}</div>\n </Space>\n </>\n );\n};\n\nexport default FilterLines;\n","const message = {\n filterText: '筛选',\n moreText: '更多',\n selectedText: '您已选择',\n clearAllText: '清空全部',\n toggleUpText: '收起',\n selectedTextAdvanced: '已选',\n clearText: '清空筛选',\n otherText: '其他',\n cancelText: '取消',\n determineText: '确定',\n year: '年',\n over: '{count}{unit}以上',\n lessThan: '{count}{unit}以下',\n inputPlaceholder: '请输入{label}',\n pleaseInput: '请输入',\n defaultInputPlaceholder: '请输入{label}',\n maxSelectedCount: '最多选择{count}项',\n customTime: '自定义时间',\n monthly: '按月',\n weekly: '按周',\n last7Days: '近7天',\n thisMonth: '本月',\n last3Months: '近三个月',\n thisYear: '当年',\n fullYear: '本年度',\n pleaseSelect: '请选择'\n};\n\nexport default message;\n","const message = {\n filterText: 'Filter',\n moreText: 'More',\n selectedText: 'Selected',\n clearAllText: 'Clear All',\n toggleUpText: 'Pack Up',\n selectedTextAdvanced: 'Selected',\n clearText: 'Clear Filter',\n otherText: 'Other',\n cancelText: 'Cancel',\n determineText: 'Determine',\n year: 'year',\n over: 'over {count} {unit}s',\n lessThan: 'less than {count} {unit}s',\n inputPlaceholder: 'Please enter {label}',\n pleaseInput: 'Please enter ',\n defaultInputPlaceholder: 'Please enter {label}',\n maxSelectedCount: 'Select up to {count} items',\n customTime: 'Custom Time',\n monthly: 'Monthly',\n weekly: 'Weekly',\n last7Days: 'Last 7 Days',\n thisMonth: 'This Month',\n last3Months: 'Last 3 Months',\n thisYear: 'Year to Date',\n fullYear: 'Full Year',\n pleaseSelect: 'Please Select'\n};\n\nexport default message;\n","import { createWithIntlProvider } from '@kne/react-intl';\nimport zhCN from './locale/zh-CN';\nimport enUS from './locale/en-US';\n\nconst withLocale = createWithIntlProvider({\n defaultLocale: 'zh-CN',\n messages: {\n 'zh-CN': zhCN,\n 'en-US': enUS\n },\n namespace: 'react-filter'\n});\n\nexport default withLocale;\n","import { Button, Space, Tag } from 'antd';\nimport style from './style.module.scss';\nimport classnames from 'classnames';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from './withLocale';\nimport { useState } from 'react';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport useMobile from './hooks/useMobile';\nimport useHorizontalScrollShadows from './hooks/useHorizontalScrollShadows';\n\nconst FilterValueDisplay = withLocale(({ value: filterValue, extraExpand, onChange }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const [isExpand, setIsExpand] = useState(false);\n const isMobile = useMobile();\n const { scrollRef, isOverflow, showScrollPrev, showScrollNext } = useHorizontalScrollShadows({\n enabled: isMobile,\n suspend: isExpand,\n preserveOverflowOnSuspend: true,\n refreshKey: filterValue\n });\n\n const tags = filterValue.map(({ name, label, value }, index) => {\n const valueLabel = Array.isArray(value) ? value.map(item => item.label).join(',') : value?.label;\n return (\n <Tag\n key={name}\n closable\n className={style['filter-value-tag']}\n onClose={() => {\n const newValue = filterValue.slice(0);\n newValue.splice(index, 1);\n onChange(newValue);\n }}\n >\n <span className={style['filter-value-tag-label']}>{label}:</span>\n <span className={style['filter-value-tag-content']}>{valueLabel}</span>\n </Tag>\n );\n });\n\n return (\n <Space className={classnames(style['filter-title'], style['filter-value-display'])} align=\"top\" size={16}>\n <span className={style['filter-label']}>{formatMessage({ id: 'selectedText' })}</span>\n {isMobile ? (\n <div className={classnames(style['filter-value-display-content'], !isOverflow && style['is-not-overflow'])}>\n <div className={classnames(style['filter-value-tags-wrap'], isExpand && style['is-expand'])}>\n {showScrollPrev ? <div className={classnames(style['filter-scroll-prev-shadow'], style['filter-value-scroll-prev-shadow'])} /> : null}\n <div ref={scrollRef} className={classnames(style['filter-line'], style['filter-value-tags'], isExpand && style['is-expand'])}>\n {tags}\n </div>\n {showScrollNext ? <div className={classnames(style['filter-value-scroll-next-shadow'])} /> : null}\n </div>\n <div className={classnames(style['filter-value-actions'], isOverflow && style['is-overflow'])}>\n <div className={style['filter-value-action-right']}>\n <Space size={4}>\n {extraExpand}\n <Button\n size=\"small\"\n onClick={() => {\n onChange([]);\n }}\n >\n {formatMessage({ id: 'clearAllText' })}\n </Button>\n </Space>\n </div>\n {isOverflow ? (\n <Button\n type=\"link\"\n size=\"small\"\n className={style['filter-value-toggle']}\n icon={isExpand ? <UpOutlined /> : <DownOutlined />}\n onClick={() => {\n setIsExpand(value => !value);\n }}\n >\n {isExpand ? '收起' : '展开'}\n </Button>\n ) : null}\n <div className={style['filter-value-action-placeholder']}>\n {extraExpand}\n <Button size=\"small\">{formatMessage({ id: 'clearAllText' })}</Button>\n </div>\n </div>\n </div>\n ) : (\n <div className={style['filter-line']}>\n {tags}\n <Space size={4} className={classnames(style['un-expand-shadow'])}>\n {extraExpand}\n <Button size=\"small\">{formatMessage({ id: 'clearAllText' })}</Button>\n </Space>\n <Space size={4} className={classnames(style['un-expand'])}>\n {extraExpand}\n <Button\n size=\"small\"\n onClick={() => {\n onChange([]);\n }}\n >\n {formatMessage({ id: 'clearAllText' })}\n </Button>\n </Space>\n </div>\n )}\n </Space>\n );\n});\n\nexport default FilterValueDisplay;\n","import { Provider } from './context';\nimport clone from 'lodash/clone';\nimport { useMemo } from 'react';\n\nconst isNotEmpty = value => {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string' && value.trim() === '') return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n};\n\nconst FilterProvider = ({ children, value: valueBase, onChange, defaultValue = [] }) => {\n const value = useMemo(() => {\n return (valueBase || defaultValue).filter(item => isNotEmpty(item.value));\n }, [valueBase, defaultValue]);\n\n const filterValue = useMemo(() => {\n return new Map(value.map(item => [item.name, item]));\n }, [value]);\n\n return (\n <Provider\n value={{\n value: filterValue,\n onChange: item => {\n const newFilterValue = clone(filterValue);\n item.value ? newFilterValue.set(item.name, item) : newFilterValue.delete(item.name);\n onChange?.(Array.from(newFilterValue.values()));\n }\n }}\n >\n {typeof children === 'function' ? children({ value, onChange }) : children}\n </Provider>\n );\n};\n\nexport default FilterProvider;\n","import classnames from 'classnames';\nimport style from './style.module.scss';\nimport FilterProvider from './FilterProvider';\n\nconst FilterOuter = ({ children, className, ...props }) => {\n return <FilterProvider {...props}>{context => <div className={classnames(style['filter'], 'filter', className)}>{children({ ...context, props })}</div>}</FilterProvider>;\n};\n\nexport default FilterOuter;\n","import FilterLines from './FilterLines';\nimport FilterValueDisplay from './FilterValueDisplay';\nimport FilterOuter from './FilterOuter';\nimport withLocale from './withLocale';\n\nconst Filter = withLocale(({ defaultValue = [], ...props }) => {\n return (\n <FilterOuter {...props} defaultValue={defaultValue}>\n {({ props: filterProps = {}, value, onChange }) => {\n const { extraExpand, ...others } = filterProps;\n return (\n <>\n <FilterLines {...others} />\n {value && value.length > 0 && <FilterValueDisplay value={value} onChange={onChange} extraExpand={extraExpand} />}\n </>\n );\n }}\n </FilterOuter>\n );\n});\n\nexport default Filter;\n","import classnames from 'classnames';\nimport { Space } from 'antd';\nimport style from './style.module.scss';\nimport withLocale from './withLocale';\n\nconst FilterItem = withLocale(({ open, active, label, children }) => {\n return (\n <Space className={style['filter-item-wrap']}>\n <div\n className={classnames(style['filter-item'], {\n [style['is-active']]: active,\n [style['is-visited']]: open\n })}\n >\n <Space className={style['filter-item-label']} size={4}>\n <div>{label}</div>\n <span className={style['filter-item-icon']}>▼</span>\n </Space>\n <div className={style['filter-item-field']}>{children}</div>\n </div>\n </Space>\n );\n});\n\nexport default FilterItem;\n","import { useState, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport FilterItem from './FilterItem';\nimport style from './style.module.scss';\nimport classnames from 'classnames';\n\nconst isNotEmpty = value => {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string' && value.trim() === '') return false;\n return !(Array.isArray(value) && value.length === 0);\n};\n\nconst MASK_ANIMATION_DURATION = 180;\nconst FIELD_MOBILE_POPUP_CLASS = 'react-filter-field-mobile-popup';\nconst MOBILE_POPUP_OFFSET = 4;\n\nconst withFieldItem =\n (WrappedComponent, options = {}) =>\n ({ value, onChange, interceptor, label, render, ...props }) => {\n const [open, setOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n const [renderMask, setRenderMask] = useState(false);\n const [maskClosing, setMaskClosing] = useState(false);\n const [popupMetrics, setPopupMetrics] = useState({ top: 0, pageTop: 0, height: 0 });\n const triggerRef = useRef(null);\n const setMobilePopupVariables = useCallback(metrics => {\n if (typeof document === 'undefined') return;\n document.body.style.setProperty('--react-filter-field-mobile-height', `${metrics.height}px`);\n document.body.style.setProperty('--react-filter-popover-mobile-height', `${metrics.height}px`);\n document.body.style.setProperty('--react-filter-field-mobile-top', `${metrics.top}px`);\n }, []);\n const updatePopupMetrics = useCallback(() => {\n if (typeof window === 'undefined' || !triggerRef.current) return;\n const rect = triggerRef.current.getBoundingClientRect();\n const top = Math.max(rect.bottom + MOBILE_POPUP_OFFSET, 0);\n const metrics = {\n top,\n height: Math.max(window.innerHeight - top, 0)\n };\n setPopupMetrics(metrics);\n setMobilePopupVariables(metrics);\n }, [setMobilePopupVariables]);\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const updateIsMobile = () => {\n setIsMobile(mediaQuery.matches);\n };\n updateIsMobile();\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', updateIsMobile) : mediaQuery.addListener(updateIsMobile);\n return () => {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', updateIsMobile) : mediaQuery.removeListener(updateIsMobile);\n };\n }, []);\n\n useEffect(() => {\n if (!open || !isMobile) return;\n updatePopupMetrics();\n window.addEventListener('resize', updatePopupMetrics);\n window.addEventListener('scroll', updatePopupMetrics, true);\n return () => {\n window.removeEventListener('resize', updatePopupMetrics);\n window.removeEventListener('scroll', updatePopupMetrics, true);\n };\n }, [isMobile, open, updatePopupMetrics]);\n\n useEffect(() => {\n if (typeof document === 'undefined' || !isMobile || popupMetrics.height <= 0) return;\n setMobilePopupVariables(popupMetrics);\n return () => {\n document.body.style.removeProperty('--react-filter-field-mobile-height');\n document.body.style.removeProperty('--react-filter-popover-mobile-height');\n document.body.style.removeProperty('--react-filter-field-mobile-top');\n };\n }, [isMobile, popupMetrics, setMobilePopupVariables]);\n\n useEffect(() => {\n if (open && isMobile) {\n setRenderMask(true);\n setMaskClosing(false);\n return;\n }\n\n if (!renderMask) return;\n setMaskClosing(true);\n const timer = setTimeout(() => {\n setRenderMask(false);\n setMaskClosing(false);\n }, MASK_ANIMATION_DURATION);\n return () => {\n clearTimeout(timer);\n };\n }, [isMobile, open, renderMask]);\n\n const closeFieldItem = useCallback(() => {\n setOpen(false);\n props.onOpenChange && props.onOpenChange(false);\n props.onDropdownVisibleChange && props.onDropdownVisibleChange(false);\n }, [props]);\n\n const handleOpenChange = useCallback(\n open => {\n if (open && isMobile) {\n updatePopupMetrics();\n }\n setOpen(open);\n props.onOpenChange && props.onOpenChange(open);\n props.onDropdownVisibleChange && props.onDropdownVisibleChange(open);\n },\n [isMobile, props, updatePopupMetrics]\n );\n\n const mobilePopupStyle = isMobile\n ? {\n '--react-filter-field-mobile-height': `${popupMetrics.height}px`,\n '--react-filter-popover-mobile-height': `${popupMetrics.height}px`,\n '--react-filter-field-mobile-top': `${popupMetrics.top}px`,\n top: popupMetrics.top,\n left: 0\n }\n : undefined;\n\n const mergePopupClassNames = classNames => {\n if (!isMobile) return classNames;\n return Object.assign({}, classNames, {\n popup: Object.assign({}, classNames?.popup, {\n root: classnames(classNames?.popup?.root, style['field-item-mobile-popup'], FIELD_MOBILE_POPUP_CLASS)\n })\n });\n };\n\n const mergePopupStyles = styles => {\n if (!isMobile) return styles;\n return Object.assign({}, styles, {\n popup: Object.assign({}, styles?.popup, {\n root: Object.assign({}, styles?.popup?.root, mobilePopupStyle)\n })\n });\n };\n\n const renderChildren = otherProps => {\n const inputValue = typeof interceptor?.input === 'function' ? interceptor.input(value) : value;\n const fieldValue = options.forcePopup && inputValue == null ? (props.single ? null : []) : inputValue;\n return (\n <WrappedComponent\n allowClear={false}\n {...Object.assign({}, props, otherProps)}\n className={style['filter-item-inner']}\n value={fieldValue}\n onChange={typeof interceptor?.output === 'function' ? (...args) => onChange(interceptor.output(...args)) : onChange}\n valueType=\"all\"\n onOpenChange={handleOpenChange}\n onDropdownVisibleChange={handleOpenChange}\n popupClassName={classnames(props.popupClassName, isMobile && style['field-item-mobile-popup'], isMobile && FIELD_MOBILE_POPUP_CLASS)}\n dropdownClassName={classnames(props.dropdownClassName, isMobile && style['field-item-mobile-popup'], isMobile && FIELD_MOBILE_POPUP_CLASS)}\n overlayClassName={classnames(props.overlayClassName, isMobile && style['field-item-mobile-popup'], isMobile && FIELD_MOBILE_POPUP_CLASS)}\n overlayStyle={Object.assign({}, props.overlayStyle, mobilePopupStyle)}\n popupStyle={Object.assign({}, props.popupStyle, mobilePopupStyle)}\n dropdownStyle={Object.assign({}, props.dropdownStyle, mobilePopupStyle)}\n classNames={mergePopupClassNames(props.classNames)}\n styles={mergePopupStyles(props.styles)}\n transitionName={isMobile ? '' : props.transitionName}\n autoAdjustOverflow={isMobile ? false : props.autoAdjustOverflow}\n align={isMobile ? { offset: [0, 0] } : props.align}\n isPopup={options.forcePopup ? true : props.isPopup}\n overlayWidth={isMobile && options.forcePopup ? (typeof window === 'undefined' ? props.overlayWidth : window.innerWidth) : props.overlayWidth}\n />\n );\n };\n return (\n <>\n {renderMask &&\n typeof document !== 'undefined' &&\n createPortal(\n <div\n className={classnames(style['pop-util-mask'], maskClosing && style['pop-util-mask-leave'])}\n style={{\n top: popupMetrics.top,\n height: popupMetrics.height\n }}\n onClick={closeFieldItem}\n onTouchMove={e => {\n e.preventDefault();\n }}\n />,\n document.body\n )}\n <span ref={triggerRef}>\n <FilterItem label={label} open={open} active={isNotEmpty(value)}>\n {typeof render === 'function'\n ? render({\n children: renderChildren\n })\n : renderChildren()}\n </FilterItem>\n </span>\n </>\n );\n };\n\nexport default withFieldItem;\n","import { useState, useMemo, useRef, useEffect, useCallback } from 'react';\nimport { createPortal } from 'react-dom';\nimport { Button, Col, Dropdown, Row } from 'antd';\nimport FilterItem from './FilterItem';\nimport classnames from 'classnames';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from './withLocale';\nimport style from './style.module.scss';\n\nconst isNotEmpty = value => {\n if (value === null || value === undefined) return false;\n if (typeof value === 'string' && value.trim() === '') return false;\n if (Array.isArray(value) && value.length === 0) return false;\n return true;\n};\n\nconst MASK_ANIMATION_DURATION = 180;\nconst MOBILE_POPUP_OFFSET = 4;\n\nconst PopoverItem = withLocale(({ value, label, onValidate, overlayClassName, placement = 'bottomLeft', onOpenChange, onChange, children }) => {\n const [state, setState] = useState(value);\n const [open, setOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n const [renderMask, setRenderMask] = useState(false);\n const [maskClosing, setMaskClosing] = useState(false);\n const [popupMetrics, setPopupMetrics] = useState({ top: 0, pageTop: 0, height: 0 });\n const triggerRef = useRef(null);\n const disabled = useMemo(() => {\n return onValidate && !onValidate(state);\n }, [onValidate, state]);\n\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const mediaQuery = window.matchMedia('(max-width: 768px)');\n const updateIsMobile = () => {\n setIsMobile(mediaQuery.matches);\n };\n updateIsMobile();\n mediaQuery.addEventListener ? mediaQuery.addEventListener('change', updateIsMobile) : mediaQuery.addListener(updateIsMobile);\n return () => {\n mediaQuery.removeEventListener ? mediaQuery.removeEventListener('change', updateIsMobile) : mediaQuery.removeListener(updateIsMobile);\n };\n }, []);\n\n const updatePopupMetrics = useCallback(() => {\n if (typeof window === 'undefined' || !triggerRef.current) return;\n const rect = triggerRef.current.getBoundingClientRect();\n const top = Math.max(rect.bottom + MOBILE_POPUP_OFFSET, 0);\n setPopupMetrics({\n top,\n height: Math.max(window.innerHeight - top, 0)\n });\n }, []);\n\n useEffect(() => {\n if (!open || !isMobile) return;\n updatePopupMetrics();\n window.addEventListener('resize', updatePopupMetrics);\n window.addEventListener('scroll', updatePopupMetrics, true);\n return () => {\n window.removeEventListener('resize', updatePopupMetrics);\n window.removeEventListener('scroll', updatePopupMetrics, true);\n };\n }, [isMobile, open, updatePopupMetrics]);\n\n useEffect(() => {\n if (open && isMobile) {\n setRenderMask(true);\n setMaskClosing(false);\n return;\n }\n\n if (!renderMask) return;\n setMaskClosing(true);\n const timer = setTimeout(() => {\n setRenderMask(false);\n setMaskClosing(false);\n }, MASK_ANIMATION_DURATION);\n return () => {\n clearTimeout(timer);\n };\n }, [isMobile, open, renderMask]);\n\n const closeDropdown = useCallback(() => {\n setOpen(false);\n onOpenChange && onOpenChange(false);\n }, [onOpenChange]);\n\n const handleOpenChange = useCallback(\n open => {\n if (open && isMobile) {\n updatePopupMetrics();\n }\n setOpen(open);\n setState(value);\n onOpenChange && onOpenChange(open);\n },\n [isMobile, onOpenChange, updatePopupMetrics, value]\n );\n\n const mobileOverlayStyle = isMobile\n ? {\n '--react-filter-popover-mobile-height': `${popupMetrics.height}px`,\n top: popupMetrics.top,\n left: 0\n }\n : undefined;\n\n const overlayContent = (\n <div\n className={style['pop-util-body']}\n onClick={e => {\n e.stopPropagation();\n }}\n >\n <div className={style['pop-util-content']}>{children({ value: state, onChange: setState })}</div>\n <Row className={style['pop-util-footer']} justify=\"end\" gutter={8}>\n <Col>\n <Button size={isMobile ? undefined : 'small'} onClick={closeDropdown}>\n {formatMessage({ id: 'cancelText' })}\n </Button>\n </Col>\n <Col>\n <Button\n size={isMobile ? undefined : 'small'}\n type=\"primary\"\n disabled={disabled}\n onClick={() => {\n closeDropdown();\n onChange && onChange(state);\n }}\n >\n {formatMessage({ id: 'determineText' })}\n </Button>\n </Col>\n </Row>\n </div>\n );\n\n return (\n <>\n {renderMask &&\n typeof document !== 'undefined' &&\n createPortal(\n <div\n className={classnames(style['pop-util-mask'], maskClosing && style['pop-util-mask-leave'])}\n style={{\n top: popupMetrics.top,\n height: popupMetrics.height\n }}\n onClick={closeDropdown}\n onTouchMove={e => {\n e.preventDefault();\n }}\n />,\n document.body\n )}\n <Dropdown\n open={open}\n trigger={['click']}\n placement={isMobile ? 'bottomLeft' : placement}\n autoAdjustOverflow={!isMobile}\n align={isMobile ? { offset: [0, 0] } : undefined}\n overlayClassName={classnames(style['pop-util-overlay'], overlayClassName)}\n overlayStyle={mobileOverlayStyle}\n onOpenChange={handleOpenChange}\n menu={{ items: [{ key: 'content', label: null }] }}\n dropdownRender={() => overlayContent}\n >\n <span ref={triggerRef}>\n <FilterItem open={open} active={isNotEmpty(value)} label={label} />\n </span>\n </Dropdown>\n </>\n );\n});\n\nexport default PopoverItem;\n","import PopoverItem from '../PopoverItem';\nimport { Input } from 'antd';\nimport get from 'lodash/get';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\n\nconst InputFilterItem = withLocale(({ label, value, onChange, placeholder, onValidate, overlayClassName, placement, onOpenChange, ...props }) => {\n return (\n <PopoverItem label={label} value={value} onChange={onChange} {...{ onValidate, overlayClassName, placement, onOpenChange }}>\n {({ value, onChange }) => (\n <Input\n {...props}\n placeholder={placeholder || `请输入${label}`}\n className={style['filter-item-text']}\n value={get(value, 'value', '')}\n onChange={e => onChange(e.target.value ? { label: e.target.value, value: e.target.value } : null)}\n />\n )}\n </PopoverItem>\n );\n});\n\nexport default InputFilterItem;\n","import PopoverItem from '../PopoverItem';\nimport { Input, InputNumber, Space } from 'antd';\nimport get from 'lodash/get';\nimport isNumber from 'lodash/isNumber';\nimport { useIntl } from '@kne/react-intl';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\n\nconst computedFilterValue = (range, unit, formatMessage) => {\n if (!isNumber(range[0]) && !isNumber(range[1])) {\n return null;\n }\n\n return {\n label: (range => {\n if (isNumber(range[0]) && isNumber(range[1])) {\n return `${range[0]}-${range[1]}${unit || ''}`;\n }\n if (isNumber(range[0])) {\n return formatMessage({ id: 'over' }, { count: range[0], unit });\n }\n if (isNumber(range[1])) {\n return formatMessage({ id: 'lessThan' }, { count: range[1], unit });\n }\n })(range),\n value: [range[0] || null, range[1] || null]\n };\n};\n\nconst defaultPropsOnValidate = value => {\n const range = get(value, 'value');\n return !(range && isNumber(range[0]) && isNumber(range[1]) && range[1] < range[0]);\n};\n\nconst NumberRangeFilterItem = withLocale(({ label, value, onChange, placeholder, onValidate = defaultPropsOnValidate, overlayClassName, placement, onOpenChange, unit, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <PopoverItem label={label} value={value} onChange={onChange} {...{ onValidate, overlayClassName, placement, onOpenChange }}>\n {({ value, onChange }) => (\n <Space.Compact>\n <InputNumber\n {...props}\n placeholder={placeholder || `${formatMessage({ id: 'pleaseInput' })}${label}`}\n className={style['filter-item-number-range']}\n value={get(value, 'value[0]', '')}\n onChange={target => {\n onChange(computedFilterValue([target, get(value, 'value[1]')], unit, formatMessage));\n }}\n />\n <Input\n style={{\n width: 30,\n borderLeft: 0,\n borderRight: 0,\n pointerEvents: 'none'\n }}\n placeholder=\"~\"\n disabled\n />\n <InputNumber\n {...props}\n placeholder={placeholder || `${formatMessage({ id: 'pleaseInput' })}${label}`}\n className={style['filter-item-number-range']}\n value={get(value, 'value[1]', '')}\n onChange={target => {\n onChange(computedFilterValue([get(value, 'value[0]'), target], unit, formatMessage));\n }}\n />\n {unit && (\n <Input\n style={{\n width: 50,\n borderLeft: 0\n }}\n value={unit}\n disabled\n />\n )}\n </Space.Compact>\n )}\n </PopoverItem>\n );\n});\n\nexport default NumberRangeFilterItem;\n","import { DatePicker } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\nimport style from '../style.module.scss';\nimport classnames from 'classnames';\n\nconst DatePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, picker = 'date', ...props }) => {\n return (\n <DatePicker\n {...props}\n inputReadOnly\n picker={picker}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-picker-popup'])\n }\n }}\n value={value && dayjs(value.value)}\n onChange={value => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n value &&\n onChange({\n label: picker !== 'date' ? `${value.startOf(picker).format(format)}~${value.endOf(picker).format(format)}` : value.format(format),\n value: new Date(value.startOf(picker).valueOf())\n });\n }}\n />\n );\n })\n);\n\nexport default DatePickerFilterItem;\n","import { DatePicker, Flex } from 'antd';\nimport withFieldItem from '../withFieldItem';\nimport dayjs from 'dayjs';\nimport style from '../style.module.scss';\nimport withLocale from '../withLocale';\nimport classnames from 'classnames';\n\nconst DateRangePickerFilterItem = withLocale(\n withFieldItem(({ value, onChange, header, ...props }) => {\n return (\n <Flex vertical>\n {typeof header === 'function' ? header({ value, onChange }) : header}\n <DatePicker.RangePicker\n {...props}\n inputReadOnly\n allowEmpty={[false, false]}\n classNames={{\n ...props.classNames,\n popup: {\n ...props.classNames?.popup,\n root: classnames(props.classNames?.popup?.root, style['date-range-picker-popup'])\n }\n }}\n value={value && Array.isArray(value.value) && value.value.length === 2 && value.value.map(item => dayjs(item))}\n onChange={value => {\n const { format } = Object.assign({ format: 'YYYY-MM-DD' }, props);\n onChange({\n label: value.map(item => item.format(format)).join('~'),\n value: value.map(item => new Date(item.valueOf()))\n });\n }}\n />\n </Flex>\n );\n })\n);\n\nexport default DateRangePickerFilterItem;\n","import { DatePicker, Select, Space, Flex } from 'antd';\nimport { useIntl } from '@kne/react-intl';\nimport { useRef, useCallback, useMemo } from 'react';\nimport dayjs from 'dayjs';\nimport classnames from 'classnames';\nimport style from './style.module.scss';\n\nconst TypeDateRangePickerField = ({ value: valueProp, onChange: onChangeProp, defaultValue, shortcuts = true, shortcutOptions, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n const typeList = new Map([\n ['date', formatMessage({ id: 'customTime' })],\n ['month', formatMessage({ id: 'monthly' })],\n ['week', formatMessage({ id: 'weekly' })]\n ]);\n\n const defaultShortcuts = useMemo(\n () => [\n {\n label: formatMessage({ id: 'last7Days' }),\n getValue: () => [dayjs().subtract(7, 'day').startOf('day'), dayjs().endOf('day')]\n },\n {\n label: formatMessage({ id: 'thisMonth' }),\n getValue: () => [dayjs().startOf('month'), dayjs().endOf('month')]\n },\n {\n label: formatMessage({ id: 'last3Months' }),\n getValue: () => [dayjs().subtract(3, 'month').startOf('day'), dayjs().endOf('day')]\n },\n {\n label: formatMessage({ id: 'thisYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('day')]\n },\n {\n label: formatMessage({ id: 'fullYear' }),\n getValue: () => [dayjs().startOf('year'), dayjs().endOf('year')]\n }\n ],\n [formatMessage]\n );\n\n const currentShortcuts = shortcutOptions !== undefined ? shortcutOptions : shortcuts ? defaultShortcuts : null;\n\n const isControlled = valueProp !== undefined;\n const innerValueRef = useRef(defaultValue || { type: 'date', value: null });\n\n const value = isControlled ? valueProp : innerValueRef.current;\n\n const onChange = useCallback(\n newValue => {\n if (!isControlled) {\n innerValueRef.current = typeof newValue === 'function' ? newValue(innerValueRef.current) : newValue;\n }\n onChangeProp?.(typeof newValue === 'function' ? newValue(value) : newValue);\n },\n [isControlled, onChangeProp, value]\n );\n\n const handleShortcutClick = useCallback(\n shortcut => {\n const [start, end] = shortcut.getValue();\n const type = 'date';\n onChange({\n type,\n value: [start.startOf(type).toDate(), end.endOf(type).toDate()]\n });\n },\n [onChange]\n );\n\n const isShortcutActive = useCallback(\n shortcut => {\n if (!value?.value || !Array.isArray(value.value) || value.value.length !== 2) {\n return false;\n }\n const [start, end] = shortcut.getValue();\n const type = value?.type || 'date';\n const valueStart = dayjs(value.value[0]).startOf(type);\n const valueEnd = dayjs(value.value[1]).endOf(type);\n const shortcutStart = start.startOf(type);\n const shortcutEnd = end.endOf(type);\n return valueStart.isSame(shortcutStart, type) && valueEnd.isSame(shortcutEnd, type);\n },\n [value]\n );\n\n const renderShortcuts = useMemo(() => {\n if (!currentShortcuts || currentShortcuts.length === 0) {\n return null;\n }\n return (\n <div className={style['shortcuts-container']}>\n {currentShortcuts.map((shortcut, index) => (\n <span\n key={index}\n className={classnames(style['shortcut-item'], {\n [style['is-active']]: isShortcutActive(shortcut)\n })}\n onClick={() => handleShortcutClick(shortcut)}\n >\n {shortcut.label}\n </span>\n ))}\n </div>\n );\n }, [currentShortcuts, handleShortcutClick, isShortcutActive]);\n\n return (\n <Flex vertical gap={0}>\n <Space.Compact>\n <Select\n style={{ width: '120px' }}\n value={value?.type || 'date'}\n onChange={typeValue => {\n onChange(currentValue => {\n if (!currentValue?.value?.length) {\n return { value: null, type: typeValue || 'date' };\n }\n const startTime = dayjs(currentValue.value[0]);\n const endTime = dayjs(currentValue.value[1]);\n return {\n value: [startTime.isValid() ? startTime.startOf(typeValue || 'date').toDate() : null, endTime.isValid() ? endTime.endOf(typeValue || 'date').toDate() : null],\n type: typeValue || 'date'\n };\n });\n }}\n options={Array.from(typeList).map(([val, label]) => ({\n label,\n value: val\n }))}\n />\n <DatePicker.RangePicker\n {...props}\n picker={value?.type || 'date'}\n value={Array.isArray(value?.value) && value.value.length === 2 ? value.value.map(item => item && dayjs(item)) : null}\n onChange={dateValue => {\n onChange(currentValue => {\n return Object.assign({ type: 'date' }, currentValue, {\n value: dateValue && dateValue[0] && dateValue[1] ? [dateValue[0].startOf(currentValue?.type || 'date').toDate(), dateValue[1].endOf(currentValue?.type || 'date').toDate()] : null\n });\n });\n }}\n />\n </Space.Compact>\n {renderShortcuts}\n </Flex>\n );\n};\n\nexport default TypeDateRangePickerField;\n","import PopoverItem from '../PopoverItem';\nimport TypeDateRangePickerField from '../common/TypeDateRangePickerField';\nimport get from 'lodash/get';\nimport style from '../style.module.scss';\nimport dayjs from 'dayjs';\nimport withLocale from '../withLocale';\n\nconst TypeDateRangePickerFilterItem = withLocale(({ label, value, onChange, ...props }) => {\n return (\n <PopoverItem\n label={label}\n value={value}\n onChange={onChange}\n onValidate={item => {\n const itemValue = item?.value;\n return itemValue?.type && Array.isArray(itemValue?.value) && itemValue.value.length === 2;\n }}\n >\n {({ value, onChange }) => (\n <TypeDateRangePickerField\n {...props}\n inputReadOnly\n className={style['filter-item-text']}\n value={get(value, 'value')}\n onChange={pickerValue => {\n const { format = 'YYYY-MM-DD' } = props;\n const val = pickerValue?.value || [];\n let displayLabel = '';\n if (val[0] && !val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}以后`;\n } else if (!val[0] && val[1]) {\n displayLabel = `${dayjs(val[1]).format(format)}以前`;\n } else if (val[0] && val[1]) {\n displayLabel = `${dayjs(val[0]).format(format)}~${dayjs(val[1]).format(format)}`;\n }\n onChange({\n label: displayLabel,\n value: pickerValue\n });\n }}\n />\n )}\n </PopoverItem>\n );\n});\n\nexport default TypeDateRangePickerFilterItem;\n","import { useIntl } from '@kne/react-intl';\nimport withFieldItem from '../withFieldItem';\nimport InputFilterItemField from './InputFilterItem';\nimport NumberRangeFilterItemField from './NumberRangeFilterItem';\nimport withLocale from '../withLocale';\nimport SuperSelect, { SelectCascader, SelectTableList, SelectTree } from '@kne/super-select';\nimport { SelectAddress, SelectFunction, SelectIndustry } from '@kne/super-select-plus';\nimport '@kne/super-select/dist/index.css';\nimport '@kne/super-select-plus/dist/index.css';\n\nconst withInputDefaultPlaceholder = WrappedComponent =>\n withLocale(({ placeholder, label, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return <WrappedComponent {...props} label={label} placeholder={placeholder || formatMessage({ id: 'defaultInputPlaceholder' }, { label })} />;\n });\n\nexport const InputFilterItem = withInputDefaultPlaceholder(InputFilterItemField);\nexport const NumberRangeFilterItem = withInputDefaultPlaceholder(NumberRangeFilterItemField);\n\nexport { default as DatePickerFilterItem } from './DatePickerFilterItem';\nexport { default as DateRangePickerFilterItem } from './DateRangePickerFilterItem';\nexport { default as TypeDateRangePickerFilterItem } from './TypeDateRangePickerFilterItem';\n\nexport const SuperSelectFilterItem = withFieldItem(SuperSelect, { forcePopup: true });\nexport const SelectTableListFilterItem = withFieldItem(SelectTableList, { forcePopup: true });\nexport const SelectTreeFilterItem = withFieldItem(SelectTree, { forcePopup: true });\nexport const SelectCascaderFilterItem = withFieldItem(SelectCascader, { forcePopup: true });\nexport const SelectFunctionFilterItem = withFieldItem(SelectFunction, { forcePopup: true });\nexport const SelectIndustryFilterItem = withFieldItem(SelectIndustry, { forcePopup: true });\nexport const SelectAddressFilterItem = withFieldItem(SelectAddress, { forcePopup: true });\n","import transform from 'lodash/transform';\n\nconst getFilterValue = filterValue => {\n return transform(\n filterValue,\n (result, { name, value }) => {\n result[name] = Array.isArray(value) ? value.map(({ value }) => value) : value?.value;\n },\n {}\n );\n};\n\nexport default getFilterValue;\n","import { useContext } from './context';\nimport get from 'lodash/get';\n\nconst withFilterValue = WrappedComponent => {\n return ({ name, label, ...props }) => {\n const { value, onChange } = useContext();\n return (\n <WrappedComponent\n {...props}\n label={label}\n onChange={\n onChange\n ? value =>\n onChange({\n name,\n label,\n value\n })\n : props.onChange\n }\n value={value ? get(value.get(name), 'value') : props.value}\n />\n );\n };\n};\n\nexport default withFilterValue;\n","import { Input } from 'antd';\nimport withFilterValue from './withFilterValue';\nimport { useIntl } from '@kne/react-intl';\nimport { useEffect, useRef, useState } from 'react';\nimport withLocale from './withLocale';\n\nconst { Search } = Input;\n\nconst SearchInput = withLocale(\n withFilterValue(({ label, onChange, value, placeholder, searchDelay = 500, ...props }) => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const propsValue = value?.value;\n const [inputValue, setInputValue] = useState(propsValue || '');\n const inputValueRef = useRef('');\n const onChangeRef = useRef(onChange);\n const searchTimerRef = useRef(null);\n const isComposingRef = useRef(false);\n inputValueRef.current = inputValue;\n onChangeRef.current = onChange;\n\n const clearSearchTimer = () => {\n if (searchTimerRef.current) {\n clearTimeout(searchTimerRef.current);\n searchTimerRef.current = null;\n }\n };\n\n const submitSearch = searchValue => {\n onChangeRef.current?.(searchValue ? { label: searchValue, value: searchValue } : null);\n };\n\n const scheduleSearch = searchValue => {\n clearSearchTimer();\n searchTimerRef.current = setTimeout(() => {\n searchTimerRef.current = null;\n submitSearch(searchValue);\n }, searchDelay);\n };\n\n useEffect(() => {\n if (propsValue !== inputValueRef.current) {\n clearSearchTimer();\n setInputValue(propsValue || '');\n }\n }, [propsValue]);\n\n useEffect(() => {\n return () => {\n clearSearchTimer();\n };\n }, []);\n\n return (\n <Search\n {...props}\n placeholder={placeholder || formatMessage({ id: 'inputPlaceholder' }, { label })}\n value={inputValue}\n onChange={e => {\n const nextValue = e.target.value;\n setInputValue(nextValue);\n if (!isComposingRef.current) {\n scheduleSearch(nextValue);\n }\n }}\n onCompositionStart={() => {\n isComposingRef.current = true;\n clearSearchTimer();\n }}\n onCompositionEnd={e => {\n isComposingRef.current = false;\n const nextValue = e.target.value;\n setInputValue(nextValue);\n scheduleSearch(nextValue);\n }}\n onSearch={searchValue => {\n clearSearchTimer();\n submitSearch(searchValue);\n }}\n />\n );\n })\n);\n\nexport default SearchInput;\n","/**\n * 从筛选值中提取原始值数组。\n * 支持:原始值、{ value } 对象、{ id } 对象、以及它们的数组。\n *\n * @example\n * pickSelectValues([{ value: 1 }, { id: 2 }, '3'])\n * // => ['1', '2', '3']\n *\n * pickSelectValues({ value: 'open' })\n * // => ['open']\n *\n * pickSelectValues(null)\n * // => []\n */\nconst pickSelectValues = value => {\n if (value == null || value === '') {\n return [];\n }\n const list = Array.isArray(value) ? value : [value];\n return list\n .map(item => {\n if (item == null) {\n return null;\n }\n if (typeof item !== 'object') {\n return String(item);\n }\n if (item.value != null && item.value !== '') {\n return String(item.value);\n }\n if (item.id != null && item.id !== '') {\n return String(item.id);\n }\n return null;\n })\n .filter(Boolean);\n};\n\nexport default pickSelectValues;\n","import pickSelectValues from './pickSelectValues';\n\n/**\n * 声明式创建 mapFilterValue 函数。\n *\n * Filter.getFilterValue 默认只读取 { value },而 SuperSelectFilterItem 等\n * 组件使用 { id, name } 格式,需要额外处理。此工具通过声明字段映射规则,\n * 自动生成符合 (filter, getFilterValue) => value 签名的函数。\n *\n * @param {Object} fieldMappers - 字段名到映射规则的映射\n * @param {'string'} fieldMappers[field] - 确保值为字符串类型\n * @param {'multi'} fieldMappers[field] - 多选,从 filter entry 提取值数组\n * @param {'single'} fieldMappers[field] - 单选,从 filter entry 提取第一个值\n * @param {Function} fieldMappers[field] - 自定义转换,接收 (rawValue, { entry, filter, value }) 返回新值\n *\n * @example\n * const mapFilterValue = createFilterValueMapper({\n * id: 'string',\n * roles: 'multi',\n * tenantOrgId: 'single',\n * status: (rawValue) => normalizeStatus(rawValue)\n * });\n *\n * // 使用方式与手写 mapFilterValue 一致\n * const filterValue = mapFilterValue(filter, Filter.getFilterValue);\n *\n * // 也可直接传给 BizUnit 的 options.mapFilterValue\n * <BizUnit options={{ mapFilterValue }} />\n */\nconst createFilterValueMapper = fieldMappers => {\n return (filter, getFilterValue) => {\n const value = getFilterValue(filter);\n\n Object.entries(fieldMappers).forEach(([fieldName, mapper]) => {\n const entry = filter.find(item => item.name === fieldName);\n\n if (mapper === 'string') {\n if (value[fieldName] != null && value[fieldName] !== '') {\n value[fieldName] = String(value[fieldName]);\n }\n } else if (mapper === 'multi') {\n if (entry) {\n const values = pickSelectValues(entry.value);\n if (values.length) {\n value[fieldName] = values;\n } else {\n delete value[fieldName];\n }\n }\n } else if (mapper === 'single') {\n if (entry) {\n const values = pickSelectValues(entry.value);\n if (values[0] != null) {\n value[fieldName] = values[0];\n } else {\n delete value[fieldName];\n }\n } else if (value[fieldName] != null && typeof value[fieldName] === 'object') {\n const values = pickSelectValues(value[fieldName]);\n if (values.length) {\n value[fieldName] = values[0];\n } else {\n delete value[fieldName];\n }\n }\n } else if (typeof mapper === 'function') {\n let rawValue = value[fieldName];\n if (rawValue != null && typeof rawValue === 'object' && 'value' in rawValue) {\n rawValue = rawValue.value;\n }\n if (rawValue != null && rawValue !== '') {\n const result = mapper(rawValue, { entry, filter, value });\n if (result != null && result !== '') {\n value[fieldName] = result;\n } else {\n delete value[fieldName];\n }\n }\n }\n });\n\n return value;\n };\n};\n\nexport default createFilterValueMapper;\n","import { useState, useRef, useEffect } from 'react';\nimport { useSearchParams } from 'react-router-dom';\n\n/**\n * 创建 URL 参数读取器,自动追踪已消费的参数 key。\n *\n * @param {URLSearchParams} searchParams - React Router 的 searchParams 对象\n * @returns {{ take: (key: string) => string|null, getConsumedKeys: () => string[] }}\n *\n * @example\n * const { take, getConsumedKeys } = createUrlParamsReader(searchParams);\n * const orgId = take('tenantOrgId');\n * const orgName = take('orgName');\n * // getConsumedKeys() => ['tenantOrgId', 'orgName']\n */\nexport const createUrlParamsReader = searchParams => {\n const consumedKeys = [];\n const take = key => {\n if (!searchParams.has(key)) return null;\n consumedKeys.push(key);\n return searchParams.get(key);\n };\n const getConsumedKeys = () => consumedKeys;\n return { take, getConsumedKeys };\n};\n\n/**\n * 从 URL 参数中移除已消费的 key,返回新的 URLSearchParams 或 null(无变化时)。\n *\n * @param {URLSearchParams} searchParams - 当前 URL 参数\n * @param {string[]} consumedKeys - 需要移除的 key 列表\n * @returns {URLSearchParams|null}\n */\nexport const stripConsumedUrlParams = (searchParams, consumedKeys) => {\n if (!consumedKeys?.length) return null;\n const next = new URLSearchParams(searchParams);\n let changed = false;\n consumedKeys.forEach(key => {\n if (next.has(key)) {\n next.delete(key);\n changed = true;\n }\n });\n return changed ? next : null;\n};\n\n/**\n * 从 URL 参数初始化 Filter 状态的 hook。\n *\n * 读取 URL 参数构建初始筛选值,并在挂载后自动清除已消费的 URL 参数。\n *\n * @param {Object} options\n * @param {Function} options.readUrlParams - 读取 URL 参数并返回 { consumedKeys: string[], ...data }\n * @param {Function} options.buildFilter - 接收 readUrlParams 的返回值,构建初始 filter 数组\n * @returns {[Array, Function]} - [filter, setFilter]\n *\n * @example\n * const [filter, setFilter] = useUrlFilter({\n * readUrlParams: (searchParams) => {\n * const { take, getConsumedKeys } = createUrlParamsReader(searchParams);\n * const orgId = take('tenantOrgId');\n * return { consumedKeys: getConsumedKeys(), orgId };\n * },\n * buildFilter: ({ orgId }) => [\n * { name: 'status', value: { label: '开启', value: 'open' } },\n * ...(orgId ? [{ name: 'tenantOrgId', value: { label: orgId, value: orgId } }] : [])\n * ]\n * });\n */\nconst useUrlFilter = ({ readUrlParams, buildFilter }) => {\n const [searchParams, setSearchParams] = useSearchParams();\n const urlFilterSnapshotRef = useRef(null);\n\n if (urlFilterSnapshotRef.current === null) {\n urlFilterSnapshotRef.current = readUrlParams(searchParams);\n }\n\n const [filter, setFilter] = useState(() => buildFilter(urlFilterSnapshotRef.current));\n\n const urlStrippedRef = useRef(false);\n useEffect(() => {\n if (urlStrippedRef.current) return;\n urlStrippedRef.current = true;\n const nextParams = stripConsumedUrlParams(searchParams, urlFilterSnapshotRef.current?.consumedKeys);\n if (nextParams) {\n setSearchParams(nextParams, { replace: true });\n }\n }, [searchParams, setSearchParams]);\n\n return [filter, setFilter];\n};\n\nexport default useUrlFilter;\n","/**\n * 将筛选值数组序列化为 URLSearchParams,保留 label 信息以便反序列化还原完整筛选状态。\n *\n * 序列化格式(使用冒号分隔 label 和 value,逗号分隔多值):\n * - 单值且 label === value:prefix[name]=value(如输入框)\n * - 单值且 label !== value:prefix[name]=label:value\n * - 多值:prefix[name]=label1:value1,label2:value2\n *\n * @param {Array} filterValue - 筛选值数组,格式为 [{ name, label, value }, ...]\n * @param {Object} [options] - 选项\n * @param {string} [options.prefix='filterParams'] - URL 参数前缀,设为空字符串则不加前缀\n * @returns {URLSearchParams}\n *\n * @example\n * const params = filterToUrlParams([\n * { name: 'keyword', label: '关键词', value: { label: '测试', value: '测试' } },\n * { name: 'city', label: '城市', value: [{ label: '上海', value: '010' }, { label: '北京', value: '020' }] },\n * { name: 'status', label: '状态', value: { label: '启用', value: 'active' } },\n * ]);\n * // params.toString() => 'filterParams[keyword]=测试&filterParams[city]=上海:010,北京:020&filterParams[status]=启用:active'\n *\n * // 自定义前缀\n * filterToUrlParams(filterValue, { prefix: 'f' })\n * // => 'f[keyword]=测试&f[city]=上海:010,北京:020'\n *\n * // 无前缀(直接平铺)\n * filterToUrlParams(filterValue, { prefix: '' })\n * // => 'keyword=测试&city=上海:010,北京:020'\n */\nconst filterToUrlParams = (filterValue, { prefix = 'filterParams' } = {}) => {\n const params = new URLSearchParams();\n\n if (!Array.isArray(filterValue)) return params;\n\n filterValue.forEach(({ name, value }) => {\n if (value == null || value === '') return;\n\n const key = prefix ? `${prefix}[${name}]` : name;\n\n if (Array.isArray(value)) {\n if (value.length === 0) return;\n const serialized = value\n .map(item => serializeEntry(item))\n .filter(Boolean)\n .join(',');\n if (serialized) params.set(key, serialized);\n } else {\n const serialized = serializeEntry(value);\n if (serialized) params.set(key, serialized);\n }\n });\n\n return params;\n};\n\n/**\n * 序列化单个筛选值项。\n * - label === value 时返回 value(简化格式)\n * - 否则返回 label:value\n */\nconst serializeEntry = item => {\n if (item == null) return null;\n if (typeof item !== 'object') return String(item);\n\n const label = item.label ?? item.name;\n const value = item.value ?? item.id;\n\n if (value == null || value === '') return null;\n if (label === value) return String(value);\n return `${label}:${value}`;\n};\n\n/**\n * 解析 URL 参数中的单个筛选值项,反序列化为 { label, value } 对象。\n * 与 filterToUrlParams 配合使用。\n *\n * 解析规则:\n * - 无冒号:label 和 value 相同,如 \"测试\" → { label: '测试', value: '测试' }\n * - 有冒号:冒号前为 label,冒号后为 value,如 \"启用:active\" → { label: '启用', value: 'active' }\n *\n * @param {string} str - URL 参数中的原始字符串\n * @returns {{ label: string, value: string }}\n *\n * @example\n * parseFilterEntry('测试')\n * // => { label: '测试', value: '测试' }\n *\n * parseFilterEntry('启用:active')\n * // => { label: '启用', value: 'active' }\n */\nconst parseFilterEntry = str => {\n const colonIndex = str.indexOf(':');\n if (colonIndex === -1) {\n return { label: str, value: str };\n }\n return {\n label: str.slice(0, colonIndex),\n value: str.slice(colonIndex + 1)\n };\n};\n\n/**\n * 从 URL 参数中读取筛选值项,返回单选 { label, value } 或多选数组。\n *\n * @param {URLSearchParams} searchParams - URL 参数对象\n * @param {string} key - 参数名(不含前缀)\n * @param {Object} [options] - 选项\n * @param {boolean} [options.multi=false] - 是否多选,多选返回数组\n * @param {string} [options.prefix='filterParams'] - URL 参数前缀,设为空字符串则不加前缀\n * @returns {{ label: string, value: string } | { label: string, value: string }[] | null}\n *\n * @example\n * // URL: ?filterParams[city]=上海:010,北京:020&filterParams[status]=启用:active\n * takeFilterEntry(searchParams, 'city', { multi: true })\n * // => [{ label: '上海', value: '010' }, { label: '北京', value: '020' }]\n *\n * // 无前缀\n * takeFilterEntry(searchParams, 'keyword', { prefix: '' })\n * // => { label: '测试', value: '测试' }\n */\nconst takeFilterEntry = (searchParams, key, { multi = false, prefix = 'filterParams' } = {}) => {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n if (!searchParams.has(fullKey)) return null;\n\n const raw = searchParams.get(fullKey);\n if (!raw) return null;\n\n if (multi) {\n return raw.split(',').map(parseFilterEntry);\n }\n\n // 单选时,如果包含逗号,只取第一个\n const firstEntry = raw.includes(',') ? raw.split(',')[0] : raw;\n return parseFilterEntry(firstEntry);\n};\n\n/**\n * 创建 URL 筛选参数读取器,自动追踪已消费的参数 key。\n * 配合 useUrlFilter 使用,readUrlParams 返回的 consumedKeys 可被自动清除。\n *\n * @param {URLSearchParams} searchParams - React Router 的 searchParams 对象\n * @param {Object} [options] - 选项\n * @param {string} [options.prefix='filterParams'] - URL 参数前缀\n * @returns {{ takeFilterEntry, getConsumedKeys }}\n *\n * @example\n * const { takeFilterEntry, getConsumedKeys } = createUrlFilterReader(searchParams);\n * const keyword = takeFilterEntry('keyword');\n * const city = takeFilterEntry('city', { multi: true });\n * const status = takeFilterEntry('status');\n * // getConsumedKeys() => ['filterParams[keyword]', 'filterParams[city]', 'filterParams[status]']\n *\n * // 配合 useUrlFilter 使用\n * const [filter, setFilter] = useUrlFilter({\n * readUrlParams: (searchParams) => {\n * const { takeFilterEntry, getConsumedKeys } = createUrlFilterReader(searchParams);\n * const keyword = takeFilterEntry('keyword');\n * const city = takeFilterEntry('city', { multi: true });\n * return { consumedKeys: getConsumedKeys(), keyword, city };\n * },\n * buildFilter: ({ keyword, city }) => [\n * ...(keyword ? [{ name: 'keyword', label: '关键词', value: keyword }] : []),\n * ...(city ? [{ name: 'city', label: '城市', value: city }] : []),\n * ],\n * });\n */\nconst createUrlFilterReader = (searchParams, { prefix = 'filterParams' } = {}) => {\n const consumedKeys = [];\n\n const takeFilterEntry = (key, { multi = false } = {}) => {\n const fullKey = prefix ? `${prefix}[${key}]` : key;\n if (!searchParams.has(fullKey)) return null;\n\n consumedKeys.push(fullKey);\n const raw = searchParams.get(fullKey);\n if (!raw) return null;\n\n if (multi) {\n return raw.split(',').map(parseFilterEntry);\n }\n\n const firstEntry = raw.includes(',') ? raw.split(',')[0] : raw;\n return parseFilterEntry(firstEntry);\n };\n\n const getConsumedKeys = () => consumedKeys;\n\n return { takeFilterEntry, getConsumedKeys };\n};\n\nexport default filterToUrlParams;\nexport { parseFilterEntry, takeFilterEntry, createUrlFilterReader };\n","import useUrlFilter from './useUrlFilter';\nimport { createUrlFilterReader } from './filterToUrlParams';\n\n/**\n * 从 URL 参数初始化 Filter 状态的 hook(简化版)。\n *\n * 基于 useUrlFilter 封装,使用 createUrlFilterReader 解析 filterParams[key] 格式的 URL 参数,\n * 自动解析 label:value 格式,支持单选和多选。\n *\n * @param {string[]|Object} mapping - URL 参数映射\n * - 数组: ['tenantOrgId', 'orgName'],默认单选,自动创建 { name: key, value: { label, value } }\n * - 对象:\n * - 值为 true: 单选,使用默认转换 { name: key, value: { label, value } }\n * - 值为 { multi: true }: 多选,value 为 [{ label, value }, ...] 数组\n * - 值为函数: 自定义转换,接收解析后的值(单选为 { label, value },多选为数组),返回 filter 项或 null/falsy 跳过\n * @returns {[Array, Function]} - [filter, setFilter]\n *\n * @example\n * // 数组形式(默认单选)\n * const [filter, setFilter] = useUrlFilterValue(['keyword', 'status']);\n * // URL: ?filterParams[keyword]=前端开发&filterParams[status]=招聘中:active\n * // → filter: [\n * // { name: 'keyword', value: { label: '前端开发', value: '前端开发' } },\n * // { name: 'status', value: { label: '招聘中', value: 'active' } }\n * // ]\n *\n * @example\n * // 对象形式(多选 + 自定义)\n * const [filter, setFilter] = useUrlFilterValue({\n * keyword: true,\n * city: { multi: true },\n * status: (parsed) => parsed ? { name: 'status', value: parsed } : null\n * });\n * // URL: ?filterParams[keyword]=测试&filterParams[city]=上海:010,北京:020\n * // → keyword: { label: '测试', value: '测试' }\n * // → city: [{ label: '上海', value: '010' }, { label: '北京', value: '020' }]\n */\nconst useUrlFilterValue = mapping => {\n const normalizedMapping = Array.isArray(mapping)\n ? mapping.reduce((acc, item) => {\n const key = typeof item === 'string' ? item : item.name;\n acc[key] = typeof item === 'string' ? true : item;\n return acc;\n }, {})\n : mapping;\n\n return useUrlFilter({\n readUrlParams: searchParams => {\n const { takeFilterEntry, getConsumedKeys } = createUrlFilterReader(searchParams);\n const data = {};\n Object.entries(normalizedMapping).forEach(([key, config]) => {\n const multi = typeof config === 'object' && config !== null && config.multi;\n const val = takeFilterEntry(key, { multi });\n if (val !== null) data[key] = val;\n });\n return { consumedKeys: getConsumedKeys(), ...data };\n },\n buildFilter: data => {\n const { consumedKeys, ...values } = data;\n const filters = [];\n Object.entries(normalizedMapping).forEach(([key, config]) => {\n if (values[key] === undefined) return;\n const parsedValue = values[key];\n if (typeof config === 'function') {\n const result = config(parsedValue);\n if (result) filters.push(result);\n } else {\n const label = typeof config === 'object' && config !== null ? config.label : key;\n filters.push({ name: key, label, value: parsedValue });\n }\n });\n return filters;\n }\n });\n};\n\nexport default useUrlFilterValue;\n","const toIdName = item => {\n if (!item) {\n return null;\n }\n if (item.id != null) {\n return item;\n }\n if (item.value != null) {\n return { id: item.value, name: item.label };\n }\n return item;\n};\n\nconst toLabelValue = item => {\n if (!item) {\n return null;\n }\n return {\n label: item.name ?? item.label,\n value: item.id ?? item.value\n };\n};\n\n/**\n * 单选 SuperSelect interceptor:{id, name} ↔ {label, value}\n * 适用于 valueKey=\"id\" labelKey=\"name\" 的单选场景\n */\nexport const singleSelectInterceptor = {\n input: value => {\n if (!value) {\n return value;\n }\n const item = Array.isArray(value) ? value[0] : value;\n const result = toIdName(item);\n return result;\n },\n output: selected => {\n if (!selected) {\n return selected;\n }\n const item = Array.isArray(selected) ? selected[0] : selected;\n return toLabelValue(item);\n }\n};\n\n/**\n * 多选 SuperSelect interceptor:[{id, name}] ↔ [{label, value}]\n * 适用于 valueKey=\"id\" labelKey=\"name\" 的多选场景\n */\nexport const multiSelectInterceptor = {\n input: value => {\n if (!value) {\n return value;\n }\n const list = Array.isArray(value) ? value : [value];\n return list.map(toIdName).filter(Boolean);\n },\n output: selected => {\n if (!selected) {\n return selected;\n }\n const list = Array.isArray(selected) ? selected : [selected];\n return list.map(toLabelValue).filter(Boolean);\n }\n};\n\nexport default { single: singleSelectInterceptor, multi: multiSelectInterceptor };\n","import { Input, Space, Button } from 'antd';\nimport { useState, useEffect, useRef } from 'react';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../../withLocale';\n\nconst InputFilterItem = withLocale(({ value, label, onChange, ...props }) => {\n const propsValue = value?.value;\n const [inputValue, setInputValue] = useState(propsValue || '');\n const [active, setActive] = useState(false);\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n const searchHandler = () => {\n onChange(inputValue ? { label: inputValue, value: inputValue } : null);\n };\n\n const handleBlur = () => {\n setActive(false);\n searchHandler();\n };\n\n const inputValueRef = useRef('');\n inputValueRef.current = inputValue;\n\n useEffect(() => {\n if (propsValue !== inputValueRef.current) {\n setInputValue(propsValue);\n }\n }, [propsValue]);\n\n return (\n <Space.Compact>\n <Input\n placeholder={`${formatMessage({ id: 'pleaseInput' })}${label}`}\n {...props}\n size=\"small\"\n value={inputValue}\n onFocus={() => {\n setActive(true);\n }}\n onBlur={handleBlur}\n onChange={e => {\n setInputValue(e.target.value);\n }}\n onPressEnter={searchHandler}\n />\n {active && (\n <Button size=\"small\" type=\"primary\" onClick={searchHandler}>\n {formatMessage({ id: 'determineText' })}\n </Button>\n )}\n </Space.Compact>\n );\n});\n\nexport default InputFilterItem;\n","import { Tag, App, Space } from 'antd';\nimport isEqual from 'lodash/isEqual';\nimport { useIntl } from '@kne/react-intl';\nimport withLocale from '../../withLocale';\n\nconst { CheckableTag } = Tag;\n\nconst ListFilterItem = withLocale(({ value, onChange, label, single = false, maxLength = 5, items = [] }) => {\n const { message } = App.useApp();\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n\n return (\n <Space size={4} wrap block>\n {items.map(({ label: itemLabel, value: itemValue }) => {\n return (\n <CheckableTag\n key={itemLabel}\n size=\"small\"\n checked={single ? isEqual(itemValue, value?.value) : !!(value || []).find(({ value }) => isEqual(itemValue, value))}\n onChange={checked => {\n if (single) {\n onChange(checked ? { value: itemValue, label: itemLabel } : null);\n return;\n }\n const newValue = (value || []).slice(0);\n if (checked) {\n newValue.push({ value: itemValue, label: itemLabel });\n } else {\n const index = newValue.findIndex(({ value }) => isEqual(itemValue, value));\n if (index > -1) {\n newValue.splice(index, 1);\n }\n }\n if (newValue.length > maxLength) {\n message.error(formatMessage({ id: 'maxSelectedCount' }, { count: maxLength }));\n return;\n }\n onChange(newValue);\n }}\n >\n {itemLabel}\n </CheckableTag>\n );\n })}\n </Space>\n );\n});\n\nexport default ListFilterItem;\n","import { App, Tag, Space } from 'antd';\nimport { SelectAddress, createAddressApi } from '@kne/super-select-plus';\nimport '@kne/super-select-plus/dist/index.css';\nimport { useIntl } from '@kne/react-intl';\nimport { useMemo, useState, useEffect } from 'react';\nimport withLocale from '../../withLocale';\nimport style from '../../style.module.scss';\n\nconst { CheckableTag } = Tag;\n\nconst getLabelForLocal = (item, locale) => {\n if (locale === 'en-US') {\n return item?.enName || item?.name;\n }\n return item?.name;\n};\n\nconst CityFilterItemInner = ({ value, onChange, single = false, maxLength = 5, ...props }) => {\n const { message } = App.useApp();\n const { locale } = useIntl();\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n const [addressApi, setAddressApi] = useState(null);\n\n useEffect(() => {\n let cancelled = false;\n SelectAddress.defaultData().then(data => {\n if (!cancelled && data) {\n setAddressApi(createAddressApi(data));\n }\n });\n return () => {\n cancelled = true;\n };\n }, []);\n\n const cityList = useMemo(() => {\n return addressApi ? addressApi.getChinaHotCities() : [];\n }, [addressApi]);\n\n return (\n <Space size={4} wrap block>\n {cityList.map(city => {\n const label = getLabelForLocal(city, locale);\n return (\n <CheckableTag\n key={city.code}\n size=\"small\"\n checked={single ? value?.value === city.code : !!(value || []).find(({ value }) => value === city.code)}\n onChange={checked => {\n if (single) {\n onChange(checked ? city : null);\n return;\n }\n const newValue = (value || []).slice(0);\n checked\n ? newValue.push(Object.assign({}, city, { label, value: city.code }))\n : (() => {\n const index = newValue.findIndex(({ value }) => value === city.code);\n newValue.splice(index, 1);\n })();\n if (newValue.length > maxLength) {\n message.error(formatMessage({ id: 'maxSelectedCount' }, { count: maxLength }));\n return;\n }\n onChange(newValue);\n }}\n >\n {label}\n </CheckableTag>\n );\n })}\n <CheckableTag\n className={style['filter-advanced-item-other']}\n size=\"small\"\n checked={(single ? value?.value : value?.length > 0) && !cityList.find(({ code }) => (single ? value?.value === code : !!(value || []).find(({ value }) => value === code)))}\n >\n {formatMessage({ id: 'otherText' })}\n <SelectAddress\n {...props}\n className={style['filter-advanced-item-other-inner']}\n maxLength={maxLength}\n allowClear={false}\n value={value}\n single={single}\n onChange={value => {\n if (value.length > maxLength) {\n message.error(formatMessage({ id: 'maxSelectedCount' }, { count: maxLength }));\n return;\n }\n onChange(value);\n }}\n />\n </CheckableTag>\n </Space>\n );\n};\n\nconst CityFilterItem = withLocale(CityFilterItemInner);\n\nexport default CityFilterItem;\n","import InputFilterItem from './InputFilterItem';\nimport ListFilterItem from './ListFilterItem';\nimport CityFilterItem from './CityFilterItem';\n\nconst fields = { InputFilterItem, ListFilterItem, CityFilterItem };\n\nexport default fields;\n","import FilterOuter from '../FilterOuter';\nimport FilterLines from '../FilterLines';\nimport { Flex } from 'antd';\nimport advancedFields from './fields';\nimport { useIntl } from '@kne/react-intl';\nimport { useContext } from '../context';\nimport style from '../style.module.scss';\nimport FilterValueDisplay from '../FilterValueDisplay';\nimport withLocale from '../withLocale';\nimport get from 'lodash/get';\n\nconst Line = ({ list }) => {\n const { value, onChange } = useContext();\n return (\n <Flex gap={8}>\n {list.map((item, index) => {\n const ComponentItem = item.type;\n return (\n <Flex gap={16} key={item.key || item.props.name || index} align=\"center\">\n <div className={style['filter-label']}>{item.props.label}:</div>\n <Flex wrap={true} align=\"center\">\n <ComponentItem\n {...item.props}\n value={value ? get(value.get(item.props.name), 'value') : item.props.value}\n onChange={\n onChange\n ? value =>\n onChange({\n name: item.props.name,\n label: item.props.label,\n value\n })\n : item.props.onChange\n }\n />\n </Flex>\n </Flex>\n );\n })}\n </Flex>\n );\n};\n\nconst AdvancedFilter = withLocale(props => {\n const { formatMessage } = useIntl({ moduleName: 'Filter' });\n return (\n <FilterOuter {...props}>\n {({ value, onChange, props: filterProps = {} }) => {\n const { list, more } = filterProps;\n return (\n <div>\n <Flex gap={8} vertical className={style['filter-advanced']}>\n {list &&\n list.map((item, index) => {\n return <Line key={index} list={item} />;\n })}\n {more && <FilterLines className={style['filter-advanced-more']} label={`${formatMessage({ id: 'moreText' })}:`} list={[more]} />}\n </Flex>\n {value && value.length > 0 && <FilterValueDisplay value={value} onChange={onChange} />}\n </div>\n );\n }}\n </FilterOuter>\n );\n});\n\nAdvancedFilter.fields = advancedFields;\nexport default AdvancedFilter;\n\nexport { advancedFields };\n","const FilterItemContainer = ({ children, ...props }) => {\n return children(props);\n};\n\nexport default FilterItemContainer;\n","import Filter from './Filter';\nimport * as fields from './fields';\nimport getFilterValue from './getFilterValue';\nimport { useContext as useFilter } from './context';\nimport withFilterValue from './withFilterValue';\nimport SearchInput from './SearchInput';\nimport FilterProvider from './FilterProvider';\nimport pickSelectValues from './pickSelectValues';\nimport createFilterValueMapper from './createFilterValueMapper';\nimport useUrlFilter, { createUrlParamsReader, stripConsumedUrlParams } from './useUrlFilter';\nimport useUrlFilterValue from './useUrlFilterValue';\nimport filterToUrlParams, { parseFilterEntry, takeFilterEntry, createUrlFilterReader } from './filterToUrlParams';\nimport filterInterceptors, { singleSelectInterceptor, multiSelectInterceptor } from './filterInterceptors';\n\nFilter.fields = fields;\nFilter.getFilterValue = getFilterValue;\nFilter.useFilter = useFilter;\nFilter.SearchInput = SearchInput;\nFilter.withFilterValue = withFilterValue;\nFilter.FilterProvider = FilterProvider;\n\nFilter.pickSelectValues = pickSelectValues;\nFilter.createFilterValueMapper = createFilterValueMapper;\nFilter.useUrlFilter = useUrlFilter;\nFilter.useUrlFilterValue = useUrlFilterValue;\nFilter.createUrlParamsReader = createUrlParamsReader;\nFilter.stripConsumedUrlParams = stripConsumedUrlParams;\nFilter.filterToUrlParams = filterToUrlParams;\nFilter.parseFilterEntry = parseFilterEntry;\nFilter.takeFilterEntry = takeFilterEntry;\nFilter.createUrlFilterReader = createUrlFilterReader;\nFilter.filterInterceptors = filterInterceptors;\nFilter.singleSelectInterceptor = singleSelectInterceptor;\nFilter.multiSelectInterceptor = multiSelectInterceptor;\n\nexport default Filter;\nexport {\n fields,\n getFilterValue,\n useFilter,\n withFilterValue,\n SearchInput,\n FilterProvider,\n pickSelectValues,\n createFilterValueMapper,\n useUrlFilter,\n useUrlFilterValue,\n createUrlParamsReader,\n stripConsumedUrlParams,\n filterToUrlParams,\n parseFilterEntry,\n takeFilterEntry,\n createUrlFilterReader,\n filterInterceptors,\n singleSelectInterceptor,\n multiSelectInterceptor\n};\nexport { default as AdvancedFilter } from './AdvancedFilter';\nexport { default as FilterValueDisplay } from './FilterValueDisplay';\nexport { default as FilterItem } from './FilterItem';\nexport { default as FilterLines } from './FilterLines';\nexport { default as PopoverItem } from './PopoverItem';\nexport { default as withFieldItem } from './withFieldItem';\nexport { default as FilterItemContainer } from './FilterItemContainer';\nexport { default as TypeDateRangePickerField } from './common/TypeDateRangePickerField';\nexport {\n NumberRangeFilterItem,\n InputFilterItem,\n DatePickerFilterItem,\n DateRangePickerFilterItem,\n TypeDateRangePickerFilterItem,\n SuperSelectFilterItem,\n SelectTableListFilterItem,\n SelectTreeFilterItem,\n SelectCascaderFilterItem,\n SelectFunctionFilterItem,\n SelectIndustryFilterItem,\n SelectAddressFilterItem\n} from './fields';\n"],"names":["context","createContext","Provider","useContext","useReactContext","useMobile","isMobile","setIsMobile","useState","useEffect","window","mediaQuery","matchMedia","updateIsMobile","matches","addEventListener","addListener","removeEventListener","removeListener","useHorizontalScrollShadows","enabled","suspend","preserveOverflowOnSuspend","refreshKey","scrollRef","useRef","isOverflow","setIsOverflow","showScrollPrev","setShowScrollPrev","showScrollNext","setShowScrollNext","update","useCallback","el","current","scrollWidth","clientWidth","scrollLeft","rafId","requestAnimationFrame","cancelAnimationFrame","updateScrollShadowVisible","GAP","SAFETY_GAP","useVisibleItemCount","items","strategy","containerRef","measureRef","moreMeasureRef","rafRef","lastWidthRef","containerEl","setContainerEl","visibleCount","setVisibleCount","length","setContainerRef","node","setMeasureRef","setMoreMeasureRef","getWidths","container","measureEl","containerWidth","itemNodes","querySelectorAll","moreButtonWidth","getBoundingClientRect","width","itemWidths","Array","from","getWidthForCount","count","usedWidth","i","resolveVisibleCount","widths","maxCount","Math","min","nextCount","max","calculateByWidth","prev","scheduleCalculate","useLayoutEffect","undefined","observer","ResizeObserver","entries","entry","find","item","target","nextWidth","contentRect","abs","observe","disconnect","isFilterListItem","type","isNestedFilterList","list","isArray","normalizeFilterList","safeList","mode","lines","getMobileFilterList","reduce","result","line","concat","isValidFilterItem","useFilterItemRenderer","_useContext","value","onChange","index","props","get","name","nextValue","label","ComponentItem","_createElement","_extends","Object","assign","key","Line","_ref","children","innerRef","nowrap","renderItem","_jsxs","ref","className","classnames","style","filter","map","CollapseButtons","_ref2","onClick","toggleUpText","_Fragment","_jsx","Space","size","FilterLines","_ref3","_ref3$list","_ref3$displayLine","displayLine","extra","_ref3$visibleCountStr","visibleCountStrategy","_useMemo","useMemo","flatItems","mobileList","isFlatMode","_useState","isExpand","setIsExpand","_useHorizontalScrollS","_useVisibleItemCount","_useIntl","useIntl","moduleName","formatMessage","visibleFlatItems","slice","hiddenFlatItems","hasMoreFlat","hasMoreNested","hasMore","visibleLines","hiddenLines","showLabel","setScrollContainerRef","setMeasureContainerRef","scrollToNext","scrollTo","left","behavior","scrollItemIntoView","e","closest","scrollIntoView","block","inline","toggleExpand","moreButtonLabel","id","moreButton","renderDesktopContent","renderExpandedContent","align","Row","justify","wrap","Col","flex","_item$props","message","filterText","moreText","selectedText","clearAllText","selectedTextAdvanced","clearText","otherText","cancelText","determineText","year","over","lessThan","inputPlaceholder","pleaseInput","defaultInputPlaceholder","maxSelectedCount","customTime","monthly","weekly","last7Days","thisMonth","last3Months","thisYear","fullYear","pleaseSelect","withLocale","createWithIntlProvider","defaultLocale","messages","zhCN","enUS","namespace","FilterValueDisplay","filterValue","extraExpand","tags","valueLabel","join","Tag","closable","onClose","newValue","splice","Button","icon","UpOutlined","DownOutlined","isNotEmpty","trim","FilterProvider","valueBase","_ref$defaultValue","defaultValue","Map","newFilterValue","clone","set","delete","values","FilterOuter","Filter","_objectWithoutPropertiesLoose","_excluded","_ref2$props","filterProps","others","_excluded2","FilterItem","open","active","MASK_ANIMATION_DURATION","FIELD_MOBILE_POPUP_CLASS","MOBILE_POPUP_OFFSET","withFieldItem","WrappedComponent","options","interceptor","render","setOpen","_useState2","_useState3","renderMask","setRenderMask","_useState4","maskClosing","setMaskClosing","_useState5","top","pageTop","height","popupMetrics","setPopupMetrics","triggerRef","setMobilePopupVariables","metrics","document","body","setProperty","updatePopupMetrics","rect","bottom","innerHeight","removeProperty","timer","setTimeout","clearTimeout","closeFieldItem","onOpenChange","onDropdownVisibleChange","handleOpenChange","mobilePopupStyle","mergePopupClassNames","classNames","_classNames$popup","popup","root","mergePopupStyles","styles","_styles$popup","renderChildren","otherProps","inputValue","input","fieldValue","forcePopup","single","allowClear","output","call","arguments","valueType","popupClassName","dropdownClassName","overlayClassName","overlayStyle","popupStyle","dropdownStyle","transitionName","autoAdjustOverflow","offset","isPopup","overlayWidth","innerWidth","createPortal","onTouchMove","preventDefault","PopoverItem","onValidate","_ref$placement","placement","state","setState","_useState6","disabled","closeDropdown","mobileOverlayStyle","overlayContent","stopPropagation","gutter","Dropdown","trigger","menu","dropdownRender","InputFilterItem","placeholder","Input","computedFilterValue","range","unit","isNumber","defaultPropsOnValidate","NumberRangeFilterItem","Compact","InputNumber","borderLeft","borderRight","pointerEvents","DatePickerFilterItem","picker","DatePicker","inputReadOnly","dayjs","format","startOf","endOf","Date","valueOf","DateRangePickerFilterItem","header","Flex","vertical","RangePicker","allowEmpty","TypeDateRangePickerField","valueProp","onChangeProp","_ref$shortcuts","shortcuts","shortcutOptions","typeList","defaultShortcuts","getValue","subtract","currentShortcuts","isControlled","innerValueRef","handleShortcutClick","shortcut","_shortcut$getValue","start","end","toDate","isShortcutActive","_shortcut$getValue2","valueStart","valueEnd","shortcutStart","shortcutEnd","isSame","renderShortcuts","gap","Select","typeValue","currentValue","_currentValue$value","startTime","endTime","isValid","val","dateValue","TypeDateRangePickerFilterItem","itemValue","pickerValue","displayLabel","withInputDefaultPlaceholder","InputFilterItemField","NumberRangeFilterItemField","SuperSelectFilterItem","SuperSelect","SelectTableListFilterItem","SelectTableList","SelectTreeFilterItem","SelectTree","SelectCascaderFilterItem","SelectCascader","SelectFunctionFilterItem","SelectFunction","SelectIndustryFilterItem","SelectIndustry","SelectAddressFilterItem","SelectAddress","getFilterValue","transform","withFilterValue","Search","SearchInput","_ref$searchDelay","searchDelay","propsValue","setInputValue","inputValueRef","onChangeRef","searchTimerRef","isComposingRef","clearSearchTimer","submitSearch","searchValue","scheduleSearch","onCompositionStart","onCompositionEnd","onSearch","pickSelectValues","String","Boolean","createFilterValueMapper","fieldMappers","forEach","fieldName","mapper","rawValue","createUrlParamsReader","searchParams","consumedKeys","take","has","push","getConsumedKeys","stripConsumedUrlParams","next","URLSearchParams","changed","useUrlFilter","readUrlParams","buildFilter","_useSearchParams","useSearchParams","setSearchParams","urlFilterSnapshotRef","setFilter","urlStrippedRef","_urlFilterSnapshotRef","nextParams","replace","filterToUrlParams","_temp","_ref$prefix","prefix","params","serialized","serializeEntry","_item$label","_item$value","parseFilterEntry","str","colonIndex","indexOf","takeFilterEntry","_temp2","_ref3$multi","multi","_ref3$prefix","fullKey","raw","split","firstEntry","includes","createUrlFilterReader","_temp3","_ref4","_ref4$prefix","_temp4","_ref5","_ref5$multi","useUrlFilterValue","mapping","normalizedMapping","acc","_createUrlFilterReade","data","config","filters","parsedValue","toIdName","toLabelValue","_item$name","_item$id","singleSelectInterceptor","selected","multiSelectInterceptor","setActive","searchHandler","handleBlur","onFocus","onBlur","onPressEnter","CheckableTag","ListFilterItem","maxLength","App","useApp","itemLabel","checked","isEqual","findIndex","error","getLabelForLocal","locale","enName","CityFilterItemInner","addressApi","setAddressApi","cancelled","defaultData","then","createAddressApi","cityList","getChinaHotCities","city","code","CityFilterItem","fields","AdvancedFilter","more","advancedFields","FilterItemContainer","useFilter","filterInterceptors"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAMA,OAAO,gBAAGC,mBAAa,CAAC,EAAE,CAAC,CAAA;AAEjC,MAAQC,QAAQ,GAAKF,OAAO,CAApBE,QAAQ,CAAA;AAEhB,MAAMC,UAAU,GAAGA,MAAMC,gBAAe,CAACJ,OAAO;;ACJvD,MAAMK,SAAS,GAAGA,MAAM;EACtB,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAA;AAE/CC,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE,OAAA;AACnC,IAAA,MAAMC,UAAU,GAAGD,MAAM,CAACE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAC1D,MAAMC,cAAc,GAAGA,MAAM;AAC3BN,MAAAA,WAAW,CAACI,UAAU,CAACG,OAAO,CAAC,CAAA;KAChC,CAAA;AACDD,IAAAA,cAAc,EAAE,CAAA;AAChBF,IAAAA,UAAU,CAACI,gBAAgB,GAAGJ,UAAU,CAACI,gBAAgB,CAAC,QAAQ,EAAEF,cAAc,CAAC,GAAGF,UAAU,CAACK,WAAW,CAACH,cAAc,CAAC,CAAA;AAC5H,IAAA,OAAO,MAAM;AACXF,MAAAA,UAAU,CAACM,mBAAmB,GAAGN,UAAU,CAACM,mBAAmB,CAAC,QAAQ,EAAEJ,cAAc,CAAC,GAAGF,UAAU,CAACO,cAAc,CAACL,cAAc,CAAC,CAAA;KACtI,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OAAOP,QAAQ,CAAA;AACjB,CAAC;;ACjBD,MAAMa,0BAA0B,GAAGA,CAAC;EAAEC,OAAO;AAAEC,EAAAA,OAAO,GAAG,KAAK;AAAEC,EAAAA,yBAAyB,GAAG,KAAK;AAAEC,EAAAA,UAAAA;AAAW,CAAC,GAAG,EAAE,KAAK;AACvH,EAAA,MAAMC,SAAS,GAAGC,YAAM,CAAC,IAAI,CAAC,CAAA;EAC9B,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGnB,cAAQ,CAAC,KAAK,CAAC,CAAA;EACnD,MAAM,CAACoB,cAAc,EAAEC,iBAAiB,CAAC,GAAGrB,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC3D,MAAM,CAACsB,cAAc,EAAEC,iBAAiB,CAAC,GAAGvB,cAAQ,CAAC,KAAK,CAAC,CAAA;AAE3D,EAAA,MAAMwB,MAAM,GAAGC,iBAAW,CAAC,MAAM;AAC/B,IAAA,MAAMC,EAAE,GAAGV,SAAS,CAACW,OAAO,CAAA;AAC5B,IAAA,IAAI,CAACD,EAAE,IAAI,CAACd,OAAO,EAAE;MACnBS,iBAAiB,CAAC,KAAK,CAAC,CAAA;MACxBE,iBAAiB,CAAC,KAAK,CAAC,CAAA;MACxBJ,aAAa,CAAC,KAAK,CAAC,CAAA;AACpB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,IAAIN,OAAO,EAAE;MACXQ,iBAAiB,CAAC,KAAK,CAAC,CAAA;MACxBE,iBAAiB,CAAC,KAAK,CAAC,CAAA;MACxB,IAAI,CAACT,yBAAyB,EAAE;QAC9BK,aAAa,CAAC,KAAK,CAAC,CAAA;AACtB,OAAA;AACA,MAAA,OAAA;AACF,KAAA;IAEAA,aAAa,CAACO,EAAE,CAACE,WAAW,GAAGF,EAAE,CAACG,WAAW,CAAC,CAAA;AAC9CR,IAAAA,iBAAiB,CAACK,EAAE,CAACI,UAAU,GAAG,CAAC,CAAC,CAAA;IACpCP,iBAAiB,CAACG,EAAE,CAACE,WAAW,GAAGF,EAAE,CAACG,WAAW,IAAIH,EAAE,CAACI,UAAU,GAAGJ,EAAE,CAACG,WAAW,GAAGH,EAAE,CAACE,WAAW,GAAG,CAAC,CAAC,CAAA;GAC1G,EAAE,CAAChB,OAAO,EAAEE,yBAAyB,EAAED,OAAO,CAAC,CAAC,CAAA;AAEjDZ,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,MAAMyB,EAAE,GAAGV,SAAS,CAACW,OAAO,CAAA;AAC5B,IAAA,IAAI,CAACD,EAAE,IAAI,CAACd,OAAO,IAAIC,OAAO,EAAE;AAC9BW,MAAAA,MAAM,EAAE,CAAA;AACR,MAAA,OAAA;AACF,KAAA;AAEAA,IAAAA,MAAM,EAAE,CAAA;AACRE,IAAAA,EAAE,CAACnB,gBAAgB,CAAC,QAAQ,EAAEiB,MAAM,CAAC,CAAA;AACrCtB,IAAAA,MAAM,CAACK,gBAAgB,CAAC,QAAQ,EAAEiB,MAAM,CAAC,CAAA;AACzC,IAAA,MAAMO,KAAK,GAAG7B,MAAM,CAAC8B,qBAAqB,CAACR,MAAM,CAAC,CAAA;AAClD,IAAA,OAAO,MAAM;AACXE,MAAAA,EAAE,CAACjB,mBAAmB,CAAC,QAAQ,EAAEe,MAAM,CAAC,CAAA;AACxCtB,MAAAA,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEe,MAAM,CAAC,CAAA;AAC5CtB,MAAAA,MAAM,CAAC+B,oBAAoB,CAACF,KAAK,CAAC,CAAA;KACnC,CAAA;GACF,EAAE,CAACnB,OAAO,EAAEG,UAAU,EAAEF,OAAO,EAAEW,MAAM,CAAC,CAAC,CAAA;EAE1C,OAAO;IAAER,SAAS;IAAEE,UAAU;IAAEE,cAAc;IAAEE,cAAc;AAAEY,IAAAA,yBAAyB,EAAEV,MAAAA;GAAQ,CAAA;AACrG,CAAC;;AChDD,MAAMW,GAAG,GAAG,CAAC,CAAA;AACb,MAAMC,UAAU,GAAG,CAAC,CAAA;AAEpB,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC,KAAK;EAAE1B,OAAO;AAAE2B,EAAAA,QAAQ,GAAG,KAAA;AAAM,CAAC,KAAK;AACpE,EAAA,MAAMC,YAAY,GAAGvB,YAAM,CAAC,IAAI,CAAC,CAAA;AACjC,EAAA,MAAMwB,UAAU,GAAGxB,YAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAMyB,cAAc,GAAGzB,YAAM,CAAC,IAAI,CAAC,CAAA;AACnC,EAAA,MAAM0B,MAAM,GAAG1B,YAAM,CAAC,IAAI,CAAC,CAAA;AAC3B,EAAA,MAAM2B,YAAY,GAAG3B,YAAM,CAAC,CAAC,CAAC,CAAA;EAC9B,MAAM,CAAC4B,WAAW,EAAEC,cAAc,CAAC,GAAG9C,cAAQ,CAAC,IAAI,CAAC,CAAA;AACpD,EAAA,MAAM,CAAC+C,YAAY,EAAEC,eAAe,CAAC,GAAGhD,cAAQ,CAAC,MAAOsC,KAAK,CAACW,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,CAAA;AAElF,EAAA,MAAMC,eAAe,GAAGzB,iBAAW,CAAC0B,IAAI,IAAI;IAC1CX,YAAY,CAACb,OAAO,GAAGwB,IAAI,CAAA;AAC3BL,IAAAA,cAAc,CAACK,IAAI,IAAI,IAAI,CAAC,CAAA;GAC7B,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,aAAa,GAAG3B,iBAAW,CAAC0B,IAAI,IAAI;IACxCV,UAAU,CAACd,OAAO,GAAGwB,IAAI,CAAA;GAC1B,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAME,iBAAiB,GAAG5B,iBAAW,CAAC0B,IAAI,IAAI;IAC5CT,cAAc,CAACf,OAAO,GAAGwB,IAAI,CAAA;GAC9B,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMG,SAAS,GAAG7B,iBAAW,CAAC,MAAM;AAClC,IAAA,MAAM8B,SAAS,GAAGf,YAAY,CAACb,OAAO,CAAA;AACtC,IAAA,MAAM6B,SAAS,GAAGf,UAAU,CAACd,OAAO,CAAA;AACpC,IAAA,IAAI,CAAC4B,SAAS,IAAI,CAACC,SAAS,EAAE;AAC5B,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,MAAMC,cAAc,GAAGF,SAAS,CAAC1B,WAAW,CAAA;IAC5C,IAAI4B,cAAc,IAAI,CAAC,EAAE;AACvB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,MAAMC,SAAS,GAAGF,SAAS,CAACG,gBAAgB,CAAC,4BAA4B,CAAC,CAAA;AAC1E,IAAA,IAAI,CAACD,SAAS,CAACT,MAAM,EAAE;AACrB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,MAAMW,eAAe,GAAGlB,cAAc,CAACf,OAAO,EAAEkC,qBAAqB,EAAE,CAACC,KAAK,IAAI,CAAC,CAAA;IAClF,IAAIxB,KAAK,CAACW,MAAM,GAAG,CAAC,IAAIW,eAAe,IAAI,CAAC,EAAE;AAC5C,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AAEA,IAAA,MAAMG,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACP,SAAS,EAAEP,IAAI,IAAIA,IAAI,CAACU,qBAAqB,EAAE,CAACC,KAAK,CAAC,CAAA;IACpF,OAAO;MAAEL,cAAc;MAAEM,UAAU;AAAEH,MAAAA,eAAAA;KAAiB,CAAA;AACxD,GAAC,EAAE,CAACtB,KAAK,CAACW,MAAM,CAAC,CAAC,CAAA;EAElB,MAAMiB,gBAAgB,GAAGzC,iBAAW,CAClC,CAACsC,UAAU,EAAEH,eAAe,EAAEO,KAAK,KAAK;IACtC,IAAIC,SAAS,GAAG,CAAC,CAAA;IACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,EAAEE,CAAC,EAAE,EAAE;AAC9BD,MAAAA,SAAS,IAAIL,UAAU,CAACM,CAAC,CAAC,IAAIA,CAAC,GAAG,CAAC,GAAGlC,GAAG,GAAG,CAAC,CAAC,CAAA;AAChD,KAAA;AAEA,IAAA,IAAIgC,KAAK,GAAG7B,KAAK,CAACW,MAAM,EAAE;MACxBmB,SAAS,IAAIjC,GAAG,GAAGyB,eAAe,CAAA;AACpC,KAAA;AAEA,IAAA,OAAOQ,SAAS,CAAA;AAClB,GAAC,EACD,CAAC9B,KAAK,CAACW,MAAM,CACf,CAAC,CAAA;AAED,EAAA,MAAMqB,mBAAmB,GAAG7C,iBAAW,CACrC8C,MAAM,IAAI;IACR,MAAM;MAAEd,cAAc;MAAEM,UAAU;AAAEH,MAAAA,eAAAA;AAAgB,KAAC,GAAGW,MAAM,CAAA;AAC9D,IAAA,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAACpC,KAAK,CAACW,MAAM,EAAEc,UAAU,CAACd,MAAM,CAAC,CAAA;IAC1D,IAAIkB,KAAK,GAAG,CAAC,CAAA;IAEb,IAAI5B,QAAQ,KAAK,MAAM,EAAE;AACvB4B,MAAAA,KAAK,GAAGK,QAAQ,CAAA;MAChB,OAAOL,KAAK,GAAG,CAAC,EAAE;QAChB,MAAMC,SAAS,GAAGF,gBAAgB,CAACH,UAAU,EAAEH,eAAe,EAAEO,KAAK,CAAC,CAAA;AACtE,QAAA,IAAIC,SAAS,GAAGhC,UAAU,IAAIqB,cAAc,EAAE;AAC5C,UAAA,MAAA;AACF,SAAA;AACAU,QAAAA,KAAK,IAAI,CAAC,CAAA;AACZ,OAAA;AACF,KAAC,MAAM;AACLA,MAAAA,KAAK,GAAG,CAAC,CAAA;MACT,OAAOA,KAAK,GAAGK,QAAQ,EAAE;AACvB,QAAA,MAAMG,SAAS,GAAGR,KAAK,GAAG,CAAC,CAAA;QAC3B,MAAMC,SAAS,GAAGF,gBAAgB,CAACH,UAAU,EAAEH,eAAe,EAAEe,SAAS,CAAC,CAAA;AAC1E,QAAA,IAAIP,SAAS,GAAGhC,UAAU,GAAGqB,cAAc,EAAE;AAC3C,UAAA,MAAA;AACF,SAAA;AACAU,QAAAA,KAAK,GAAGQ,SAAS,CAAA;AACnB,OAAA;AACF,KAAA;AAEA,IAAA,OAAOF,IAAI,CAACG,GAAG,CAAC,CAAC,EAAET,KAAK,CAAC,CAAA;GAC1B,EACD,CAACD,gBAAgB,EAAE5B,KAAK,CAACW,MAAM,EAAEV,QAAQ,CAC3C,CAAC,CAAA;AAED,EAAA,MAAMsC,gBAAgB,GAAGpD,iBAAW,CAAC,MAAM;AACzC,IAAA,IAAI,CAACb,OAAO,IAAI,CAAC0B,KAAK,CAACW,MAAM,EAAE;AAC7BD,MAAAA,eAAe,CAAC8B,IAAI,IAAKA,IAAI,KAAKxC,KAAK,CAACW,MAAM,GAAG6B,IAAI,GAAGxC,KAAK,CAACW,MAAO,CAAC,CAAA;AACtE,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMsB,MAAM,GAAGjB,SAAS,EAAE,CAAA;IAC1B,IAAI,CAACiB,MAAM,EAAE;AACX,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMI,SAAS,GAAGL,mBAAmB,CAACC,MAAM,CAAC,CAAA;IAC7CvB,eAAe,CAAC8B,IAAI,IAAKA,IAAI,KAAKH,SAAS,GAAGG,IAAI,GAAGH,SAAU,CAAC,CAAA;AAClE,GAAC,EAAE,CAAC/D,OAAO,EAAE0C,SAAS,EAAEhB,KAAK,CAACW,MAAM,EAAEqB,mBAAmB,CAAC,CAAC,CAAA;AAE3D,EAAA,MAAMS,iBAAiB,GAAGtD,iBAAW,CAAC,MAAM;IAC1C,IAAIkB,MAAM,CAAChB,OAAO,EAAE;AAClBzB,MAAAA,MAAM,CAAC+B,oBAAoB,CAACU,MAAM,CAAChB,OAAO,CAAC,CAAA;AAC7C,KAAA;AAEAgB,IAAAA,MAAM,CAAChB,OAAO,GAAGzB,MAAM,CAAC8B,qBAAqB,CAAC,MAAM;MAClDW,MAAM,CAAChB,OAAO,GAAG,IAAI,CAAA;AACrBkD,MAAAA,gBAAgB,EAAE,CAAA;AACpB,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC,CAAA;AAEtBG,EAAAA,qBAAe,CAAC,MAAM;AACpBD,IAAAA,iBAAiB,EAAE,CAAA;AACnB,IAAA,OAAO,MAAM;MACX,IAAIpC,MAAM,CAAChB,OAAO,EAAE;AAClBzB,QAAAA,MAAM,CAAC+B,oBAAoB,CAACU,MAAM,CAAChB,OAAO,CAAC,CAAA;QAC3CgB,MAAM,CAAChB,OAAO,GAAG,IAAI,CAAA;AACvB,OAAA;KACD,CAAA;AACH,GAAC,EAAE,CAACW,KAAK,EAAEyC,iBAAiB,CAAC,CAAC,CAAA;AAE9B9E,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAACW,OAAO,IAAI,CAACiC,WAAW,EAAE;AAC5B,MAAA,OAAOoC,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,MAAMC,QAAQ,GAAG,IAAIC,cAAc,CAACC,OAAO,IAAI;AAC7C,MAAA,MAAMC,KAAK,GAAGD,OAAO,CAACE,IAAI,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,KAAK3C,WAAW,CAAC,CAAA;MAC/D,MAAM4C,SAAS,GAAGJ,KAAK,EAAEK,WAAW,CAAC5B,KAAK,IAAIjB,WAAW,CAAChB,WAAW,CAAA;AAErE,MAAA,IAAI4C,IAAI,CAACkB,GAAG,CAACF,SAAS,GAAG7C,YAAY,CAACjB,OAAO,CAAC,GAAG,CAAC,EAAE;AAClD,QAAA,OAAA;AACF,OAAA;MAEAiB,YAAY,CAACjB,OAAO,GAAG8D,SAAS,CAAA;AAChCV,MAAAA,iBAAiB,EAAE,CAAA;AACrB,KAAC,CAAC,CAAA;AAEFnC,IAAAA,YAAY,CAACjB,OAAO,GAAGkB,WAAW,CAAChB,WAAW,CAAA;AAC9CqD,IAAAA,QAAQ,CAACU,OAAO,CAAC/C,WAAW,CAAC,CAAA;AAC7B3C,IAAAA,MAAM,CAACK,gBAAgB,CAAC,QAAQ,EAAEwE,iBAAiB,CAAC,CAAA;AAEpD,IAAA,OAAO,MAAM;MACXG,QAAQ,CAACW,UAAU,EAAE,CAAA;AACrB3F,MAAAA,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEsE,iBAAiB,CAAC,CAAA;MACvD,IAAIpC,MAAM,CAAChB,OAAO,EAAE;AAClBzB,QAAAA,MAAM,CAAC+B,oBAAoB,CAACU,MAAM,CAAChB,OAAO,CAAC,CAAA;QAC3CgB,MAAM,CAAChB,OAAO,GAAG,IAAI,CAAA;AACvB,OAAA;KACD,CAAA;GACF,EAAE,CAACkB,WAAW,EAAEjC,OAAO,EAAEmE,iBAAiB,CAAC,CAAC,CAAA;EAE7C,OAAO;IAAE7B,eAAe;IAAEE,aAAa;IAAEC,iBAAiB;AAAEN,IAAAA,YAAAA;GAAc,CAAA;AAC5E,CAAC;;ACzKM,MAAM+C,gBAAgB,GAAGP,IAAI,IAAI;AACtC,EAAA,IAAI,CAACA,IAAI,EAAE,OAAO,KAAK,CAAA;AACvB,EAAA,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE,OAAO,IAAI,CAAA;AAC3C,EAAA,OAAO,CAAC,CAACA,IAAI,CAACQ,IAAI,CAAA;AACpB,CAAC,CAAA;AAEM,MAAMC,kBAAkB,GAAGC,IAAI,IAAI;AACxC,EAAA,IAAI,CAACjC,KAAK,CAACkC,OAAO,CAACD,IAAI,CAAC,IAAIA,IAAI,CAAChD,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;AAC3D,EAAA,OAAOe,KAAK,CAACkC,OAAO,CAACD,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAACH,gBAAgB,CAACG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC7D,CAAC,CAAA;AAEM,MAAME,mBAAmB,GAAGF,IAAI,IAAI;EACzC,MAAMG,QAAQ,GAAGpC,KAAK,CAACkC,OAAO,CAACD,IAAI,CAAC,GAAGA,IAAI,GAAG,EAAE,CAAA;AAChD,EAAA,IAAI,CAACG,QAAQ,CAACnD,MAAM,EAAE;IACpB,OAAO;AAAEoD,MAAAA,IAAI,EAAE,MAAM;AAAE/D,MAAAA,KAAK,EAAE,EAAE;AAAEgE,MAAAA,KAAK,EAAE,EAAA;KAAI,CAAA;AAC/C,GAAA;AACA,EAAA,IAAIN,kBAAkB,CAACI,QAAQ,CAAC,EAAE;IAChC,OAAO;AAAEC,MAAAA,IAAI,EAAE,QAAQ;AAAE/D,MAAAA,KAAK,EAAE,IAAI;AAAEgE,MAAAA,KAAK,EAAEF,QAAAA;KAAU,CAAA;AACzD,GAAA;EACA,OAAO;AAAEC,IAAAA,IAAI,EAAE,MAAM;AAAE/D,IAAAA,KAAK,EAAE8D,QAAQ;AAAEE,IAAAA,KAAK,EAAE,IAAA;GAAM,CAAA;AACvD,CAAC,CAAA;AAEM,MAAMC,mBAAmB,GAAGN,IAAI,IAAI;EACzC,MAAM;IAAEI,IAAI;IAAE/D,KAAK;AAAEgE,IAAAA,KAAAA;AAAM,GAAC,GAAGH,mBAAmB,CAACF,IAAI,CAAC,CAAA;AACxD,EAAA,IAAII,IAAI,KAAK,MAAM,EAAE,OAAO/D,KAAK,CAAA;AACjC,EAAA,OAAOgE,KAAK,CAACE,MAAM,CAAC,CAACC,MAAM,EAAEC,IAAI,KAAKD,MAAM,CAACE,MAAM,CAACD,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;AAChE,CAAC;;ACdD,MAAME,iBAAiB,GAAGrB,IAAI,IAAI,CAAC,CAACA,IAAI,KAAKA,IAAI,CAACQ,IAAI,IAAI,OAAOR,IAAI,KAAK,UAAU,CAAC,CAAA;AAErF,MAAMsB,qBAAqB,GAAGA,MAAM;AAClC,EAAA,MAAAC,WAAA,GAA4BnH,UAAU,EAAE;IAAhCoH,KAAK,GAAAD,WAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,WAAA,CAARE,QAAQ,CAAA;AAEvB,EAAA,OAAOvF,iBAAW,CAChB,CAAC8D,IAAI,EAAE0B,KAAK,KAAK;AACf,IAAA,IAAI,OAAO1B,IAAI,KAAK,UAAU,EAAE;MAC9B,OAAOA,IAAI,CAAC2B,KAAK,KAAK;QACpBD,KAAK;QACLF,KAAK,EAAEA,KAAK,GAAGI,uBAAG,CAACJ,KAAK,CAACI,GAAG,CAACD,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEE,IAAI,CAAC,EAAE,OAAO,CAAC,GAAGF,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEH,KAAK;AAClEC,QAAAA,QAAQ,EAAEA,QAAQ,GACdK,SAAS,IACPL,QAAQ,CAAC;AACPI,UAAAA,IAAI,EAAEF,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEE,IAAI;AACjBE,UAAAA,KAAK,EAAEJ,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEI,KAAK;AACnBP,UAAAA,KAAK,EAAEM,SAAAA;AACT,SAAC,CAAC,GACJH,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEF,QAAAA;AACb,OAAC,CAAC,CAAC,CAAA;AACL,KAAA;AAEA,IAAA,MAAMO,aAAa,GAAGhC,IAAI,CAACQ,IAAI,CAAA;AAC/B,IAAA,oBACEyB,mBAAA,CAACD,aAAa,EAAAE,QAAA,KACRC,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEpC,IAAI,CAAC2B,KAAK,EAAE;MAChCH,KAAK,EAAEA,KAAK,GAAGI,uBAAG,CAACJ,KAAK,CAACI,GAAG,CAAC5B,IAAI,CAAC2B,KAAK,CAACE,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG7B,IAAI,CAAC2B,KAAK,CAACH,KAAK;AAC1EC,MAAAA,QAAQ,EAAEA,QAAQ,GACdK,SAAS,IACPL,QAAQ,CAAC;AACPI,QAAAA,IAAI,EAAE7B,IAAI,CAAC2B,KAAK,CAACE,IAAI;AACrBE,QAAAA,KAAK,EAAE/B,IAAI,CAAC2B,KAAK,CAACI,KAAK;AACvBP,QAAAA,KAAK,EAAEM,SAAAA;AACT,OAAC,CAAC,GACJ9B,IAAI,CAAC2B,KAAK,CAACF,QAAAA;AACjB,KAAC,CAAC,EAAA;MACFY,GAAG,EAAErC,IAAI,CAACqC,GAAG,IAAIrC,IAAI,CAAC2B,KAAK,CAACE,IAAI,IAAIH,KAAAA;AAAM,KAAA,CAC3C,CAAC,CAAA;AAEN,GAAC,EACD,CAACD,QAAQ,EAAED,KAAK,CAClB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAMc,MAAI,GAAGC,IAAA,IAA0C;AAAA,EAAA,IAAvC7B,IAAI,GAAA6B,IAAA,CAAJ7B,IAAI;IAAE8B,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,MAAM,GAAAH,IAAA,CAANG,MAAM,CAAA;AAC9C,EAAA,MAAMC,UAAU,GAAGrB,qBAAqB,EAAE,CAAA;AAE1C,EAAA,oBACEsB,eAAA,CAAA,KAAA,EAAA;AACEC,IAAAA,GAAG,EAAEJ,QAAS;AACdK,IAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,aAAa,CAAC,EAAE;AAC1C,MAAA,CAACA,OAAK,CAAC,oBAAoB,CAAC,GAAGN,MAAAA;AACjC,KAAC,CAAE;IAAAF,QAAA,EAAA,CAEF9B,IAAI,CAACuC,MAAM,CAAC5B,iBAAiB,CAAC,CAAC6B,GAAG,CAAC,CAAClD,IAAI,EAAE0B,KAAK,KAAKiB,UAAU,CAAC3C,IAAI,EAAE0B,KAAK,CAAC,CAAC,EAC5Ec,QAAQ,CAAA;AAAA,GACN,CAAC,CAAA;AAEV,CAAC,CAAA;AAED,MAAMW,eAAe,GAAGC,KAAA,IAAA;AAAA,EAAA,IAAGC,OAAO,GAAAD,KAAA,CAAPC,OAAO;IAAEC,YAAY,GAAAF,KAAA,CAAZE,YAAY,CAAA;EAAA,oBAC9CV,eAAA,CAAAW,mBAAA,EAAA;IAAAf,QAAA,EAAA,cACEgB,cAAA,CAACC,UAAK,EAAA;AAACC,MAAAA,IAAI,EAAE,CAAE;AAACZ,MAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,kBAAkB,CAAC,CAAE;MAAAR,QAAA,eAC/DI,eAAA,CAACa,UAAK,EAAA;AAACC,QAAAA,IAAI,EAAE,CAAE;AAACZ,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,QAAQ,CAAC,EAAEA,OAAK,CAAC,aAAa,CAAC,CAAE;QAAAR,QAAA,EAAA,CAC1Ec,YAAY,eACbE,cAAA,CAAA,MAAA,EAAA;AAAMV,UAAAA,SAAS,EAAEE,OAAK,CAAC,yBAAyB,CAAE;AAAAR,UAAAA,QAAA,EAAC,QAAA;AAAC,SAAM,CAAC,CAAA;OACtD,CAAA;AAAC,KACH,CAAC,eACRgB,cAAA,CAACC,UAAK,EAAA;AAACC,MAAAA,IAAI,EAAE,CAAE;AAACZ,MAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,WAAW,CAAC,CAAE;AAACK,MAAAA,OAAO,EAAEA,OAAQ;MAAAb,QAAA,eAC1EI,eAAA,CAACa,UAAK,EAAA;AAACC,QAAAA,IAAI,EAAE,CAAE;AAACZ,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,QAAQ,CAAC,EAAEA,OAAK,CAAC,aAAa,CAAC,CAAE;QAAAR,QAAA,EAAA,CAC1Ec,YAAY,eACbE,cAAA,CAAA,MAAA,EAAA;AAAMV,UAAAA,SAAS,EAAEE,OAAK,CAAC,yBAAyB,CAAE;AAAAR,UAAAA,QAAA,EAAC,QAAA;AAAC,SAAM,CAAC,CAAA;OACtD,CAAA;AAAC,KACH,CAAC,CAAA;AAAA,GACR,CAAC,CAAA;AAAA,CACJ,CAAA;AAEKmB,MAAAA,WAAW,GAAGC,KAAA,IAAqG;AAAA,EAAA,IAAlGd,SAAS,GAAAc,KAAA,CAATd,SAAS;IAAAe,UAAA,GAAAD,KAAA,CAAElD,IAAI;AAAJA,IAAAA,IAAI,GAAAmD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IAAAC,iBAAA,GAAAF,KAAA,CAAEG,WAAW;AAAXA,IAAAA,WAAW,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,iBAAA;IAAE/B,KAAK,GAAA6B,KAAA,CAAL7B,KAAK;IAAEiC,KAAK,GAAAJ,KAAA,CAALI,KAAK;IAAExB,QAAQ,GAAAoB,KAAA,CAARpB,QAAQ;IAAAyB,qBAAA,GAAAL,KAAA,CAAEM,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA,CAAA;AAChH,EAAA,MAAAE,QAAA,GAA0CC,aAAO,CAAC,MAAMxD,mBAAmB,CAACF,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;IAAlFI,IAAI,GAAAqD,QAAA,CAAJrD,IAAI;IAASuD,SAAS,GAAAF,QAAA,CAAhBpH,KAAK;IAAagE,KAAK,GAAAoD,QAAA,CAALpD,KAAK,CAAA;AACrC,EAAA,MAAMuD,UAAU,GAAGF,aAAO,CAAC,MAAMpD,mBAAmB,CAACN,IAAI,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC,CAAA;AACnE,EAAA,MAAM6D,UAAU,GAAGzD,IAAI,KAAK,MAAM,CAAA;AAClC,EAAA,MAAA0D,SAAA,GAAgC/J,cAAQ,CAAC,KAAK,CAAC;AAAxCgK,IAAAA,QAAQ,GAAAD,SAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,MAAMjK,QAAQ,GAAGD,SAAS,EAAE,CAAA;EAC5B,MAAAqK,qBAAA,GAAsDvJ,0BAA0B,CAAC;AAAEC,MAAAA,OAAO,EAAEd,QAAQ;AAAEiB,MAAAA,UAAU,EAAEkF,IAAAA;AAAK,KAAC,CAAC;IAAjHjF,SAAS,GAAAkJ,qBAAA,CAATlJ,SAAS;IAAEI,cAAc,GAAA8I,qBAAA,CAAd9I,cAAc;IAAEE,cAAc,GAAA4I,qBAAA,CAAd5I,cAAc,CAAA;EACjD,MAAA6I,oBAAA,GAA4E9H,mBAAmB,CAAC;AAC9FC,MAAAA,KAAK,EAAEsH,SAAS;AAChBhJ,MAAAA,OAAO,EAAE,CAACd,QAAQ,IAAIgK,UAAU;AAChCvH,MAAAA,QAAQ,EAAEkH,oBAAAA;AACZ,KAAC,CAAC;IAJMvG,eAAe,GAAAiH,oBAAA,CAAfjH,eAAe;IAAEE,aAAa,GAAA+G,oBAAA,CAAb/G,aAAa;IAAEC,iBAAiB,GAAA8G,oBAAA,CAAjB9G,iBAAiB;IAAEN,YAAY,GAAAoH,oBAAA,CAAZpH,YAAY,CAAA;AAKvE,EAAA,MAAMmF,UAAU,GAAGrB,qBAAqB,EAAE,CAAA;EAC1C,MAAAuD,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;AAErB,EAAA,MAAMC,gBAAgB,GAAGV,UAAU,GAAGF,SAAS,CAACa,KAAK,CAAC,CAAC,EAAE1H,YAAY,CAAC,GAAG,EAAE,CAAA;EAC3E,MAAM2H,eAAe,GAAGZ,UAAU,GAAGF,SAAS,CAACa,KAAK,CAAC1H,YAAY,CAAC,GAAG,EAAE,CAAA;AACvE,EAAA,MAAM4H,WAAW,GAAGD,eAAe,CAACzH,MAAM,GAAG,CAAC,CAAA;EAC9C,MAAM2H,aAAa,GAAG,CAACd,UAAU,IAAIxD,KAAK,CAACrD,MAAM,GAAGqG,WAAW,CAAA;AAC/D,EAAA,MAAMuB,OAAO,GAAGf,UAAU,GAAGa,WAAW,GAAGC,aAAa,CAAA;AACxD,EAAA,MAAME,YAAY,GAAG,CAAChB,UAAU,GAAGxD,KAAK,CAACmE,KAAK,CAAC,CAAC,EAAEnB,WAAW,CAAC,GAAG,EAAE,CAAA;AACnE,EAAA,MAAMyB,WAAW,GAAG,CAACjB,UAAU,GAAGxD,KAAK,CAACmE,KAAK,CAACnB,WAAW,CAAC,GAAG,EAAE,CAAA;AAC/D,EAAA,MAAM0B,SAAS,GAAGlB,UAAU,GAAGF,SAAS,CAAC3G,MAAM,GAAG,CAAC,GAAGqD,KAAK,CAACrD,MAAM,GAAG,CAAC,CAAA;AAEtE,EAAA,MAAMgI,qBAAqB,GAAGxJ,iBAAW,CACvC0B,IAAI,IAAI;IACNnC,SAAS,CAACW,OAAO,GAAGwB,IAAI,CAAA;AAC1B,GAAC,EACD,CAACnC,SAAS,CACZ,CAAC,CAAA;AAED,EAAA,MAAMkK,sBAAsB,GAAGzJ,iBAAW,CACxC0B,IAAI,IAAI;AACN,IAAA,IAAI,CAACrD,QAAQ,IAAIgK,UAAU,EAAE;MAC3B5G,eAAe,CAACC,IAAI,CAAC,CAAA;AACvB,KAAC,MAAM;MACLD,eAAe,CAAC,IAAI,CAAC,CAAA;AACvB,KAAA;GACD,EACD,CAAC4G,UAAU,EAAEhK,QAAQ,EAAEoD,eAAe,CACxC,CAAC,CAAA;AAED,EAAA,MAAMiI,YAAY,GAAG1J,iBAAW,CAAC,MAAM;AACrC,IAAA,MAAMC,EAAE,GAAGV,SAAS,CAACW,OAAO,CAAA;IAC5B,IAAI,CAACD,EAAE,EAAE,OAAA;IACTA,EAAE,CAAC0J,QAAQ,CAAC;MACVC,IAAI,EAAE3J,EAAE,CAACI,UAAU,GAAGJ,EAAE,CAACG,WAAW,GAAG,GAAG;AAC1CyJ,MAAAA,QAAQ,EAAE,QAAA;AACZ,KAAC,CAAC,CAAA;AACJ,GAAC,EAAE,CAACtK,SAAS,CAAC,CAAC,CAAA;AAEf,EAAA,MAAMuK,kBAAkB,GAAG9J,iBAAW,CACpC+J,CAAC,IAAI;IACH,IAAI,CAAC1L,QAAQ,EAAE,OAAA;AACf,IAAA,MAAMyD,SAAS,GAAGvC,SAAS,CAACW,OAAO,CAAA;IACnC,MAAM4D,IAAI,GAAGiG,CAAC,CAAChG,MAAM,CAACiG,OAAO,CAAA,GAAA,GAAKlD,OAAK,CAAC,kBAAkB,CAAG,CAAC,IAAIiD,CAAC,CAAChG,MAAM,CAACiG,OAAO,OAAKlD,OAAK,CAAC,aAAa,CAAG,CAAC,CAAA;AAC9G,IAAA,IAAI,CAAChF,SAAS,IAAI,CAACgC,IAAI,EAAE,OAAA;IACzBA,IAAI,CAACmG,cAAc,CAAC;AAClBJ,MAAAA,QAAQ,EAAE,QAAQ;AAClBK,MAAAA,KAAK,EAAE,SAAS;AAChBC,MAAAA,MAAM,EAAE,QAAA;AACV,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAAC9L,QAAQ,EAAEkB,SAAS,CACtB,CAAC,CAAA;AAED,EAAA,MAAM6K,YAAY,GAAGpK,iBAAW,CAAC,MAAM;AACrCwI,IAAAA,WAAW,CAAClD,KAAK,IAAI,CAACA,KAAK,CAAC,CAAA;GAC7B,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAM+E,eAAe,gBACnB3D,eAAA,CAAAW,mBAAA,EAAA;IAAAf,QAAA,EAAA,CACGwC,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,UAAA;KAAY,CAAC,eAClChD,cAAA,CAAA,MAAA,EAAA;AAAMV,MAAAA,SAAS,EAAEE,OAAK,CAAC,yBAAyB,CAAE;AAAAR,MAAAA,QAAA,EAAC,QAAA;AAAC,KAAM,CAAC,CAAA;AAAA,GAC3D,CACH,CAAA;AAED,EAAA,MAAMiE,UAAU,gBACdjD,cAAA,CAACC,UAAK,EAAA;AAACC,IAAAA,IAAI,EAAE,CAAE;AAACZ,IAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,aAAa,CAAC,EAAEA,OAAK,CAAC,QAAQ,CAAC,CAAE;AAACK,IAAAA,OAAO,EAAEiD,YAAa;AAAA9D,IAAAA,QAAA,EACjG+D,eAAAA;AAAe,GACX,CACR,CAAA;EAED,MAAMG,oBAAoB,GAAGA,MAAM;AACjC,IAAA,IAAInC,UAAU,EAAE;MACd,oBACEf,cAAA,CAAClB,MAAI,EAAA;AAAC5B,QAAAA,IAAI,EAAEuE,gBAAiB;AAACvC,QAAAA,MAAM,EAAE0C,WAAW,IAAI,CAACX,QAAS;AAAAjC,QAAAA,QAAA,EAC5D4C,WAAW,IAAI,CAACX,QAAQ,gBAAGjB,cAAA,CAAA,MAAA,EAAA;UAAM,kBAAgB,EAAA,IAAA;AAAAhB,UAAAA,QAAA,EAAEiE,UAAAA;AAAU,SAAO,CAAC,GAAG,IAAA;AAAI,OACzE,CAAC,CAAA;AAEX,KAAA;IAEA,OAAOlB,YAAY,CAACrC,GAAG,CAAC,CAAC/B,IAAI,EAAEO,KAAK,kBAClC8B,cAAA,CAAClB,MAAI,EAAA;AAAa5B,MAAAA,IAAI,EAAES,IAAK;AAAAqB,MAAAA,QAAA,EAC1B6C,aAAa,IAAI,CAACZ,QAAQ,IAAI/C,KAAK,KAAKqC,WAAW,GAAG,CAAC,GAAG0C,UAAU,GAAG,IAAA;KAD/D/E,EAAAA,KAEL,CACP,CAAC,CAAA;GACH,CAAA;EAED,MAAMiF,qBAAqB,GAAGA,MAAM;AAClC,IAAA,IAAIpC,UAAU,EAAE;AACd,MAAA,IAAI,CAACY,eAAe,CAACzH,MAAM,EAAE,OAAO,IAAI,CAAA;MACxC,oBACE8F,cAAA,CAAClB,MAAI,EAAA;AAAC5B,QAAAA,IAAI,EAAEyE,eAAgB;QAAA3C,QAAA,eAC1BgB,cAAA,CAACL,eAAe,EAAA;AAACE,UAAAA,OAAO,EAAEiD,YAAa;UAAChD,YAAY,EAAE0B,aAAa,CAAC;AAAEwB,YAAAA,EAAE,EAAE,cAAA;WAAgB,CAAA;SAAI,CAAA;AAAC,OAC3F,CAAC,CAAA;AAEX,KAAA;IAEA,OAAOhB,WAAW,CAACtC,GAAG,CAAC,CAAC/B,IAAI,EAAEO,KAAK,kBACjC8B,cAAA,CAAClB,MAAI,EAAA;AAAa5B,MAAAA,IAAI,EAAES,IAAK;MAAAqB,QAAA,EAC1Bd,KAAK,KAAK8D,WAAW,CAAC9H,MAAM,GAAG,CAAC,gBAAG8F,cAAA,CAACL,eAAe,EAAA;AAACE,QAAAA,OAAO,EAAEiD,YAAa;QAAChD,YAAY,EAAE0B,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,cAAA;SAAgB,CAAA;AAAE,OAAE,CAAC,GAAG,IAAA;KAD7H9E,EAAAA,KAEL,CACP,CAAC,CAAA;GACH,CAAA;EAED,oBACEkB,eAAA,CAAAW,mBAAA,EAAA;IAAAf,QAAA,EAAA,cACEI,eAAA,CAACa,UAAK,EAAA;MAACX,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,cAAc,CAAC,EAAE,cAAc,EAAEF,SAAS,CAAE;AAAC8D,MAAAA,KAAK,EAAC,KAAK;AAAClD,MAAAA,IAAI,EAAE,EAAG;AAAAlB,MAAAA,QAAA,gBACnGgB,cAAA,CAAA,MAAA,EAAA;AAAMV,QAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;AAAAR,QAAAA,QAAA,EAAEiD,SAAS,KAAK1D,KAAK,IAAIiD,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,YAAA;AAAa,SAAC,CAAC,CAAA;AAAC,OAAO,CAAC,eAC5G5D,eAAA,CAACiE,QAAG,EAAA;AAACC,QAAAA,OAAO,EAAC,eAAe;AAACC,QAAAA,IAAI,EAAE,KAAM;AAACH,QAAAA,KAAK,EAAC,KAAK;QAAApE,QAAA,EAAA,cACnDgB,cAAA,CAACwD,QAAG,EAAA;AAAClE,UAAAA,SAAS,EAAEE,OAAK,CAAC,aAAa,CAAE;AAACiE,UAAAA,IAAI,EAAE,CAAE;AAAAzE,UAAAA,QAAA,eAC5CI,eAAA,CAAA,KAAA,EAAA;AACEC,YAAAA,GAAG,EAAE8C,sBAAuB;AAC5B7C,YAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,yBAAyB,CAAC,EAAE;AACtD,cAAA,CAACA,OAAK,CAAC,yBAAyB,CAAC,GAAG,CAACzI,QAAQ,IAAIgK,UAAAA;AACnD,aAAC,CAAE;AAAA/B,YAAAA,QAAA,GAEF,CAACjI,QAAQ,IAAIgK,UAAU,gBACtB3B,eAAA,CAAA,KAAA,EAAA;AAAKC,cAAAA,GAAG,EAAEhF,aAAc;AAACiF,cAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,aAAa,CAAC,EAAEA,OAAK,CAAC,qBAAqB,CAAC,CAAE;cAAC,aAAW,EAAA,IAAA;AAAAR,cAAAA,QAAA,EAC5G6B,CAAAA,SAAS,CAACpB,MAAM,CAAC5B,iBAAiB,CAAC,CAAC6B,GAAG,CAAC,CAAClD,IAAI,EAAE0B,KAAK,KAAA;AAAA,gBAAA,IAAAwF,WAAA,CAAA;AAAA,gBAAA,oBACnD1D,cAAA,CAAA,KAAA,EAAA;kBAAiD,0BAAwB,EAAA,IAAA;AAAAhB,kBAAAA,QAAA,EACtEG,UAAU,CAAC3C,IAAI,EAAE0B,KAAK,CAAA;AAAC,iBAAA,EADhB1B,IAAI,CAACqC,GAAG,KAAA,CAAA6E,WAAA,GAAIlH,IAAI,CAAC2B,KAAK,qBAAVuF,WAAA,CAAYrF,IAAI,CAAA,IAAIH,KAErC,CAAC,CAAA;eACP,CAAC,eACF8B,cAAA,CAAA,KAAA,EAAA;AAAKX,gBAAAA,GAAG,EAAE/E,iBAAkB;gBAAC,0BAAwB,EAAA,IAAA;gBAAA0E,QAAA,eACnDgB,cAAA,CAACC,UAAK,EAAA;AAACC,kBAAAA,IAAI,EAAE,CAAE;AAACZ,kBAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,aAAa,CAAC,EAAEA,OAAK,CAAC,QAAQ,CAAC,CAAE;AAAAR,kBAAAA,QAAA,EAC1E+D,eAAAA;iBACI,CAAA;AAAC,eACL,CAAC,CAAA;aACH,CAAC,GACJ,IAAI,EACPhM,QAAQ,IAAIsB,cAAc,gBAAG2H,cAAA,CAAA,KAAA,EAAA;cAAKV,SAAS,EAAEE,OAAK,CAAC,2BAA2B,CAAA;AAAE,aAAE,CAAC,GAAG,IAAI,eAC3FQ,cAAA,CAAA,KAAA,EAAA;AAAKV,cAAAA,SAAS,EAAEE,OAAK,CAAC,oBAAoB,CAAE;AAACH,cAAAA,GAAG,EAAE6C,qBAAsB;AAACrC,cAAAA,OAAO,EAAE2C,kBAAmB;AAAAxD,cAAAA,QAAA,EAClGjI,QAAQ,GAAG+J,UAAU,CAACpB,GAAG,CAAC,CAAClD,IAAI,EAAE0B,KAAK,kBAAK8B,cAAA,CAAClB,MAAI,EAAA;gBAAa5B,IAAI,EAAE,CAACV,IAAI,CAAA;AAAE,eAAA,EAApB0B,KAAsB,CAAC,CAAC,GAAGgF,oBAAoB,EAAC;AAAC,aACrG,CAAC,EACLnM,QAAQ,IAAIwB,cAAc,gBACzByH,cAAA,CAAA,QAAA,EAAA;AAAQhD,cAAAA,IAAI,EAAC,QAAQ;AAACsC,cAAAA,SAAS,EAAEE,OAAK,CAAC,oBAAoB,CAAE;AAACK,cAAAA,OAAO,EAAEuC,YAAa;AAAC,cAAA,YAAA,EAAW,aAAa;AAAApD,cAAAA,QAAA,eAC3GgB,cAAA,CAAA,MAAA,EAAA;AAAMV,gBAAAA,SAAS,EAAEE,OAAK,CAAC,yBAAyB,CAAE;AAAAR,gBAAAA,QAAA,EAAC,QAAA;eAAO,CAAA;aACpD,CAAC,GACP,IAAI,CAAA;WACL,CAAA;AAAC,SACH,CAAC,eACNgB,cAAA,CAACwD,QAAG,EAAA;AAAAxE,UAAAA,QAAA,EAAEwB,KAAAA;AAAK,SAAM,CAAC,CAAA;AAAA,OACf,CAAC,CAAA;AAAA,KACD,CAAC,eACRR,cAAA,CAACC,UAAK,EAAA;MAACX,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAE;AAAC4D,MAAAA,KAAK,EAAC,QAAQ;AAAClD,MAAAA,IAAI,EAAE,EAAG;AAAAlB,MAAAA,QAAA,EAC/FA,QAAAA;AAAQ,KACJ,CAAC,eACRI,eAAA,CAACa,UAAK,EAAA;MACJX,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,cAAc,CAAC,EAAE,mBAAmB,EAAE;QAChE,CAACA,OAAK,CAAC,qBAAqB,CAAC,GAAGzI,QAAQ,IAAI,EAAE+K,OAAO,IAAIb,QAAQ,CAAA;AACnE,OAAC,CAAE;AACHmC,MAAAA,KAAK,EAAC,KAAK;AACXlD,MAAAA,IAAI,EAAE,EAAG;AAAAlB,MAAAA,QAAA,gBAETgB,cAAA,CAAA,MAAA,EAAA;AAAMV,QAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;QAAAR,QAAA,EAAEwC,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,UAAA;SAAY,CAAA;OAAQ,CAAC,eAClFhD,cAAA,CAAA,KAAA,EAAA;AAAKV,QAAAA,SAAS,EAAEE,OAAK,CAAC,aAAa,CAAE;QAAAR,QAAA,EAAEmE,qBAAqB,EAAC;AAAC,OAAM,CAAC,CAAA;AAAA,KAChE,CAAC,CAAA;AAAA,GACR,CAAC,CAAA;AAEP;;ACpQA,MAAMQ,SAAO,GAAG;AACdC,EAAAA,UAAU,EAAE,IAAI;AAChBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,YAAY,EAAE,MAAM;AACpBC,EAAAA,YAAY,EAAE,MAAM;AACpBjE,EAAAA,YAAY,EAAE,IAAI;AAClBkE,EAAAA,oBAAoB,EAAE,IAAI;AAC1BC,EAAAA,SAAS,EAAE,MAAM;AACjBC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,UAAU,EAAE,IAAI;AAChBC,EAAAA,aAAa,EAAE,IAAI;AACnBC,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,IAAI,EAAE,iBAAiB;AACvBC,EAAAA,QAAQ,EAAE,iBAAiB;AAC3BC,EAAAA,gBAAgB,EAAE,YAAY;AAC9BC,EAAAA,WAAW,EAAE,KAAK;AAClBC,EAAAA,uBAAuB,EAAE,YAAY;AACrCC,EAAAA,gBAAgB,EAAE,cAAc;AAChCC,EAAAA,UAAU,EAAE,OAAO;AACnBC,EAAAA,OAAO,EAAE,IAAI;AACbC,EAAAA,MAAM,EAAE,IAAI;AACZC,EAAAA,SAAS,EAAE,KAAK;AAChBC,EAAAA,SAAS,EAAE,IAAI;AACfC,EAAAA,WAAW,EAAE,MAAM;AACnBC,EAAAA,QAAQ,EAAE,IAAI;AACdC,EAAAA,QAAQ,EAAE,KAAK;AACfC,EAAAA,YAAY,EAAE,KAAA;AAChB,CAAC;;AC3BD,MAAMzB,OAAO,GAAG;AACdC,EAAAA,UAAU,EAAE,QAAQ;AACpBC,EAAAA,QAAQ,EAAE,MAAM;AAChBC,EAAAA,YAAY,EAAE,UAAU;AACxBC,EAAAA,YAAY,EAAE,WAAW;AACzBjE,EAAAA,YAAY,EAAE,SAAS;AACvBkE,EAAAA,oBAAoB,EAAE,UAAU;AAChCC,EAAAA,SAAS,EAAE,cAAc;AACzBC,EAAAA,SAAS,EAAE,OAAO;AAClBC,EAAAA,UAAU,EAAE,QAAQ;AACpBC,EAAAA,aAAa,EAAE,WAAW;AAC1BC,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,IAAI,EAAE,sBAAsB;AAC5BC,EAAAA,QAAQ,EAAE,2BAA2B;AACrCC,EAAAA,gBAAgB,EAAE,sBAAsB;AACxCC,EAAAA,WAAW,EAAE,eAAe;AAC5BC,EAAAA,uBAAuB,EAAE,sBAAsB;AAC/CC,EAAAA,gBAAgB,EAAE,4BAA4B;AAC9CC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,OAAO,EAAE,SAAS;AAClBC,EAAAA,MAAM,EAAE,QAAQ;AAChBC,EAAAA,SAAS,EAAE,aAAa;AACxBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,WAAW,EAAE,eAAe;AAC5BC,EAAAA,QAAQ,EAAE,cAAc;AACxBC,EAAAA,QAAQ,EAAE,WAAW;AACrBC,EAAAA,YAAY,EAAE,eAAA;AAChB,CAAC;;ACvBD,MAAMC,UAAU,GAAGC,gCAAsB,CAAC;AACxCC,EAAAA,aAAa,EAAE,OAAO;AACtBC,EAAAA,QAAQ,EAAE;AACR,IAAA,OAAO,EAAEC,SAAI;AACb,IAAA,OAAO,EAAEC,OAAAA;GACV;AACDC,EAAAA,SAAS,EAAE,cAAA;AACb,CAAC,CAAC;;ACDF,MAAMC,kBAAkB,GAAGP,UAAU,CAACtG,IAAA,IAAmD;AAAA,EAAA,IAAzC8G,WAAW,GAAA9G,IAAA,CAAlBf,KAAK;IAAe8H,WAAW,GAAA/G,IAAA,CAAX+G,WAAW;IAAE7H,QAAQ,GAAAc,IAAA,CAARd,QAAQ,CAAA;EAChF,MAAAoD,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;AACrB,EAAA,MAAAR,SAAA,GAAgC/J,cAAQ,CAAC,KAAK,CAAC;AAAxCgK,IAAAA,QAAQ,GAAAD,SAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,WAAW,GAAAF,SAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,MAAMjK,QAAQ,GAAGD,SAAS,EAAE,CAAA;EAC5B,MAAAqK,qBAAA,GAAkEvJ,0BAA0B,CAAC;AAC3FC,MAAAA,OAAO,EAAEd,QAAQ;AACjBe,MAAAA,OAAO,EAAEmJ,QAAQ;AACjBlJ,MAAAA,yBAAyB,EAAE,IAAI;AAC/BC,MAAAA,UAAU,EAAE6N,WAAAA;AACd,KAAC,CAAC;IALM5N,SAAS,GAAAkJ,qBAAA,CAATlJ,SAAS;IAAEE,UAAU,GAAAgJ,qBAAA,CAAVhJ,UAAU;IAAEE,cAAc,GAAA8I,qBAAA,CAAd9I,cAAc;IAAEE,cAAc,GAAA4I,qBAAA,CAAd5I,cAAc,CAAA;EAO7D,MAAMwN,IAAI,GAAGF,WAAW,CAACnG,GAAG,CAAC,CAAAE,KAAA,EAAyB1B,KAAK,KAAK;AAAA,IAAA,IAAhCG,IAAI,GAAAuB,KAAA,CAAJvB,IAAI;MAAEE,KAAK,GAAAqB,KAAA,CAALrB,KAAK;MAAEP,KAAK,GAAA4B,KAAA,CAAL5B,KAAK,CAAA;AAChD,IAAA,MAAMgI,UAAU,GAAG/K,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,GAAGA,KAAK,CAAC0B,GAAG,CAAClD,IAAI,IAAIA,IAAI,CAAC+B,KAAK,CAAC,CAAC0H,IAAI,CAAC,GAAG,CAAC,GAAGjI,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEO,KAAK,CAAA;IAChG,oBACEa,eAAA,CAAC8G,QAAG,EAAA;MAEFC,QAAQ,EAAA,IAAA;AACR7G,MAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;MACrC4G,OAAO,EAAEA,MAAM;AACb,QAAA,MAAMC,QAAQ,GAAGR,WAAW,CAACnE,KAAK,CAAC,CAAC,CAAC,CAAA;AACrC2E,QAAAA,QAAQ,CAACC,MAAM,CAACpI,KAAK,EAAE,CAAC,CAAC,CAAA;QACzBD,QAAQ,CAACoI,QAAQ,CAAC,CAAA;OAClB;AAAArH,MAAAA,QAAA,gBAEFI,eAAA,CAAA,MAAA,EAAA;AAAME,QAAAA,SAAS,EAAEE,OAAK,CAAC,wBAAwB,CAAE;QAAAR,QAAA,EAAA,CAAET,KAAK,EAAC,GAAC,CAAA;OAAM,CAAC,eACjEyB,cAAA,CAAA,MAAA,EAAA;AAAMV,QAAAA,SAAS,EAAEE,OAAK,CAAC,0BAA0B,CAAE;AAAAR,QAAAA,QAAA,EAAEgH,UAAAA;AAAU,OAAO,CAAC,CAAA;AAAA,KAAA,EAVlE3H,IAWF,CAAC,CAAA;AAEV,GAAC,CAAC,CAAA;EAEF,oBACEe,eAAA,CAACa,UAAK,EAAA;AAACX,IAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,cAAc,CAAC,EAAEA,OAAK,CAAC,sBAAsB,CAAC,CAAE;AAAC4D,IAAAA,KAAK,EAAC,KAAK;AAAClD,IAAAA,IAAI,EAAE,EAAG;AAAAlB,IAAAA,QAAA,gBACvGgB,cAAA,CAAA,MAAA,EAAA;AAAMV,MAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;MAAAR,QAAA,EAAEwC,aAAa,CAAC;AAAEwB,QAAAA,EAAE,EAAE,cAAA;OAAgB,CAAA;AAAC,KAAO,CAAC,EACrFjM,QAAQ,gBACPqI,eAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,8BAA8B,CAAC,EAAE,CAACrH,UAAU,IAAIqH,OAAK,CAAC,iBAAiB,CAAC,CAAE;AAAAR,MAAAA,QAAA,gBACzGI,eAAA,CAAA,KAAA,EAAA;AAAKE,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,wBAAwB,CAAC,EAAEyB,QAAQ,IAAIzB,OAAK,CAAC,WAAW,CAAC,CAAE;QAAAR,QAAA,EAAA,CACzF3G,cAAc,gBAAG2H,cAAA,CAAA,KAAA,EAAA;UAAKV,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,2BAA2B,CAAC,EAAEA,OAAK,CAAC,iCAAiC,CAAC,CAAA;AAAE,SAAE,CAAC,GAAG,IAAI,eACrIQ,cAAA,CAAA,KAAA,EAAA;AAAKX,UAAAA,GAAG,EAAEpH,SAAU;AAACqH,UAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,aAAa,CAAC,EAAEA,OAAK,CAAC,mBAAmB,CAAC,EAAEyB,QAAQ,IAAIzB,OAAK,CAAC,WAAW,CAAC,CAAE;AAAAR,UAAAA,QAAA,EAC1H+G,IAAAA;AAAI,SACF,CAAC,EACLxN,cAAc,gBAAGyH,cAAA,CAAA,KAAA,EAAA;AAAKV,UAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,iCAAiC,CAAC,CAAA;SAAI,CAAC,GAAG,IAAI,CAAA;OAC9F,CAAC,eACNJ,eAAA,CAAA,KAAA,EAAA;AAAKE,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,sBAAsB,CAAC,EAAErH,UAAU,IAAIqH,OAAK,CAAC,aAAa,CAAC,CAAE;AAAAR,QAAAA,QAAA,gBAC5FgB,cAAA,CAAA,KAAA,EAAA;AAAKV,UAAAA,SAAS,EAAEE,OAAK,CAAC,2BAA2B,CAAE;UAAAR,QAAA,eACjDI,eAAA,CAACa,UAAK,EAAA;AAACC,YAAAA,IAAI,EAAE,CAAE;AAAAlB,YAAAA,QAAA,EACZ8G,CAAAA,WAAW,eACZ9F,cAAA,CAACuG,WAAM,EAAA;AACLrG,cAAAA,IAAI,EAAC,OAAO;cACZL,OAAO,EAAEA,MAAM;gBACb5B,QAAQ,CAAC,EAAE,CAAC,CAAA;eACZ;cAAAe,QAAA,EAEDwC,aAAa,CAAC;AAAEwB,gBAAAA,EAAE,EAAE,cAAA;eAAgB,CAAA;AAAC,aAChC,CAAC,CAAA;WACJ,CAAA;AAAC,SACL,CAAC,EACL7K,UAAU,gBACT6H,cAAA,CAACuG,WAAM,EAAA;AACLvJ,UAAAA,IAAI,EAAC,MAAM;AACXkD,UAAAA,IAAI,EAAC,OAAO;AACZZ,UAAAA,SAAS,EAAEE,OAAK,CAAC,qBAAqB,CAAE;AACxCgH,UAAAA,IAAI,EAAEvF,QAAQ,gBAAGjB,cAAA,CAACyG,gBAAU,EAAE,EAAA,CAAC,gBAAGzG,cAAA,CAAC0G,kBAAY,IAAE,CAAE;UACnD7G,OAAO,EAAEA,MAAM;AACbqB,YAAAA,WAAW,CAAClD,KAAK,IAAI,CAACA,KAAK,CAAC,CAAA;WAC5B;AAAAgB,UAAAA,QAAA,EAEDiC,QAAQ,GAAG,IAAI,GAAG,IAAA;AAAI,SACjB,CAAC,GACP,IAAI,eACR7B,eAAA,CAAA,KAAA,EAAA;AAAKE,UAAAA,SAAS,EAAEE,OAAK,CAAC,iCAAiC,CAAE;AAAAR,UAAAA,QAAA,EACtD8G,CAAAA,WAAW,eACZ9F,cAAA,CAACuG,WAAM,EAAA;AAACrG,YAAAA,IAAI,EAAC,OAAO;YAAAlB,QAAA,EAAEwC,aAAa,CAAC;AAAEwB,cAAAA,EAAE,EAAE,cAAA;aAAgB,CAAA;AAAC,WAAS,CAAC,CAAA;AAAA,SAClE,CAAC,CAAA;AAAA,OACH,CAAC,CAAA;KACH,CAAC,gBAEN5D,eAAA,CAAA,KAAA,EAAA;AAAKE,MAAAA,SAAS,EAAEE,OAAK,CAAC,aAAa,CAAE;AAAAR,MAAAA,QAAA,EAClC+G,CAAAA,IAAI,eACL3G,eAAA,CAACa,UAAK,EAAA;AAACC,QAAAA,IAAI,EAAE,CAAE;AAACZ,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,kBAAkB,CAAC,CAAE;AAAAR,QAAAA,QAAA,EAC9D8G,CAAAA,WAAW,eACZ9F,cAAA,CAACuG,WAAM,EAAA;AAACrG,UAAAA,IAAI,EAAC,OAAO;UAAAlB,QAAA,EAAEwC,aAAa,CAAC;AAAEwB,YAAAA,EAAE,EAAE,cAAA;WAAgB,CAAA;AAAC,SAAS,CAAC,CAAA;AAAA,OAChE,CAAC,eACR5D,eAAA,CAACa,UAAK,EAAA;AAACC,QAAAA,IAAI,EAAE,CAAE;AAACZ,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,WAAW,CAAC,CAAE;AAAAR,QAAAA,QAAA,EACvD8G,CAAAA,WAAW,eACZ9F,cAAA,CAACuG,WAAM,EAAA;AACLrG,UAAAA,IAAI,EAAC,OAAO;UACZL,OAAO,EAAEA,MAAM;YACb5B,QAAQ,CAAC,EAAE,CAAC,CAAA;WACZ;UAAAe,QAAA,EAEDwC,aAAa,CAAC;AAAEwB,YAAAA,EAAE,EAAE,cAAA;WAAgB,CAAA;AAAC,SAChC,CAAC,CAAA;AAAA,OACJ,CAAC,CAAA;AAAA,KACL,CACN,CAAA;AAAA,GACI,CAAC,CAAA;AAEZ,CAAC;;ACvGD,MAAM2D,YAAU,GAAG3I,KAAK,IAAI;EAC1B,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK9B,SAAS,EAAE,OAAO,KAAK,CAAA;AACvD,EAAA,IAAI,OAAO8B,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAAC4I,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,KAAK,CAAA;AAClE,EAAA,IAAI3L,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,IAAIA,KAAK,CAAC9D,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;AAC5D,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAEK2M,MAAAA,cAAc,GAAG9H,IAAA,IAAiE;AAAA,EAAA,IAA9DC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAS8H,SAAS,GAAA/H,IAAA,CAAhBf,KAAK;IAAaC,QAAQ,GAAAc,IAAA,CAARd,QAAQ;IAAA8I,iBAAA,GAAAhI,IAAA,CAAEiI,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,iBAAA,CAAA;AAC/E,EAAA,MAAM/I,KAAK,GAAG4C,aAAO,CAAC,MAAM;AAC1B,IAAA,OAAO,CAACkG,SAAS,IAAIE,YAAY,EAAEvH,MAAM,CAACjD,IAAI,IAAImK,YAAU,CAACnK,IAAI,CAACwB,KAAK,CAAC,CAAC,CAAA;AAC3E,GAAC,EAAE,CAAC8I,SAAS,EAAEE,YAAY,CAAC,CAAC,CAAA;AAE7B,EAAA,MAAMnB,WAAW,GAAGjF,aAAO,CAAC,MAAM;AAChC,IAAA,OAAO,IAAIqG,GAAG,CAACjJ,KAAK,CAAC0B,GAAG,CAAClD,IAAI,IAAI,CAACA,IAAI,CAAC6B,IAAI,EAAE7B,IAAI,CAAC,CAAC,CAAC,CAAA;AACtD,GAAC,EAAE,CAACwB,KAAK,CAAC,CAAC,CAAA;EAEX,oBACEgC,cAAA,CAACrJ,QAAQ,EAAA;AACPqH,IAAAA,KAAK,EAAE;AACLA,MAAAA,KAAK,EAAE6H,WAAW;MAClB5H,QAAQ,EAAEzB,IAAI,IAAI;AAChB,QAAA,MAAM0K,cAAc,GAAGC,yBAAK,CAACtB,WAAW,CAAC,CAAA;QACzCrJ,IAAI,CAACwB,KAAK,GAAGkJ,cAAc,CAACE,GAAG,CAAC5K,IAAI,CAAC6B,IAAI,EAAE7B,IAAI,CAAC,GAAG0K,cAAc,CAACG,MAAM,CAAC7K,IAAI,CAAC6B,IAAI,CAAC,CAAA;AACnFJ,QAAAA,QAAQ,IAARA,IAAAA,IAAAA,QAAQ,CAAGhD,KAAK,CAACC,IAAI,CAACgM,cAAc,CAACI,MAAM,EAAE,CAAC,CAAC,CAAA;AACjD,OAAA;KACA;AAAAtI,IAAAA,QAAA,EAED,OAAOA,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAAC;MAAEhB,KAAK;AAAEC,MAAAA,QAAAA;AAAS,KAAC,CAAC,GAAGe,QAAAA;AAAQ,GAClE,CAAC,CAAA;AAEf;;AC9BA,MAAMuI,WAAW,GAAGA,CAAC;EAAEvI,QAAQ;EAAEM,SAAS;EAAE,GAAGnB,KAAAA;AAAM,CAAC,KAAK;EACzD,oBAAO6B,cAAA,CAAC6G,cAAc,EAAA;AAAA,IAAA,GAAK1I,KAAK;IAAAa,QAAA,EAAGvI,OAAO,iBAAIuJ,cAAA,CAAA,KAAA,EAAA;MAAKV,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAEF,SAAS,CAAE;MAAAN,QAAA,EAAEA,QAAQ,CAAC;AAAE,QAAA,GAAGvI,OAAO;AAAE0H,QAAAA,KAAAA;OAAO,CAAA;KAAO,CAAA;AAAC,GAAiB,CAAC,CAAA;AAC3K,CAAC;;;;ACDD,MAAMqJ,MAAM,GAAGnC,UAAU,CAACtG,IAAA,IAAqC;AAAA,EAAA,IAAAgI,iBAAA,GAAAhI,IAAA,CAAlCiI,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,iBAAA;AAAK5I,IAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,WAAA,CAAA,CAAA;AACtD,EAAA,oBACE1H,cAAA,CAACuH,WAAW,EAAA7I,QAAA,KAAKP,KAAK,EAAA;AAAE6I,IAAAA,YAAY,EAAEA,YAAa;IAAAhI,QAAA,EAChDY,KAAA,IAAkD;AAAA,MAAA,IAAA+H,WAAA,GAAA/H,KAAA,CAA/CzB,KAAK;AAAEyJ,QAAAA,WAAW,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,WAAA;QAAE3J,KAAK,GAAA4B,KAAA,CAAL5B,KAAK;QAAEC,QAAQ,GAAA2B,KAAA,CAAR3B,QAAQ,CAAA;AAC1C,MAAA,MAAQ6H,WAAW,GAAgB8B,WAAW,CAAtC9B,WAAW;AAAK+B,QAAAA,MAAM,GAAAJ,6BAAA,CAAKG,WAAW,EAAAE,UAAA,CAAA,CAAA;MAC9C,oBACE1I,eAAA,CAAAW,mBAAA,EAAA;QAAAf,QAAA,EAAA,cACEgB,cAAA,CAACG,WAAW,EAAAzB,QAAA,CAAA,EAAA,EAAKmJ,MAAM,CAAG,CAAC,EAC1B7J,KAAK,IAAIA,KAAK,CAAC9D,MAAM,GAAG,CAAC,iBAAI8F,cAAA,CAAC4F,kBAAkB,EAAA;AAAC5H,UAAAA,KAAK,EAAEA,KAAM;AAACC,UAAAA,QAAQ,EAAEA,QAAS;AAAC6H,UAAAA,WAAW,EAAEA,WAAAA;AAAY,SAAE,CAAC,CAAA;AAAA,OAChH,CAAC,CAAA;AAEP,KAAA;AAAC,GAAA,CACU,CAAC,CAAA;AAElB,CAAC;;ACdD,MAAMiC,UAAU,GAAG1C,UAAU,CAACtG,IAAA,IAAuC;AAAA,EAAA,IAApCiJ,IAAI,GAAAjJ,IAAA,CAAJiJ,IAAI;IAAEC,MAAM,GAAAlJ,IAAA,CAANkJ,MAAM;IAAE1J,KAAK,GAAAQ,IAAA,CAALR,KAAK;IAAES,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;EAC5D,oBACEgB,cAAA,CAACC,UAAK,EAAA;AAACX,IAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;AAAAR,IAAAA,QAAA,eAC1CI,eAAA,CAAA,KAAA,EAAA;AACEE,MAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,aAAa,CAAC,EAAE;AAC1C,QAAA,CAACA,OAAK,CAAC,WAAW,CAAC,GAAGyI,MAAM;AAC5B,QAAA,CAACzI,OAAK,CAAC,YAAY,CAAC,GAAGwI,IAAAA;AACzB,OAAC,CAAE;MAAAhJ,QAAA,EAAA,cAEHI,eAAA,CAACa,UAAK,EAAA;AAACX,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AAACU,QAAAA,IAAI,EAAE,CAAE;AAAAlB,QAAAA,QAAA,gBACpDgB,cAAA,CAAA,KAAA,EAAA;AAAAhB,UAAAA,QAAA,EAAMT,KAAAA;SAAW,CAAC,eAClByB,cAAA,CAAA,MAAA,EAAA;AAAMV,UAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;AAAAR,UAAAA,QAAA,EAAC,QAAA;AAAC,SAAM,CAAC,CAAA;OAC/C,CAAC,eACRgB,cAAA,CAAA,KAAA,EAAA;AAAKV,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AAAAR,QAAAA,QAAA,EAAEA,QAAAA;AAAQ,OAAM,CAAC,CAAA;KACzD,CAAA;AAAC,GACD,CAAC,CAAA;AAEZ,CAAC;;;AChBD,MAAM2H,YAAU,GAAG3I,KAAK,IAAI;EAC1B,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK9B,SAAS,EAAE,OAAO,KAAK,CAAA;AACvD,EAAA,IAAI,OAAO8B,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAAC4I,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,KAAK,CAAA;AAClE,EAAA,OAAO,EAAE3L,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,IAAIA,KAAK,CAAC9D,MAAM,KAAK,CAAC,CAAC,CAAA;AACtD,CAAC,CAAA;AAED,MAAMgO,yBAAuB,GAAG,GAAG,CAAA;AACnC,MAAMC,wBAAwB,GAAG,iCAAiC,CAAA;AAClE,MAAMC,qBAAmB,GAAG,CAAC,CAAA;AAE7B,MAAMC,aAAa,GACjB,UAACC,gBAAgB,EAAEC,OAAO,EAAA;AAAA,EAAA,IAAPA,OAAO,KAAA,KAAA,CAAA,EAAA;IAAPA,OAAO,GAAG,EAAE,CAAA;AAAA,GAAA;AAAA,EAAA,OAC/BxJ,IAAA,IAA+D;AAAA,IAAA,IAA5Df,KAAK,GAAAe,IAAA,CAALf,KAAK;MAAEC,QAAQ,GAAAc,IAAA,CAARd,QAAQ;MAAEuK,WAAW,GAAAzJ,IAAA,CAAXyJ,WAAW;MAAEjK,KAAK,GAAAQ,IAAA,CAALR,KAAK;MAAEkK,MAAM,GAAA1J,IAAA,CAAN0J,MAAM;AAAKtK,MAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,WAAA,CAAA,CAAA;AACtD,IAAA,MAAA1G,SAAA,GAAwB/J,cAAQ,CAAC,KAAK,CAAC;AAAhC+Q,MAAAA,IAAI,GAAAhH,SAAA,CAAA,CAAA,CAAA;AAAE0H,MAAAA,OAAO,GAAA1H,SAAA,CAAA,CAAA,CAAA,CAAA;AACpB,IAAA,MAAA2H,UAAA,GAAgC1R,cAAQ,CAAC,KAAK,CAAC;AAAxCF,MAAAA,QAAQ,GAAA4R,UAAA,CAAA,CAAA,CAAA;AAAE3R,MAAAA,WAAW,GAAA2R,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,IAAA,MAAAC,UAAA,GAAoC3R,cAAQ,CAAC,KAAK,CAAC;AAA5C4R,MAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,IAAA,MAAAG,UAAA,GAAsC9R,cAAQ,CAAC,KAAK,CAAC;AAA9C+R,MAAAA,WAAW,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,cAAc,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAClC,MAAAG,UAAA,GAAwCjS,cAAQ,CAAC;AAAEkS,QAAAA,GAAG,EAAE,CAAC;AAAEC,QAAAA,OAAO,EAAE,CAAC;AAAEC,QAAAA,MAAM,EAAE,CAAA;AAAE,OAAC,CAAC;AAA5EC,MAAAA,YAAY,GAAAJ,UAAA,CAAA,CAAA,CAAA;AAAEK,MAAAA,eAAe,GAAAL,UAAA,CAAA,CAAA,CAAA,CAAA;AACpC,IAAA,MAAMM,UAAU,GAAGtR,YAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,IAAA,MAAMuR,uBAAuB,GAAG/Q,iBAAW,CAACgR,OAAO,IAAI;AACrD,MAAA,IAAI,OAAOC,QAAQ,KAAK,WAAW,EAAE,OAAA;AACrCA,MAAAA,QAAQ,CAACC,IAAI,CAACpK,KAAK,CAACqK,WAAW,CAAC,oCAAoC,EAAKH,OAAO,CAACL,MAAM,OAAI,CAAC,CAAA;AAC5FM,MAAAA,QAAQ,CAACC,IAAI,CAACpK,KAAK,CAACqK,WAAW,CAAC,sCAAsC,EAAKH,OAAO,CAACL,MAAM,OAAI,CAAC,CAAA;AAC9FM,MAAAA,QAAQ,CAACC,IAAI,CAACpK,KAAK,CAACqK,WAAW,CAAC,iCAAiC,EAAKH,OAAO,CAACP,GAAG,OAAI,CAAC,CAAA;KACvF,EAAE,EAAE,CAAC,CAAA;AACN,IAAA,MAAMW,kBAAkB,GAAGpR,iBAAW,CAAC,MAAM;MAC3C,IAAI,OAAOvB,MAAM,KAAK,WAAW,IAAI,CAACqS,UAAU,CAAC5Q,OAAO,EAAE,OAAA;MAC1D,MAAMmR,IAAI,GAAGP,UAAU,CAAC5Q,OAAO,CAACkC,qBAAqB,EAAE,CAAA;AACvD,MAAA,MAAMqO,GAAG,GAAGzN,IAAI,CAACG,GAAG,CAACkO,IAAI,CAACC,MAAM,GAAG5B,qBAAmB,EAAE,CAAC,CAAC,CAAA;AAC1D,MAAA,MAAMsB,OAAO,GAAG;QACdP,GAAG;QACHE,MAAM,EAAE3N,IAAI,CAACG,GAAG,CAAC1E,MAAM,CAAC8S,WAAW,GAAGd,GAAG,EAAE,CAAC,CAAA;OAC7C,CAAA;MACDI,eAAe,CAACG,OAAO,CAAC,CAAA;MACxBD,uBAAuB,CAACC,OAAO,CAAC,CAAA;AAClC,KAAC,EAAE,CAACD,uBAAuB,CAAC,CAAC,CAAA;AAE7BvS,IAAAA,eAAS,CAAC,MAAM;AACd,MAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE,OAAA;AACnC,MAAA,MAAMC,UAAU,GAAGD,MAAM,CAACE,UAAU,CAAC,oBAAoB,CAAC,CAAA;MAC1D,MAAMC,cAAc,GAAGA,MAAM;AAC3BN,QAAAA,WAAW,CAACI,UAAU,CAACG,OAAO,CAAC,CAAA;OAChC,CAAA;AACDD,MAAAA,cAAc,EAAE,CAAA;AAChBF,MAAAA,UAAU,CAACI,gBAAgB,GAAGJ,UAAU,CAACI,gBAAgB,CAAC,QAAQ,EAAEF,cAAc,CAAC,GAAGF,UAAU,CAACK,WAAW,CAACH,cAAc,CAAC,CAAA;AAC5H,MAAA,OAAO,MAAM;AACXF,QAAAA,UAAU,CAACM,mBAAmB,GAAGN,UAAU,CAACM,mBAAmB,CAAC,QAAQ,EAAEJ,cAAc,CAAC,GAAGF,UAAU,CAACO,cAAc,CAACL,cAAc,CAAC,CAAA;OACtI,CAAA;KACF,EAAE,EAAE,CAAC,CAAA;AAENJ,IAAAA,eAAS,CAAC,MAAM;AACd,MAAA,IAAI,CAAC8Q,IAAI,IAAI,CAACjR,QAAQ,EAAE,OAAA;AACxB+S,MAAAA,kBAAkB,EAAE,CAAA;AACpB3S,MAAAA,MAAM,CAACK,gBAAgB,CAAC,QAAQ,EAAEsS,kBAAkB,CAAC,CAAA;MACrD3S,MAAM,CAACK,gBAAgB,CAAC,QAAQ,EAAEsS,kBAAkB,EAAE,IAAI,CAAC,CAAA;AAC3D,MAAA,OAAO,MAAM;AACX3S,QAAAA,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEoS,kBAAkB,CAAC,CAAA;QACxD3S,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEoS,kBAAkB,EAAE,IAAI,CAAC,CAAA;OAC/D,CAAA;KACF,EAAE,CAAC/S,QAAQ,EAAEiR,IAAI,EAAE8B,kBAAkB,CAAC,CAAC,CAAA;AAExC5S,IAAAA,eAAS,CAAC,MAAM;AACd,MAAA,IAAI,OAAOyS,QAAQ,KAAK,WAAW,IAAI,CAAC5S,QAAQ,IAAIuS,YAAY,CAACD,MAAM,IAAI,CAAC,EAAE,OAAA;MAC9EI,uBAAuB,CAACH,YAAY,CAAC,CAAA;AACrC,MAAA,OAAO,MAAM;QACXK,QAAQ,CAACC,IAAI,CAACpK,KAAK,CAAC0K,cAAc,CAAC,oCAAoC,CAAC,CAAA;QACxEP,QAAQ,CAACC,IAAI,CAACpK,KAAK,CAAC0K,cAAc,CAAC,sCAAsC,CAAC,CAAA;QAC1EP,QAAQ,CAACC,IAAI,CAACpK,KAAK,CAAC0K,cAAc,CAAC,iCAAiC,CAAC,CAAA;OACtE,CAAA;KACF,EAAE,CAACnT,QAAQ,EAAEuS,YAAY,EAAEG,uBAAuB,CAAC,CAAC,CAAA;AAErDvS,IAAAA,eAAS,CAAC,MAAM;MACd,IAAI8Q,IAAI,IAAIjR,QAAQ,EAAE;QACpB+R,aAAa,CAAC,IAAI,CAAC,CAAA;QACnBG,cAAc,CAAC,KAAK,CAAC,CAAA;AACrB,QAAA,OAAA;AACF,OAAA;MAEA,IAAI,CAACJ,UAAU,EAAE,OAAA;MACjBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpB,MAAA,MAAMkB,KAAK,GAAGC,UAAU,CAAC,MAAM;QAC7BtB,aAAa,CAAC,KAAK,CAAC,CAAA;QACpBG,cAAc,CAAC,KAAK,CAAC,CAAA;OACtB,EAAEf,yBAAuB,CAAC,CAAA;AAC3B,MAAA,OAAO,MAAM;QACXmC,YAAY,CAACF,KAAK,CAAC,CAAA;OACpB,CAAA;KACF,EAAE,CAACpT,QAAQ,EAAEiR,IAAI,EAAEa,UAAU,CAAC,CAAC,CAAA;AAEhC,IAAA,MAAMyB,cAAc,GAAG5R,iBAAW,CAAC,MAAM;MACvCgQ,OAAO,CAAC,KAAK,CAAC,CAAA;MACdvK,KAAK,CAACoM,YAAY,IAAIpM,KAAK,CAACoM,YAAY,CAAC,KAAK,CAAC,CAAA;MAC/CpM,KAAK,CAACqM,uBAAuB,IAAIrM,KAAK,CAACqM,uBAAuB,CAAC,KAAK,CAAC,CAAA;AACvE,KAAC,EAAE,CAACrM,KAAK,CAAC,CAAC,CAAA;AAEX,IAAA,MAAMsM,gBAAgB,GAAG/R,iBAAW,CAClCsP,IAAI,IAAI;MACN,IAAIA,IAAI,IAAIjR,QAAQ,EAAE;AACpB+S,QAAAA,kBAAkB,EAAE,CAAA;AACtB,OAAA;MACApB,OAAO,CAACV,IAAI,CAAC,CAAA;MACb7J,KAAK,CAACoM,YAAY,IAAIpM,KAAK,CAACoM,YAAY,CAACvC,IAAI,CAAC,CAAA;MAC9C7J,KAAK,CAACqM,uBAAuB,IAAIrM,KAAK,CAACqM,uBAAuB,CAACxC,IAAI,CAAC,CAAA;KACrE,EACD,CAACjR,QAAQ,EAAEoH,KAAK,EAAE2L,kBAAkB,CACtC,CAAC,CAAA;IAED,MAAMY,gBAAgB,GAAG3T,QAAQ,GAC7B;AACE,MAAA,oCAAoC,EAAKuS,YAAY,CAACD,MAAM,GAAI,IAAA;AAChE,MAAA,sCAAsC,EAAKC,YAAY,CAACD,MAAM,GAAI,IAAA;AAClE,MAAA,iCAAiC,EAAKC,YAAY,CAACH,GAAG,GAAI,IAAA;MAC1DA,GAAG,EAAEG,YAAY,CAACH,GAAG;AACrB7G,MAAAA,IAAI,EAAE,CAAA;AACR,KAAC,GACDpG,SAAS,CAAA;IAEb,MAAMyO,oBAAoB,GAAGC,UAAU,IAAI;AAAA,MAAA,IAAAC,iBAAA,CAAA;AACzC,MAAA,IAAI,CAAC9T,QAAQ,EAAE,OAAO6T,UAAU,CAAA;MAChC,OAAOjM,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEgM,UAAU,EAAE;AACnCE,QAAAA,KAAK,EAAEnM,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEgM,UAAU,IAAA,IAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEE,KAAK,EAAE;UAC1CC,IAAI,EAAExL,8BAAU,CAACqL,UAAU,aAAAC,iBAAA,GAAVD,UAAU,CAAEE,KAAK,qBAAjBD,iBAAA,CAAmBE,IAAI,EAAEvL,OAAK,CAAC,yBAAyB,CAAC,EAAE2I,wBAAwB,CAAA;SACrG,CAAA;AACH,OAAC,CAAC,CAAA;KACH,CAAA;IAED,MAAM6C,gBAAgB,GAAGC,MAAM,IAAI;AAAA,MAAA,IAAAC,aAAA,CAAA;AACjC,MAAA,IAAI,CAACnU,QAAQ,EAAE,OAAOkU,MAAM,CAAA;MAC5B,OAAOtM,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEqM,MAAM,EAAE;AAC/BH,QAAAA,KAAK,EAAEnM,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEqM,MAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEH,KAAK,EAAE;UACtCC,IAAI,EAAEpM,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEqM,MAAM,IAAA,IAAA,IAAA,CAAAC,aAAA,GAAND,MAAM,CAAEH,KAAK,KAAA,IAAA,GAAA,KAAA,CAAA,GAAbI,aAAA,CAAeH,IAAI,EAAEL,gBAAgB,CAAA;SAC9D,CAAA;AACH,OAAC,CAAC,CAAA;KACH,CAAA;IAED,MAAMS,cAAc,GAAGC,UAAU,IAAI;AACnC,MAAA,MAAMC,UAAU,GAAG,QAAO7C,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAE8C,KAAK,CAAA,KAAK,UAAU,GAAG9C,WAAW,CAAC8C,KAAK,CAACtN,KAAK,CAAC,GAAGA,KAAK,CAAA;AAC9F,MAAA,MAAMuN,UAAU,GAAGhD,OAAO,CAACiD,UAAU,IAAIH,UAAU,IAAI,IAAI,GAAIlN,KAAK,CAACsN,MAAM,GAAG,IAAI,GAAG,EAAE,GAAIJ,UAAU,CAAA;AACrG,MAAA,oBACErL,cAAA,CAACsI,gBAAgB,EAAA5J,QAAA,CAAA;AACfgN,QAAAA,UAAU,EAAE,KAAA;OACR/M,EAAAA,MAAM,CAACC,MAAM,CAAC,EAAE,EAAET,KAAK,EAAEiN,UAAU,CAAC,EAAA;AACxC9L,QAAAA,SAAS,EAAEE,OAAK,CAAC,mBAAmB,CAAE;AACtCxB,QAAAA,KAAK,EAAEuN,UAAW;QAClBtN,QAAQ,EAAE,QAAOuK,WAAW,IAAA,IAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAEmD,MAAM,CAAK,KAAA,UAAU,GAAG,YAAA;AAAA,UAAA,OAAa1N,QAAQ,CAACuK,WAAW,CAACmD,MAAM,CAAC,GAAA,EAAA,CAAAjK,KAAA,CAAAkK,IAAA,CAAAC,SAAA,CAAO,CAAC,CAAC,CAAA;AAAA,SAAA,GAAG5N,QAAS;AACpH6N,QAAAA,SAAS,EAAC,KAAK;AACfvB,QAAAA,YAAY,EAAEE,gBAAiB;AAC/BD,QAAAA,uBAAuB,EAAEC,gBAAiB;AAC1CsB,QAAAA,cAAc,EAAExM,8BAAU,CAACpB,KAAK,CAAC4N,cAAc,EAAEhV,QAAQ,IAAIyI,OAAK,CAAC,yBAAyB,CAAC,EAAEzI,QAAQ,IAAIoR,wBAAwB,CAAE;AACrI6D,QAAAA,iBAAiB,EAAEzM,8BAAU,CAACpB,KAAK,CAAC6N,iBAAiB,EAAEjV,QAAQ,IAAIyI,OAAK,CAAC,yBAAyB,CAAC,EAAEzI,QAAQ,IAAIoR,wBAAwB,CAAE;AAC3I8D,QAAAA,gBAAgB,EAAE1M,8BAAU,CAACpB,KAAK,CAAC8N,gBAAgB,EAAElV,QAAQ,IAAIyI,OAAK,CAAC,yBAAyB,CAAC,EAAEzI,QAAQ,IAAIoR,wBAAwB,CAAE;AACzI+D,QAAAA,YAAY,EAAEvN,MAAM,CAACC,MAAM,CAAC,EAAE,EAAET,KAAK,CAAC+N,YAAY,EAAExB,gBAAgB,CAAE;AACtEyB,QAAAA,UAAU,EAAExN,MAAM,CAACC,MAAM,CAAC,EAAE,EAAET,KAAK,CAACgO,UAAU,EAAEzB,gBAAgB,CAAE;AAClE0B,QAAAA,aAAa,EAAEzN,MAAM,CAACC,MAAM,CAAC,EAAE,EAAET,KAAK,CAACiO,aAAa,EAAE1B,gBAAgB,CAAE;AACxEE,QAAAA,UAAU,EAAED,oBAAoB,CAACxM,KAAK,CAACyM,UAAU,CAAE;AACnDK,QAAAA,MAAM,EAAED,gBAAgB,CAAC7M,KAAK,CAAC8M,MAAM,CAAE;AACvCoB,QAAAA,cAAc,EAAEtV,QAAQ,GAAG,EAAE,GAAGoH,KAAK,CAACkO,cAAe;AACrDC,QAAAA,kBAAkB,EAAEvV,QAAQ,GAAG,KAAK,GAAGoH,KAAK,CAACmO,kBAAmB;QAChElJ,KAAK,EAAErM,QAAQ,GAAG;AAAEwV,UAAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;SAAG,GAAGpO,KAAK,CAACiF,KAAM;QACnDoJ,OAAO,EAAEjE,OAAO,CAACiD,UAAU,GAAG,IAAI,GAAGrN,KAAK,CAACqO,OAAQ;QACnDC,YAAY,EAAE1V,QAAQ,IAAIwR,OAAO,CAACiD,UAAU,GAAI,OAAOrU,MAAM,KAAK,WAAW,GAAGgH,KAAK,CAACsO,YAAY,GAAGtV,MAAM,CAACuV,UAAU,GAAIvO,KAAK,CAACsO,YAAAA;AAAa,OAAA,CAC9I,CAAC,CAAA;KAEL,CAAA;IACD,oBACErN,eAAA,CAAAW,mBAAA,EAAA;MAAAf,QAAA,EAAA,CACG6J,UAAU,IACT,OAAOc,QAAQ,KAAK,WAAW,iBAC/BgD,qBAAY,cACV3M,cAAA,CAAA,KAAA,EAAA;AACEV,QAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,eAAe,CAAC,EAAEwJ,WAAW,IAAIxJ,OAAK,CAAC,qBAAqB,CAAC,CAAE;AAC3FA,QAAAA,KAAK,EAAE;UACL2J,GAAG,EAAEG,YAAY,CAACH,GAAG;UACrBE,MAAM,EAAEC,YAAY,CAACD,MAAAA;SACrB;AACFxJ,QAAAA,OAAO,EAAEyK,cAAe;QACxBsC,WAAW,EAAEnK,CAAC,IAAI;UAChBA,CAAC,CAACoK,cAAc,EAAE,CAAA;AACpB,SAAA;AAAE,OACH,CAAC,EACFlD,QAAQ,CAACC,IACX,CAAC,eACH5J,cAAA,CAAA,MAAA,EAAA;AAAMX,QAAAA,GAAG,EAAEmK,UAAW;QAAAxK,QAAA,eACpBgB,cAAA,CAAC+H,UAAU,EAAA;AAACxJ,UAAAA,KAAK,EAAEA,KAAM;AAACyJ,UAAAA,IAAI,EAAEA,IAAK;AAACC,UAAAA,MAAM,EAAEtB,YAAU,CAAC3I,KAAK,CAAE;AAAAgB,UAAAA,QAAA,EAC7D,OAAOyJ,MAAM,KAAK,UAAU,GACzBA,MAAM,CAAC;AACLzJ,YAAAA,QAAQ,EAAEmM,cAAAA;WACX,CAAC,GACFA,cAAc,EAAC;SACT,CAAA;AAAC,OACT,CAAC,CAAA;AAAA,KACP,CAAC,CAAA;GAEN,CAAA;AAAA;;AC9LH,MAAMxE,UAAU,GAAG3I,KAAK,IAAI;EAC1B,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK9B,SAAS,EAAE,OAAO,KAAK,CAAA;AACvD,EAAA,IAAI,OAAO8B,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAAC4I,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,KAAK,CAAA;AAClE,EAAA,IAAI3L,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,IAAIA,KAAK,CAAC9D,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;AAC5D,EAAA,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAMgO,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAME,mBAAmB,GAAG,CAAC,CAAA;AAE7B,MAAM0E,WAAW,GAAGzH,UAAU,CAACtG,IAAA,IAAgH;AAAA,EAAA,IAA7Gf,KAAK,GAAAe,IAAA,CAALf,KAAK;IAAEO,KAAK,GAAAQ,IAAA,CAALR,KAAK;IAAEwO,UAAU,GAAAhO,IAAA,CAAVgO,UAAU;IAAEd,gBAAgB,GAAAlN,IAAA,CAAhBkN,gBAAgB;IAAAe,cAAA,GAAAjO,IAAA,CAAEkO,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,YAAY,GAAAA,cAAA;IAAEzC,YAAY,GAAAxL,IAAA,CAAZwL,YAAY;IAAEtM,QAAQ,GAAAc,IAAA,CAARd,QAAQ;IAAEe,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;AACtI,EAAA,MAAAgC,SAAA,GAA0B/J,cAAQ,CAAC+G,KAAK,CAAC;AAAlCkP,IAAAA,KAAK,GAAAlM,SAAA,CAAA,CAAA,CAAA;AAAEmM,IAAAA,QAAQ,GAAAnM,SAAA,CAAA,CAAA,CAAA,CAAA;AACtB,EAAA,MAAA2H,UAAA,GAAwB1R,cAAQ,CAAC,KAAK,CAAC;AAAhC+Q,IAAAA,IAAI,GAAAW,UAAA,CAAA,CAAA,CAAA;AAAED,IAAAA,OAAO,GAAAC,UAAA,CAAA,CAAA,CAAA,CAAA;AACpB,EAAA,MAAAC,UAAA,GAAgC3R,cAAQ,CAAC,KAAK,CAAC;AAAxCF,IAAAA,QAAQ,GAAA6R,UAAA,CAAA,CAAA,CAAA;AAAE5R,IAAAA,WAAW,GAAA4R,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,EAAA,MAAAG,UAAA,GAAoC9R,cAAQ,CAAC,KAAK,CAAC;AAA5C4R,IAAAA,UAAU,GAAAE,UAAA,CAAA,CAAA,CAAA;AAAED,IAAAA,aAAa,GAAAC,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,MAAAG,UAAA,GAAsCjS,cAAQ,CAAC,KAAK,CAAC;AAA9C+R,IAAAA,WAAW,GAAAE,UAAA,CAAA,CAAA,CAAA;AAAED,IAAAA,cAAc,GAAAC,UAAA,CAAA,CAAA,CAAA,CAAA;EAClC,MAAAkE,UAAA,GAAwCnW,cAAQ,CAAC;AAAEkS,MAAAA,GAAG,EAAE,CAAC;AAAEC,MAAAA,OAAO,EAAE,CAAC;AAAEC,MAAAA,MAAM,EAAE,CAAA;AAAE,KAAC,CAAC;AAA5EC,IAAAA,YAAY,GAAA8D,UAAA,CAAA,CAAA,CAAA;AAAE7D,IAAAA,eAAe,GAAA6D,UAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,MAAM5D,UAAU,GAAGtR,YAAM,CAAC,IAAI,CAAC,CAAA;AAC/B,EAAA,MAAMmV,QAAQ,GAAGzM,aAAO,CAAC,MAAM;AAC7B,IAAA,OAAOmM,UAAU,IAAI,CAACA,UAAU,CAACG,KAAK,CAAC,CAAA;AACzC,GAAC,EAAE,CAACH,UAAU,EAAEG,KAAK,CAAC,CAAC,CAAA;EAEvB,MAAA7L,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;AAErBtK,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE,OAAA;AACnC,IAAA,MAAMC,UAAU,GAAGD,MAAM,CAACE,UAAU,CAAC,oBAAoB,CAAC,CAAA;IAC1D,MAAMC,cAAc,GAAGA,MAAM;AAC3BN,MAAAA,WAAW,CAACI,UAAU,CAACG,OAAO,CAAC,CAAA;KAChC,CAAA;AACDD,IAAAA,cAAc,EAAE,CAAA;AAChBF,IAAAA,UAAU,CAACI,gBAAgB,GAAGJ,UAAU,CAACI,gBAAgB,CAAC,QAAQ,EAAEF,cAAc,CAAC,GAAGF,UAAU,CAACK,WAAW,CAACH,cAAc,CAAC,CAAA;AAC5H,IAAA,OAAO,MAAM;AACXF,MAAAA,UAAU,CAACM,mBAAmB,GAAGN,UAAU,CAACM,mBAAmB,CAAC,QAAQ,EAAEJ,cAAc,CAAC,GAAGF,UAAU,CAACO,cAAc,CAACL,cAAc,CAAC,CAAA;KACtI,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMwS,kBAAkB,GAAGpR,iBAAW,CAAC,MAAM;IAC3C,IAAI,OAAOvB,MAAM,KAAK,WAAW,IAAI,CAACqS,UAAU,CAAC5Q,OAAO,EAAE,OAAA;IAC1D,MAAMmR,IAAI,GAAGP,UAAU,CAAC5Q,OAAO,CAACkC,qBAAqB,EAAE,CAAA;AACvD,IAAA,MAAMqO,GAAG,GAAGzN,IAAI,CAACG,GAAG,CAACkO,IAAI,CAACC,MAAM,GAAG5B,mBAAmB,EAAE,CAAC,CAAC,CAAA;AAC1DmB,IAAAA,eAAe,CAAC;MACdJ,GAAG;MACHE,MAAM,EAAE3N,IAAI,CAACG,GAAG,CAAC1E,MAAM,CAAC8S,WAAW,GAAGd,GAAG,EAAE,CAAC,CAAA;AAC9C,KAAC,CAAC,CAAA;GACH,EAAE,EAAE,CAAC,CAAA;AAENjS,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI,CAAC8Q,IAAI,IAAI,CAACjR,QAAQ,EAAE,OAAA;AACxB+S,IAAAA,kBAAkB,EAAE,CAAA;AACpB3S,IAAAA,MAAM,CAACK,gBAAgB,CAAC,QAAQ,EAAEsS,kBAAkB,CAAC,CAAA;IACrD3S,MAAM,CAACK,gBAAgB,CAAC,QAAQ,EAAEsS,kBAAkB,EAAE,IAAI,CAAC,CAAA;AAC3D,IAAA,OAAO,MAAM;AACX3S,MAAAA,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEoS,kBAAkB,CAAC,CAAA;MACxD3S,MAAM,CAACO,mBAAmB,CAAC,QAAQ,EAAEoS,kBAAkB,EAAE,IAAI,CAAC,CAAA;KAC/D,CAAA;GACF,EAAE,CAAC/S,QAAQ,EAAEiR,IAAI,EAAE8B,kBAAkB,CAAC,CAAC,CAAA;AAExC5S,EAAAA,eAAS,CAAC,MAAM;IACd,IAAI8Q,IAAI,IAAIjR,QAAQ,EAAE;MACpB+R,aAAa,CAAC,IAAI,CAAC,CAAA;MACnBG,cAAc,CAAC,KAAK,CAAC,CAAA;AACrB,MAAA,OAAA;AACF,KAAA;IAEA,IAAI,CAACJ,UAAU,EAAE,OAAA;IACjBI,cAAc,CAAC,IAAI,CAAC,CAAA;AACpB,IAAA,MAAMkB,KAAK,GAAGC,UAAU,CAAC,MAAM;MAC7BtB,aAAa,CAAC,KAAK,CAAC,CAAA;MACpBG,cAAc,CAAC,KAAK,CAAC,CAAA;KACtB,EAAEf,uBAAuB,CAAC,CAAA;AAC3B,IAAA,OAAO,MAAM;MACXmC,YAAY,CAACF,KAAK,CAAC,CAAA;KACpB,CAAA;GACF,EAAE,CAACpT,QAAQ,EAAEiR,IAAI,EAAEa,UAAU,CAAC,CAAC,CAAA;AAEhC,EAAA,MAAMyE,aAAa,GAAG5U,iBAAW,CAAC,MAAM;IACtCgQ,OAAO,CAAC,KAAK,CAAC,CAAA;AACd6B,IAAAA,YAAY,IAAIA,YAAY,CAAC,KAAK,CAAC,CAAA;AACrC,GAAC,EAAE,CAACA,YAAY,CAAC,CAAC,CAAA;AAElB,EAAA,MAAME,gBAAgB,GAAG/R,iBAAW,CAClCsP,IAAI,IAAI;IACN,IAAIA,IAAI,IAAIjR,QAAQ,EAAE;AACpB+S,MAAAA,kBAAkB,EAAE,CAAA;AACtB,KAAA;IACApB,OAAO,CAACV,IAAI,CAAC,CAAA;IACbmF,QAAQ,CAACnP,KAAK,CAAC,CAAA;AACfuM,IAAAA,YAAY,IAAIA,YAAY,CAACvC,IAAI,CAAC,CAAA;GACnC,EACD,CAACjR,QAAQ,EAAEwT,YAAY,EAAET,kBAAkB,EAAE9L,KAAK,CACpD,CAAC,CAAA;EAED,MAAMuP,kBAAkB,GAAGxW,QAAQ,GAC/B;AACE,IAAA,sCAAsC,EAAKuS,YAAY,CAACD,MAAM,GAAI,IAAA;IAClEF,GAAG,EAAEG,YAAY,CAACH,GAAG;AACrB7G,IAAAA,IAAI,EAAE,CAAA;AACR,GAAC,GACDpG,SAAS,CAAA;EAEb,MAAMsR,cAAc,gBAClBpO,eAAA,CAAA,KAAA,EAAA;AACEE,IAAAA,SAAS,EAAEE,OAAK,CAAC,eAAe,CAAE;IAClCK,OAAO,EAAE4C,CAAC,IAAI;MACZA,CAAC,CAACgL,eAAe,EAAE,CAAA;KACnB;AAAAzO,IAAAA,QAAA,gBAEFgB,cAAA,CAAA,KAAA,EAAA;AAAKV,MAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;MAAAR,QAAA,EAAEA,QAAQ,CAAC;AAAEhB,QAAAA,KAAK,EAAEkP,KAAK;AAAEjP,QAAAA,QAAQ,EAAEkP,QAAAA;OAAU,CAAA;AAAC,KAAM,CAAC,eACjG/N,eAAA,CAACiE,QAAG,EAAA;AAAC/D,MAAAA,SAAS,EAAEE,OAAK,CAAC,iBAAiB,CAAE;AAAC8D,MAAAA,OAAO,EAAC,KAAK;AAACoK,MAAAA,MAAM,EAAE,CAAE;MAAA1O,QAAA,EAAA,cAChEgB,cAAA,CAACwD,QAAG,EAAA;QAAAxE,QAAA,eACFgB,cAAA,CAACuG,WAAM,EAAA;AAACrG,UAAAA,IAAI,EAAEnJ,QAAQ,GAAGmF,SAAS,GAAG,OAAQ;AAAC2D,UAAAA,OAAO,EAAEyN,aAAc;UAAAtO,QAAA,EAClEwC,aAAa,CAAC;AAAEwB,YAAAA,EAAE,EAAE,YAAA;WAAc,CAAA;SAC7B,CAAA;AAAC,OACN,CAAC,eACNhD,cAAA,CAACwD,QAAG,EAAA;QAAAxE,QAAA,eACFgB,cAAA,CAACuG,WAAM,EAAA;AACLrG,UAAAA,IAAI,EAAEnJ,QAAQ,GAAGmF,SAAS,GAAG,OAAQ;AACrCc,UAAAA,IAAI,EAAC,SAAS;AACdqQ,UAAAA,QAAQ,EAAEA,QAAS;UACnBxN,OAAO,EAAEA,MAAM;AACbyN,YAAAA,aAAa,EAAE,CAAA;AACfrP,YAAAA,QAAQ,IAAIA,QAAQ,CAACiP,KAAK,CAAC,CAAA;WAC3B;UAAAlO,QAAA,EAEDwC,aAAa,CAAC;AAAEwB,YAAAA,EAAE,EAAE,eAAA;WAAiB,CAAA;SAChC,CAAA;AAAC,OACN,CAAC,CAAA;AAAA,KACH,CAAC,CAAA;AAAA,GACH,CACN,CAAA;EAED,oBACE5D,eAAA,CAAAW,mBAAA,EAAA;IAAAf,QAAA,EAAA,CACG6J,UAAU,IACT,OAAOc,QAAQ,KAAK,WAAW,iBAC/BgD,qBAAY,cACV3M,cAAA,CAAA,KAAA,EAAA;AACEV,MAAAA,SAAS,EAAEC,8BAAU,CAACC,OAAK,CAAC,eAAe,CAAC,EAAEwJ,WAAW,IAAIxJ,OAAK,CAAC,qBAAqB,CAAC,CAAE;AAC3FA,MAAAA,KAAK,EAAE;QACL2J,GAAG,EAAEG,YAAY,CAACH,GAAG;QACrBE,MAAM,EAAEC,YAAY,CAACD,MAAAA;OACrB;AACFxJ,MAAAA,OAAO,EAAEyN,aAAc;MACvBV,WAAW,EAAEnK,CAAC,IAAI;QAChBA,CAAC,CAACoK,cAAc,EAAE,CAAA;AACpB,OAAA;KACD,CAAC,EACFlD,QAAQ,CAACC,IACX,CAAC,eACH5J,cAAA,CAAC2N,aAAQ,EAAA;AACP3F,MAAAA,IAAI,EAAEA,IAAK;MACX4F,OAAO,EAAE,CAAC,OAAO,CAAE;AACnBX,MAAAA,SAAS,EAAElW,QAAQ,GAAG,YAAY,GAAGkW,SAAU;MAC/CX,kBAAkB,EAAE,CAACvV,QAAS;MAC9BqM,KAAK,EAAErM,QAAQ,GAAG;AAAEwV,QAAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;AAAE,OAAC,GAAGrQ,SAAU;MACjD+P,gBAAgB,EAAE1M,8BAAU,CAACC,OAAK,CAAC,kBAAkB,CAAC,EAAEyM,gBAAgB,CAAE;AAC1EC,MAAAA,YAAY,EAAEqB,kBAAmB;AACjChD,MAAAA,YAAY,EAAEE,gBAAiB;AAC/BoD,MAAAA,IAAI,EAAE;AAAEtU,QAAAA,KAAK,EAAE,CAAC;AAAEsF,UAAAA,GAAG,EAAE,SAAS;AAAEN,UAAAA,KAAK,EAAE,IAAA;SAAM,CAAA;OAAI;MACnDuP,cAAc,EAAEA,MAAMN,cAAe;AAAAxO,MAAAA,QAAA,eAErCgB,cAAA,CAAA,MAAA,EAAA;AAAMX,QAAAA,GAAG,EAAEmK,UAAW;QAAAxK,QAAA,eACpBgB,cAAA,CAAC+H,UAAU,EAAA;AAACC,UAAAA,IAAI,EAAEA,IAAK;AAACC,UAAAA,MAAM,EAAEtB,UAAU,CAAC3I,KAAK,CAAE;AAACO,UAAAA,KAAK,EAAEA,KAAAA;SAAQ,CAAA;OAC9D,CAAA;AAAC,KACC,CAAC,CAAA;AAAA,GACX,CAAC,CAAA;AAEP,CAAC;;AC3KD,MAAMwP,iBAAe,GAAG1I,UAAU,CAAC,CAAC;EAAE9G,KAAK;EAAEP,KAAK;EAAEC,QAAQ;EAAE+P,WAAW;EAAEjB,UAAU;EAAEd,gBAAgB;EAAEgB,SAAS;EAAE1C,YAAY;EAAE,GAAGpM,KAAAA;AAAM,CAAC,KAAK;EAC/I,oBACE6B,cAAA,CAAC8M,WAAW,EAAA;AAACvO,IAAAA,KAAK,EAAEA,KAAM;AAACP,IAAAA,KAAK,EAAEA,KAAM;AAACC,IAAAA,QAAQ,EAAEA,QAAS;IAAO8O,UAAU;IAAEd,gBAAgB;IAAEgB,SAAS;IAAE1C,YAAY;AAAAvL,IAAAA,QAAA,EACrHA,CAAC;MAAEhB,KAAK;AAAEC,MAAAA,QAAAA;KAAU,kBACnB+B,cAAA,CAACiO,UAAK,EAAA;AAAA,MAAA,GACA9P,KAAK;AACT6P,MAAAA,WAAW,EAAEA,WAAW,IAAI,CAAA,GAAA,EAAMzP,KAAK,CAAG,CAAA;AAC1Ce,MAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;MACrCxB,KAAK,EAAEI,uBAAG,CAACJ,KAAK,EAAE,OAAO,EAAE,EAAE,CAAE;MAC/BC,QAAQ,EAAEwE,CAAC,IAAIxE,QAAQ,CAACwE,CAAC,CAAChG,MAAM,CAACuB,KAAK,GAAG;AAAEO,QAAAA,KAAK,EAAEkE,CAAC,CAAChG,MAAM,CAACuB,KAAK;AAAEA,QAAAA,KAAK,EAAEyE,CAAC,CAAChG,MAAM,CAACuB,KAAAA;AAAM,OAAC,GAAG,IAAI,CAAA;KACjG,CAAA;AACF,GACU,CAAC,CAAA;AAElB,CAAC,CAAC;;ACZF,MAAMkQ,mBAAmB,GAAGA,CAACC,KAAK,EAAEC,IAAI,EAAE5M,aAAa,KAAK;AAC1D,EAAA,IAAI,CAAC6M,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAACE,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC9C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,OAAO;IACL5P,KAAK,EAAE,CAAC4P,KAAK,IAAI;AACf,MAAA,IAAIE,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIE,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AAC5C,QAAA,OAAO,CAAGA,EAAAA,KAAK,CAAC,CAAC,CAAC,CAAIA,CAAAA,EAAAA,KAAK,CAAC,CAAC,CAAC,CAAA,EAAGC,IAAI,IAAI,EAAE,CAAE,CAAA,CAAA;AAC/C,OAAA;AACA,MAAA,IAAIC,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACtB,QAAA,OAAO3M,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,MAAA;AAAO,SAAC,EAAE;AAAE5H,UAAAA,KAAK,EAAE+S,KAAK,CAAC,CAAC,CAAC;AAAEC,UAAAA,IAAAA;AAAK,SAAC,CAAC,CAAA;AACjE,OAAA;AACA,MAAA,IAAIC,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;AACtB,QAAA,OAAO3M,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,UAAA;AAAW,SAAC,EAAE;AAAE5H,UAAAA,KAAK,EAAE+S,KAAK,CAAC,CAAC,CAAC;AAAEC,UAAAA,IAAAA;AAAK,SAAC,CAAC,CAAA;AACrE,OAAA;KACD,EAAED,KAAK,CAAC;AACTnQ,IAAAA,KAAK,EAAE,CAACmQ,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAEA,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;GAC3C,CAAA;AACH,CAAC,CAAA;AAED,MAAMG,sBAAsB,GAAGtQ,KAAK,IAAI;AACtC,EAAA,MAAMmQ,KAAK,GAAG/P,uBAAG,CAACJ,KAAK,EAAE,OAAO,CAAC,CAAA;AACjC,EAAA,OAAO,EAAEmQ,KAAK,IAAIE,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIE,4BAAQ,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,IAAIA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAMI,uBAAqB,GAAGlJ,UAAU,CAAC,CAAC;EAAE9G,KAAK;EAAEP,KAAK;EAAEC,QAAQ;EAAE+P,WAAW;AAAEjB,EAAAA,UAAU,GAAGuB,sBAAsB;EAAErC,gBAAgB;EAAEgB,SAAS;EAAE1C,YAAY;EAAE6D,IAAI;EAAE,GAAGjQ,KAAAA;AAAM,CAAC,KAAK;EACpL,MAAM;AAAEqD,IAAAA,aAAAA;GAAe,GAAGF,iBAAO,CAAC;AAAEC,IAAAA,UAAU,EAAE,QAAA;AAAS,GAAC,CAAC,CAAA;EAC3D,oBACEvB,cAAA,CAAC8M,WAAW,EAAA;AAACvO,IAAAA,KAAK,EAAEA,KAAM;AAACP,IAAAA,KAAK,EAAEA,KAAM;AAACC,IAAAA,QAAQ,EAAEA,QAAS;IAAO8O,UAAU;IAAEd,gBAAgB;IAAEgB,SAAS;IAAE1C,YAAY;AAAAvL,IAAAA,QAAA,EACrHA,CAAC;MAAEhB,KAAK;AAAEC,MAAAA,QAAAA;AAAS,KAAC,kBACnBmB,eAAA,CAACa,UAAK,CAACuO,OAAO,EAAA;MAAAxP,QAAA,EAAA,cACZgB,cAAA,CAACyO,gBAAW,EAAA;AAAA,QAAA,GACNtQ,KAAK;AACT6P,QAAAA,WAAW,EAAEA,WAAW,IAAI,CAAA,EAAGxM,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,aAAA;SAAe,CAAC,CAAGzE,EAAAA,KAAK,CAAG,CAAA;AAC9Ee,QAAAA,SAAS,EAAEE,OAAK,CAAC,0BAA0B,CAAE;QAC7CxB,KAAK,EAAEI,uBAAG,CAACJ,KAAK,EAAE,UAAU,EAAE,EAAE,CAAE;QAClCC,QAAQ,EAAExB,MAAM,IAAI;AAClBwB,UAAAA,QAAQ,CAACiQ,mBAAmB,CAAC,CAACzR,MAAM,EAAE2B,uBAAG,CAACJ,KAAK,EAAE,UAAU,CAAC,CAAC,EAAEoQ,IAAI,EAAE5M,aAAa,CAAC,CAAC,CAAA;AACtF,SAAA;AAAE,OACH,CAAC,eACFxB,cAAA,CAACiO,UAAK,EAAA;AACJzO,QAAAA,KAAK,EAAE;AACLzE,UAAAA,KAAK,EAAE,EAAE;AACT2T,UAAAA,UAAU,EAAE,CAAC;AACbC,UAAAA,WAAW,EAAE,CAAC;AACdC,UAAAA,aAAa,EAAE,MAAA;SACf;AACFZ,QAAAA,WAAW,EAAC,GAAG;QACfX,QAAQ,EAAA,IAAA;AAAA,OACT,CAAC,eACFrN,cAAA,CAACyO,gBAAW,EAAA;AAAA,QAAA,GACNtQ,KAAK;AACT6P,QAAAA,WAAW,EAAEA,WAAW,IAAI,CAAA,EAAGxM,aAAa,CAAC;AAAEwB,UAAAA,EAAE,EAAE,aAAA;SAAe,CAAC,CAAGzE,EAAAA,KAAK,CAAG,CAAA;AAC9Ee,QAAAA,SAAS,EAAEE,OAAK,CAAC,0BAA0B,CAAE;QAC7CxB,KAAK,EAAEI,uBAAG,CAACJ,KAAK,EAAE,UAAU,EAAE,EAAE,CAAE;QAClCC,QAAQ,EAAExB,MAAM,IAAI;AAClBwB,UAAAA,QAAQ,CAACiQ,mBAAmB,CAAC,CAAC9P,uBAAG,CAACJ,KAAK,EAAE,UAAU,CAAC,EAAEvB,MAAM,CAAC,EAAE2R,IAAI,EAAE5M,aAAa,CAAC,CAAC,CAAA;AACtF,SAAA;AAAE,OACH,CAAC,EACD4M,IAAI,iBACHpO,cAAA,CAACiO,UAAK,EAAA;AACJzO,QAAAA,KAAK,EAAE;AACLzE,UAAAA,KAAK,EAAE,EAAE;AACT2T,UAAAA,UAAU,EAAE,CAAA;SACZ;AACF1Q,QAAAA,KAAK,EAAEoQ,IAAK;QACZf,QAAQ,EAAA,IAAA;AAAA,OACT,CACF,CAAA;KACY,CAAA;AAChB,GACU,CAAC,CAAA;AAElB,CAAC,CAAC;;AC3EF,MAAMwB,oBAAoB,GAAGxJ,UAAU,CACrCgD,aAAa,CAAC,CAAC;EAAErK,KAAK;EAAEC,QAAQ;AAAE6Q,EAAAA,MAAM,GAAG,MAAM;EAAE,GAAG3Q,KAAAA;AAAM,CAAC,KAAK;EAChE,oBACE6B,cAAA,CAAC+O,eAAU,EAAA;AAAA,IAAA,GACL5Q,KAAK;IACT6Q,aAAa,EAAA,IAAA;AACbF,IAAAA,MAAM,EAAEA,MAAO;AACflE,IAAAA,UAAU,EAAE;MACV,GAAGzM,KAAK,CAACyM,UAAU;AACnBE,MAAAA,KAAK,EAAE;AACL,QAAA,GAAG3M,KAAK,CAACyM,UAAU,EAAEE,KAAK;AAC1BC,QAAAA,IAAI,EAAExL,8BAAU,CAACpB,KAAK,CAACyM,UAAU,EAAEE,KAAK,EAAEC,IAAI,EAAEvL,OAAK,CAAC,mBAAmB,CAAC,CAAA;AAC5E,OAAA;KACA;IACFxB,KAAK,EAAEA,KAAK,IAAIiR,yBAAK,CAACjR,KAAK,CAACA,KAAK,CAAE;IACnCC,QAAQ,EAAED,KAAK,IAAI;MACjB,MAAM;AAAEkR,QAAAA,MAAAA;AAAO,OAAC,GAAGvQ,MAAM,CAACC,MAAM,CAAC;AAAEsQ,QAAAA,MAAM,EAAE,YAAA;OAAc,EAAE/Q,KAAK,CAAC,CAAA;MACjEH,KAAK,IACHC,QAAQ,CAAC;AACPM,QAAAA,KAAK,EAAEuQ,MAAM,KAAK,MAAM,GAAG,GAAG9Q,KAAK,CAACmR,OAAO,CAACL,MAAM,CAAC,CAACI,MAAM,CAACA,MAAM,CAAC,CAAA,CAAA,EAAIlR,KAAK,CAACoR,KAAK,CAACN,MAAM,CAAC,CAACI,MAAM,CAACA,MAAM,CAAC,CAAA,CAAE,GAAGlR,KAAK,CAACkR,MAAM,CAACA,MAAM,CAAC;AACjIlR,QAAAA,KAAK,EAAE,IAAIqR,IAAI,CAACrR,KAAK,CAACmR,OAAO,CAACL,MAAM,CAAC,CAACQ,OAAO,EAAE,CAAA;AACjD,OAAC,CAAC,CAAA;AACN,KAAA;AAAE,GACH,CAAC,CAAA;AAEN,CAAC,CACH;;AC1BA,MAAMC,yBAAyB,GAAGlK,UAAU,CAC1CgD,aAAa,CAAC,CAAC;EAAErK,KAAK;EAAEC,QAAQ;EAAEuR,MAAM;EAAE,GAAGrR,KAAAA;AAAM,CAAC,KAAK;EACvD,oBACEiB,eAAA,CAACqQ,SAAI,EAAA;IAACC,QAAQ,EAAA,IAAA;AAAA1Q,IAAAA,QAAA,GACX,OAAOwQ,MAAM,KAAK,UAAU,GAAGA,MAAM,CAAC;MAAExR,KAAK;AAAEC,MAAAA,QAAAA;KAAU,CAAC,GAAGuR,MAAM,eACpExP,cAAA,CAAC+O,eAAU,CAACY,WAAW,EAAA;AAAA,MAAA,GACjBxR,KAAK;MACT6Q,aAAa,EAAA,IAAA;AACbY,MAAAA,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAE;AAC3BhF,MAAAA,UAAU,EAAE;QACV,GAAGzM,KAAK,CAACyM,UAAU;AACnBE,QAAAA,KAAK,EAAE;AACL,UAAA,GAAG3M,KAAK,CAACyM,UAAU,EAAEE,KAAK;AAC1BC,UAAAA,IAAI,EAAExL,8BAAU,CAACpB,KAAK,CAACyM,UAAU,EAAEE,KAAK,EAAEC,IAAI,EAAEvL,OAAK,CAAC,yBAAyB,CAAC,CAAA;AAClF,SAAA;OACA;AACFxB,MAAAA,KAAK,EAAEA,KAAK,IAAI/C,KAAK,CAACkC,OAAO,CAACa,KAAK,CAACA,KAAK,CAAC,IAAIA,KAAK,CAACA,KAAK,CAAC9D,MAAM,KAAK,CAAC,IAAI8D,KAAK,CAACA,KAAK,CAAC0B,GAAG,CAAClD,IAAI,IAAIyS,yBAAK,CAACzS,IAAI,CAAC,CAAE;MAC/GyB,QAAQ,EAAED,KAAK,IAAI;QACjB,MAAM;AAAEkR,UAAAA,MAAAA;AAAO,SAAC,GAAGvQ,MAAM,CAACC,MAAM,CAAC;AAAEsQ,UAAAA,MAAM,EAAE,YAAA;SAAc,EAAE/Q,KAAK,CAAC,CAAA;AACjEF,QAAAA,QAAQ,CAAC;AACPM,UAAAA,KAAK,EAAEP,KAAK,CAAC0B,GAAG,CAAClD,IAAI,IAAIA,IAAI,CAAC0S,MAAM,CAACA,MAAM,CAAC,CAAC,CAACjJ,IAAI,CAAC,GAAG,CAAC;AACvDjI,UAAAA,KAAK,EAAEA,KAAK,CAAC0B,GAAG,CAAClD,IAAI,IAAI,IAAI6S,IAAI,CAAC7S,IAAI,CAAC8S,OAAO,EAAE,CAAC,CAAA;AACnD,SAAC,CAAC,CAAA;AACJ,OAAA;AAAE,KACH,CAAC,CAAA;AAAA,GACE,CAAC,CAAA;AAEX,CAAC,CACH;;;;;AC5BMO,MAAAA,wBAAwB,GAAG9Q,IAAA,IAA6G;AAAA,EAAA,IAAnG+Q,SAAS,GAAA/Q,IAAA,CAAhBf,KAAK;IAAuB+R,YAAY,GAAAhR,IAAA,CAAtBd,QAAQ;IAAgB+I,YAAY,GAAAjI,IAAA,CAAZiI,YAAY;IAAAgJ,cAAA,GAAAjR,IAAA,CAAEkR,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,cAAA;IAAEE,eAAe,GAAAnR,IAAA,CAAfmR,eAAe;AAAK/R,IAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,WAAA,CAAA,CAAA;EACrI,MAAArG,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;EAErB,MAAM2O,QAAQ,GAAG,IAAIlJ,GAAG,CAAC,CACvB,CAAC,MAAM,EAAEzF,aAAa,CAAC;AAAEwB,IAAAA,EAAE,EAAE,YAAA;AAAa,GAAC,CAAC,CAAC,EAC7C,CAAC,OAAO,EAAExB,aAAa,CAAC;AAAEwB,IAAAA,EAAE,EAAE,SAAA;AAAU,GAAC,CAAC,CAAC,EAC3C,CAAC,MAAM,EAAExB,aAAa,CAAC;AAAEwB,IAAAA,EAAE,EAAE,QAAA;GAAU,CAAC,CAAC,CAC1C,CAAC,CAAA;AAEF,EAAA,MAAMoN,gBAAgB,GAAGxP,aAAO,CAC9B,MAAM,CACJ;IACErC,KAAK,EAAEiD,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,WAAA;AAAY,KAAC,CAAC;IACzCqN,QAAQ,EAAEA,MAAM,CAACpB,yBAAK,EAAE,CAACqB,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAACnB,OAAO,CAAC,KAAK,CAAC,EAAEF,yBAAK,EAAE,CAACG,KAAK,CAAC,KAAK,CAAC,CAAA;AAClF,GAAC,EACD;IACE7Q,KAAK,EAAEiD,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,WAAA;AAAY,KAAC,CAAC;IACzCqN,QAAQ,EAAEA,MAAM,CAACpB,yBAAK,EAAE,CAACE,OAAO,CAAC,OAAO,CAAC,EAAEF,yBAAK,EAAE,CAACG,KAAK,CAAC,OAAO,CAAC,CAAA;AACnE,GAAC,EACD;IACE7Q,KAAK,EAAEiD,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,aAAA;AAAc,KAAC,CAAC;IAC3CqN,QAAQ,EAAEA,MAAM,CAACpB,yBAAK,EAAE,CAACqB,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAACnB,OAAO,CAAC,KAAK,CAAC,EAAEF,yBAAK,EAAE,CAACG,KAAK,CAAC,KAAK,CAAC,CAAA;AACpF,GAAC,EACD;IACE7Q,KAAK,EAAEiD,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,UAAA;AAAW,KAAC,CAAC;IACxCqN,QAAQ,EAAEA,MAAM,CAACpB,yBAAK,EAAE,CAACE,OAAO,CAAC,MAAM,CAAC,EAAEF,yBAAK,EAAE,CAACG,KAAK,CAAC,KAAK,CAAC,CAAA;AAChE,GAAC,EACD;IACE7Q,KAAK,EAAEiD,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,UAAA;AAAW,KAAC,CAAC;IACxCqN,QAAQ,EAAEA,MAAM,CAACpB,yBAAK,EAAE,CAACE,OAAO,CAAC,MAAM,CAAC,EAAEF,yBAAK,EAAE,CAACG,KAAK,CAAC,MAAM,CAAC,CAAA;AACjE,GAAC,CACF,EACD,CAAC5N,aAAa,CAChB,CAAC,CAAA;AAED,EAAA,MAAM+O,gBAAgB,GAAGL,eAAe,KAAKhU,SAAS,GAAGgU,eAAe,GAAGD,SAAS,GAAGG,gBAAgB,GAAG,IAAI,CAAA;AAE9G,EAAA,MAAMI,YAAY,GAAGV,SAAS,KAAK5T,SAAS,CAAA;AAC5C,EAAA,MAAMuU,aAAa,GAAGvY,YAAM,CAAC8O,YAAY,IAAI;AAAEhK,IAAAA,IAAI,EAAE,MAAM;AAAEgB,IAAAA,KAAK,EAAE,IAAA;AAAK,GAAC,CAAC,CAAA;EAE3E,MAAMA,KAAK,GAAGwS,YAAY,GAAGV,SAAS,GAAGW,aAAa,CAAC7X,OAAO,CAAA;AAE9D,EAAA,MAAMqF,QAAQ,GAAGvF,iBAAW,CAC1B2N,QAAQ,IAAI;IACV,IAAI,CAACmK,YAAY,EAAE;AACjBC,MAAAA,aAAa,CAAC7X,OAAO,GAAG,OAAOyN,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAACoK,aAAa,CAAC7X,OAAO,CAAC,GAAGyN,QAAQ,CAAA;AACrG,KAAA;AACA0J,IAAAA,YAAY,IAAZA,IAAAA,IAAAA,YAAY,CAAG,OAAO1J,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAACrI,KAAK,CAAC,GAAGqI,QAAQ,CAAC,CAAA;GAC5E,EACD,CAACmK,YAAY,EAAET,YAAY,EAAE/R,KAAK,CACpC,CAAC,CAAA;AAED,EAAA,MAAM0S,mBAAmB,GAAGhY,iBAAW,CACrCiY,QAAQ,IAAI;AACV,IAAA,MAAAC,kBAAA,GAAqBD,QAAQ,CAACN,QAAQ,EAAE;AAAjCQ,MAAAA,KAAK,GAAAD,kBAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,GAAG,GAAAF,kBAAA,CAAA,CAAA,CAAA,CAAA;IACjB,MAAM5T,IAAI,GAAG,MAAM,CAAA;AACnBiB,IAAAA,QAAQ,CAAC;MACPjB,IAAI;MACJgB,KAAK,EAAE,CAAC6S,KAAK,CAAC1B,OAAO,CAACnS,IAAI,CAAC,CAAC+T,MAAM,EAAE,EAAED,GAAG,CAAC1B,KAAK,CAACpS,IAAI,CAAC,CAAC+T,MAAM,EAAE,CAAA;AAChE,KAAC,CAAC,CAAA;AACJ,GAAC,EACD,CAAC9S,QAAQ,CACX,CAAC,CAAA;AAED,EAAA,MAAM+S,gBAAgB,GAAGtY,iBAAW,CAClCiY,QAAQ,IAAI;IACV,IAAI,EAAC3S,KAAK,IAAA,IAAA,IAALA,KAAK,CAAEA,KAAK,CAAI,IAAA,CAAC/C,KAAK,CAACkC,OAAO,CAACa,KAAK,CAACA,KAAK,CAAC,IAAIA,KAAK,CAACA,KAAK,CAAC9D,MAAM,KAAK,CAAC,EAAE;AAC5E,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACA,IAAA,MAAA+W,mBAAA,GAAqBN,QAAQ,CAACN,QAAQ,EAAE;AAAjCQ,MAAAA,KAAK,GAAAI,mBAAA,CAAA,CAAA,CAAA;AAAEH,MAAAA,GAAG,GAAAG,mBAAA,CAAA,CAAA,CAAA,CAAA;IACjB,MAAMjU,IAAI,GAAG,CAAAgB,KAAK,oBAALA,KAAK,CAAEhB,IAAI,KAAI,MAAM,CAAA;AAClC,IAAA,MAAMkU,UAAU,GAAGjC,yBAAK,CAACjR,KAAK,CAACA,KAAK,CAAC,CAAC,CAAC,CAAC,CAACmR,OAAO,CAACnS,IAAI,CAAC,CAAA;AACtD,IAAA,MAAMmU,QAAQ,GAAGlC,yBAAK,CAACjR,KAAK,CAACA,KAAK,CAAC,CAAC,CAAC,CAAC,CAACoR,KAAK,CAACpS,IAAI,CAAC,CAAA;AAClD,IAAA,MAAMoU,aAAa,GAAGP,KAAK,CAAC1B,OAAO,CAACnS,IAAI,CAAC,CAAA;AACzC,IAAA,MAAMqU,WAAW,GAAGP,GAAG,CAAC1B,KAAK,CAACpS,IAAI,CAAC,CAAA;AACnC,IAAA,OAAOkU,UAAU,CAACI,MAAM,CAACF,aAAa,EAAEpU,IAAI,CAAC,IAAImU,QAAQ,CAACG,MAAM,CAACD,WAAW,EAAErU,IAAI,CAAC,CAAA;AACrF,GAAC,EACD,CAACgB,KAAK,CACR,CAAC,CAAA;AAED,EAAA,MAAMuT,eAAe,GAAG3Q,aAAO,CAAC,MAAM;IACpC,IAAI,CAAC2P,gBAAgB,IAAIA,gBAAgB,CAACrW,MAAM,KAAK,CAAC,EAAE;AACtD,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACA,IAAA,oBACE8F,cAAA,CAAA,KAAA,EAAA;AAAKV,MAAAA,SAAS,EAAEE,KAAK,CAAC,qBAAqB,CAAE;MAAAR,QAAA,EAC1CuR,gBAAgB,CAAC7Q,GAAG,CAAC,CAACiR,QAAQ,EAAEzS,KAAK,kBACpC8B,cAAA,CAAA,MAAA,EAAA;AAEEV,QAAAA,SAAS,EAAEC,8BAAU,CAACC,KAAK,CAAC,eAAe,CAAC,EAAE;AAC5C,UAAA,CAACA,KAAK,CAAC,WAAW,CAAC,GAAGwR,gBAAgB,CAACL,QAAQ,CAAA;AACjD,SAAC,CAAE;AACH9Q,QAAAA,OAAO,EAAEA,MAAM6Q,mBAAmB,CAACC,QAAQ,CAAE;QAAA3R,QAAA,EAE5C2R,QAAQ,CAACpS,KAAAA;AAAK,OAAA,EANVL,KAOD,CACP,CAAA;AAAC,KACC,CAAC,CAAA;GAET,EAAE,CAACqS,gBAAgB,EAAEG,mBAAmB,EAAEM,gBAAgB,CAAC,CAAC,CAAA;EAE7D,oBACE5R,eAAA,CAACqQ,SAAI,EAAA;IAACC,QAAQ,EAAA,IAAA;AAAC8B,IAAAA,GAAG,EAAE,CAAE;AAAAxS,IAAAA,QAAA,EACpBI,cAAAA,eAAA,CAACa,UAAK,CAACuO,OAAO,EAAA;MAAAxP,QAAA,EAAA,cACZgB,cAAA,CAACyR,WAAM,EAAA;AACLjS,QAAAA,KAAK,EAAE;AAAEzE,UAAAA,KAAK,EAAE,OAAA;SAAU;QAC1BiD,KAAK,EAAE,CAAAA,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEhB,IAAI,KAAI,MAAO;QAC7BiB,QAAQ,EAAEyT,SAAS,IAAI;UACrBzT,QAAQ,CAAC0T,YAAY,IAAI;AAAA,YAAA,IAAAC,mBAAA,CAAA;AACvB,YAAA,IAAI,EAACD,YAAY,IAAAC,IAAAA,IAAAA,CAAAA,mBAAA,GAAZD,YAAY,CAAE3T,KAAK,KAAnB4T,IAAAA,IAAAA,mBAAA,CAAqB1X,MAAM,CAAE,EAAA;cAChC,OAAO;AAAE8D,gBAAAA,KAAK,EAAE,IAAI;gBAAEhB,IAAI,EAAE0U,SAAS,IAAI,MAAA;eAAQ,CAAA;AACnD,aAAA;YACA,MAAMG,SAAS,GAAG5C,yBAAK,CAAC0C,YAAY,CAAC3T,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9C,MAAM8T,OAAO,GAAG7C,yBAAK,CAAC0C,YAAY,CAAC3T,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5C,OAAO;AACLA,cAAAA,KAAK,EAAE,CAAC6T,SAAS,CAACE,OAAO,EAAE,GAAGF,SAAS,CAAC1C,OAAO,CAACuC,SAAS,IAAI,MAAM,CAAC,CAACX,MAAM,EAAE,GAAG,IAAI,EAAEe,OAAO,CAACC,OAAO,EAAE,GAAGD,OAAO,CAAC1C,KAAK,CAACsC,SAAS,IAAI,MAAM,CAAC,CAACX,MAAM,EAAE,GAAG,IAAI,CAAC;cAC7J/T,IAAI,EAAE0U,SAAS,IAAI,MAAA;aACpB,CAAA;AACH,WAAC,CAAC,CAAA;SACF;QACFnJ,OAAO,EAAEtN,KAAK,CAACC,IAAI,CAACiV,QAAQ,CAAC,CAACzQ,GAAG,CAACE,KAAA,IAAA;UAAA,IAAEoS,GAAG,GAAApS,KAAA,CAAA,CAAA,CAAA;AAAErB,YAAAA,KAAK,GAAAqB,KAAA,CAAA,CAAA,CAAA,CAAA;UAAA,OAAO;YACnDrB,KAAK;AACLP,YAAAA,KAAK,EAAEgU,GAAAA;WACR,CAAA;SAAC,CAAA;OACH,CAAC,eACFhS,cAAA,CAAC+O,eAAU,CAACY,WAAW,EAAAjR,QAAA,CAAA,EAAA,EACjBP,KAAK,EAAA;QACT2Q,MAAM,EAAE,CAAA9Q,KAAK,IAAA,IAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEhB,IAAI,KAAI,MAAO;AAC9BgB,QAAAA,KAAK,EAAE/C,KAAK,CAACkC,OAAO,CAACa,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEA,KAAK,CAAC,IAAIA,KAAK,CAACA,KAAK,CAAC9D,MAAM,KAAK,CAAC,GAAG8D,KAAK,CAACA,KAAK,CAAC0B,GAAG,CAAClD,IAAI,IAAIA,IAAI,IAAIyS,yBAAK,CAACzS,IAAI,CAAC,CAAC,GAAG,IAAK;QACrHyB,QAAQ,EAAEgU,SAAS,IAAI;UACrBhU,QAAQ,CAAC0T,YAAY,IAAI;YACvB,OAAOhT,MAAM,CAACC,MAAM,CAAC;AAAE5B,cAAAA,IAAI,EAAE,MAAA;aAAQ,EAAE2U,YAAY,EAAE;cACnD3T,KAAK,EAAEiU,SAAS,IAAIA,SAAS,CAAC,CAAC,CAAC,IAAIA,SAAS,CAAC,CAAC,CAAC,GAAG,CAACA,SAAS,CAAC,CAAC,CAAC,CAAC9C,OAAO,CAAC,CAAAwC,YAAY,IAAA,IAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAE3U,IAAI,KAAI,MAAM,CAAC,CAAC+T,MAAM,EAAE,EAAEkB,SAAS,CAAC,CAAC,CAAC,CAAC7C,KAAK,CAAC,CAAAuC,YAAY,IAAZA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAE3U,IAAI,KAAI,MAAM,CAAC,CAAC+T,MAAM,EAAE,CAAC,GAAG,IAAA;AAChL,aAAC,CAAC,CAAA;AACJ,WAAC,CAAC,CAAA;AACJ,SAAA;AAAE,OAAA,CACH,CAAC,CAAA;KACW,CAAC,EACfQ,eAAe,CAAA;AAAA,GACZ,CAAC,CAAA;AAEX;;AC7IA,MAAMW,6BAA6B,GAAG7M,UAAU,CAAC,CAAC;EAAE9G,KAAK;EAAEP,KAAK;EAAEC,QAAQ;EAAE,GAAGE,KAAAA;AAAM,CAAC,KAAK;EACzF,oBACE6B,cAAA,CAAC8M,WAAW,EAAA;AACVvO,IAAAA,KAAK,EAAEA,KAAM;AACbP,IAAAA,KAAK,EAAEA,KAAM;AACbC,IAAAA,QAAQ,EAAEA,QAAS;IACnB8O,UAAU,EAAEvQ,IAAI,IAAI;AAClB,MAAA,MAAM2V,SAAS,GAAG3V,IAAI,EAAEwB,KAAK,CAAA;AAC7B,MAAA,OAAOmU,SAAS,EAAEnV,IAAI,IAAI/B,KAAK,CAACkC,OAAO,CAACgV,SAAS,EAAEnU,KAAK,CAAC,IAAImU,SAAS,CAACnU,KAAK,CAAC9D,MAAM,KAAK,CAAC,CAAA;KACzF;AAAA8E,IAAAA,QAAA,EAEDA,CAAC;MAAEhB,KAAK;AAAEC,MAAAA,QAAAA;KAAU,kBACnB+B,cAAA,CAAC6P,wBAAwB,EAAA;AAAA,MAAA,GACnB1R,KAAK;MACT6Q,aAAa,EAAA,IAAA;AACb1P,MAAAA,SAAS,EAAEE,OAAK,CAAC,kBAAkB,CAAE;AACrCxB,MAAAA,KAAK,EAAEI,uBAAG,CAACJ,KAAK,EAAE,OAAO,CAAE;MAC3BC,QAAQ,EAAEmU,WAAW,IAAI;QACvB,MAAM;AAAElD,UAAAA,MAAM,GAAG,YAAA;AAAa,SAAC,GAAG/Q,KAAK,CAAA;AACvC,QAAA,MAAM6T,GAAG,GAAGI,WAAW,EAAEpU,KAAK,IAAI,EAAE,CAAA;QACpC,IAAIqU,YAAY,GAAG,EAAE,CAAA;QACrB,IAAIL,GAAG,CAAC,CAAC,CAAC,IAAI,CAACA,GAAG,CAAC,CAAC,CAAC,EAAE;AACrBK,UAAAA,YAAY,GAAG,CAAA,EAAGpD,yBAAK,CAAC+C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC9C,MAAM,CAACA,MAAM,CAAC,CAAI,EAAA,CAAA,CAAA;AACpD,SAAC,MAAM,IAAI,CAAC8C,GAAG,CAAC,CAAC,CAAC,IAAIA,GAAG,CAAC,CAAC,CAAC,EAAE;AAC5BK,UAAAA,YAAY,GAAG,CAAA,EAAGpD,yBAAK,CAAC+C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC9C,MAAM,CAACA,MAAM,CAAC,CAAI,EAAA,CAAA,CAAA;SACnD,MAAM,IAAI8C,GAAG,CAAC,CAAC,CAAC,IAAIA,GAAG,CAAC,CAAC,CAAC,EAAE;UAC3BK,YAAY,GAAG,CAAGpD,EAAAA,yBAAK,CAAC+C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC9C,MAAM,CAACA,MAAM,CAAC,CAAA,CAAA,EAAID,yBAAK,CAAC+C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC9C,MAAM,CAACA,MAAM,CAAC,CAAE,CAAA,CAAA;AAClF,SAAA;AACAjR,QAAAA,QAAQ,CAAC;AACPM,UAAAA,KAAK,EAAE8T,YAAY;AACnBrU,UAAAA,KAAK,EAAEoU,WAAAA;AACT,SAAC,CAAC,CAAA;AACJ,OAAA;KACD,CAAA;AACF,GACU,CAAC,CAAA;AAElB,CAAC;;;AClCD,MAAME,2BAA2B,GAAGhK,gBAAgB,IAClDjD,UAAU,CAACtG,IAAA,IAAsC;AAAA,EAAA,IAAnCiP,WAAW,GAAAjP,IAAA,CAAXiP,WAAW;IAAEzP,KAAK,GAAAQ,IAAA,CAALR,KAAK;AAAKJ,IAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,WAAA,CAAA,CAAA;EACxC,MAAArG,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;AACrB,EAAA,oBAAOxB,cAAA,CAACsI,gBAAgB,EAAA5J,QAAA,KAAKP,KAAK,EAAA;AAAEI,IAAAA,KAAK,EAAEA,KAAM;AAACyP,IAAAA,WAAW,EAAEA,WAAW,IAAIxM,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,yBAAA;AAA0B,KAAC,EAAE;AAAEzE,MAAAA,KAAAA;KAAO,CAAA;AAAE,GAAA,CAAE,CAAC,CAAA;AAC/I,CAAC,CAAC,CAAA;MAESwP,iBAAe,GAAGuE,2BAA2B,CAACC,iBAAoB,EAAC;MACnEhE,qBAAqB,GAAG+D,2BAA2B,CAACE,uBAA0B,EAAC;MAM/EC,qBAAqB,GAAGpK,aAAa,CAACqK,+BAAW,EAAE;AAAElH,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC,EAAC;MACxEmH,yBAAyB,GAAGtK,aAAa,CAACuK,2BAAe,EAAE;AAAEpH,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC,EAAC;MAChFqH,oBAAoB,GAAGxK,aAAa,CAACyK,sBAAU,EAAE;AAAEtH,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC,EAAC;MACtEuH,wBAAwB,GAAG1K,aAAa,CAAC2K,0BAAc,EAAE;AAAExH,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC,EAAC;MAC9EyH,wBAAwB,GAAG5K,aAAa,CAAC6K,8BAAc,EAAE;AAAE1H,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC,EAAC;MAC9E2H,wBAAwB,GAAG9K,aAAa,CAAC+K,8BAAc,EAAE;AAAE5H,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC,EAAC;MAC9E6H,uBAAuB,GAAGhL,aAAa,CAACiL,6BAAa,EAAE;AAAE9H,EAAAA,UAAU,EAAE,IAAA;AAAK,CAAC;;;;;;;;;;;;;;;;;;AC3BlF+H,MAAAA,cAAc,GAAG1N,WAAW,IAAI;EACpC,OAAO2N,6BAAS,CACd3N,WAAW,EACX,CAACnI,MAAM,EAAAqB,IAAA,KAAsB;AAAA,IAAA,IAAlBV,IAAI,GAAAU,IAAA,CAAJV,IAAI;MAAEL,KAAK,GAAAe,IAAA,CAALf,KAAK,CAAA;AACpBN,IAAAA,MAAM,CAACW,IAAI,CAAC,GAAGpD,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,GAAGA,KAAK,CAAC0B,GAAG,CAACE,KAAA,IAAA;AAAA,MAAA,IAAG5B,KAAK,GAAA4B,KAAA,CAAL5B,KAAK,CAAA;AAAA,MAAA,OAAOA,KAAK,CAAA;AAAA,KAAA,CAAC,GAAGA,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEA,KAAK,CAAA;GACrF,EACD,EACF,CAAC,CAAA;AACH;;;ACPMyV,MAAAA,eAAe,GAAGnL,gBAAgB,IAAI;AAC1C,EAAA,OAAOvJ,IAAA,IAA+B;AAAA,IAAA,IAA5BV,IAAI,GAAAU,IAAA,CAAJV,IAAI;MAAEE,KAAK,GAAAQ,IAAA,CAALR,KAAK;AAAKJ,MAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,WAAA,CAAA,CAAA;AAC7B,IAAA,MAAA3J,WAAA,GAA4BnH,UAAU,EAAE;MAAhCoH,KAAK,GAAAD,WAAA,CAALC,KAAK;MAAEC,QAAQ,GAAAF,WAAA,CAARE,QAAQ,CAAA;AACvB,IAAA,oBACE+B,cAAA,CAACsI,gBAAgB,EAAA5J,QAAA,KACXP,KAAK,EAAA;AACTI,MAAAA,KAAK,EAAEA,KAAM;AACbN,MAAAA,QAAQ,EACNA,QAAQ,GACJD,KAAK,IACHC,QAAQ,CAAC;QACPI,IAAI;QACJE,KAAK;AACLP,QAAAA,KAAAA;AACF,OAAC,CAAC,GACJG,KAAK,CAACF,QACX;AACDD,MAAAA,KAAK,EAAEA,KAAK,GAAGI,uBAAG,CAACJ,KAAK,CAACI,GAAG,CAACC,IAAI,CAAC,EAAE,OAAO,CAAC,GAAGF,KAAK,CAACH,KAAAA;AAAM,KAAA,CAC5D,CAAC,CAAA;GAEL,CAAA;AACH;;;AClBA,MAAQ0V,MAAM,GAAKzF,UAAK,CAAhByF,MAAM,CAAA;AAEd,MAAMC,WAAW,GAAGtO,UAAU,CAC5BoO,eAAe,CAAC1U,IAAA,IAA0E;AAAA,EAAA,IAAvER,KAAK,GAAAQ,IAAA,CAALR,KAAK;IAAEN,QAAQ,GAAAc,IAAA,CAARd,QAAQ;IAAED,KAAK,GAAAe,IAAA,CAALf,KAAK;IAAEgQ,WAAW,GAAAjP,IAAA,CAAXiP,WAAW;IAAA4F,gBAAA,GAAA7U,IAAA,CAAE8U,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,gBAAA;AAAKzV,IAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,WAAA,CAAA,CAAA;EACjF,MAAArG,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;AACrB,EAAA,MAAMsS,UAAU,GAAG9V,KAAK,IAALA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEA,KAAK,CAAA;AAC/B,EAAA,MAAAgD,SAAA,GAAoC/J,cAAQ,CAAC6c,UAAU,IAAI,EAAE,CAAC;AAAvDzI,IAAAA,UAAU,GAAArK,SAAA,CAAA,CAAA,CAAA;AAAE+S,IAAAA,aAAa,GAAA/S,SAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,MAAMgT,aAAa,GAAG9b,YAAM,CAAC,EAAE,CAAC,CAAA;AAChC,EAAA,MAAM+b,WAAW,GAAG/b,YAAM,CAAC+F,QAAQ,CAAC,CAAA;AACpC,EAAA,MAAMiW,cAAc,GAAGhc,YAAM,CAAC,IAAI,CAAC,CAAA;AACnC,EAAA,MAAMic,cAAc,GAAGjc,YAAM,CAAC,KAAK,CAAC,CAAA;EACpC8b,aAAa,CAACpb,OAAO,GAAGyS,UAAU,CAAA;EAClC4I,WAAW,CAACrb,OAAO,GAAGqF,QAAQ,CAAA;EAE9B,MAAMmW,gBAAgB,GAAGA,MAAM;IAC7B,IAAIF,cAAc,CAACtb,OAAO,EAAE;AAC1ByR,MAAAA,YAAY,CAAC6J,cAAc,CAACtb,OAAO,CAAC,CAAA;MACpCsb,cAAc,CAACtb,OAAO,GAAG,IAAI,CAAA;AAC/B,KAAA;GACD,CAAA;EAED,MAAMyb,YAAY,GAAGC,WAAW,IAAI;IAClCL,WAAW,CAACrb,OAAO,IAAnBqb,IAAAA,IAAAA,WAAW,CAACrb,OAAO,CAAG0b,WAAW,GAAG;AAAE/V,MAAAA,KAAK,EAAE+V,WAAW;AAAEtW,MAAAA,KAAK,EAAEsW,WAAAA;KAAa,GAAG,IAAI,CAAC,CAAA;GACvF,CAAA;EAED,MAAMC,cAAc,GAAGD,WAAW,IAAI;AACpCF,IAAAA,gBAAgB,EAAE,CAAA;AAClBF,IAAAA,cAAc,CAACtb,OAAO,GAAGwR,UAAU,CAAC,MAAM;MACxC8J,cAAc,CAACtb,OAAO,GAAG,IAAI,CAAA;MAC7Byb,YAAY,CAACC,WAAW,CAAC,CAAA;KAC1B,EAAET,WAAW,CAAC,CAAA;GAChB,CAAA;AAED3c,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI4c,UAAU,KAAKE,aAAa,CAACpb,OAAO,EAAE;AACxCwb,MAAAA,gBAAgB,EAAE,CAAA;AAClBL,MAAAA,aAAa,CAACD,UAAU,IAAI,EAAE,CAAC,CAAA;AACjC,KAAA;AACF,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB5c,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,OAAO,MAAM;AACXkd,MAAAA,gBAAgB,EAAE,CAAA;KACnB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,oBACEpU,cAAA,CAAC0T,MAAM,EAAAhV,QAAA,KACDP,KAAK,EAAA;AACT6P,IAAAA,WAAW,EAAEA,WAAW,IAAIxM,aAAa,CAAC;AAAEwB,MAAAA,EAAE,EAAE,kBAAA;AAAmB,KAAC,EAAE;AAAEzE,MAAAA,KAAAA;AAAM,KAAC,CAAE;AACjFP,IAAAA,KAAK,EAAEqN,UAAW;IAClBpN,QAAQ,EAAEwE,CAAC,IAAI;AACb,MAAA,MAAMnE,SAAS,GAAGmE,CAAC,CAAChG,MAAM,CAACuB,KAAK,CAAA;MAChC+V,aAAa,CAACzV,SAAS,CAAC,CAAA;AACxB,MAAA,IAAI,CAAC6V,cAAc,CAACvb,OAAO,EAAE;QAC3B2b,cAAc,CAACjW,SAAS,CAAC,CAAA;AAC3B,OAAA;KACA;IACFkW,kBAAkB,EAAEA,MAAM;MACxBL,cAAc,CAACvb,OAAO,GAAG,IAAI,CAAA;AAC7Bwb,MAAAA,gBAAgB,EAAE,CAAA;KAClB;IACFK,gBAAgB,EAAEhS,CAAC,IAAI;MACrB0R,cAAc,CAACvb,OAAO,GAAG,KAAK,CAAA;AAC9B,MAAA,MAAM0F,SAAS,GAAGmE,CAAC,CAAChG,MAAM,CAACuB,KAAK,CAAA;MAChC+V,aAAa,CAACzV,SAAS,CAAC,CAAA;MACxBiW,cAAc,CAACjW,SAAS,CAAC,CAAA;KACzB;IACFoW,QAAQ,EAAEJ,WAAW,IAAI;AACvBF,MAAAA,gBAAgB,EAAE,CAAA;MAClBC,YAAY,CAACC,WAAW,CAAC,CAAA;AAC3B,KAAA;AAAE,GAAA,CACH,CAAC,CAAA;AAEN,CAAC,CACH;;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACMK,MAAAA,gBAAgB,GAAG3W,KAAK,IAAI;AAChC,EAAA,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;AACjC,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;AACA,EAAA,MAAMd,IAAI,GAAGjC,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC,CAAA;AACnD,EAAA,OAAOd,IAAI,CACRwC,GAAG,CAAClD,IAAI,IAAI;IACX,IAAIA,IAAI,IAAI,IAAI,EAAE;AAChB,MAAA,OAAO,IAAI,CAAA;AACb,KAAA;AACA,IAAA,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC5B,OAAOoY,MAAM,CAACpY,IAAI,CAAC,CAAA;AACrB,KAAA;IACA,IAAIA,IAAI,CAACwB,KAAK,IAAI,IAAI,IAAIxB,IAAI,CAACwB,KAAK,KAAK,EAAE,EAAE;AAC3C,MAAA,OAAO4W,MAAM,CAACpY,IAAI,CAACwB,KAAK,CAAC,CAAA;AAC3B,KAAA;IACA,IAAIxB,IAAI,CAACwG,EAAE,IAAI,IAAI,IAAIxG,IAAI,CAACwG,EAAE,KAAK,EAAE,EAAE;AACrC,MAAA,OAAO4R,MAAM,CAACpY,IAAI,CAACwG,EAAE,CAAC,CAAA;AACxB,KAAA;AACA,IAAA,OAAO,IAAI,CAAA;AACb,GAAC,CAAC,CACDvD,MAAM,CAACoV,OAAO,CAAC,CAAA;AACpB;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACMC,MAAAA,uBAAuB,GAAGC,YAAY,IAAI;AAC9C,EAAA,OAAO,CAACtV,MAAM,EAAE8T,cAAc,KAAK;AACjC,IAAA,MAAMvV,KAAK,GAAGuV,cAAc,CAAC9T,MAAM,CAAC,CAAA;IAEpCd,MAAM,CAACtC,OAAO,CAAC0Y,YAAY,CAAC,CAACC,OAAO,CAACjW,IAAA,IAAyB;MAAA,IAAvBkW,SAAS,GAAAlW,IAAA,CAAA,CAAA,CAAA;AAAEmW,QAAAA,MAAM,GAAAnW,IAAA,CAAA,CAAA,CAAA,CAAA;AACtD,MAAA,MAAMzC,KAAK,GAAGmD,MAAM,CAAClD,IAAI,CAACC,IAAI,IAAIA,IAAI,CAAC6B,IAAI,KAAK4W,SAAS,CAAC,CAAA;MAE1D,IAAIC,MAAM,KAAK,QAAQ,EAAE;AACvB,QAAA,IAAIlX,KAAK,CAACiX,SAAS,CAAC,IAAI,IAAI,IAAIjX,KAAK,CAACiX,SAAS,CAAC,KAAK,EAAE,EAAE;UACvDjX,KAAK,CAACiX,SAAS,CAAC,GAAGL,MAAM,CAAC5W,KAAK,CAACiX,SAAS,CAAC,CAAC,CAAA;AAC7C,SAAA;AACF,OAAC,MAAM,IAAIC,MAAM,KAAK,OAAO,EAAE;AAC7B,QAAA,IAAI5Y,KAAK,EAAE;AACT,UAAA,MAAMgL,MAAM,GAAGqN,gBAAgB,CAACrY,KAAK,CAAC0B,KAAK,CAAC,CAAA;UAC5C,IAAIsJ,MAAM,CAACpN,MAAM,EAAE;AACjB8D,YAAAA,KAAK,CAACiX,SAAS,CAAC,GAAG3N,MAAM,CAAA;AAC3B,WAAC,MAAM;YACL,OAAOtJ,KAAK,CAACiX,SAAS,CAAC,CAAA;AACzB,WAAA;AACF,SAAA;AACF,OAAC,MAAM,IAAIC,MAAM,KAAK,QAAQ,EAAE;AAC9B,QAAA,IAAI5Y,KAAK,EAAE;AACT,UAAA,MAAMgL,MAAM,GAAGqN,gBAAgB,CAACrY,KAAK,CAAC0B,KAAK,CAAC,CAAA;AAC5C,UAAA,IAAIsJ,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;AACrBtJ,YAAAA,KAAK,CAACiX,SAAS,CAAC,GAAG3N,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9B,WAAC,MAAM;YACL,OAAOtJ,KAAK,CAACiX,SAAS,CAAC,CAAA;AACzB,WAAA;AACF,SAAC,MAAM,IAAIjX,KAAK,CAACiX,SAAS,CAAC,IAAI,IAAI,IAAI,OAAOjX,KAAK,CAACiX,SAAS,CAAC,KAAK,QAAQ,EAAE;UAC3E,MAAM3N,MAAM,GAAGqN,gBAAgB,CAAC3W,KAAK,CAACiX,SAAS,CAAC,CAAC,CAAA;UACjD,IAAI3N,MAAM,CAACpN,MAAM,EAAE;AACjB8D,YAAAA,KAAK,CAACiX,SAAS,CAAC,GAAG3N,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9B,WAAC,MAAM;YACL,OAAOtJ,KAAK,CAACiX,SAAS,CAAC,CAAA;AACzB,WAAA;AACF,SAAA;AACF,OAAC,MAAM,IAAI,OAAOC,MAAM,KAAK,UAAU,EAAE;AACvC,QAAA,IAAIC,QAAQ,GAAGnX,KAAK,CAACiX,SAAS,CAAC,CAAA;AAC/B,QAAA,IAAIE,QAAQ,IAAI,IAAI,IAAI,OAAOA,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAIA,QAAQ,EAAE;UAC3EA,QAAQ,GAAGA,QAAQ,CAACnX,KAAK,CAAA;AAC3B,SAAA;AACA,QAAA,IAAImX,QAAQ,IAAI,IAAI,IAAIA,QAAQ,KAAK,EAAE,EAAE;AACvC,UAAA,MAAMzX,MAAM,GAAGwX,MAAM,CAACC,QAAQ,EAAE;YAAE7Y,KAAK;YAAEmD,MAAM;AAAEzB,YAAAA,KAAAA;AAAM,WAAC,CAAC,CAAA;AACzD,UAAA,IAAIN,MAAM,IAAI,IAAI,IAAIA,MAAM,KAAK,EAAE,EAAE;AACnCM,YAAAA,KAAK,CAACiX,SAAS,CAAC,GAAGvX,MAAM,CAAA;AAC3B,WAAC,MAAM;YACL,OAAOM,KAAK,CAACiX,SAAS,CAAC,CAAA;AACzB,WAAA;AACF,SAAA;AACF,OAAA;AACF,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOjX,KAAK,CAAA;GACb,CAAA;AACH;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaoX,MAAAA,qBAAqB,GAAGC,YAAY,IAAI;EACnD,MAAMC,YAAY,GAAG,EAAE,CAAA;EACvB,MAAMC,IAAI,GAAG1W,GAAG,IAAI;IAClB,IAAI,CAACwW,YAAY,CAACG,GAAG,CAAC3W,GAAG,CAAC,EAAE,OAAO,IAAI,CAAA;AACvCyW,IAAAA,YAAY,CAACG,IAAI,CAAC5W,GAAG,CAAC,CAAA;AACtB,IAAA,OAAOwW,YAAY,CAACjX,GAAG,CAACS,GAAG,CAAC,CAAA;GAC7B,CAAA;AACD,EAAA,MAAM6W,eAAe,GAAGA,MAAMJ,YAAY,CAAA;EAC1C,OAAO;IAAEC,IAAI;AAAEG,IAAAA,eAAAA;GAAiB,CAAA;AAClC,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;MACaC,sBAAsB,GAAGA,CAACN,YAAY,EAAEC,YAAY,KAAK;EACpE,IAAI,EAACA,YAAY,IAAZA,IAAAA,IAAAA,YAAY,CAAEpb,MAAM,CAAA,EAAE,OAAO,IAAI,CAAA;AACtC,EAAA,MAAM0b,IAAI,GAAG,IAAIC,eAAe,CAACR,YAAY,CAAC,CAAA;EAC9C,IAAIS,OAAO,GAAG,KAAK,CAAA;AACnBR,EAAAA,YAAY,CAACN,OAAO,CAACnW,GAAG,IAAI;AAC1B,IAAA,IAAI+W,IAAI,CAACJ,GAAG,CAAC3W,GAAG,CAAC,EAAE;AACjB+W,MAAAA,IAAI,CAACvO,MAAM,CAACxI,GAAG,CAAC,CAAA;AAChBiX,MAAAA,OAAO,GAAG,IAAI,CAAA;AAChB,KAAA;AACF,GAAC,CAAC,CAAA;AACF,EAAA,OAAOA,OAAO,GAAGF,IAAI,GAAG,IAAI,CAAA;AAC9B,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACMG,MAAAA,YAAY,GAAGhX,IAAA,IAAoC;AAAA,EAAA,IAAjCiX,aAAa,GAAAjX,IAAA,CAAbiX,aAAa;IAAEC,WAAW,GAAAlX,IAAA,CAAXkX,WAAW,CAAA;AAChD,EAAA,MAAAC,gBAAA,GAAwCC,8BAAe,EAAE;AAAlDd,IAAAA,YAAY,GAAAa,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,eAAe,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,MAAMG,oBAAoB,GAAGne,YAAM,CAAC,IAAI,CAAC,CAAA;AAEzC,EAAA,IAAIme,oBAAoB,CAACzd,OAAO,KAAK,IAAI,EAAE;AACzCyd,IAAAA,oBAAoB,CAACzd,OAAO,GAAGod,aAAa,CAACX,YAAY,CAAC,CAAA;AAC5D,GAAA;EAEA,MAAArU,SAAA,GAA4B/J,cAAQ,CAAC,MAAMgf,WAAW,CAACI,oBAAoB,CAACzd,OAAO,CAAC,CAAC;AAA9E6G,IAAAA,MAAM,GAAAuB,SAAA,CAAA,CAAA,CAAA;AAAEsV,IAAAA,SAAS,GAAAtV,SAAA,CAAA,CAAA,CAAA,CAAA;AAExB,EAAA,MAAMuV,cAAc,GAAGre,YAAM,CAAC,KAAK,CAAC,CAAA;AACpChB,EAAAA,eAAS,CAAC,MAAM;AAAA,IAAA,IAAAsf,qBAAA,CAAA;IACd,IAAID,cAAc,CAAC3d,OAAO,EAAE,OAAA;IAC5B2d,cAAc,CAAC3d,OAAO,GAAG,IAAI,CAAA;AAC7B,IAAA,MAAM6d,UAAU,GAAGd,sBAAsB,CAACN,YAAY,EAAAmB,CAAAA,qBAAA,GAAEH,oBAAoB,CAACzd,OAAO,KAAA,IAAA,GAAA,KAAA,CAAA,GAA5B4d,qBAAA,CAA8BlB,YAAY,CAAC,CAAA;AACnG,IAAA,IAAImB,UAAU,EAAE;MACdL,eAAe,CAACK,UAAU,EAAE;AAAEC,QAAAA,OAAO,EAAE,IAAA;AAAK,OAAC,CAAC,CAAA;AAChD,KAAA;AACF,GAAC,EAAE,CAACrB,YAAY,EAAEe,eAAe,CAAC,CAAC,CAAA;AAEnC,EAAA,OAAO,CAAC3W,MAAM,EAAE6W,SAAS,CAAC,CAAA;AAC5B;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMK,iBAAiB,GAAG,UAAC9Q,WAAW,EAAA+Q,KAAA,EAAuC;AAAA,EAAA,IAAA7X,IAAA,GAAA6X,KAAA,cAAP,EAAE,GAAAA,KAAA;IAAAC,WAAA,GAAA9X,IAAA,CAA9B+X,MAAM;AAANA,IAAAA,MAAM,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,WAAA,CAAA;AAC/D,EAAA,MAAME,MAAM,GAAG,IAAIlB,eAAe,EAAE,CAAA;EAEpC,IAAI,CAAC5a,KAAK,CAACkC,OAAO,CAAC0I,WAAW,CAAC,EAAE,OAAOkR,MAAM,CAAA;AAE9ClR,EAAAA,WAAW,CAACmP,OAAO,CAACpV,KAAA,IAAqB;AAAA,IAAA,IAAlBvB,IAAI,GAAAuB,KAAA,CAAJvB,IAAI;MAAEL,KAAK,GAAA4B,KAAA,CAAL5B,KAAK,CAAA;AAChC,IAAA,IAAIA,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE,OAAA;IAEnC,MAAMa,GAAG,GAAGiY,MAAM,GAAMA,MAAM,GAAIzY,GAAAA,GAAAA,IAAI,SAAMA,IAAI,CAAA;AAEhD,IAAA,IAAIpD,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,EAAE;AACxB,MAAA,IAAIA,KAAK,CAAC9D,MAAM,KAAK,CAAC,EAAE,OAAA;MACxB,MAAM8c,UAAU,GAAGhZ,KAAK,CACrB0B,GAAG,CAAClD,IAAI,IAAIya,cAAc,CAACza,IAAI,CAAC,CAAC,CACjCiD,MAAM,CAACoV,OAAO,CAAC,CACf5O,IAAI,CAAC,GAAG,CAAC,CAAA;MACZ,IAAI+Q,UAAU,EAAED,MAAM,CAAC3P,GAAG,CAACvI,GAAG,EAAEmY,UAAU,CAAC,CAAA;AAC7C,KAAC,MAAM;AACL,MAAA,MAAMA,UAAU,GAAGC,cAAc,CAACjZ,KAAK,CAAC,CAAA;MACxC,IAAIgZ,UAAU,EAAED,MAAM,CAAC3P,GAAG,CAACvI,GAAG,EAAEmY,UAAU,CAAC,CAAA;AAC7C,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,OAAOD,MAAM,CAAA;AACf,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAME,cAAc,GAAGza,IAAI,IAAI;EAAA,IAAA0a,WAAA,EAAAC,WAAA,CAAA;AAC7B,EAAA,IAAI3a,IAAI,IAAI,IAAI,EAAE,OAAO,IAAI,CAAA;EAC7B,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE,OAAOoY,MAAM,CAACpY,IAAI,CAAC,CAAA;AAEjD,EAAA,MAAM+B,KAAK,GAAA,CAAA2Y,WAAA,GAAG1a,IAAI,CAAC+B,KAAK,KAAA,IAAA,GAAA2Y,WAAA,GAAI1a,IAAI,CAAC6B,IAAI,CAAA;AACrC,EAAA,MAAML,KAAK,GAAA,CAAAmZ,WAAA,GAAG3a,IAAI,CAACwB,KAAK,KAAA,IAAA,GAAAmZ,WAAA,GAAI3a,IAAI,CAACwG,EAAE,CAAA;EAEnC,IAAIhF,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,CAAA;EAC9C,IAAIO,KAAK,KAAKP,KAAK,EAAE,OAAO4W,MAAM,CAAC5W,KAAK,CAAC,CAAA;EACzC,OAAUO,KAAK,SAAIP,KAAK,CAAA;AAC1B,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACMoZ,MAAAA,gBAAgB,GAAGC,GAAG,IAAI;AAC9B,EAAA,MAAMC,UAAU,GAAGD,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC,CAAA;AACnC,EAAA,IAAID,UAAU,KAAK,CAAC,CAAC,EAAE;IACrB,OAAO;AAAE/Y,MAAAA,KAAK,EAAE8Y,GAAG;AAAErZ,MAAAA,KAAK,EAAEqZ,GAAAA;KAAK,CAAA;AACnC,GAAA;EACA,OAAO;IACL9Y,KAAK,EAAE8Y,GAAG,CAAC3V,KAAK,CAAC,CAAC,EAAE4V,UAAU,CAAC;AAC/BtZ,IAAAA,KAAK,EAAEqZ,GAAG,CAAC3V,KAAK,CAAC4V,UAAU,GAAG,CAAC,CAAA;GAChC,CAAA;AACH,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACME,MAAAA,eAAe,GAAG,UAACnC,YAAY,EAAExW,GAAG,EAAA4Y,MAAA,EAAsD;AAAA,EAAA,IAAArX,KAAA,GAAAqX,MAAA,cAAP,EAAE,GAAAA,MAAA;IAAAC,WAAA,GAAAtX,KAAA,CAA7CuX,KAAK;AAALA,IAAAA,KAAK,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,WAAA;IAAAE,YAAA,GAAAxX,KAAA,CAAE0W,MAAM;AAANA,IAAAA,MAAM,GAAAc,YAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,YAAA,CAAA;EAClF,MAAMC,OAAO,GAAGf,MAAM,GAAMA,MAAM,GAAIjY,GAAAA,GAAAA,GAAG,SAAMA,GAAG,CAAA;EAClD,IAAI,CAACwW,YAAY,CAACG,GAAG,CAACqC,OAAO,CAAC,EAAE,OAAO,IAAI,CAAA;AAE3C,EAAA,MAAMC,GAAG,GAAGzC,YAAY,CAACjX,GAAG,CAACyZ,OAAO,CAAC,CAAA;AACrC,EAAA,IAAI,CAACC,GAAG,EAAE,OAAO,IAAI,CAAA;AAErB,EAAA,IAAIH,KAAK,EAAE;IACT,OAAOG,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAACrY,GAAG,CAAC0X,gBAAgB,CAAC,CAAA;AAC7C,GAAA;;AAEA;AACA,EAAA,MAAMY,UAAU,GAAGF,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAGH,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAA;EAC9D,OAAOV,gBAAgB,CAACY,UAAU,CAAC,CAAA;AACrC,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAME,qBAAqB,GAAG,UAAC7C,YAAY,EAAA8C,MAAA,EAAuC;AAAA,EAAA,IAAAC,KAAA,GAAAD,MAAA,cAAP,EAAE,GAAAA,MAAA;IAAAE,YAAA,GAAAD,KAAA,CAA9BtB,MAAM;AAANA,IAAAA,MAAM,GAAAuB,YAAA,KAAG,KAAA,CAAA,GAAA,cAAc,GAAAA,YAAA,CAAA;EACpE,MAAM/C,YAAY,GAAG,EAAE,CAAA;AAEvB,EAAA,MAAMkC,eAAe,GAAG,UAAC3Y,GAAG,EAAAyZ,MAAA,EAA6B;AAAA,IAAA,IAAAC,KAAA,GAAAD,MAAA,cAAP,EAAE,GAAAA,MAAA;MAAAE,WAAA,GAAAD,KAAA,CAApBZ,KAAK;AAALA,MAAAA,KAAK,GAAAa,WAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,WAAA,CAAA;IAC3C,MAAMX,OAAO,GAAGf,MAAM,GAAMA,MAAM,GAAIjY,GAAAA,GAAAA,GAAG,SAAMA,GAAG,CAAA;IAClD,IAAI,CAACwW,YAAY,CAACG,GAAG,CAACqC,OAAO,CAAC,EAAE,OAAO,IAAI,CAAA;AAE3CvC,IAAAA,YAAY,CAACG,IAAI,CAACoC,OAAO,CAAC,CAAA;AAC1B,IAAA,MAAMC,GAAG,GAAGzC,YAAY,CAACjX,GAAG,CAACyZ,OAAO,CAAC,CAAA;AACrC,IAAA,IAAI,CAACC,GAAG,EAAE,OAAO,IAAI,CAAA;AAErB,IAAA,IAAIH,KAAK,EAAE;MACT,OAAOG,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAACrY,GAAG,CAAC0X,gBAAgB,CAAC,CAAA;AAC7C,KAAA;AAEA,IAAA,MAAMY,UAAU,GAAGF,GAAG,CAACG,QAAQ,CAAC,GAAG,CAAC,GAAGH,GAAG,CAACC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAGD,GAAG,CAAA;IAC9D,OAAOV,gBAAgB,CAACY,UAAU,CAAC,CAAA;GACpC,CAAA;AAED,EAAA,MAAMtC,eAAe,GAAGA,MAAMJ,YAAY,CAAA;EAE1C,OAAO;IAAEkC,eAAe;AAAE9B,IAAAA,eAAAA;GAAiB,CAAA;AAC7C;;;;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACM+C,MAAAA,iBAAiB,GAAGC,OAAO,IAAI;AACnC,EAAA,MAAMC,iBAAiB,GAAG1d,KAAK,CAACkC,OAAO,CAACub,OAAO,CAAC,GAC5CA,OAAO,CAACjb,MAAM,CAAC,CAACmb,GAAG,EAAEpc,IAAI,KAAK;IAC5B,MAAMqC,GAAG,GAAG,OAAOrC,IAAI,KAAK,QAAQ,GAAGA,IAAI,GAAGA,IAAI,CAAC6B,IAAI,CAAA;IACvDua,GAAG,CAAC/Z,GAAG,CAAC,GAAG,OAAOrC,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAGA,IAAI,CAAA;AACjD,IAAA,OAAOoc,GAAG,CAAA;AACZ,GAAC,EAAE,EAAE,CAAC,GACNF,OAAO,CAAA;AAEX,EAAA,OAAO3C,YAAY,CAAC;IAClBC,aAAa,EAAEX,YAAY,IAAI;AAC7B,MAAA,MAAAwD,qBAAA,GAA6CX,qBAAqB,CAAC7C,YAAY,CAAC;QAAxEmC,eAAe,GAAAqB,qBAAA,CAAfrB,eAAe;QAAE9B,eAAe,GAAAmD,qBAAA,CAAfnD,eAAe,CAAA;MACxC,MAAMoD,IAAI,GAAG,EAAE,CAAA;MACfna,MAAM,CAACtC,OAAO,CAACsc,iBAAiB,CAAC,CAAC3D,OAAO,CAACjW,IAAA,IAAmB;QAAA,IAAjBF,GAAG,GAAAE,IAAA,CAAA,CAAA,CAAA;AAAEga,UAAAA,MAAM,GAAAha,IAAA,CAAA,CAAA,CAAA,CAAA;AACrD,QAAA,MAAM4Y,KAAK,GAAG,OAAOoB,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,IAAIA,MAAM,CAACpB,KAAK,CAAA;AAC3E,QAAA,MAAM3F,GAAG,GAAGwF,eAAe,CAAC3Y,GAAG,EAAE;AAAE8Y,UAAAA,KAAAA;AAAM,SAAC,CAAC,CAAA;QAC3C,IAAI3F,GAAG,KAAK,IAAI,EAAE8G,IAAI,CAACja,GAAG,CAAC,GAAGmT,GAAG,CAAA;AACnC,OAAC,CAAC,CAAA;AACF,MAAA,OAAAtT,QAAA,CAAA;QAAS4W,YAAY,EAAEI,eAAe,EAAC;AAAC,OAAA,EAAKoD,IAAI,CAAA,CAAA;KAClD;IACD7C,WAAW,EAAE6C,IAAI,IAAI;AACnB,MAAA,MAAyBxR,MAAM,GAAAG,6BAAA,CAAKqR,IAAI,EAAApR,WAAA,EAAA;MACxC,MAAMsR,OAAO,GAAG,EAAE,CAAA;MAClBra,MAAM,CAACtC,OAAO,CAACsc,iBAAiB,CAAC,CAAC3D,OAAO,CAACpV,KAAA,IAAmB;QAAA,IAAjBf,GAAG,GAAAe,KAAA,CAAA,CAAA,CAAA;AAAEmZ,UAAAA,MAAM,GAAAnZ,KAAA,CAAA,CAAA,CAAA,CAAA;AACrD,QAAA,IAAI0H,MAAM,CAACzI,GAAG,CAAC,KAAK3C,SAAS,EAAE,OAAA;AAC/B,QAAA,MAAM+c,WAAW,GAAG3R,MAAM,CAACzI,GAAG,CAAC,CAAA;AAC/B,QAAA,IAAI,OAAOka,MAAM,KAAK,UAAU,EAAE;AAChC,UAAA,MAAMrb,MAAM,GAAGqb,MAAM,CAACE,WAAW,CAAC,CAAA;AAClC,UAAA,IAAIvb,MAAM,EAAEsb,OAAO,CAACvD,IAAI,CAAC/X,MAAM,CAAC,CAAA;AAClC,SAAC,MAAM;AACL,UAAA,MAAMa,KAAK,GAAG,OAAOwa,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,GAAGA,MAAM,CAACxa,KAAK,GAAGM,GAAG,CAAA;UAChFma,OAAO,CAACvD,IAAI,CAAC;AAAEpX,YAAAA,IAAI,EAAEQ,GAAG;YAAEN,KAAK;AAAEP,YAAAA,KAAK,EAAEib,WAAAA;AAAY,WAAC,CAAC,CAAA;AACxD,SAAA;AACF,OAAC,CAAC,CAAA;AACF,MAAA,OAAOD,OAAO,CAAA;AAChB,KAAA;AACF,GAAC,CAAC,CAAA;AACJ;;AC1EA,MAAME,QAAQ,GAAG1c,IAAI,IAAI;EACvB,IAAI,CAACA,IAAI,EAAE;AACT,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIA,IAAI,CAACwG,EAAE,IAAI,IAAI,EAAE;AACnB,IAAA,OAAOxG,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIA,IAAI,CAACwB,KAAK,IAAI,IAAI,EAAE;IACtB,OAAO;MAAEgF,EAAE,EAAExG,IAAI,CAACwB,KAAK;MAAEK,IAAI,EAAE7B,IAAI,CAAC+B,KAAAA;KAAO,CAAA;AAC7C,GAAA;AACA,EAAA,OAAO/B,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM2c,YAAY,GAAG3c,IAAI,IAAI;EAAA,IAAA4c,UAAA,EAAAC,QAAA,CAAA;EAC3B,IAAI,CAAC7c,IAAI,EAAE;AACT,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,OAAO;IACL+B,KAAK,EAAA,CAAA6a,UAAA,GAAE5c,IAAI,CAAC6B,IAAI,KAAA,IAAA,GAAA+a,UAAA,GAAI5c,IAAI,CAAC+B,KAAK;IAC9BP,KAAK,EAAA,CAAAqb,QAAA,GAAE7c,IAAI,CAACwG,EAAE,KAAAqW,IAAAA,GAAAA,QAAA,GAAI7c,IAAI,CAACwB,KAAAA;GACxB,CAAA;AACH,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACO,MAAMsb,uBAAuB,GAAG;EACrChO,KAAK,EAAEtN,KAAK,IAAI;IACd,IAAI,CAACA,KAAK,EAAE;AACV,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACA,IAAA,MAAMxB,IAAI,GAAGvB,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAA;AACpD,IAAA,MAAMN,MAAM,GAAGwb,QAAQ,CAAC1c,IAAI,CAAC,CAAA;AAC7B,IAAA,OAAOkB,MAAM,CAAA;GACd;EACDiO,MAAM,EAAE4N,QAAQ,IAAI;IAClB,IAAI,CAACA,QAAQ,EAAE;AACb,MAAA,OAAOA,QAAQ,CAAA;AACjB,KAAA;AACA,IAAA,MAAM/c,IAAI,GAAGvB,KAAK,CAACkC,OAAO,CAACoc,QAAQ,CAAC,GAAGA,QAAQ,CAAC,CAAC,CAAC,GAAGA,QAAQ,CAAA;IAC7D,OAAOJ,YAAY,CAAC3c,IAAI,CAAC,CAAA;AAC3B,GAAA;AACF,EAAC;;AAED;AACA;AACA;AACA;AACO,MAAMgd,sBAAsB,GAAG;EACpClO,KAAK,EAAEtN,KAAK,IAAI;IACd,IAAI,CAACA,KAAK,EAAE;AACV,MAAA,OAAOA,KAAK,CAAA;AACd,KAAA;AACA,IAAA,MAAMd,IAAI,GAAGjC,KAAK,CAACkC,OAAO,CAACa,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC,CAAA;IACnD,OAAOd,IAAI,CAACwC,GAAG,CAACwZ,QAAQ,CAAC,CAACzZ,MAAM,CAACoV,OAAO,CAAC,CAAA;GAC1C;EACDlJ,MAAM,EAAE4N,QAAQ,IAAI;IAClB,IAAI,CAACA,QAAQ,EAAE;AACb,MAAA,OAAOA,QAAQ,CAAA;AACjB,KAAA;AACA,IAAA,MAAMrc,IAAI,GAAGjC,KAAK,CAACkC,OAAO,CAACoc,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC,CAAA;IAC5D,OAAOrc,IAAI,CAACwC,GAAG,CAACyZ,YAAY,CAAC,CAAC1Z,MAAM,CAACoV,OAAO,CAAC,CAAA;AAC/C,GAAA;AACF,EAAC;AAED,yBAAe;AAAEpJ,EAAAA,MAAM,EAAE6N,uBAAuB;AAAE3B,EAAAA,KAAK,EAAE6B,sBAAAA;AAAuB,CAAC;;AC7DjF,MAAMzL,eAAe,GAAG1I,UAAU,CAAC,CAAC;EAAErH,KAAK;EAAEO,KAAK;EAAEN,QAAQ;EAAE,GAAGE,KAAAA;AAAM,CAAC,KAAK;AAC3E,EAAA,MAAM2V,UAAU,GAAG9V,KAAK,EAAEA,KAAK,CAAA;EAC/B,MAAM,CAACqN,UAAU,EAAE0I,aAAa,CAAC,GAAG9c,cAAQ,CAAC6c,UAAU,IAAI,EAAE,CAAC,CAAA;EAC9D,MAAM,CAAC7L,MAAM,EAAEwR,SAAS,CAAC,GAAGxiB,cAAQ,CAAC,KAAK,CAAC,CAAA;EAC3C,MAAM;AAAEuK,IAAAA,aAAAA;GAAe,GAAGF,iBAAO,CAAC;AAAEC,IAAAA,UAAU,EAAE,QAAA;AAAS,GAAC,CAAC,CAAA;EAE3D,MAAMmY,aAAa,GAAGA,MAAM;IAC1Bzb,QAAQ,CAACoN,UAAU,GAAG;AAAE9M,MAAAA,KAAK,EAAE8M,UAAU;AAAErN,MAAAA,KAAK,EAAEqN,UAAAA;KAAY,GAAG,IAAI,CAAC,CAAA;GACvE,CAAA;EAED,MAAMsO,UAAU,GAAGA,MAAM;IACvBF,SAAS,CAAC,KAAK,CAAC,CAAA;AAChBC,IAAAA,aAAa,EAAE,CAAA;GAChB,CAAA;AAED,EAAA,MAAM1F,aAAa,GAAG9b,YAAM,CAAC,EAAE,CAAC,CAAA;EAChC8b,aAAa,CAACpb,OAAO,GAAGyS,UAAU,CAAA;AAElCnU,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI4c,UAAU,KAAKE,aAAa,CAACpb,OAAO,EAAE;MACxCmb,aAAa,CAACD,UAAU,CAAC,CAAA;AAC3B,KAAA;AACF,GAAC,EAAE,CAACA,UAAU,CAAC,CAAC,CAAA;AAEhB,EAAA,oBACE1U,eAAA,CAACa,UAAK,CAACuO,OAAO,EAAA;IAAAxP,QAAA,EAAA,cACZgB,cAAA,CAACiO,UAAK,EAAA;MACJD,WAAW,EAAE,CAAGxM,EAAAA,aAAa,CAAC;AAAEwB,QAAAA,EAAE,EAAE,aAAA;OAAe,CAAC,CAAGzE,EAAAA,KAAK,CAAG,CAAA;AAAA,MAAA,GAC3DJ,KAAK;AACT+B,MAAAA,IAAI,EAAC,OAAO;AACZlC,MAAAA,KAAK,EAAEqN,UAAW;MAClBuO,OAAO,EAAEA,MAAM;QACbH,SAAS,CAAC,IAAI,CAAC,CAAA;OACf;AACFI,MAAAA,MAAM,EAAEF,UAAW;MACnB1b,QAAQ,EAAEwE,CAAC,IAAI;AACbsR,QAAAA,aAAa,CAACtR,CAAC,CAAChG,MAAM,CAACuB,KAAK,CAAC,CAAA;OAC7B;AACF8b,MAAAA,YAAY,EAAEJ,aAAAA;AAAc,KAC7B,CAAC,EACDzR,MAAM,iBACLjI,cAAA,CAACuG,WAAM,EAAA;AAACrG,MAAAA,IAAI,EAAC,OAAO;AAAClD,MAAAA,IAAI,EAAC,SAAS;AAAC6C,MAAAA,OAAO,EAAE6Z,aAAc;MAAA1a,QAAA,EACxDwC,aAAa,CAAC;AAAEwB,QAAAA,EAAE,EAAE,eAAA;OAAiB,CAAA;AAAC,KACjC,CACT,CAAA;AAAA,GACY,CAAC,CAAA;AAEpB,CAAC,CAAC;;AC/CF,MAAM;AAAE+W,gBAAAA,cAAAA;AAAa,CAAC,GAAG7T,QAAG,CAAA;AAE5B,MAAM8T,cAAc,GAAG3U,UAAU,CAAC,CAAC;EAAErH,KAAK;EAAEC,QAAQ;EAAEM,KAAK;AAAEkN,EAAAA,MAAM,GAAG,KAAK;AAAEwO,EAAAA,SAAS,GAAG,CAAC;AAAE1gB,EAAAA,KAAK,GAAG,EAAA;AAAG,CAAC,KAAK;EAC3G,MAAM;AAAEoK,IAAAA,OAAAA;AAAQ,GAAC,GAAGuW,QAAG,CAACC,MAAM,EAAE,CAAA;EAChC,MAAM;AAAE3Y,IAAAA,aAAAA;GAAe,GAAGF,iBAAO,CAAC;AAAEC,IAAAA,UAAU,EAAE,QAAA;AAAS,GAAC,CAAC,CAAA;EAE3D,oBACEvB,cAAA,CAACC,UAAK,EAAA;AAACC,IAAAA,IAAI,EAAE,CAAE;IAACqD,IAAI,EAAA,IAAA;IAACX,KAAK,EAAA,IAAA;AAAA5D,IAAAA,QAAA,EACvBzF,KAAK,CAACmG,GAAG,CAAC,CAAC;AAAEnB,MAAAA,KAAK,EAAE6b,SAAS;AAAEpc,MAAAA,KAAK,EAAEmU,SAAAA;AAAU,KAAC,KAAK;MACrD,oBACEnS,cAAA,CAAC+Z,cAAY,EAAA;AAEX7Z,QAAAA,IAAI,EAAC,OAAO;QACZma,OAAO,EAAE5O,MAAM,GAAG6O,2BAAO,CAACnI,SAAS,EAAEnU,KAAK,EAAEA,KAAK,CAAC,GAAG,CAAC,CAAC,CAACA,KAAK,IAAI,EAAE,EAAEzB,IAAI,CAAC,CAAC;AAAEyB,UAAAA,KAAAA;AAAM,SAAC,KAAKsc,2BAAO,CAACnI,SAAS,EAAEnU,KAAK,CAAC,CAAE;QACpHC,QAAQ,EAAEoc,OAAO,IAAI;AACnB,UAAA,IAAI5O,MAAM,EAAE;YACVxN,QAAQ,CAACoc,OAAO,GAAG;AAAErc,cAAAA,KAAK,EAAEmU,SAAS;AAAE5T,cAAAA,KAAK,EAAE6b,SAAAA;aAAW,GAAG,IAAI,CAAC,CAAA;AACjE,YAAA,OAAA;AACF,WAAA;UACA,MAAM/T,QAAQ,GAAG,CAACrI,KAAK,IAAI,EAAE,EAAE0D,KAAK,CAAC,CAAC,CAAC,CAAA;AACvC,UAAA,IAAI2Y,OAAO,EAAE;YACXhU,QAAQ,CAACoP,IAAI,CAAC;AAAEzX,cAAAA,KAAK,EAAEmU,SAAS;AAAE5T,cAAAA,KAAK,EAAE6b,SAAAA;AAAU,aAAC,CAAC,CAAA;AACvD,WAAC,MAAM;AACL,YAAA,MAAMlc,KAAK,GAAGmI,QAAQ,CAACkU,SAAS,CAAC,CAAC;AAAEvc,cAAAA,KAAAA;AAAM,aAAC,KAAKsc,2BAAO,CAACnI,SAAS,EAAEnU,KAAK,CAAC,CAAC,CAAA;AAC1E,YAAA,IAAIE,KAAK,GAAG,CAAC,CAAC,EAAE;AACdmI,cAAAA,QAAQ,CAACC,MAAM,CAACpI,KAAK,EAAE,CAAC,CAAC,CAAA;AAC3B,aAAA;AACF,WAAA;AACA,UAAA,IAAImI,QAAQ,CAACnM,MAAM,GAAG+f,SAAS,EAAE;AAC/BtW,YAAAA,OAAO,CAAC6W,KAAK,CAAChZ,aAAa,CAAC;AAAEwB,cAAAA,EAAE,EAAE,kBAAA;AAAmB,aAAC,EAAE;AAAE5H,cAAAA,KAAK,EAAE6e,SAAAA;AAAU,aAAC,CAAC,CAAC,CAAA;AAC9E,YAAA,OAAA;AACF,WAAA;UACAhc,QAAQ,CAACoI,QAAQ,CAAC,CAAA;SAClB;AAAArH,QAAAA,QAAA,EAEDob,SAAAA;AAAS,OAAA,EAxBLA,SAyBO,CAAC,CAAA;KAElB,CAAA;AAAC,GACG,CAAC,CAAA;AAEZ,CAAC,CAAC;;ACtCF,MAAM;AAAEL,EAAAA,YAAAA;AAAa,CAAC,GAAG7T,QAAG,CAAA;AAE5B,MAAMuU,gBAAgB,GAAGA,CAACje,IAAI,EAAEke,MAAM,KAAK;EACzC,IAAIA,MAAM,KAAK,OAAO,EAAE;AACtB,IAAA,OAAOle,IAAI,EAAEme,MAAM,IAAIne,IAAI,EAAE6B,IAAI,CAAA;AACnC,GAAA;EACA,OAAO7B,IAAI,EAAE6B,IAAI,CAAA;AACnB,CAAC,CAAA;AAED,MAAMuc,mBAAmB,GAAGA,CAAC;EAAE5c,KAAK;EAAEC,QAAQ;AAAEwN,EAAAA,MAAM,GAAG,KAAK;AAAEwO,EAAAA,SAAS,GAAG,CAAC;EAAE,GAAG9b,KAAAA;AAAM,CAAC,KAAK;EAC5F,MAAM;AAAEwF,IAAAA,OAAAA;AAAQ,GAAC,GAAGuW,QAAG,CAACC,MAAM,EAAE,CAAA;EAChC,MAAM;AAAEO,IAAAA,MAAAA;GAAQ,GAAGpZ,iBAAO,EAAE,CAAA;EAC5B,MAAM;AAAEE,IAAAA,aAAAA;GAAe,GAAGF,iBAAO,CAAC;AAAEC,IAAAA,UAAU,EAAE,QAAA;AAAS,GAAC,CAAC,CAAA;EAC3D,MAAM,CAACsZ,UAAU,EAAEC,aAAa,CAAC,GAAG7jB,cAAQ,CAAC,IAAI,CAAC,CAAA;AAElDC,EAAAA,eAAS,CAAC,MAAM;IACd,IAAI6jB,SAAS,GAAG,KAAK,CAAA;IACrBzH,6BAAa,CAAC0H,WAAW,EAAE,CAACC,IAAI,CAACnC,IAAI,IAAI;AACvC,MAAA,IAAI,CAACiC,SAAS,IAAIjC,IAAI,EAAE;AACtBgC,QAAAA,aAAa,CAACI,gCAAgB,CAACpC,IAAI,CAAC,CAAC,CAAA;AACvC,OAAA;AACF,KAAC,CAAC,CAAA;AACF,IAAA,OAAO,MAAM;AACXiC,MAAAA,SAAS,GAAG,IAAI,CAAA;KACjB,CAAA;GACF,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMI,QAAQ,GAAGva,aAAO,CAAC,MAAM;IAC7B,OAAOia,UAAU,GAAGA,UAAU,CAACO,iBAAiB,EAAE,GAAG,EAAE,CAAA;AACzD,GAAC,EAAE,CAACP,UAAU,CAAC,CAAC,CAAA;EAEhB,oBACEzb,eAAA,CAACa,UAAK,EAAA;AAACC,IAAAA,IAAI,EAAE,CAAE;IAACqD,IAAI,EAAA,IAAA;IAACX,KAAK,EAAA,IAAA;AAAA5D,IAAAA,QAAA,GACvBmc,QAAQ,CAACzb,GAAG,CAAC2b,IAAI,IAAI;AACpB,MAAA,MAAM9c,KAAK,GAAGkc,gBAAgB,CAACY,IAAI,EAAEX,MAAM,CAAC,CAAA;MAC5C,oBACE1a,cAAA,CAAC+Z,YAAY,EAAA;AAEX7Z,QAAAA,IAAI,EAAC,OAAO;QACZma,OAAO,EAAE5O,MAAM,GAAGzN,KAAK,EAAEA,KAAK,KAAKqd,IAAI,CAACC,IAAI,GAAG,CAAC,CAAC,CAACtd,KAAK,IAAI,EAAE,EAAEzB,IAAI,CAAC,CAAC;AAAEyB,UAAAA,KAAAA;AAAM,SAAC,KAAKA,KAAK,KAAKqd,IAAI,CAACC,IAAI,CAAE;QACxGrd,QAAQ,EAAEoc,OAAO,IAAI;AACnB,UAAA,IAAI5O,MAAM,EAAE;AACVxN,YAAAA,QAAQ,CAACoc,OAAO,GAAGgB,IAAI,GAAG,IAAI,CAAC,CAAA;AAC/B,YAAA,OAAA;AACF,WAAA;UACA,MAAMhV,QAAQ,GAAG,CAACrI,KAAK,IAAI,EAAE,EAAE0D,KAAK,CAAC,CAAC,CAAC,CAAA;AACvC2Y,UAAAA,OAAO,GACHhU,QAAQ,CAACoP,IAAI,CAAC9W,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEyc,IAAI,EAAE;YAAE9c,KAAK;YAAEP,KAAK,EAAEqd,IAAI,CAACC,IAAAA;AAAK,WAAC,CAAC,CAAC,GACnE,CAAC,MAAM;AACL,YAAA,MAAMpd,KAAK,GAAGmI,QAAQ,CAACkU,SAAS,CAAC,CAAC;AAAEvc,cAAAA,KAAAA;AAAM,aAAC,KAAKA,KAAK,KAAKqd,IAAI,CAACC,IAAI,CAAC,CAAA;AACpEjV,YAAAA,QAAQ,CAACC,MAAM,CAACpI,KAAK,EAAE,CAAC,CAAC,CAAA;AAC3B,WAAC,GAAG,CAAA;AACR,UAAA,IAAImI,QAAQ,CAACnM,MAAM,GAAG+f,SAAS,EAAE;AAC/BtW,YAAAA,OAAO,CAAC6W,KAAK,CAAChZ,aAAa,CAAC;AAAEwB,cAAAA,EAAE,EAAE,kBAAA;AAAmB,aAAC,EAAE;AAAE5H,cAAAA,KAAK,EAAE6e,SAAAA;AAAU,aAAC,CAAC,CAAC,CAAA;AAC9E,YAAA,OAAA;AACF,WAAA;UACAhc,QAAQ,CAACoI,QAAQ,CAAC,CAAA;SAClB;AAAArH,QAAAA,QAAA,EAEDT,KAAAA;OAtBI8c,EAAAA,IAAI,CAACC,IAuBE,CAAC,CAAA;AAEnB,KAAC,CAAC,eACFlc,eAAA,CAAC2a,YAAY,EAAA;AACXza,MAAAA,SAAS,EAAEE,OAAK,CAAC,4BAA4B,CAAE;AAC/CU,MAAAA,IAAI,EAAC,OAAO;AACZma,MAAAA,OAAO,EAAE,CAAC5O,MAAM,GAAGzN,KAAK,EAAEA,KAAK,GAAGA,KAAK,EAAE9D,MAAM,GAAG,CAAC,KAAK,CAACihB,QAAQ,CAAC5e,IAAI,CAAC,CAAC;AAAE+e,QAAAA,IAAAA;AAAK,OAAC,KAAM7P,MAAM,GAAGzN,KAAK,EAAEA,KAAK,KAAKsd,IAAI,GAAG,CAAC,CAAC,CAACtd,KAAK,IAAI,EAAE,EAAEzB,IAAI,CAAC,CAAC;AAAEyB,QAAAA,KAAAA;AAAM,OAAC,KAAKA,KAAK,KAAKsd,IAAI,CAAE,CAAE;MAAAtc,QAAA,EAAA,CAE5KwC,aAAa,CAAC;AAAEwB,QAAAA,EAAE,EAAE,WAAA;AAAY,OAAC,CAAC,eACnChD,cAAA,CAACsT,6BAAa,EAAA;AAAA,QAAA,GACRnV,KAAK;AACTmB,QAAAA,SAAS,EAAEE,OAAK,CAAC,kCAAkC,CAAE;AACrDya,QAAAA,SAAS,EAAEA,SAAU;AACrBvO,QAAAA,UAAU,EAAE,KAAM;AAClB1N,QAAAA,KAAK,EAAEA,KAAM;AACbyN,QAAAA,MAAM,EAAEA,MAAO;QACfxN,QAAQ,EAAED,KAAK,IAAI;AACjB,UAAA,IAAIA,KAAK,CAAC9D,MAAM,GAAG+f,SAAS,EAAE;AAC5BtW,YAAAA,OAAO,CAAC6W,KAAK,CAAChZ,aAAa,CAAC;AAAEwB,cAAAA,EAAE,EAAE,kBAAA;AAAmB,aAAC,EAAE;AAAE5H,cAAAA,KAAK,EAAE6e,SAAAA;AAAU,aAAC,CAAC,CAAC,CAAA;AAC9E,YAAA,OAAA;AACF,WAAA;UACAhc,QAAQ,CAACD,KAAK,CAAC,CAAA;AACjB,SAAA;AAAE,OACH,CAAC,CAAA;AAAA,KACU,CAAC,CAAA;AAAA,GACV,CAAC,CAAA;AAEZ,CAAC,CAAA;AAED,MAAMud,cAAc,GAAGlW,UAAU,CAACuV,mBAAmB,CAAC;;AC7FtD,MAAMY,MAAM,GAAG;EAAEzN,eAAe;EAAEiM,cAAc;AAAEuB,EAAAA,cAAAA;AAAe,CAAC;;ACOlE,MAAMzc,IAAI,GAAGC,IAAA,IAAc;AAAA,EAAA,IAAX7B,IAAI,GAAA6B,IAAA,CAAJ7B,IAAI,CAAA;AAClB,EAAA,MAAAa,WAAA,GAA4BnH,UAAU,EAAE;IAAhCoH,KAAK,GAAAD,WAAA,CAALC,KAAK;IAAEC,QAAQ,GAAAF,WAAA,CAARE,QAAQ,CAAA;EACvB,oBACE+B,cAAA,CAACyP,SAAI,EAAA;AAAC+B,IAAAA,GAAG,EAAE,CAAE;IAAAxS,QAAA,EACV9B,IAAI,CAACwC,GAAG,CAAC,CAAClD,IAAI,EAAE0B,KAAK,KAAK;AACzB,MAAA,MAAMM,aAAa,GAAGhC,IAAI,CAACQ,IAAI,CAAA;MAC/B,oBACEoC,eAAA,CAACqQ,SAAI,EAAA;AAAC+B,QAAAA,GAAG,EAAE,EAAG;AAA4CpO,QAAAA,KAAK,EAAC,QAAQ;AAAApE,QAAAA,QAAA,gBACtEI,eAAA,CAAA,KAAA,EAAA;AAAKE,UAAAA,SAAS,EAAEE,OAAK,CAAC,cAAc,CAAE;AAAAR,UAAAA,QAAA,GAAExC,IAAI,CAAC2B,KAAK,CAACI,KAAK,EAAC,GAAC,CAAA;AAAA,SAAK,CAAC,eAChEyB,cAAA,CAACyP,SAAI,EAAA;AAAClM,UAAAA,IAAI,EAAE,IAAK;AAACH,UAAAA,KAAK,EAAC,QAAQ;UAAApE,QAAA,eAC9BgB,cAAA,CAACxB,aAAa,EAAAE,QAAA,CAAA,EAAA,EACRlC,IAAI,CAAC2B,KAAK,EAAA;YACdH,KAAK,EAAEA,KAAK,GAAGI,uBAAG,CAACJ,KAAK,CAACI,GAAG,CAAC5B,IAAI,CAAC2B,KAAK,CAACE,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG7B,IAAI,CAAC2B,KAAK,CAACH,KAAM;AAC3EC,YAAAA,QAAQ,EACNA,QAAQ,GACJD,KAAK,IACHC,QAAQ,CAAC;AACPI,cAAAA,IAAI,EAAE7B,IAAI,CAAC2B,KAAK,CAACE,IAAI;AACrBE,cAAAA,KAAK,EAAE/B,IAAI,CAAC2B,KAAK,CAACI,KAAK;AACvBP,cAAAA,KAAAA;AACF,aAAC,CAAC,GACJxB,IAAI,CAAC2B,KAAK,CAACF,QAAAA;WAElB,CAAA,CAAA;AAAC,SACE,CAAC,CAAA;OAjBWzB,EAAAA,IAAI,CAACqC,GAAG,IAAIrC,IAAI,CAAC2B,KAAK,CAACE,IAAI,IAAIH,KAkB7C,CAAC,CAAA;KAEV,CAAA;AAAC,GACE,CAAC,CAAA;AAEX,CAAC,CAAA;AAED,MAAMud,cAAc,GAAGpW,UAAU,CAAClH,KAAK,IAAI;EACzC,MAAAkD,QAAA,GAA0BC,iBAAO,CAAC;AAAEC,MAAAA,UAAU,EAAE,QAAA;AAAS,KAAC,CAAC;IAAnDC,aAAa,GAAAH,QAAA,CAAbG,aAAa,CAAA;AACrB,EAAA,oBACExB,cAAA,CAACuH,WAAW,EAAA7I,QAAA,KAAKP,KAAK,EAAA;IAAAa,QAAA,EACnBY,KAAA,IAAkD;AAAA,MAAA,IAA/C5B,KAAK,GAAA4B,KAAA,CAAL5B,KAAK;QAAEC,QAAQ,GAAA2B,KAAA,CAAR3B,QAAQ;QAAA0J,WAAA,GAAA/H,KAAA,CAAEzB,KAAK;AAAEyJ,QAAAA,WAAW,GAAAD,WAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,WAAA,CAAA;AAC1C,MAAA,MAAQzK,IAAI,GAAW0K,WAAW,CAA1B1K,IAAI;QAAEwe,IAAI,GAAK9T,WAAW,CAApB8T,IAAI,CAAA;AAClB,MAAA,oBACEtc,eAAA,CAAA,KAAA,EAAA;QAAAJ,QAAA,EAAA,cACEI,eAAA,CAACqQ,SAAI,EAAA;AAAC+B,UAAAA,GAAG,EAAE,CAAE;UAAC9B,QAAQ,EAAA,IAAA;AAACpQ,UAAAA,SAAS,EAAEE,OAAK,CAAC,iBAAiB,CAAE;UAAAR,QAAA,EAAA,CACxD9B,IAAI,IACHA,IAAI,CAACwC,GAAG,CAAC,CAAClD,IAAI,EAAE0B,KAAK,KAAK;YACxB,oBAAO8B,cAAA,CAAClB,IAAI,EAAA;AAAa5B,cAAAA,IAAI,EAAEV,IAAAA;AAAK,aAAA,EAAlB0B,KAAoB,CAAC,CAAA;AACzC,WAAC,CAAC,EACHwd,IAAI,iBAAI1b,cAAA,CAACG,WAAW,EAAA;AAACb,YAAAA,SAAS,EAAEE,OAAK,CAAC,sBAAsB,CAAE;YAACjB,KAAK,EAAKiD,aAAa,CAAC;AAAEwB,cAAAA,EAAE,EAAE,UAAA;AAAW,aAAC,CAAC,GAAI,GAAA;YAAC9F,IAAI,EAAE,CAACwe,IAAI,CAAA;AAAE,WAAE,CAAC,CAAA;AAAA,SAC5H,CAAC,EACN1d,KAAK,IAAIA,KAAK,CAAC9D,MAAM,GAAG,CAAC,iBAAI8F,cAAA,CAAC4F,kBAAkB,EAAA;AAAC5H,UAAAA,KAAK,EAAEA,KAAM;AAACC,UAAAA,QAAQ,EAAEA,QAAAA;AAAS,SAAE,CAAC,CAAA;AAAA,OACnF,CAAC,CAAA;AAEV,KAAA;AAAC,GAAA,CACU,CAAC,CAAA;AAElB,CAAC,EAAC;AAEFwd,cAAc,CAACD,MAAM,GAAGG,MAAc;;;AClEhCC,MAAAA,mBAAmB,GAAG7c,IAAA,IAA4B;AAAA,EAAA,IAAzBC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;AAAKb,IAAAA,KAAK,GAAAsJ,6BAAA,CAAA1I,IAAA,EAAA2I,SAAA,CAAA,CAAA;EAC/C,OAAO1I,QAAQ,CAACb,KAAK,CAAC,CAAA;AACxB;;ACYAqJ,MAAM,CAACgU,MAAM,GAAGA,QAAM,CAAA;AACtBhU,MAAM,CAAC+L,cAAc,GAAGA,cAAc,CAAA;AACtC/L,MAAM,CAACqU,SAAS,GAAGA,UAAS,CAAA;AAC5BrU,MAAM,CAACmM,WAAW,GAAGA,WAAW,CAAA;AAChCnM,MAAM,CAACiM,eAAe,GAAGA,eAAe,CAAA;AACxCjM,MAAM,CAACX,cAAc,GAAGA,cAAc,CAAA;AAEtCW,MAAM,CAACmN,gBAAgB,GAAGA,gBAAgB,CAAA;AAC1CnN,MAAM,CAACsN,uBAAuB,GAAGA,uBAAuB,CAAA;AACxDtN,MAAM,CAACuO,YAAY,GAAGA,YAAY,CAAA;AAClCvO,MAAM,CAACiR,iBAAiB,GAAGA,iBAAiB,CAAA;AAC5CjR,MAAM,CAAC4N,qBAAqB,GAAGA,qBAAqB,CAAA;AACpD5N,MAAM,CAACmO,sBAAsB,GAAGA,sBAAsB,CAAA;AACtDnO,MAAM,CAACmP,iBAAiB,GAAGA,iBAAiB,CAAA;AAC5CnP,MAAM,CAAC4P,gBAAgB,GAAGA,gBAAgB,CAAA;AAC1C5P,MAAM,CAACgQ,eAAe,GAAGA,eAAe,CAAA;AACxChQ,MAAM,CAAC0Q,qBAAqB,GAAGA,qBAAqB,CAAA;AACpD1Q,MAAM,CAACsU,kBAAkB,GAAGA,kBAAkB,CAAA;AAC9CtU,MAAM,CAAC8R,uBAAuB,GAAGA,uBAAuB,CAAA;AACxD9R,MAAM,CAACgS,sBAAsB,GAAGA,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|