@solidxai/core-ui 0.1.8-beta.1 → 0.1.8-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"SolidGlobalSearchElement.js","sourceRoot":"","sources":["../../../../src/components/core/common/SolidGlobalSearchElement.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from \"react\";\nimport FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from \"../../../components/core/common/FilterComponent\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport qs from \"qs\";\nimport { SolidSaveCustomFilterForm } from \"./SolidSaveCustomFilterForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { hydrateRelationRules } from \"../../../helpers/hydrateRelationRules\";\nimport { useSession } from '../../../hooks/useSession'\nimport GroupingComponent, { AggregationRule, GroupingRule, DateGroupingFormat } from \"./GroupingComponent\";\nimport { Bookmark, Check, Filter, Pencil, Plus, Search, SearchX, Trash2, X } from \"lucide-react\";\nimport { SolidButton } from \"../../shad-cn-ui/SolidButton\";\nimport { SolidInput } from \"../../shad-cn-ui/SolidInput\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui/SolidDialog\";\n\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\ninterface PredefinedSearch {\n name: string;\n description?: string;\n filters: Record<string, any>;\n}\n\nexport type SearchableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n}\n\nexport type GroupableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n type: string;\n ormType: string;\n relationType: string;\n computedFieldValueType: string;\n}\n\nconst extractFields = (nodes: any[] = []): any[] => {\n const result: any[] = [];\n\n for (const node of nodes) {\n if (node?.type === \"field\") {\n result.push(node);\n }\n\n if (Array.isArray(node?.children)) {\n result.push(...extractFields(node.children));\n }\n }\n\n return result;\n};\n\n\nconst transformFiltersToRules = (filter: any, parentRule: number | null = null): FilterRule => {\n if (!filter || typeof filter !== \"object\" || Object.keys(filter).length === 0) {\n throw new Error(\"Invalid filter: expected a non-null object with properties\");\n }\n if (!filter || typeof filter !== \"object\") {\n throw new Error(\"Invalid filter: expected a non-null object\");\n }\n const currentId = idCounter++;\n if (filter[\"$or\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule,\n children: filter[\"$or\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n if (filter[\"$and\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule,\n children: filter[\"$and\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n // Handle single rule condition\n for (const fieldName in filter) {\n const condition = filter[fieldName];\n if (!condition || typeof condition !== \"object\") {\n throw new Error(`Invalid condition for field '${fieldName}'`);\n }\n\n // CASE 1: relation filter → unwrap first\n if (condition?.id && typeof condition?.id === \"object\") {\n for (const matchMode in condition.id) {\n const rawValue = condition.id[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n }\n\n // CASE 2: normal field → loop stays\n for (const matchMode in condition) {\n const rawValue = condition[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n\n\n }\n throw new Error(ERROR_MESSAGES.INVALID_FILTER_STRUCTURE);\n}\n\n\n\n\nlet idCounter = 1;\nconst generateId = () => Date.now() + Math.floor(Math.random() * 1000);\n\n\nconst transformRulesToFilters = (input: any, viewData: any) => {\n\n // Helper function to process individual rules\n const processRule = (rule: any) => {\n if (rule.value !== undefined && rule.value !== null) {\n\n // Ensure rule.value is always an array\n let values = typeof rule.value[0] === \"object\" ? rule.value.map((i: any) => i?.value ? i?.value : i) : rule?.value;\n if (rule.matchMode !== '$in' && rule.matchMode !== '$notIn' && rule.matchMode !== '$between' && rule.matchMode !== '$null' && rule.matchMode !== '$notNull') {\n values = values[0];\n }\n\n\n const fieldMeta = viewData?.data?.solidFieldsMetadata?.[rule.fieldName];\n const isManyToMany = fieldMeta?.type === 'relation' && fieldMeta?.relationType === 'many-to-many';\n\n\n let transformedRule;\n if (isManyToMany) {\n // For many-to-many relations, always use array format for $in/$notIn\n transformedRule = {\n [rule.fieldName]: {\n id: {\n [rule.matchMode]: values // Keep as array\n }\n }\n };\n } else {\n // Rule transformation\n transformedRule = {\n [rule.fieldName]: {\n [rule.matchMode]: values // Assuming `value` is always an array with `value` and `label`\n }\n };\n }\n\n let processedFields;\n if (rule.children && rule.children.length > 0) {\n processedFields = rule.children.map((child: any) => processRuleGroup(child)).filter((child: any) => child != null);;\n }\n if (processedFields) {\n return { ...transformedRule, processedFields }\n }\n return { ...transformedRule }\n\n }\n\n };\n\n // Helper function to process rule groups\n const processRuleGroup = (ruleGroup: any) => {\n const operator = ruleGroup.matchOperator === 'or' ? '$or' : '$and';\n const children = ruleGroup.children.map((child: any) => {\n if (child.type === 'rule') {\n // Process the rule\n return processRule(child);\n } else if (child.type === 'rule_group') {\n // Process the rule group recursively\n return processRuleGroup(child);\n }\n }).filter((child: any) => child != null);\n // If no valid children, return null\n // if (children.length === 0) {\n // return null;\n // }\n\n // If only one child, return it directly without wrapping in operator\n // if (children.length === 1) {\n // return children[0];\n // }\n\n return {\n [operator]: children\n };\n };\n\n\n // Start processing the root rule group\n const filterObject = processRuleGroup(input);\n\n if (!filterObject) {\n return {};\n }\n\n function liftProcessedFields(filters: any) {\n if (!filters || typeof filters !== 'object') return filters;\n\n const processArray = (arr: any) => {\n let newArr = [];\n for (let obj of arr) {\n if (obj && obj.processedFields) {\n let processed: any = processArray(obj.processedFields); // Recursively process nested processedFields\n delete obj.processedFields;\n newArr.push(obj, ...processed);\n } else {\n newArr.push(obj);\n }\n\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key] = processArray(obj[key]);\n }\n }\n }\n return newArr;\n }\n\n for (let key in filters) {\n if (Array.isArray(filters[key])) {\n filters[key] = processArray(filters[key]);\n }\n }\n\n return filters;\n }\n\n\n return liftProcessedFields(filterObject)\n\n}\n\n\ntype GroupedType = {\n values: string[];\n searchField: any;\n matchMode: string;\n}\n\n// Build nested condition for relation fields\nfunction buildNestedCondition(path: string, operatorKey: string, value: any) {\n const keys = path.split(\".\").filter(Boolean);\n const leaf = { [operatorKey]: value };\n return keys.reduceRight((acc, key) => ({ [key]: acc }), leaf);\n}\n\nconst tranformSearchToFilters = (input: any) => {\n if (!input || !input.$and) return input;\n\n const grouped: Record<string, GroupedType> = {};\n\n input.$and.forEach(({ fieldName, value, searchField, matchMode }: any) => {\n const val = Array.isArray(value) && value.length === 1 ? value[0] : value;\n\n if (!grouped[fieldName]) {\n grouped[fieldName] = { values: [], searchField: searchField || \"\", matchMode: matchMode || \"$containsi\" };\n }\n\n if (Array.isArray(val)) {\n grouped[fieldName]?.values.push(...val);\n } else {\n grouped[fieldName]?.values.push(val);\n }\n });\n\n // return {\n // $and: Object.entries(grouped).map(([fieldName, values]) => ({\n // [fieldName]: {\n // $containsi: values.length === 1 ? values[0] : values\n // }\n // }))\n // };\n\n const andFilters: any[] = [];\n\n Object.entries(grouped).forEach(([fieldName, value]) => {\n\n const isNested = value.searchField ? value.searchField.includes(\".\") : false;\n\n if (isNested) {\n\n // NESTED: use $eq and expand dot-notation into nested objects\n if (value.values.length === 1) {\n andFilters.push(buildNestedCondition(value.searchField, value.matchMode, value.values[0]));\n } else {\n andFilters.push({\n $or: value.values.map(v => buildNestedCondition(value.searchField, value.matchMode, v)),\n });\n }\n } else {\n\n if (value.values.length === 1) {\n andFilters.push({\n [fieldName]: {\n $containsi: value.values[0]\n }\n });\n } else {\n andFilters.push({\n $or: value.values.map((v) => ({\n [fieldName]: { $containsi: v }\n }))\n });\n }\n }\n });\n\n return {\n $and: andFilters\n };\n}\n\nexport const mergeSearchAndCustomFilters = (transformedFilter: any, newFilter: any, transformedFilterName: string, newFilterName: string) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (transformedFilter && Object.keys(transformedFilter).length > 0) {\n filters[transformedFilterName] = transformedFilter;\n }\n if (newFilter && Object.keys(newFilter).length > 0) {\n filters[newFilterName] = newFilter;\n }\n\n // Return the combined filters object\n return filters;\n}\n\n\nexport const mergeAllDiffFilters = (customFilter: any, searchFilter: any, savedFilter: any, preDefinedFilter?: any, groupingRules?: GroupingRule[], aggregationRules?: AggregationRule[]) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (customFilter && Object.keys(customFilter).length > 0) {\n filters[\"custom_filter_predicate\"] = customFilter;\n }\n if (searchFilter && Object.keys(searchFilter).length > 0) {\n filters[\"search_predicate\"] = searchFilter;\n }\n if (savedFilter && Object.keys(savedFilter).length > 0) {\n filters[\"saved_filter_predicate\"] = savedFilter;\n }\n if (preDefinedFilter && Object.keys(preDefinedFilter).length > 0) {\n filters[\"predefined_search_predicate\"] = preDefinedFilter;\n }\n if (groupingRules && Object.keys(groupingRules).length > 0) {\n filters[\"grouping_rules\"] = groupingRules;\n }\n if (aggregationRules && Object.keys(aggregationRules).length > 0) {\n filters[\"aggregation_rules\"] = aggregationRules;\n }\n // Return the combined filters object\n return filters;\n}\n\nconst SavedFilterList = ({ savedfilter, activeSavedFilter, applySavedFilter, openSavedCustomFilter, setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible, isFocused, onMouseEnter }: any) => {\n const isActive = Number(activeSavedFilter) == savedfilter.id;\n\n return (\n <div className=\"solid-saved-filter-item\" onMouseEnter={onMouseEnter}>\n <div className=\"solid-saved-filter-main-wrap\">\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className={`solid-saved-filter-main w-full ${isActive ? \"is-active\" : \"\"} ${isFocused ? \"solid-search-overlay-option-active\" : \"\"}`}\n onClick={() => applySavedFilter(savedfilter)}\n title={savedfilter?.description}\n >\n {savedfilter.name}\n </SolidButton>\n </div>\n <div className=\"solid-saved-filter-actions\">\n {savedfilter.isSeeded !== true &&\n <>\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-saved-filter-icon-btn\"\n onClick={() => openSavedCustomFilter(savedfilter)}\n >\n <Pencil size={14} />\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-saved-filter-icon-btn is-danger\"\n onClick={() => {\n setSavedFilterTobeDeleted(savedfilter.id),\n setIsDeleteSQDialogVisible(true);\n }}\n >\n <Trash2 size={14} />\n </SolidButton>\n </>\n }\n\n </div>\n </div>\n )\n}\n\nconst replacePlaceholders = (obj: any, searchValue: string): any => {\n if (typeof obj === 'string') {\n return obj.replace(/\\{\\{search\\}\\}/g, searchValue);\n }\n if (Array.isArray(obj)) {\n return obj.map(item => replacePlaceholders(item, searchValue));\n }\n if (obj && typeof obj === 'object') {\n const newObj: any = {};\n for (const key in obj) {\n newObj[key] = replacePlaceholders(obj[key], searchValue);\n }\n return newObj;\n }\n return obj;\n};\n\n\nconst extractChips = (node: any): any[] => {\n if (!node) return [];\n\n // If node has $and\n if (node.$and && Array.isArray(node.$and)) {\n return node.$and.flatMap(extractChips);\n }\n\n // If node has $or\n if (node.$or && Array.isArray(node.$or)) {\n return node.$or.flatMap(extractChips);\n }\n\n // Leaf condition\n const field = Object.keys(node)[0];\n const operatorObj = node[field];\n\n // ✅ Normal case\n if (operatorObj?.$containsi) {\n return [{\n columnName: field,\n value: operatorObj.$containsi,\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: field,\n matchMode: \"$containsi\"\n }];\n }\n // ✅ Nested case (like city.name)\n else if (typeof operatorObj === \"object\") {\n const nestedField = Object.keys(operatorObj)[0];\n const nestedOperatorObj = operatorObj[nestedField];\n\n const operatorKey = nestedOperatorObj\n ? Object.keys(nestedOperatorObj).find(k => k.startsWith(\"$\"))\n : null;\n\n if (operatorKey) {\n return [{\n columnName: field,\n value: nestedOperatorObj[operatorKey],\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: `${field}.${nestedField}`,\n matchMode: operatorKey\n }];\n }\n }\n\n return [];\n};\n\n\n\ntype RelationCache = Map<string, { label: string; value: number }>;\n\n\n\nexport const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handleApplyCustomFilter, showSaveFilterPopup, setShowSaveFilterPopup, filterPredicates }: any, ref) => {\n type OverlayOption =\n | { id: string; kind: \"field\"; field: any }\n | { id: string; kind: \"predefined\"; predefined: any }\n | { id: string; kind: \"saved\"; saved: any };\n type ManagedChipItem = {\n id: string;\n type: \"saved\" | \"search\" | \"predefined\" | \"custom\" | \"grouping\";\n label: string;\n onRemove: () => void;\n onOpen?: () => void;\n };\n\n const defaultState: FilterRule[] = [\n {\n id: 1,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule: null,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n }\n ]\n }\n ];\n\n const defaultAggregationRules: AggregationRule[] = [\n {\n id: 1,\n operator: \"count\",\n fieldName: \"id\",\n locked: true\n }\n ];\n\n const defaultGroupingRules: GroupingRule[] = [\n { id: 1, fieldName: null, dateGrouping: null }\n ];\n\n const [initialState, setInitialState] = useState(defaultState);\n const pathname = usePathname();\n const searchableEntityLabel =\n viewData?.data?.solidView?.displayName ||\n viewData?.data?.solidView?.model?.displayName ||\n \"records\";\n\n\n const searchParams = useSearchParams() // Converts the query params to a string\n const activeSavedFilter = searchParams?.get(\"savedQuery\");\n\n const router = useRouter();\n\n const chipsRef = useRef<HTMLDivElement | null | any>(null);\n\n // filterRules is used to maintian the ui of custom filter \n // customFilter is used to maintian the transformed filter object of custom filter\n const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [customFilter, setCustomFilter] = useState<any | null>(null);\n\n const [fields, setFields] = useState<any[]>([]);\n const [searchableFields, setSearchableFields] = useState<any[]>([]);\n const [groupableFields, setGroupableFields] = useState<GroupableField[]>([]);\n\n const [groupingRules, setGroupingRules] = useState<GroupingRule[]>(defaultGroupingRules);\n const [aggregationRules, setAggregationRules] = useState<AggregationRule[]>(defaultAggregationRules);\n\n // used to show the list of predefined searches \n const [predefinedSearches, setPredefinedSearches] = useState<PredefinedSearch[]>([]);\n\n // used to open / close the custom fitler popup \n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n\n // used to open / close the group fitler popup \n const [showGroupFilterElement, setShowGroupFilterElement] = useState<boolean>(false);\n\n\n // searchChips maintain the ui to display searched query \n // searchFilter maintain the transformed filter of the searched query \n const [searchChips, setSearchChips] = useState<{ columnName?: string; value: string }[]>([]);\n const [searchFilter, setSearchFilter] = useState<any | null>(null);\n\n // predefinedSearchChip maintain the ui to display predefined searches query \n const [predefinedSearchChip, setPredefinedSearchChip] = useState<{ name: string; value: string } | null>(null);\n\n // state to maintain the text typed in the search input box\n const [inputValue, setInputValue] = useState<string | null>(\"\");\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n // flag to prevent un necessary re renders\n const [hasSearched, setHasSearched] = useState<boolean>(false);\n\n // currentSavedFilterData is used to save the whole object of saved filter \n const [currentSavedFilterData, setCurrentSavedFilterData] = useState<any>();\n const [currentSavedFilterQuery, setCurrentSavedFilterQuery] = useState<any>();\n const [currentSavedFilterRules, setCurrentSavedFilterRules] = useState<any>();\n const [showSavedFilterComponent, setShowSavedFilterComponent] = useState<boolean>(false);\n\n\n const [savedFilterTobeDeleted, setSavedFilterTobeDeleted] = useState<any>();\n const [isDeleteSQDialogVisible, setIsDeleteSQDialogVisible] = useState<boolean>(false);\n const [savedFilterQueryString, setSavedFilterQueryString] = useState<string>();\n const [showOverlay, setShowOverlay] = useState(false);\n const overlayRef = useRef<HTMLDivElement | null>(null);\n const [showChipManager, setShowChipManager] = useState(false);\n const chipManagerRef = useRef<HTMLDivElement | null>(null);\n const chipManagerTriggerRef = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (focusedIndex >= 0 && showOverlay) {\n const activeElement = document.querySelector(`.solid-search-overlay-option-active`);\n if (activeElement) {\n activeElement.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, [focusedIndex, showOverlay]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const [refreshKey, setRefreshKey] = useState(0);\n\n const [predefinedSearchBaseFilter, setPredefinedSearchBaseFilter] = useState<any>(null);\n\n const [savedFilters, setSavedFilters] = useState([]);\n const [savedFiltersLoaded, setSavedFiltersLoaded] = useState(false);\n\n const entityApi = createSolidEntityApi(\"savedFilters\");\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n useLazyGetSolidEntitiesQuery\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading: isSavedFilterLoading, error }] = useLazyGetSolidEntitiesQuery();\n\n const [savedFilterFetchDataRefreshKey, setSavedFilterFetchDataRefreshKey] = useState(0);\n\n\n\n useEffect(() => {\n const fn = async () => {\n if (!viewData?.data?.solidView?.model?.id || !viewData?.data?.solidView?.id || !user?.id) {\n return;\n }\n setSavedFiltersLoaded(false)\n const filters = {\n $or: [\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { user: { $in: [user?.id] } },\n { isPrivate: { $eq: true } }\n ]\n },\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { isPrivate: { $eq: false } }\n ]\n }\n\n ]\n }\n const queryData: any = {\n offset: 0,\n limit: 10,\n filters: filters,\n populate: [\"model\", \"view\", \"user\"],\n sort: [\"id:desc\"],\n };\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n setSavedFilterQueryString(queryString)\n const savedFilter = await triggerGetSolidEntities(queryString).unwrap();\n\n if (savedFilter) {\n // console.log(\"savedFilter\", savedFilter);\n setSavedFilters(savedFilter?.records)\n }\n setSavedFiltersLoaded(true);\n }\n fn()\n }, [\n activeSavedFilter,\n savedFilterFetchDataRefreshKey,\n viewData?.data?.solidView?.id,\n viewData?.data?.solidView?.model?.id,\n user?.id\n ])\n\n useImperativeHandle(ref, () => ({\n clearFilter: () => {\n setFilterRules(initialState);\n },\n openGroupingDialog: () => {\n setShowOverlay(false);\n setShowGroupFilterElement(true);\n },\n openCustomFilterDialog: () => {\n setShowOverlay(false);\n setShowGlobalSearchElement(true);\n }\n }));\n\n useEffect(() => {\n const fn = async () => {\n let searchChips: any;\n let customChips: any;\n if (savedFiltersLoaded) {\n\n if (activeSavedFilter && savedFilters.length === 0) return;\n\n const queryObject = getFilterObjectFromLocalStorage();\n // const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (activeSavedFilter) {\n const currentSavedFilterId = Number(activeSavedFilter);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === currentSavedFilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n }\n }\n } else {\n setCurrentSavedFilterData(null)\n setCurrentSavedFilterQuery(null)\n }\n if (queryObject) {\n if (queryObject) {\n searchChips = queryObject?.search_predicate || null;\n customChips = queryObject?.custom_filter_predicate || null;\n }\n }\n if (searchChips) {\n setSearchFilter(searchChips);\n // const formattedChips = searchChips?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n\n const formattedChips = extractChips(searchChips);\n setSearchChips(formattedChips);\n\n }\n if (customChips && Object.keys(customChips).length !== 0) {\n setCustomFilter(customChips);\n const rules: FilterRule = transformFiltersToRules(customChips);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n const hasGroupingRules = (queryObject?.grouping_rules?.some((rule: any) => rule.fieldName !== null));\n\n if (hasGroupingRules) {\n setGroupingRules(queryObject?.grouping_rules);\n } else {\n // If no grouping rules in localStorage check layout\n const layoutGroupBy = viewData?.data?.solidView?.layout?.attrs?.groupBy;\n\n if (Array.isArray(layoutGroupBy) && layoutGroupBy.length > 0) {\n const initialGroupingRules: GroupingRule[] = layoutGroupBy.map((groupStr: string, index: number) => {\n const [fieldName, dateGrouping] = groupStr.split(\":\");\n return {\n id: Date.now() + index,\n fieldName: fieldName || null,\n dateGrouping: (dateGrouping as DateGroupingFormat) || null\n };\n });\n setGroupingRules(initialGroupingRules);\n }\n }\n\n if (queryObject?.aggregation_rules && queryObject?.aggregation_rules !== aggregationRules) {\n setAggregationRules(queryObject?.aggregation_rules);\n }\n\n\n setRefreshKey((prev) => prev + 1)\n setHasSearched(true);\n }\n }\n fn()\n }, [viewData?.data?.solidView?.id, activeSavedFilter, savedFiltersLoaded])\n\n useEffect(() => {\n const fn = async () => {\n if (filterPredicates) {\n if (filterPredicates?.custom_filter_predicate && filterPredicates?.custom_filter_predicate !== customFilter) {\n setCustomFilter(filterPredicates?.custom_filter_predicate);\n const rules: FilterRule = transformFiltersToRules(filterPredicates.custom_filter_predicate);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n if (filterPredicates?.search_predicate && filterPredicates?.search_predicate !== searchFilter) {\n setSearchFilter(filterPredicates?.search_predicate);\n // const formattedChips = filterPredicates.search_predicate?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n const formattedChips = extractChips(filterPredicates.search_predicate);\n setSearchChips(formattedChips);\n\n }\n }\n }\n fn()\n }, [filterPredicates])\n\n useEffect(() => {\n if (viewData?.data?.solidFieldsMetadata) {\n // Reset search state when switching views\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setInputValue(\"\");\n\n\n let fieldsData = viewData?.data?.solidFieldsMetadata;\n // console.log(`fiels data while rendering solid global search element: `);\n // console.log(fieldsData);\n\n const layoutChildren = viewData?.data?.solidView?.layout?.children ?? [];\n const fieldElements = extractFields(layoutChildren);\n\n\n const fieldsList = Object.entries(fieldsData ?? {}).map(([key, value]: any) => {\n const viewFieldElement = fieldElements.find(\n (f: any) => f?.attrs?.name === key\n );\n return {\n name: value.displayName,\n value: key,\n type: value.type,\n ormType: value.ormType,\n matchMode: viewFieldElement?.attrs?.searchMatchMode,\n searchField: viewFieldElement?.attrs?.searchField ?? null,\n isSearchable: viewFieldElement?.attrs?.isSearchable ?? false,\n relationType: value?.relationType ?? null,\n };\n });\n\n const filterableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"mediaSingle\":\n case \"mediaMultiple\":\n return false;\n default:\n return true;\n }\n });\n\n setFields(filterableFieldsList);\n\n const searchableFieldsList = fieldsList.filter((field: any) => {\n if (!field.isSearchable) return false;\n\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n return !!field.searchField;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n const groupableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n if (field.relationType === \"many-to-one\")\n return true;\n return false;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n case \"int\":\n case \"float\":\n case \"boolean\":\n case \"date\":\n case \"datetime\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n // Optionally map to a minimal structure if needed for UI\n let finalSearchableFieldsList: any = searchableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode\n }));\n\n setSearchableFields(finalSearchableFieldsList);\n\n let finalGroupableFieldsList: any = groupableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode,\n type: field.type,\n ormType: field.ormType,\n relationType: field.relationType,\n computedFieldValueType: field.computedFieldValueType\n }));\n\n setGroupableFields(finalGroupableFieldsList)\n\n const predefinedSearchesList = viewData?.data?.solidView?.layout?.attrs?.predefinedSearches || [];\n setPredefinedSearches(predefinedSearchesList);\n }\n // used to open the \n }, [viewData])\n\n useEffect(() => {\n if (chipsRef.current) {\n const inputElement = chipsRef.current.querySelector(\"input\");\n if (inputElement) {\n inputElement.addEventListener(\"input\", (e: any) => {\n setInputValue((e.target as HTMLInputElement).value);\n });\n }\n }\n }, []);\n\n\n const handleAddChip = (columnName?: string) => {\n if (inputValue?.trim()) {\n const fallbackField = searchableFields[0]; // guaranteed object\n if (!fallbackField) return;\n // Support comma-separated values: split, trim and add as separate chips\n const values = inputValue.split(\",\").map(v => v.trim()).filter(v => v !== \"\");\n const fieldName = columnName || fallbackField.fieldName;\n const chipsToAdd = values.map(v => ({\n columnName: fieldName,\n value: v,\n columnDisplayName: fallbackField.displayName,\n searchField: fallbackField.searchField,\n matchMode: fallbackField.matchMode\n }));\n\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n };\n\n const clearCustomFilter = () => {\n setFilterRules(initialState);\n setCustomFilter(null)\n // setPredefinedSearchChip(null)\n // setPredefinedSearchBaseFilter(null)\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n\n const transformCustomFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCustomFilter(finalCustomFilter);\n setShowGlobalSearchElement(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n }\n\n const transformSavedFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCurrentSavedFilterQuery(finalCustomFilter);\n setShowSavedFilterComponent(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n\n }\n\n const applyGrouping = (groupingRules: GroupingRule[], aggregationRules: AggregationRule[]) => {\n setHasSearched(true)\n setShowGroupFilterElement(false);\n setGroupingRules(groupingRules);\n setAggregationRules(aggregationRules);\n setRefreshKey((prev) => prev + 1)\n }\n\n const openCustomFilterDialog = () => {\n setShowOverlay(false);\n setShowGlobalSearchElement(true);\n };\n\n const openGroupingDialog = () => {\n setShowOverlay(false);\n setShowGroupFilterElement(true);\n };\n\n useEffect(() => {\n if (refreshKey > 0 && hasSearched) {\n\n const formattedChips = {\n $and: searchChips.map((chip: any) => ({\n fieldName: chip.columnName,\n matchMode: chip.matchMode,\n value: [chip.value],\n searchField: chip.searchField ?? \"\",\n }))\n };\n\n\n const finalSearchFilter = tranformSearchToFilters(formattedChips);\n setSearchFilter(finalSearchFilter);\n\n let finalSavedFilter: any = currentSavedFilterQuery\n const finalPredefinedFilter = predefinedSearchBaseFilter\n\n const finalCustomFilter = customFilter\n const finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules)\n handleApplyCustomFilter(finalFilter, true);\n setHasSearched(false)\n // }\n }\n }, [refreshKey]);\n\n\n // Handle predefined search selection\n\n const hasCustomFilterChanged = () => {\n if (!predefinedSearchChip || !customFilter || !predefinedSearchBaseFilter) {\n return false;\n }\n // Deep comparison to check if filter has changed\n return JSON.stringify(customFilter) !== JSON.stringify(predefinedSearchBaseFilter);\n };\n\n const openSavedCustomFilter = async (savedfilter: any) => {\n //Open custom filter popup \n // router.push(`?savedQuery=${savedfilter.id}`);\n // setShowGlobalSearchElement(true);\n // // dont refetch the data yet\n // const customFilter = JSON.parse(savedfilter.filterQueryJson);\n // setCustomFilter(customFilter ? customFilter : null);\n // if (customFilter) {\n // const formatedCustomChips: FilterRule = transformFiltersToRules(customFilter ? customFilter : null);\n // setFilterRules(formatedCustomChips ? [formatedCustomChips] : initialState);\n // }\n\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n const savedfilterId = savedfilter.id;\n // router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === savedfilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n const rules: FilterRule = transformFiltersToRules(finalSavedFilter ? finalSavedFilter : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const deleteSavedFilter = async () => {\n // delte the saved filter with id \n await deleteEntity(savedFilterTobeDeleted);\n // triggerGetSolidEntities(savedFilterQueryString);\n let parsedSearchParams = searchParams;\n const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (savedFilterTobeDeleted == savedQuery) {\n const urlParams = new URLSearchParams(window.location.search);\n urlParams.delete(\"savedQuery\");\n router.push(`?${urlParams.toString()}`);\n }\n setIsDeleteSQDialogVisible(false);\n setTimeout(() => {\n setSavedFilterFetchDataRefreshKey(prev => prev + 1)\n }, 500)\n }\n const handleSaveFilter = async (formValues: any) => {\n setShowSaveFilterPopup(false)\n\n try {\n if (formValues.id) {\n const filterJson = currentSavedFilterQuery;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n\n await updateEntity({ id: +formValues.id, data: formData }).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setPredefinedSearchBaseFilter(null);\n setTimeout(() => {\n router.push(`?savedQuery=${formValues.id}`);\n }, 500)\n } else {\n\n const filterJson = customFilter;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n const result = await createEntity(formData).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setTimeout(() => {\n router.push(`?savedQuery=${result.data.id}`);\n }, 500)\n\n }\n } catch (error) {\n\n }\n }\n\n\n\n useEffect(() => {\n // Explicitly type the event as a MouseEvent\n function handleClickOutside(event: MouseEvent) {\n if (overlayRef.current && !overlayRef.current.contains(event.target as Node)) {\n setShowOverlay(false);\n }\n }\n if (showOverlay) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [showOverlay]);\n\n useEffect(() => {\n function handleChipManagerClickOutside(event: MouseEvent) {\n const targetNode = event.target as Node;\n if (chipManagerRef.current?.contains(targetNode)) return;\n if (chipManagerTriggerRef.current?.contains(targetNode)) return;\n setShowChipManager(false);\n }\n\n if (showChipManager) {\n document.addEventListener(\"mousedown\", handleChipManagerClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleChipManagerClickOutside);\n };\n }, [showChipManager]);\n\n const CustomChip = () => {\n // console.log(\"customFilter\", customFilter);\n const ruleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n setShowGlobalSearchElement(true)\n }\n }>\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{ruleCount}</strong> rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={clearCustomFilter} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n\n //saved filter related code start\n\n const applySavedFilter = (savedfilter: any) => {\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const removeSavedFilter = () => {\n const params = new URLSearchParams(searchParams.toString());\n setCurrentSavedFilterData(null);\n setCurrentSavedFilterQuery(null)\n if (params.has(\"savedQuery\")) {\n params.delete(\"savedQuery\");\n const newUrl = params.toString()\n ? `${pathname}?${params.toString()}`\n : pathname;\n router.push(newUrl);\n }\n }\n\n const SavedFiltersChip = () => {\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n const fn = async () => {\n if (currentSavedFilterQuery) {\n const rules: FilterRule = transformFiltersToRules(currentSavedFilterQuery ? currentSavedFilterQuery : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n fn()\n }\n }\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{currentSavedFilterData?.name}</strong></span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={removeSavedFilter} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n const removeGrouping = () => {\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n }\n\n const GroupingChip = () => {\n return (\n <li className=\"solid-global-search-chip\">\n <div className=\"flex align-items-center gap-2\">\n <div className=\"flex align-items-center gap-2\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\n onClick={() => setShowGroupFilterElement(true)}\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"#722ED1\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{groupingRules.length}</strong> Grouping rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={removeGrouping} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n\n\n\n //saved filter related code end\n\n\n // search related code start\n\n const handleRemoveChipGroup = (columnName: string) => {\n const updatedChips = searchChips.filter(chip => chip.columnName !== columnName);\n setSearchChips(updatedChips);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n\n };\n\n const groupedSearchChips = searchChips.reduce((acc: Record<string, string[]>, chip) => {\n const key = chip.columnName;\n if (!key) return acc; // skip if undefined\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(chip.value);\n return acc;\n }, {});\n\n const customRuleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n const managedChipItems = useMemo<ManagedChipItem[]>(() => {\n const items: ManagedChipItem[] = [];\n\n if (currentSavedFilterData?.name) {\n items.push({\n id: \"saved-filter\",\n type: \"saved\",\n label: `Saved: ${currentSavedFilterData.name}`,\n onRemove: () => removeSavedFilter(),\n });\n }\n\n if (predefinedSearchChip?.name && predefinedSearchChip?.value) {\n items.push({\n id: \"predefined-search\",\n type: \"predefined\",\n label: `Predefined: ${predefinedSearchChip.name} (${predefinedSearchChip.value})`,\n onRemove: () => removePredefinedSearchChip(),\n });\n }\n\n if (customFilter && customRuleCount > 0) {\n items.push({\n id: \"custom-filter\",\n type: \"custom\",\n label: `${customRuleCount} custom rules applied`,\n onRemove: () => clearCustomFilter(),\n onOpen:() => setShowGlobalSearchElement(true)\n });\n }\n\n if (groupingRules.length > 0 && groupingRules.some((r) => r.fieldName !== null)) {\n items.push({\n id: \"grouping-rules\",\n type: \"grouping\",\n label: `${groupingRules.length} grouping rules applied`,\n onRemove: () => removeGrouping(),\n onOpen:() => setShowGroupFilterElement(true)\n\n });\n }\n\n Object.entries(groupedSearchChips).forEach(([column, values]) => {\n const fieldMeta = searchableFields.find((field) => field.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n items.push({\n id: `search:${column}`,\n type: \"search\",\n label: `${columnDisplayName}: ${values.join(\" or \")}`,\n onRemove: () => handleRemoveChipGroup(column),\n });\n });\n\n return items;\n }, [\n currentSavedFilterData,\n predefinedSearchChip,\n customFilter,\n customRuleCount,\n groupingRules,\n groupedSearchChips,\n searchableFields,\n ]);\n\n const MAX_VISIBLE_CHIPS = 3;\n const visibleChipItems = managedChipItems.slice(0, MAX_VISIBLE_CHIPS);\n const hiddenChipItems = managedChipItems.slice(MAX_VISIBLE_CHIPS);\n const hiddenChipCount = hiddenChipItems.length;\n\n const clearAllAppliedChips = () => {\n if (managedChipItems.length === 0) return;\n\n if (activeSavedFilter || currentSavedFilterData) {\n removeSavedFilter();\n }\n\n setSearchChips([]);\n setSearchFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setCustomFilter(null);\n setFilterRules(initialState);\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setShowChipManager(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n };\n\n useEffect(() => {\n if (managedChipItems.length === 0 && showChipManager) {\n setShowChipManager(false);\n }\n }, [managedChipItems.length, showChipManager]);\n\n\n const overlayOptions = useMemo<OverlayOption[]>(() => {\n const currentValue = inputValue?.trim() || \"\";\n const fields: OverlayOption[] = currentValue\n ? searchableFields.map((field: any) => ({\n id: `field:${field.fieldName}`,\n kind: \"field\" as const,\n field\n }))\n : [];\n const predefined: OverlayOption[] =\n currentValue && predefinedSearches?.length\n ? predefinedSearches.map((p: any, idx: number) => ({\n id: `predefined:${p.name || idx}`,\n kind: \"predefined\" as const,\n predefined: p,\n }))\n : [];\n const saved: OverlayOption[] = (savedFilters || []).map((s: any) => ({\n id: `saved:${s.id}`,\n kind: \"saved\" as const,\n saved: s,\n }));\n\n return [...fields, ...predefined, ...saved];\n }, [inputValue, searchableFields, predefinedSearches, savedFilters]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentValue = inputValue?.trim() || \"\";\n\n const applyFieldOption = (value: any) => {\n const trimmed = inputValue?.trim();\n if (!trimmed) return;\n const values = trimmed.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n setShowOverlay(false);\n };\n\n if ((e.key === \"ArrowDown\" || e.key === \"ArrowUp\") && overlayOptions.length > 0) {\n e.preventDefault();\n setShowOverlay(true);\n const nextIndex =\n e.key === \"ArrowDown\"\n ? (focusedIndex + 1) % overlayOptions.length\n : (focusedIndex <= 0 ? overlayOptions.length - 1 : focusedIndex - 1);\n setFocusedIndex(nextIndex);\n return;\n }\n\n if (e.key === \"Enter\") {\n if (currentValue || focusedIndex >= 0) {\n e.preventDefault();\n const activeOption = overlayOptions[focusedIndex] || (currentValue ? overlayOptions[0] : null);\n\n if (activeOption?.kind === \"field\") {\n applyFieldOption(activeOption.field);\n } else if (activeOption?.kind === \"predefined\") {\n handlePredefinedSearch(activeOption.predefined);\n } else if (activeOption?.kind === \"saved\") {\n applySavedFilter(activeOption.saved);\n } else if (currentValue) {\n handleAddChip();\n setShowOverlay(false);\n }\n }\n } else if (e.key === \"Backspace\" && inputValue === \"\") {\n if (searchChips.length > 0) {\n setSearchChips((prev) => prev.slice(0, -1));\n } else if (customFilter) {\n setCustomFilter(null);\n setFilterRules(initialState);\n } else if (predefinedSearchChip) {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n } else if (activeSavedFilter) {\n removeSavedFilter();\n }\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n }\n };\n\n useEffect(() => {\n if (!showOverlay) {\n setFocusedIndex(-1);\n }\n }, [showOverlay]);\n\n const SearchChip = () => (\n <>\n {Object.entries(groupedSearchChips).map(([column, values]) => {\n const fieldMeta = searchableFields.find(f => f.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n\n return (\n <li key={column}>\n <div className=\"search-filter-chip-type\">\n <div>{columnDisplayName}</div>\n {values.map((value, index) => (\n <React.Fragment>\n {/* displayname */}\n <span key={index} className=\"custom-chip-value\">{value}\n </span>\n {index < values.length - 1 &&\n <span className=\"custom-chip-or\">or</span>\n }\n </React.Fragment>\n ))}\n {/* button to clear filter */}\n <button type=\"button\" className=\"ml-1\" style={{ cursor: \"pointer\" }} onClick={() => handleRemoveChipGroup(column)}>\n <X size={14} />\n </button>\n </div>\n </li>\n )\n })}\n </>\n );\n\n // search related code end\n\n\n // predefinedfilter related code start\n\n const handlePredefinedSearch = (predefinedSearch: any) => {\n if (!inputValue?.trim()) return;\n\n if (!predefinedSearch?.filters) {\n console.error('Invalid predefined search: missing filters', predefinedSearch);\n return;\n }\n\n try {\n // Replace {{ search }} placeholders with actual search value\n const processedFilter = replacePlaceholders(predefinedSearch.filters, inputValue.trim());\n\n // Clear all existing filters and searches\n // setSearchChips([]);\n // setSearchFilter(null);\n // setFilterRules(initialState);\n // setCustomFilter(null)\n // removeSavedFilter();\n // Set the predefined search chip\n setPredefinedSearchChip({\n name: predefinedSearch.name,\n value: inputValue.trim()\n });\n\n setPredefinedSearchBaseFilter(processedFilter);\n\n // Apply the predefined search filter as custom filter\n // setCustomFilter(processedFilter);\n\n // Clear input and close overlay\n setInputValue(\"\");\n setShowOverlay(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n } catch (error) {\n console.error('Error applying predefined search:', error);\n // Optionally show user-friendly error message\n }\n };\n\n\n const removePredefinedSearchChip = () => {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null)\n setCustomFilter(null);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n };\n\n const PredefinedSearchChip = () => (\n <li>\n <div className=\"search-filter-chip-type\">\n <div className=\"flex align-items-center gap-2\">\n <strong>{predefinedSearchChip?.name}:</strong>\n <span className=\"custom-chip-value\">{predefinedSearchChip?.value}</span>\n </div>\n {/* button to clear filter */}\n <button type=\"button\" className=\"ml-1\" style={{ cursor: \"pointer\" }} onClick={removePredefinedSearchChip}>\n <X size={14} />\n </button>\n </div>\n </li>\n );\n\n // predefinedfilter related code end\n\n return (\n <>\n <div className=\"flex justify-content-center solid-custom-filter-wrapper relative\">\n <div className=\"solid-global-search-element\">\n <ul className=\"solid-global-search-chip-list\">\n {visibleChipItems.map((chip) => (\n <li key={chip.id}>\n <div className={`search-filter-chip-type solid-chip-pill solid-chip-tone-${chip.type}`}>\n <span className=\"custom-chip-value solid-chip-pill-label\" title={chip.label}>\n {chip.label}\n </span>\n <button\n type=\"button\"\n className=\"solid-chip-pill-remove\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={chip.onRemove}\n aria-label={`Remove ${chip.label}`}\n >\n <X size={14} />\n </button>\n </div>\n </li>\n ))}\n {hiddenChipCount > 0 && (\n <li>\n <button\n type=\"button\"\n ref={chipManagerTriggerRef}\n className=\"solid-chip-manage-trigger\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setShowChipManager((prev) => !prev)}\n >\n +{hiddenChipCount} more\n </button>\n </li>\n )}\n {managedChipItems.length > 0 && hiddenChipCount === 0 && (\n <li>\n <button\n type=\"button\"\n ref={chipManagerTriggerRef}\n className=\"solid-chip-manage-trigger solid-chip-manage-trigger-secondary\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setShowChipManager((prev) => !prev)}\n >\n Manage\n </button>\n </li>\n )}\n <li ref={chipsRef} className=\"solid-global-search-input-item\">\n <div className=\"relative solid-global-search-element-wrapper\">\n <SolidInput\n className=\"solid-global-search-input\"\n value={inputValue || \"\"}\n placeholder=\"Search.\"\n onChange={(e) => {\n setInputValue(e.target.value);\n setShowChipManager(false);\n setShowOverlay(true);\n setFocusedIndex(-1);\n }}\n onFocus={() => {\n setShowChipManager(false);\n if (inputValue?.trim()) setShowOverlay(true);\n }}\n onBlur={() => {\n // Delay so you can click buttons inside overlay\n setTimeout(() => setShowOverlay(false), 150);\n }}\n\n onKeyDown={handleKeyDown}\n />\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n setShowChipManager(false);\n setShowOverlay(true);\n }}\n className=\"custom-filter-button solid-global-search-trigger\"\n >\n <Search size={14} />\n </SolidButton>\n </div>\n </li>\n </ul>\n </div>\n\n {showChipManager && managedChipItems.length > 0 && (\n <div ref={chipManagerRef} className=\"absolute z-5 solid-chip-manager-panel\">\n <div className=\"solid-chip-manager-header\">\n <div className=\"solid-chip-manager-title\">Applied chips ({managedChipItems.length})</div>\n <button type=\"button\" className=\"solid-chip-manager-clear-btn\" onClick={clearAllAppliedChips}>\n Clear all\n </button>\n </div>\n <div className=\"solid-chip-manager-body\">\n {managedChipItems.map((chip) => (\n <div key={`manage-${chip.id}`} className={`solid-chip-manager-item solid-chip-tone-${chip.type}`} onClick={() => {\n if (chip.id == \"custom-filter\" || chip.id == \"grouping-rules\") {\n if(chip.onOpen){\n chip.onOpen()\n }\n }\n }\n }>\n <span className=\"solid-chip-manager-item-label\" title={chip.label}>\n {chip.label}\n </span>\n <button\n type=\"button\"\n className=\"solid-chip-manager-item-remove\"\n onClick={chip.onRemove}\n aria-label={`Remove ${chip.label}`}\n >\n <X size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {showOverlay && (\n <div ref={overlayRef} className=\"absolute w-full z-5 shadow-2 solid-search-overlay-pannel\">\n <div className=\"solid-search-overlay-scroll\">\n {inputValue ? (\n <>\n <div className=\"custom-filter-search-options solid-search-overlay-section px-3 py-1 flex flex-column\">\n <h6 className=\"my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon\">\n <Search size={13} />\n <span>Search by fields</span>\n </h6>\n {searchableFields.length > 0 ? (\n searchableFields.map((value: any, index: number) => {\n return (\n <SolidButton\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={`flex gap-1 text-color solid-search-overlay-option ${focusedIndex === index ? \"solid-search-overlay-option-active\" : \"\"} justify-content-start`}\n onMouseDown={(e) => {\n e.preventDefault();\n const currentValue = inputValue?.trim();\n if (currentValue) {\n const values = currentValue.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n setShowOverlay(false);\n }\n }}\n onMouseEnter={() => setFocusedIndex(index)}\n >\n Search <strong style={{paddingLeft:\"2px\"}}>{value.displayName}</strong> &nbsp; for:&nbsp; <span className=\"font-bold text-color\">{inputValue}</span>\n </SolidButton>\n )\n })\n ) : (\n <div className=\"solid-search-overlay-no-fields\">\n <div className=\"solid-search-overlay-no-fields-icon\">\n <SearchX size={14} />\n </div>\n <div className=\"solid-search-overlay-no-fields-text\">\n No fields configured for search.\n </div>\n </div>\n )}\n </div>\n {predefinedSearches && predefinedSearches.length > 0 && (\n <>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"custom-filter-search-options solid-search-overlay-section px-3 py-1 flex flex-column\">\n <h6 className=\"my-1 solid-search-overlay-heading solid-search-overlay-section-title\">Predefined searches</h6>\n {predefinedSearches.map((predefinedSearch: any, index: number) => (\n <SolidButton\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={`flex flex-column align-items-start gap-1 text-color solid-search-overlay-option solid-search-overlay-option-stacked ${focusedIndex === searchableFields.length + index ? \"solid-search-overlay-option-active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n handlePredefinedSearch(predefinedSearch);\n }}\n onMouseEnter={() => setFocusedIndex(searchableFields.length + index)}\n >\n <div className=\"flex gap-1 align-items-center\">\n <strong>{predefinedSearch.name}:</strong>\n <span className=\"font-bold text-color\">{inputValue}</span>\n </div>\n <div className=\"text-xs\">{predefinedSearch.description}</div>\n </SolidButton>\n ))}\n </div>\n </>\n )}\n </>\n ) :\n <>\n <div className=\"p-3 solid-search-overlay-empty\">\n <div className=\"solid-search-overlay-panel-callout\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Search size={13} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-empty-title\">\n Start typing to search\n </div>\n <div className=\"solid-search-overlay-empty-subtitle\">\n Start typing in search input to see all fields on which you can search {searchableEntityLabel} by.\n </div>\n </div>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n </>\n }\n {savedFilters.length > 0 &&\n <>\n <div className=\"p-3 solid-search-overlay-section\">\n <div className=\"solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Bookmark size={13} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <p className=\"solid-search-overlay-heading solid-search-overlay-section-title\">Saved filters</p>\n <div className=\"solid-search-overlay-empty-subtitle\">\n Reusable filter sets available for this view.\n </div>\n </div>\n </div>\n <div className=\"flex flex-column solid-search-overlay-saved-list\">\n {savedFilters.map((savedfilter: any, index: number) => (\n <SavedFilterList\n key={savedfilter.id}\n savedfilter={savedfilter}\n activeSavedFilter={activeSavedFilter}\n applySavedFilter={applySavedFilter}\n openSavedCustomFilter={openSavedCustomFilter}\n setSavedFilterTobeDeleted={setSavedFilterTobeDeleted}\n setIsDeleteSQDialogVisible={setIsDeleteSQDialogVisible}\n isFocused={overlayOptions[focusedIndex]?.id === `saved:${savedfilter.id}`}\n onMouseEnter={() => {\n const optIndex = overlayOptions.findIndex(o => o.id === `saved:${savedfilter.id}`);\n if (optIndex !== -1) setFocusedIndex(optIndex);\n }}\n />\n ))}\n </div>\n </div>\n </>\n }\n </div>\n\n <div className=\"solid-search-overlay-footer\">\n <button\n type=\"button\"\n className=\"px-3 py-2 flex flex-column solid-search-overlay-footer-action\"\n onClick={openCustomFilterDialog}\n >\n <div className=\"solid-search-overlay-footer-action-main\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Filter size={14} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-footer-title solid-search-overlay-section-title\">\n Click here to apply custom filters\n </div>\n <div className=\"solid-search-overlay-footer-subtitle\">\n Use custom filters to apply conditions on any field using any operator.\n </div>\n </div>\n </div>\n </button>\n {viewType === \"tree\" && (\n <button\n type=\"button\"\n className=\"px-3 py-2 flex flex-column solid-search-overlay-footer-action solid-search-overlay-footer-action-secondary\"\n onClick={openGroupingDialog}\n >\n <div className=\"solid-search-overlay-footer-action-main\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Plus size={14} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-footer-title solid-search-overlay-section-title\">\n Click here to do custom grouping\n </div>\n <div className=\"solid-search-overlay-footer-subtitle\">\n Configure grouping rules and aggregations for the tree view.\n </div>\n </div>\n </div>\n </button>\n )}\n </div>\n </div>\n )\n }\n <SolidDialog open={showGlobalSearchElement} onOpenChange={setShowGlobalSearchElement} className=\"solid-global-search-filter solid-filter-dialog-shell\" style={{ width: \"min(960px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Add Custom Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Apply conditions on any field with operators.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={filterRules} setFilterRules={setFilterRules} transformFilterRules={transformCustomFilterRules} closeDialog={() => setShowGlobalSearchElement(false)}></FilterComponent>\n }\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog open={showGroupFilterElement} onOpenChange={setShowGroupFilterElement} className=\"solid-global-search-filter solid-filter-dialog-shell solid-filter-dialog-shell-grouping\" style={{ width: \"min(560px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Grouping</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Configure grouping and aggregation.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {groupableFields.length > 0 &&\n <GroupingComponent\n viewData={viewData}\n fields={groupableFields}\n groupingRules={groupingRules}\n setGroupingRules={setGroupingRules}\n aggregationRules={aggregationRules}\n setAggregationRules={setAggregationRules}\n applyGrouping={applyGrouping}\n closeDialog={() => setShowGroupFilterElement(false)}\n ></GroupingComponent>\n }\n </SolidDialogBody>\n </SolidDialog >\n <SolidDialog open={showSavedFilterComponent} onOpenChange={setShowSavedFilterComponent} className=\"solid-global-search-filter solid-filter-dialog-shell\" style={{ width: \"min(960px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Saved Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Review and refine the saved filter conditions.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={currentSavedFilterRules} setFilterRules={setCurrentSavedFilterRules} transformFilterRules={transformSavedFilterRules} closeDialog={() => setShowSavedFilterComponent(false)}></FilterComponent>\n }\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog open={showSaveFilterPopup} onOpenChange={setShowSaveFilterPopup} className=\"solid-custom-filter-dialog solid-save-filter-dialog\" style={{ width: \"min(420px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Custom Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Name this filter so you can reuse it later.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidSaveCustomFilterForm currentSavedFilterData={currentSavedFilterData} handleSaveFilter={handleSaveFilter} closeDialog={() => setShowSaveFilterPopup(false)}></SolidSaveCustomFilterForm>\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog open={isDeleteSQDialogVisible} onOpenChange={setIsDeleteSQDialogVisible} className=\"solid-confirm-dialog\" style={{ width: \"min(420px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader>\n <div>\n <SolidDialogTitle>Confirm Delete</SolidDialogTitle>\n <SolidDialogDescription>Are you sure you want to delete the {currentSavedFilterData?.name} saved query?</SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogFooter className=\"justify-content-center\">\n <SolidButton variant=\"destructive\" size=\"sm\" onClick={deleteSavedFilter}>\n <Check size={14} />\n Yes\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={() => setIsDeleteSQDialogVisible(false)}>\n <X size={14} />\n No\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n </div >\n </>\n )\n});\n"]}
1
+ {"version":3,"file":"SolidGlobalSearchElement.js","sourceRoot":"","sources":["../../../../src/components/core/common/SolidGlobalSearchElement.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrG,OAAO,eAAe,EAAE,EAAE,cAAc,EAAc,cAAc,EAAE,MAAM,iDAAiD,CAAC;AAC9H,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,+BAA+B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,iBAAwE,MAAM,qBAAqB,CAAC;AAC3G,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EACH,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACnB,MAAM,8BAA8B,CAAC;AAGtC,IAAM,YAAY,GAAG,UAAC,GAAW,EAAE,GAAW;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC7D,CAAC,CAAA;AA0BD,IAAM,aAAa,GAAG,UAAC,KAAiB;IAAjB,sBAAA,EAAA,UAAiB;IACpC,IAAM,MAAM,GAAU,EAAE,CAAC;IAEzB,KAAmB,UAAK,EAAL,eAAK,EAAL,mBAAK,EAAL,IAAK,EAAE;QAArB,IAAM,IAAI,cAAA;QACX,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,OAAO,EAAE;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,EAAE;YAC/B,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;SAChD;KACJ;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAGF,IAAM,uBAAuB,GAAG,UAAC,MAAW,EAAE,UAAgC;IAAhC,2BAAA,EAAA,iBAAgC;IAC1E,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3E,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;KACjF;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;QACvC,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;KACjE;IACD,IAAM,SAAS,GAAG,SAAS,EAAE,CAAC;IAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;QACf,OAAO;YACH,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,EAAE;YAChC,UAAU,YAAA;YACV,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;iBAClB,MAAM,CAAC,UAAC,GAAQ;gBACb,+DAA+D;gBAC/D,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC;SAC9E,CAAC;KACL;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE;QAChB,OAAO;YACH,EAAE,EAAE,SAAS;YACb,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,GAAG;YACjC,UAAU,YAAA;YACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;iBACnB,MAAM,CAAC,UAAC,GAAQ;gBACb,+DAA+D;gBAC/D,IAAI,GAAG,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAC9B,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,OAAO,KAAK,CAAC;gBAC/D,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,KAAK,CAAC;gBAC3E,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC;iBACD,GAAG,CAAC,UAAC,SAAc,IAAK,OAAA,uBAAuB,CAAC,SAAS,EAAE,SAAS,CAAC,EAA7C,CAA6C,CAAC;SAC9E,CAAC;KACL;IAED,+BAA+B;IAC/B,KAAK,IAAM,SAAS,IAAI,MAAM,EAAE;QAC5B,IAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,uCAAgC,SAAS,MAAG,CAAC,CAAC;SACjE;QAED,yCAAyC;QACzC,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,KAAI,OAAO,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,EAAE,CAAA,KAAK,QAAQ,EAAE;YACpD,KAAK,IAAM,SAAS,IAAI,SAAS,CAAC,EAAE,EAAE;gBAClC,IAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAM,cAAc,GAAQ,SAAS,CAAA;gBACrC,OAAO;oBACH,EAAE,EAAE,SAAS;oBACb,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,WAAA;oBACT,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;oBACtD,UAAU,YAAA;oBACV,QAAQ,EAAE,EAAE;iBACf,CAAC;aACL;SACJ;QAED,oCAAoC;QACpC,KAAK,IAAM,SAAS,IAAI,SAAS,EAAE;YAC/B,IAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACtC,IAAM,cAAc,GAAQ,SAAS,CAAA;YACrC,OAAO;gBACH,EAAE,EAAE,SAAS;gBACb,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,SAAS,WAAA;gBACT,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtD,UAAU,YAAA;gBACV,QAAQ,EAAE,EAAE;aACf,CAAC;SACL;KAGJ;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;AAC7D,CAAC,CAAA;AAKD,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAM,UAAU,GAAG,cAAM,OAAA,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAA7C,CAA6C,CAAC;AAGvE,IAAM,uBAAuB,GAAG,UAAC,KAAU,EAAE,QAAa;IAEtD,8CAA8C;IAC9C,IAAM,WAAW,GAAG,UAAC,IAAS;;;QAC1B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAEjD,uCAAuC;YACvC,IAAI,MAAM,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,EAAC,CAAC,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAvB,CAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAC;YACnH,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,EAAE;gBACzJ,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;aACtB;YAGD,IAAM,SAAS,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,0CAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACxE,IAAM,YAAY,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,MAAK,UAAU,IAAI,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,MAAK,cAAc,CAAC;YAGlG,IAAI,eAAe,SAAA,CAAC;YACpB,IAAI,YAAY,EAAE;gBACd,qEAAqE;gBACrE,eAAe;oBACX,GAAC,IAAI,CAAC,SAAS,IAAG;wBACd,EAAE;4BACE,GAAC,IAAI,CAAC,SAAS,IAAG,MAAM,CAAC,gBAAgB;;+BAC5C;qBACJ;uBACJ,CAAC;aACL;iBAAM;gBACH,sBAAsB;gBACtB,eAAe;oBACX,GAAC,IAAI,CAAC,SAAS;wBACX,GAAC,IAAI,CAAC,SAAS,IAAG,MAAM,CAAI,+DAA+D;;2BAC9F;uBACJ,CAAC;aACL;YAED,IAAI,eAAe,SAAA,CAAC;YACpB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3C,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAU,IAAK,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC,MAAM,CAAC,UAAC,KAAU,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAC,CAAC;gBAAA,CAAC;aACvH;YACD,IAAI,eAAe,EAAE;gBACjB,6BAAY,eAAe,KAAE,eAAe,iBAAA,IAAE;aACjD;YACD,oBAAY,eAAe,EAAE;SAEhC;IAEL,CAAC,CAAC;IAEF,yCAAyC;IACzC,IAAM,gBAAgB,GAAG,UAAC,SAAc;;QACpC,IAAM,QAAQ,GAAG,SAAS,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACnE,IAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,KAAU;YAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;gBACvB,mBAAmB;gBACnB,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;aAC7B;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;gBACpC,qCAAqC;gBACrC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAClC;QACL,CAAC,CAAC,CAAC,MAAM,CAAC,UAAC,KAAU,IAAK,OAAA,KAAK,IAAI,IAAI,EAAb,CAAa,CAAC,CAAC;QACzC,oCAAoC;QACpC,+BAA+B;QAC/B,mBAAmB;QACnB,IAAI;QAEJ,qEAAqE;QACrE,+BAA+B;QAC/B,0BAA0B;QAC1B,IAAI;QAEJ;YACI,GAAC,QAAQ,IAAG,QAAQ;eACtB;IACN,CAAC,CAAC;IAGF,uCAAuC;IACvC,IAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,YAAY,EAAE;QACf,OAAO,EAAE,CAAC;KACb;IAED,SAAS,mBAAmB,CAAC,OAAY;QACrC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC;QAE5D,IAAM,YAAY,GAAG,UAAC,GAAQ;YAC1B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,KAAgB,UAAG,EAAH,WAAG,EAAH,iBAAG,EAAH,IAAG,EAAE;gBAAhB,IAAI,GAAG,YAAA;gBACR,IAAI,GAAG,IAAI,GAAG,CAAC,eAAe,EAAE;oBAC5B,IAAI,SAAS,GAAQ,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,6CAA6C;oBACrG,OAAO,GAAG,CAAC,eAAe,CAAC;oBAC3B,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,GAAG,GAAK,SAAS,UAAE;iBAClC;qBAAM;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACpB;gBAED,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;oBACjB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;wBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;qBACrC;iBACJ;aACJ;YACD,OAAO,MAAM,CAAC;QAClB,CAAC,CAAA;QAED,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE;YACrB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;aAC7C;SACJ;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAGD,OAAO,mBAAmB,CAAC,YAAY,CAAC,CAAA;AAE5C,CAAC,CAAA;AASD,6CAA6C;AAC7C,SAAS,oBAAoB,CAAC,IAAY,EAAE,WAAmB,EAAE,KAAU;;IACvE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAM,IAAI,aAAK,GAAC,WAAW,IAAG,KAAK,KAAE,CAAC;IACtC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAC,GAAG,EAAE,GAAG;;QAAK,OAAA,UAAG,GAAC,GAAG,IAAG,GAAG,KAAG;IAAhB,CAAgB,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC;AAED,IAAM,uBAAuB,GAAG,UAAC,KAAU;IACvC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAExC,IAAM,OAAO,GAAgC,EAAE,CAAC;IAEhD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,EAAiD;;;YAA/C,SAAS,eAAA,EAAE,KAAK,WAAA,EAAE,WAAW,iBAAA,EAAE,SAAS,eAAA;QAC1D,IAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE1E,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACrB,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,YAAY,EAAE,CAAC;SAC7G;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACpB,MAAA,OAAO,CAAC,SAAS,CAAC,gDAAE,MAAM,EAAC,IAAI,WAAI,GAAG,CAAC,CAAC;SAC3C;aAAM;YACH,MAAA,OAAO,CAAC,SAAS,CAAC,0CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACxC;IACL,CAAC,CAAC,CAAC;IAEH,WAAW;IACX,oEAAoE;IACpE,yBAAyB;IACzB,mEAAmE;IACnE,YAAY;IACZ,UAAU;IACV,KAAK;IAEL,IAAM,UAAU,GAAU,EAAE,CAAC;IAE7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,EAAkB;;YAAjB,SAAS,QAAA,EAAE,KAAK,QAAA;QAE9C,IAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7E,IAAI,QAAQ,EAAE;YAEV,8DAA8D;YAC9D,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAC9F;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,oBAAoB,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,EAA3D,CAA2D,CAAC;iBAC1F,CAAC,CAAC;aACN;SACJ;aAAM;YAEH,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,UAAU,CAAC,IAAI;oBACX,GAAC,SAAS,IAAG;wBACT,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;qBAC9B;wBACH,CAAC;aACN;iBAAM;gBACH,UAAU,CAAC,IAAI,CAAC;oBACZ,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC;;wBAAK,OAAA;4BACzB,GAAC,SAAS,IAAG,EAAE,UAAU,EAAE,CAAC,EAAE;+BAChC;oBAF2B,CAE3B,CAAC;iBACN,CAAC,CAAC;aACN;SACJ;IACL,CAAC,CAAC,CAAC;IAEH,OAAO;QACH,IAAI,EAAE,UAAU;KACnB,CAAC;AACN,CAAC,CAAA;AAED,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,iBAAsB,EAAE,SAAc,EAAE,qBAA6B,EAAE,aAAqB;IACpI,IAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,4BAA4B;IAC5B,IAAI,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChE,OAAO,CAAC,qBAAqB,CAAC,GAAG,iBAAiB,CAAC;KACtD;IACD,IAAI,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAChD,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACtC;IAED,qCAAqC;IACrC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;AAGD,MAAM,CAAC,IAAM,mBAAmB,GAAG,UAAC,YAAiB,EAAE,YAAiB,EAAE,WAAgB,EAAE,gBAAsB,EAAE,aAA8B,EAAE,gBAAoC;IACpL,IAAM,OAAO,GAAQ,EAAE,CAAC;IAExB,4BAA4B;IAC5B,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,OAAO,CAAC,yBAAyB,CAAC,GAAG,YAAY,CAAC;KACrD;IACD,IAAI,YAAY,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACtD,OAAO,CAAC,kBAAkB,CAAC,GAAG,YAAY,CAAC;KAC9C;IACD,IAAI,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACpD,OAAO,CAAC,wBAAwB,CAAC,GAAG,WAAW,CAAC;KACnD;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9D,OAAO,CAAC,6BAA6B,CAAC,GAAG,gBAAgB,CAAC;KAC7D;IACD,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QACxD,OAAO,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC;KAC7C;IACD,IAAI,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC9D,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;KACnD;IACD,qCAAqC;IACrC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAA;AAED,IAAM,eAAe,GAAG,UAAC,EAAgK;QAA9J,WAAW,iBAAA,EAAE,iBAAiB,uBAAA,EAAE,gBAAgB,sBAAA,EAAE,qBAAqB,2BAAA,EAAE,yBAAyB,+BAAA,EAAE,0BAA0B,gCAAA,EAAE,SAAS,eAAA,EAAE,YAAY,kBAAA;IAC9K,IAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC;IAE7D,OAAO,CACH,eAAK,SAAS,EAAC,yBAAyB,EAAC,YAAY,EAAE,YAAY,aAC/D,cAAK,SAAS,EAAC,8BAA8B,YACzC,KAAC,WAAW,IACR,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,yCAAkC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAI,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAE,EACnI,OAAO,EAAE,cAAM,OAAA,gBAAgB,CAAC,WAAW,CAAC,EAA7B,CAA6B,EAC5C,KAAK,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,WAAW,YAE9B,WAAW,CAAC,IAAI,GACP,GACZ,EACN,cAAK,SAAS,EAAC,4BAA4B,YACtC,WAAW,CAAC,QAAQ,KAAK,IAAI;oBAC1B,8BACI,KAAC,WAAW,IACR,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,6BAA6B,EACvC,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,WAAW,CAAC,EAAlC,CAAkC,YAEjD,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,EACd,KAAC,WAAW,IACR,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,uCAAuC,EACjD,OAAO,EAAE;oCACL,yBAAyB,CAAC,WAAW,CAAC,EAAE,CAAC;wCACrC,0BAA0B,CAAC,IAAI,CAAC,CAAC;gCACzC,CAAC,YAED,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACf,GAGL,IACJ,CACT,CAAA;AACL,CAAC,CAAA;AAED,IAAM,mBAAmB,GAAG,UAAC,GAAQ,EAAE,WAAmB;IACtD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACzB,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;KACtD;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAtC,CAAsC,CAAC,CAAC;KAClE;IACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAChC,IAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,KAAK,IAAM,GAAG,IAAI,GAAG,EAAE;YACnB,MAAM,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;SAC5D;QACD,OAAO,MAAM,CAAC;KACjB;IACD,OAAO,GAAG,CAAC;AACf,CAAC,CAAC;AAGF,IAAM,YAAY,GAAG,UAAC,IAAS;IAC3B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,mBAAmB;IACnB,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC1C;IAED,kBAAkB;IAClB,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KACzC;IAED,iBAAiB;IACjB,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEhC,gBAAgB;IAChB,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,EAAE;QACzB,OAAO,CAAC;gBACJ,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,WAAW,CAAC,UAAU;gBAC7B,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjE,WAAW,EAAE,KAAK;gBAClB,SAAS,EAAE,YAAY;aAC1B,CAAC,CAAC;KACN;IACD,iCAAiC;SAC5B,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACtC,IAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,IAAM,iBAAiB,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC;QAEnD,IAAM,WAAW,GAAG,iBAAiB;YACjC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAjB,CAAiB,CAAC;YAC7D,CAAC,CAAC,IAAI,CAAC;QAEX,IAAI,WAAW,EAAE;YACb,OAAO,CAAC;oBACJ,UAAU,EAAE,KAAK;oBACjB,KAAK,EAAE,iBAAiB,CAAC,WAAW,CAAC;oBACrC,iBAAiB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;oBACjE,WAAW,EAAE,UAAG,KAAK,cAAI,WAAW,CAAE;oBACtC,SAAS,EAAE,WAAW;iBACzB,CAAC,CAAC;SACN;KACJ;IAED,OAAO,EAAE,CAAC;AACd,CAAC,CAAC;AAQF,MAAM,CAAC,IAAM,wBAAwB,GAAG,UAAU,CAAC,UAAC,EAAmH,EAAE,GAAG;;QAAtH,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,uBAAuB,6BAAA,EAAE,mBAAmB,yBAAA,EAAE,sBAAsB,4BAAA,EAAE,gBAAgB,sBAAA;IAa5J,IAAM,YAAY,GAAiB;QAC/B;YACI,EAAE,EAAE,CAAC;YACL,IAAI,EAAE,cAAc,CAAC,UAAU;YAC/B,aAAa,EAAE,cAAc,CAAC,EAAE;YAChC,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE;gBACN;oBACI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;iBACf;gBACD;oBACI,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC;oBACrC,IAAI,EAAE,cAAc,CAAC,IAAI;oBACzB,SAAS,EAAE,IAAI;oBACf,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,IAAI;oBACX,UAAU,EAAE,CAAC;oBACb,QAAQ,EAAE,EAAE;iBACf;aACJ;SACJ;KACJ,CAAC;IAEF,IAAM,uBAAuB,GAAsB;QAC/C;YACI,EAAE,EAAE,CAAC;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,IAAI;YACf,MAAM,EAAE,IAAI;SACf;KACJ,CAAC;IAEF,IAAM,oBAAoB,GAAmB;QACzC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;KACjD,CAAC;IAEI,IAAA,KAAkC,QAAQ,CAAC,YAAY,CAAC,EAAvD,YAAY,QAAA,EAAE,eAAe,QAA0B,CAAC;IAC/D,IAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,IAAM,qBAAqB,GACvB,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,WAAW;SACtC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,WAAW,CAAA;QAC7C,SAAS,CAAC;IAGd,IAAM,YAAY,GAAG,eAAe,EAAE,CAAA,CAAC,wCAAwC;IAC/E,IAAM,iBAAiB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAE1D,IAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,IAAM,QAAQ,GAAG,MAAM,CAA8B,IAAI,CAAC,CAAC;IAE3D,2DAA2D;IAC3D,kFAAkF;IAC5E,IAAA,KAAgC,QAAQ,CAAe,YAAY,CAAC,EAAnE,WAAW,QAAA,EAAE,cAAc,QAAwC,CAAC;IACrE,IAAA,KAAkC,QAAQ,CAAa,IAAI,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAE7D,IAAA,KAAsB,QAAQ,CAAQ,EAAE,CAAC,EAAxC,MAAM,QAAA,EAAE,SAAS,QAAuB,CAAC;IAC1C,IAAA,KAA0C,QAAQ,CAAQ,EAAE,CAAC,EAA5D,gBAAgB,QAAA,EAAE,mBAAmB,QAAuB,CAAC;IAC9D,IAAA,KAAwC,QAAQ,CAAmB,EAAE,CAAC,EAArE,eAAe,QAAA,EAAE,kBAAkB,QAAkC,CAAC;IAEvE,IAAA,KAAoC,QAAQ,CAAiB,oBAAoB,CAAC,EAAjF,aAAa,QAAA,EAAE,gBAAgB,QAAkD,CAAC;IACnF,IAAA,KAA0C,QAAQ,CAAoB,uBAAuB,CAAC,EAA7F,gBAAgB,QAAA,EAAE,mBAAmB,QAAwD,CAAC;IAErG,gDAAgD;IAC1C,IAAA,KAA8C,QAAQ,CAAqB,EAAE,CAAC,EAA7E,kBAAkB,QAAA,EAAE,qBAAqB,QAAoC,CAAC;IAErF,gDAAgD;IAC1C,IAAA,KAAwD,QAAQ,CAAU,KAAK,CAAC,EAA/E,uBAAuB,QAAA,EAAE,0BAA0B,QAA4B,CAAC;IAEvF,+CAA+C;IACzC,IAAA,KAAsD,QAAQ,CAAU,KAAK,CAAC,EAA7E,sBAAsB,QAAA,EAAE,yBAAyB,QAA4B,CAAC;IAGrF,yDAAyD;IACzD,uEAAuE;IACjE,IAAA,KAAgC,QAAQ,CAA2C,EAAE,CAAC,EAArF,WAAW,QAAA,EAAE,cAAc,QAA0D,CAAC;IACvF,IAAA,KAAkC,QAAQ,CAAa,IAAI,CAAC,EAA3D,YAAY,QAAA,EAAE,eAAe,QAA8B,CAAC;IAEnE,6EAA6E;IACvE,IAAA,KAAkD,QAAQ,CAAyC,IAAI,CAAC,EAAvG,oBAAoB,QAAA,EAAE,uBAAuB,QAA0D,CAAC;IAE/G,4DAA4D;IACtD,IAAA,KAA8B,QAAQ,CAAgB,EAAE,CAAC,EAAxD,UAAU,QAAA,EAAE,aAAa,QAA+B,CAAC;IAC1D,IAAA,KAAkC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAA7C,YAAY,QAAA,EAAE,eAAe,QAAgB,CAAC;IAErD,0CAA0C;IACpC,IAAA,KAAgC,QAAQ,CAAU,KAAK,CAAC,EAAvD,WAAW,QAAA,EAAE,cAAc,QAA4B,CAAC;IAE/D,4EAA4E;IACtE,IAAA,MAAsD,QAAQ,EAAO,EAApE,sBAAsB,SAAA,EAAE,yBAAyB,SAAmB,CAAC;IACtE,IAAA,MAAwD,QAAQ,EAAO,EAAtE,uBAAuB,SAAA,EAAE,0BAA0B,SAAmB,CAAC;IACxE,IAAA,MAAwD,QAAQ,EAAO,EAAtE,uBAAuB,SAAA,EAAE,0BAA0B,SAAmB,CAAC;IACxE,IAAA,MAA0D,QAAQ,CAAU,KAAK,CAAC,EAAjF,wBAAwB,SAAA,EAAE,2BAA2B,SAA4B,CAAC;IAGnF,IAAA,MAAsD,QAAQ,EAAO,EAApE,sBAAsB,SAAA,EAAE,yBAAyB,SAAmB,CAAC;IACtE,IAAA,MAAwD,QAAQ,CAAU,KAAK,CAAC,EAA/E,uBAAuB,SAAA,EAAE,0BAA0B,SAA4B,CAAC;IACjF,IAAA,MAAsD,QAAQ,EAAU,EAAvE,sBAAsB,SAAA,EAAE,yBAAyB,SAAsB,CAAC;IACzE,IAAA,MAAgC,QAAQ,CAAC,KAAK,CAAC,EAA9C,WAAW,SAAA,EAAE,cAAc,SAAmB,CAAC;IACtD,IAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACjD,IAAA,MAAwC,QAAQ,CAAC,KAAK,CAAC,EAAtD,eAAe,SAAA,EAAE,kBAAkB,SAAmB,CAAC;IAC9D,IAAM,cAAc,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAC3D,IAAM,qBAAqB,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAErE,SAAS,CAAC;QACN,IAAI,YAAY,IAAI,CAAC,IAAI,WAAW,EAAE;YAClC,IAAM,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC,qCAAqC,CAAC,CAAC;YACpF,IAAI,aAAa,EAAE;gBACf,aAAa,CAAC,cAAc,CAAC;oBACzB,KAAK,EAAE,SAAS;oBAChB,MAAM,EAAE,OAAO;iBAClB,CAAC,CAAC;aACN;SACJ;IACL,CAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAE1B,IAAA,MAA4B,UAAU,EAAE,EAAhC,OAAO,WAAA,EAAE,MAAM,aAAiB,CAAC;IAC/C,IAAM,IAAI,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC;IAErB,IAAA,MAA8B,QAAQ,CAAC,CAAC,CAAC,EAAxC,UAAU,SAAA,EAAE,aAAa,SAAe,CAAC;IAE1C,IAAA,MAA8D,QAAQ,CAAM,IAAI,CAAC,EAAhF,0BAA0B,SAAA,EAAE,6BAA6B,SAAuB,CAAC;IAElF,IAAA,MAAkC,QAAQ,CAAC,EAAE,CAAC,EAA7C,YAAY,SAAA,EAAE,eAAe,SAAgB,CAAC;IAC/C,IAAA,MAA8C,QAAQ,CAAC,KAAK,CAAC,EAA5D,kBAAkB,SAAA,EAAE,qBAAqB,SAAmB,CAAC;IAEpE,IAAM,SAAS,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IAEnD,IAAA,4BAA4B,GAK5B,SAAS,6BALmB,EAC5B,4BAA4B,GAI5B,SAAS,6BAJmB,EAC5B,0BAA0B,GAG1B,SAAS,2BAHiB,EAC1B,4BAA4B,GAE5B,SAAS,6BAFmB,EAC5B,4BAA4B,GAC5B,SAAS,6BADmB,CAClB;IAER,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAGF,4BAA4B,EAAE,EAF9B,YAAY,SAAA,EACZ,YAA4F,EAA/E,qBAAqB,gBAAA,EAAW,mBAAmB,cAAA,EAAS,iBAAiB,YAC5D,CAAC;IAE7B,IAAA,MAAuG,4BAA4B,EAAE,EAApI,uBAAuB,SAAA,EAAE,YAAyE,EAAjE,uBAAuB,WAAA,EAAa,oBAAoB,gBAAA,EAAE,KAAK,YAAoC,CAAC;IAEtI,IAAA,MAAsE,QAAQ,CAAC,CAAC,CAAC,EAAhF,8BAA8B,SAAA,EAAE,iCAAiC,SAAe,CAAC;IAIxF,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;;wBACP,IAAI,CAAC,CAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAA,IAAI,CAAC,CAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAA,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE;4BACtF,sBAAO;yBACV;wBACD,qBAAqB,CAAC,KAAK,CAAC,CAAA;wBACtB,OAAO,GAAG;4BACZ,GAAG,EAAE;gCACD;oCACI,IAAI,EAAE;wCACF,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC1D,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC5C,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,EAAE,EAAE;wCAC7B,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;qCAC/B;iCACJ;gCACD;oCACI,IAAI,EAAE;wCACF,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC1D,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,0CAAE,EAAE,CAAC,EAAE,EAAE;wCAC5C,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;qCAChC;iCACJ;6BAEJ;yBACJ,CAAA;wBACK,SAAS,GAAQ;4BACnB,MAAM,EAAE,CAAC;4BACT,KAAK,EAAE,EAAE;4BACT,OAAO,EAAE,OAAO;4BAChB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;4BACnC,IAAI,EAAE,CAAC,SAAS,CAAC;yBACpB,CAAC;wBACI,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;wBACxE,yBAAyB,CAAC,WAAW,CAAC,CAAA;wBAClB,qBAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAA;;wBAAjE,WAAW,GAAG,SAAmD;wBAEvE,IAAI,WAAW,EAAE;4BACb,2CAA2C;4BAC3C,eAAe,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,CAAA;yBACxC;wBACD,qBAAqB,CAAC,IAAI,CAAC,CAAC;;;;aAC/B,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE;QACC,iBAAiB;QACjB,8BAA8B;QAC9B,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE;QAC7B,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE;QACpC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE;KACX,CAAC,CAAA;IAEF,mBAAmB,CAAC,GAAG,EAAE,cAAM,OAAA,CAAC;QAC5B,WAAW,EAAE;YACT,cAAc,CAAC,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,kBAAkB,EAAE;YAChB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,yBAAyB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,sBAAsB,EAAE;YACpB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;KACJ,CAAC,EAZ6B,CAY7B,CAAC,CAAC;IAEJ,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;;6BAGH,kBAAkB,EAAlB,wBAAkB;wBAElB,IAAI,iBAAiB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;4BAAE,sBAAO;wBAErD,WAAW,GAAG,+BAA+B,EAAE,CAAC;wBACtD,4DAA4D;wBAC5D,IAAI,iBAAiB,EAAE;4BACb,yBAAuB,MAAM,CAAC,iBAAiB,CAAC,CAAC;4BACjD,2BAA8B,YAAY,CAAC,IAAI,CAAC,UAAC,WAAgB,IAAK,OAAA,WAAW,CAAC,EAAE,KAAK,sBAAoB,EAAvC,CAAuC,CAAC,CAAC;4BACrH,yBAAyB,CAAC,wBAAsB,CAAC,CAAC;4BAClD,IAAI,wBAAsB,EAAE;gCAClB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAsB,aAAtB,wBAAsB,uBAAtB,wBAAsB,CAAE,eAAe,CAAC,CAAC;gCACvE,IAAI,UAAU,EAAE;oCACR,gBAAgB,GAAG,UAAU,CAAA;oCACjC,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;iCAC/C;6BACJ;yBACJ;6BAAM;4BACH,yBAAyB,CAAC,IAAI,CAAC,CAAA;4BAC/B,0BAA0B,CAAC,IAAI,CAAC,CAAA;yBACnC;wBACD,IAAI,WAAW,EAAE;4BACb,IAAI,WAAW,EAAE;gCACb,WAAW,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,gBAAgB,KAAI,IAAI,CAAC;gCACpD,WAAW,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,uBAAuB,KAAI,IAAI,CAAC;6BAC9D;yBACJ;wBACD,IAAI,WAAW,EAAE;4BACb,eAAe,CAAC,WAAW,CAAC,CAAC;4BAavB,cAAc,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;4BACjD,cAAc,CAAC,cAAc,CAAC,CAAC;yBAElC;6BACG,CAAA,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA,EAApD,wBAAoD;wBACpD,eAAe,CAAC,WAAW,CAAC,CAAC;wBACvB,KAAK,GAAe,uBAAuB,CAAC,WAAW,CAAC,CAAC;wBACzC,qBAAM,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAA;;wBAA7D,aAAa,GAAG,SAA6C;wBACnE,cAAc,CAAC,aAAa,CAAC,CAAC;;;wBAE5B,gBAAgB,GAAG,CAAC,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,0CAAE,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,IAAI,CAAC,SAAS,KAAK,IAAI,EAAvB,CAAuB,CAAC,CAAC,CAAC;wBAErG,IAAI,gBAAgB,EAAE;4BAClB,gBAAgB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,cAAc,CAAC,CAAC;yBACjD;6BAAM;4BAEG,aAAa,GAAG,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,OAAO,CAAC;4BAExE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gCACpD,oBAAoB,GAAmB,aAAa,CAAC,GAAG,CAAC,UAAC,QAAgB,EAAE,KAAa;oCACrF,IAAA,KAA4B,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAA9C,SAAS,QAAA,EAAE,YAAY,QAAuB,CAAC;oCACtD,OAAO;wCACH,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;wCACtB,SAAS,EAAE,SAAS,IAAI,IAAI;wCAC5B,YAAY,EAAG,YAAmC,IAAI,IAAI;qCAC7D,CAAC;gCACN,CAAC,CAAC,CAAC;gCACH,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;6BAC1C;yBACJ;wBAED,IAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,KAAI,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,MAAK,gBAAgB,EAAE;4BACvF,mBAAmB,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,iBAAiB,CAAC,CAAC;yBACvD;wBAGD,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;wBACjC,cAAc,CAAC,IAAI,CAAC,CAAC;;;;;aAE5B,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAA;IAE1E,SAAS,CAAC;QACN,IAAM,EAAE,GAAG;;;;;6BACH,gBAAgB,EAAhB,wBAAgB;6BACZ,CAAA,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,KAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,MAAK,YAAY,CAAA,EAAvG,wBAAuG;wBACvG,eAAe,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,uBAAuB,CAAC,CAAC;wBACrD,KAAK,GAAe,uBAAuB,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;wBACtE,qBAAM,oBAAoB,CAAC,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,EAAA;;wBAA7D,aAAa,GAAG,SAA6C;wBACnE,cAAc,CAAC,aAAa,CAAC,CAAC;;;wBAElC,IAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,KAAI,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,MAAK,YAAY,EAAE;4BAC3F,eAAe,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,gBAAgB,CAAC,CAAC;4BAY9C,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;4BACvE,cAAc,CAAC,cAAc,CAAC,CAAC;yBAElC;;;;;aAER,CAAA;QACD,EAAE,EAAE,CAAA;IACR,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,SAAS,CAAC;;QACN,IAAI,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,EAAE;YACrC,0CAA0C;YAC1C,cAAc,CAAC,EAAE,CAAC,CAAC;YACnB,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,cAAc,CAAC,YAAY,CAAC,CAAC;YAC7B,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,uBAAuB,CAAC,IAAI,CAAC,CAAC;YAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;YACpC,aAAa,CAAC,EAAE,CAAC,CAAC;YAGlB,IAAI,UAAU,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,mBAAmB,CAAC;YACrD,2EAA2E;YAC3E,2BAA2B;YAE3B,IAAM,cAAc,GAAG,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,QAAQ,mCAAI,EAAE,CAAC;YACzE,IAAM,eAAa,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAGpD,IAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAiB;;oBAAhB,GAAG,QAAA,EAAE,KAAK,QAAA;gBAChE,IAAM,gBAAgB,GAAG,eAAa,CAAC,IAAI,CACvC,UAAC,CAAM,YAAK,OAAA,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,0CAAE,IAAI,MAAK,GAAG,CAAA,EAAA,CACrC,CAAC;gBACF,OAAO;oBACH,IAAI,EAAE,KAAK,CAAC,WAAW;oBACvB,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,SAAS,EAAE,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,eAAe;oBACnD,WAAW,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,WAAW,mCAAI,IAAI;oBACzD,YAAY,EAAE,MAAA,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,0CAAE,YAAY,mCAAI,KAAK;oBAC5D,YAAY,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,IAAI;iBAC5C,CAAC;YACN,CAAC,CAAC,CAAC;YAEH,IAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACtD,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,aAAa,CAAC;oBACnB,KAAK,eAAe;wBAChB,OAAO,KAAK,CAAC;oBACjB;wBACI,OAAO,IAAI,CAAC;iBACnB;YACL,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAEhC,IAAM,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACtD,IAAI,CAAC,KAAK,CAAC,YAAY;oBAAE,OAAO,KAAK,CAAC;gBAEtC,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,UAAU;wBACX,kDAAkD;wBAClD,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;oBAC/B,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW,CAAC;oBACjB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB;wBACnB,OAAO,IAAI,CAAC;oBAChB,0BAA0B;oBAC1B,KAAK,UAAU;wBACX,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBACvC;wBACI,OAAO,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,IAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAAC,UAAC,KAAU;gBACrD,QAAQ,KAAK,CAAC,IAAI,EAAE;oBAChB,KAAK,UAAU;wBACX,kDAAkD;wBAClD,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa;4BACpC,OAAO,IAAI,CAAC;wBAChB,OAAO,KAAK,CAAC;oBACjB,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW,CAAC;oBACjB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,kBAAkB,CAAC;oBACxB,KAAK,KAAK,CAAC;oBACX,KAAK,OAAO,CAAC;oBACb,KAAK,SAAS,CAAC;oBACf,KAAK,MAAM,CAAC;oBACZ,KAAK,UAAU;wBACX,OAAO,IAAI,CAAC;oBAChB,0BAA0B;oBAC1B,KAAK,UAAU;wBACX,OAAO,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC;oBACvC;wBACI,OAAO,KAAK,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,yDAAyD;YACzD,IAAI,yBAAyB,GAAQ,oBAAoB,CAAC,GAAG,CAAC,UAAC,KAAU;;gBAAK,OAAA,CAAC;oBAC3E,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE;oBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC7B,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;YAE/C,IAAI,wBAAwB,GAAQ,mBAAmB,CAAC,GAAG,CAAC,UAAC,KAAU;;gBAAK,OAAA,CAAC;oBACzE,SAAS,EAAE,KAAK,CAAC,KAAK;oBACtB,WAAW,EAAE,KAAK,CAAC,IAAI;oBACvB,WAAW,EAAE,MAAA,KAAK,CAAC,WAAW,mCAAI,EAAE;oBACpC,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,sBAAsB,EAAE,KAAK,CAAC,sBAAsB;iBACvD,CAAC,CAAA;aAAA,CAAC,CAAC;YAEJ,kBAAkB,CAAC,wBAAwB,CAAC,CAAA;YAE5C,IAAM,sBAAsB,GAAG,CAAA,MAAA,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,MAAM,0CAAE,KAAK,0CAAE,kBAAkB,KAAI,EAAE,CAAC;YAClG,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;SACjD;QACD,oBAAoB;IACxB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,SAAS,CAAC;QACN,IAAI,QAAQ,CAAC,OAAO,EAAE;YAClB,IAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC7D,IAAI,YAAY,EAAE;gBACd,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAC,CAAM;oBAC1C,aAAa,CAAE,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAC,CAAC;gBACxD,CAAC,CAAC,CAAC;aACN;SACJ;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAGP,IAAM,aAAa,GAAG,UAAC,UAAmB;QACtC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,EAAE;YACpB,IAAM,eAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB;YAC/D,IAAI,CAAC,eAAa;gBAAE,OAAO;YAC3B,wEAAwE;YACxE,IAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;YAC9E,IAAM,WAAS,GAAG,UAAU,IAAI,eAAa,CAAC,SAAS,CAAC;YACxD,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;gBAChC,UAAU,EAAE,WAAS;gBACrB,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,eAAa,CAAC,WAAW;gBAC5C,WAAW,EAAE,eAAa,CAAC,WAAW;gBACtC,SAAS,EAAE,eAAa,CAAC,SAAS;aACrC,CAAC,EANiC,CAMjC,CAAC,CAAC;YAEJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;YACnD,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,CAAA;YACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SAEpC;IAEL,CAAC,CAAC;IAEF,IAAM,iBAAiB,GAAG;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,gCAAgC;QAChC,sCAAsC;QACtC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAErC,CAAC,CAAA;IAGD,IAAM,0BAA0B,GAAG,UAAC,WAAgB;QAChD,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5E,sEAAsE;QACtE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,4DAA4D;QAC5D,0DAA0D;QAC1D,4BAA4B;QAC5B,gEAAgE;QAChE,SAAS;QACT,IAAI;QACJ,eAAe,CAAC,iBAAiB,CAAC,CAAC;QACnC,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAClC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,yBAAyB,GAAG,UAAC,WAAgB;QAC/C,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAE5E,sEAAsE;QACtE,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAC1C,4DAA4D;QAC5D,0DAA0D;QAC1D,4BAA4B;QAC5B,gEAAgE;QAChE,SAAS;QACT,IAAI;QACJ,0BAA0B,CAAC,iBAAiB,CAAC,CAAC;QAC9C,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACnC,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAGrC,CAAC,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,aAA6B,EAAE,gBAAmC;QACrF,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACjC,gBAAgB,CAAC,aAAa,CAAC,CAAC;QAChC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACtC,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,sBAAsB,GAAG;QAC3B,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG;QACvB,cAAc,CAAC,KAAK,CAAC,CAAC;QACtB,yBAAyB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,UAAU,GAAG,CAAC,IAAI,WAAW,EAAE;YAE/B,IAAM,cAAc,GAAG;gBACnB,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,UAAC,IAAS;;oBAAK,OAAA,CAAC;wBAClC,SAAS,EAAE,IAAI,CAAC,UAAU;wBAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,KAAK,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;wBACnB,WAAW,EAAE,MAAA,IAAI,CAAC,WAAW,mCAAI,EAAE;qBACtC,CAAC,CAAA;iBAAA,CAAC;aACN,CAAC;YAGF,IAAM,iBAAiB,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC;YAClE,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAEnC,IAAI,gBAAgB,GAAQ,uBAAuB,CAAA;YACnD,IAAM,qBAAqB,GAAG,0BAA0B,CAAA;YAExD,IAAM,iBAAiB,GAAG,YAAY,CAAA;YACtC,IAAM,WAAW,GAAG,mBAAmB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAA;YACvJ,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC3C,cAAc,CAAC,KAAK,CAAC,CAAA;YACrB,IAAI;SACP;IACL,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAGjB,qCAAqC;IAErC,IAAM,sBAAsB,GAAG;QAC3B,IAAI,CAAC,oBAAoB,IAAI,CAAC,YAAY,IAAI,CAAC,0BAA0B,EAAE;YACvE,OAAO,KAAK,CAAC;SAChB;QACD,iDAAiD;QACjD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACvF,CAAC,CAAC;IAEF,IAAM,qBAAqB,GAAG,UAAO,WAAgB;;;;;oBACjD,2BAA2B;oBAC3B,gDAAgD;oBAChD,oCAAoC;oBACpC,+BAA+B;oBAC/B,gEAAgE;oBAChE,uDAAuD;oBACvD,sBAAsB;oBACtB,2GAA2G;oBAC3G,kFAAkF;oBAClF,IAAI;oBAGJ,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;yBAGhC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,CAAA,EAAf,wBAAe;oBACT,kBAAgB,WAAW,CAAC,EAAE,CAAC;oBACrC,gDAAgD;oBAChD,cAAc,CAAC,KAAK,CAAC,CAAC;oBAChB,2BAA8B,YAAY,CAAC,IAAI,CAAC,UAAC,WAAgB,IAAK,OAAA,WAAW,CAAC,EAAE,KAAK,eAAa,EAAhC,CAAgC,CAAC,CAAC;oBAC9G,yBAAyB,CAAC,wBAAsB,CAAC,CAAC;yBAC9C,wBAAsB,EAAtB,wBAAsB;oBAChB,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAsB,aAAtB,wBAAsB,uBAAtB,wBAAsB,CAAE,eAAe,CAAC,CAAC;yBACnE,UAAU,EAAV,wBAAU;oBACN,gBAAgB,GAAG,UAAU,CAAA;oBACjC,0BAA0B,CAAC,gBAAgB,CAAC,CAAA;oBACtC,KAAK,GAAe,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACxE,qBAAM,oBAAoB,CAC5C,CAAC,KAAK,CAAC,EACP,QAAQ,CACX,EAAA;;oBAHK,aAAa,GAAG,SAGrB;oBACD,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBACzE,2BAA2B,CAAC,IAAI,CAAC,CAAA;;;;oBAIzC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;;;;;SAEhE,CAAA;IAED,IAAM,iBAAiB,GAAG;;;;;gBACtB,kCAAkC;gBAClC,qBAAM,YAAY,CAAC,sBAAsB,CAAC,EAAA;;oBAD1C,kCAAkC;oBAClC,SAA0C,CAAC;oBAEvC,kBAAkB,GAAG,YAAY,CAAC;oBAChC,UAAU,GAAG,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,GAAG,CAAC,YAAY,CAAC,CAAC;oBACzD,IAAI,sBAAsB,IAAI,UAAU,EAAE;wBAChC,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC9D,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAC/B,MAAM,CAAC,IAAI,CAAC,WAAI,SAAS,CAAC,QAAQ,EAAE,CAAE,CAAC,CAAC;qBAC3C;oBACD,0BAA0B,CAAC,KAAK,CAAC,CAAC;oBAClC,UAAU,CAAC;wBACP,iCAAiC,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;oBACvD,CAAC,EAAE,GAAG,CAAC,CAAA;;;;SACV,CAAA;IACD,IAAM,gBAAgB,GAAG,UAAO,UAAe;;;;;;oBAC3C,sBAAsB,CAAC,KAAK,CAAC,CAAA;;;;yBAGrB,UAAU,CAAC,EAAE,EAAb,wBAAa;oBACP,UAAU,GAAG,uBAAuB,CAAC;oBACrC,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;oBAEpC,qBAAM,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAAnE,SAAmE,CAAC;oBAEpE,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBACxB,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBAE1F,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBACpC,UAAU,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,sBAAe,UAAU,CAAC,EAAE,CAAE,CAAC,CAAC;oBAChD,CAAC,EAAE,GAAG,CAAC,CAAA;;;oBAGD,UAAU,GAAG,YAAY,CAAC;oBAC1B,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAA,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,KAAK,0CAAE,EAAE,CAAC,CAAC;oBACjE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,SAAS,0CAAE,EAAE,CAAC,CAAC;oBACzD,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBACnD,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,CAAC;oBACrB,qBAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,EAAA;;oBAA9C,WAAS,SAAqC;oBAEpD,cAAc,CAAC,EAAE,CAAC,CAAC;oBACnB,eAAe,CAAC,IAAI,CAAC,CAAC;oBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;oBAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;oBACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;oBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;oBAE9B,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAChD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;oBAE1F,UAAU,CAAC;wBACP,MAAM,CAAC,IAAI,CAAC,sBAAe,QAAM,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC,CAAC;oBACjD,CAAC,EAAE,GAAG,CAAC,CAAA;;;;;;;;;SAMlB,CAAA;IAID,SAAS,CAAC;QACN,4CAA4C;QAC5C,SAAS,kBAAkB,CAAC,KAAiB;YACzC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,EAAE;gBAC1E,cAAc,CAAC,KAAK,CAAC,CAAC;aACzB;QACL,CAAC;QACD,IAAI,WAAW,EAAE;YACb,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;SAC9D;QACD,OAAO;YACH,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;QAClE,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,SAAS,CAAC;QACN,SAAS,6BAA6B,CAAC,KAAiB;;YACpD,IAAM,UAAU,GAAG,KAAK,CAAC,MAAc,CAAC;YACxC,IAAI,MAAA,cAAc,CAAC,OAAO,0CAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YACzD,IAAI,MAAA,qBAAqB,CAAC,OAAO,0CAAE,QAAQ,CAAC,UAAU,CAAC;gBAAE,OAAO;YAChE,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,eAAe,EAAE;YACjB,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;SACzE;QAED,OAAO;YACH,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;QAC7E,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,IAAM,UAAU,GAAG;;QACf,6CAA6C;QAC7C,IAAM,SAAS,GACX,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,0CAAE,MAAM,mCACzB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,MAAM,mCAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QAE3C,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAC1F,OAAO,EAAE;oCACL,0BAA0B,CAAC,IAAI,CAAC,CAAA;gCACpC,CAAC,aAED,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,sCAAsC,GAAG,EAClF,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,2BAAM,2BAAS,SAAS,GAAU,sBAAqB,IACrD,EAGN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,MAAM,YAC5F,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAGF,iCAAiC;IAEjC,IAAM,gBAAgB,GAAG,UAAC,WAAgB;QAEtC,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACpC,IAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,2BAA2B;QAC5E,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,iDAAiD;QAC1F,gCAAgC;QAChC,IAAI,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,EAAE;YACjB,MAAM,CAAC,IAAI,CAAC,sBAAe,WAAW,CAAC,EAAE,CAAE,CAAC,CAAC;YAC7C,cAAc,CAAC,KAAK,CAAC,CAAC;SACzB;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;SAC5D;IACL,CAAC,CAAA;IAED,IAAM,iBAAiB,GAAG;QACtB,IAAM,MAAM,GAAG,IAAI,eAAe,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAChC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAChC,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YAC1B,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC5B,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;gBAC5B,CAAC,CAAC,UAAG,QAAQ,cAAI,MAAM,CAAC,QAAQ,EAAE,CAAE;gBACpC,CAAC,CAAC,QAAQ,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvB;IACL,CAAC,CAAA;IAED,IAAM,gBAAgB,GAAG;QAErB,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,yCAAyC,aACpD,eAAK,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAC1F,OAAO,EAAE;oCACL,IAAM,EAAE,GAAG;;;;;yDACH,uBAAuB,EAAvB,wBAAuB;oDACjB,KAAK,GAAe,uBAAuB,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oDACtF,qBAAM,oBAAoB,CAC5C,CAAC,KAAK,CAAC,EACP,QAAQ,CACX,EAAA;;oDAHK,aAAa,GAAG,SAGrB;oDACD,0BAA0B,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oDACzE,2BAA2B,CAAC,IAAI,CAAC,CAAA;;;;;yCAExC,CAAA;oCACD,EAAE,EAAE,CAAA;gCACR,CAAC,aAGD,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,sCAAsC,GAAG,EAClF,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,yBAAM,2BAAS,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,GAAU,GAAO,IAC1D,EAGN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,MAAM,YAC5F,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAEF,IAAM,cAAc,GAAG;QACnB,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAA;IAED,IAAM,YAAY,GAAG;QACjB,OAAO,CACH,aAAI,SAAS,EAAC,0BAA0B,YACpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,SAAS,EAAC,+BAA+B,aAC1C,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAE1F,OAAO,EAAE,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,EAA/B,CAA+B,aAE9C,eAAM,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,sCAAsC,GAAG,EAClF,eAAM,CAAC,EAAC,mGAAmG,EACvG,IAAI,EAAC,OAAO,GAAG,IACjB,EACN,2BAAM,2BAAS,aAAa,CAAC,MAAM,GAAU,+BAA8B,IACzE,EAGN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,EAAC,MAAM,YACzF,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,CAAA;IACL,CAAC,CAAC;IAKF,+BAA+B;IAG/B,4BAA4B;IAE5B,IAAM,qBAAqB,GAAG,UAAC,UAAkB;QAC7C,IAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,KAAK,UAAU,EAA9B,CAA8B,CAAC,CAAC;QAChF,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IAErC,CAAC,CAAC;IAEF,IAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,UAAC,GAA6B,EAAE,IAAI;QAC9E,IAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,GAAG;YAAE,OAAO,GAAG,CAAC,CAAC,oBAAoB;QAE1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACX,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;SACjB;QACD,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,eAAe,GACjB,MAAA,MAAA,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,0CAAE,MAAM,mCACzB,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,0CAAE,MAAM,mCAC1B,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;IAE3C,IAAM,gBAAgB,GAAG,OAAO,CAAoB;QAChD,IAAM,KAAK,GAAsB,EAAE,CAAC;QAEpC,IAAI,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,EAAE;YAC9B,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,cAAc;gBAClB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,iBAAU,sBAAsB,CAAC,IAAI,CAAE;gBAC9C,QAAQ,EAAE,cAAM,OAAA,iBAAiB,EAAE,EAAnB,CAAmB;aACtC,CAAC,CAAC;SACN;QAED,IAAI,CAAA,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI,MAAI,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,KAAK,CAAA,EAAE;YAC3D,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,mBAAmB;gBACvB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,sBAAe,oBAAoB,CAAC,IAAI,eAAK,oBAAoB,CAAC,KAAK,MAAG;gBACjF,QAAQ,EAAE,cAAM,OAAA,0BAA0B,EAAE,EAA5B,CAA4B;aAC/C,CAAC,CAAC;SACN;QAED,IAAI,YAAY,IAAI,eAAe,GAAG,CAAC,EAAE;YACrC,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,eAAe;gBACnB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAG,eAAe,0BAAuB;gBAChD,QAAQ,EAAE,cAAM,OAAA,iBAAiB,EAAE,EAAnB,CAAmB;gBACnC,MAAM,EAAC,cAAM,OAAA,0BAA0B,CAAC,IAAI,CAAC,EAAhC,CAAgC;aAChD,CAAC,CAAC;SACN;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,SAAS,KAAK,IAAI,EAApB,CAAoB,CAAC,EAAE;YAC7E,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,gBAAgB;gBACpB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,UAAG,aAAa,CAAC,MAAM,4BAAyB;gBACvD,QAAQ,EAAE,cAAM,OAAA,cAAc,EAAE,EAAhB,CAAgB;gBAChC,MAAM,EAAC,cAAM,OAAA,yBAAyB,CAAC,IAAI,CAAC,EAA/B,CAA+B;aAE/C,CAAC,CAAC;SACN;QAED,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAgB;gBAAf,MAAM,QAAA,EAAE,MAAM,QAAA;YACvD,IAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,SAAS,KAAK,MAAM,EAA1B,CAA0B,CAAC,CAAC;YAC/E,IAAM,iBAAiB,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,KAAI,MAAM,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC;gBACP,EAAE,EAAE,iBAAU,MAAM,CAAE;gBACtB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,UAAG,iBAAiB,eAAK,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAE;gBACrD,QAAQ,EAAE,cAAM,OAAA,qBAAqB,CAAC,MAAM,CAAC,EAA7B,CAA6B;aAChD,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACjB,CAAC,EAAE;QACC,sBAAsB;QACtB,oBAAoB;QACpB,YAAY;QACZ,eAAe;QACf,aAAa;QACb,kBAAkB;QAClB,gBAAgB;KACnB,CAAC,CAAC;IAEH,IAAM,iBAAiB,GAAG,CAAC,CAAC;IAC5B,IAAM,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACtE,IAAM,eAAe,GAAG,gBAAgB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAClE,IAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC;IAE/C,IAAM,oBAAoB,GAAG;QACzB,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE1C,IAAI,iBAAiB,IAAI,sBAAsB,EAAE;YAC7C,iBAAiB,EAAE,CAAC;SACvB;QAED,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;QACpC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,YAAY,CAAC,CAAC;QAC7B,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;QACvC,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;QAC7C,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,EAAE;YAClD,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAC7B;IACL,CAAC,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;IAG/C,IAAM,cAAc,GAAG,OAAO,CAAkB;QAC5C,IAAM,YAAY,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;QAC9C,IAAM,MAAM,GAAoB,YAAY;YACxC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,KAAU,IAAK,OAAA,CAAC;gBACpC,EAAE,EAAE,gBAAS,KAAK,CAAC,SAAS,CAAE;gBAC9B,IAAI,EAAE,OAAgB;gBACtB,KAAK,OAAA;aACR,CAAC,EAJqC,CAIrC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACT,IAAM,UAAU,GACZ,YAAY,KAAI,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,CAAA;YACtC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAC,CAAM,EAAE,GAAW,IAAK,OAAA,CAAC;gBAC/C,EAAE,EAAE,qBAAc,CAAC,CAAC,IAAI,IAAI,GAAG,CAAE;gBACjC,IAAI,EAAE,YAAqB;gBAC3B,UAAU,EAAE,CAAC;aAChB,CAAC,EAJgD,CAIhD,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACb,IAAM,KAAK,GAAoB,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC;YACjE,EAAE,EAAE,gBAAS,CAAC,CAAC,EAAE,CAAE;YACnB,IAAI,EAAE,OAAgB;YACtB,KAAK,EAAE,CAAC;SACX,CAAC,EAJkE,CAIlE,CAAC,CAAC;QAEJ,qDAAW,MAAM,SAAK,UAAU,SAAK,KAAK,QAAE;IAChD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,CAAC,CAAC,CAAC;IAErE,IAAM,aAAa,GAAG,UAAC,CAAwC;QAC3D,IAAM,YAAY,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,KAAI,EAAE,CAAC;QAE9C,IAAM,gBAAgB,GAAG,UAAC,KAAU;YAChC,IAAM,OAAO,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;YAC/E,IAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;gBAChC,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,KAAK,EAAE,CAAC;gBACR,iBAAiB,EAAE,KAAK,CAAC,WAAW;gBACpC,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;aAC7B,CAAC,EANiC,CAMjC,CAAC,CAAC;YACJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,UAAU,SAAvB,CAAwB,CAAC,CAAC;YACnD,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;YAClC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7E,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,IAAM,SAAS,GACX,CAAC,CAAC,GAAG,KAAK,WAAW;gBACjB,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM;gBAC5C,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;YAC7E,eAAe,CAAC,SAAS,CAAC,CAAC;YAC3B,OAAO;SACV;QAED,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACnB,IAAI,YAAY,IAAI,YAAY,IAAI,CAAC,EAAE;gBACnC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,IAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAE/F,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,OAAO,EAAE;oBAChC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACxC;qBAAM,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,YAAY,EAAE;oBAC5C,sBAAsB,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;iBACnD;qBAAM,IAAI,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,MAAK,OAAO,EAAE;oBACvC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;iBACxC;qBAAM,IAAI,YAAY,EAAE;oBACrB,aAAa,EAAE,CAAC;oBAChB,cAAc,CAAC,KAAK,CAAC,CAAC;iBACzB;aACJ;SACJ;aAAM,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,IAAI,UAAU,KAAK,EAAE,EAAE;YACnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,cAAc,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;aAC/C;iBAAM,IAAI,YAAY,EAAE;gBACrB,eAAe,CAAC,IAAI,CAAC,CAAC;gBACtB,cAAc,CAAC,YAAY,CAAC,CAAC;aAChC;iBAAM,IAAI,oBAAoB,EAAE;gBAC7B,uBAAuB,CAAC,IAAI,CAAC,CAAC;gBAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAC;aACvC;iBAAM,IAAI,iBAAiB,EAAE;gBAC1B,iBAAiB,EAAE,CAAC;aACvB;YACD,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAC;SACrC;IACL,CAAC,CAAC;IAEF,SAAS,CAAC;QACN,IAAI,CAAC,WAAW,EAAE;YACd,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;SACvB;IACL,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,IAAM,UAAU,GAAG,cAAM,OAAA,CACrB,4BACK,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,UAAC,EAAgB;gBAAf,MAAM,QAAA,EAAE,MAAM,QAAA;YACpD,IAAM,SAAS,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,KAAK,MAAM,EAAtB,CAAsB,CAAC,CAAC;YACrE,IAAM,iBAAiB,GAAG,CAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,KAAI,MAAM,CAAC;YAE3D,OAAO,CACH,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,wBAAM,iBAAiB,GAAO,EAC7B,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,CAC1B,MAAC,KAAK,CAAC,QAAQ,eAEX,eAAkB,SAAS,EAAC,mBAAmB,YAAE,KAAK,IAA3C,KAAK,CACT,EACN,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;oCACtB,eAAM,SAAS,EAAC,gBAAgB,mBAAU,IAEjC,CACpB,EAT6B,CAS7B,CAAC,EAEF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,cAAM,OAAA,qBAAqB,CAAC,MAAM,CAAC,EAA7B,CAA6B,YAC7G,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,IAjBD,MAAM,CAkBV,CACR,CAAA;QACL,CAAC,CAAC,GACH,CACN,EA7BwB,CA6BxB,CAAC;IAEF,0BAA0B;IAG1B,sCAAsC;IAEtC,IAAM,sBAAsB,GAAG,UAAC,gBAAqB;QACjD,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAA;YAAE,OAAO;QAEhC,IAAI,CAAC,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,CAAA,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,gBAAgB,CAAC,CAAC;YAC9E,OAAO;SACV;QAED,IAAI;YACA,6DAA6D;YAC7D,IAAM,eAAe,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YAEzF,0CAA0C;YAC1C,sBAAsB;YACtB,yBAAyB;YACzB,gCAAgC;YAChC,wBAAwB;YACxB,uBAAuB;YACvB,iCAAiC;YACjC,uBAAuB,CAAC;gBACpB,IAAI,EAAE,gBAAgB,CAAC,IAAI;gBAC3B,KAAK,EAAE,UAAU,CAAC,IAAI,EAAE;aAC3B,CAAC,CAAC;YAEH,6BAA6B,CAAC,eAAe,CAAC,CAAC;YAE/C,sDAAsD;YACtD,oCAAoC;YAEpC,gCAAgC;YAChC,aAAa,CAAC,EAAE,CAAC,CAAC;YAClB,cAAc,CAAC,KAAK,CAAC,CAAC;YACtB,cAAc,CAAC,IAAI,CAAC,CAAC;YACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;SACpC;QAAC,OAAO,KAAK,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,8CAA8C;SACjD;IACL,CAAC,CAAC;IAGF,IAAM,0BAA0B,GAAG;QAC/B,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,6BAA6B,CAAC,IAAI,CAAC,CAAA;QACnC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;IACrC,CAAC,CAAC;IAEF,IAAM,oBAAoB,GAAG,cAAM,OAAA,CAC/B,uBACI,eAAK,SAAS,EAAC,yBAAyB,aACpC,eAAK,SAAS,EAAC,+BAA+B,aAC1C,6BAAS,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,IAAI,SAAW,EAC9C,eAAM,SAAS,EAAC,mBAAmB,YAAE,oBAAoB,aAApB,oBAAoB,uBAApB,oBAAoB,CAAE,KAAK,GAAQ,IACtE,EAEN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,0BAA0B,YACpG,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,GACL,CACR,EAbkC,CAalC,CAAC;IAEF,oCAAoC;IAEpC,OAAO,CACH,4BACI,eAAK,SAAS,EAAC,kEAAkE,aAC7E,cAAK,SAAS,EAAC,6BAA6B,YACxC,cAAI,SAAS,EAAC,+BAA+B,aACxC,gBAAgB,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC5B,uBACI,eAAK,SAAS,EAAE,kEAA2D,IAAI,CAAC,IAAI,CAAE,aAClF,eAAM,SAAS,EAAC,yCAAyC,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YACtE,IAAI,CAAC,KAAK,GACR,EACP,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,wBAAwB,EAClC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,OAAO,EAAE,IAAI,CAAC,QAAQ,gBACV,iBAAU,IAAI,CAAC,KAAK,CAAE,YAElC,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACP,IAdD,IAAI,CAAC,EAAE,CAeX,CACR,EAjB+B,CAiB/B,CAAC,EACD,eAAe,GAAG,CAAC,IAAI,CACpB,uBACI,kBACI,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAC,2BAA2B,EACrC,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,OAAO,EAAE,cAAM,OAAA,kBAAkB,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAAnC,CAAmC,kBAEhD,eAAe,aACZ,GACR,CACR,EACA,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,KAAK,CAAC,IAAI,CACrD,uBACI,iBACI,IAAI,EAAC,QAAQ,EACb,GAAG,EAAE,qBAAqB,EAC1B,SAAS,EAAC,+DAA+D,EACzE,WAAW,EAAE,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,cAAc,EAAE,EAAlB,CAAkB,EACtC,OAAO,EAAE,cAAM,OAAA,kBAAkB,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,EAAnC,CAAmC,uBAG7C,GACR,CACR,EACD,aAAI,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,gCAAgC,YACzD,eAAK,SAAS,EAAC,8CAA8C,aACzD,KAAC,UAAU,IACP,SAAS,EAAC,2BAA2B,EACrC,KAAK,EAAE,UAAU,IAAI,EAAE,EACvB,WAAW,EAAC,SAAS,EACrB,QAAQ,EAAE,UAAC,CAAC;gDACR,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gDAC9B,kBAAkB,CAAC,KAAK,CAAC,CAAC;gDAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;gDACrB,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;4CACxB,CAAC,EACD,OAAO,EAAE;gDACL,kBAAkB,CAAC,KAAK,CAAC,CAAC;gDAC1B,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE;oDAAE,cAAc,CAAC,IAAI,CAAC,CAAC;4CACjD,CAAC,EACD,MAAM,EAAE;gDACJ,gDAAgD;gDAChD,UAAU,CAAC,cAAM,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB,EAAE,GAAG,CAAC,CAAC;4CACjD,CAAC,EAED,SAAS,EAAE,aAAa,GAC1B,EACF,KAAC,WAAW,IACR,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE;gDACL,kBAAkB,CAAC,KAAK,CAAC,CAAC;gDAC1B,cAAc,CAAC,IAAI,CAAC,CAAC;4CACzB,CAAC,EACD,SAAS,EAAC,kDAAkD,YAE5D,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,IACZ,GACL,IACJ,GACH,EAEL,eAAe,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC/C,eAAK,GAAG,EAAE,cAAc,EAAE,SAAS,EAAC,uCAAuC,aACvE,eAAK,SAAS,EAAC,2BAA2B,aACtC,eAAK,SAAS,EAAC,0BAA0B,gCAAiB,gBAAgB,CAAC,MAAM,SAAQ,EACzF,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,8BAA8B,EAAC,OAAO,EAAE,oBAAoB,0BAEnF,IACP,EACN,cAAK,SAAS,EAAC,yBAAyB,YACnC,gBAAgB,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC5B,eAA+B,SAAS,EAAE,kDAA2C,IAAI,CAAC,IAAI,CAAE,EAAE,OAAO,EAAE;oCACvG,IAAI,IAAI,CAAC,EAAE,IAAI,eAAe,IAAI,IAAI,CAAC,EAAE,IAAI,gBAAgB,EAAE;wCAC3D,IAAG,IAAI,CAAC,MAAM,EAAC;4CACX,IAAI,CAAC,MAAM,EAAE,CAAA;yCAChB;qCACJ;gCACL,CAAC,aAEG,eAAM,SAAS,EAAC,+BAA+B,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YAC5D,IAAI,CAAC,KAAK,GACR,EACP,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,gCAAgC,EAC1C,OAAO,EAAE,IAAI,CAAC,QAAQ,gBACV,iBAAU,IAAI,CAAC,KAAK,CAAE,YAElC,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,GACV,KAlBH,iBAAU,IAAI,CAAC,EAAE,CAAE,CAmBvB,CACT,EArB+B,CAqB/B,CAAC,GACA,IACJ,CACT,EAEA,WAAW,IAAI,CACZ,eAAK,GAAG,EAAE,UAAU,EAAE,SAAS,EAAC,0DAA0D,aACtF,eAAK,SAAS,EAAC,6BAA6B,aACvC,UAAU,CAAC,CAAC,CAAC,CACV,8BACI,eAAK,SAAS,EAAC,sFAAsF,aACjG,cAAI,SAAS,EAAC,6GAA6G,aACvH,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,EACpB,8CAA6B,IAC5B,EACJ,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC3B,gBAAgB,CAAC,GAAG,CAAC,UAAC,KAAU,EAAE,KAAa;oDAC3C,OAAO,CACH,MAAC,WAAW,IAER,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,4DAAqD,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,2BAAwB,EAC1J,WAAW,EAAE,UAAC,CAAC;4DACX,CAAC,CAAC,cAAc,EAAE,CAAC;4DACnB,IAAM,YAAY,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,EAAE,CAAC;4DACxC,IAAI,YAAY,EAAE;gEACd,IAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,EAAE,EAAR,CAAQ,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,KAAK,EAAE,EAAR,CAAQ,CAAC,CAAC;gEACpF,IAAM,YAAU,GAAG,MAAM,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC;oEAChC,UAAU,EAAE,KAAK,CAAC,SAAS;oEAC3B,KAAK,EAAE,CAAC;oEACR,iBAAiB,EAAE,KAAK,CAAC,WAAW;oEACpC,WAAW,EAAE,KAAK,CAAC,WAAW;oEAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;iEAC7B,CAAC,EANiC,CAMjC,CAAC,CAAC;gEACJ,cAAc,CAAC,UAAC,IAAI,IAAK,uCAAI,IAAI,SAAK,YAAU,SAAvB,CAAwB,CAAC,CAAC;gEACnD,aAAa,CAAC,EAAE,CAAC,CAAC;gEAClB,cAAc,CAAC,IAAI,CAAC,CAAC;gEACrB,aAAa,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,GAAG,CAAC,EAAR,CAAQ,CAAC,CAAA;gEACjC,cAAc,CAAC,KAAK,CAAC,CAAC;6DACzB;wDACL,CAAC,EACD,YAAY,EAAE,cAAM,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB,wBAEnC,iBAAQ,KAAK,EAAE,EAAC,WAAW,EAAC,KAAK,EAAC,YAAG,KAAK,CAAC,WAAW,GAAU,yBAAmB,eAAM,SAAS,EAAC,sBAAsB,YAAE,UAAU,GAAQ,KAzB/I,KAAK,CA0BA,CACjB,CAAA;gDACL,CAAC,CAAC,CACL,CAAC,CAAC,CAAC,CACA,eAAK,SAAS,EAAC,gCAAgC,aAC3C,cAAK,SAAS,EAAC,qCAAqC,YAChD,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,GACnB,EACN,cAAK,SAAS,EAAC,qCAAqC,iDAE9C,IACJ,CACT,IACC,EACL,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CACpD,8BACI,cAAK,SAAS,EAAC,yBAAyB,GAAG,EAC3C,eAAK,SAAS,EAAC,sFAAsF,aACjG,aAAI,SAAS,EAAC,sEAAsE,oCAAyB,EAC5G,kBAAkB,CAAC,GAAG,CAAC,UAAC,gBAAqB,EAAE,KAAa,IAAK,OAAA,CAC9D,MAAC,WAAW,IAER,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,8HAAuH,YAAY,KAAK,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,EAAE,CAAE,EAChO,WAAW,EAAE,UAAC,CAAC;gEACX,CAAC,CAAC,cAAc,EAAE,CAAC;gEACnB,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;4DAC7C,CAAC,EACD,YAAY,EAAE,cAAM,OAAA,eAAe,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,CAAC,EAAhD,CAAgD,aAEpE,eAAK,SAAS,EAAC,+BAA+B,aAC1C,6BAAS,gBAAgB,CAAC,IAAI,SAAW,EACzC,eAAM,SAAS,EAAC,sBAAsB,YAAE,UAAU,GAAQ,IACxD,EACN,cAAK,SAAS,EAAC,SAAS,YAAE,gBAAgB,CAAC,WAAW,GAAO,KAdxD,KAAK,CAeA,CACjB,EAlBiE,CAkBjE,CAAC,IACA,IACP,CACN,IACF,CACN,CAAC,CAAC;oCACC,8BACI,cAAK,SAAS,EAAC,gCAAgC,YAC3C,eAAK,SAAS,EAAC,oCAAoC,aAC/C,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,kCAAkC,uCAE3C,EACN,eAAK,SAAS,EAAC,qCAAqC,wFACwB,qBAAqB,YAC3F,IACJ,IACJ,GACJ,EACN,cAAK,SAAS,EAAC,yBAAyB,GAAG,IAC5C,EAEN,YAAY,CAAC,MAAM,GAAG,CAAC;oCACpB,4BACI,eAAK,SAAS,EAAC,kCAAkC,aAC7C,eAAK,SAAS,EAAC,+EAA+E,aAC1F,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,QAAQ,IAAC,IAAI,EAAE,EAAE,GAAI,GACpB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,YAAG,SAAS,EAAC,iEAAiE,8BAAkB,EAChG,cAAK,SAAS,EAAC,qCAAqC,8DAE9C,IACJ,IACJ,EACN,cAAK,SAAS,EAAC,kDAAkD,YAC5D,YAAY,CAAC,GAAG,CAAC,UAAC,WAAgB,EAAE,KAAa;;wDAAK,OAAA,CACnD,KAAC,eAAe,IAEZ,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,gBAAgB,EAAE,gBAAgB,EAClC,qBAAqB,EAAE,qBAAqB,EAC5C,yBAAyB,EAAE,yBAAyB,EACpD,0BAA0B,EAAE,0BAA0B,EACtD,SAAS,EAAE,CAAA,MAAA,cAAc,CAAC,YAAY,CAAC,0CAAE,EAAE,MAAK,gBAAS,WAAW,CAAC,EAAE,CAAE,EACzE,YAAY,EAAE;gEACV,IAAM,QAAQ,GAAG,cAAc,CAAC,SAAS,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,gBAAS,WAAW,CAAC,EAAE,CAAE,EAAlC,CAAkC,CAAC,CAAC;gEACnF,IAAI,QAAQ,KAAK,CAAC,CAAC;oEAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;4DACnD,CAAC,IAXI,WAAW,CAAC,EAAE,CAYrB,CACL,CAAA;qDAAA,CAAC,GACA,IACJ,GACP,IAEL,EAEN,eAAK,SAAS,EAAC,6BAA6B,aACxC,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,+DAA+D,EACzE,OAAO,EAAE,sBAAsB,YAE/B,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,MAAM,IAAC,IAAI,EAAE,EAAE,GAAI,GAClB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,sEAAsE,mDAE/E,EACN,cAAK,SAAS,EAAC,sCAAsC,wFAE/C,IACJ,IACJ,GACD,EACR,QAAQ,KAAK,MAAM,IAAI,CACpB,iBACI,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,4GAA4G,EACtH,OAAO,EAAE,kBAAkB,YAE3B,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,yCAAyC,YACpD,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GAChB,EACN,eAAK,SAAS,EAAC,yCAAyC,aACpD,cAAK,SAAS,EAAC,sEAAsE,iDAE/E,EACN,cAAK,SAAS,EAAC,sCAAsC,6EAE/C,IACJ,IACJ,GACD,CACZ,IACC,IACJ,CACT,EAED,MAAC,WAAW,IAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,0BAA0B,EAAE,SAAS,EAAC,sDAAsD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACrM,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,kCAAqC,EAChG,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,8DAAuE,IACzI,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YAChD,MAAM,CAAC,MAAM,GAAG,CAAC;gCACd,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,WAAW,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,GAAoB,GAE/N,IACR,EACd,MAAC,WAAW,IAAC,IAAI,EAAE,sBAAsB,EAAE,YAAY,EAAE,yBAAyB,EAAE,SAAS,EAAC,yFAAyF,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACtO,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,yBAA4B,EACvF,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,oDAA6D,IAC/H,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YAChD,eAAe,CAAC,MAAM,GAAG,CAAC;gCACvB,KAAC,iBAAiB,IACd,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,cAAM,OAAA,yBAAyB,CAAC,KAAK,CAAC,EAAhC,CAAgC,GAClC,GAEX,IACP,EACf,MAAC,WAAW,IAAC,IAAI,EAAE,wBAAwB,EAAE,YAAY,EAAE,2BAA2B,EAAE,SAAS,EAAC,sDAAsD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACvM,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,6BAAgC,EAC3F,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,+DAAwE,IAC1I,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YAChD,MAAM,CAAC,MAAM,GAAG,CAAC;gCACd,KAAC,eAAe,IAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,cAAc,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,WAAW,EAAE,cAAM,OAAA,2BAA2B,CAAC,KAAK,CAAC,EAAlC,CAAkC,GAAoB,GAEvP,IACR,EACd,MAAC,WAAW,IAAC,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,sBAAsB,EAAE,SAAS,EAAC,qDAAqD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aAC5L,MAAC,iBAAiB,IAAC,SAAS,EAAC,0BAA0B,aACnD,0BACI,KAAC,gBAAgB,IAAC,SAAS,EAAC,+BAA+B,mCAAsC,EACjG,KAAC,sBAAsB,IAAC,SAAS,EAAC,kCAAkC,4DAAqE,IACvI,EACN,KAAC,gBAAgB,IAAC,SAAS,EAAC,2BAA2B,GAAG,IAC1C,EACpB,KAAC,oBAAoB,IAAC,SAAS,EAAC,yBAAyB,GAAG,EAC5D,KAAC,eAAe,IAAC,SAAS,EAAC,0BAA0B,YACjD,KAAC,yBAAyB,IAAC,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAM,OAAA,sBAAsB,CAAC,KAAK,CAAC,EAA7B,CAA6B,GAA8B,GAC/K,IACR,EAEd,MAAC,WAAW,IAAC,IAAI,EAAE,uBAAuB,EAAE,YAAY,EAAE,0BAA0B,EAAE,SAAS,EAAC,sBAAsB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gCAAgC,EAAE,aACrK,MAAC,iBAAiB,eACd,0BACI,KAAC,gBAAgB,iCAAkC,EACnD,MAAC,sBAAsB,uDAAsC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,qBAAuC,IAC9H,EACN,KAAC,gBAAgB,KAAG,IACJ,EACpB,KAAC,oBAAoB,KAAG,EACxB,MAAC,iBAAiB,IAAC,SAAS,EAAC,wBAAwB,aACjD,MAAC,WAAW,IAAC,OAAO,EAAC,aAAa,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,iBAAiB,aACnE,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,WAET,EACd,MAAC,WAAW,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,cAAM,OAAA,0BAA0B,CAAC,KAAK,CAAC,EAAjC,CAAiC,aACrF,KAAC,CAAC,IAAC,IAAI,EAAE,EAAE,GAAI,UAEL,IACE,IACV,IACX,GACR,CACN,CAAA;AACL,CAAC,CAAC,CAAC","sourcesContent":["import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from \"react\";\nimport FilterComponent, { FilterOperator, FilterRule, FilterRuleType } from \"../../../components/core/common/FilterComponent\";\nimport { usePathname } from \"../../../hooks/usePathname\";\nimport { useRouter } from \"../../../hooks/useRouter\";\nimport { useSearchParams } from \"../../../hooks/useSearchParams\";\nimport { getFilterObjectFromLocalStorage } from \"../list/SolidListView\";\nimport { createSolidEntityApi } from \"../../../redux/api/solidEntityApi\";\nimport qs from \"qs\";\nimport { SolidSaveCustomFilterForm } from \"./SolidSaveCustomFilterForm\";\nimport { ERROR_MESSAGES } from \"../../../constants/error-messages\";\nimport { hydrateRelationRules } from \"../../../helpers/hydrateRelationRules\";\nimport { useSession } from '../../../hooks/useSession'\nimport GroupingComponent, { AggregationRule, GroupingRule, DateGroupingFormat } from \"./GroupingComponent\";\nimport { Bookmark, Check, Filter, Pencil, Plus, Search, SearchX, Trash2, X } from \"lucide-react\";\nimport { SolidButton } from \"../../shad-cn-ui/SolidButton\";\nimport { SolidInput } from \"../../shad-cn-ui/SolidInput\";\nimport {\n SolidDialog,\n SolidDialogBody,\n SolidDialogClose,\n SolidDialogDescription,\n SolidDialogFooter,\n SolidDialogHeader,\n SolidDialogSeparator,\n SolidDialogTitle,\n} from \"../../shad-cn-ui/SolidDialog\";\n\n\nconst getRandomInt = (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n\ninterface PredefinedSearch {\n name: string;\n description?: string;\n filters: Record<string, any>;\n}\n\nexport type SearchableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n}\n\nexport type GroupableField = {\n fieldName: string;\n displayName: string;\n searchField: string;\n matchMode: string;\n type: string;\n ormType: string;\n relationType: string;\n computedFieldValueType: string;\n}\n\nconst extractFields = (nodes: any[] = []): any[] => {\n const result: any[] = [];\n\n for (const node of nodes) {\n if (node?.type === \"field\") {\n result.push(node);\n }\n\n if (Array.isArray(node?.children)) {\n result.push(...extractFields(node.children));\n }\n }\n\n return result;\n};\n\n\nconst transformFiltersToRules = (filter: any, parentRule: number | null = null): FilterRule => {\n if (!filter || typeof filter !== \"object\" || Object.keys(filter).length === 0) {\n throw new Error(\"Invalid filter: expected a non-null object with properties\");\n }\n if (!filter || typeof filter !== \"object\") {\n throw new Error(\"Invalid filter: expected a non-null object\");\n }\n const currentId = idCounter++;\n if (filter[\"$or\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule,\n children: filter[\"$or\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n if (filter[\"$and\"]) {\n return {\n id: currentId,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.AND,\n parentRule,\n children: filter[\"$and\"]\n .filter((sub: any) => {\n // Filter out null, undefined, empty strings, and empty objects\n if (sub == null) return false;\n if (typeof sub === \"string\" && sub.trim() === \"\") return false;\n if (typeof sub === \"object\" && Object.keys(sub).length === 0) return false;\n return true;\n })\n .map((subFilter: any) => transformFiltersToRules(subFilter, currentId))\n };\n }\n\n // Handle single rule condition\n for (const fieldName in filter) {\n const condition = filter[fieldName];\n if (!condition || typeof condition !== \"object\") {\n throw new Error(`Invalid condition for field '${fieldName}'`);\n }\n\n // CASE 1: relation filter → unwrap first\n if (condition?.id && typeof condition?.id === \"object\") {\n for (const matchMode in condition.id) {\n const rawValue = condition.id[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n }\n\n // CASE 2: normal field → loop stays\n for (const matchMode in condition) {\n const rawValue = condition[matchMode];\n const mathcModeValue: any = matchMode\n return {\n id: currentId,\n type: FilterRuleType.RULE,\n fieldName,\n matchMode: mathcModeValue,\n value: Array.isArray(rawValue) ? rawValue : [rawValue],\n parentRule,\n children: []\n };\n }\n\n\n }\n throw new Error(ERROR_MESSAGES.INVALID_FILTER_STRUCTURE);\n}\n\n\n\n\nlet idCounter = 1;\nconst generateId = () => Date.now() + Math.floor(Math.random() * 1000);\n\n\nconst transformRulesToFilters = (input: any, viewData: any) => {\n\n // Helper function to process individual rules\n const processRule = (rule: any) => {\n if (rule.value !== undefined && rule.value !== null) {\n\n // Ensure rule.value is always an array\n let values = typeof rule.value[0] === \"object\" ? rule.value.map((i: any) => i?.value ? i?.value : i) : rule?.value;\n if (rule.matchMode !== '$in' && rule.matchMode !== '$notIn' && rule.matchMode !== '$between' && rule.matchMode !== '$null' && rule.matchMode !== '$notNull') {\n values = values[0];\n }\n\n\n const fieldMeta = viewData?.data?.solidFieldsMetadata?.[rule.fieldName];\n const isManyToMany = fieldMeta?.type === 'relation' && fieldMeta?.relationType === 'many-to-many';\n\n\n let transformedRule;\n if (isManyToMany) {\n // For many-to-many relations, always use array format for $in/$notIn\n transformedRule = {\n [rule.fieldName]: {\n id: {\n [rule.matchMode]: values // Keep as array\n }\n }\n };\n } else {\n // Rule transformation\n transformedRule = {\n [rule.fieldName]: {\n [rule.matchMode]: values // Assuming `value` is always an array with `value` and `label`\n }\n };\n }\n\n let processedFields;\n if (rule.children && rule.children.length > 0) {\n processedFields = rule.children.map((child: any) => processRuleGroup(child)).filter((child: any) => child != null);;\n }\n if (processedFields) {\n return { ...transformedRule, processedFields }\n }\n return { ...transformedRule }\n\n }\n\n };\n\n // Helper function to process rule groups\n const processRuleGroup = (ruleGroup: any) => {\n const operator = ruleGroup.matchOperator === 'or' ? '$or' : '$and';\n const children = ruleGroup.children.map((child: any) => {\n if (child.type === 'rule') {\n // Process the rule\n return processRule(child);\n } else if (child.type === 'rule_group') {\n // Process the rule group recursively\n return processRuleGroup(child);\n }\n }).filter((child: any) => child != null);\n // If no valid children, return null\n // if (children.length === 0) {\n // return null;\n // }\n\n // If only one child, return it directly without wrapping in operator\n // if (children.length === 1) {\n // return children[0];\n // }\n\n return {\n [operator]: children\n };\n };\n\n\n // Start processing the root rule group\n const filterObject = processRuleGroup(input);\n\n if (!filterObject) {\n return {};\n }\n\n function liftProcessedFields(filters: any) {\n if (!filters || typeof filters !== 'object') return filters;\n\n const processArray = (arr: any) => {\n let newArr = [];\n for (let obj of arr) {\n if (obj && obj.processedFields) {\n let processed: any = processArray(obj.processedFields); // Recursively process nested processedFields\n delete obj.processedFields;\n newArr.push(obj, ...processed);\n } else {\n newArr.push(obj);\n }\n\n for (let key in obj) {\n if (Array.isArray(obj[key])) {\n obj[key] = processArray(obj[key]);\n }\n }\n }\n return newArr;\n }\n\n for (let key in filters) {\n if (Array.isArray(filters[key])) {\n filters[key] = processArray(filters[key]);\n }\n }\n\n return filters;\n }\n\n\n return liftProcessedFields(filterObject)\n\n}\n\n\ntype GroupedType = {\n values: string[];\n searchField: any;\n matchMode: string;\n}\n\n// Build nested condition for relation fields\nfunction buildNestedCondition(path: string, operatorKey: string, value: any) {\n const keys = path.split(\".\").filter(Boolean);\n const leaf = { [operatorKey]: value };\n return keys.reduceRight((acc, key) => ({ [key]: acc }), leaf);\n}\n\nconst tranformSearchToFilters = (input: any) => {\n if (!input || !input.$and) return input;\n\n const grouped: Record<string, GroupedType> = {};\n\n input.$and.forEach(({ fieldName, value, searchField, matchMode }: any) => {\n const val = Array.isArray(value) && value.length === 1 ? value[0] : value;\n\n if (!grouped[fieldName]) {\n grouped[fieldName] = { values: [], searchField: searchField || \"\", matchMode: matchMode || \"$containsi\" };\n }\n\n if (Array.isArray(val)) {\n grouped[fieldName]?.values.push(...val);\n } else {\n grouped[fieldName]?.values.push(val);\n }\n });\n\n // return {\n // $and: Object.entries(grouped).map(([fieldName, values]) => ({\n // [fieldName]: {\n // $containsi: values.length === 1 ? values[0] : values\n // }\n // }))\n // };\n\n const andFilters: any[] = [];\n\n Object.entries(grouped).forEach(([fieldName, value]) => {\n\n const isNested = value.searchField ? value.searchField.includes(\".\") : false;\n\n if (isNested) {\n\n // NESTED: use $eq and expand dot-notation into nested objects\n if (value.values.length === 1) {\n andFilters.push(buildNestedCondition(value.searchField, value.matchMode, value.values[0]));\n } else {\n andFilters.push({\n $or: value.values.map(v => buildNestedCondition(value.searchField, value.matchMode, v)),\n });\n }\n } else {\n\n if (value.values.length === 1) {\n andFilters.push({\n [fieldName]: {\n $containsi: value.values[0]\n }\n });\n } else {\n andFilters.push({\n $or: value.values.map((v) => ({\n [fieldName]: { $containsi: v }\n }))\n });\n }\n }\n });\n\n return {\n $and: andFilters\n };\n}\n\nexport const mergeSearchAndCustomFilters = (transformedFilter: any, newFilter: any, transformedFilterName: string, newFilterName: string) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (transformedFilter && Object.keys(transformedFilter).length > 0) {\n filters[transformedFilterName] = transformedFilter;\n }\n if (newFilter && Object.keys(newFilter).length > 0) {\n filters[newFilterName] = newFilter;\n }\n\n // Return the combined filters object\n return filters;\n}\n\n\nexport const mergeAllDiffFilters = (customFilter: any, searchFilter: any, savedFilter: any, preDefinedFilter?: any, groupingRules?: GroupingRule[], aggregationRules?: AggregationRule[]) => {\n const filters: any = {};\n\n // Add only non-null filters\n if (customFilter && Object.keys(customFilter).length > 0) {\n filters[\"custom_filter_predicate\"] = customFilter;\n }\n if (searchFilter && Object.keys(searchFilter).length > 0) {\n filters[\"search_predicate\"] = searchFilter;\n }\n if (savedFilter && Object.keys(savedFilter).length > 0) {\n filters[\"saved_filter_predicate\"] = savedFilter;\n }\n if (preDefinedFilter && Object.keys(preDefinedFilter).length > 0) {\n filters[\"predefined_search_predicate\"] = preDefinedFilter;\n }\n if (groupingRules && Object.keys(groupingRules).length > 0) {\n filters[\"grouping_rules\"] = groupingRules;\n }\n if (aggregationRules && Object.keys(aggregationRules).length > 0) {\n filters[\"aggregation_rules\"] = aggregationRules;\n }\n // Return the combined filters object\n return filters;\n}\n\nconst SavedFilterList = ({ savedfilter, activeSavedFilter, applySavedFilter, openSavedCustomFilter, setSavedFilterTobeDeleted, setIsDeleteSQDialogVisible, isFocused, onMouseEnter }: any) => {\n const isActive = Number(activeSavedFilter) == savedfilter.id;\n\n return (\n <div className=\"solid-saved-filter-item\" onMouseEnter={onMouseEnter}>\n <div className=\"solid-saved-filter-main-wrap\">\n <SolidButton\n variant=\"ghost\"\n size=\"sm\"\n className={`solid-saved-filter-main w-full ${isActive ? \"is-active\" : \"\"} ${isFocused ? \"solid-search-overlay-option-active\" : \"\"}`}\n onClick={() => applySavedFilter(savedfilter)}\n title={savedfilter?.description}\n >\n {savedfilter.name}\n </SolidButton>\n </div>\n <div className=\"solid-saved-filter-actions\">\n {savedfilter.isSeeded !== true &&\n <>\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-saved-filter-icon-btn\"\n onClick={() => openSavedCustomFilter(savedfilter)}\n >\n <Pencil size={14} />\n </SolidButton>\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n className=\"solid-saved-filter-icon-btn is-danger\"\n onClick={() => {\n setSavedFilterTobeDeleted(savedfilter.id),\n setIsDeleteSQDialogVisible(true);\n }}\n >\n <Trash2 size={14} />\n </SolidButton>\n </>\n }\n\n </div>\n </div>\n )\n}\n\nconst replacePlaceholders = (obj: any, searchValue: string): any => {\n if (typeof obj === 'string') {\n return obj.replace(/\\{\\{search\\}\\}/g, searchValue);\n }\n if (Array.isArray(obj)) {\n return obj.map(item => replacePlaceholders(item, searchValue));\n }\n if (obj && typeof obj === 'object') {\n const newObj: any = {};\n for (const key in obj) {\n newObj[key] = replacePlaceholders(obj[key], searchValue);\n }\n return newObj;\n }\n return obj;\n};\n\n\nconst extractChips = (node: any): any[] => {\n if (!node) return [];\n\n // If node has $and\n if (node.$and && Array.isArray(node.$and)) {\n return node.$and.flatMap(extractChips);\n }\n\n // If node has $or\n if (node.$or && Array.isArray(node.$or)) {\n return node.$or.flatMap(extractChips);\n }\n\n // Leaf condition\n const field = Object.keys(node)[0];\n const operatorObj = node[field];\n\n // ✅ Normal case\n if (operatorObj?.$containsi) {\n return [{\n columnName: field,\n value: operatorObj.$containsi,\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: field,\n matchMode: \"$containsi\"\n }];\n }\n // ✅ Nested case (like city.name)\n else if (typeof operatorObj === \"object\") {\n const nestedField = Object.keys(operatorObj)[0];\n const nestedOperatorObj = operatorObj[nestedField];\n\n const operatorKey = nestedOperatorObj\n ? Object.keys(nestedOperatorObj).find(k => k.startsWith(\"$\"))\n : null;\n\n if (operatorKey) {\n return [{\n columnName: field,\n value: nestedOperatorObj[operatorKey],\n columnDisplayName: field.charAt(0).toUpperCase() + field.slice(1),\n searchField: `${field}.${nestedField}`,\n matchMode: operatorKey\n }];\n }\n }\n\n return [];\n};\n\n\n\ntype RelationCache = Map<string, { label: string; value: number }>;\n\n\n\nexport const SolidGlobalSearchElement = forwardRef(({ viewData, viewType, handleApplyCustomFilter, showSaveFilterPopup, setShowSaveFilterPopup, filterPredicates }: any, ref) => {\n type OverlayOption =\n | { id: string; kind: \"field\"; field: any }\n | { id: string; kind: \"predefined\"; predefined: any }\n | { id: string; kind: \"saved\"; saved: any };\n type ManagedChipItem = {\n id: string;\n type: \"saved\" | \"search\" | \"predefined\" | \"custom\" | \"grouping\";\n label: string;\n onRemove: () => void;\n onOpen?: () => void;\n };\n\n const defaultState: FilterRule[] = [\n {\n id: 1,\n type: FilterRuleType.RULE_GROUP,\n matchOperator: FilterOperator.OR,\n parentRule: null,\n children: [\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n },\n {\n id: Date.now() + getRandomInt(1, 500),\n type: FilterRuleType.RULE,\n fieldName: null,\n matchMode: null,\n value: null,\n parentRule: 1,\n children: []\n }\n ]\n }\n ];\n\n const defaultAggregationRules: AggregationRule[] = [\n {\n id: 1,\n operator: \"count\",\n fieldName: \"id\",\n locked: true\n }\n ];\n\n const defaultGroupingRules: GroupingRule[] = [\n { id: 1, fieldName: null, dateGrouping: null }\n ];\n\n const [initialState, setInitialState] = useState(defaultState);\n const pathname = usePathname();\n const searchableEntityLabel =\n viewData?.data?.solidView?.displayName ||\n viewData?.data?.solidView?.model?.displayName ||\n \"records\";\n\n\n const searchParams = useSearchParams() // Converts the query params to a string\n const activeSavedFilter = searchParams?.get(\"savedQuery\");\n\n const router = useRouter();\n\n const chipsRef = useRef<HTMLDivElement | null | any>(null);\n\n // filterRules is used to maintian the ui of custom filter \n // customFilter is used to maintian the transformed filter object of custom filter\n const [filterRules, setFilterRules] = useState<FilterRule[]>(initialState);\n const [customFilter, setCustomFilter] = useState<any | null>(null);\n\n const [fields, setFields] = useState<any[]>([]);\n const [searchableFields, setSearchableFields] = useState<any[]>([]);\n const [groupableFields, setGroupableFields] = useState<GroupableField[]>([]);\n\n const [groupingRules, setGroupingRules] = useState<GroupingRule[]>(defaultGroupingRules);\n const [aggregationRules, setAggregationRules] = useState<AggregationRule[]>(defaultAggregationRules);\n\n // used to show the list of predefined searches \n const [predefinedSearches, setPredefinedSearches] = useState<PredefinedSearch[]>([]);\n\n // used to open / close the custom fitler popup \n const [showGlobalSearchElement, setShowGlobalSearchElement] = useState<boolean>(false);\n\n // used to open / close the group fitler popup \n const [showGroupFilterElement, setShowGroupFilterElement] = useState<boolean>(false);\n\n\n // searchChips maintain the ui to display searched query \n // searchFilter maintain the transformed filter of the searched query \n const [searchChips, setSearchChips] = useState<{ columnName?: string; value: string }[]>([]);\n const [searchFilter, setSearchFilter] = useState<any | null>(null);\n\n // predefinedSearchChip maintain the ui to display predefined searches query \n const [predefinedSearchChip, setPredefinedSearchChip] = useState<{ name: string; value: string } | null>(null);\n\n // state to maintain the text typed in the search input box\n const [inputValue, setInputValue] = useState<string | null>(\"\");\n const [focusedIndex, setFocusedIndex] = useState(-1);\n\n // flag to prevent un necessary re renders\n const [hasSearched, setHasSearched] = useState<boolean>(false);\n\n // currentSavedFilterData is used to save the whole object of saved filter \n const [currentSavedFilterData, setCurrentSavedFilterData] = useState<any>();\n const [currentSavedFilterQuery, setCurrentSavedFilterQuery] = useState<any>();\n const [currentSavedFilterRules, setCurrentSavedFilterRules] = useState<any>();\n const [showSavedFilterComponent, setShowSavedFilterComponent] = useState<boolean>(false);\n\n\n const [savedFilterTobeDeleted, setSavedFilterTobeDeleted] = useState<any>();\n const [isDeleteSQDialogVisible, setIsDeleteSQDialogVisible] = useState<boolean>(false);\n const [savedFilterQueryString, setSavedFilterQueryString] = useState<string>();\n const [showOverlay, setShowOverlay] = useState(false);\n const overlayRef = useRef<HTMLDivElement | null>(null);\n const [showChipManager, setShowChipManager] = useState(false);\n const chipManagerRef = useRef<HTMLDivElement | null>(null);\n const chipManagerTriggerRef = useRef<HTMLButtonElement | null>(null);\n\n useEffect(() => {\n if (focusedIndex >= 0 && showOverlay) {\n const activeElement = document.querySelector(`.solid-search-overlay-option-active`);\n if (activeElement) {\n activeElement.scrollIntoView({\n block: 'nearest',\n inline: 'start'\n });\n }\n }\n }, [focusedIndex, showOverlay]);\n\n const { data: session, status } = useSession();\n const user = session?.user;\n\n const [refreshKey, setRefreshKey] = useState(0);\n\n const [predefinedSearchBaseFilter, setPredefinedSearchBaseFilter] = useState<any>(null);\n\n const [savedFilters, setSavedFilters] = useState([]);\n const [savedFiltersLoaded, setSavedFiltersLoaded] = useState(false);\n\n const entityApi = createSolidEntityApi(\"savedFilters\");\n const {\n useCreateSolidEntityMutation,\n useDeleteSolidEntityMutation,\n useGetSolidEntityByIdQuery,\n useUpdateSolidEntityMutation,\n useLazyGetSolidEntitiesQuery\n } = entityApi;\n\n const [\n createEntity,\n { isSuccess: isEntityCreateSuccess, isError: isEntityCreateError, error: entityCreateError },\n ] = useCreateSolidEntityMutation();\n\n const [\n updateEntity,\n { isSuccess: isEntityUpdateSuceess, isError: isEntityUpdateError, error: entityUpdateError },\n ] = useUpdateSolidEntityMutation();\n\n const [\n deleteEntity,\n { isSuccess: isEntityDeleteSuceess, isError: isEntityDeleteError, error: entityDeleteError },\n ] = useDeleteSolidEntityMutation();\n\n const [triggerGetSolidEntities, { data: solidEntityListViewData, isLoading: isSavedFilterLoading, error }] = useLazyGetSolidEntitiesQuery();\n\n const [savedFilterFetchDataRefreshKey, setSavedFilterFetchDataRefreshKey] = useState(0);\n\n\n\n useEffect(() => {\n const fn = async () => {\n if (!viewData?.data?.solidView?.model?.id || !viewData?.data?.solidView?.id || !user?.id) {\n return;\n }\n setSavedFiltersLoaded(false)\n const filters = {\n $or: [\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { user: { $in: [user?.id] } },\n { isPrivate: { $eq: true } }\n ]\n },\n {\n $and: [\n { model: { $in: [viewData?.data?.solidView?.model?.id] } },\n { view: { $in: [viewData?.solidView?.id] } },\n { isPrivate: { $eq: false } }\n ]\n }\n\n ]\n }\n const queryData: any = {\n offset: 0,\n limit: 10,\n filters: filters,\n populate: [\"model\", \"view\", \"user\"],\n sort: [\"id:desc\"],\n };\n const queryString = qs.stringify(queryData, { encodeValuesOnly: true });\n setSavedFilterQueryString(queryString)\n const savedFilter = await triggerGetSolidEntities(queryString).unwrap();\n\n if (savedFilter) {\n // console.log(\"savedFilter\", savedFilter);\n setSavedFilters(savedFilter?.records)\n }\n setSavedFiltersLoaded(true);\n }\n fn()\n }, [\n activeSavedFilter,\n savedFilterFetchDataRefreshKey,\n viewData?.data?.solidView?.id,\n viewData?.data?.solidView?.model?.id,\n user?.id\n ])\n\n useImperativeHandle(ref, () => ({\n clearFilter: () => {\n setFilterRules(initialState);\n },\n openGroupingDialog: () => {\n setShowOverlay(false);\n setShowGroupFilterElement(true);\n },\n openCustomFilterDialog: () => {\n setShowOverlay(false);\n setShowGlobalSearchElement(true);\n }\n }));\n\n useEffect(() => {\n const fn = async () => {\n let searchChips: any;\n let customChips: any;\n if (savedFiltersLoaded) {\n\n if (activeSavedFilter && savedFilters.length === 0) return;\n\n const queryObject = getFilterObjectFromLocalStorage();\n // const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (activeSavedFilter) {\n const currentSavedFilterId = Number(activeSavedFilter);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === currentSavedFilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n }\n }\n } else {\n setCurrentSavedFilterData(null)\n setCurrentSavedFilterQuery(null)\n }\n if (queryObject) {\n if (queryObject) {\n searchChips = queryObject?.search_predicate || null;\n customChips = queryObject?.custom_filter_predicate || null;\n }\n }\n if (searchChips) {\n setSearchFilter(searchChips);\n // const formattedChips = searchChips?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n\n const formattedChips = extractChips(searchChips);\n setSearchChips(formattedChips);\n\n }\n if (customChips && Object.keys(customChips).length !== 0) {\n setCustomFilter(customChips);\n const rules: FilterRule = transformFiltersToRules(customChips);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n const hasGroupingRules = (queryObject?.grouping_rules?.some((rule: any) => rule.fieldName !== null));\n\n if (hasGroupingRules) {\n setGroupingRules(queryObject?.grouping_rules);\n } else {\n // If no grouping rules in localStorage check layout\n const layoutGroupBy = viewData?.data?.solidView?.layout?.attrs?.groupBy;\n\n if (Array.isArray(layoutGroupBy) && layoutGroupBy.length > 0) {\n const initialGroupingRules: GroupingRule[] = layoutGroupBy.map((groupStr: string, index: number) => {\n const [fieldName, dateGrouping] = groupStr.split(\":\");\n return {\n id: Date.now() + index,\n fieldName: fieldName || null,\n dateGrouping: (dateGrouping as DateGroupingFormat) || null\n };\n });\n setGroupingRules(initialGroupingRules);\n }\n }\n\n if (queryObject?.aggregation_rules && queryObject?.aggregation_rules !== aggregationRules) {\n setAggregationRules(queryObject?.aggregation_rules);\n }\n\n\n setRefreshKey((prev) => prev + 1)\n setHasSearched(true);\n }\n }\n fn()\n }, [viewData?.data?.solidView?.id, activeSavedFilter, savedFiltersLoaded])\n\n useEffect(() => {\n const fn = async () => {\n if (filterPredicates) {\n if (filterPredicates?.custom_filter_predicate && filterPredicates?.custom_filter_predicate !== customFilter) {\n setCustomFilter(filterPredicates?.custom_filter_predicate);\n const rules: FilterRule = transformFiltersToRules(filterPredicates.custom_filter_predicate);\n const hydratedRules = await hydrateRelationRules([rules], viewData);\n setFilterRules(hydratedRules);\n }\n if (filterPredicates?.search_predicate && filterPredicates?.search_predicate !== searchFilter) {\n setSearchFilter(filterPredicates?.search_predicate);\n // const formattedChips = filterPredicates.search_predicate?.$and.map((chip: any, key: any) => {\n // const chipKey = Object.keys(chip)[0]; // Get the key, e.g., \"displayName\"\n // const chipValue = chip[chipKey]?.$containsi; // Get the value of \"$containsi\"\n // const chipdata = {\n // columnName: chipKey,\n // value: chipValue\n // };\n // return chipdata\n // }\n // );\n // setSearchChips(formattedChips);\n const formattedChips = extractChips(filterPredicates.search_predicate);\n setSearchChips(formattedChips);\n\n }\n }\n }\n fn()\n }, [filterPredicates])\n\n useEffect(() => {\n if (viewData?.data?.solidFieldsMetadata) {\n // Reset search state when switching views\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setInputValue(\"\");\n\n\n let fieldsData = viewData?.data?.solidFieldsMetadata;\n // console.log(`fiels data while rendering solid global search element: `);\n // console.log(fieldsData);\n\n const layoutChildren = viewData?.data?.solidView?.layout?.children ?? [];\n const fieldElements = extractFields(layoutChildren);\n\n\n const fieldsList = Object.entries(fieldsData ?? {}).map(([key, value]: any) => {\n const viewFieldElement = fieldElements.find(\n (f: any) => f?.attrs?.name === key\n );\n return {\n name: value.displayName,\n value: key,\n type: value.type,\n ormType: value.ormType,\n matchMode: viewFieldElement?.attrs?.searchMatchMode,\n searchField: viewFieldElement?.attrs?.searchField ?? null,\n isSearchable: viewFieldElement?.attrs?.isSearchable ?? false,\n relationType: value?.relationType ?? null,\n };\n });\n\n const filterableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"mediaSingle\":\n case \"mediaMultiple\":\n return false;\n default:\n return true;\n }\n });\n\n setFields(filterableFieldsList);\n\n const searchableFieldsList = fieldsList.filter((field: any) => {\n if (!field.isSearchable) return false;\n\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n return !!field.searchField;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n const groupableFieldsList = fieldsList.filter((field: any) => {\n switch (field.type) {\n case \"relation\":\n // Only include relation if searchField is present\n if (field.relationType === \"many-to-one\")\n return true;\n return false;\n case \"longText\":\n case \"shortText\":\n case \"selectionStatic\":\n case \"selectionDynamic\":\n case \"int\":\n case \"float\":\n case \"boolean\":\n case \"date\":\n case \"datetime\":\n return true;\n // case \"selectionStatic\":\n case \"computed\":\n return field.ormType === \"varchar\";\n default:\n return false;\n }\n });\n\n // Optionally map to a minimal structure if needed for UI\n let finalSearchableFieldsList: any = searchableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode\n }));\n\n setSearchableFields(finalSearchableFieldsList);\n\n let finalGroupableFieldsList: any = groupableFieldsList.map((field: any) => ({\n fieldName: field.value,\n displayName: field.name,\n searchField: field.searchField ?? \"\",\n matchMode: field.matchMode,\n type: field.type,\n ormType: field.ormType,\n relationType: field.relationType,\n computedFieldValueType: field.computedFieldValueType\n }));\n\n setGroupableFields(finalGroupableFieldsList)\n\n const predefinedSearchesList = viewData?.data?.solidView?.layout?.attrs?.predefinedSearches || [];\n setPredefinedSearches(predefinedSearchesList);\n }\n // used to open the \n }, [viewData])\n\n useEffect(() => {\n if (chipsRef.current) {\n const inputElement = chipsRef.current.querySelector(\"input\");\n if (inputElement) {\n inputElement.addEventListener(\"input\", (e: any) => {\n setInputValue((e.target as HTMLInputElement).value);\n });\n }\n }\n }, []);\n\n\n const handleAddChip = (columnName?: string) => {\n if (inputValue?.trim()) {\n const fallbackField = searchableFields[0]; // guaranteed object\n if (!fallbackField) return;\n // Support comma-separated values: split, trim and add as separate chips\n const values = inputValue.split(\",\").map(v => v.trim()).filter(v => v !== \"\");\n const fieldName = columnName || fallbackField.fieldName;\n const chipsToAdd = values.map(v => ({\n columnName: fieldName,\n value: v,\n columnDisplayName: fallbackField.displayName,\n searchField: fallbackField.searchField,\n matchMode: fallbackField.matchMode\n }));\n\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n };\n\n const clearCustomFilter = () => {\n setFilterRules(initialState);\n setCustomFilter(null)\n // setPredefinedSearchChip(null)\n // setPredefinedSearchBaseFilter(null)\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n }\n\n\n const transformCustomFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCustomFilter(finalCustomFilter);\n setShowGlobalSearchElement(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n }\n\n const transformSavedFilterRules = (filterRules: any) => {\n const transformedFilter = transformRulesToFilters(filterRules[0], viewData);\n\n // If there's a predefined search, merge it with the new custom filter\n let finalCustomFilter = transformedFilter;\n // if (predefinedSearchChip && predefinedSearchBaseFilter) {\n // // Combine predefined filter with new custom filter\n // finalCustomFilter = {\n // $and: [predefinedSearchBaseFilter, transformedFilter]\n // };\n // }\n setCurrentSavedFilterQuery(finalCustomFilter);\n setShowSavedFilterComponent(false);\n setHasSearched(true)\n setRefreshKey((prev) => prev + 1)\n\n\n }\n\n const applyGrouping = (groupingRules: GroupingRule[], aggregationRules: AggregationRule[]) => {\n setHasSearched(true)\n setShowGroupFilterElement(false);\n setGroupingRules(groupingRules);\n setAggregationRules(aggregationRules);\n setRefreshKey((prev) => prev + 1)\n }\n\n const openCustomFilterDialog = () => {\n setShowOverlay(false);\n setShowGlobalSearchElement(true);\n };\n\n const openGroupingDialog = () => {\n setShowOverlay(false);\n setShowGroupFilterElement(true);\n };\n\n useEffect(() => {\n if (refreshKey > 0 && hasSearched) {\n\n const formattedChips = {\n $and: searchChips.map((chip: any) => ({\n fieldName: chip.columnName,\n matchMode: chip.matchMode,\n value: [chip.value],\n searchField: chip.searchField ?? \"\",\n }))\n };\n\n\n const finalSearchFilter = tranformSearchToFilters(formattedChips);\n setSearchFilter(finalSearchFilter);\n\n let finalSavedFilter: any = currentSavedFilterQuery\n const finalPredefinedFilter = predefinedSearchBaseFilter\n\n const finalCustomFilter = customFilter\n const finalFilter = mergeAllDiffFilters(finalCustomFilter, finalSearchFilter, finalSavedFilter, finalPredefinedFilter, groupingRules, aggregationRules)\n handleApplyCustomFilter(finalFilter, true);\n setHasSearched(false)\n // }\n }\n }, [refreshKey]);\n\n\n // Handle predefined search selection\n\n const hasCustomFilterChanged = () => {\n if (!predefinedSearchChip || !customFilter || !predefinedSearchBaseFilter) {\n return false;\n }\n // Deep comparison to check if filter has changed\n return JSON.stringify(customFilter) !== JSON.stringify(predefinedSearchBaseFilter);\n };\n\n const openSavedCustomFilter = async (savedfilter: any) => {\n //Open custom filter popup \n // router.push(`?savedQuery=${savedfilter.id}`);\n // setShowGlobalSearchElement(true);\n // // dont refetch the data yet\n // const customFilter = JSON.parse(savedfilter.filterQueryJson);\n // setCustomFilter(customFilter ? customFilter : null);\n // if (customFilter) {\n // const formatedCustomChips: FilterRule = transformFiltersToRules(customFilter ? customFilter : null);\n // setFilterRules(formatedCustomChips ? [formatedCustomChips] : initialState);\n // }\n\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n const savedfilterId = savedfilter.id;\n // router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n const currentSavedFilterData: any = savedFilters.find((savedFilter: any) => savedFilter.id === savedfilterId);\n setCurrentSavedFilterData(currentSavedFilterData);\n if (currentSavedFilterData) {\n const filterJson = JSON.parse(currentSavedFilterData?.filterQueryJson);\n if (filterJson) {\n let finalSavedFilter = filterJson\n setCurrentSavedFilterQuery(finalSavedFilter)\n const rules: FilterRule = transformFiltersToRules(finalSavedFilter ? finalSavedFilter : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const deleteSavedFilter = async () => {\n // delte the saved filter with id \n await deleteEntity(savedFilterTobeDeleted);\n // triggerGetSolidEntities(savedFilterQueryString);\n let parsedSearchParams = searchParams;\n const savedQuery = parsedSearchParams?.get(\"savedQuery\");\n if (savedFilterTobeDeleted == savedQuery) {\n const urlParams = new URLSearchParams(window.location.search);\n urlParams.delete(\"savedQuery\");\n router.push(`?${urlParams.toString()}`);\n }\n setIsDeleteSQDialogVisible(false);\n setTimeout(() => {\n setSavedFilterFetchDataRefreshKey(prev => prev + 1)\n }, 500)\n }\n const handleSaveFilter = async (formValues: any) => {\n setShowSaveFilterPopup(false)\n\n try {\n if (formValues.id) {\n const filterJson = currentSavedFilterQuery;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n\n await updateEntity({ id: +formValues.id, data: formData }).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setPredefinedSearchBaseFilter(null);\n setTimeout(() => {\n router.push(`?savedQuery=${formValues.id}`);\n }, 500)\n } else {\n\n const filterJson = customFilter;\n const formData = new FormData();\n formData.append(\"name\", formValues.name);\n formData.append(\"filterQueryJson\", JSON.stringify(filterJson, null, 2));\n formData.append(\"modelId\", viewData?.data?.solidView?.model?.id);\n formData.append(\"viewId\", viewData?.data?.solidView?.id);\n formData.append(\"isPrivate\", formValues.isPrivate);\n formData.append(\"userId\", user?.id);\n const result = await createEntity(formData).unwrap();\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n\n setTimeout(() => {\n router.push(`?savedQuery=${result.data.id}`);\n }, 500)\n\n }\n } catch (error) {\n\n }\n }\n\n\n\n useEffect(() => {\n // Explicitly type the event as a MouseEvent\n function handleClickOutside(event: MouseEvent) {\n if (overlayRef.current && !overlayRef.current.contains(event.target as Node)) {\n setShowOverlay(false);\n }\n }\n if (showOverlay) {\n document.addEventListener(\"mousedown\", handleClickOutside);\n }\n return () => {\n document.removeEventListener(\"mousedown\", handleClickOutside);\n };\n }, [showOverlay]);\n\n useEffect(() => {\n function handleChipManagerClickOutside(event: MouseEvent) {\n const targetNode = event.target as Node;\n if (chipManagerRef.current?.contains(targetNode)) return;\n if (chipManagerTriggerRef.current?.contains(targetNode)) return;\n setShowChipManager(false);\n }\n\n if (showChipManager) {\n document.addEventListener(\"mousedown\", handleChipManagerClickOutside);\n }\n\n return () => {\n document.removeEventListener(\"mousedown\", handleChipManagerClickOutside);\n };\n }, [showChipManager]);\n\n const CustomChip = () => {\n // console.log(\"customFilter\", customFilter);\n const ruleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n setShowGlobalSearchElement(true)\n }\n }>\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"var(--primary-color, var(--primary))\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{ruleCount}</strong> rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={clearCustomFilter} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n\n //saved filter related code start\n\n const applySavedFilter = (savedfilter: any) => {\n\n setSearchChips([]);\n setSearchFilter(null);\n setFilterRules(initialState);\n setCustomFilter(null)\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n const currentPageUrl = window.location.pathname; // Get the current page URL\n localStorage.removeItem(currentPageUrl); // Store in local storage with the URL as the key\n // push the savedQuery=1 in url \n if (savedfilter?.id) {\n router.push(`?savedQuery=${savedfilter.id}`);\n setShowOverlay(false);\n } else {\n console.error(ERROR_MESSAGES.SAVE_FILTER_UNDEFINED_NULL);\n }\n }\n\n const removeSavedFilter = () => {\n const params = new URLSearchParams(searchParams.toString());\n setCurrentSavedFilterData(null);\n setCurrentSavedFilterQuery(null)\n if (params.has(\"savedQuery\")) {\n params.delete(\"savedQuery\");\n const newUrl = params.toString()\n ? `${pathname}?${params.toString()}`\n : pathname;\n router.push(newUrl);\n }\n }\n\n const SavedFiltersChip = () => {\n\n return (\n <li>\n <div className=\"custom-filter-chip-type\">\n <div className=\"flex align-items-center gap-2 text-base\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\n onClick={() => {\n const fn = async () => {\n if (currentSavedFilterQuery) {\n const rules: FilterRule = transformFiltersToRules(currentSavedFilterQuery ? currentSavedFilterQuery : null);\n const hydratedRules = await hydrateRelationRules(\n [rules],\n viewData\n );\n setCurrentSavedFilterRules(hydratedRules ? hydratedRules : initialState);\n setShowSavedFilterComponent(true)\n }\n }\n fn()\n }\n }\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"var(--primary-color, var(--primary))\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{currentSavedFilterData?.name}</strong></span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={removeSavedFilter} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n const removeGrouping = () => {\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n }\n\n const GroupingChip = () => {\n return (\n <li className=\"solid-global-search-chip\">\n <div className=\"flex align-items-center gap-2\">\n <div className=\"flex align-items-center gap-2\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n\n onClick={() => setShowGroupFilterElement(true)}\n >\n <rect width=\"20\" height=\"20\" rx=\"4\" fill=\"var(--primary-color, var(--primary))\" />\n <path d=\"M8.66667 15V13.3333H11.3333V15H8.66667ZM6 10.8333V9.16667H14V10.8333H6ZM4 6.66667V5H16V6.66667H4Z\"\n fill=\"white\" />\n </svg>\n <span><strong>{groupingRules.length}</strong> Grouping rules applied</span>\n </div>\n\n {/* button to clear filter */}\n <button type=\"button\" onClick={removeGrouping} style={{ cursor: \"pointer\" }} className=\"ml-1\">\n <X size={14} />\n </button>\n </div>\n </li>\n )\n };\n\n\n\n\n //saved filter related code end\n\n\n // search related code start\n\n const handleRemoveChipGroup = (columnName: string) => {\n const updatedChips = searchChips.filter(chip => chip.columnName !== columnName);\n setSearchChips(updatedChips);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n\n };\n\n const groupedSearchChips = searchChips.reduce((acc: Record<string, string[]>, chip) => {\n const key = chip.columnName;\n if (!key) return acc; // skip if undefined\n\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(chip.value);\n return acc;\n }, {});\n\n const customRuleCount =\n customFilter?.$or?.length ??\n customFilter?.$and?.length ??\n Object.keys(customFilter || {}).length;\n\n const managedChipItems = useMemo<ManagedChipItem[]>(() => {\n const items: ManagedChipItem[] = [];\n\n if (currentSavedFilterData?.name) {\n items.push({\n id: \"saved-filter\",\n type: \"saved\",\n label: `Saved: ${currentSavedFilterData.name}`,\n onRemove: () => removeSavedFilter(),\n });\n }\n\n if (predefinedSearchChip?.name && predefinedSearchChip?.value) {\n items.push({\n id: \"predefined-search\",\n type: \"predefined\",\n label: `Predefined: ${predefinedSearchChip.name} (${predefinedSearchChip.value})`,\n onRemove: () => removePredefinedSearchChip(),\n });\n }\n\n if (customFilter && customRuleCount > 0) {\n items.push({\n id: \"custom-filter\",\n type: \"custom\",\n label: `${customRuleCount} custom rules applied`,\n onRemove: () => clearCustomFilter(),\n onOpen:() => setShowGlobalSearchElement(true)\n });\n }\n\n if (groupingRules.length > 0 && groupingRules.some((r) => r.fieldName !== null)) {\n items.push({\n id: \"grouping-rules\",\n type: \"grouping\",\n label: `${groupingRules.length} grouping rules applied`,\n onRemove: () => removeGrouping(),\n onOpen:() => setShowGroupFilterElement(true)\n\n });\n }\n\n Object.entries(groupedSearchChips).forEach(([column, values]) => {\n const fieldMeta = searchableFields.find((field) => field.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n items.push({\n id: `search:${column}`,\n type: \"search\",\n label: `${columnDisplayName}: ${values.join(\" or \")}`,\n onRemove: () => handleRemoveChipGroup(column),\n });\n });\n\n return items;\n }, [\n currentSavedFilterData,\n predefinedSearchChip,\n customFilter,\n customRuleCount,\n groupingRules,\n groupedSearchChips,\n searchableFields,\n ]);\n\n const MAX_VISIBLE_CHIPS = 3;\n const visibleChipItems = managedChipItems.slice(0, MAX_VISIBLE_CHIPS);\n const hiddenChipItems = managedChipItems.slice(MAX_VISIBLE_CHIPS);\n const hiddenChipCount = hiddenChipItems.length;\n\n const clearAllAppliedChips = () => {\n if (managedChipItems.length === 0) return;\n\n if (activeSavedFilter || currentSavedFilterData) {\n removeSavedFilter();\n }\n\n setSearchChips([]);\n setSearchFilter(null);\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n setCustomFilter(null);\n setFilterRules(initialState);\n setGroupingRules(defaultGroupingRules);\n setAggregationRules(defaultAggregationRules);\n setShowChipManager(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n };\n\n useEffect(() => {\n if (managedChipItems.length === 0 && showChipManager) {\n setShowChipManager(false);\n }\n }, [managedChipItems.length, showChipManager]);\n\n\n const overlayOptions = useMemo<OverlayOption[]>(() => {\n const currentValue = inputValue?.trim() || \"\";\n const fields: OverlayOption[] = currentValue\n ? searchableFields.map((field: any) => ({\n id: `field:${field.fieldName}`,\n kind: \"field\" as const,\n field\n }))\n : [];\n const predefined: OverlayOption[] =\n currentValue && predefinedSearches?.length\n ? predefinedSearches.map((p: any, idx: number) => ({\n id: `predefined:${p.name || idx}`,\n kind: \"predefined\" as const,\n predefined: p,\n }))\n : [];\n const saved: OverlayOption[] = (savedFilters || []).map((s: any) => ({\n id: `saved:${s.id}`,\n kind: \"saved\" as const,\n saved: s,\n }));\n\n return [...fields, ...predefined, ...saved];\n }, [inputValue, searchableFields, predefinedSearches, savedFilters]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n const currentValue = inputValue?.trim() || \"\";\n\n const applyFieldOption = (value: any) => {\n const trimmed = inputValue?.trim();\n if (!trimmed) return;\n const values = trimmed.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n setShowOverlay(false);\n };\n\n if ((e.key === \"ArrowDown\" || e.key === \"ArrowUp\") && overlayOptions.length > 0) {\n e.preventDefault();\n setShowOverlay(true);\n const nextIndex =\n e.key === \"ArrowDown\"\n ? (focusedIndex + 1) % overlayOptions.length\n : (focusedIndex <= 0 ? overlayOptions.length - 1 : focusedIndex - 1);\n setFocusedIndex(nextIndex);\n return;\n }\n\n if (e.key === \"Enter\") {\n if (currentValue || focusedIndex >= 0) {\n e.preventDefault();\n const activeOption = overlayOptions[focusedIndex] || (currentValue ? overlayOptions[0] : null);\n\n if (activeOption?.kind === \"field\") {\n applyFieldOption(activeOption.field);\n } else if (activeOption?.kind === \"predefined\") {\n handlePredefinedSearch(activeOption.predefined);\n } else if (activeOption?.kind === \"saved\") {\n applySavedFilter(activeOption.saved);\n } else if (currentValue) {\n handleAddChip();\n setShowOverlay(false);\n }\n }\n } else if (e.key === \"Backspace\" && inputValue === \"\") {\n if (searchChips.length > 0) {\n setSearchChips((prev) => prev.slice(0, -1));\n } else if (customFilter) {\n setCustomFilter(null);\n setFilterRules(initialState);\n } else if (predefinedSearchChip) {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null);\n } else if (activeSavedFilter) {\n removeSavedFilter();\n }\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1);\n }\n };\n\n useEffect(() => {\n if (!showOverlay) {\n setFocusedIndex(-1);\n }\n }, [showOverlay]);\n\n const SearchChip = () => (\n <>\n {Object.entries(groupedSearchChips).map(([column, values]) => {\n const fieldMeta = searchableFields.find(f => f.fieldName === column);\n const columnDisplayName = fieldMeta?.displayName || column;\n\n return (\n <li key={column}>\n <div className=\"search-filter-chip-type\">\n <div>{columnDisplayName}</div>\n {values.map((value, index) => (\n <React.Fragment>\n {/* displayname */}\n <span key={index} className=\"custom-chip-value\">{value}\n </span>\n {index < values.length - 1 &&\n <span className=\"custom-chip-or\">or</span>\n }\n </React.Fragment>\n ))}\n {/* button to clear filter */}\n <button type=\"button\" className=\"ml-1\" style={{ cursor: \"pointer\" }} onClick={() => handleRemoveChipGroup(column)}>\n <X size={14} />\n </button>\n </div>\n </li>\n )\n })}\n </>\n );\n\n // search related code end\n\n\n // predefinedfilter related code start\n\n const handlePredefinedSearch = (predefinedSearch: any) => {\n if (!inputValue?.trim()) return;\n\n if (!predefinedSearch?.filters) {\n console.error('Invalid predefined search: missing filters', predefinedSearch);\n return;\n }\n\n try {\n // Replace {{ search }} placeholders with actual search value\n const processedFilter = replacePlaceholders(predefinedSearch.filters, inputValue.trim());\n\n // Clear all existing filters and searches\n // setSearchChips([]);\n // setSearchFilter(null);\n // setFilterRules(initialState);\n // setCustomFilter(null)\n // removeSavedFilter();\n // Set the predefined search chip\n setPredefinedSearchChip({\n name: predefinedSearch.name,\n value: inputValue.trim()\n });\n\n setPredefinedSearchBaseFilter(processedFilter);\n\n // Apply the predefined search filter as custom filter\n // setCustomFilter(processedFilter);\n\n // Clear input and close overlay\n setInputValue(\"\");\n setShowOverlay(false);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n } catch (error) {\n console.error('Error applying predefined search:', error);\n // Optionally show user-friendly error message\n }\n };\n\n\n const removePredefinedSearchChip = () => {\n setPredefinedSearchChip(null);\n setPredefinedSearchBaseFilter(null)\n setCustomFilter(null);\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n };\n\n const PredefinedSearchChip = () => (\n <li>\n <div className=\"search-filter-chip-type\">\n <div className=\"flex align-items-center gap-2\">\n <strong>{predefinedSearchChip?.name}:</strong>\n <span className=\"custom-chip-value\">{predefinedSearchChip?.value}</span>\n </div>\n {/* button to clear filter */}\n <button type=\"button\" className=\"ml-1\" style={{ cursor: \"pointer\" }} onClick={removePredefinedSearchChip}>\n <X size={14} />\n </button>\n </div>\n </li>\n );\n\n // predefinedfilter related code end\n\n return (\n <>\n <div className=\"flex justify-content-center solid-custom-filter-wrapper relative\">\n <div className=\"solid-global-search-element\">\n <ul className=\"solid-global-search-chip-list\">\n {visibleChipItems.map((chip) => (\n <li key={chip.id}>\n <div className={`search-filter-chip-type solid-chip-pill solid-chip-tone-${chip.type}`}>\n <span className=\"custom-chip-value solid-chip-pill-label\" title={chip.label}>\n {chip.label}\n </span>\n <button\n type=\"button\"\n className=\"solid-chip-pill-remove\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={chip.onRemove}\n aria-label={`Remove ${chip.label}`}\n >\n <X size={14} />\n </button>\n </div>\n </li>\n ))}\n {hiddenChipCount > 0 && (\n <li>\n <button\n type=\"button\"\n ref={chipManagerTriggerRef}\n className=\"solid-chip-manage-trigger\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setShowChipManager((prev) => !prev)}\n >\n +{hiddenChipCount} more\n </button>\n </li>\n )}\n {managedChipItems.length > 0 && hiddenChipCount === 0 && (\n <li>\n <button\n type=\"button\"\n ref={chipManagerTriggerRef}\n className=\"solid-chip-manage-trigger solid-chip-manage-trigger-secondary\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => setShowChipManager((prev) => !prev)}\n >\n Manage\n </button>\n </li>\n )}\n <li ref={chipsRef} className=\"solid-global-search-input-item\">\n <div className=\"relative solid-global-search-element-wrapper\">\n <SolidInput\n className=\"solid-global-search-input\"\n value={inputValue || \"\"}\n placeholder=\"Search.\"\n onChange={(e) => {\n setInputValue(e.target.value);\n setShowChipManager(false);\n setShowOverlay(true);\n setFocusedIndex(-1);\n }}\n onFocus={() => {\n setShowChipManager(false);\n if (inputValue?.trim()) setShowOverlay(true);\n }}\n onBlur={() => {\n // Delay so you can click buttons inside overlay\n setTimeout(() => setShowOverlay(false), 150);\n }}\n\n onKeyDown={handleKeyDown}\n />\n <SolidButton\n variant=\"outline\"\n size=\"sm\"\n onClick={() => {\n setShowChipManager(false);\n setShowOverlay(true);\n }}\n className=\"custom-filter-button solid-global-search-trigger\"\n >\n <Search size={14} />\n </SolidButton>\n </div>\n </li>\n </ul>\n </div>\n\n {showChipManager && managedChipItems.length > 0 && (\n <div ref={chipManagerRef} className=\"absolute z-5 solid-chip-manager-panel\">\n <div className=\"solid-chip-manager-header\">\n <div className=\"solid-chip-manager-title\">Applied chips ({managedChipItems.length})</div>\n <button type=\"button\" className=\"solid-chip-manager-clear-btn\" onClick={clearAllAppliedChips}>\n Clear all\n </button>\n </div>\n <div className=\"solid-chip-manager-body\">\n {managedChipItems.map((chip) => (\n <div key={`manage-${chip.id}`} className={`solid-chip-manager-item solid-chip-tone-${chip.type}`} onClick={() => {\n if (chip.id == \"custom-filter\" || chip.id == \"grouping-rules\") {\n if(chip.onOpen){\n chip.onOpen()\n }\n }\n }\n }>\n <span className=\"solid-chip-manager-item-label\" title={chip.label}>\n {chip.label}\n </span>\n <button\n type=\"button\"\n className=\"solid-chip-manager-item-remove\"\n onClick={chip.onRemove}\n aria-label={`Remove ${chip.label}`}\n >\n <X size={14} />\n </button>\n </div>\n ))}\n </div>\n </div>\n )}\n\n {showOverlay && (\n <div ref={overlayRef} className=\"absolute w-full z-5 shadow-2 solid-search-overlay-pannel\">\n <div className=\"solid-search-overlay-scroll\">\n {inputValue ? (\n <>\n <div className=\"custom-filter-search-options solid-search-overlay-section px-3 py-1 flex flex-column\">\n <h6 className=\"my-1 solid-search-overlay-heading solid-search-overlay-section-title solid-search-overlay-heading-with-icon\">\n <Search size={13} />\n <span>Search by fields</span>\n </h6>\n {searchableFields.length > 0 ? (\n searchableFields.map((value: any, index: number) => {\n return (\n <SolidButton\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={`flex gap-1 text-color solid-search-overlay-option ${focusedIndex === index ? \"solid-search-overlay-option-active\" : \"\"} justify-content-start`}\n onMouseDown={(e) => {\n e.preventDefault();\n const currentValue = inputValue?.trim();\n if (currentValue) {\n const values = currentValue.split(\",\").map((v) => v.trim()).filter((v) => v !== \"\");\n const chipsToAdd = values.map(v => ({\n columnName: value.fieldName,\n value: v,\n columnDisplayName: value.displayName,\n searchField: value.searchField,\n matchMode: value.matchMode\n }));\n setSearchChips((prev) => [...prev, ...chipsToAdd]);\n setInputValue(\"\");\n setHasSearched(true);\n setRefreshKey((prev) => prev + 1)\n setShowOverlay(false);\n }\n }}\n onMouseEnter={() => setFocusedIndex(index)}\n >\n Search <strong style={{paddingLeft:\"2px\"}}>{value.displayName}</strong> &nbsp; for:&nbsp; <span className=\"font-bold text-color\">{inputValue}</span>\n </SolidButton>\n )\n })\n ) : (\n <div className=\"solid-search-overlay-no-fields\">\n <div className=\"solid-search-overlay-no-fields-icon\">\n <SearchX size={14} />\n </div>\n <div className=\"solid-search-overlay-no-fields-text\">\n No fields configured for search.\n </div>\n </div>\n )}\n </div>\n {predefinedSearches && predefinedSearches.length > 0 && (\n <>\n <div className=\"solid-filter-dialog-sep\" />\n <div className=\"custom-filter-search-options solid-search-overlay-section px-3 py-1 flex flex-column\">\n <h6 className=\"my-1 solid-search-overlay-heading solid-search-overlay-section-title\">Predefined searches</h6>\n {predefinedSearches.map((predefinedSearch: any, index: number) => (\n <SolidButton\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={`flex flex-column align-items-start gap-1 text-color solid-search-overlay-option solid-search-overlay-option-stacked ${focusedIndex === searchableFields.length + index ? \"solid-search-overlay-option-active\" : \"\"}`}\n onMouseDown={(e) => {\n e.preventDefault();\n handlePredefinedSearch(predefinedSearch);\n }}\n onMouseEnter={() => setFocusedIndex(searchableFields.length + index)}\n >\n <div className=\"flex gap-1 align-items-center\">\n <strong>{predefinedSearch.name}:</strong>\n <span className=\"font-bold text-color\">{inputValue}</span>\n </div>\n <div className=\"text-xs\">{predefinedSearch.description}</div>\n </SolidButton>\n ))}\n </div>\n </>\n )}\n </>\n ) :\n <>\n <div className=\"p-3 solid-search-overlay-empty\">\n <div className=\"solid-search-overlay-panel-callout\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Search size={13} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-empty-title\">\n Start typing to search\n </div>\n <div className=\"solid-search-overlay-empty-subtitle\">\n Start typing in search input to see all fields on which you can search {searchableEntityLabel} by.\n </div>\n </div>\n </div>\n </div>\n <div className=\"solid-filter-dialog-sep\" />\n </>\n }\n {savedFilters.length > 0 &&\n <>\n <div className=\"p-3 solid-search-overlay-section\">\n <div className=\"solid-search-overlay-panel-callout solid-search-overlay-panel-callout-compact\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Bookmark size={13} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <p className=\"solid-search-overlay-heading solid-search-overlay-section-title\">Saved filters</p>\n <div className=\"solid-search-overlay-empty-subtitle\">\n Reusable filter sets available for this view.\n </div>\n </div>\n </div>\n <div className=\"flex flex-column solid-search-overlay-saved-list\">\n {savedFilters.map((savedfilter: any, index: number) => (\n <SavedFilterList\n key={savedfilter.id}\n savedfilter={savedfilter}\n activeSavedFilter={activeSavedFilter}\n applySavedFilter={applySavedFilter}\n openSavedCustomFilter={openSavedCustomFilter}\n setSavedFilterTobeDeleted={setSavedFilterTobeDeleted}\n setIsDeleteSQDialogVisible={setIsDeleteSQDialogVisible}\n isFocused={overlayOptions[focusedIndex]?.id === `saved:${savedfilter.id}`}\n onMouseEnter={() => {\n const optIndex = overlayOptions.findIndex(o => o.id === `saved:${savedfilter.id}`);\n if (optIndex !== -1) setFocusedIndex(optIndex);\n }}\n />\n ))}\n </div>\n </div>\n </>\n }\n </div>\n\n <div className=\"solid-search-overlay-footer\">\n <button\n type=\"button\"\n className=\"px-3 py-2 flex flex-column solid-search-overlay-footer-action\"\n onClick={openCustomFilterDialog}\n >\n <div className=\"solid-search-overlay-footer-action-main\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Filter size={14} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-footer-title solid-search-overlay-section-title\">\n Click here to apply custom filters\n </div>\n <div className=\"solid-search-overlay-footer-subtitle\">\n Use custom filters to apply conditions on any field using any operator.\n </div>\n </div>\n </div>\n </button>\n {viewType === \"tree\" && (\n <button\n type=\"button\"\n className=\"px-3 py-2 flex flex-column solid-search-overlay-footer-action solid-search-overlay-footer-action-secondary\"\n onClick={openGroupingDialog}\n >\n <div className=\"solid-search-overlay-footer-action-main\">\n <div className=\"solid-search-overlay-panel-callout-icon\">\n <Plus size={14} />\n </div>\n <div className=\"solid-search-overlay-panel-callout-copy\">\n <div className=\"solid-search-overlay-footer-title solid-search-overlay-section-title\">\n Click here to do custom grouping\n </div>\n <div className=\"solid-search-overlay-footer-subtitle\">\n Configure grouping rules and aggregations for the tree view.\n </div>\n </div>\n </div>\n </button>\n )}\n </div>\n </div>\n )\n }\n <SolidDialog open={showGlobalSearchElement} onOpenChange={setShowGlobalSearchElement} className=\"solid-global-search-filter solid-filter-dialog-shell\" style={{ width: \"min(960px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Add Custom Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Apply conditions on any field with operators.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={filterRules} setFilterRules={setFilterRules} transformFilterRules={transformCustomFilterRules} closeDialog={() => setShowGlobalSearchElement(false)}></FilterComponent>\n }\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog open={showGroupFilterElement} onOpenChange={setShowGroupFilterElement} className=\"solid-global-search-filter solid-filter-dialog-shell solid-filter-dialog-shell-grouping\" style={{ width: \"min(560px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Grouping</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Configure grouping and aggregation.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {groupableFields.length > 0 &&\n <GroupingComponent\n viewData={viewData}\n fields={groupableFields}\n groupingRules={groupingRules}\n setGroupingRules={setGroupingRules}\n aggregationRules={aggregationRules}\n setAggregationRules={setAggregationRules}\n applyGrouping={applyGrouping}\n closeDialog={() => setShowGroupFilterElement(false)}\n ></GroupingComponent>\n }\n </SolidDialogBody>\n </SolidDialog >\n <SolidDialog open={showSavedFilterComponent} onOpenChange={setShowSavedFilterComponent} className=\"solid-global-search-filter solid-filter-dialog-shell\" style={{ width: \"min(960px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Saved Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Review and refine the saved filter conditions.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n {fields.length > 0 &&\n <FilterComponent viewData={viewData} fields={fields} filterRules={currentSavedFilterRules} setFilterRules={setCurrentSavedFilterRules} transformFilterRules={transformSavedFilterRules} closeDialog={() => setShowSavedFilterComponent(false)}></FilterComponent>\n }\n </SolidDialogBody>\n </SolidDialog>\n <SolidDialog open={showSaveFilterPopup} onOpenChange={setShowSaveFilterPopup} className=\"solid-custom-filter-dialog solid-save-filter-dialog\" style={{ width: \"min(420px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader className=\"solid-filter-dialog-head\">\n <div>\n <SolidDialogTitle className=\"solid-filter-dialog-title m-0\">Save Custom Filter</SolidDialogTitle>\n <SolidDialogDescription className=\"solid-filter-dialog-subtitle m-0\">Name this filter so you can reuse it later.</SolidDialogDescription>\n </div>\n <SolidDialogClose className=\"solid-filter-dialog-close\" />\n </SolidDialogHeader>\n <SolidDialogSeparator className=\"solid-filter-dialog-sep\" />\n <SolidDialogBody className=\"solid-filter-dialog-body\">\n <SolidSaveCustomFilterForm currentSavedFilterData={currentSavedFilterData} handleSaveFilter={handleSaveFilter} closeDialog={() => setShowSaveFilterPopup(false)}></SolidSaveCustomFilterForm>\n </SolidDialogBody>\n </SolidDialog>\n\n <SolidDialog open={isDeleteSQDialogVisible} onOpenChange={setIsDeleteSQDialogVisible} className=\"solid-confirm-dialog\" style={{ width: \"min(420px, calc(100vw - 2rem))\" }}>\n <SolidDialogHeader>\n <div>\n <SolidDialogTitle>Confirm Delete</SolidDialogTitle>\n <SolidDialogDescription>Are you sure you want to delete the {currentSavedFilterData?.name} saved query?</SolidDialogDescription>\n </div>\n <SolidDialogClose />\n </SolidDialogHeader>\n <SolidDialogSeparator />\n <SolidDialogFooter className=\"justify-content-center\">\n <SolidButton variant=\"destructive\" size=\"sm\" onClick={deleteSavedFilter}>\n <Check size={14} />\n Yes\n </SolidButton>\n <SolidButton variant=\"outline\" size=\"sm\" onClick={() => setIsDeleteSQDialogVisible(false)}>\n <X size={14} />\n No\n </SolidButton>\n </SolidDialogFooter>\n </SolidDialog>\n </div >\n </>\n )\n});\n"]}