@redsift/table 11.6.0-muiv5-alpha.14 → 11.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_internal/BasePopper.js +2 -2
- package/_internal/ControlledPagination.js +32 -24
- package/_internal/ControlledPagination.js.map +1 -1
- package/_internal/DataGrid2.js +64 -80
- package/_internal/DataGrid2.js.map +1 -1
- package/_internal/GridToolbarFilterSemanticField2.js +12 -12
- package/_internal/GridToolbarFilterSemanticField2.js.map +1 -1
- package/_internal/Portal.js +1 -1
- package/_internal/StatefulDataGrid.js +1 -1
- package/_internal/StatefulDataGrid2.js +1904 -238
- package/_internal/StatefulDataGrid2.js.map +1 -1
- package/_internal/TextCell2.js +1 -1
- package/_internal/Toolbar2.js +3 -3
- package/_internal/Toolbar2.js.map +1 -1
- package/_internal/ToolbarWrapper2.js +11 -17
- package/_internal/ToolbarWrapper2.js.map +1 -1
- package/_internal/_rollupPluginBabelHelpers.js +1 -1
- package/_internal/useControlledDatagridState.js +24 -1831
- package/_internal/useControlledDatagridState.js.map +1 -1
- package/index.d.ts +82 -79
- package/index.js +48 -3
- package/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatefulDataGrid2.js","sources":["../../src/utils/localStorage.ts","../../src/utils/urlLocalStorageSync.ts","../../src/hooks/useFetchState.tsx","../../src/hooks/useTableStates.tsx","../../src/hooks/useStatefulTable.tsx","../../src/components/StatefulDataGrid/StatefulDataGrid.tsx"],"sourcesContent":["export const PAGINATION_MODEL_KEY = 'paginationModel';\nexport const FILTER_MODEL_KEY = 'filterModel';\nexport const SORT_MODEL_KEY = 'sortModel';\nexport const VISIBILITY_MODEL_KEY = 'visibilityModel';\nexport const PINNED_COLUMNS = 'pinnedColumns';\nexport const DIMENSION_MODEL_KEY = 'dimension';\nexport const FILTER_SEARCH_KEY = 'searchModel';\nexport const CATEGORIES = [\n PAGINATION_MODEL_KEY,\n FILTER_MODEL_KEY,\n SORT_MODEL_KEY,\n VISIBILITY_MODEL_KEY,\n DIMENSION_MODEL_KEY,\n FILTER_SEARCH_KEY,\n PINNED_COLUMNS,\n] as const;\n\nexport type Category = (typeof CATEGORIES)[number];\n\nexport const buildStorageKey = ({ id, version, category }: { id: string; version: number; category: Category }) => {\n return `${id}:${version}:${category}` as const;\n};\n\nexport const clearPreviousVersionStorage = (id: string, previousLocalStorageVersions: number[]): void => {\n for (const version of previousLocalStorageVersions) {\n const keysToDelete = [\n buildStorageKey({\n id,\n version,\n category: PAGINATION_MODEL_KEY,\n }),\n buildStorageKey({ id, version, category: SORT_MODEL_KEY }),\n buildStorageKey({\n id,\n version,\n category: FILTER_MODEL_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: VISIBILITY_MODEL_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: PINNED_COLUMNS,\n }),\n buildStorageKey({\n id,\n version,\n category: FILTER_SEARCH_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: DIMENSION_MODEL_KEY,\n }),\n ];\n\n for (const keyToDelete of keysToDelete) {\n try {\n window.localStorage.removeItem(keyToDelete);\n } catch (e) {\n // Ignore\n }\n }\n }\n};\n","import {\n GridColDef,\n GridFilterModel,\n GridColumnVisibilityModel,\n GridSortModel,\n GridLinkOperator,\n GridFilterItem,\n GridSortItem,\n GridPinnedColumns,\n} from '@mui/x-data-grid-pro';\nimport { DataGridProps } from '../components/DataGrid';\nimport { operatorList } from './operators';\nimport {\n ExtendedGridFilterItem,\n ExtendedGridFilterModel,\n ExtendedGridPaginationModel,\n} from '../hooks/useStatefulTable';\nimport { GridInitialStatePro } from '@mui/x-data-grid-pro/models/gridStatePro';\n\ntype OperatorType = 'string' | 'number' | 'date' | 'dateTime' | 'boolean' | 'singleSelect';\n\ntype OperatorValue = string | string[];\n\n// reference value: https://www.w3schools.com/tags/ref_urlencode.ASP\nconst DECODER: Record<string, string> = {\n '%20': ' ',\n '%26': '&',\n '%3D': '=',\n '%3F': '?',\n '%5B': '[',\n '%5D': ']',\n '%2C': ',',\n '%3C': '<',\n '%3E': '>',\n '%21': '!',\n '%22': '\"',\n};\n\nconst ENCODER = {\n ' ': '%20',\n '&': '%26',\n '=': '%3D',\n '?': '%3F',\n '[': '%5B',\n ']': '%5D',\n ',': '%2C',\n '<': '%3C',\n '>': '%3E',\n '!': '%21',\n '\"': '%22',\n} as const;\n\nexport const decodeValue = (value: string): OperatorValue => {\n if (value === '') {\n return '';\n }\n\n const re = new RegExp(\n Object.keys(DECODER).reduce((acc, curr) => `${acc}|${curr}`),\n 'g'\n );\n // decodeValue for lists:\n if (value.startsWith('list[')) {\n const arrayValues = value.split('[')[1].split(']')[0];\n const arrayList = arrayValues\n .split(',')\n .map((v) => v.replace(re, (encoded) => DECODER[encoded]))\n .filter((item) => item);\n return arrayList.length > 0 ? arrayList : [];\n }\n\n return value.replace(re, (encoded) => DECODER[encoded]);\n};\n\nexport const encodeValue = (value: string | undefined) => {\n if (!value) {\n return '';\n }\n\n // Array encoding for value:\n // we are representing it as list[encoded], where encoded is the list comma separated\n if (Array.isArray(value)) {\n const encodedArray = value\n .map((entry: string) => {\n return String(entry).replace(/\\s|&|=|\\?|\\[|\\]/g, (encoded) => ENCODER[encoded as keyof typeof ENCODER]);\n })\n .join(',');\n return `list[${encodedArray}]`;\n }\n\n // we might also pass integers\n const castedValue = String(value);\n\n return castedValue.replace(/\\s|&|=|\\?|\\[|\\]/g, (encoded) => ENCODER[encoded as keyof typeof ENCODER]);\n};\n\nexport const urlSearchParamsToString = (searchParams: URLSearchParams): string => {\n let searchString = '';\n for (const [key, value] of searchParams) {\n searchString = searchString + `${key}=${value}&`;\n }\n return searchString.slice(0, searchString.length - 1);\n};\n\nexport const numberOperatorEncoder: Record<string, string> = {\n '=': 'eq',\n '!=': 'ne',\n '>': 'gt',\n '>=': 'gte',\n '<': 'lt',\n '<=': 'lte',\n};\n\nexport const numberOperatorDecoder: Record<string, string> = {\n eq: '=',\n ne: '!=',\n gt: '>',\n gte: '>=',\n lt: '<',\n lte: '<=',\n};\n\nconst isOperatorValueValid = (\n columnField: string,\n operatorValue: OperatorValue,\n columns: DataGridProps['columns']\n): boolean => {\n const column = columns.find((column) => column.field === columnField);\n if (!column) {\n return false;\n }\n const columnType = (column?.type || 'string') as OperatorType;\n const operators = operatorList[columnType];\n\n if (!operators) {\n return false;\n }\n\n if ('filterOperators' in operators) {\n return !!(operators as any).filterOperators.find((op: any) =>\n columnType === 'number' && Object.keys(numberOperatorEncoder).includes(op.value)\n ? numberOperatorEncoder[op.value] === operatorValue\n : op['value'] === operatorValue\n );\n }\n return !!(operators as any).find((op: any) =>\n ['number', 'rsNumber'].includes(columnType) && Object.keys(numberOperatorEncoder).includes(op.value)\n ? numberOperatorEncoder[op.value] === operatorValue\n : op['value'] === operatorValue\n );\n};\n\nconst listOperators = [\n 'containsAnyOf',\n 'doesNotContainAnyOf',\n 'endsWithAnyOf',\n 'doesNotEndWithAnyOf',\n 'hasAnyOf',\n 'doesNotHaveAnyOf',\n 'isAnyOf',\n 'isNotAnyOf',\n 'startsWithAnyOf',\n 'doesNotStartWithAnyOf',\n];\n\n// Check if the value doesn't break\nconst isValueValid = (\n value: OperatorValue,\n columnField: string,\n columns: DataGridProps['columns'],\n operatorValue: OperatorValue\n): boolean => {\n // every field accepts undefined as value for default\n if (value === undefined || value === '') {\n return true;\n }\n\n // xxxAnyOf accepts as value only lists, and we are declearing them in the\n // URL as `list=[...]`\n if (listOperators.includes(operatorValue as string)) {\n return Array.isArray(value) || value === '';\n }\n\n // We are accepting arrays only if they are of the 'xxxAnyOf' type\n if (Array.isArray(value) && !listOperators.includes(operatorValue as string)) {\n return false;\n }\n\n const column = columns.find((column) => column.field === columnField);\n if (!column) {\n return false;\n }\n const type = column['type'] ?? 'string';\n\n // Only date and rating fail with 500s, other set themselves as undefined\n if (type !== 'date' && type !== 'rating') {\n return true;\n }\n\n // just checking that rating is a number.\n if (type === 'rating') {\n return !isNaN(Number(value));\n }\n\n // format: YYYY-MM-DD\n // just verifying that the 3 values are numbers to avoid 500s,\n // If the value is invalid the form will appear as undefined\n if (type === 'date') {\n const dateSplitted = (value as string).split('-');\n if (dateSplitted.length !== 3) {\n return false;\n }\n const [YYYY, MM, DD] = dateSplitted;\n\n return !isNaN(parseInt(YYYY)) && !isNaN(parseInt(MM)) && !isNaN(parseInt(DD));\n }\n return false;\n};\n\n/** FILTERS */\n\n// example:\n// unicodeDomain[contains]=a&unicodeDomain[contains]=dsa&logicOperator=and&tab=ignored\nexport const getFilterModelFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): ExtendedGridFilterModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n let linkOperator = GridLinkOperator.And;\n let quickFilterValues: string[] = [];\n\n const searchParams = new URLSearchParams();\n for (const [key, value] of new URLSearchParams(searchString)) {\n if (\n key.startsWith('_') &&\n ![\n '_logicOperator',\n '_sortColumn',\n '_pinnedColumnsLeft',\n '_pinnedColumnsRight',\n '_columnVisibility',\n '_pagination',\n '_quickFilterValues',\n ].includes(key)\n ) {\n searchParams.set(key, value);\n }\n\n if (key === '_logicOperator') {\n linkOperator = value as GridLinkOperator;\n }\n\n if (key === '_quickFilterValues') {\n try {\n quickFilterValues = JSON.parse(decodeURIComponent(value));\n } catch {\n quickFilterValues = [];\n }\n }\n }\n\n let id = 5000;\n const fields = columns.map((column) => column.field);\n\n let isInvalid = false;\n\n const items: ExtendedGridFilterItem[] = [];\n searchParams.forEach((value, key) => {\n if (isInvalid) {\n return;\n }\n\n const field = key.split('[')[0].slice(1); // Slice to remove the _ at the beginning\n if (!fields.includes(field)) {\n return;\n }\n\n const columnType = columns.find((column) => column.field === field)?.type;\n\n const left = key.split(']')[0];\n if (left.split('[').length < 2) {\n isInvalid = true;\n return;\n }\n\n const splitRight = key.split('[')[1].split(']')[0].split(',');\n const type = splitRight[1];\n if (type !== columnType) {\n isInvalid = true;\n return;\n }\n\n const operator = splitRight[0];\n // if the operator is not part of the valid operators invalidate the URL\n if (!isOperatorValueValid(field, operator, columns) || Array.isArray(operator)) {\n isInvalid = true;\n return;\n }\n id += 1;\n\n const decodedValue = decodeValue(value);\n if (!isValueValid(decodedValue, field, columns, operator)) {\n isInvalid = true;\n return;\n }\n\n items.push({\n columnField: field,\n operatorValue:\n ['number', 'rsNumber'].includes(columnType!) && Object.keys(numberOperatorDecoder).includes(operator)\n ? numberOperatorDecoder[operator]\n : operator,\n id,\n value: listOperators.includes(operator as string) && decodedValue === '' ? [] : decodedValue,\n type,\n });\n });\n\n // If we found some condition that results in an invalid URL,\n // return the empty filterModel (this will trigger the localStorage)\n // and will pick up the last valid search\n if (isInvalid) {\n return 'invalid';\n }\n\n return { items, linkOperator, quickFilterValues };\n};\n\nexport const getSearchParamsFromFilterModel = (filterModel: ExtendedGridFilterModel): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set('_logicOperator', filterModel['linkOperator'] || '');\n filterModel['items'].forEach((item: ExtendedGridFilterItem) => {\n const { columnField, operatorValue, value, type } = item;\n\n if (Object.keys(numberOperatorEncoder).includes(operatorValue!)) {\n searchParams.set(\n `_${columnField}[${numberOperatorEncoder[operatorValue!]},${encodeValue(type)}]`,\n encodeValue(value)\n );\n } else {\n searchParams.set(`_${columnField}[${encodeValue(operatorValue)},${encodeValue(type)}]`, encodeValue(value));\n }\n });\n\n if (filterModel.quickFilterValues?.length) {\n searchParams.set('_quickFilterValues', encodeURIComponent(JSON.stringify(filterModel.quickFilterValues)));\n }\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty FilterModel\nconst getFilterModel = (\n search: string,\n columns: DataGridProps['columns'],\n localStorageFilters: string,\n setLocalStorageFilters: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): ExtendedGridFilterModel => {\n const defaultValue =\n initialState && initialState.filter && initialState.filter.filterModel\n ? initialState.filter.filterModel\n : {\n items: [],\n linkOperator: GridLinkOperator.And,\n };\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const filterModelFromSearch = getFilterModelFromString(search, columns);\n\n if (filterModelFromSearch !== 'invalid') {\n const searchFromFilterModel = getSearchParamsFromFilterModel(filterModelFromSearch);\n const searchString = urlSearchParamsToString(searchFromFilterModel);\n if (searchString !== localStorageFilters) {\n setLocalStorageFilters(searchString);\n }\n return filterModelFromSearch;\n }\n\n const filterModelFromLocalStorage = getFilterModelFromString(localStorageFilters, columns);\n\n if (filterModelFromLocalStorage !== 'invalid') {\n return filterModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** SORT */\n\nexport const getSortingFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): GridSortModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_sortColumn');\n\n if (value === '' || value === null || value === '[]') {\n return [];\n }\n\n const fields = columns.map((column) => column.field);\n const [column, order] = value.slice(1, value.length - 1).split(',');\n\n if (fields.includes(column) && (order === 'asc' || order === 'desc')) {\n return [\n {\n field: column,\n sort: order,\n },\n ];\n }\n\n return 'invalid';\n};\n\nexport const getSearchParamsFromSorting = (sorting: GridSortItem[]): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set(\n '_sortColumn',\n sorting.length > 0 && sorting[0].sort ? `[${encodeValue(sorting[0].field)},${encodeValue(sorting[0].sort)}]` : '[]'\n );\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty SortModel\nconst getSortModel = (\n search: string,\n columns: DataGridProps['columns'],\n localStorageSorting: string,\n setLocalStorageSorting: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n) => {\n const defaultValue = initialState?.sorting?.sortModel ? initialState.sorting.sortModel : [];\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const sorting = getSortingFromString(search, columns);\n\n if (sorting !== 'invalid') {\n const searchFromSortModel = getSearchParamsFromSorting(sorting);\n const searchString = urlSearchParamsToString(searchFromSortModel);\n if (searchString !== localStorageSorting) {\n setLocalStorageSorting(searchString);\n }\n return sorting;\n }\n\n const sortModelFromLocalStorage = getSortingFromString(localStorageSorting, columns);\n\n if (sortModelFromLocalStorage !== 'invalid') {\n return sortModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** PAGINATION */\n\nexport const getPaginationFromString = (searchString: string): ExtendedGridPaginationModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_pagination');\n\n if (value === '' || value === null || value === '[]') {\n return 'invalid';\n }\n\n const pagination = value.slice(1, value.length - 1).split(',');\n const page = parseFloat(pagination[0]);\n const pageSize = parseFloat(pagination[1]);\n const direction = pagination[2];\n\n if (!Number.isNaN(page) && !Number.isNaN(pageSize) && direction && ['next', 'back'].includes(direction)) {\n return { page, pageSize, direction: direction as 'next' | 'back' };\n }\n\n return 'invalid';\n};\n\nexport const getSearchParamsFromPagination = (pagination: ExtendedGridPaginationModel): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set('_pagination', `[${pagination.page},${pagination.pageSize},${pagination.direction}]`);\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty PaginationModel\nconst getPaginationModel = (\n search: string,\n localStoragePagination: string,\n setLocalStoragePagination: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n) => {\n const defaultValue = initialState?.pagination\n ? ({ page: 0, pageSize: 25, direction: 'next', ...initialState.pagination } as ExtendedGridPaginationModel)\n : ({ page: 0, pageSize: 25, direction: 'next' } as ExtendedGridPaginationModel);\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const pagination = getPaginationFromString(search);\n\n if (pagination !== 'invalid') {\n const searchFromPaginationModel = getSearchParamsFromPagination(pagination);\n const searchString = urlSearchParamsToString(searchFromPaginationModel);\n if (searchString !== localStoragePagination) {\n setLocalStoragePagination(searchString);\n }\n return pagination;\n }\n\n const paginationModelFromLocalStorage = getPaginationFromString(localStoragePagination);\n\n if (paginationModelFromLocalStorage !== 'invalid') {\n return paginationModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** COLUMN VISIBILITY */\n\nexport const getSearchParamsFromColumnVisibility = (\n columnVisibility: GridColumnVisibilityModel,\n columns: DataGridProps['columns']\n): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const columnFields = columns.map((column) => column.field);\n\n // if column visibility model is empty, show all columns\n if (Object.keys(columnVisibility).length == 0) {\n searchParams.set('_columnVisibility', `[${columnFields.join(',')}]`);\n return searchParams;\n }\n\n const finalColumnVisibility = columns\n .filter((c) => !(c?.hideable ?? true))\n .map((c) => c.field)\n .reduce((acc, colName) => {\n return { ...acc, [colName]: true };\n }, columnVisibility);\n\n const visibleColumns = Object.entries(finalColumnVisibility)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .filter(([_, visible]) => visible)\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .map(([column, _]) => encodeValue(column));\n\n searchParams.set('_columnVisibility', `[${visibleColumns.join(',')}]`);\n return searchParams;\n};\n\nexport const getColumnVisibilityFromString = (\n notParsed: string,\n tableColumns: DataGridProps['columns']\n): GridColumnVisibilityModel | 'invalid' => {\n if (!notParsed || (notParsed.length === 1 && notParsed[0] === '?')) {\n return 'invalid';\n }\n // remove the initial ? if present\n const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;\n\n const visibility: GridColumnVisibilityModel = {};\n let exist = false;\n let visibleColumnsCount = 0;\n for (const item of parsed.split('&')) {\n // if it's not column visibility field, skip\n const fieldURL = item.split('=')[0];\n if (fieldURL !== '_columnVisibility') {\n continue;\n }\n // e.g. item = _columnVisibility[abc,def]\n const left = item.split(']')[0];\n if (left.split('[').length < 2) {\n continue;\n }\n\n const encodedValues = item.split('[')[1].split(']')[0];\n if (typeof encodedValues !== 'string') {\n continue;\n }\n\n exist = true;\n\n const columnFields = tableColumns.map((column) => column.field);\n // TODO: Add validation that , is present\n const columns = encodedValues.split(',').map((value) => decodeValue(value));\n\n // for each column, check if it's visible and add it to visibility model\n for (const column of columnFields) {\n const isColumnVisible = columns.includes(column);\n visibility[column] = isColumnVisible;\n if (isColumnVisible) {\n visibleColumnsCount += 1;\n }\n }\n }\n\n if (visibleColumnsCount === 0 && !exist) {\n return 'invalid';\n }\n\n return visibility;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty ColumnVisibilityModel (which is all columns)\n// NOTE: the `defaultHidden` is a custom field and not standard DataGrid\n// The reason is the following bug: https://github.com/mui/mui-x/issues/8407\nconst getColumnsVisibility = (\n search: string,\n columns: (GridColDef & { defaultHidden?: boolean })[],\n localStorageColumnsVisibility: string,\n setLocalStorageColumnsVisibility: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): GridColumnVisibilityModel => {\n const defaultValue: GridColumnVisibilityModel = {};\n for (const column of columns) {\n const field = column.field;\n if (initialState?.columns?.columnVisibilityModel?.[field] !== undefined) {\n defaultValue[field] = initialState.columns.columnVisibilityModel[field];\n } else {\n defaultValue[field] = column.defaultHidden !== true; // undefined will be true\n }\n }\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const columnVisibility = getColumnVisibilityFromString(search, columns);\n\n if (columnVisibility !== 'invalid') {\n const searchColumnVisibility = getSearchParamsFromColumnVisibility(columnVisibility, columns);\n\n if (searchColumnVisibility.toString() !== localStorageColumnsVisibility) {\n setLocalStorageColumnsVisibility(searchColumnVisibility.toString());\n }\n return columnVisibility;\n }\n\n const columnVisibilityFromLocalStorage = getColumnVisibilityFromString(localStorageColumnsVisibility, columns);\n\n if (columnVisibilityFromLocalStorage !== 'invalid') {\n return columnVisibilityFromLocalStorage;\n }\n\n if (initialState?.columns?.columnVisibilityModel) {\n return initialState.columns.columnVisibilityModel;\n }\n\n return defaultValue;\n};\n\nexport const getPinnedColumnsFromString = (\n notParsed: string,\n tableColumns: DataGridProps['columns']\n): PinnedColumns | 'invalid' => {\n if (!notParsed || (notParsed.length === 1 && notParsed[0] === '?')) {\n return 'invalid';\n }\n // remove the initial ? if present\n const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;\n\n const pinnedColumns: Partial<PinnedColumns> = {};\n\n for (const item of parsed.split('&')) {\n const fieldURL = item.split('=')[0];\n if (fieldURL !== '_pinnedColumnsLeft' && fieldURL !== '_pinnedColumnsRight') {\n continue;\n }\n\n const left = item.split(']')[0];\n if (left.split('[').length < 2) {\n continue;\n }\n\n const encodedValues = item.split('[')[1].split(']')[0];\n if (typeof encodedValues !== 'string') {\n continue;\n }\n\n const columnFields = [...tableColumns.map((column) => column.field), '__check__'];\n\n const columns = encodedValues\n .split(',')\n .map((value) => decodeValue(value))\n .filter((val): val is string => typeof val === 'string' && columnFields.includes(val));\n\n if (fieldURL === '_pinnedColumnsLeft') {\n pinnedColumns['left'] = columns;\n }\n if (fieldURL === '_pinnedColumnsRight') {\n pinnedColumns['right'] = columns;\n }\n }\n\n return pinnedColumns['left'] || pinnedColumns['right']\n ? {\n left: pinnedColumns['left'] || [],\n right: pinnedColumns['right'] || [],\n }\n : 'invalid';\n};\n\nexport const getSearchParamsFromPinnedColumns = (pinnedColumns: GridPinnedColumns): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const pinnedColumnLeft = pinnedColumns.left?.map((val) => encodeValue(val)) || [];\n const pinnedColumnRight = pinnedColumns.right?.map((val) => encodeValue(val)) || [];\n\n searchParams.set('_pinnedColumnsLeft', `[${pinnedColumnLeft.join(',')}]`);\n searchParams.set('_pinnedColumnsRight', `[${pinnedColumnRight.join(',')}]`);\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty ColumnVisibilityModel (which is all columns)\nconst getPinnedColumns = (\n search: string,\n columns: DataGridProps['columns'],\n localStoragePinnedColumns: string,\n setLocalStoragePinnedColumns: (pinnedColumns: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): PinnedColumns => {\n const defaultValue = initialState?.pinnedColumns\n ? {\n left: initialState?.pinnedColumns['left'] || [],\n right: initialState?.pinnedColumns['right'] || [],\n }\n : { left: [], right: [] };\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const pinnedColumns = getPinnedColumnsFromString(search, columns);\n\n if (pinnedColumns !== 'invalid') {\n const searchPinnedColumns = getSearchParamsFromPinnedColumns(pinnedColumns);\n\n if (searchPinnedColumns.toString() !== localStoragePinnedColumns) {\n setLocalStoragePinnedColumns(searchPinnedColumns.toString());\n }\n return pinnedColumns;\n }\n\n const pinnedColumnsFromLocalStorage = getPinnedColumnsFromString(localStoragePinnedColumns, columns);\n\n if (pinnedColumnsFromLocalStorage !== 'invalid') {\n return pinnedColumnsFromLocalStorage;\n }\n\n return defaultValue;\n};\n\nexport const getSearchParamsFromTab = (search: string): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const openTab = new URLSearchParams(search).get('tab');\n if (openTab) {\n searchParams.set('tab', openTab);\n }\n return searchParams;\n};\n\ntype FinalSearchInput = {\n localStorageVersion: number;\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnsVisibilityModel: GridColumnVisibilityModel;\n pinnedColumnsModel: GridPinnedColumns;\n search: string;\n columns: DataGridProps['columns'];\n};\n\nexport const getFinalSearch = ({\n search,\n localStorageVersion,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel,\n pinnedColumnsModel,\n columns,\n}: FinalSearchInput): URLSearchParams => {\n const filterModelSearch = getSearchParamsFromFilterModel(filterModel);\n const sortModelSearch = getSearchParamsFromSorting(sortModel);\n const paginationModelSearch = getSearchParamsFromPagination(paginationModel);\n const columnVisibilityModelSearch = getSearchParamsFromColumnVisibility(columnsVisibilityModel, columns);\n const pinnedColumnsModelSearch = getSearchParamsFromPinnedColumns(pinnedColumnsModel);\n const tabSearch = getSearchParamsFromTab(search);\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of new URLSearchParams(search)) {\n if (!key.startsWith('_')) {\n searchParams.set(key, value);\n }\n }\n searchParams.set('v', `${localStorageVersion}`);\n\n // Add quickFilterValues explicitly if present in filterModel\n if (filterModel.quickFilterValues && filterModel.quickFilterValues.length > 0) {\n // Encode array as JSON string to preserve all values in one param\n searchParams.set('_quickFilterValues', encodeURIComponent(JSON.stringify(filterModel.quickFilterValues)));\n }\n\n return new URLSearchParams([\n ...searchParams,\n ...filterModelSearch,\n ...sortModelSearch,\n ...paginationModelSearch,\n ...tabSearch,\n ...pinnedColumnsModelSearch,\n ...columnVisibilityModelSearch,\n ]);\n};\n\nexport type PinnedColumns = {\n left: string[];\n right: string[];\n};\n\ntype ModelsLocalStorage = {\n localStorageFilters: string;\n setLocalStorageFilters: (search: string) => void;\n localStorageSorting: string;\n setLocalStorageSorting: (search: string) => void;\n localStoragePagination: string;\n setLocalStoragePagination: (search: string) => void;\n localStorageColumnsVisibility: string;\n setLocalStorageColumnsVisibility: (search: string) => void;\n localStoragePinnedColumns: string;\n setLocalStoragePinnedColumns: (search: string) => void;\n};\n\ntype ModelsTable = {\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnVisibilityModel: GridColumnVisibilityModel;\n pinnedColumnsModel: PinnedColumns;\n};\n\n/** Return the state of the table given the URL and the local storage state */\nexport const getModelsParsedOrUpdateLocalStorage = (\n search: string,\n localStorageVersion: number,\n columns: DataGridProps['columns'],\n historyReplace: (newSearch: string) => void,\n initialState: GridInitialStatePro | undefined,\n localStorage: ModelsLocalStorage\n): ModelsTable => {\n const currentVersion = new URLSearchParams(search).get('v');\n const isNewVersion = !currentVersion || Number(currentVersion) !== localStorageVersion;\n\n const {\n localStorageFilters,\n setLocalStorageFilters,\n localStorageSorting,\n setLocalStorageSorting,\n localStoragePagination,\n setLocalStoragePagination,\n localStorageColumnsVisibility,\n setLocalStorageColumnsVisibility,\n localStoragePinnedColumns,\n setLocalStoragePinnedColumns,\n } = localStorage;\n\n const filterModel = getFilterModel(\n search,\n columns,\n localStorageFilters,\n setLocalStorageFilters,\n initialState,\n isNewVersion\n );\n const sortModel = getSortModel(\n search,\n columns,\n localStorageSorting,\n setLocalStorageSorting,\n initialState,\n isNewVersion\n );\n const paginationModel = getPaginationModel(\n search,\n localStoragePagination,\n setLocalStoragePagination,\n initialState,\n isNewVersion\n );\n const columnVisibilityModel = getColumnsVisibility(\n search,\n columns as (GridColDef & { defaultHidden?: boolean })[],\n localStorageColumnsVisibility,\n setLocalStorageColumnsVisibility,\n initialState,\n isNewVersion\n );\n const pinnedColumnsModel = getPinnedColumns(\n search,\n columns,\n localStoragePinnedColumns,\n setLocalStoragePinnedColumns,\n initialState,\n isNewVersion\n );\n\n const finalSearch = getFinalSearch({\n localStorageVersion,\n search,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel: columnVisibilityModel,\n pinnedColumnsModel,\n columns,\n });\n\n const searchString = urlSearchParamsToString(finalSearch);\n if (searchString !== search) {\n historyReplace(searchString);\n }\n\n return {\n filterModel,\n sortModel,\n paginationModel,\n columnVisibilityModel,\n pinnedColumnsModel,\n };\n};\n\nexport type DataGridModel = {\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnsModel: GridColumnVisibilityModel;\n pinnedColumnsModel: GridPinnedColumns;\n};\n\nexport const updateUrl = (\n { filterModel, sortModel, paginationModel, columnsModel: columnsVisibilityModel, pinnedColumnsModel }: DataGridModel,\n search: string,\n localStorageVersion: number,\n historyReplace: (newSearch: string) => void,\n columns: DataGridProps['columns']\n) => {\n const newSearch = getFinalSearch({\n search,\n localStorageVersion,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel,\n pinnedColumnsModel,\n columns,\n });\n\n const searchString = urlSearchParamsToString(newSearch);\n if (searchString !== search) {\n historyReplace(searchString);\n }\n};\n\n// Note: this is a comparator to sort the filters, not pure comparison\n// do not use it for equivalence (e.g. with value `3` and undefined we\n// will get 0).\nconst compareFilters = (firstFilter: GridFilterItem, secondFilter: GridFilterItem): number => {\n if (firstFilter.columnField < secondFilter.columnField) {\n return -1;\n } else if (firstFilter.columnField > secondFilter.columnField) {\n return 1;\n }\n if (firstFilter.operatorValue === undefined || secondFilter.operatorValue === undefined) {\n return 0;\n }\n if (firstFilter.operatorValue < secondFilter.operatorValue) {\n return -1;\n } else if (firstFilter.operatorValue > secondFilter.operatorValue) {\n return 1;\n }\n\n if (firstFilter.value < secondFilter.value) {\n return -1;\n } else if (firstFilter.value > secondFilter.value) {\n return 1;\n }\n\n return 0;\n};\n\nconst areFiltersEquivalent = (firstFilter: GridFilterItem, secondFilter: GridFilterItem): boolean => {\n return (\n firstFilter.columnField === secondFilter.columnField &&\n firstFilter.operatorValue === secondFilter.operatorValue &&\n firstFilter.value === secondFilter.value\n );\n};\n\nexport const areFilterModelsEquivalent = (\n filterModel: GridFilterModel,\n filterModelToMatch: GridFilterModel\n): boolean => {\n const { items, linkOperator } = filterModel;\n const { items: itemsToMatch, linkOperator: linkOperatorToMatch } = filterModelToMatch;\n\n if (linkOperator !== linkOperatorToMatch) {\n return false;\n }\n\n if (items.length !== itemsToMatch.length) {\n return false;\n }\n\n items.sort(compareFilters);\n itemsToMatch.sort(compareFilters);\n\n for (let i = 0; i < items.length; i++) {\n const filter = items[i];\n const filterToCompare = itemsToMatch[i];\n\n // compareFilters return 0 if and only if the filters have the same\n // columnField, operatorValue, and value\n if (!areFiltersEquivalent(filter, filterToCompare)) {\n return false;\n }\n }\n\n return true;\n};\n","// Get and Set data from LocalStorage WITHOUT useState\n// Useful for when you want to get and set data without\n\nimport { useCallback } from 'react';\n\n// triggering a state update and consecutive re-render\nexport const useFetchState = (defaultValue: unknown, key: string) => {\n let stickyValue = null;\n try {\n stickyValue = window.localStorage.getItem(key);\n } catch (e) {\n console.error('StatefulDataGrid: error getting item from local storage: ', e);\n }\n let parsedValue =\n stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined'\n ? JSON.parse(stickyValue)\n : defaultValue;\n\n // TODO: temporary workaround to avoid clashes when someone had sorting on the now-removed screenshot field (renamed to num_annotations)\n // Consider upgrading the Datagrid component library as the exception handling was added in this PR: https://github.com/mui-org/material-ui-x/pull/3224\n if (parsedValue instanceof Array) {\n const fields = (parsedValue || []).map((item) => item.field);\n if (fields.includes('screenshot') || fields.includes('diffs')) {\n parsedValue = defaultValue;\n }\n }\n\n const updateValue = useCallback(\n (value: unknown) => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n console.error('StatefulDataGrid: error setting item into local storage: ', e);\n }\n },\n [key]\n );\n\n return [parsedValue, updateValue];\n};\n","import {\n buildStorageKey,\n DIMENSION_MODEL_KEY,\n FILTER_SEARCH_KEY,\n PAGINATION_MODEL_KEY,\n PINNED_COLUMNS,\n SORT_MODEL_KEY,\n VISIBILITY_MODEL_KEY,\n} from '../utils/localStorage';\nimport { useFetchState } from './useFetchState';\n\nexport const useTableStates = (id: string, version: number) => {\n const [paginationModel, setPaginationModel] = useFetchState(\n '',\n buildStorageKey({ id, version, category: PAGINATION_MODEL_KEY })\n );\n\n const [sortModel, setSortModel] = useFetchState('', buildStorageKey({ id, version, category: SORT_MODEL_KEY }));\n\n const [localStorageFilters, setLocalStorageFilters] = useFetchState(\n '',\n buildStorageKey({ id, version, category: FILTER_SEARCH_KEY })\n );\n\n const [visibilityModelLocalStorage, setVisibilityModelLocalStorage] = useFetchState(\n '',\n buildStorageKey({ id, version, category: VISIBILITY_MODEL_KEY })\n );\n\n const [pinnedColumns, setPinnedColumns] = useFetchState(\n '_pinnedColumnsLeft=[]&_pinnedColumnsRight=[]',\n buildStorageKey({ id, version, category: PINNED_COLUMNS })\n );\n\n const [dimensionModel, setDimensionModel] = useFetchState(\n {},\n buildStorageKey({ id, version, category: DIMENSION_MODEL_KEY })\n );\n\n return {\n paginationModel,\n setPaginationModel,\n sortModel,\n setSortModel,\n localStorageFilters,\n setLocalStorageFilters,\n visibilityModelLocalStorage,\n setVisibilityModelLocalStorage,\n pinnedColumns,\n setPinnedColumns,\n dimensionModel,\n setDimensionModel,\n };\n};\n","import { useCallback, useEffect, useMemo } from 'react';\nimport { useTableStates } from './useTableStates';\nimport {\n GridCallbackDetails,\n GridColDef,\n GridColumnResizeParams,\n GridFilterItem,\n GridFilterModel,\n GridPinnedColumns,\n GridSortModel,\n} from '@mui/x-data-grid-pro';\nimport { clearPreviousVersionStorage } from '../utils/localStorage';\nimport { getModelsParsedOrUpdateLocalStorage, updateUrl } from '../utils/urlLocalStorageSync';\nimport { GridApiPro } from '@mui/x-data-grid-pro/models/gridApiPro';\nimport { StatefulDataGridProps } from '../components/StatefulDataGrid';\nimport { DataGridProps } from '../components/DataGrid';\n\nexport interface UseStatefulTableProps\n extends Pick<\n StatefulDataGridProps,\n | 'columns'\n | 'onColumnVisibilityModelChange'\n | 'onColumnWidthChange'\n | 'onFilterModelChange'\n | 'onPageChange'\n | 'onPageSizeChange'\n | 'onPinnedColumnsChange'\n | 'onSortModelChange'\n | 'useRouter'\n | 'localStorageVersion'\n | 'previousLocalStorageVersions'\n | 'initialState'\n >,\n Required<Pick<StatefulDataGridProps, 'apiRef'>> {\n // density?: GridDensity;\n}\n\nexport interface ExtendedGridFilterItem extends GridFilterItem {\n type?: string;\n}\n\nexport interface ExtendedGridFilterModel extends GridFilterModel {\n quickFilterValues?: string[];\n}\n\nexport interface ExtendedGridPaginationModel {\n page: number;\n pageSize: number;\n direction?: 'next' | 'back';\n}\n\nexport interface ExtendedGridApiPro extends GridApiPro {\n resetPage?: () => void;\n}\n\nexport interface UseStatefulTableReponse extends DataGridProps {}\n\nexport const useStatefulTable = (props: UseStatefulTableProps): UseStatefulTableReponse => {\n const {\n // density = 'standard',\n apiRef,\n initialState,\n columns: propsColumns,\n onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,\n onColumnWidthChange: propsOnColumnWidthChange,\n onFilterModelChange: propsOnFilterModelChange,\n onPageChange: propsOnPageChange,\n onPageSizeChange: propsOnPageSizeChange,\n onPinnedColumnsChange: propsOnPinnedColumnsChange,\n onSortModelChange: propsOnSortModelChange,\n useRouter,\n localStorageVersion = 1,\n previousLocalStorageVersions = [],\n } = props;\n\n const { search, pathname, historyReplace } = useRouter();\n\n const id = pathname;\n\n // States and setters persisted in the local storage for this table\n const {\n paginationModel,\n setPaginationModel,\n sortModel,\n setSortModel,\n localStorageFilters,\n setLocalStorageFilters,\n visibilityModelLocalStorage,\n setVisibilityModelLocalStorage,\n pinnedColumns,\n setPinnedColumns,\n dimensionModel,\n setDimensionModel,\n } = useTableStates(id, localStorageVersion);\n\n // clearing up old version keys\n useEffect(() => clearPreviousVersionStorage(id, previousLocalStorageVersions), [id, previousLocalStorageVersions]);\n\n const onColumnDimensionChange = useCallback(\n ({\n newWidth,\n field,\n }: {\n newWidth: GridColumnResizeParams['width'];\n field: GridColumnResizeParams['colDef']['field'];\n }) => {\n setDimensionModel({ ...dimensionModel, [field]: newWidth });\n },\n [dimensionModel, setDimensionModel]\n );\n\n const {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnVisibilityModel: visibilityModel,\n pinnedColumnsModel,\n } = getModelsParsedOrUpdateLocalStorage(\n search || '',\n localStorageVersion,\n propsColumns,\n historyReplace,\n initialState,\n {\n localStorageFilters,\n setLocalStorageFilters,\n localStorageSorting: sortModel,\n setLocalStorageSorting: setSortModel,\n localStoragePagination: paginationModel,\n setLocalStoragePagination: setPaginationModel,\n localStorageColumnsVisibility: visibilityModelLocalStorage,\n setLocalStorageColumnsVisibility: setVisibilityModelLocalStorage,\n localStoragePinnedColumns: pinnedColumns,\n setLocalStoragePinnedColumns: setPinnedColumns,\n }\n );\n\n const columns = useMemo(\n () =>\n propsColumns.map((column: GridColDef) => {\n column.width = dimensionModel[column.field] || column.width || 100;\n return column;\n }),\n [propsColumns, dimensionModel]\n );\n\n /** Add resetPage method to apiRef. */\n (apiRef.current as ExtendedGridApiPro).resetPage = () => {\n apiRef.current.setPage(0);\n };\n\n return {\n apiRef,\n columns,\n onFilterModelChange: (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\n const filterModel: GridFilterModel = {\n ...model,\n items: model.items.map((item) => {\n const column = apiRef.current.getColumn(item.columnField);\n (item as ExtendedGridFilterItem).type = column.type || 'string';\n return item;\n }),\n quickFilterValues: model.quickFilterValues || [],\n };\n propsOnFilterModelChange?.(filterModel, details);\n updateUrl(\n {\n filterModel: filterModel,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n filterModel: filterParsed,\n onSortModelChange: (model: GridSortModel, details: GridCallbackDetails) => {\n propsOnSortModelChange?.(model, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: model,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n sortModel: sortModelParsed,\n onPinnedColumnsChange: (pinnedColumns: GridPinnedColumns, details: GridCallbackDetails) => {\n propsOnPinnedColumnsChange?.(pinnedColumns, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumns,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n pinnedColumns: pinnedColumnsModel,\n page: paginationModelParsed.page,\n pageSize: paginationModelParsed.pageSize,\n onPageChange: (page, details) => {\n const direction = paginationModelParsed.page < page ? 'next' : 'back';\n propsOnPageChange?.(page, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: {\n page,\n pageSize: paginationModelParsed.pageSize,\n direction,\n } as ExtendedGridPaginationModel,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n onPageSizeChange: (pageSize, details) => {\n propsOnPageSizeChange?.(pageSize, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: {\n page: paginationModelParsed.page,\n pageSize,\n direction: paginationModelParsed.direction,\n } as ExtendedGridPaginationModel,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n columnVisibilityModel: visibilityModel,\n onColumnVisibilityModelChange: (columnsVisibilityModel, details) => {\n propsOnColumnVisibilityModelChange?.(columnsVisibilityModel, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: columnsVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n onColumnWidthChange: (params, event, details) => {\n propsOnColumnWidthChange?.(params, event, details);\n onColumnDimensionChange({ newWidth: params.width, field: params.colDef.field });\n },\n };\n};\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef, useState } from 'react';\nimport { ThemeProvider as MuiThemeProvider, createTheme } from '@mui/material/styles';\nimport classNames from 'classnames';\nimport { LicenseInfo } from '@mui/x-license-pro';\nimport {\n Comp,\n RedsiftColorBlueN,\n RedsiftColorNeutralWhite,\n RedsiftColorNeutralXDarkGrey,\n ThemeProvider,\n useTheme,\n} from '@redsift/design-system';\nimport {\n DataGridPro,\n GridCallbackDetails,\n gridFilteredSortedRowEntriesSelector,\n gridFilteredSortedRowIdsSelector,\n gridPaginatedVisibleSortedGridRowEntriesSelector,\n gridPaginatedVisibleSortedGridRowIdsSelector,\n GridRowParams,\n GridSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro';\n\nimport { StyledDataGrid } from '../DataGrid/styles';\nimport { SelectionStatus } from '../DataGrid/types';\nimport { Toolbar as DefaultToolbar } from '../Toolbar';\nimport { BaseIcon, BaseButton, BaseCheckbox, BasePopper } from '../BaseComponents';\nimport { ToolbarWrapper } from '../ToolbarWrapper';\nimport { onServerSideSelectionStatusChange, ServerSideControlledPagination, ControlledPagination } from '../Pagination';\n\nimport { useStatefulTable } from '../../hooks/useStatefulTable';\nimport { StatefulDataGridProps } from './types';\nimport { customColumnTypes } from '../../utils/columnTypes';\nimport { useControlledDatagridState } from '../../hooks/useControlledDatagridState';\n\nconst COMPONENT_NAME = 'DataGrid';\nconst CLASSNAME = 'redsift-datagrid';\n\nexport const StatefulDataGrid: Comp<StatefulDataGridProps, HTMLDivElement> = forwardRef((props, ref) => {\n const datagridRef = ref || useRef<HTMLDivElement>();\n\n const {\n apiRef: propsApiRef,\n autoHeight,\n className,\n columns,\n columnTypes: propsColumnTypes,\n components,\n componentsProps,\n filterModel: propsFilterModel,\n columnVisibilityModel: propsColumnVisibilityModel,\n pinnedColumns: propsPinnedColumns,\n sortModel: propsSortModel,\n page: propsPage,\n pageSize: propsPageSize,\n height: propsHeight,\n hideToolbar,\n initialState,\n isRowSelectable,\n license = process.env.MUI_LICENSE_KEY,\n localStorageVersion,\n previousLocalStorageVersions,\n onFilterModelChange: propsOnFilterModelChange,\n selectionModel: propsSelectionModel,\n onColumnWidthChange: propsOnColumnWidthChange,\n onPageChange: propsOnPageChange,\n onPageSizeChange: propsOnPageSizeChange,\n onSelectionModelChange: propsOnSelectionModelChange,\n onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,\n onPinnedColumnsChange: propsOnPinnedColumnsChange,\n onSortModelChange: propsOnSortModelChange,\n pagination,\n paginationPlacement = 'both',\n paginationProps,\n rows,\n rowsPerPageOptions,\n sx,\n theme: propsTheme,\n useRouter,\n paginationMode = 'client',\n rowCount,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const _apiRef = useGridApiRef();\n const apiRef = propsApiRef ?? _apiRef;\n const RenderedToolbar = components?.Toolbar ? components.Toolbar : DefaultToolbar;\n\n LicenseInfo.setLicenseKey(license!);\n\n const height = propsHeight ?? (autoHeight ? undefined : '500px');\n\n const {\n onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,\n onFilterModelChange: controlledOnFilterModelChange,\n onPageChange: controlledOnPageChange,\n onPageSizeChange: controlledOnPageSizeChange,\n onPinnedColumnsChange: controlledOnPinnedColumnsChange,\n onSortModelChange: controlledOnSortModelChange,\n } = useControlledDatagridState({\n initialState,\n rowsPerPageOptions,\n propsColumnVisibilityModel,\n propsFilterModel,\n propsOnColumnVisibilityModelChange,\n propsOnFilterModelChange,\n propsOnPinnedColumnsChange,\n propsOnSortModelChange,\n propsPage,\n propsPageSize,\n propsPinnedColumns,\n propsSortModel,\n propsOnPageChange,\n propsOnPageSizeChange,\n });\n\n const {\n columnVisibilityModel,\n filterModel,\n onColumnVisibilityModelChange,\n onFilterModelChange,\n onPageChange,\n onPageSizeChange,\n onPinnedColumnsChange,\n onSortModelChange,\n page,\n pageSize,\n pinnedColumns,\n sortModel,\n onColumnWidthChange,\n } = useStatefulTable({\n apiRef: apiRef!,\n initialState,\n columns,\n onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,\n onColumnWidthChange: propsOnColumnWidthChange,\n onFilterModelChange: controlledOnFilterModelChange,\n onPageChange: controlledOnPageChange,\n onPageSizeChange: controlledOnPageSizeChange,\n onPinnedColumnsChange: controlledOnPinnedColumnsChange,\n onSortModelChange: controlledOnSortModelChange,\n useRouter: useRouter!,\n localStorageVersion,\n previousLocalStorageVersions,\n });\n\n const [selectionModel, setSelectionModel] = useState(propsSelectionModel ?? []);\n useEffect(() => {\n setSelectionModel(propsSelectionModel ?? []);\n }, [propsSelectionModel]);\n\n const onSelectionModelChange = (selectionModel: GridSelectionModel, details: GridCallbackDetails) => {\n if (propsOnSelectionModelChange) {\n propsOnSelectionModelChange(selectionModel, details);\n } else {\n setSelectionModel(selectionModel);\n }\n };\n\n const selectionStatus = useRef<SelectionStatus>({\n type: 'none',\n numberOfSelectedRows: 0,\n numberOfSelectedRowsInPage: 0,\n page,\n pageSize: pageSize,\n });\n\n // in server-side pagination we want to update the selection status\n // every time we navigate between pages, resize our page or select something\n useEffect(() => {\n if (paginationMode == 'server') {\n onServerSideSelectionStatusChange(\n Array.isArray(selectionModel) ? selectionModel : [selectionModel],\n apiRef,\n selectionStatus,\n isRowSelectable,\n page!,\n pageSize!\n );\n }\n }, [selectionModel, page, pageSize]);\n\n if (!Array.isArray(rows)) {\n return null;\n }\n\n const muiTheme = useMemo(\n () =>\n createTheme({\n palette: {\n mode: theme,\n primary: { main: RedsiftColorBlueN },\n background: {\n default: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,\n paper: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,\n },\n },\n }),\n [theme]\n );\n\n return (\n <ThemeProvider value={{ theme }}>\n <MuiThemeProvider theme={muiTheme}>\n {/* <pre>{JSON.stringify(selectionStatus, null, 2)}</pre> */}\n <StyledDataGrid\n ref={datagridRef as RefObject<HTMLDivElement>}\n className={classNames(StatefulDataGrid.className, className)}\n $height={height}\n >\n <DataGridPro\n {...forwardedProps}\n apiRef={apiRef}\n columns={columns}\n columnVisibilityModel={columnVisibilityModel}\n filterModel={filterModel}\n onColumnVisibilityModelChange={onColumnVisibilityModelChange}\n onFilterModelChange={onFilterModelChange}\n onPageChange={onPageChange}\n onPageSizeChange={onPageSizeChange}\n onPinnedColumnsChange={onPinnedColumnsChange}\n onSortModelChange={onSortModelChange}\n page={page}\n pageSize={pageSize}\n pinnedColumns={pinnedColumns}\n sortModel={sortModel}\n rowsPerPageOptions={rowsPerPageOptions}\n onColumnWidthChange={onColumnWidthChange}\n initialState={initialState}\n isRowSelectable={isRowSelectable}\n pagination={pagination}\n paginationMode={paginationMode}\n keepNonExistentRowsSelected={paginationMode == 'server'}\n rows={rows}\n rowCount={rowCount!}\n autoHeight={autoHeight}\n checkboxSelectionVisibleOnly={Boolean(pagination)}\n columnTypes={{ ...customColumnTypes, ...propsColumnTypes }}\n components={{\n BaseButton,\n BaseCheckbox,\n // BaseTextField,\n BasePopper,\n ColumnFilteredIcon: (props) => <BaseIcon {...props} displayName=\"ColumnFilteredIcon\" />,\n ColumnSelectorIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSelectorIcon\" />,\n ColumnSortedAscendingIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSortedAscendingIcon\" />,\n ColumnSortedDescendingIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSortedDescendingIcon\" />,\n DensityCompactIcon: (props) => <BaseIcon {...props} displayName=\"DensityCompactIcon\" />,\n DensityStandardIcon: (props) => <BaseIcon {...props} displayName=\"DensityStandardIcon\" />,\n DensityComfortableIcon: (props) => <BaseIcon {...props} displayName=\"DensityComfortableIcon\" />,\n DetailPanelCollapseIcon: (props) => <BaseIcon {...props} displayName=\"DetailPanelCollapseIcon\" />,\n DetailPanelExpandIcon: (props) => <BaseIcon {...props} displayName=\"DetailPanelExpandIcon\" />,\n ExportIcon: (props) => <BaseIcon {...props} displayName=\"ExportIcon\" />,\n OpenFilterButtonIcon: (props) => <BaseIcon displayName=\"OpenFilterButtonIcon\" {...props} />,\n ...components,\n Toolbar: ToolbarWrapper,\n Pagination: (props) => {\n return pagination ? (\n paginationMode == 'server' ? (\n <ServerSideControlledPagination\n {...props}\n displaySelection={false}\n displayRowsPerPage={['bottom', 'both'].includes(paginationPlacement!)}\n displayPagination={['bottom', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n page={page}\n pageSize={pageSize}\n onPageChange={onPageChange}\n onPageSizeChange={onPageSizeChange}\n rowsPerPageOptions={rowsPerPageOptions as any as number[]}\n paginationProps={paginationProps}\n paginationMode={paginationMode}\n rowCount={rowCount!}\n />\n ) : (\n <ControlledPagination\n {...props}\n displaySelection={false}\n displayRowsPerPage={['bottom', 'both'].includes(paginationPlacement!)}\n displayPagination={['bottom', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n apiRef={apiRef}\n isRowSelectable={isRowSelectable}\n page={page}\n pageSize={pageSize}\n onPageChange={onPageChange}\n onPageSizeChange={onPageSizeChange}\n rowsPerPageOptions={rowsPerPageOptions as any as number[]}\n paginationProps={paginationProps}\n paginationMode={paginationMode}\n />\n )\n ) : null;\n },\n }}\n componentsProps={{\n ...componentsProps,\n toolbar: {\n hideToolbar,\n RenderedToolbar,\n filterModel,\n onFilterModelChange,\n pagination,\n paginationPlacement,\n selectionStatus,\n apiRef,\n isRowSelectable,\n page,\n pageSize,\n onPageChange,\n onPageSizeChange,\n rowsPerPageOptions,\n paginationProps,\n paginationMode,\n rowCount,\n ...componentsProps?.toolbar,\n },\n }}\n selectionModel={selectionModel}\n onSelectionModelChange={(newSelectionModel, details) => {\n if (pagination && paginationMode != 'server') {\n const selectableRowsInPage = isRowSelectable\n ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);\n const numberOfSelectableRowsInPage = selectableRowsInPage.length;\n\n const selectableRowsInTable = isRowSelectable\n ? gridFilteredSortedRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridFilteredSortedRowIdsSelector(apiRef);\n const numberOfSelectableRowsInTable = selectableRowsInTable.length;\n\n const numberOfSelectedRows = newSelectionModel.length;\n\n if (\n (selectionStatus.current.type === 'table' &&\n numberOfSelectedRows === numberOfSelectableRowsInTable - numberOfSelectableRowsInPage) ||\n (selectionStatus.current.type === 'table' &&\n numberOfSelectedRows === numberOfSelectableRowsInTable) ||\n (selectionStatus.current.type === 'page' && numberOfSelectedRows === numberOfSelectableRowsInPage)\n ) {\n setTimeout(() => {\n apiRef.current.selectRows([], true, true);\n }, 0);\n }\n\n if (\n numberOfSelectedRows === numberOfSelectableRowsInPage &&\n numberOfSelectableRowsInPage < numberOfSelectableRowsInTable\n ) {\n selectionStatus.current = {\n type: 'page',\n numberOfSelectedRows,\n };\n } else if (\n numberOfSelectedRows === numberOfSelectableRowsInTable &&\n numberOfSelectableRowsInPage < numberOfSelectableRowsInTable\n ) {\n selectionStatus.current = {\n type: 'table',\n numberOfSelectedRows,\n };\n } else if (numberOfSelectedRows > 0) {\n selectionStatus.current = {\n type: 'other',\n numberOfSelectedRows,\n };\n } else {\n selectionStatus.current = {\n type: 'none',\n numberOfSelectedRows,\n };\n }\n }\n onSelectionModelChange?.(newSelectionModel, details);\n }}\n sx={{\n ...sx,\n '.MuiDataGrid-columnHeaders': {\n flexDirection: 'column',\n alignItems: 'normal',\n },\n '.MuiDataGrid-selectedRowCount': {\n margin: 'none',\n },\n }}\n />\n </StyledDataGrid>\n </MuiThemeProvider>\n </ThemeProvider>\n );\n});\nStatefulDataGrid.className = CLASSNAME;\nStatefulDataGrid.displayName = COMPONENT_NAME;\n"],"names":["PAGINATION_MODEL_KEY","FILTER_MODEL_KEY","SORT_MODEL_KEY","VISIBILITY_MODEL_KEY","PINNED_COLUMNS","DIMENSION_MODEL_KEY","FILTER_SEARCH_KEY","CATEGORIES","buildStorageKey","_ref","id","version","category","clearPreviousVersionStorage","previousLocalStorageVersions","keysToDelete","keyToDelete","window","localStorage","removeItem","e","DECODER","ENCODER","decodeValue","value","re","RegExp","Object","keys","reduce","acc","curr","startsWith","arrayValues","split","arrayList","map","v","replace","encoded","filter","item","length","encodeValue","Array","isArray","encodedArray","entry","String","join","castedValue","urlSearchParamsToString","searchParams","searchString","key","slice","numberOperatorEncoder","numberOperatorDecoder","eq","ne","gt","gte","lt","lte","isOperatorValueValid","columnField","operatorValue","columns","column","find","field","columnType","type","operators","operatorList","filterOperators","op","includes","listOperators","isValueValid","_column$type","undefined","isNaN","Number","dateSplitted","YYYY","MM","DD","parseInt","getFilterModelFromString","linkOperator","GridLinkOperator","And","quickFilterValues","URLSearchParams","set","JSON","parse","decodeURIComponent","fields","isInvalid","items","forEach","_columns$find","left","splitRight","operator","decodedValue","push","getSearchParamsFromFilterModel","filterModel","_filterModel$quickFil","encodeURIComponent","stringify","getFilterModel","search","localStorageFilters","setLocalStorageFilters","initialState","isNewVersion","defaultValue","filterModelFromSearch","searchFromFilterModel","filterModelFromLocalStorage","getSortingFromString","get","order","sort","getSearchParamsFromSorting","sorting","getSortModel","localStorageSorting","setLocalStorageSorting","_initialState$sorting","sortModel","searchFromSortModel","sortModelFromLocalStorage","getPaginationFromString","pagination","page","parseFloat","pageSize","direction","getSearchParamsFromPagination","getPaginationModel","localStoragePagination","setLocalStoragePagination","_objectSpread","searchFromPaginationModel","paginationModelFromLocalStorage","getSearchParamsFromColumnVisibility","columnVisibility","columnFields","finalColumnVisibility","c","_c$hideable","hideable","colName","visibleColumns","entries","_","visible","_ref2","getColumnVisibilityFromString","notParsed","tableColumns","parsed","visibility","exist","visibleColumnsCount","fieldURL","encodedValues","isColumnVisible","getColumnsVisibility","localStorageColumnsVisibility","setLocalStorageColumnsVisibility","_initialState$columns3","_initialState$columns","_initialState$columns2","columnVisibilityModel","defaultHidden","searchColumnVisibility","toString","columnVisibilityFromLocalStorage","getPinnedColumnsFromString","pinnedColumns","val","right","getSearchParamsFromPinnedColumns","_pinnedColumns$left","_pinnedColumns$right","pinnedColumnLeft","pinnedColumnRight","getPinnedColumns","localStoragePinnedColumns","setLocalStoragePinnedColumns","searchPinnedColumns","pinnedColumnsFromLocalStorage","getSearchParamsFromTab","openTab","getFinalSearch","_ref3","localStorageVersion","paginationModel","columnsVisibilityModel","pinnedColumnsModel","filterModelSearch","sortModelSearch","paginationModelSearch","columnVisibilityModelSearch","pinnedColumnsModelSearch","tabSearch","getModelsParsedOrUpdateLocalStorage","historyReplace","currentVersion","finalSearch","updateUrl","_ref4","columnsModel","newSearch","compareFilters","firstFilter","secondFilter","areFiltersEquivalent","areFilterModelsEquivalent","filterModelToMatch","itemsToMatch","linkOperatorToMatch","i","filterToCompare","useFetchState","stickyValue","getItem","console","error","parsedValue","updateValue","useCallback","setItem","useTableStates","setPaginationModel","setSortModel","visibilityModelLocalStorage","setVisibilityModelLocalStorage","setPinnedColumns","dimensionModel","setDimensionModel","useStatefulTable","props","apiRef","propsColumns","onColumnVisibilityModelChange","propsOnColumnVisibilityModelChange","onColumnWidthChange","propsOnColumnWidthChange","onFilterModelChange","propsOnFilterModelChange","onPageChange","propsOnPageChange","onPageSizeChange","propsOnPageSizeChange","onPinnedColumnsChange","propsOnPinnedColumnsChange","onSortModelChange","propsOnSortModelChange","useRouter","pathname","useEffect","onColumnDimensionChange","newWidth","filterParsed","sortModelParsed","paginationModelParsed","visibilityModel","useMemo","width","current","resetPage","setPage","model","details","getColumn","state","params","event","colDef","COMPONENT_NAME","CLASSNAME","StatefulDataGrid","forwardRef","ref","datagridRef","useRef","propsApiRef","autoHeight","className","columnTypes","propsColumnTypes","components","componentsProps","propsFilterModel","propsColumnVisibilityModel","propsPinnedColumns","propsSortModel","propsPage","propsPageSize","height","propsHeight","hideToolbar","isRowSelectable","license","process","env","MUI_LICENSE_KEY","selectionModel","propsSelectionModel","onSelectionModelChange","propsOnSelectionModelChange","paginationPlacement","paginationProps","rows","rowsPerPageOptions","sx","theme","propsTheme","paginationMode","rowCount","forwardedProps","_objectWithoutProperties","_excluded","useTheme","_apiRef","useGridApiRef","RenderedToolbar","Toolbar","DefaultToolbar","LicenseInfo","setLicenseKey","controlledOnColumnVisibilityModelChange","controlledOnFilterModelChange","controlledOnPageChange","controlledOnPageSizeChange","controlledOnPinnedColumnsChange","controlledOnSortModelChange","useControlledDatagridState","setSelectionModel","useState","selectionStatus","numberOfSelectedRows","numberOfSelectedRowsInPage","onServerSideSelectionStatusChange","muiTheme","createTheme","palette","mode","primary","main","RedsiftColorBlueN","background","default","RedsiftColorNeutralXDarkGrey","RedsiftColorNeutralWhite","paper","React","createElement","ThemeProvider","MuiThemeProvider","StyledDataGrid","classNames","$height","DataGridPro","_extends","keepNonExistentRowsSelected","checkboxSelectionVisibleOnly","Boolean","customColumnTypes","BaseButton","BaseCheckbox","BasePopper","ColumnFilteredIcon","BaseIcon","displayName","ColumnSelectorIcon","ColumnSortedAscendingIcon","ColumnSortedDescendingIcon","DensityCompactIcon","DensityStandardIcon","DensityComfortableIcon","DetailPanelCollapseIcon","DetailPanelExpandIcon","ExportIcon","OpenFilterButtonIcon","ToolbarWrapper","Pagination","ServerSideControlledPagination","displaySelection","displayRowsPerPage","displayPagination","ControlledPagination","toolbar","newSelectionModel","selectableRowsInPage","gridPaginatedVisibleSortedGridRowEntriesSelector","row","gridPaginatedVisibleSortedGridRowIdsSelector","numberOfSelectableRowsInPage","selectableRowsInTable","gridFilteredSortedRowEntriesSelector","gridFilteredSortedRowIdsSelector","numberOfSelectableRowsInTable","setTimeout","selectRows","flexDirection","alignItems","margin"],"mappings":";;;;;;;;;;;;AAAO,MAAMA,oBAAoB,GAAG,kBAAiB;AAC9C,MAAMC,gBAAgB,GAAG,cAAa;AACtC,MAAMC,cAAc,GAAG,YAAW;AAClC,MAAMC,oBAAoB,GAAG,kBAAiB;AAC9C,MAAMC,cAAc,GAAG,gBAAe;AACtC,MAAMC,mBAAmB,GAAG,YAAW;AACvC,MAAMC,iBAAiB,GAAG,cAAa;MACjCC,UAAU,GAAG,CACxBP,oBAAoB,EACpBC,gBAAgB,EAChBC,cAAc,EACdC,oBAAoB,EACpBE,mBAAmB,EACnBC,iBAAiB,EACjBF,cAAc,EACN;AAIGI,MAAAA,eAAe,GAAGC,IAAA,IAAoF;EAAA,IAAnF;IAAEC,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAAA;AAA8D,GAAC,GAAAH,IAAA,CAAA;AAC5G,EAAA,OAAQ,GAAEC,EAAG,CAAA,CAAA,EAAGC,OAAQ,CAAA,CAAA,EAAGC,QAAS,CAAC,CAAA,CAAA;AACvC,EAAC;MAEYC,2BAA2B,GAAGA,CAACH,EAAU,EAAEI,4BAAsC,KAAW;AACvG,EAAA,KAAK,MAAMH,OAAO,IAAIG,4BAA4B,EAAE;AAClD,IAAA,MAAMC,YAAY,GAAG,CACnBP,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEZ,oBAAAA;KACX,CAAC,EACFQ,eAAe,CAAC;MAAEE,EAAE;MAAEC,OAAO;AAAEC,MAAAA,QAAQ,EAAEV,cAAAA;KAAgB,CAAC,EAC1DM,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEX,gBAAAA;KACX,CAAC,EACFO,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAET,oBAAAA;KACX,CAAC,EACFK,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAER,cAAAA;KACX,CAAC,EACFI,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEN,iBAAAA;KACX,CAAC,EACFE,eAAe,CAAC;MACdE,EAAE;MACFC,OAAO;AACPC,MAAAA,QAAQ,EAAEP,mBAAAA;AACZ,KAAC,CAAC,CACH,CAAA;AAED,IAAA,KAAK,MAAMW,WAAW,IAAID,YAAY,EAAE;MACtC,IAAI;AACFE,QAAAA,MAAM,CAACC,YAAY,CAACC,UAAU,CAACH,WAAW,CAAC,CAAA;OAC5C,CAAC,OAAOI,CAAC,EAAE;AACV;AAAA,OAAA;AAEJ,KAAA;AACF,GAAA;AACF;;AC5CA;AACA,MAAMC,OAA+B,GAAG;AACtC,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAG;AACV,EAAA,KAAK,EAAE,GAAA;AACT,CAAC,CAAA;AAED,MAAMC,OAAO,GAAG;AACd,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAK;AACV,EAAA,GAAG,EAAE,KAAA;AACP,CAAU,CAAA;AAEGC,MAAAA,WAAW,GAAIC,KAAa,IAAoB;EAC3D,IAAIA,KAAK,KAAK,EAAE,EAAE;AAChB,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;EAEA,MAAMC,EAAE,GAAG,IAAIC,MAAM,CACnBC,MAAM,CAACC,IAAI,CAACP,OAAO,CAAC,CAACQ,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAM,CAAED,EAAAA,GAAI,CAAGC,CAAAA,EAAAA,IAAK,CAAC,CAAA,CAAC,EAC5D,GACF,CAAC,CAAA;AACD;AACA,EAAA,IAAIP,KAAK,CAACQ,UAAU,CAAC,OAAO,CAAC,EAAE;AAC7B,IAAA,MAAMC,WAAW,GAAGT,KAAK,CAACU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,IAAA,MAAMC,SAAS,GAAGF,WAAW,CAC1BC,KAAK,CAAC,GAAG,CAAC,CACVE,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,OAAO,CAACb,EAAE,EAAGc,OAAO,IAAKlB,OAAO,CAACkB,OAAO,CAAC,CAAC,CAAC,CACxDC,MAAM,CAAEC,IAAI,IAAKA,IAAI,CAAC,CAAA;IACzB,OAAON,SAAS,CAACO,MAAM,GAAG,CAAC,GAAGP,SAAS,GAAG,EAAE,CAAA;AAC9C,GAAA;AAEA,EAAA,OAAOX,KAAK,CAACc,OAAO,CAACb,EAAE,EAAGc,OAAO,IAAKlB,OAAO,CAACkB,OAAO,CAAC,CAAC,CAAA;AACzD,EAAC;AAEYI,MAAAA,WAAW,GAAInB,KAAyB,IAAK;EACxD,IAAI,CAACA,KAAK,EAAE;AACV,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;;AAEA;AACA;AACA,EAAA,IAAIoB,KAAK,CAACC,OAAO,CAACrB,KAAK,CAAC,EAAE;AACxB,IAAA,MAAMsB,YAAY,GAAGtB,KAAK,CACvBY,GAAG,CAAEW,KAAa,IAAK;AACtB,MAAA,OAAOC,MAAM,CAACD,KAAK,CAAC,CAACT,OAAO,CAAC,kBAAkB,EAAGC,OAAO,IAAKjB,OAAO,CAACiB,OAAO,CAAyB,CAAC,CAAA;AACzG,KAAC,CAAC,CACDU,IAAI,CAAC,GAAG,CAAC,CAAA;IACZ,OAAQ,CAAA,KAAA,EAAOH,YAAa,CAAE,CAAA,CAAA,CAAA;AAChC,GAAA;;AAEA;AACA,EAAA,MAAMI,WAAW,GAAGF,MAAM,CAACxB,KAAK,CAAC,CAAA;AAEjC,EAAA,OAAO0B,WAAW,CAACZ,OAAO,CAAC,kBAAkB,EAAGC,OAAO,IAAKjB,OAAO,CAACiB,OAAO,CAAyB,CAAC,CAAA;AACvG,EAAC;AAEYY,MAAAA,uBAAuB,GAAIC,YAA6B,IAAa;EAChF,IAAIC,YAAY,GAAG,EAAE,CAAA;EACrB,KAAK,MAAM,CAACC,GAAG,EAAE9B,KAAK,CAAC,IAAI4B,YAAY,EAAE;AACvCC,IAAAA,YAAY,GAAGA,YAAY,GAAI,GAAEC,GAAI,CAAA,CAAA,EAAG9B,KAAM,CAAE,CAAA,CAAA,CAAA;AAClD,GAAA;EACA,OAAO6B,YAAY,CAACE,KAAK,CAAC,CAAC,EAAEF,YAAY,CAACX,MAAM,GAAG,CAAC,CAAC,CAAA;AACvD,EAAC;AAEM,MAAMc,qBAA6C,GAAG;AAC3D,EAAA,GAAG,EAAE,IAAI;AACT,EAAA,IAAI,EAAE,IAAI;AACV,EAAA,GAAG,EAAE,IAAI;AACT,EAAA,IAAI,EAAE,KAAK;AACX,EAAA,GAAG,EAAE,IAAI;AACT,EAAA,IAAI,EAAE,KAAA;AACR,EAAC;AAEM,MAAMC,qBAA6C,GAAG;AAC3DC,EAAAA,EAAE,EAAE,GAAG;AACPC,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,EAAE,EAAE,GAAG;AACPC,EAAAA,GAAG,EAAE,IAAI;AACTC,EAAAA,EAAE,EAAE,GAAG;AACPC,EAAAA,GAAG,EAAE,IAAA;AACP,EAAC;AAED,MAAMC,oBAAoB,GAAGA,CAC3BC,WAAmB,EACnBC,aAA4B,EAC5BC,OAAiC,KACrB;AACZ,EAAA,MAAMC,MAAM,GAAGD,OAAO,CAACE,IAAI,CAAED,MAAM,IAAKA,MAAM,CAACE,KAAK,KAAKL,WAAW,CAAC,CAAA;EACrE,IAAI,CAACG,MAAM,EAAE;AACX,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EACA,MAAMG,UAAU,GAAI,CAAAH,MAAM,KAAA,IAAA,IAANA,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAANA,MAAM,CAAEI,IAAI,KAAI,QAAyB,CAAA;AAC7D,EAAA,MAAMC,SAAS,GAAGC,YAAY,CAACH,UAAU,CAAC,CAAA;EAE1C,IAAI,CAACE,SAAS,EAAE;AACd,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EAEA,IAAI,iBAAiB,IAAIA,SAAS,EAAE;AAClC,IAAA,OAAO,CAAC,CAAEA,SAAS,CAASE,eAAe,CAACN,IAAI,CAAEO,EAAO,IACvDL,UAAU,KAAK,QAAQ,IAAI5C,MAAM,CAACC,IAAI,CAAC4B,qBAAqB,CAAC,CAACqB,QAAQ,CAACD,EAAE,CAACpD,KAAK,CAAC,GAC5EgC,qBAAqB,CAACoB,EAAE,CAACpD,KAAK,CAAC,KAAK0C,aAAa,GACjDU,EAAE,CAAC,OAAO,CAAC,KAAKV,aACtB,CAAC,CAAA;AACH,GAAA;EACA,OAAO,CAAC,CAAEO,SAAS,CAASJ,IAAI,CAAEO,EAAO,IACvC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAACC,QAAQ,CAACN,UAAU,CAAC,IAAI5C,MAAM,CAACC,IAAI,CAAC4B,qBAAqB,CAAC,CAACqB,QAAQ,CAACD,EAAE,CAACpD,KAAK,CAAC,GAChGgC,qBAAqB,CAACoB,EAAE,CAACpD,KAAK,CAAC,KAAK0C,aAAa,GACjDU,EAAE,CAAC,OAAO,CAAC,KAAKV,aACtB,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAMY,aAAa,GAAG,CACpB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,uBAAuB,CACxB,CAAA;;AAED;AACA,MAAMC,YAAY,GAAGA,CACnBvD,KAAoB,EACpByC,WAAmB,EACnBE,OAAiC,EACjCD,aAA4B,KAChB;AAAA,EAAA,IAAAc,YAAA,CAAA;AACZ;AACA,EAAA,IAAIxD,KAAK,KAAKyD,SAAS,IAAIzD,KAAK,KAAK,EAAE,EAAE;AACvC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;;AAEA;AACA;AACA,EAAA,IAAIsD,aAAa,CAACD,QAAQ,CAACX,aAAuB,CAAC,EAAE;IACnD,OAAOtB,KAAK,CAACC,OAAO,CAACrB,KAAK,CAAC,IAAIA,KAAK,KAAK,EAAE,CAAA;AAC7C,GAAA;;AAEA;AACA,EAAA,IAAIoB,KAAK,CAACC,OAAO,CAACrB,KAAK,CAAC,IAAI,CAACsD,aAAa,CAACD,QAAQ,CAACX,aAAuB,CAAC,EAAE;AAC5E,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,MAAME,MAAM,GAAGD,OAAO,CAACE,IAAI,CAAED,MAAM,IAAKA,MAAM,CAACE,KAAK,KAAKL,WAAW,CAAC,CAAA;EACrE,IAAI,CAACG,MAAM,EAAE;AACX,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,MAAMI,IAAI,GAAA,CAAAQ,YAAA,GAAGZ,MAAM,CAAC,MAAM,CAAC,MAAAY,IAAAA,IAAAA,YAAA,KAAAA,KAAAA,CAAAA,GAAAA,YAAA,GAAI,QAAQ,CAAA;;AAEvC;AACA,EAAA,IAAIR,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,QAAQ,EAAE;AACxC,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;;AAEA;EACA,IAAIA,IAAI,KAAK,QAAQ,EAAE;AACrB,IAAA,OAAO,CAACU,KAAK,CAACC,MAAM,CAAC3D,KAAK,CAAC,CAAC,CAAA;AAC9B,GAAA;;AAEA;AACA;AACA;EACA,IAAIgD,IAAI,KAAK,MAAM,EAAE;AACnB,IAAA,MAAMY,YAAY,GAAI5D,KAAK,CAAYU,KAAK,CAAC,GAAG,CAAC,CAAA;AACjD,IAAA,IAAIkD,YAAY,CAAC1C,MAAM,KAAK,CAAC,EAAE;AAC7B,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;IACA,MAAM,CAAC2C,IAAI,EAAEC,EAAE,EAAEC,EAAE,CAAC,GAAGH,YAAY,CAAA;IAEnC,OAAO,CAACF,KAAK,CAACM,QAAQ,CAACH,IAAI,CAAC,CAAC,IAAI,CAACH,KAAK,CAACM,QAAQ,CAACF,EAAE,CAAC,CAAC,IAAI,CAACJ,KAAK,CAACM,QAAQ,CAACD,EAAE,CAAC,CAAC,CAAA;AAC/E,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;;AAED;;AAEA;AACA;MACaE,wBAAwB,GAAGA,CACtCpC,YAAoB,EACpBc,OAAiC,KACO;EACxC,IAAI,CAACd,YAAY,EAAE;AACjB,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,IAAIqC,YAAY,GAAGC,gBAAgB,CAACC,GAAG,CAAA;EACvC,IAAIC,iBAA2B,GAAG,EAAE,CAAA;AAEpC,EAAA,MAAMzC,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;AAC1C,EAAA,KAAK,MAAM,CAACxC,GAAG,EAAE9B,KAAK,CAAC,IAAI,IAAIsE,eAAe,CAACzC,YAAY,CAAC,EAAE;AAC5D,IAAA,IACEC,GAAG,CAACtB,UAAU,CAAC,GAAG,CAAC,IACnB,CAAC,CACC,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,oBAAoB,CACrB,CAAC6C,QAAQ,CAACvB,GAAG,CAAC,EACf;AACAF,MAAAA,YAAY,CAAC2C,GAAG,CAACzC,GAAG,EAAE9B,KAAK,CAAC,CAAA;AAC9B,KAAA;IAEA,IAAI8B,GAAG,KAAK,gBAAgB,EAAE;AAC5BoC,MAAAA,YAAY,GAAGlE,KAAyB,CAAA;AAC1C,KAAA;IAEA,IAAI8B,GAAG,KAAK,oBAAoB,EAAE;MAChC,IAAI;QACFuC,iBAAiB,GAAGG,IAAI,CAACC,KAAK,CAACC,kBAAkB,CAAC1E,KAAK,CAAC,CAAC,CAAA;AAC3D,OAAC,CAAC,MAAM;AACNqE,QAAAA,iBAAiB,GAAG,EAAE,CAAA;AACxB,OAAA;AACF,KAAA;AACF,GAAA;EAEA,IAAInF,EAAE,GAAG,IAAI,CAAA;EACb,MAAMyF,MAAM,GAAGhC,OAAO,CAAC/B,GAAG,CAAEgC,MAAM,IAAKA,MAAM,CAACE,KAAK,CAAC,CAAA;EAEpD,IAAI8B,SAAS,GAAG,KAAK,CAAA;EAErB,MAAMC,KAA+B,GAAG,EAAE,CAAA;AAC1CjD,EAAAA,YAAY,CAACkD,OAAO,CAAC,CAAC9E,KAAK,EAAE8B,GAAG,KAAK;AAAA,IAAA,IAAAiD,aAAA,CAAA;AACnC,IAAA,IAAIH,SAAS,EAAE;AACb,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAM9B,KAAK,GAAGhB,GAAG,CAACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACqB,KAAK,CAAC,CAAC,CAAC,CAAC;AACzC,IAAA,IAAI,CAAC4C,MAAM,CAACtB,QAAQ,CAACP,KAAK,CAAC,EAAE;AAC3B,MAAA,OAAA;AACF,KAAA;IAEA,MAAMC,UAAU,IAAAgC,aAAA,GAAGpC,OAAO,CAACE,IAAI,CAAED,MAAM,IAAKA,MAAM,CAACE,KAAK,KAAKA,KAAK,CAAC,cAAAiC,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhDA,aAAA,CAAkD/B,IAAI,CAAA;IAEzE,MAAMgC,IAAI,GAAGlD,GAAG,CAACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B,IAAIsE,IAAI,CAACtE,KAAK,CAAC,GAAG,CAAC,CAACQ,MAAM,GAAG,CAAC,EAAE;AAC9B0D,MAAAA,SAAS,GAAG,IAAI,CAAA;AAChB,MAAA,OAAA;AACF,KAAA;IAEA,MAAMK,UAAU,GAAGnD,GAAG,CAACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAA;AAC7D,IAAA,MAAMsC,IAAI,GAAGiC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC1B,IAAIjC,IAAI,KAAKD,UAAU,EAAE;AACvB6B,MAAAA,SAAS,GAAG,IAAI,CAAA;AAChB,MAAA,OAAA;AACF,KAAA;AAEA,IAAA,MAAMM,QAAQ,GAAGD,UAAU,CAAC,CAAC,CAAC,CAAA;AAC9B;AACA,IAAA,IAAI,CAACzC,oBAAoB,CAACM,KAAK,EAAEoC,QAAQ,EAAEvC,OAAO,CAAC,IAAIvB,KAAK,CAACC,OAAO,CAAC6D,QAAQ,CAAC,EAAE;AAC9EN,MAAAA,SAAS,GAAG,IAAI,CAAA;AAChB,MAAA,OAAA;AACF,KAAA;AACA1F,IAAAA,EAAE,IAAI,CAAC,CAAA;AAEP,IAAA,MAAMiG,YAAY,GAAGpF,WAAW,CAACC,KAAK,CAAC,CAAA;IACvC,IAAI,CAACuD,YAAY,CAAC4B,YAAY,EAAErC,KAAK,EAAEH,OAAO,EAAEuC,QAAQ,CAAC,EAAE;AACzDN,MAAAA,SAAS,GAAG,IAAI,CAAA;AAChB,MAAA,OAAA;AACF,KAAA;IAEAC,KAAK,CAACO,IAAI,CAAC;AACT3C,MAAAA,WAAW,EAAEK,KAAK;AAClBJ,MAAAA,aAAa,EACX,CAAC,QAAQ,EAAE,UAAU,CAAC,CAACW,QAAQ,CAACN,UAAW,CAAC,IAAI5C,MAAM,CAACC,IAAI,CAAC6B,qBAAqB,CAAC,CAACoB,QAAQ,CAAC6B,QAAQ,CAAC,GACjGjD,qBAAqB,CAACiD,QAAQ,CAAC,GAC/BA,QAAQ;MACdhG,EAAE;AACFc,MAAAA,KAAK,EAAEsD,aAAa,CAACD,QAAQ,CAAC6B,QAAkB,CAAC,IAAIC,YAAY,KAAK,EAAE,GAAG,EAAE,GAAGA,YAAY;AAC5FnC,MAAAA,IAAAA;AACF,KAAC,CAAC,CAAA;AACJ,GAAC,CAAC,CAAA;;AAEF;AACA;AACA;AACA,EAAA,IAAI4B,SAAS,EAAE;AACb,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;EAEA,OAAO;IAAEC,KAAK;IAAEX,YAAY;AAAEG,IAAAA,iBAAAA;GAAmB,CAAA;AACnD,EAAC;AAEYgB,MAAAA,8BAA8B,GAAIC,WAAoC,IAAsB;AAAA,EAAA,IAAAC,qBAAA,CAAA;AACvG,EAAA,MAAM3D,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;EAC1C1C,YAAY,CAAC2C,GAAG,CAAC,gBAAgB,EAAEe,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;AACrEA,EAAAA,WAAW,CAAC,OAAO,CAAC,CAACR,OAAO,CAAE7D,IAA4B,IAAK;IAC7D,MAAM;MAAEwB,WAAW;MAAEC,aAAa;MAAE1C,KAAK;AAAEgD,MAAAA,IAAAA;AAAK,KAAC,GAAG/B,IAAI,CAAA;IAExD,IAAId,MAAM,CAACC,IAAI,CAAC4B,qBAAqB,CAAC,CAACqB,QAAQ,CAACX,aAAc,CAAC,EAAE;MAC/Dd,YAAY,CAAC2C,GAAG,CACb,CAAA,CAAA,EAAG9B,WAAY,CAAGT,CAAAA,EAAAA,qBAAqB,CAACU,aAAa,CAAG,IAAGvB,WAAW,CAAC6B,IAAI,CAAE,CAAA,CAAA,CAAE,EAChF7B,WAAW,CAACnB,KAAK,CACnB,CAAC,CAAA;AACH,KAAC,MAAM;MACL4B,YAAY,CAAC2C,GAAG,CAAE,CAAA,CAAA,EAAG9B,WAAY,CAAGtB,CAAAA,EAAAA,WAAW,CAACuB,aAAa,CAAE,IAAGvB,WAAW,CAAC6B,IAAI,CAAE,CAAA,CAAA,CAAE,EAAE7B,WAAW,CAACnB,KAAK,CAAC,CAAC,CAAA;AAC7G,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,IAAAuF,CAAAA,qBAAA,GAAID,WAAW,CAACjB,iBAAiB,MAAAkB,IAAAA,IAAAA,qBAAA,KAA7BA,KAAAA,CAAAA,IAAAA,qBAAA,CAA+BrE,MAAM,EAAE;AACzCU,IAAAA,YAAY,CAAC2C,GAAG,CAAC,oBAAoB,EAAEiB,kBAAkB,CAAChB,IAAI,CAACiB,SAAS,CAACH,WAAW,CAACjB,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC3G,GAAA;AAEA,EAAA,OAAOzC,YAAY,CAAA;AACrB,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAM8D,cAAc,GAAGA,CACrBC,MAAc,EACdhD,OAAiC,EACjCiD,mBAA2B,EAC3BC,sBAAgD,EAChDC,YAA6C,EAC7CC,YAAqB,KACO;AAC5B,EAAA,MAAMC,YAAY,GAChBF,YAAY,IAAIA,YAAY,CAAC9E,MAAM,IAAI8E,YAAY,CAAC9E,MAAM,CAACsE,WAAW,GAClEQ,YAAY,CAAC9E,MAAM,CAACsE,WAAW,GAC/B;AACET,IAAAA,KAAK,EAAE,EAAE;IACTX,YAAY,EAAEC,gBAAgB,CAACC,GAAAA;GAChC,CAAA;AAEP,EAAA,IAAI2B,YAAY,EAAE;AAChB,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,MAAMC,qBAAqB,GAAGhC,wBAAwB,CAAC0B,MAAM,EAAEhD,OAAO,CAAC,CAAA;EAEvE,IAAIsD,qBAAqB,KAAK,SAAS,EAAE;AACvC,IAAA,MAAMC,qBAAqB,GAAGb,8BAA8B,CAACY,qBAAqB,CAAC,CAAA;AACnF,IAAA,MAAMpE,YAAY,GAAGF,uBAAuB,CAACuE,qBAAqB,CAAC,CAAA;IACnE,IAAIrE,YAAY,KAAK+D,mBAAmB,EAAE;MACxCC,sBAAsB,CAAChE,YAAY,CAAC,CAAA;AACtC,KAAA;AACA,IAAA,OAAOoE,qBAAqB,CAAA;AAC9B,GAAA;AAEA,EAAA,MAAME,2BAA2B,GAAGlC,wBAAwB,CAAC2B,mBAAmB,EAAEjD,OAAO,CAAC,CAAA;EAE1F,IAAIwD,2BAA2B,KAAK,SAAS,EAAE;AAC7C,IAAA,OAAOA,2BAA2B,CAAA;AACpC,GAAA;AAEA,EAAA,OAAOH,YAAY,CAAA;AACrB,CAAC,CAAA;;AAED;;MAEaI,oBAAoB,GAAGA,CAClCvE,YAAoB,EACpBc,OAAiC,KACH;EAC9B,IAAI,CAACd,YAAY,EAAE;AACjB,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,MAAMD,YAAY,GAAG,IAAI0C,eAAe,CAACzC,YAAY,CAAC,CAAA;AAEtD,EAAA,MAAM7B,KAAK,GAAG4B,YAAY,CAACyE,GAAG,CAAC,aAAa,CAAC,CAAA;EAE7C,IAAIrG,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,IAAI,EAAE;AACpD,IAAA,OAAO,EAAE,CAAA;AACX,GAAA;EAEA,MAAM2E,MAAM,GAAGhC,OAAO,CAAC/B,GAAG,CAAEgC,MAAM,IAAKA,MAAM,CAACE,KAAK,CAAC,CAAA;EACpD,MAAM,CAACF,MAAM,EAAE0D,KAAK,CAAC,GAAGtG,KAAK,CAAC+B,KAAK,CAAC,CAAC,EAAE/B,KAAK,CAACkB,MAAM,GAAG,CAAC,CAAC,CAACR,KAAK,CAAC,GAAG,CAAC,CAAA;AAEnE,EAAA,IAAIiE,MAAM,CAACtB,QAAQ,CAACT,MAAM,CAAC,KAAK0D,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,MAAM,CAAC,EAAE;AACpE,IAAA,OAAO,CACL;AACExD,MAAAA,KAAK,EAAEF,MAAM;AACb2D,MAAAA,IAAI,EAAED,KAAAA;AACR,KAAC,CACF,CAAA;AACH,GAAA;AAEA,EAAA,OAAO,SAAS,CAAA;AAClB,EAAC;AAEYE,MAAAA,0BAA0B,GAAIC,OAAuB,IAAsB;AACtF,EAAA,MAAM7E,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;AAC1C1C,EAAAA,YAAY,CAAC2C,GAAG,CACd,aAAa,EACbkC,OAAO,CAACvF,MAAM,GAAG,CAAC,IAAIuF,OAAO,CAAC,CAAC,CAAC,CAACF,IAAI,GAAI,CAAGpF,CAAAA,EAAAA,WAAW,CAACsF,OAAO,CAAC,CAAC,CAAC,CAAC3D,KAAK,CAAE,IAAG3B,WAAW,CAACsF,OAAO,CAAC,CAAC,CAAC,CAACF,IAAI,CAAE,CAAE,CAAA,CAAA,GAAG,IACjH,CAAC,CAAA;AAED,EAAA,OAAO3E,YAAY,CAAA;AACrB,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAM8E,YAAY,GAAGA,CACnBf,MAAc,EACdhD,OAAiC,EACjCgE,mBAA2B,EAC3BC,sBAAgD,EAChDd,YAA6C,EAC7CC,YAAqB,KAClB;AAAA,EAAA,IAAAc,qBAAA,CAAA;EACH,MAAMb,YAAY,GAAGF,YAAY,KAAZA,IAAAA,IAAAA,YAAY,gBAAAe,qBAAA,GAAZf,YAAY,CAAEW,OAAO,MAAA,IAAA,IAAAI,qBAAA,KAArBA,KAAAA,CAAAA,IAAAA,qBAAA,CAAuBC,SAAS,GAAGhB,YAAY,CAACW,OAAO,CAACK,SAAS,GAAG,EAAE,CAAA;AAE3F,EAAA,IAAIf,YAAY,EAAE;AAChB,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,MAAMS,OAAO,GAAGL,oBAAoB,CAACT,MAAM,EAAEhD,OAAO,CAAC,CAAA;EAErD,IAAI8D,OAAO,KAAK,SAAS,EAAE;AACzB,IAAA,MAAMM,mBAAmB,GAAGP,0BAA0B,CAACC,OAAO,CAAC,CAAA;AAC/D,IAAA,MAAM5E,YAAY,GAAGF,uBAAuB,CAACoF,mBAAmB,CAAC,CAAA;IACjE,IAAIlF,YAAY,KAAK8E,mBAAmB,EAAE;MACxCC,sBAAsB,CAAC/E,YAAY,CAAC,CAAA;AACtC,KAAA;AACA,IAAA,OAAO4E,OAAO,CAAA;AAChB,GAAA;AAEA,EAAA,MAAMO,yBAAyB,GAAGZ,oBAAoB,CAACO,mBAAmB,EAAEhE,OAAO,CAAC,CAAA;EAEpF,IAAIqE,yBAAyB,KAAK,SAAS,EAAE;AAC3C,IAAA,OAAOA,yBAAyB,CAAA;AAClC,GAAA;AAEA,EAAA,OAAOhB,YAAY,CAAA;AACrB,CAAC,CAAA;;AAED;;AAEaiB,MAAAA,uBAAuB,GAAIpF,YAAoB,IAA8C;EACxG,IAAI,CAACA,YAAY,EAAE;AACjB,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,MAAMD,YAAY,GAAG,IAAI0C,eAAe,CAACzC,YAAY,CAAC,CAAA;AAEtD,EAAA,MAAM7B,KAAK,GAAG4B,YAAY,CAACyE,GAAG,CAAC,aAAa,CAAC,CAAA;EAE7C,IAAIrG,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,IAAI,EAAE;AACpD,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,MAAMkH,UAAU,GAAGlH,KAAK,CAAC+B,KAAK,CAAC,CAAC,EAAE/B,KAAK,CAACkB,MAAM,GAAG,CAAC,CAAC,CAACR,KAAK,CAAC,GAAG,CAAC,CAAA;EAC9D,MAAMyG,IAAI,GAAGC,UAAU,CAACF,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;EACtC,MAAMG,QAAQ,GAAGD,UAAU,CAACF,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAC1C,EAAA,MAAMI,SAAS,GAAGJ,UAAU,CAAC,CAAC,CAAC,CAAA;AAE/B,EAAA,IAAI,CAACvD,MAAM,CAACD,KAAK,CAACyD,IAAI,CAAC,IAAI,CAACxD,MAAM,CAACD,KAAK,CAAC2D,QAAQ,CAAC,IAAIC,SAAS,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAACjE,QAAQ,CAACiE,SAAS,CAAC,EAAE;IACvG,OAAO;MAAEH,IAAI;MAAEE,QAAQ;AAAEC,MAAAA,SAAS,EAAEA,SAAAA;KAA8B,CAAA;AACpE,GAAA;AAEA,EAAA,OAAO,SAAS,CAAA;AAClB,EAAC;AAEYC,MAAAA,6BAA6B,GAAIL,UAAuC,IAAsB;AACzG,EAAA,MAAMtF,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;AAC1C1C,EAAAA,YAAY,CAAC2C,GAAG,CAAC,aAAa,EAAG,CAAA,CAAA,EAAG2C,UAAU,CAACC,IAAK,CAAGD,CAAAA,EAAAA,UAAU,CAACG,QAAS,CAAA,CAAA,EAAGH,UAAU,CAACI,SAAU,GAAE,CAAC,CAAA;AAEtG,EAAA,OAAO1F,YAAY,CAAA;AACrB,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAM4F,kBAAkB,GAAGA,CACzB7B,MAAc,EACd8B,sBAA8B,EAC9BC,yBAAmD,EACnD5B,YAA6C,EAC7CC,YAAqB,KAClB;EACH,MAAMC,YAAY,GAAGF,YAAY,KAAZA,IAAAA,IAAAA,YAAY,eAAZA,YAAY,CAAEoB,UAAU,GAAAS,cAAA,CAAA;AACtCR,IAAAA,IAAI,EAAE,CAAC;AAAEE,IAAAA,QAAQ,EAAE,EAAE;AAAEC,IAAAA,SAAS,EAAE,MAAA;GAAWxB,EAAAA,YAAY,CAACoB,UAAU,CACtE,GAAA;AAAEC,IAAAA,IAAI,EAAE,CAAC;AAAEE,IAAAA,QAAQ,EAAE,EAAE;AAAEC,IAAAA,SAAS,EAAE,MAAA;GAAwC,CAAA;AAEjF,EAAA,IAAIvB,YAAY,EAAE;AAChB,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,MAAMkB,UAAU,GAAGD,uBAAuB,CAACtB,MAAM,CAAC,CAAA;EAElD,IAAIuB,UAAU,KAAK,SAAS,EAAE;AAC5B,IAAA,MAAMU,yBAAyB,GAAGL,6BAA6B,CAACL,UAAU,CAAC,CAAA;AAC3E,IAAA,MAAMrF,YAAY,GAAGF,uBAAuB,CAACiG,yBAAyB,CAAC,CAAA;IACvE,IAAI/F,YAAY,KAAK4F,sBAAsB,EAAE;MAC3CC,yBAAyB,CAAC7F,YAAY,CAAC,CAAA;AACzC,KAAA;AACA,IAAA,OAAOqF,UAAU,CAAA;AACnB,GAAA;AAEA,EAAA,MAAMW,+BAA+B,GAAGZ,uBAAuB,CAACQ,sBAAsB,CAAC,CAAA;EAEvF,IAAII,+BAA+B,KAAK,SAAS,EAAE;AACjD,IAAA,OAAOA,+BAA+B,CAAA;AACxC,GAAA;AAEA,EAAA,OAAO7B,YAAY,CAAA;AACrB,CAAC,CAAA;;AAED;;MAEa8B,mCAAmC,GAAGA,CACjDC,gBAA2C,EAC3CpF,OAAiC,KACb;AACpB,EAAA,MAAMf,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;EAC1C,MAAM0D,YAAY,GAAGrF,OAAO,CAAC/B,GAAG,CAAEgC,MAAM,IAAKA,MAAM,CAACE,KAAK,CAAC,CAAA;;AAE1D;EACA,IAAI3C,MAAM,CAACC,IAAI,CAAC2H,gBAAgB,CAAC,CAAC7G,MAAM,IAAI,CAAC,EAAE;AAC7CU,IAAAA,YAAY,CAAC2C,GAAG,CAAC,mBAAmB,EAAG,CAAA,CAAA,EAAGyD,YAAY,CAACvG,IAAI,CAAC,GAAG,CAAE,GAAE,CAAC,CAAA;AACpE,IAAA,OAAOG,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,MAAMqG,qBAAqB,GAAGtF,OAAO,CAClC3B,MAAM,CAAEkH,CAAC,IAAA;AAAA,IAAA,IAAAC,WAAA,CAAA;AAAA,IAAA,OAAK,GAAAA,WAAA,GAAED,CAAC,KAAA,IAAA,IAADA,CAAC,KAADA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAC,CAAEE,QAAQ,cAAAD,WAAA,KAAA,KAAA,CAAA,GAAAA,WAAA,GAAI,IAAI,CAAC,CAAA;AAAA,GAAA,CAAC,CACrCvH,GAAG,CAAEsH,CAAC,IAAKA,CAAC,CAACpF,KAAK,CAAC,CACnBzC,MAAM,CAAC,CAACC,GAAG,EAAE+H,OAAO,KAAK;AACxB,IAAA,OAAAV,cAAA,CAAAA,cAAA,CAAA,EAAA,EAAYrH,GAAG,CAAA,EAAA,EAAA,EAAA;AAAE,MAAA,CAAC+H,OAAO,GAAG,IAAA;AAAI,KAAA,CAAA,CAAA;GACjC,EAAEN,gBAAgB,CAAC,CAAA;AAEtB,EAAA,MAAMO,cAAc,GAAGnI,MAAM,CAACoI,OAAO,CAACN,qBAAqB,CAAA;AACzD;GACCjH,MAAM,CAAC/B,IAAA,IAAA;AAAA,IAAA,IAAC,CAACuJ,CAAC,EAAEC,OAAO,CAAC,GAAAxJ,IAAA,CAAA;AAAA,IAAA,OAAKwJ,OAAO,CAAA;AAAA,GAAA,CAAA;AACjC;GACC7H,GAAG,CAAC8H,KAAA,IAAA;AAAA,IAAA,IAAC,CAAC9F,MAAM,EAAE4F,CAAC,CAAC,GAAAE,KAAA,CAAA;IAAA,OAAKvH,WAAW,CAACyB,MAAM,CAAC,CAAA;GAAC,CAAA,CAAA;AAE5ChB,EAAAA,YAAY,CAAC2C,GAAG,CAAC,mBAAmB,EAAG,CAAA,CAAA,EAAG+D,cAAc,CAAC7G,IAAI,CAAC,GAAG,CAAE,GAAE,CAAC,CAAA;AACtE,EAAA,OAAOG,YAAY,CAAA;AACrB,EAAC;MAEY+G,6BAA6B,GAAGA,CAC3CC,SAAiB,EACjBC,YAAsC,KACI;AAC1C,EAAA,IAAI,CAACD,SAAS,IAAKA,SAAS,CAAC1H,MAAM,KAAK,CAAC,IAAI0H,SAAS,CAAC,CAAC,CAAC,KAAK,GAAI,EAAE;AAClE,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AACA;AACA,EAAA,MAAME,MAAM,GAAGF,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAGA,SAAS,CAAC7G,KAAK,CAAC,CAAC,CAAC,GAAG6G,SAAS,CAAA;EAEpE,MAAMG,UAAqC,GAAG,EAAE,CAAA;EAChD,IAAIC,KAAK,GAAG,KAAK,CAAA;EACjB,IAAIC,mBAAmB,GAAG,CAAC,CAAA;EAC3B,KAAK,MAAMhI,IAAI,IAAI6H,MAAM,CAACpI,KAAK,CAAC,GAAG,CAAC,EAAE;AACpC;IACA,MAAMwI,QAAQ,GAAGjI,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,IAAIwI,QAAQ,KAAK,mBAAmB,EAAE;AACpC,MAAA,SAAA;AACF,KAAA;AACA;IACA,MAAMlE,IAAI,GAAG/D,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAIsE,IAAI,CAACtE,KAAK,CAAC,GAAG,CAAC,CAACQ,MAAM,GAAG,CAAC,EAAE;AAC9B,MAAA,SAAA;AACF,KAAA;AAEA,IAAA,MAAMiI,aAAa,GAAGlI,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,IAAA,IAAI,OAAOyI,aAAa,KAAK,QAAQ,EAAE;AACrC,MAAA,SAAA;AACF,KAAA;AAEAH,IAAAA,KAAK,GAAG,IAAI,CAAA;IAEZ,MAAMhB,YAAY,GAAGa,YAAY,CAACjI,GAAG,CAAEgC,MAAM,IAAKA,MAAM,CAACE,KAAK,CAAC,CAAA;AAC/D;AACA,IAAA,MAAMH,OAAO,GAAGwG,aAAa,CAACzI,KAAK,CAAC,GAAG,CAAC,CAACE,GAAG,CAAEZ,KAAK,IAAKD,WAAW,CAACC,KAAK,CAAC,CAAC,CAAA;;AAE3E;AACA,IAAA,KAAK,MAAM4C,MAAM,IAAIoF,YAAY,EAAE;AACjC,MAAA,MAAMoB,eAAe,GAAGzG,OAAO,CAACU,QAAQ,CAACT,MAAM,CAAC,CAAA;AAChDmG,MAAAA,UAAU,CAACnG,MAAM,CAAC,GAAGwG,eAAe,CAAA;AACpC,MAAA,IAAIA,eAAe,EAAE;AACnBH,QAAAA,mBAAmB,IAAI,CAAC,CAAA;AAC1B,OAAA;AACF,KAAA;AACF,GAAA;AAEA,EAAA,IAAIA,mBAAmB,KAAK,CAAC,IAAI,CAACD,KAAK,EAAE;AACvC,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AAEA,EAAA,OAAOD,UAAU,CAAA;AACnB,EAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,MAAMM,oBAAoB,GAAGA,CAC3B1D,MAAc,EACdhD,OAAqD,EACrD2G,6BAAqC,EACrCC,gCAA0D,EAC1DzD,YAA6C,EAC7CC,YAAqB,KACS;AAAA,EAAA,IAAAyD,sBAAA,CAAA;EAC9B,MAAMxD,YAAuC,GAAG,EAAE,CAAA;AAClD,EAAA,KAAK,MAAMpD,MAAM,IAAID,OAAO,EAAE;IAAA,IAAA8G,qBAAA,EAAAC,sBAAA,CAAA;AAC5B,IAAA,MAAM5G,KAAK,GAAGF,MAAM,CAACE,KAAK,CAAA;IAC1B,IAAI,CAAAgD,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAA2D,qBAAA,GAAZ3D,YAAY,CAAEnD,OAAO,MAAA,IAAA,IAAA8G,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAC,sBAAA,GAArBD,qBAAA,CAAuBE,qBAAqB,MAAA,IAAA,IAAAD,sBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5CA,sBAAA,CAA+C5G,KAAK,CAAC,MAAKW,SAAS,EAAE;MACvEuC,YAAY,CAAClD,KAAK,CAAC,GAAGgD,YAAY,CAACnD,OAAO,CAACgH,qBAAqB,CAAC7G,KAAK,CAAC,CAAA;AACzE,KAAC,MAAM;MACLkD,YAAY,CAAClD,KAAK,CAAC,GAAGF,MAAM,CAACgH,aAAa,KAAK,IAAI,CAAC;AACtD,KAAA;AACF,GAAA;;AAEA,EAAA,IAAI7D,YAAY,EAAE;AAChB,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,MAAM+B,gBAAgB,GAAGY,6BAA6B,CAAChD,MAAM,EAAEhD,OAAO,CAAC,CAAA;EAEvE,IAAIoF,gBAAgB,KAAK,SAAS,EAAE;AAClC,IAAA,MAAM8B,sBAAsB,GAAG/B,mCAAmC,CAACC,gBAAgB,EAAEpF,OAAO,CAAC,CAAA;AAE7F,IAAA,IAAIkH,sBAAsB,CAACC,QAAQ,EAAE,KAAKR,6BAA6B,EAAE;AACvEC,MAAAA,gCAAgC,CAACM,sBAAsB,CAACC,QAAQ,EAAE,CAAC,CAAA;AACrE,KAAA;AACA,IAAA,OAAO/B,gBAAgB,CAAA;AACzB,GAAA;AAEA,EAAA,MAAMgC,gCAAgC,GAAGpB,6BAA6B,CAACW,6BAA6B,EAAE3G,OAAO,CAAC,CAAA;EAE9G,IAAIoH,gCAAgC,KAAK,SAAS,EAAE;AAClD,IAAA,OAAOA,gCAAgC,CAAA;AACzC,GAAA;AAEA,EAAA,IAAIjE,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,IAAA,CAAA0D,sBAAA,GAAZ1D,YAAY,CAAEnD,OAAO,cAAA6G,sBAAA,KAAA,KAAA,CAAA,IAArBA,sBAAA,CAAuBG,qBAAqB,EAAE;AAChD,IAAA,OAAO7D,YAAY,CAACnD,OAAO,CAACgH,qBAAqB,CAAA;AACnD,GAAA;AAEA,EAAA,OAAO3D,YAAY,CAAA;AACrB,CAAC,CAAA;MAEYgE,0BAA0B,GAAGA,CACxCpB,SAAiB,EACjBC,YAAsC,KACR;AAC9B,EAAA,IAAI,CAACD,SAAS,IAAKA,SAAS,CAAC1H,MAAM,KAAK,CAAC,IAAI0H,SAAS,CAAC,CAAC,CAAC,KAAK,GAAI,EAAE;AAClE,IAAA,OAAO,SAAS,CAAA;AAClB,GAAA;AACA;AACA,EAAA,MAAME,MAAM,GAAGF,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,GAAGA,SAAS,CAAC7G,KAAK,CAAC,CAAC,CAAC,GAAG6G,SAAS,CAAA;EAEpE,MAAMqB,aAAqC,GAAG,EAAE,CAAA;EAEhD,KAAK,MAAMhJ,IAAI,IAAI6H,MAAM,CAACpI,KAAK,CAAC,GAAG,CAAC,EAAE;IACpC,MAAMwI,QAAQ,GAAGjI,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,IAAA,IAAIwI,QAAQ,KAAK,oBAAoB,IAAIA,QAAQ,KAAK,qBAAqB,EAAE;AAC3E,MAAA,SAAA;AACF,KAAA;IAEA,MAAMlE,IAAI,GAAG/D,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/B,IAAIsE,IAAI,CAACtE,KAAK,CAAC,GAAG,CAAC,CAACQ,MAAM,GAAG,CAAC,EAAE;AAC9B,MAAA,SAAA;AACF,KAAA;AAEA,IAAA,MAAMiI,aAAa,GAAGlI,IAAI,CAACP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAACA,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,IAAA,IAAI,OAAOyI,aAAa,KAAK,QAAQ,EAAE;AACrC,MAAA,SAAA;AACF,KAAA;AAEA,IAAA,MAAMnB,YAAY,GAAG,CAAC,GAAGa,YAAY,CAACjI,GAAG,CAAEgC,MAAM,IAAKA,MAAM,CAACE,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;AAEjF,IAAA,MAAMH,OAAO,GAAGwG,aAAa,CAC1BzI,KAAK,CAAC,GAAG,CAAC,CACVE,GAAG,CAAEZ,KAAK,IAAKD,WAAW,CAACC,KAAK,CAAC,CAAC,CAClCgB,MAAM,CAAEkJ,GAAG,IAAoB,OAAOA,GAAG,KAAK,QAAQ,IAAIlC,YAAY,CAAC3E,QAAQ,CAAC6G,GAAG,CAAC,CAAC,CAAA;IAExF,IAAIhB,QAAQ,KAAK,oBAAoB,EAAE;AACrCe,MAAAA,aAAa,CAAC,MAAM,CAAC,GAAGtH,OAAO,CAAA;AACjC,KAAA;IACA,IAAIuG,QAAQ,KAAK,qBAAqB,EAAE;AACtCe,MAAAA,aAAa,CAAC,OAAO,CAAC,GAAGtH,OAAO,CAAA;AAClC,KAAA;AACF,GAAA;EAEA,OAAOsH,aAAa,CAAC,MAAM,CAAC,IAAIA,aAAa,CAAC,OAAO,CAAC,GAClD;AACEjF,IAAAA,IAAI,EAAEiF,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE;AACjCE,IAAAA,KAAK,EAAEF,aAAa,CAAC,OAAO,CAAC,IAAI,EAAA;AACnC,GAAC,GACD,SAAS,CAAA;AACf,EAAC;AAEYG,MAAAA,gCAAgC,GAAIH,aAAgC,IAAsB;EAAA,IAAAI,mBAAA,EAAAC,oBAAA,CAAA;AACrG,EAAA,MAAM1I,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;EAC1C,MAAMiG,gBAAgB,GAAG,CAAAF,CAAAA,mBAAA,GAAAJ,aAAa,CAACjF,IAAI,MAAA,IAAA,IAAAqF,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,mBAAA,CAAoBzJ,GAAG,CAAEsJ,GAAG,IAAK/I,WAAW,CAAC+I,GAAG,CAAC,CAAC,KAAI,EAAE,CAAA;EACjF,MAAMM,iBAAiB,GAAG,CAAAF,CAAAA,oBAAA,GAAAL,aAAa,CAACE,KAAK,MAAA,IAAA,IAAAG,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAnBA,oBAAA,CAAqB1J,GAAG,CAAEsJ,GAAG,IAAK/I,WAAW,CAAC+I,GAAG,CAAC,CAAC,KAAI,EAAE,CAAA;AAEnFtI,EAAAA,YAAY,CAAC2C,GAAG,CAAC,oBAAoB,EAAG,CAAA,CAAA,EAAGgG,gBAAgB,CAAC9I,IAAI,CAAC,GAAG,CAAE,GAAE,CAAC,CAAA;AACzEG,EAAAA,YAAY,CAAC2C,GAAG,CAAC,qBAAqB,EAAG,CAAA,CAAA,EAAGiG,iBAAiB,CAAC/I,IAAI,CAAC,GAAG,CAAE,GAAE,CAAC,CAAA;AAE3E,EAAA,OAAOG,YAAY,CAAA;AACrB,EAAC;;AAED;AACA;AACA;AACA;AACA,MAAM6I,gBAAgB,GAAGA,CACvB9E,MAAc,EACdhD,OAAiC,EACjC+H,yBAAiC,EACjCC,4BAA6D,EAC7D7E,YAA6C,EAC7CC,YAAqB,KACH;EAClB,MAAMC,YAAY,GAAGF,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,IAAAA,YAAY,CAAEmE,aAAa,GAC5C;AACEjF,IAAAA,IAAI,EAAE,CAAAc,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEmE,aAAa,CAAC,MAAM,CAAC,KAAI,EAAE;AAC/CE,IAAAA,KAAK,EAAE,CAAArE,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZA,YAAY,CAAEmE,aAAa,CAAC,OAAO,CAAC,KAAI,EAAA;AACjD,GAAC,GACD;AAAEjF,IAAAA,IAAI,EAAE,EAAE;AAAEmF,IAAAA,KAAK,EAAE,EAAA;GAAI,CAAA;AAE3B,EAAA,IAAIpE,YAAY,EAAE;AAChB,IAAA,OAAOC,YAAY,CAAA;AACrB,GAAA;AAEA,EAAA,MAAMiE,aAAa,GAAGD,0BAA0B,CAACrE,MAAM,EAAEhD,OAAO,CAAC,CAAA;EAEjE,IAAIsH,aAAa,KAAK,SAAS,EAAE;AAC/B,IAAA,MAAMW,mBAAmB,GAAGR,gCAAgC,CAACH,aAAa,CAAC,CAAA;AAE3E,IAAA,IAAIW,mBAAmB,CAACd,QAAQ,EAAE,KAAKY,yBAAyB,EAAE;AAChEC,MAAAA,4BAA4B,CAACC,mBAAmB,CAACd,QAAQ,EAAE,CAAC,CAAA;AAC9D,KAAA;AACA,IAAA,OAAOG,aAAa,CAAA;AACtB,GAAA;AAEA,EAAA,MAAMY,6BAA6B,GAAGb,0BAA0B,CAACU,yBAAyB,EAAE/H,OAAO,CAAC,CAAA;EAEpG,IAAIkI,6BAA6B,KAAK,SAAS,EAAE;AAC/C,IAAA,OAAOA,6BAA6B,CAAA;AACtC,GAAA;AAEA,EAAA,OAAO7E,YAAY,CAAA;AACrB,CAAC,CAAA;AAEY8E,MAAAA,sBAAsB,GAAInF,MAAc,IAAsB;AACzE,EAAA,MAAM/D,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;EAC1C,MAAMyG,OAAO,GAAG,IAAIzG,eAAe,CAACqB,MAAM,CAAC,CAACU,GAAG,CAAC,KAAK,CAAC,CAAA;AACtD,EAAA,IAAI0E,OAAO,EAAE;AACXnJ,IAAAA,YAAY,CAAC2C,GAAG,CAAC,KAAK,EAAEwG,OAAO,CAAC,CAAA;AAClC,GAAA;AACA,EAAA,OAAOnJ,YAAY,CAAA;AACrB,EAAC;AAaYoJ,MAAAA,cAAc,GAAGC,KAAA,IASW;EAAA,IATV;IAC7BtF,MAAM;IACNuF,mBAAmB;IACnB5F,WAAW;IACXwB,SAAS;IACTqE,eAAe;IACfC,sBAAsB;IACtBC,kBAAkB;AAClB1I,IAAAA,OAAAA;AACgB,GAAC,GAAAsI,KAAA,CAAA;AACjB,EAAA,MAAMK,iBAAiB,GAAGjG,8BAA8B,CAACC,WAAW,CAAC,CAAA;AACrE,EAAA,MAAMiG,eAAe,GAAG/E,0BAA0B,CAACM,SAAS,CAAC,CAAA;AAC7D,EAAA,MAAM0E,qBAAqB,GAAGjE,6BAA6B,CAAC4D,eAAe,CAAC,CAAA;AAC5E,EAAA,MAAMM,2BAA2B,GAAG3D,mCAAmC,CAACsD,sBAAsB,EAAEzI,OAAO,CAAC,CAAA;AACxG,EAAA,MAAM+I,wBAAwB,GAAGtB,gCAAgC,CAACiB,kBAAkB,CAAC,CAAA;AACrF,EAAA,MAAMM,SAAS,GAAGb,sBAAsB,CAACnF,MAAM,CAAC,CAAA;AAEhD,EAAA,MAAM/D,YAAY,GAAG,IAAI0C,eAAe,EAAE,CAAA;AAE1C,EAAA,KAAK,MAAM,CAACxC,GAAG,EAAE9B,KAAK,CAAC,IAAI,IAAIsE,eAAe,CAACqB,MAAM,CAAC,EAAE;AACtD,IAAA,IAAI,CAAC7D,GAAG,CAACtB,UAAU,CAAC,GAAG,CAAC,EAAE;AACxBoB,MAAAA,YAAY,CAAC2C,GAAG,CAACzC,GAAG,EAAE9B,KAAK,CAAC,CAAA;AAC9B,KAAA;AACF,GAAA;EACA4B,YAAY,CAAC2C,GAAG,CAAC,GAAG,EAAG,CAAE2G,EAAAA,mBAAoB,EAAC,CAAC,CAAA;;AAE/C;EACA,IAAI5F,WAAW,CAACjB,iBAAiB,IAAIiB,WAAW,CAACjB,iBAAiB,CAACnD,MAAM,GAAG,CAAC,EAAE;AAC7E;AACAU,IAAAA,YAAY,CAAC2C,GAAG,CAAC,oBAAoB,EAAEiB,kBAAkB,CAAChB,IAAI,CAACiB,SAAS,CAACH,WAAW,CAACjB,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC3G,GAAA;EAEA,OAAO,IAAIC,eAAe,CAAC,CACzB,GAAG1C,YAAY,EACf,GAAG0J,iBAAiB,EACpB,GAAGC,eAAe,EAClB,GAAGC,qBAAqB,EACxB,GAAGG,SAAS,EACZ,GAAGD,wBAAwB,EAC3B,GAAGD,2BAA2B,CAC/B,CAAC,CAAA;AACJ,EAAC;AA4BD;AACaG,MAAAA,mCAAmC,GAAGA,CACjDjG,MAAc,EACduF,mBAA2B,EAC3BvI,OAAiC,EACjCkJ,cAA2C,EAC3C/F,YAA6C,EAC7CpG,YAAgC,KAChB;EAChB,MAAMoM,cAAc,GAAG,IAAIxH,eAAe,CAACqB,MAAM,CAAC,CAACU,GAAG,CAAC,GAAG,CAAC,CAAA;EAC3D,MAAMN,YAAY,GAAG,CAAC+F,cAAc,IAAInI,MAAM,CAACmI,cAAc,CAAC,KAAKZ,mBAAmB,CAAA;EAEtF,MAAM;IACJtF,mBAAmB;IACnBC,sBAAsB;IACtBc,mBAAmB;IACnBC,sBAAsB;IACtBa,sBAAsB;IACtBC,yBAAyB;IACzB4B,6BAA6B;IAC7BC,gCAAgC;IAChCmB,yBAAyB;AACzBC,IAAAA,4BAAAA;AACF,GAAC,GAAGjL,YAAY,CAAA;AAEhB,EAAA,MAAM4F,WAAW,GAAGI,cAAc,CAChCC,MAAM,EACNhD,OAAO,EACPiD,mBAAmB,EACnBC,sBAAsB,EACtBC,YAAY,EACZC,YACF,CAAC,CAAA;AACD,EAAA,MAAMe,SAAS,GAAGJ,YAAY,CAC5Bf,MAAM,EACNhD,OAAO,EACPgE,mBAAmB,EACnBC,sBAAsB,EACtBd,YAAY,EACZC,YACF,CAAC,CAAA;AACD,EAAA,MAAMoF,eAAe,GAAG3D,kBAAkB,CACxC7B,MAAM,EACN8B,sBAAsB,EACtBC,yBAAyB,EACzB5B,YAAY,EACZC,YACF,CAAC,CAAA;AACD,EAAA,MAAM4D,qBAAqB,GAAGN,oBAAoB,CAChD1D,MAAM,EACNhD,OAAO,EACP2G,6BAA6B,EAC7BC,gCAAgC,EAChCzD,YAAY,EACZC,YACF,CAAC,CAAA;AACD,EAAA,MAAMsF,kBAAkB,GAAGZ,gBAAgB,CACzC9E,MAAM,EACNhD,OAAO,EACP+H,yBAAyB,EACzBC,4BAA4B,EAC5B7E,YAAY,EACZC,YACF,CAAC,CAAA;EAED,MAAMgG,WAAW,GAAGf,cAAc,CAAC;IACjCE,mBAAmB;IACnBvF,MAAM;IACNL,WAAW;IACXwB,SAAS;IACTqE,eAAe;AACfC,IAAAA,sBAAsB,EAAEzB,qBAAqB;IAC7C0B,kBAAkB;AAClB1I,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMd,YAAY,GAAGF,uBAAuB,CAACoK,WAAW,CAAC,CAAA;EACzD,IAAIlK,YAAY,KAAK8D,MAAM,EAAE;IAC3BkG,cAAc,CAAChK,YAAY,CAAC,CAAA;AAC9B,GAAA;EAEA,OAAO;IACLyD,WAAW;IACXwB,SAAS;IACTqE,eAAe;IACfxB,qBAAqB;AACrB0B,IAAAA,kBAAAA;GACD,CAAA;AACH,EAAC;AAUYW,MAAAA,SAAS,GAAGA,CAAAC,KAAA,EAEvBtG,MAAc,EACduF,mBAA2B,EAC3BW,cAA2C,EAC3ClJ,OAAiC,KAC9B;EAAA,IALH;IAAE2C,WAAW;IAAEwB,SAAS;IAAEqE,eAAe;AAAEe,IAAAA,YAAY,EAAEd,sBAAsB;AAAEC,IAAAA,kBAAAA;AAAkC,GAAC,GAAAY,KAAA,CAAA;EAMpH,MAAME,SAAS,GAAGnB,cAAc,CAAC;IAC/BrF,MAAM;IACNuF,mBAAmB;IACnB5F,WAAW;IACXwB,SAAS;IACTqE,eAAe;IACfC,sBAAsB;IACtBC,kBAAkB;AAClB1I,IAAAA,OAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAMd,YAAY,GAAGF,uBAAuB,CAACwK,SAAS,CAAC,CAAA;EACvD,IAAItK,YAAY,KAAK8D,MAAM,EAAE;IAC3BkG,cAAc,CAAChK,YAAY,CAAC,CAAA;AAC9B,GAAA;AACF,EAAC;;AAED;AACA;AACA;AACA,MAAMuK,cAAc,GAAGA,CAACC,WAA2B,EAAEC,YAA4B,KAAa;AAC5F,EAAA,IAAID,WAAW,CAAC5J,WAAW,GAAG6J,YAAY,CAAC7J,WAAW,EAAE;AACtD,IAAA,OAAO,CAAC,CAAC,CAAA;GACV,MAAM,IAAI4J,WAAW,CAAC5J,WAAW,GAAG6J,YAAY,CAAC7J,WAAW,EAAE;AAC7D,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;EACA,IAAI4J,WAAW,CAAC3J,aAAa,KAAKe,SAAS,IAAI6I,YAAY,CAAC5J,aAAa,KAAKe,SAAS,EAAE;AACvF,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AACA,EAAA,IAAI4I,WAAW,CAAC3J,aAAa,GAAG4J,YAAY,CAAC5J,aAAa,EAAE;AAC1D,IAAA,OAAO,CAAC,CAAC,CAAA;GACV,MAAM,IAAI2J,WAAW,CAAC3J,aAAa,GAAG4J,YAAY,CAAC5J,aAAa,EAAE;AACjE,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AAEA,EAAA,IAAI2J,WAAW,CAACrM,KAAK,GAAGsM,YAAY,CAACtM,KAAK,EAAE;AAC1C,IAAA,OAAO,CAAC,CAAC,CAAA;GACV,MAAM,IAAIqM,WAAW,CAACrM,KAAK,GAAGsM,YAAY,CAACtM,KAAK,EAAE;AACjD,IAAA,OAAO,CAAC,CAAA;AACV,GAAA;AAEA,EAAA,OAAO,CAAC,CAAA;AACV,CAAC,CAAA;AAED,MAAMuM,oBAAoB,GAAGA,CAACF,WAA2B,EAAEC,YAA4B,KAAc;EACnG,OACED,WAAW,CAAC5J,WAAW,KAAK6J,YAAY,CAAC7J,WAAW,IACpD4J,WAAW,CAAC3J,aAAa,KAAK4J,YAAY,CAAC5J,aAAa,IACxD2J,WAAW,CAACrM,KAAK,KAAKsM,YAAY,CAACtM,KAAK,CAAA;AAE5C,CAAC,CAAA;MAEYwM,yBAAyB,GAAGA,CACvClH,WAA4B,EAC5BmH,kBAAmC,KACvB;EACZ,MAAM;IAAE5H,KAAK;AAAEX,IAAAA,YAAAA;AAAa,GAAC,GAAGoB,WAAW,CAAA;EAC3C,MAAM;AAAET,IAAAA,KAAK,EAAE6H,YAAY;AAAExI,IAAAA,YAAY,EAAEyI,mBAAAA;AAAoB,GAAC,GAAGF,kBAAkB,CAAA;EAErF,IAAIvI,YAAY,KAAKyI,mBAAmB,EAAE;AACxC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,IAAI9H,KAAK,CAAC3D,MAAM,KAAKwL,YAAY,CAACxL,MAAM,EAAE;AACxC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA2D,EAAAA,KAAK,CAAC0B,IAAI,CAAC6F,cAAc,CAAC,CAAA;AAC1BM,EAAAA,YAAY,CAACnG,IAAI,CAAC6F,cAAc,CAAC,CAAA;AAEjC,EAAA,KAAK,IAAIQ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG/H,KAAK,CAAC3D,MAAM,EAAE0L,CAAC,EAAE,EAAE;AACrC,IAAA,MAAM5L,MAAM,GAAG6D,KAAK,CAAC+H,CAAC,CAAC,CAAA;AACvB,IAAA,MAAMC,eAAe,GAAGH,YAAY,CAACE,CAAC,CAAC,CAAA;;AAEvC;AACA;AACA,IAAA,IAAI,CAACL,oBAAoB,CAACvL,MAAM,EAAE6L,eAAe,CAAC,EAAE;AAClD,MAAA,OAAO,KAAK,CAAA;AACd,KAAA;AACF,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACb;;AC9iCA;;AAKA;AACO,MAAMC,aAAa,GAAGA,CAAC9G,YAAqB,EAAElE,GAAW,KAAK;EACnE,IAAIiL,WAAW,GAAG,IAAI,CAAA;EACtB,IAAI;IACFA,WAAW,GAAGtN,MAAM,CAACC,YAAY,CAACsN,OAAO,CAAClL,GAAG,CAAC,CAAA;GAC/C,CAAC,OAAOlC,CAAC,EAAE;AACVqN,IAAAA,OAAO,CAACC,KAAK,CAAC,2DAA2D,EAAEtN,CAAC,CAAC,CAAA;AAC/E,GAAA;EACA,IAAIuN,WAAW,GACbJ,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAKtJ,SAAS,IAAIsJ,WAAW,KAAK,WAAW,GAC5EvI,IAAI,CAACC,KAAK,CAACsI,WAAW,CAAC,GACvB/G,YAAY,CAAA;;AAElB;AACA;EACA,IAAImH,WAAW,YAAY/L,KAAK,EAAE;AAChC,IAAA,MAAMuD,MAAM,GAAG,CAACwI,WAAW,IAAI,EAAE,EAAEvM,GAAG,CAAEK,IAAI,IAAKA,IAAI,CAAC6B,KAAK,CAAC,CAAA;AAC5D,IAAA,IAAI6B,MAAM,CAACtB,QAAQ,CAAC,YAAY,CAAC,IAAIsB,MAAM,CAACtB,QAAQ,CAAC,OAAO,CAAC,EAAE;AAC7D8J,MAAAA,WAAW,GAAGnH,YAAY,CAAA;AAC5B,KAAA;AACF,GAAA;AAEA,EAAA,MAAMoH,WAAW,GAAGC,WAAW,CAC5BrN,KAAc,IAAK;IAClB,IAAI;AACFP,MAAAA,MAAM,CAACC,YAAY,CAAC4N,OAAO,CAACxL,GAAG,EAAE0C,IAAI,CAACiB,SAAS,CAACzF,KAAK,CAAC,CAAC,CAAA;KACxD,CAAC,OAAOJ,CAAC,EAAE;AACVqN,MAAAA,OAAO,CAACC,KAAK,CAAC,2DAA2D,EAAEtN,CAAC,CAAC,CAAA;AAC/E,KAAA;AACF,GAAC,EACD,CAACkC,GAAG,CACN,CAAC,CAAA;AAED,EAAA,OAAO,CAACqL,WAAW,EAAEC,WAAW,CAAC,CAAA;AACnC,CAAC;;AC5BM,MAAMG,cAAc,GAAGA,CAACrO,EAAU,EAAEC,OAAe,KAAK;EAC7D,MAAM,CAACgM,eAAe,EAAEqC,kBAAkB,CAAC,GAAGV,aAAa,CACzD,EAAE,EACF9N,eAAe,CAAC;IAAEE,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAQ,EAAEZ,oBAAAA;AAAqB,GAAC,CACjE,CAAC,CAAA;EAED,MAAM,CAACsI,SAAS,EAAE2G,YAAY,CAAC,GAAGX,aAAa,CAAC,EAAE,EAAE9N,eAAe,CAAC;IAAEE,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAQ,EAAEV,cAAAA;AAAe,GAAC,CAAC,CAAC,CAAA;EAE/G,MAAM,CAACkH,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGiH,aAAa,CACjE,EAAE,EACF9N,eAAe,CAAC;IAAEE,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAQ,EAAEN,iBAAAA;AAAkB,GAAC,CAC9D,CAAC,CAAA;EAED,MAAM,CAAC4O,2BAA2B,EAAEC,8BAA8B,CAAC,GAAGb,aAAa,CACjF,EAAE,EACF9N,eAAe,CAAC;IAAEE,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAQ,EAAET,oBAAAA;AAAqB,GAAC,CACjE,CAAC,CAAA;EAED,MAAM,CAACsL,aAAa,EAAE2D,gBAAgB,CAAC,GAAGd,aAAa,CACrD,8CAA8C,EAC9C9N,eAAe,CAAC;IAAEE,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAQ,EAAER,cAAAA;AAAe,GAAC,CAC3D,CAAC,CAAA;AAED,EAAA,MAAM,CAACiP,cAAc,EAAEC,iBAAiB,CAAC,GAAGhB,aAAa,CACvD,EAAE,EACF9N,eAAe,CAAC;IAAEE,EAAE;IAAEC,OAAO;AAAEC,IAAAA,QAAQ,EAAEP,mBAAAA;AAAoB,GAAC,CAChE,CAAC,CAAA;EAED,OAAO;IACLsM,eAAe;IACfqC,kBAAkB;IAClB1G,SAAS;IACT2G,YAAY;IACZ7H,mBAAmB;IACnBC,sBAAsB;IACtB6H,2BAA2B;IAC3BC,8BAA8B;IAC9B1D,aAAa;IACb2D,gBAAgB;IAChBC,cAAc;AACdC,IAAAA,iBAAAA;GACD,CAAA;AACH,CAAC;;ACIM,MAAMC,gBAAgB,GAAIC,KAA4B,IAA8B;EACzF,MAAM;AACJ;IACAC,MAAM;IACNnI,YAAY;AACZnD,IAAAA,OAAO,EAAEuL,YAAY;AACrBC,IAAAA,6BAA6B,EAAEC,kCAAkC;AACjEC,IAAAA,mBAAmB,EAAEC,wBAAwB;AAC7CC,IAAAA,mBAAmB,EAAEC,wBAAwB;AAC7CC,IAAAA,YAAY,EAAEC,iBAAiB;AAC/BC,IAAAA,gBAAgB,EAAEC,qBAAqB;AACvCC,IAAAA,qBAAqB,EAAEC,0BAA0B;AACjDC,IAAAA,iBAAiB,EAAEC,sBAAsB;IACzCC,SAAS;AACT/D,IAAAA,mBAAmB,GAAG,CAAC;AACvB5L,IAAAA,4BAA4B,GAAG,EAAA;AACjC,GAAC,GAAG0O,KAAK,CAAA;EAET,MAAM;IAAErI,MAAM;IAAEuJ,QAAQ;AAAErD,IAAAA,cAAAA;GAAgB,GAAGoD,SAAS,EAAE,CAAA;EAExD,MAAM/P,EAAE,GAAGgQ,QAAQ,CAAA;;AAEnB;EACA,MAAM;IACJ/D,eAAe;IACfqC,kBAAkB;IAClB1G,SAAS;IACT2G,YAAY;IACZ7H,mBAAmB;IACnBC,sBAAsB;IACtB6H,2BAA2B;IAC3BC,8BAA8B;IAC9B1D,aAAa;IACb2D,gBAAgB;IAChBC,cAAc;AACdC,IAAAA,iBAAAA;AACF,GAAC,GAAGP,cAAc,CAACrO,EAAE,EAAEgM,mBAAmB,CAAC,CAAA;;AAE3C;AACAiE,EAAAA,SAAS,CAAC,MAAM9P,2BAA2B,CAACH,EAAE,EAAEI,4BAA4B,CAAC,EAAE,CAACJ,EAAE,EAAEI,4BAA4B,CAAC,CAAC,CAAA;AAElH,EAAA,MAAM8P,uBAAuB,GAAG/B,WAAW,CACzCpO,IAAA,IAMM;IAAA,IANL;MACCoQ,QAAQ;AACRvM,MAAAA,KAAAA;AAIF,KAAC,GAAA7D,IAAA,CAAA;AACC6O,IAAAA,iBAAiB,CAAAnG,cAAA,CAAAA,cAAA,KAAMkG,cAAc,CAAA,EAAA,EAAA,EAAA;AAAE,MAAA,CAAC/K,KAAK,GAAGuM,QAAAA;AAAQ,KAAA,CAAE,CAAC,CAAA;AAC7D,GAAC,EACD,CAACxB,cAAc,EAAEC,iBAAiB,CACpC,CAAC,CAAA;EAED,MAAM;AACJxI,IAAAA,WAAW,EAAEgK,YAAY;AACzBxI,IAAAA,SAAS,EAAEyI,eAAe;AAC1BpE,IAAAA,eAAe,EAAEqE,qBAAqB;AACtC7F,IAAAA,qBAAqB,EAAE8F,eAAe;AACtCpE,IAAAA,kBAAAA;AACF,GAAC,GAAGO,mCAAmC,CACrCjG,MAAM,IAAI,EAAE,EACZuF,mBAAmB,EACnBgD,YAAY,EACZrC,cAAc,EACd/F,YAAY,EACZ;IACEF,mBAAmB;IACnBC,sBAAsB;AACtBc,IAAAA,mBAAmB,EAAEG,SAAS;AAC9BF,IAAAA,sBAAsB,EAAE6G,YAAY;AACpChG,IAAAA,sBAAsB,EAAE0D,eAAe;AACvCzD,IAAAA,yBAAyB,EAAE8F,kBAAkB;AAC7ClE,IAAAA,6BAA6B,EAAEoE,2BAA2B;AAC1DnE,IAAAA,gCAAgC,EAAEoE,8BAA8B;AAChEjD,IAAAA,yBAAyB,EAAET,aAAa;AACxCU,IAAAA,4BAA4B,EAAEiD,gBAAAA;AAChC,GACF,CAAC,CAAA;EAED,MAAMjL,OAAO,GAAG+M,OAAO,CACrB,MACExB,YAAY,CAACtN,GAAG,CAAEgC,MAAkB,IAAK;AACvCA,IAAAA,MAAM,CAAC+M,KAAK,GAAG9B,cAAc,CAACjL,MAAM,CAACE,KAAK,CAAC,IAAIF,MAAM,CAAC+M,KAAK,IAAI,GAAG,CAAA;AAClE,IAAA,OAAO/M,MAAM,CAAA;AACf,GAAC,CAAC,EACJ,CAACsL,YAAY,EAAEL,cAAc,CAC/B,CAAC,CAAA;;AAED;AACCI,EAAAA,MAAM,CAAC2B,OAAO,CAAwBC,SAAS,GAAG,MAAM;AACvD5B,IAAAA,MAAM,CAAC2B,OAAO,CAACE,OAAO,CAAC,CAAC,CAAC,CAAA;GAC1B,CAAA;EAED,OAAO;IACL7B,MAAM;IACNtL,OAAO;AACP4L,IAAAA,mBAAmB,EAAEA,CAACwB,KAAsB,EAAEC,OAAsC,KAAK;AACvF,MAAA,MAAM1K,WAA4B,GAAAqC,cAAA,CAAAA,cAAA,KAC7BoI,KAAK,CAAA,EAAA,EAAA,EAAA;QACRlL,KAAK,EAAEkL,KAAK,CAAClL,KAAK,CAACjE,GAAG,CAAEK,IAAI,IAAK;UAC/B,MAAM2B,MAAM,GAAGqL,MAAM,CAAC2B,OAAO,CAACK,SAAS,CAAChP,IAAI,CAACwB,WAAW,CAAC,CAAA;AACxDxB,UAAAA,IAAI,CAA4B+B,IAAI,GAAGJ,MAAM,CAACI,IAAI,IAAI,QAAQ,CAAA;AAC/D,UAAA,OAAO/B,IAAI,CAAA;AACb,SAAC,CAAC;AACFoD,QAAAA,iBAAiB,EAAE0L,KAAK,CAAC1L,iBAAiB,IAAI,EAAA;OAC/C,CAAA,CAAA;MACDmK,wBAAwB,KAAA,IAAA,IAAxBA,wBAAwB,KAAxBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,wBAAwB,CAAGlJ,WAAW,EAAE0K,OAAO,CAAC,CAAA;AAChDhE,MAAAA,SAAS,CACP;AACE1G,QAAAA,WAAW,EAAEA,WAAW;AACxBwB,QAAAA,SAAS,EAAEyI,eAAe;AAC1BpE,QAAAA,eAAe,EAAEqE,qBAAqB;QACtCtD,YAAY,EAAE+B,MAAM,CAAC2B,OAAO,CAACM,KAAK,CAACvN,OAAO,CAACgH,qBAAqB;AAChE0B,QAAAA,kBAAkB,EAAEA,kBAAAA;OACrB,EACD1F,MAAM,EACNuF,mBAAmB,EACnBW,cAAc,EACdlJ,OACF,CAAC,CAAA;KACF;AACD2C,IAAAA,WAAW,EAAEgK,YAAY;AACzBP,IAAAA,iBAAiB,EAAEA,CAACgB,KAAoB,EAAEC,OAA4B,KAAK;MACzEhB,sBAAsB,KAAA,IAAA,IAAtBA,sBAAsB,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,CAAGe,KAAK,EAAEC,OAAO,CAAC,CAAA;AACxChE,MAAAA,SAAS,CACP;AACE1G,QAAAA,WAAW,EAAEgK,YAAY;AACzBxI,QAAAA,SAAS,EAAEiJ,KAAK;AAChB5E,QAAAA,eAAe,EAAEqE,qBAAqB;QACtCtD,YAAY,EAAE+B,MAAM,CAAC2B,OAAO,CAACM,KAAK,CAACvN,OAAO,CAACgH,qBAAqB;AAChE0B,QAAAA,kBAAkB,EAAEA,kBAAAA;OACrB,EACD1F,MAAM,EACNuF,mBAAmB,EACnBW,cAAc,EACdlJ,OACF,CAAC,CAAA;KACF;AACDmE,IAAAA,SAAS,EAAEyI,eAAe;AAC1BV,IAAAA,qBAAqB,EAAEA,CAAC5E,aAAgC,EAAE+F,OAA4B,KAAK;MACzFlB,0BAA0B,KAAA,IAAA,IAA1BA,0BAA0B,KAA1BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,0BAA0B,CAAG7E,aAAa,EAAE+F,OAAO,CAAC,CAAA;AACpDhE,MAAAA,SAAS,CACP;AACE1G,QAAAA,WAAW,EAAEgK,YAAY;AACzBxI,QAAAA,SAAS,EAAEyI,eAAe;AAC1BpE,QAAAA,eAAe,EAAEqE,qBAAqB;QACtCtD,YAAY,EAAE+B,MAAM,CAAC2B,OAAO,CAACM,KAAK,CAACvN,OAAO,CAACgH,qBAAqB;AAChE0B,QAAAA,kBAAkB,EAAEpB,aAAAA;OACrB,EACDtE,MAAM,EACNuF,mBAAmB,EACnBW,cAAc,EACdlJ,OACF,CAAC,CAAA;KACF;AACDsH,IAAAA,aAAa,EAAEoB,kBAAkB;IACjClE,IAAI,EAAEqI,qBAAqB,CAACrI,IAAI;IAChCE,QAAQ,EAAEmI,qBAAqB,CAACnI,QAAQ;AACxCoH,IAAAA,YAAY,EAAEA,CAACtH,IAAI,EAAE6I,OAAO,KAAK;MAC/B,MAAM1I,SAAS,GAAGkI,qBAAqB,CAACrI,IAAI,GAAGA,IAAI,GAAG,MAAM,GAAG,MAAM,CAAA;MACrEuH,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAiB,CAAGvH,IAAI,EAAE6I,OAAO,CAAC,CAAA;AAClChE,MAAAA,SAAS,CACP;AACE1G,QAAAA,WAAW,EAAEgK,YAAY;AACzBxI,QAAAA,SAAS,EAAEyI,eAAe;AAC1BpE,QAAAA,eAAe,EAAE;UACfhE,IAAI;UACJE,QAAQ,EAAEmI,qBAAqB,CAACnI,QAAQ;AACxCC,UAAAA,SAAAA;SAC8B;QAChC4E,YAAY,EAAE+B,MAAM,CAAC2B,OAAO,CAACM,KAAK,CAACvN,OAAO,CAACgH,qBAAqB;AAChE0B,QAAAA,kBAAkB,EAAEA,kBAAAA;OACrB,EACD1F,MAAM,EACNuF,mBAAmB,EACnBW,cAAc,EACdlJ,OACF,CAAC,CAAA;KACF;AACDgM,IAAAA,gBAAgB,EAAEA,CAACtH,QAAQ,EAAE2I,OAAO,KAAK;MACvCpB,qBAAqB,KAAA,IAAA,IAArBA,qBAAqB,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAqB,CAAGvH,QAAQ,EAAE2I,OAAO,CAAC,CAAA;AAC1ChE,MAAAA,SAAS,CACP;AACE1G,QAAAA,WAAW,EAAEgK,YAAY;AACzBxI,QAAAA,SAAS,EAAEyI,eAAe;AAC1BpE,QAAAA,eAAe,EAAE;UACfhE,IAAI,EAAEqI,qBAAqB,CAACrI,IAAI;UAChCE,QAAQ;UACRC,SAAS,EAAEkI,qBAAqB,CAAClI,SAAAA;SACH;QAChC4E,YAAY,EAAE+B,MAAM,CAAC2B,OAAO,CAACM,KAAK,CAACvN,OAAO,CAACgH,qBAAqB;AAChE0B,QAAAA,kBAAkB,EAAEA,kBAAAA;OACrB,EACD1F,MAAM,EACNuF,mBAAmB,EACnBW,cAAc,EACdlJ,OACF,CAAC,CAAA;KACF;AACDgH,IAAAA,qBAAqB,EAAE8F,eAAe;AACtCtB,IAAAA,6BAA6B,EAAEA,CAAC/C,sBAAsB,EAAE4E,OAAO,KAAK;MAClE5B,kCAAkC,KAAA,IAAA,IAAlCA,kCAAkC,KAAlCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,kCAAkC,CAAGhD,sBAAsB,EAAE4E,OAAO,CAAC,CAAA;AACrEhE,MAAAA,SAAS,CACP;AACE1G,QAAAA,WAAW,EAAEgK,YAAY;AACzBxI,QAAAA,SAAS,EAAEyI,eAAe;AAC1BpE,QAAAA,eAAe,EAAEqE,qBAAqB;AACtCtD,QAAAA,YAAY,EAAEd,sBAAsB;AACpCC,QAAAA,kBAAkB,EAAEA,kBAAAA;OACrB,EACD1F,MAAM,EACNuF,mBAAmB,EACnBW,cAAc,EACdlJ,OACF,CAAC,CAAA;KACF;AACD0L,IAAAA,mBAAmB,EAAEA,CAAC8B,MAAM,EAAEC,KAAK,EAAEJ,OAAO,KAAK;MAC/C1B,wBAAwB,KAAA,IAAA,IAAxBA,wBAAwB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAxBA,wBAAwB,CAAG6B,MAAM,EAAEC,KAAK,EAAEJ,OAAO,CAAC,CAAA;AAClDZ,MAAAA,uBAAuB,CAAC;QAAEC,QAAQ,EAAEc,MAAM,CAACR,KAAK;AAAE7M,QAAAA,KAAK,EAAEqN,MAAM,CAACE,MAAM,CAACvN,KAAAA;AAAM,OAAC,CAAC,CAAA;AACjF,KAAA;GACD,CAAA;AACH,CAAC;;;ACnPD,MAAMwN,cAAc,GAAG,UAAU,CAAA;AACjC,MAAMC,SAAS,GAAG,kBAAkB,CAAA;AAE7B,MAAMC,gBAA6D,gBAAGC,UAAU,CAAC,CAACzC,KAAK,EAAE0C,GAAG,KAAK;AACtG,EAAA,MAAMC,WAAW,GAAGD,GAAG,IAAIE,MAAM,EAAkB,CAAA;EAEnD,MAAM;AACJ3C,MAAAA,MAAM,EAAE4C,WAAW;MACnBC,UAAU;MACVC,SAAS;MACTpO,OAAO;AACPqO,MAAAA,WAAW,EAAEC,gBAAgB;MAC7BC,UAAU;MACVC,eAAe;AACf7L,MAAAA,WAAW,EAAE8L,gBAAgB;AAC7BzH,MAAAA,qBAAqB,EAAE0H,0BAA0B;AACjDpH,MAAAA,aAAa,EAAEqH,kBAAkB;AACjCxK,MAAAA,SAAS,EAAEyK,cAAc;AACzBpK,MAAAA,IAAI,EAAEqK,SAAS;AACfnK,MAAAA,QAAQ,EAAEoK,aAAa;AACvBC,MAAAA,MAAM,EAAEC,WAAW;MACnBC,WAAW;MACX9L,YAAY;MACZ+L,eAAe;AACfC,MAAAA,OAAO,GAAGC,OAAO,CAACC,GAAG,CAACC,eAAe;MACrC/G,mBAAmB;MACnB5L,4BAA4B;AAC5BiP,MAAAA,mBAAmB,EAAEC,wBAAwB;AAC7C0D,MAAAA,cAAc,EAAEC,mBAAmB;AACnC9D,MAAAA,mBAAmB,EAAEC,wBAAwB;AAC7CG,MAAAA,YAAY,EAAEC,iBAAiB;AAC/BC,MAAAA,gBAAgB,EAAEC,qBAAqB;AACvCwD,MAAAA,sBAAsB,EAAEC,2BAA2B;AACnDlE,MAAAA,6BAA6B,EAAEC,kCAAkC;AACjES,MAAAA,qBAAqB,EAAEC,0BAA0B;AACjDC,MAAAA,iBAAiB,EAAEC,sBAAsB;MACzC9H,UAAU;AACVoL,MAAAA,mBAAmB,GAAG,MAAM;MAC5BC,eAAe;MACfC,IAAI;MACJC,kBAAkB;MAClBC,EAAE;AACFC,MAAAA,KAAK,EAAEC,UAAU;MACjB3D,SAAS;AACT4D,MAAAA,cAAc,GAAG,QAAQ;AACzBC,MAAAA,QAAAA;AAEF,KAAC,GAAG9E,KAAK;AADJ+E,IAAAA,cAAc,GAAAC,wBAAA,CACfhF,KAAK,EAAAiF,SAAA,CAAA,CAAA;AAET,EAAA,MAAMN,KAAK,GAAGO,QAAQ,CAACN,UAAU,CAAC,CAAA;AAElC,EAAA,MAAMO,OAAO,GAAGC,aAAa,EAAE,CAAA;EAC/B,MAAMnF,MAAM,GAAG4C,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,WAAW,GAAIsC,OAAO,CAAA;AACrC,EAAA,MAAME,eAAe,GAAGnC,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,IAAAA,UAAU,CAAEoC,OAAO,GAAGpC,UAAU,CAACoC,OAAO,GAAGC,OAAc,CAAA;AAEjFC,EAAAA,WAAW,CAACC,aAAa,CAAC3B,OAAQ,CAAC,CAAA;AAEnC,EAAA,MAAMJ,MAAM,GAAGC,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,KAAA,CAAA,GAAXA,WAAW,GAAKb,UAAU,GAAGrN,SAAS,GAAG,OAAQ,CAAA;EAEhE,MAAM;AACJ0K,IAAAA,6BAA6B,EAAEuF,uCAAuC;AACtEnF,IAAAA,mBAAmB,EAAEoF,6BAA6B;AAClDlF,IAAAA,YAAY,EAAEmF,sBAAsB;AACpCjF,IAAAA,gBAAgB,EAAEkF,0BAA0B;AAC5ChF,IAAAA,qBAAqB,EAAEiF,+BAA+B;AACtD/E,IAAAA,iBAAiB,EAAEgF,2BAAAA;GACpB,GAAGC,0BAA0B,CAAC;IAC7BlO,YAAY;IACZ2M,kBAAkB;IAClBpB,0BAA0B;IAC1BD,gBAAgB;IAChBhD,kCAAkC;IAClCI,wBAAwB;IACxBM,0BAA0B;IAC1BE,sBAAsB;IACtBwC,SAAS;IACTC,aAAa;IACbH,kBAAkB;IAClBC,cAAc;IACd7C,iBAAiB;AACjBE,IAAAA,qBAAAA;AACF,GAAC,CAAC,CAAA;EAEF,MAAM;IACJjF,qBAAqB;IACrBrE,WAAW;IACX6I,6BAA6B;IAC7BI,mBAAmB;IACnBE,YAAY;IACZE,gBAAgB;IAChBE,qBAAqB;IACrBE,iBAAiB;IACjB5H,IAAI;IACJE,QAAQ;IACR4C,aAAa;IACbnD,SAAS;AACTuH,IAAAA,mBAAAA;GACD,GAAGN,gBAAgB,CAAC;AACnBE,IAAAA,MAAM,EAAEA,MAAO;IACfnI,YAAY;IACZnD,OAAO;AACPwL,IAAAA,6BAA6B,EAAEuF,uCAAuC;AACtErF,IAAAA,mBAAmB,EAAEC,wBAAwB;AAC7CC,IAAAA,mBAAmB,EAAEoF,6BAA6B;AAClDlF,IAAAA,YAAY,EAAEmF,sBAAsB;AACpCjF,IAAAA,gBAAgB,EAAEkF,0BAA0B;AAC5ChF,IAAAA,qBAAqB,EAAEiF,+BAA+B;AACtD/E,IAAAA,iBAAiB,EAAEgF,2BAA2B;AAC9C9E,IAAAA,SAAS,EAAEA,SAAU;IACrB/D,mBAAmB;AACnB5L,IAAAA,4BAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAM,CAAC4S,cAAc,EAAE+B,iBAAiB,CAAC,GAAGC,QAAQ,CAAC/B,mBAAmB,aAAnBA,mBAAmB,KAAA,KAAA,CAAA,GAAnBA,mBAAmB,GAAI,EAAE,CAAC,CAAA;AAC/EhD,EAAAA,SAAS,CAAC,MAAM;IACd8E,iBAAiB,CAAC9B,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,cAAnBA,mBAAmB,GAAI,EAAE,CAAC,CAAA;AAC9C,GAAC,EAAE,CAACA,mBAAmB,CAAC,CAAC,CAAA;AAEzB,EAAA,MAAMC,sBAAsB,GAAGA,CAACF,cAAkC,EAAElC,OAA4B,KAAK;AACnG,IAAA,IAAIqC,2BAA2B,EAAE;AAC/BA,MAAAA,2BAA2B,CAACH,cAAc,EAAElC,OAAO,CAAC,CAAA;AACtD,KAAC,MAAM;MACLiE,iBAAiB,CAAC/B,cAAc,CAAC,CAAA;AACnC,KAAA;GACD,CAAA;EAED,MAAMiC,eAAe,GAAGvD,MAAM,CAAkB;AAC9C5N,IAAAA,IAAI,EAAE,MAAM;AACZoR,IAAAA,oBAAoB,EAAE,CAAC;AACvBC,IAAAA,0BAA0B,EAAE,CAAC;IAC7BlN,IAAI;AACJE,IAAAA,QAAQ,EAAEA,QAAAA;AACZ,GAAC,CAAC,CAAA;;AAEF;AACA;AACA8H,EAAAA,SAAS,CAAC,MAAM;IACd,IAAI0D,cAAc,IAAI,QAAQ,EAAE;MAC9ByB,iCAAiC,CAC/BlT,KAAK,CAACC,OAAO,CAAC6Q,cAAc,CAAC,GAAGA,cAAc,GAAG,CAACA,cAAc,CAAC,EACjEjE,MAAM,EACNkG,eAAe,EACftC,eAAe,EACf1K,IAAI,EACJE,QACF,CAAC,CAAA;AACH,KAAA;GACD,EAAE,CAAC6K,cAAc,EAAE/K,IAAI,EAAEE,QAAQ,CAAC,CAAC,CAAA;AAEpC,EAAA,IAAI,CAACjG,KAAK,CAACC,OAAO,CAACmR,IAAI,CAAC,EAAE;AACxB,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;AAEA,EAAA,MAAM+B,QAAQ,GAAG7E,OAAO,CACtB,MACE8E,WAAW,CAAC;AACVC,IAAAA,OAAO,EAAE;AACPC,MAAAA,IAAI,EAAE/B,KAAK;AACXgC,MAAAA,OAAO,EAAE;AAAEC,QAAAA,IAAI,EAAEC,iBAAAA;OAAmB;AACpCC,MAAAA,UAAU,EAAE;AACVC,QAAAA,OAAO,EAAEpC,KAAK,KAAK,MAAM,GAAGqC,4BAA4B,GAAGC,wBAAwB;AACnFC,QAAAA,KAAK,EAAEvC,KAAK,KAAK,MAAM,GAAGqC,4BAA4B,GAAGC,wBAAAA;AAC3D,OAAA;AACF,KAAA;AACF,GAAC,CAAC,EACJ,CAACtC,KAAK,CACR,CAAC,CAAA;AAED,EAAA,oBACEwC,cAAA,CAAAC,aAAA,CAACC,aAAa,EAAA;AAACrV,IAAAA,KAAK,EAAE;AAAE2S,MAAAA,KAAAA;AAAM,KAAA;AAAE,GAAA,eAC9BwC,cAAA,CAAAC,aAAA,CAACE,eAAgB,EAAA;AAAC3C,IAAAA,KAAK,EAAE4B,QAAAA;AAAS,GAAA,eAEhCY,cAAA,CAAAC,aAAA,CAACG,cAAc,EAAA;AACb7E,IAAAA,GAAG,EAAEC,WAAyC;IAC9CI,SAAS,EAAEyE,UAAU,CAAChF,gBAAgB,CAACO,SAAS,EAAEA,SAAS,CAAE;AAC7D0E,IAAAA,OAAO,EAAE/D,MAAAA;GAETyD,eAAAA,cAAA,CAAAC,aAAA,CAACM,WAAW,EAAAC,QAAA,KACN5C,cAAc,EAAA;AAClB9E,IAAAA,MAAM,EAAEA,MAAO;AACftL,IAAAA,OAAO,EAAEA,OAAQ;AACjBgH,IAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CrE,IAAAA,WAAW,EAAEA,WAAY;AACzB6I,IAAAA,6BAA6B,EAAEA,6BAA8B;AAC7DI,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCE,IAAAA,YAAY,EAAEA,YAAa;AAC3BE,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCE,IAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CE,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrC5H,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,QAAQ,EAAEA,QAAS;AACnB4C,IAAAA,aAAa,EAAEA,aAAc;AAC7BnD,IAAAA,SAAS,EAAEA,SAAU;AACrB2L,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCpE,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCvI,IAAAA,YAAY,EAAEA,YAAa;AAC3B+L,IAAAA,eAAe,EAAEA,eAAgB;AACjC3K,IAAAA,UAAU,EAAEA,UAAW;AACvB2L,IAAAA,cAAc,EAAEA,cAAe;IAC/B+C,2BAA2B,EAAE/C,cAAc,IAAI,QAAS;AACxDL,IAAAA,IAAI,EAAEA,IAAK;AACXM,IAAAA,QAAQ,EAAEA,QAAU;AACpBhC,IAAAA,UAAU,EAAEA,UAAW;AACvB+E,IAAAA,4BAA4B,EAAEC,OAAO,CAAC5O,UAAU,CAAE;IAClD8J,WAAW,EAAArJ,cAAA,CAAAA,cAAA,KAAOoO,iBAAiB,CAAA,EAAK9E,gBAAgB,CAAG;IAC3DC,UAAU,EAAAvJ,cAAA,CAAAA,cAAA,CAAA;MACRqO,UAAU;MACVC,YAAY;AACZ;MACAC,UAAU;MACVC,kBAAkB,EAAGnI,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,oBAAA;AAAoB,OAAA,CAAE,CAAC;MACvFC,kBAAkB,EAAGtI,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,oBAAA;AAAoB,OAAA,CAAE,CAAC;MACvFE,yBAAyB,EAAGvI,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,2BAAA;AAA2B,OAAA,CAAE,CAAC;MACrGG,0BAA0B,EAAGxI,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,4BAAA;AAA4B,OAAA,CAAE,CAAC;MACvGI,kBAAkB,EAAGzI,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,oBAAA;AAAoB,OAAA,CAAE,CAAC;MACvFK,mBAAmB,EAAG1I,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,qBAAA;AAAqB,OAAA,CAAE,CAAC;MACzFM,sBAAsB,EAAG3I,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,wBAAA;AAAwB,OAAA,CAAE,CAAC;MAC/FO,uBAAuB,EAAG5I,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,yBAAA;AAAyB,OAAA,CAAE,CAAC;MACjGQ,qBAAqB,EAAG7I,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,uBAAA;AAAuB,OAAA,CAAE,CAAC;MAC7FS,UAAU,EAAG9I,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA,EAAA,EAAK3H,KAAK,EAAA;AAAEqI,QAAAA,WAAW,EAAC,YAAA;AAAY,OAAA,CAAE,CAAC;MACvEU,oBAAoB,EAAG/I,KAAK,iBAAKmH,cAAA,CAAAC,aAAA,CAACgB,QAAQ,EAAAT,QAAA,CAAA;AAACU,QAAAA,WAAW,EAAC,sBAAA;AAAsB,OAAA,EAAKrI,KAAK,CAAG,CAAA;AAAC,KAAA,EACxFkD,UAAU,CAAA,EAAA,EAAA,EAAA;AACboC,MAAAA,OAAO,EAAE0D,cAAc;MACvBC,UAAU,EAAGjJ,KAAK,IAAK;AACrB,QAAA,OAAO9G,UAAU,GACf2L,cAAc,IAAI,QAAQ,gBACxBsC,cAAA,CAAAC,aAAA,CAAC8B,8BAA8B,EAAAvB,QAAA,KACzB3H,KAAK,EAAA;AACTmJ,UAAAA,gBAAgB,EAAE,KAAM;UACxBC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC/T,QAAQ,CAACiP,mBAAoB,CAAE;UACtE+E,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAChU,QAAQ,CAACiP,mBAAoB,CAAE;UACrE6B,eAAe,EAAEA,eAAe,CAACvE,OAAQ;AACzCzI,UAAAA,IAAI,EAAEA,IAAK;AACXE,UAAAA,QAAQ,EAAEA,QAAS;AACnBoH,UAAAA,YAAY,EAAEA,YAAa;AAC3BE,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnC8D,UAAAA,kBAAkB,EAAEA,kBAAsC;AAC1DF,UAAAA,eAAe,EAAEA,eAAgB;AACjCM,UAAAA,cAAc,EAAEA,cAAe;AAC/BC,UAAAA,QAAQ,EAAEA,QAAAA;SACX,CAAA,CAAC,gBAEFqC,cAAA,CAAAC,aAAA,CAACkC,oBAAoB,EAAA3B,QAAA,CAAA,EAAA,EACf3H,KAAK,EAAA;AACTmJ,UAAAA,gBAAgB,EAAE,KAAM;UACxBC,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC/T,QAAQ,CAACiP,mBAAoB,CAAE;UACtE+E,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAChU,QAAQ,CAACiP,mBAAoB,CAAE;UACrE6B,eAAe,EAAEA,eAAe,CAACvE,OAAQ;AACzC3B,UAAAA,MAAM,EAAEA,MAAO;AACf4D,UAAAA,eAAe,EAAEA,eAAgB;AACjC1K,UAAAA,IAAI,EAAEA,IAAK;AACXE,UAAAA,QAAQ,EAAEA,QAAS;AACnBoH,UAAAA,YAAY,EAAEA,YAAa;AAC3BE,UAAAA,gBAAgB,EAAEA,gBAAiB;AACnC8D,UAAAA,kBAAkB,EAAEA,kBAAsC;AAC1DF,UAAAA,eAAe,EAAEA,eAAgB;AACjCM,UAAAA,cAAc,EAAEA,cAAAA;SACjB,CAAA,CACF,GACC,IAAI,CAAA;AACV,OAAA;KACA,CAAA;AACF1B,IAAAA,eAAe,EAAAxJ,cAAA,CAAAA,cAAA,KACVwJ,eAAe,CAAA,EAAA,EAAA,EAAA;AAClBoG,MAAAA,OAAO,EAAA5P,cAAA,CAAA;QACLiK,WAAW;QACXyB,eAAe;QACf/N,WAAW;QACXiJ,mBAAmB;QACnBrH,UAAU;QACVoL,mBAAmB;QACnB6B,eAAe;QACflG,MAAM;QACN4D,eAAe;QACf1K,IAAI;QACJE,QAAQ;QACRoH,YAAY;QACZE,gBAAgB;QAChB8D,kBAAkB;QAClBF,eAAe;QACfM,cAAc;AACdC,QAAAA,QAAAA;AAAQ,OAAA,EACL3B,eAAe,KAAfA,IAAAA,IAAAA,eAAe,KAAfA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,eAAe,CAAEoG,OAAO,CAAA;KAE7B,CAAA;AACFrF,IAAAA,cAAc,EAAEA,cAAe;AAC/BE,IAAAA,sBAAsB,EAAEA,CAACoF,iBAAiB,EAAExH,OAAO,KAAK;AACtD,MAAA,IAAI9I,UAAU,IAAI2L,cAAc,IAAI,QAAQ,EAAE;QAC5C,MAAM4E,oBAAoB,GAAG5F,eAAe,GACxC6F,gDAAgD,CAACzJ,MAAM,CAAC,CACrDjN,MAAM,CAAC/B,IAAA,IAAA;UAAA,IAAC;AAAE8Q,YAAAA,KAAAA;AAAM,WAAC,GAAA9Q,IAAA,CAAA;AAAA,UAAA,OAAK4S,eAAe,CAAC;AAAE8F,YAAAA,GAAG,EAAE5H,KAAAA;AAAM,WAAkB,CAAC,CAAA;SAAC,CAAA,CACvEnP,GAAG,CAAC8H,KAAA,IAAA;UAAA,IAAC;AAAExJ,YAAAA,EAAAA;AAAG,WAAC,GAAAwJ,KAAA,CAAA;AAAA,UAAA,OAAKxJ,EAAE,CAAA;AAAA,SAAA,CAAC,GACtB0Y,4CAA4C,CAAC3J,MAAM,CAAC,CAAA;AACxD,QAAA,MAAM4J,4BAA4B,GAAGJ,oBAAoB,CAACvW,MAAM,CAAA;QAEhE,MAAM4W,qBAAqB,GAAGjG,eAAe,GACzCkG,oCAAoC,CAAC9J,MAAM,CAAC,CACzCjN,MAAM,CAACiK,KAAA,IAAA;UAAA,IAAC;AAAE8E,YAAAA,KAAAA;AAAM,WAAC,GAAA9E,KAAA,CAAA;AAAA,UAAA,OAAK4G,eAAe,CAAC;AAAE8F,YAAAA,GAAG,EAAE5H,KAAAA;AAAM,WAAkB,CAAC,CAAA;SAAC,CAAA,CACvEnP,GAAG,CAACqL,KAAA,IAAA;UAAA,IAAC;AAAE/M,YAAAA,EAAAA;AAAG,WAAC,GAAA+M,KAAA,CAAA;AAAA,UAAA,OAAK/M,EAAE,CAAA;AAAA,SAAA,CAAC,GACtB8Y,gCAAgC,CAAC/J,MAAM,CAAC,CAAA;AAC5C,QAAA,MAAMgK,6BAA6B,GAAGH,qBAAqB,CAAC5W,MAAM,CAAA;AAElE,QAAA,MAAMkT,oBAAoB,GAAGoD,iBAAiB,CAACtW,MAAM,CAAA;AAErD,QAAA,IACGiT,eAAe,CAACvE,OAAO,CAAC5M,IAAI,KAAK,OAAO,IACvCoR,oBAAoB,KAAK6D,6BAA6B,GAAGJ,4BAA4B,IACtF1D,eAAe,CAACvE,OAAO,CAAC5M,IAAI,KAAK,OAAO,IACvCoR,oBAAoB,KAAK6D,6BAA8B,IACxD9D,eAAe,CAACvE,OAAO,CAAC5M,IAAI,KAAK,MAAM,IAAIoR,oBAAoB,KAAKyD,4BAA6B,EAClG;AACAK,UAAAA,UAAU,CAAC,MAAM;YACfjK,MAAM,CAAC2B,OAAO,CAACuI,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;WAC1C,EAAE,CAAC,CAAC,CAAA;AACP,SAAA;AAEA,QAAA,IACE/D,oBAAoB,KAAKyD,4BAA4B,IACrDA,4BAA4B,GAAGI,6BAA6B,EAC5D;UACA9D,eAAe,CAACvE,OAAO,GAAG;AACxB5M,YAAAA,IAAI,EAAE,MAAM;AACZoR,YAAAA,oBAAAA;WACD,CAAA;SACF,MAAM,IACLA,oBAAoB,KAAK6D,6BAA6B,IACtDJ,4BAA4B,GAAGI,6BAA6B,EAC5D;UACA9D,eAAe,CAACvE,OAAO,GAAG;AACxB5M,YAAAA,IAAI,EAAE,OAAO;AACboR,YAAAA,oBAAAA;WACD,CAAA;AACH,SAAC,MAAM,IAAIA,oBAAoB,GAAG,CAAC,EAAE;UACnCD,eAAe,CAACvE,OAAO,GAAG;AACxB5M,YAAAA,IAAI,EAAE,OAAO;AACboR,YAAAA,oBAAAA;WACD,CAAA;AACH,SAAC,MAAM;UACLD,eAAe,CAACvE,OAAO,GAAG;AACxB5M,YAAAA,IAAI,EAAE,MAAM;AACZoR,YAAAA,oBAAAA;WACD,CAAA;AACH,SAAA;AACF,OAAA;MACAhC,sBAAsB,KAAA,IAAA,IAAtBA,sBAAsB,KAAtBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAsB,CAAGoF,iBAAiB,EAAExH,OAAO,CAAC,CAAA;KACpD;AACF0C,IAAAA,EAAE,EAAA/K,cAAA,CAAAA,cAAA,KACG+K,EAAE,CAAA,EAAA,EAAA,EAAA;AACL,MAAA,4BAA4B,EAAE;AAC5B0F,QAAAA,aAAa,EAAE,QAAQ;AACvBC,QAAAA,UAAU,EAAE,QAAA;OACb;AACD,MAAA,+BAA+B,EAAE;AAC/BC,QAAAA,MAAM,EAAE,MAAA;AACV,OAAA;AAAC,KAAA,CAAA;GAEJ,CAAA,CACa,CACA,CACL,CAAC,CAAA;AAEpB,CAAC,EAAC;AACF9H,gBAAgB,CAACO,SAAS,GAAGR,SAAS,CAAA;AACtCC,gBAAgB,CAAC6F,WAAW,GAAG/F,cAAc;;;;"}
|
|
1
|
+
{"version":3,"file":"StatefulDataGrid2.js","sources":["../../../../node_modules/@mui/utils/esm/isMuiElement.js","../../../../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../../../../node_modules/@mui/system/esm/createBox.js","../../../../node_modules/@mui/material/Box/Box.js","../../../../node_modules/@mui/material/FormLabel/formLabelClasses.js","../../../../node_modules/@mui/material/FormLabel/FormLabel.js","../../../../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../../../../node_modules/@mui/material/InputLabel/InputLabel.js","../../../../node_modules/@mui/material/FormControl/formControlClasses.js","../../../../node_modules/@mui/material/FormControl/FormControl.js","../../../../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../../../../node_modules/@mui/material/FormHelperText/FormHelperText.js","../../../../node_modules/@mui/material/TextField/textFieldClasses.js","../../../../node_modules/@mui/material/TextField/TextField.js","../../src/utils/fields/InputNumberInterval.tsx","../../src/utils/operators/numeric/isBetween.tsx","../../src/utils/operators/numeric/getGridNumericOperators.ts","../../src/utils/operators/string/doesNotContain.tsx","../../src/utils/operators/string/doesNotEqual.tsx","../../src/utils/operators/string/doesNotHave.tsx","../../src/utils/operators/string/has.tsx","../../src/utils/operators/string/hasOnly.tsx","../../src/utils/operators/string/is.tsx","../../src/utils/operators/string/isNot.tsx","../../src/utils/operators/string-array/containsAnyOf.tsx","../../src/utils/operators/string-array/endsWithAnyOf.tsx","../../src/utils/operators/string-array/isAnyOf.tsx","../../src/utils/operators/string-array/hasAnyOf.tsx","../../src/utils/operators/string-array/isNotAnyOf.tsx","../../src/utils/operators/string-array/startsWithAnyOf.tsx","../../src/utils/operators/string-array/doesNotHaveAnyOf.tsx","../../src/utils/operators/string-array/getGridStringArrayOperators.ts","../../src/utils/operators/string/getGridStringOperators.ts","../../src/utils/operators/index.ts","../../src/utils/localStorage.ts","../../src/utils/urlLocalStorageSync.ts","../../src/hooks/useFetchState.tsx","../../src/hooks/useTableStates.tsx","../../src/hooks/useStatefulTable.tsx","../../src/components/StatefulDataGrid/StatefulDataGrid.tsx"],"sourcesContent":["import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null ? void 0 : (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from './styleFunctionSx';\nimport useTheme from './useTheme';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const _extendSxProp = extendSxProp(inProps),\n {\n className,\n component = 'div'\n } = _extendSxProp,\n other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);\n return /*#__PURE__*/_jsx(BoxRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme\n }, other));\n });\n return Box;\n}","import { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from '../className';\nimport { createTheme } from '../styles';\nimport THEME_ID from '../styles/identifier';\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: 'MuiBox-root',\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiFormLabel', slot);\n}\nconst formLabelClasses = generateUtilityClasses('MuiFormLabel', ['root', 'colorSecondary', 'focused', 'disabled', 'error', 'filled', 'required', 'asterisk']);\nexport default formLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"required\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport formLabelClasses, { getFormLabelUtilityClasses } from './formLabelClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n focused,\n disabled,\n error,\n filled,\n required\n } = ownerState;\n const slots = {\n root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', filled && 'filled', focused && 'focused', required && 'required'],\n asterisk: ['asterisk', error && 'error']\n };\n return composeClasses(slots, getFormLabelUtilityClasses, classes);\n};\nexport const FormLabelRoot = styled('label', {\n name: 'MuiFormLabel',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, ownerState.color === 'secondary' && styles.colorSecondary, ownerState.filled && styles.filled);\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, theme.typography.body1, {\n lineHeight: '1.4375em',\n padding: 0,\n position: 'relative',\n [`&.${formLabelClasses.focused}`]: {\n color: (theme.vars || theme).palette[ownerState.color].main\n },\n [`&.${formLabelClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst AsteriskComponent = styled('span', {\n name: 'MuiFormLabel',\n slot: 'Asterisk',\n overridesResolver: (props, styles) => styles.asterisk\n})(({\n theme\n}) => ({\n [`&.${formLabelClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}));\nconst FormLabel = /*#__PURE__*/React.forwardRef(function FormLabel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormLabel'\n });\n const {\n children,\n className,\n component = 'label'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['color', 'required', 'focused', 'disabled', 'error', 'filled']\n });\n const ownerState = _extends({}, props, {\n color: fcs.color || 'primary',\n component,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(FormLabelRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [children, fcs.required && /*#__PURE__*/_jsxs(AsteriskComponent, {\n ownerState: ownerState,\n \"aria-hidden\": true,\n className: classes.asterisk,\n children: [\"\\u2009\", '*']\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormLabel.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the label should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the label should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the input of this label is focused (used by `FormGroup` components).\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default FormLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getInputLabelUtilityClasses(slot) {\n return generateUtilityClass('MuiInputLabel', slot);\n}\nconst inputLabelClasses = generateUtilityClasses('MuiInputLabel', ['root', 'focused', 'disabled', 'error', 'required', 'asterisk', 'formControl', 'sizeSmall', 'shrink', 'animated', 'standard', 'filled', 'outlined']);\nexport default inputLabelClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disableAnimation\", \"margin\", \"shrink\", \"variant\", \"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport clsx from 'clsx';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport FormLabel, { formLabelClasses } from '../FormLabel';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport { getInputLabelUtilityClasses } from './inputLabelClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n formControl,\n size,\n shrink,\n disableAnimation,\n variant,\n required\n } = ownerState;\n const slots = {\n root: ['root', formControl && 'formControl', !disableAnimation && 'animated', shrink && 'shrink', size === 'small' && 'sizeSmall', variant],\n asterisk: [required && 'asterisk']\n };\n const composedClasses = composeClasses(slots, getInputLabelUtilityClasses, classes);\n return _extends({}, classes, composedClasses);\n};\nconst InputLabelRoot = styled(FormLabel, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiInputLabel',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${formLabelClasses.asterisk}`]: styles.asterisk\n }, styles.root, ownerState.formControl && styles.formControl, ownerState.size === 'small' && styles.sizeSmall, ownerState.shrink && styles.shrink, !ownerState.disableAnimation && styles.animated, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'block',\n transformOrigin: 'top left',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '100%'\n}, ownerState.formControl && {\n position: 'absolute',\n left: 0,\n top: 0,\n // slight alteration to spec spacing to match visual spec result\n transform: 'translate(0, 20px) scale(1)'\n}, ownerState.size === 'small' && {\n // Compensation for the `Input.inputSizeSmall` style.\n transform: 'translate(0, 17px) scale(1)'\n}, ownerState.shrink && {\n transform: 'translate(0, -1.5px) scale(0.75)',\n transformOrigin: 'top left',\n maxWidth: '133%'\n}, !ownerState.disableAnimation && {\n transition: theme.transitions.create(['color', 'transform', 'max-width'], {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut\n })\n}, ownerState.variant === 'filled' && _extends({\n // Chrome's autofill feature gives the input field a yellow background.\n // Since the input field is behind the label in the HTML tree,\n // the input field is drawn last and hides the label with an opaque background color.\n // zIndex: 1 will raise the label above opaque background-colors of input.\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(12px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 13px) scale(1)'\n}, ownerState.shrink && _extends({\n userSelect: 'none',\n pointerEvents: 'auto',\n transform: 'translate(12px, 7px) scale(0.75)',\n maxWidth: 'calc(133% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(12px, 4px) scale(0.75)'\n})), ownerState.variant === 'outlined' && _extends({\n // see comment above on filled.zIndex\n zIndex: 1,\n pointerEvents: 'none',\n transform: 'translate(14px, 16px) scale(1)',\n maxWidth: 'calc(100% - 24px)'\n}, ownerState.size === 'small' && {\n transform: 'translate(14px, 9px) scale(1)'\n}, ownerState.shrink && {\n userSelect: 'none',\n pointerEvents: 'auto',\n // Theoretically, we should have (8+5)*2/0.75 = 34px\n // but it feels a better when it bleeds a bit on the left, so 32px.\n maxWidth: 'calc(133% - 32px)',\n transform: 'translate(14px, -9px) scale(0.75)'\n})));\nconst InputLabel = /*#__PURE__*/React.forwardRef(function InputLabel(inProps, ref) {\n const props = useThemeProps({\n name: 'MuiInputLabel',\n props: inProps\n });\n const {\n disableAnimation = false,\n shrink: shrinkProp,\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n let shrink = shrinkProp;\n if (typeof shrink === 'undefined' && muiFormControl) {\n shrink = muiFormControl.filled || muiFormControl.focused || muiFormControl.adornedStart;\n }\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['size', 'variant', 'required']\n });\n const ownerState = _extends({}, props, {\n disableAnimation,\n formControl: muiFormControl,\n shrink,\n size: fcs.size,\n variant: fcs.variant,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(InputLabelRoot, _extends({\n \"data-shrink\": shrink,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? InputLabel.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['error', 'info', 'primary', 'secondary', 'success', 'warning']), PropTypes.string]),\n /**\n * If `true`, the transition animation is disabled.\n * @default false\n */\n disableAnimation: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the `input` of this label is focused.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * if `true`, the label will indicate that the `input` is required.\n */\n required: PropTypes.bool,\n /**\n * If `true`, the label is shrunk.\n */\n shrink: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'normal'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['normal', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputLabel;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormControlUtilityClasses(slot) {\n return generateUtilityClass('MuiFormControl', slot);\n}\nconst formControlClasses = generateUtilityClasses('MuiFormControl', ['root', 'marginNone', 'marginNormal', 'marginDense', 'fullWidth', 'disabled']);\nexport default formControlClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"color\", \"component\", \"disabled\", \"error\", \"focused\", \"fullWidth\", \"hiddenLabel\", \"margin\", \"required\", \"size\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { isFilled, isAdornedStart } from '../InputBase/utils';\nimport capitalize from '../utils/capitalize';\nimport isMuiElement from '../utils/isMuiElement';\nimport FormControlContext from './FormControlContext';\nimport { getFormControlUtilityClasses } from './formControlClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n margin,\n fullWidth\n } = ownerState;\n const slots = {\n root: ['root', margin !== 'none' && `margin${capitalize(margin)}`, fullWidth && 'fullWidth']\n };\n return composeClasses(slots, getFormControlUtilityClasses, classes);\n};\nconst FormControlRoot = styled('div', {\n name: 'MuiFormControl',\n slot: 'Root',\n overridesResolver: ({\n ownerState\n }, styles) => {\n return _extends({}, styles.root, styles[`margin${capitalize(ownerState.margin)}`], ownerState.fullWidth && styles.fullWidth);\n }\n})(({\n ownerState\n}) => _extends({\n display: 'inline-flex',\n flexDirection: 'column',\n position: 'relative',\n // Reset fieldset default style.\n minWidth: 0,\n padding: 0,\n margin: 0,\n border: 0,\n verticalAlign: 'top'\n}, ownerState.margin === 'normal' && {\n marginTop: 16,\n marginBottom: 8\n}, ownerState.margin === 'dense' && {\n marginTop: 8,\n marginBottom: 4\n}, ownerState.fullWidth && {\n width: '100%'\n}));\n\n/**\n * Provides context such as filled/focused/error/required for form inputs.\n * Relying on the context provides high flexibility and ensures that the state always stays\n * consistent across the children of the `FormControl`.\n * This context is used by the following components:\n *\n * - FormLabel\n * - FormHelperText\n * - Input\n * - InputLabel\n *\n * You can find one composition example below and more going to [the demos](/material-ui/react-text-field/#components).\n *\n * ```jsx\n * <FormControl>\n * <InputLabel htmlFor=\"my-input\">Email address</InputLabel>\n * <Input id=\"my-input\" aria-describedby=\"my-helper-text\" />\n * <FormHelperText id=\"my-helper-text\">We'll never share your email.</FormHelperText>\n * </FormControl>\n * ```\n *\n * ⚠️ Only one `InputBase` can be used within a FormControl because it creates visual inconsistencies.\n * For instance, only one input can be focused at the same time, the state shouldn't be shared.\n */\nconst FormControl = /*#__PURE__*/React.forwardRef(function FormControl(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormControl'\n });\n const {\n children,\n className,\n color = 'primary',\n component = 'div',\n disabled = false,\n error = false,\n focused: visuallyFocused,\n fullWidth = false,\n hiddenLabel = false,\n margin = 'none',\n required = false,\n size = 'medium',\n variant = 'outlined'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n color,\n component,\n disabled,\n error,\n fullWidth,\n hiddenLabel,\n margin,\n required,\n size,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n const [adornedStart, setAdornedStart] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialAdornedStart = false;\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n const input = isMuiElement(child, ['Select']) ? child.props.input : child;\n if (input && isAdornedStart(input.props)) {\n initialAdornedStart = true;\n }\n });\n }\n return initialAdornedStart;\n });\n const [filled, setFilled] = React.useState(() => {\n // We need to iterate through the children and find the Input in order\n // to fully support server-side rendering.\n let initialFilled = false;\n if (children) {\n React.Children.forEach(children, child => {\n if (!isMuiElement(child, ['Input', 'Select'])) {\n return;\n }\n if (isFilled(child.props, true) || isFilled(child.props.inputProps, true)) {\n initialFilled = true;\n }\n });\n }\n return initialFilled;\n });\n const [focusedState, setFocused] = React.useState(false);\n if (disabled && focusedState) {\n setFocused(false);\n }\n const focused = visuallyFocused !== undefined && !disabled ? visuallyFocused : focusedState;\n let registerEffect;\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const registeredInput = React.useRef(false);\n registerEffect = () => {\n if (registeredInput.current) {\n console.error(['MUI: There are multiple `InputBase` components inside a FormControl.', 'This creates visual inconsistencies, only use one `InputBase`.'].join('\\n'));\n }\n registeredInput.current = true;\n return () => {\n registeredInput.current = false;\n };\n };\n }\n const childContext = React.useMemo(() => {\n return {\n adornedStart,\n setAdornedStart,\n color,\n disabled,\n error,\n filled,\n focused,\n fullWidth,\n hiddenLabel,\n size,\n onBlur: () => {\n setFocused(false);\n },\n onEmpty: () => {\n setFilled(false);\n },\n onFilled: () => {\n setFilled(true);\n },\n onFocus: () => {\n setFocused(true);\n },\n registerEffect,\n required,\n variant\n };\n }, [adornedStart, color, disabled, error, filled, focused, fullWidth, hiddenLabel, registerEffect, required, size, variant]);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: childContext,\n children: /*#__PURE__*/_jsx(FormControlRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? FormControl.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the label, input and helper text should be displayed in a disabled state.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * If `true`, the component is displayed in focused state.\n */\n focused: PropTypes.bool,\n /**\n * If `true`, the component will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * If `true`, the label is hidden.\n * This is used to increase density for a `FilledInput`.\n * Be sure to add `aria-label` to the `input` element.\n * @default false\n */\n hiddenLabel: PropTypes.bool,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * If `true`, the label will indicate that the `input` is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default FormControl;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getFormHelperTextUtilityClasses(slot) {\n return generateUtilityClass('MuiFormHelperText', slot);\n}\nconst formHelperTextClasses = generateUtilityClasses('MuiFormHelperText', ['root', 'error', 'disabled', 'sizeSmall', 'sizeMedium', 'contained', 'focused', 'filled', 'required']);\nexport default formHelperTextClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _span;\nconst _excluded = [\"children\", \"className\", \"component\", \"disabled\", \"error\", \"filled\", \"focused\", \"margin\", \"required\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport formControlState from '../FormControl/formControlState';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport capitalize from '../utils/capitalize';\nimport formHelperTextClasses, { getFormHelperTextUtilityClasses } from './formHelperTextClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n contained,\n size,\n disabled,\n error,\n filled,\n focused,\n required\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', error && 'error', size && `size${capitalize(size)}`, contained && 'contained', focused && 'focused', filled && 'filled', required && 'required']\n };\n return composeClasses(slots, getFormHelperTextUtilityClasses, classes);\n};\nconst FormHelperTextRoot = styled('p', {\n name: 'MuiFormHelperText',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.size && styles[`size${capitalize(ownerState.size)}`], ownerState.contained && styles.contained, ownerState.filled && styles.filled];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: (theme.vars || theme).palette.text.secondary\n}, theme.typography.caption, {\n textAlign: 'left',\n marginTop: 3,\n marginRight: 0,\n marginBottom: 0,\n marginLeft: 0,\n [`&.${formHelperTextClasses.disabled}`]: {\n color: (theme.vars || theme).palette.text.disabled\n },\n [`&.${formHelperTextClasses.error}`]: {\n color: (theme.vars || theme).palette.error.main\n }\n}, ownerState.size === 'small' && {\n marginTop: 4\n}, ownerState.contained && {\n marginLeft: 14,\n marginRight: 14\n}));\nconst FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiFormHelperText'\n });\n const {\n children,\n className,\n component = 'p'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const muiFormControl = useFormControl();\n const fcs = formControlState({\n props,\n muiFormControl,\n states: ['variant', 'size', 'disabled', 'error', 'filled', 'focused', 'required']\n });\n const ownerState = _extends({}, props, {\n component,\n contained: fcs.variant === 'filled' || fcs.variant === 'outlined',\n variant: fcs.variant,\n size: fcs.size,\n disabled: fcs.disabled,\n error: fcs.error,\n filled: fcs.filled,\n focused: fcs.focused,\n required: fcs.required\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormHelperTextRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? FormHelperText.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component.\n *\n * If `' '` is provided, the component reserves one line height for displaying a future message.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the helper text should be displayed in a disabled state.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, helper text should be displayed in an error state.\n */\n error: PropTypes.bool,\n /**\n * If `true`, the helper text should use filled classes key.\n */\n filled: PropTypes.bool,\n /**\n * If `true`, the helper text should use focused classes key.\n */\n focused: PropTypes.bool,\n /**\n * If `dense`, will adjust vertical spacing. This is normally obtained via context from\n * FormControl.\n */\n margin: PropTypes.oneOf(['dense']),\n /**\n * If `true`, the helper text should use required classes key.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default FormHelperText;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTextFieldUtilityClass(slot) {\n return generateUtilityClass('MuiTextField', slot);\n}\nconst textFieldClasses = generateUtilityClasses('MuiTextField', ['root']);\nexport default textFieldClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoComplete\", \"autoFocus\", \"children\", \"className\", \"color\", \"defaultValue\", \"disabled\", \"error\", \"FormHelperTextProps\", \"fullWidth\", \"helperText\", \"id\", \"InputLabelProps\", \"inputProps\", \"InputProps\", \"inputRef\", \"label\", \"maxRows\", \"minRows\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onClick\", \"onFocus\", \"placeholder\", \"required\", \"rows\", \"select\", \"SelectProps\", \"type\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { refType, unstable_useId as useId } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Input from '../Input';\nimport FilledInput from '../FilledInput';\nimport OutlinedInput from '../OutlinedInput';\nimport InputLabel from '../InputLabel';\nimport FormControl from '../FormControl';\nimport FormHelperText from '../FormHelperText';\nimport Select from '../Select';\nimport { getTextFieldUtilityClass } from './textFieldClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst variantComponent = {\n standard: Input,\n filled: FilledInput,\n outlined: OutlinedInput\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTextFieldUtilityClass, classes);\n};\nconst TextFieldRoot = styled(FormControl, {\n name: 'MuiTextField',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\n\n/**\n * The `TextField` is a convenience wrapper for the most common cases (80%).\n * It cannot be all things to all people, otherwise the API would grow out of control.\n *\n * ## Advanced Configuration\n *\n * It's important to understand that the text field is a simple abstraction\n * on top of the following components:\n *\n * - [FormControl](/material-ui/api/form-control/)\n * - [InputLabel](/material-ui/api/input-label/)\n * - [FilledInput](/material-ui/api/filled-input/)\n * - [OutlinedInput](/material-ui/api/outlined-input/)\n * - [Input](/material-ui/api/input/)\n * - [FormHelperText](/material-ui/api/form-helper-text/)\n *\n * If you wish to alter the props applied to the `input` element, you can do so as follows:\n *\n * ```jsx\n * const inputProps = {\n * step: 300,\n * };\n *\n * return <TextField id=\"time\" type=\"time\" inputProps={inputProps} />;\n * ```\n *\n * For advanced cases, please look at the source of TextField by clicking on the\n * \"Edit this page\" button above. Consider either:\n *\n * - using the upper case props for passing values directly to the components\n * - using the underlying components directly as shown in the demos\n */\nconst TextField = /*#__PURE__*/React.forwardRef(function TextField(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTextField'\n });\n const {\n autoComplete,\n autoFocus = false,\n children,\n className,\n color = 'primary',\n defaultValue,\n disabled = false,\n error = false,\n FormHelperTextProps,\n fullWidth = false,\n helperText,\n id: idOverride,\n InputLabelProps,\n inputProps,\n InputProps,\n inputRef,\n label,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onClick,\n onFocus,\n placeholder,\n required = false,\n rows,\n select = false,\n SelectProps,\n type,\n value,\n variant = 'outlined'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n autoFocus,\n color,\n disabled,\n error,\n fullWidth,\n multiline,\n required,\n select,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n if (process.env.NODE_ENV !== 'production') {\n if (select && !children) {\n console.error('MUI: `children` must be passed when using the `TextField` component with `select`.');\n }\n }\n const InputMore = {};\n if (variant === 'outlined') {\n if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {\n InputMore.notched = InputLabelProps.shrink;\n }\n InputMore.label = label;\n }\n if (select) {\n // unset defaults from textbox inputs\n if (!SelectProps || !SelectProps.native) {\n InputMore.id = undefined;\n }\n InputMore['aria-describedby'] = undefined;\n }\n const id = useId(idOverride);\n const helperTextId = helperText && id ? `${id}-helper-text` : undefined;\n const inputLabelId = label && id ? `${id}-label` : undefined;\n const InputComponent = variantComponent[variant];\n const InputElement = /*#__PURE__*/_jsx(InputComponent, _extends({\n \"aria-describedby\": helperTextId,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n fullWidth: fullWidth,\n multiline: multiline,\n name: name,\n rows: rows,\n maxRows: maxRows,\n minRows: minRows,\n type: type,\n value: value,\n id: id,\n inputRef: inputRef,\n onBlur: onBlur,\n onChange: onChange,\n onFocus: onFocus,\n onClick: onClick,\n placeholder: placeholder,\n inputProps: inputProps\n }, InputMore, InputProps));\n return /*#__PURE__*/_jsxs(TextFieldRoot, _extends({\n className: clsx(classes.root, className),\n disabled: disabled,\n error: error,\n fullWidth: fullWidth,\n ref: ref,\n required: required,\n color: color,\n variant: variant,\n ownerState: ownerState\n }, other, {\n children: [label != null && label !== '' && /*#__PURE__*/_jsx(InputLabel, _extends({\n htmlFor: id,\n id: inputLabelId\n }, InputLabelProps, {\n children: label\n })), select ? /*#__PURE__*/_jsx(Select, _extends({\n \"aria-describedby\": helperTextId,\n id: id,\n labelId: inputLabelId,\n value: value,\n input: InputElement\n }, SelectProps, {\n children: children\n })) : InputElement, helperText && /*#__PURE__*/_jsx(FormHelperText, _extends({\n id: helperTextId\n }, FormHelperTextProps, {\n children: helperText\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TextField.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.\n */\n FormHelperTextProps: PropTypes.object,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The helper text content.\n */\n helperText: PropTypes.node,\n /**\n * The id of the `input` element.\n * Use this prop to make `label` and `helperText` accessible for screen readers.\n */\n id: PropTypes.string,\n /**\n * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.\n * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.\n */\n InputLabelProps: PropTypes.object,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Props applied to the Input element.\n * It will be a [`FilledInput`](/material-ui/api/filled-input/),\n * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)\n * component depending on the `variant` prop value.\n */\n InputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a `textarea` element is rendered instead of an input.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * If `true`, the label is displayed as required and the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Render a [`Select`](/material-ui/api/select/) element while passing the Input element to `Select` as `input` parameter.\n * If this option is set you must pass the options of the select as children.\n * @default false\n */\n select: PropTypes.bool,\n /**\n * Props applied to the [`Select`](/material-ui/api/select/) element.\n */\n SelectProps: PropTypes.object,\n /**\n * The size of the component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n */\n type: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any,\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default TextField;","import * as React from 'react';\nimport Box from '@mui/material/Box';\nimport TextField, { TextFieldProps } from '@mui/material/TextField';\nimport { Icon } from '@redsift/design-system';\nimport { mdiSync } from '@redsift/icons';\n\nconst SUBMIT_FILTER_STROKE_TIME = 500;\n\nexport const InputNumberInterval = (props: any) => {\n const { item, applyValue, focusElementRef = null } = props;\n\n const filterTimeout = React.useRef<any>();\n const [filterValueState, setFilterValueState] = React.useState<\n [string, string]\n >(item.value ?? '');\n const [applying, setIsApplying] = React.useState(false);\n\n React.useEffect(() => {\n return () => {\n clearTimeout(filterTimeout.current);\n };\n }, []);\n\n React.useEffect(() => {\n const itemValue = item.value ?? [undefined, undefined];\n setFilterValueState(itemValue);\n }, [item.value]);\n\n const updateFilterValue = (lowerBound: string, upperBound: string) => {\n clearTimeout(filterTimeout.current);\n setFilterValueState([lowerBound, upperBound]);\n\n setIsApplying(true);\n filterTimeout.current = setTimeout(() => {\n setIsApplying(false);\n applyValue({ ...item, value: [lowerBound, upperBound] });\n }, SUBMIT_FILTER_STROKE_TIME);\n };\n\n const handleUpperFilterChange: TextFieldProps['onChange'] = (event) => {\n const newUpperBound = event.target.value;\n updateFilterValue(filterValueState[0], newUpperBound);\n };\n const handleLowerFilterChange: TextFieldProps['onChange'] = (event) => {\n const newLowerBound = event.target.value;\n updateFilterValue(newLowerBound, filterValueState[1]);\n };\n\n return (\n <Box\n sx={{\n display: 'inline-flex',\n flexDirection: 'row',\n alignItems: 'end',\n height: 48,\n pl: '20px',\n }}\n >\n <TextField\n name=\"lower-bound-input\"\n placeholder=\"From\"\n label=\"From\"\n variant=\"standard\"\n value={Number(filterValueState[0])}\n onChange={handleLowerFilterChange}\n type=\"number\"\n inputRef={focusElementRef}\n sx={{ mr: 2 }}\n />\n <TextField\n name=\"upper-bound-input\"\n placeholder=\"To\"\n label=\"To\"\n variant=\"standard\"\n value={Number(filterValueState[1])}\n onChange={handleUpperFilterChange}\n type=\"number\"\n InputProps={applying ? { endAdornment: <Icon icon={mdiSync} /> } : {}}\n />\n </Box>\n );\n};\n","import { GridCellParams, GridFilterItem } from '@mui/x-data-grid-pro';\nimport { InputNumberInterval } from '../../fields/InputNumberInterval';\n\nconst isBetweenOperator = {\n label: 'is between',\n value: 'isBetween',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n if (!Array.isArray(filterItem.value) || filterItem.value.length !== 2) {\n return null;\n }\n\n if (filterItem.value[0] == null || filterItem.value[1] == null) {\n return null;\n }\n\n if (typeof filterItem.value[0] !== 'number' || typeof filterItem.value[1] !== 'number') {\n return null;\n }\n\n return (params: GridCellParams<any, any>): boolean => {\n return (\n params.value !== null &&\n params.value !== undefined &&\n filterItem.value[0] <= params.value &&\n params.value <= filterItem.value[1]\n );\n };\n },\n InputComponent: InputNumberInterval,\n};\n\nexport const IS_BETWEEN = isBetweenOperator;\n","import { getGridNumericOperators as forwardOperators, GridFilterOperator } from '@mui/x-data-grid-pro';\nimport { IS_BETWEEN } from './isBetween';\n\nexport const getGridNumericOperators: () => GridFilterOperator<any, number | string | null, any>[] = () => [\n ...forwardOperators(),\n IS_BETWEEN,\n];\n","import { GridCellParams, GridFilterInputValue, GridFilterItem } from '@mui/x-data-grid-pro';\n\nconst doesNotContain = {\n label: 'does not contain',\n value: 'doesNotContain',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n\n if (String(params.value).indexOf(filterItem.value) !== -1) {\n return false;\n }\n\n return true;\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const DOES_NOT_CONTAIN = doesNotContain;\n","import { GridCellParams, GridFilterInputValue, GridFilterItem } from '@mui/x-data-grid-pro';\n\nconst doesNotEqual = {\n label: 'does not equal',\n value: 'doesNotEqual',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.value) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n\n if (String(params.value) === filterItem.value) {\n return false;\n }\n\n return true;\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const DOES_NOT_EQUAL = doesNotEqual;\n","import {\n GridCellParams,\n GridFilterInputSingleSelect,\n GridFilterInputValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst doesNotHaveOperator = {\n label: \"doesn't have\",\n value: 'doesNotHave',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams) => {\n const cellValues = Array.isArray(params.value) ? params.value : [params.value];\n return !cellValues.map((value) => String(value)).includes(filterItem.value);\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const DOES_NOT_HAVE = doesNotHaveOperator;\n\nexport const DOES_NOT_HAVE_WITH_SELECT = { ...DOES_NOT_HAVE, InputComponent: GridFilterInputSingleSelect };\n","import {\n GridCellParams,\n GridFilterInputSingleSelect,\n GridFilterInputValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst hasOperator = {\n label: 'has',\n value: 'has',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams) => {\n const cellValues = Array.isArray(params.value) ? params.value : [params.value];\n return cellValues.map((value) => String(value)).includes(filterItem.value);\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const HAS = hasOperator;\n\nexport const HAS_WITH_SELECT = { ...HAS, InputComponent: GridFilterInputSingleSelect };\n","import {\n GridCellParams,\n GridFilterInputSingleSelect,\n GridFilterInputValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst hasOnlyOperator = {\n label: 'has only',\n value: 'hasOnly',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams) => {\n const cellValues = Array.isArray(params.value) ? params.value : [params.value];\n return cellValues.length === 1 && String(cellValues[0]) === filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const HAS_ONLY = hasOnlyOperator;\n\nexport const HAS_ONLY_WITH_SELECT = { ...HAS_ONLY, InputComponent: GridFilterInputSingleSelect };\n","import {\n GridCellParams,\n GridFilterInputSingleSelect,\n GridFilterInputValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst isOperator = {\n label: 'is',\n value: 'is',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (Array.isArray(params.value)) {\n return false;\n }\n return String(params.value) === filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const IS = isOperator;\n\nexport const IS_WITH_SELECT = { ...IS, InputComponent: GridFilterInputSingleSelect };\n","import {\n GridCellParams,\n GridFilterInputSingleSelect,\n GridFilterInputValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst isNotOperator = {\n label: 'is not',\n value: 'isNot',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (Array.isArray(params.value)) {\n return true;\n }\n return String(params.value) !== filterItem.value;\n };\n },\n InputComponent: GridFilterInputValue,\n};\n\nexport const IS_NOT = isNotOperator;\n\nexport const IS_NOT_WITH_SELECT = { ...IS_NOT, InputComponent: GridFilterInputSingleSelect };\n","import { GridCellParams, GridFilterInputMultipleValue, GridFilterItem } from '@mui/x-data-grid-pro';\n\nconst containsAnyOfOperator = {\n label: 'contains any of',\n value: 'containsAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const paramValues = Array.isArray(params.value) ? params.value : [params.value];\n\n let match = false;\n filterItem.value.forEach((filteredValue: string) => {\n paramValues.forEach((paramValue: string) => {\n if (String(paramValue).indexOf(filteredValue) !== -1) {\n match = true;\n }\n });\n });\n return match;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nconst containsAnyOfCIOperator = {\n label: 'contains any of (case insensitive)',\n value: 'containsAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const paramValues = Array.isArray(params.value) ? params.value : [params.value];\n const paramValuesLower = paramValues.map((item) => String(item).toLowerCase());\n\n let match = false;\n filterItem.value.forEach((filteredValue: string) => {\n if (paramValuesLower.indexOf(filteredValue.toLowerCase()) !== -1) {\n match = true;\n }\n });\n return match;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const CONTAINS_ANY_OF = containsAnyOfOperator;\nexport const CONTAINS_ANY_OF_I = containsAnyOfCIOperator;\n","import { GridCellParams, GridFilterInputMultipleValue, GridFilterItem } from '@mui/x-data-grid-pro';\n\nconst endsWithAnyOfOperator = {\n label: 'ends with any of',\n value: 'endsWithAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const paramValues = Array.isArray(params.value) ? params.value : [params.value];\n\n let match = false;\n filterItem.value.forEach((filteredValue: string) => {\n paramValues.forEach((paramValue: string) => {\n if (String(paramValue).endsWith(filteredValue)) {\n match = true;\n }\n });\n });\n return match;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const ENDS_WITH_ANY_OF = endsWithAnyOfOperator;\n","import {\n GridCellParams,\n GridFilterInputMultipleSingleSelect,\n GridFilterInputMultipleValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst isAnyOfOperator = {\n label: 'is any of',\n value: 'isAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const paramValues = Array.isArray(params.value) ? params.value : [params.value];\n\n for (const paramValue of paramValues) {\n if (filterItem.value.includes(String(paramValue))) {\n return true;\n }\n }\n return false;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const IS_ANY_OF = isAnyOfOperator;\n\nexport const IS_ANY_OF_WITH_SELECT = { ...IS_ANY_OF, InputComponent: GridFilterInputMultipleSingleSelect };\n","import {\n GridCellParams,\n GridFilterInputMultipleSingleSelect,\n GridFilterInputMultipleValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst hasAnyOfOperator = {\n label: 'has any of',\n value: 'hasAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams) => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const cellValues = Array.isArray(params.value) ? params.value : [params.value];\n const filterItemValues = Array.isArray(filterItem.value) ? filterItem.value : [filterItem.value];\n return filterItemValues.some((v) => cellValues.map((value) => String(value)).includes(v));\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const HAS_ANY_OF = hasAnyOfOperator;\n\nexport const HAS_ANY_OF_WITH_SELECT = { ...HAS_ANY_OF, InputComponent: GridFilterInputMultipleSingleSelect };\n","import {\n GridCellParams,\n GridFilterInputMultipleSingleSelect,\n GridFilterInputMultipleValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst isNotAnyOfOperator = {\n label: 'is not any of',\n value: 'isNotAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const paramValues = Array.isArray(params.value) ? params.value : [params.value];\n\n for (const paramValue of paramValues) {\n if (filterItem.value.includes(String(paramValue))) {\n return false;\n }\n }\n return true;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const IS_NOT_ANY_OF = isNotAnyOfOperator;\n\nexport const IS_NOT_ANY_OF_WITH_SELECT = { ...IS_NOT_ANY_OF, InputComponent: GridFilterInputMultipleSingleSelect };\n","import { GridCellParams, GridFilterInputMultipleValue, GridFilterItem } from '@mui/x-data-grid-pro';\n\nconst startsWithAnyOfOperator = {\n label: 'starts with any of',\n value: 'startsWithAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !filterItem.operator) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n if (filterItem.value.length === 0) {\n return true;\n }\n const paramValues = Array.isArray(params.value) ? params.value : [params.value];\n\n let match = false;\n filterItem.value.forEach((filteredValue: string) => {\n paramValues.forEach((paramValue: string) => {\n if (String(paramValue).startsWith(filteredValue)) {\n match = true;\n }\n });\n });\n return match;\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const STARTS_WITH_ANY_OF = startsWithAnyOfOperator;\n","import {\n GridCellParams,\n GridFilterInputMultipleSingleSelect,\n GridFilterInputMultipleValue,\n GridFilterItem,\n} from '@mui/x-data-grid-pro';\n\nconst doesNotHaveAnyOf = {\n label: \"doesn't have any of\",\n value: 'doesNotHaveAnyOf',\n getApplyFilterFn: (filterItem: GridFilterItem) => {\n if (!filterItem.field || !filterItem.value || !Array.isArray(filterItem.value) || filterItem.value.length === 0) {\n return null;\n }\n\n return (params: GridCellParams): boolean => {\n const cellValues = Array.isArray(params.value) ? params.value : [params.value];\n\n // Return true only if none of the filter values are in the cell values\n return (filterItem.value as string[]).every(\n (filterVal) => !cellValues.map((value) => String(value)).includes(filterVal)\n );\n };\n },\n InputComponent: GridFilterInputMultipleValue,\n};\n\nexport const DOES_NOT_HAVE_ANY_OF = doesNotHaveAnyOf;\n\nexport const DOES_NOT_HAVE_ANY_OF_WITH_SELECT = {\n ...DOES_NOT_HAVE_ANY_OF,\n InputComponent: GridFilterInputMultipleSingleSelect,\n};\n","import { GridFilterOperator } from '@mui/x-data-grid-pro';\n\nimport { CONTAINS_ANY_OF } from './containsAnyOf';\nimport { ENDS_WITH_ANY_OF } from './endsWithAnyOf';\nimport { IS_ANY_OF, IS_ANY_OF_WITH_SELECT } from './isAnyOf';\nimport { IS_NOT_ANY_OF } from './isNotAnyOf';\nimport { STARTS_WITH_ANY_OF } from './startsWithAnyOf';\nimport { IS_WITH_SELECT } from '../string/is';\nimport { IS_NOT_WITH_SELECT } from '../string/isNot';\nimport { DOES_NOT_HAVE_WITH_SELECT } from '../string/doesNotHave';\nimport { HAS_WITH_SELECT } from '../string/has';\nimport { HAS_ONLY_WITH_SELECT } from '../string/hasOnly';\nimport { DOES_NOT_HAVE_ANY_OF_WITH_SELECT } from './doesNotHaveAnyOf';\nimport { HAS_ANY_OF_WITH_SELECT } from './hasAnyOf';\n\nexport const getGridStringArrayOperators: () => GridFilterOperator<any, number | string | null, any>[] = () => [\n CONTAINS_ANY_OF,\n ENDS_WITH_ANY_OF,\n IS_ANY_OF,\n IS_NOT_ANY_OF,\n STARTS_WITH_ANY_OF,\n];\n\nexport const getGridStringArrayOperatorsWithSelect: () => GridFilterOperator<\n any,\n number | string | null,\n any\n>[] = () => [\n CONTAINS_ANY_OF,\n ENDS_WITH_ANY_OF,\n IS_ANY_OF_WITH_SELECT,\n IS_ANY_OF_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_WITH_SELECT,\n STARTS_WITH_ANY_OF,\n];\n\nexport const getGridStringArrayOperatorsWithSelectOnStringArrayColumns: () => GridFilterOperator<\n any,\n number | string | null,\n any\n>[] = () => [\n HAS_WITH_SELECT,\n HAS_ANY_OF_WITH_SELECT,\n HAS_ONLY_WITH_SELECT,\n DOES_NOT_HAVE_WITH_SELECT,\n DOES_NOT_HAVE_ANY_OF_WITH_SELECT,\n];\n","import { getGridStringOperators as forwardOperators, GridFilterOperator } from '@mui/x-data-grid-pro';\n\nimport { getGridStringArrayOperators } from '../string-array';\nimport { DOES_NOT_EQUAL } from './doesNotEqual';\nimport { DOES_NOT_CONTAIN } from './doesNotContain';\n\nexport const getGridStringOperators: () => GridFilterOperator<any, number | string | null, any>[] = () => [\n ...forwardOperators().filter((operator) => !['isAnyOf'].includes(operator.value)),\n DOES_NOT_CONTAIN,\n DOES_NOT_EQUAL,\n ...getGridStringArrayOperators(),\n];\n","// istanbul ignore file\n\nimport {\n getGridBooleanOperators,\n getGridDateOperators,\n getGridSingleSelectOperators,\n getGridStringOperators as nativeGetGridStringOperators,\n getGridNumericOperators as nativeGetGridNumericOperators,\n} from '@mui/x-data-grid-pro';\nimport { getGridNumericOperators } from './numeric';\nimport {\n DOES_NOT_HAVE_WITH_SELECT,\n getGridStringOperators,\n HAS_ONLY_WITH_SELECT,\n HAS_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_WITH_SELECT,\n} from './string';\nimport {\n CONTAINS_ANY_OF,\n ENDS_WITH_ANY_OF,\n getGridStringArrayOperators,\n HAS_ANY_OF_WITH_SELECT,\n IS_ANY_OF_WITH_SELECT,\n STARTS_WITH_ANY_OF,\n} from './string-array';\nimport { DOES_NOT_HAVE_ANY_OF_WITH_SELECT } from './string-array/doesNotHaveAnyOf';\n\nexport { getGridBooleanOperators, getGridDateOperators, getGridSingleSelectOperators } from '@mui/x-data-grid-pro';\nexport * from './numeric';\nexport * from './string';\nexport * from './string-array';\n\nexport const operatorList = {\n // Default types\n string: nativeGetGridStringOperators(),\n number: nativeGetGridNumericOperators(),\n boolean: getGridBooleanOperators(),\n date: getGridDateOperators(),\n dateTime: getGridDateOperators(true),\n singleSelect: getGridSingleSelectOperators(),\n\n // Extended types\n rsString: getGridStringOperators(),\n rsNumber: getGridNumericOperators(),\n rsSingleSelect: [\n CONTAINS_ANY_OF,\n ENDS_WITH_ANY_OF,\n IS_ANY_OF_WITH_SELECT,\n IS_NOT_WITH_SELECT,\n IS_WITH_SELECT,\n STARTS_WITH_ANY_OF,\n ],\n rsSingleSelectWithShortOperatorList: [IS_WITH_SELECT, IS_NOT_WITH_SELECT, IS_ANY_OF_WITH_SELECT],\n rsMultipleSelect: [\n HAS_WITH_SELECT,\n HAS_ANY_OF_WITH_SELECT,\n HAS_ONLY_WITH_SELECT,\n DOES_NOT_HAVE_WITH_SELECT,\n DOES_NOT_HAVE_ANY_OF_WITH_SELECT,\n ],\n rsMultipleSelectWithShortOperatorList: [HAS_WITH_SELECT, DOES_NOT_HAVE_WITH_SELECT, HAS_ANY_OF_WITH_SELECT],\n\n // Custom types\n rsStringArray: getGridStringArrayOperators(),\n};\n","export const PAGINATION_MODEL_KEY = 'paginationModel';\nexport const FILTER_MODEL_KEY = 'filterModel';\nexport const SORT_MODEL_KEY = 'sortModel';\nexport const VISIBILITY_MODEL_KEY = 'visibilityModel';\nexport const PINNED_COLUMNS = 'pinnedColumns';\nexport const DIMENSION_MODEL_KEY = 'dimension';\nexport const FILTER_SEARCH_KEY = 'searchModel';\nexport const CATEGORIES = [\n PAGINATION_MODEL_KEY,\n FILTER_MODEL_KEY,\n SORT_MODEL_KEY,\n VISIBILITY_MODEL_KEY,\n DIMENSION_MODEL_KEY,\n FILTER_SEARCH_KEY,\n PINNED_COLUMNS,\n] as const;\n\nexport type Category = (typeof CATEGORIES)[number];\n\nexport const buildStorageKey = ({ id, version, category }: { id: string; version: number; category: Category }) => {\n return `${id}:${version}:${category}` as const;\n};\n\nexport const clearPreviousVersionStorage = (id: string, previousLocalStorageVersions: number[]): void => {\n for (const version of previousLocalStorageVersions) {\n const keysToDelete = [\n buildStorageKey({\n id,\n version,\n category: PAGINATION_MODEL_KEY,\n }),\n buildStorageKey({ id, version, category: SORT_MODEL_KEY }),\n buildStorageKey({\n id,\n version,\n category: FILTER_MODEL_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: VISIBILITY_MODEL_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: PINNED_COLUMNS,\n }),\n buildStorageKey({\n id,\n version,\n category: FILTER_SEARCH_KEY,\n }),\n buildStorageKey({\n id,\n version,\n category: DIMENSION_MODEL_KEY,\n }),\n ];\n\n for (const keyToDelete of keysToDelete) {\n try {\n window.localStorage.removeItem(keyToDelete);\n } catch (e) {\n // Ignore\n }\n }\n }\n};\n","import {\n GridColDef,\n GridFilterModel,\n GridColumnVisibilityModel,\n GridSortModel,\n GridFilterItem,\n GridSortItem,\n GridPinnedColumns,\n GridLogicOperator,\n} from '@mui/x-data-grid-pro';\nimport { DataGridProps } from '../components/DataGrid';\nimport { operatorList } from './operators';\nimport {\n ExtendedGridFilterItem,\n ExtendedGridFilterModel,\n ExtendedGridPaginationModel,\n} from '../hooks/useStatefulTable';\nimport { GridInitialStatePro } from '@mui/x-data-grid-pro/models/gridStatePro';\n\ntype OperatorType = 'string' | 'number' | 'date' | 'dateTime' | 'boolean' | 'singleSelect';\n\ntype OperatorValue = string | string[];\n\n// reference value: https://www.w3schools.com/tags/ref_urlencode.ASP\nconst DECODER: Record<string, string> = {\n '%20': ' ',\n '%26': '&',\n '%3D': '=',\n '%3F': '?',\n '%5B': '[',\n '%5D': ']',\n '%2C': ',',\n '%3C': '<',\n '%3E': '>',\n '%21': '!',\n '%22': '\"',\n};\n\nconst ENCODER = {\n ' ': '%20',\n '&': '%26',\n '=': '%3D',\n '?': '%3F',\n '[': '%5B',\n ']': '%5D',\n ',': '%2C',\n '<': '%3C',\n '>': '%3E',\n '!': '%21',\n '\"': '%22',\n} as const;\n\nexport const decodeValue = (value: string): OperatorValue => {\n if (value === '') {\n return '';\n }\n\n const re = new RegExp(\n Object.keys(DECODER).reduce((acc, curr) => `${acc}|${curr}`),\n 'g'\n );\n // decodeValue for lists:\n if (value.startsWith('list[')) {\n const arrayValues = value.split('[')[1].split(']')[0];\n const arrayList = arrayValues\n .split(',')\n .map((v) => v.replace(re, (encoded) => DECODER[encoded]))\n .filter((item) => item);\n return arrayList.length > 0 ? arrayList : [];\n }\n\n return value.replace(re, (encoded) => DECODER[encoded]);\n};\n\nexport const encodeValue = (value: string | undefined) => {\n if (!value) {\n return '';\n }\n\n // Array encoding for value:\n // we are representing it as list[encoded], where encoded is the list comma separated\n if (Array.isArray(value)) {\n const encodedArray = value\n .map((entry: string) => {\n return String(entry).replace(/\\s|&|=|\\?|\\[|\\]/g, (encoded) => ENCODER[encoded as keyof typeof ENCODER]);\n })\n .join(',');\n return `list[${encodedArray}]`;\n }\n\n // we might also pass integers\n const castedValue = String(value);\n\n return castedValue.replace(/\\s|&|=|\\?|\\[|\\]/g, (encoded) => ENCODER[encoded as keyof typeof ENCODER]);\n};\n\nexport const urlSearchParamsToString = (searchParams: URLSearchParams): string => {\n let searchString = '';\n for (const [key, value] of searchParams) {\n searchString = searchString + `${key}=${value}&`;\n }\n return searchString.slice(0, searchString.length - 1);\n};\n\nexport const numberOperatorEncoder: Record<string, string> = {\n '=': 'eq',\n '!=': 'ne',\n '>': 'gt',\n '>=': 'gte',\n '<': 'lt',\n '<=': 'lte',\n};\n\nexport const numberOperatorDecoder: Record<string, string> = {\n eq: '=',\n ne: '!=',\n gt: '>',\n gte: '>=',\n lt: '<',\n lte: '<=',\n};\n\nexport const isOperatorValueValid = (\n field: string,\n operator: OperatorValue,\n columns: DataGridProps['columns']\n): boolean => {\n const column = columns.find((column) => column.field === field);\n if (!column) {\n return false;\n }\n const columnType = (column?.type || 'string') as OperatorType;\n const operators = column.filterOperators || operatorList[columnType];\n\n if (!operators) {\n return false;\n }\n\n return !!(operators as any).find((op: any) =>\n columnType === 'number' && Object.keys(numberOperatorEncoder).includes(op.value)\n ? numberOperatorEncoder[op.value] === operator\n : op.value === operator\n );\n};\n\nconst listOperators = [\n 'containsAnyOf',\n 'doesNotContainAnyOf',\n 'endsWithAnyOf',\n 'doesNotEndWithAnyOf',\n 'hasAnyOf',\n 'doesNotHaveAnyOf',\n 'isAnyOf',\n 'isNotAnyOf',\n 'startsWithAnyOf',\n 'doesNotStartWithAnyOf',\n];\n\n// Check if the value doesn't break\nexport const isValueValid = (\n value: OperatorValue,\n field: string,\n columns: DataGridProps['columns'],\n operator: OperatorValue\n): boolean => {\n // every field accepts undefined as value for default\n if (value === undefined || value === '') {\n return true;\n }\n\n // xxxAnyOf accepts as value only lists, and we are declaring them in the\n // URL as `list=[...]`\n if (listOperators.includes(operator as string)) {\n return Array.isArray(value) || value === '';\n }\n\n // We are accepting arrays only if they are of the 'xxxAnyOf' type\n if (Array.isArray(value) && !listOperators.includes(operator as string)) {\n return false;\n }\n\n const column = columns.find((column) => column.field === field);\n if (!column) {\n return false;\n }\n const type = column['type'] ?? 'string';\n\n // Only date and rating fail with 500s, other set themselves as undefined\n if (type !== 'date' && type !== 'rating') {\n return true;\n }\n\n // just checking that rating is a number.\n if (type === 'rating') {\n return !isNaN(Number(value));\n }\n\n // format: YYYY-MM-DD\n // just verifying that the 3 values are numbers to avoid 500s,\n // If the value is invalid the form will appear as undefined\n if (type === 'date') {\n const dateSplitted = (value as string).split('-');\n if (dateSplitted.length !== 3) {\n return false;\n }\n const [YYYY, MM, DD] = dateSplitted;\n\n return !isNaN(parseInt(YYYY)) && !isNaN(parseInt(MM)) && !isNaN(parseInt(DD));\n }\n return false;\n};\n\n/** FILTERS */\n\n// example:\n// unicodeDomain[contains]=a&unicodeDomain[contains]=dsa&logicOperator=and&tab=ignored\nexport const getFilterModelFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): ExtendedGridFilterModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n let logicOperator = GridLogicOperator.And;\n let quickFilterValues: string[] = [];\n\n const searchParams = new URLSearchParams();\n for (const [key, value] of new URLSearchParams(searchString)) {\n if (\n key.startsWith('_') &&\n ![\n '_logicOperator',\n '_sortColumn',\n '_pinnedColumnsLeft',\n '_pinnedColumnsRight',\n '_columnVisibility',\n '_pagination',\n '_quickFilterValues',\n ].includes(key)\n ) {\n searchParams.set(key, value);\n }\n\n if (key === '_logicOperator') {\n logicOperator = value === GridLogicOperator.And || value === GridLogicOperator.Or ? value : GridLogicOperator.And;\n }\n\n if (key === '_quickFilterValues') {\n try {\n quickFilterValues = JSON.parse(decodeURIComponent(value));\n } catch {\n quickFilterValues = [];\n }\n }\n }\n\n let id = 5000;\n const fields = columns.map((column) => column.field);\n let isInvalid = false;\n\n const items: ExtendedGridFilterItem[] = [];\n searchParams.forEach((value, key) => {\n if (isInvalid) {\n return;\n }\n\n const field = key.split('[')[0].slice(1);\n if (!fields.includes(field)) {\n return;\n }\n\n const columnType = columns.find((column) => column.field === field)?.type;\n const left = key.split(']')[0];\n if (left.split('[').length < 2) {\n isInvalid = true;\n return;\n }\n\n const splitRight = key.split('[')[1].split(']')[0].split(',');\n const type = splitRight[1];\n if (type !== columnType) {\n isInvalid = true;\n return;\n }\n\n const operator = splitRight[0];\n if (!isOperatorValueValid(field, operator, columns) || Array.isArray(operator)) {\n isInvalid = true;\n return;\n }\n\n id += 1;\n\n const decodedValue = decodeValue(value);\n if (!isValueValid(decodedValue, field, columns, operator)) {\n isInvalid = true;\n return;\n }\n\n items.push({\n field,\n operator:\n columnType === 'number' && Object.keys(numberOperatorDecoder).includes(operator)\n ? numberOperatorDecoder[operator]\n : operator,\n id,\n value: listOperators.includes(operator as string) && decodedValue === '' ? [] : decodedValue,\n type,\n });\n });\n\n if (isInvalid) {\n return 'invalid';\n }\n\n return { items, logicOperator, quickFilterValues };\n};\n\nexport const getSearchParamsFromFilterModel = (filterModel: ExtendedGridFilterModel): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set('_logicOperator', filterModel['logicOperator'] || '');\n filterModel['items'].forEach((item: ExtendedGridFilterItem) => {\n const { field, operator, value, type } = item;\n\n if (Object.keys(numberOperatorEncoder).includes(operator)) {\n searchParams.set(`_${field}[${numberOperatorEncoder[operator]},${encodeValue(type)}]`, encodeValue(value));\n } else {\n searchParams.set(`_${field}[${encodeValue(operator)},${encodeValue(type)}]`, encodeValue(value));\n }\n });\n\n if (filterModel.quickFilterValues?.length) {\n searchParams.set('_quickFilterValues', encodeURIComponent(JSON.stringify(filterModel.quickFilterValues)));\n }\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty FilterModel\nconst getFilterModel = (\n search: string,\n columns: DataGridProps['columns'],\n localStorageFilters: string,\n setLocalStorageFilters: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): ExtendedGridFilterModel => {\n const defaultValue =\n initialState && initialState.filter && initialState.filter.filterModel\n ? initialState.filter.filterModel\n : {\n items: [],\n logicOperator: GridLogicOperator.And,\n };\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const filterModelFromSearch = getFilterModelFromString(search, columns);\n\n if (filterModelFromSearch !== 'invalid') {\n const searchFromFilterModel = getSearchParamsFromFilterModel(filterModelFromSearch);\n const searchString = urlSearchParamsToString(searchFromFilterModel);\n if (searchString !== localStorageFilters) {\n setLocalStorageFilters(searchString);\n }\n return filterModelFromSearch;\n }\n\n const filterModelFromLocalStorage = getFilterModelFromString(localStorageFilters, columns);\n\n if (filterModelFromLocalStorage !== 'invalid') {\n return filterModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** SORT */\n\nexport const getSortingFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): GridSortModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_sortColumn');\n\n if (value === '' || value === null || value === '[]') {\n return [];\n }\n\n const fields = columns.map((column) => column.field);\n const [column, order] = value.slice(1, value.length - 1).split(',');\n\n if (fields.includes(column) && (order === 'asc' || order === 'desc')) {\n return [\n {\n field: column,\n sort: order,\n },\n ];\n }\n\n return 'invalid';\n};\n\nexport const getSearchParamsFromSorting = (sorting: GridSortItem[]): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set(\n '_sortColumn',\n sorting.length > 0 && sorting[0].sort ? `[${encodeValue(sorting[0].field)},${encodeValue(sorting[0].sort)}]` : '[]'\n );\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty SortModel\nconst getSortModel = (\n search: string,\n columns: DataGridProps['columns'],\n localStorageSorting: string,\n setLocalStorageSorting: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n) => {\n const defaultValue = initialState?.sorting?.sortModel ? initialState.sorting.sortModel : [];\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const sorting = getSortingFromString(search, columns);\n\n if (sorting !== 'invalid') {\n const searchFromSortModel = getSearchParamsFromSorting(sorting);\n const searchString = urlSearchParamsToString(searchFromSortModel);\n if (searchString !== localStorageSorting) {\n setLocalStorageSorting(searchString);\n }\n return sorting;\n }\n\n const sortModelFromLocalStorage = getSortingFromString(localStorageSorting, columns);\n\n if (sortModelFromLocalStorage !== 'invalid') {\n return sortModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** PAGINATION */\n\nexport const getPaginationFromString = (searchString: string): ExtendedGridPaginationModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_pagination');\n\n if (value === '' || value === null || value === '[]') {\n return 'invalid';\n }\n\n const pagination = value.slice(1, value.length - 1).split(',');\n const page = parseFloat(pagination[0]);\n const pageSize = parseFloat(pagination[1]);\n const direction = pagination[2];\n\n if (!Number.isNaN(page) && !Number.isNaN(pageSize) && direction && ['next', 'back'].includes(direction)) {\n return { page, pageSize, direction: direction as 'next' | 'back' };\n }\n\n return 'invalid';\n};\n\nexport const getSearchParamsFromPagination = (pagination: ExtendedGridPaginationModel): URLSearchParams => {\n const searchParams = new URLSearchParams();\n searchParams.set('_pagination', `[${pagination.page},${pagination.pageSize},${pagination.direction}]`);\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty PaginationModel\nconst getPaginationModel = (\n search: string,\n localStoragePagination: string,\n setLocalStoragePagination: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n) => {\n const defaultValue = initialState?.pagination\n ? ({ page: 0, pageSize: 25, direction: 'next', ...initialState.pagination } as ExtendedGridPaginationModel)\n : ({ page: 0, pageSize: 25, direction: 'next' } as ExtendedGridPaginationModel);\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const pagination = getPaginationFromString(search);\n\n if (pagination !== 'invalid') {\n const searchFromPaginationModel = getSearchParamsFromPagination(pagination);\n const searchString = urlSearchParamsToString(searchFromPaginationModel);\n if (searchString !== localStoragePagination) {\n setLocalStoragePagination(searchString);\n }\n return pagination;\n }\n\n const paginationModelFromLocalStorage = getPaginationFromString(localStoragePagination);\n\n if (paginationModelFromLocalStorage !== 'invalid') {\n return paginationModelFromLocalStorage;\n }\n\n return defaultValue;\n};\n\n/** COLUMN VISIBILITY */\n\nexport const getColumnVisibilityFromString = (\n searchString: string,\n columns: DataGridProps['columns']\n): GridColumnVisibilityModel | 'invalid' => {\n if (!searchString) {\n return 'invalid';\n }\n\n const searchParams = new URLSearchParams(searchString);\n\n const value = searchParams.get('_columnVisibility');\n\n if (value === '' || value === null || value === '[]') {\n return 'invalid';\n }\n\n const parsedFields = value.slice(1, value.length - 1).split(',');\n const fields = columns.map((column) => column.field);\n\n const visibility: GridColumnVisibilityModel = {};\n for (const field of fields) {\n visibility[field] = false;\n }\n\n for (const parsedField of parsedFields) {\n if (fields.includes(parsedField)) {\n visibility[parsedField] = true;\n }\n }\n\n if (Object.values(visibility).filter((v) => v === true).length === 0) {\n return 'invalid';\n }\n\n return visibility;\n};\n\nexport const getSearchParamsFromColumnVisibility = (\n columnVisibility: GridColumnVisibilityModel,\n columns: DataGridProps['columns']\n): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const fields = columns.map((column) => column.field);\n\n // if column visibility model is empty, show all columns\n if (Object.keys(columnVisibility).length == 0) {\n searchParams.set('_columnVisibility', `[${fields.join(',')}]`);\n return searchParams;\n }\n\n const finalColumnVisibility = columns\n .filter((c) => !(c?.hideable ?? true))\n .map((c) => c.field)\n .reduce((acc, colName) => {\n return { ...acc, [colName]: true };\n }, columnVisibility);\n\n const visibleColumns = fields.filter((column) => finalColumnVisibility[column] !== false);\n\n searchParams.set('_columnVisibility', `[${visibleColumns.join(',')}]`);\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty ColumnVisibilityModel (which is all columns)\n// NOTE: the `defaultHidden` is a custom field and not standard DataGrid\n// The reason is the following bug: https://github.com/mui/mui-x/issues/8407\nconst getColumnsVisibility = (\n search: string,\n columns: (GridColDef & { defaultHidden?: boolean })[],\n localStorageColumnsVisibility: string,\n setLocalStorageColumnsVisibility: (search: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): GridColumnVisibilityModel => {\n const defaultValue: GridColumnVisibilityModel = {};\n for (const column of columns) {\n const field = column.field;\n if (initialState?.columns?.columnVisibilityModel?.[field] !== undefined) {\n defaultValue[field] = initialState.columns.columnVisibilityModel[field];\n } else {\n defaultValue[field] = column.defaultHidden !== true; // undefined will be true\n }\n }\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const columnVisibility = getColumnVisibilityFromString(search, columns);\n\n if (columnVisibility !== 'invalid') {\n const searchColumnVisibility = getSearchParamsFromColumnVisibility(columnVisibility, columns);\n\n if (searchColumnVisibility.toString() !== localStorageColumnsVisibility) {\n setLocalStorageColumnsVisibility(searchColumnVisibility.toString());\n }\n return columnVisibility;\n }\n\n const columnVisibilityFromLocalStorage = getColumnVisibilityFromString(localStorageColumnsVisibility, columns);\n\n if (columnVisibilityFromLocalStorage !== 'invalid') {\n return columnVisibilityFromLocalStorage;\n }\n\n if (initialState?.columns?.columnVisibilityModel) {\n return initialState.columns.columnVisibilityModel;\n }\n\n return defaultValue;\n};\n\nexport const getPinnedColumnsFromString = (\n notParsed: string,\n tableColumns: DataGridProps['columns']\n): PinnedColumns | 'invalid' => {\n if (!notParsed || (notParsed.length === 1 && notParsed[0] === '?')) {\n return 'invalid';\n }\n // remove the initial ? if present\n const parsed = notParsed[0] === '?' ? notParsed.slice(1) : notParsed;\n\n const pinnedColumns: Partial<PinnedColumns> = {};\n\n for (const item of parsed.split('&')) {\n const fieldURL = item.split('=')[0];\n if (fieldURL !== '_pinnedColumnsLeft' && fieldURL !== '_pinnedColumnsRight') {\n continue;\n }\n\n const left = item.split(']')[0];\n if (left.split('[').length < 2) {\n continue;\n }\n\n const encodedValues = item.split('[')[1].split(']')[0];\n if (typeof encodedValues !== 'string') {\n continue;\n }\n\n const fields = [...tableColumns.map((column) => column.field), '__check__'];\n\n const columns = encodedValues\n .split(',')\n .map((value) => decodeValue(value))\n .filter((val): val is string => typeof val === 'string' && fields.includes(val));\n\n if (fieldURL === '_pinnedColumnsLeft') {\n pinnedColumns['left'] = columns;\n }\n if (fieldURL === '_pinnedColumnsRight') {\n pinnedColumns['right'] = columns;\n }\n }\n\n return (pinnedColumns.left && pinnedColumns.left.length > 0) ||\n (pinnedColumns.right && pinnedColumns.right.length > 0)\n ? {\n left: pinnedColumns.left || [],\n right: pinnedColumns.right || [],\n }\n : 'invalid';\n};\n\nexport const getSearchParamsFromPinnedColumns = (pinnedColumns: GridPinnedColumns): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const pinnedColumnLeft = pinnedColumns.left?.map((val) => encodeValue(val)) || [];\n const pinnedColumnRight = pinnedColumns.right?.map((val) => encodeValue(val)) || [];\n\n searchParams.set('_pinnedColumnsLeft', `[${pinnedColumnLeft.join(',')}]`);\n searchParams.set('_pinnedColumnsRight', `[${pinnedColumnRight.join(',')}]`);\n\n return searchParams;\n};\n\n// Rules:\n// - if we have something in the URL, use that info\n// - if we don't have that, use the localStorage and update the URL\n// - if we don't have that, return an empty ColumnVisibilityModel (which is all columns)\nconst getPinnedColumns = (\n search: string,\n columns: DataGridProps['columns'],\n localStoragePinnedColumns: string,\n setLocalStoragePinnedColumns: (pinnedColumns: string) => void,\n initialState: GridInitialStatePro | undefined,\n isNewVersion: boolean\n): PinnedColumns => {\n const defaultValue = initialState?.pinnedColumns\n ? {\n left: initialState?.pinnedColumns['left'] || [],\n right: initialState?.pinnedColumns['right'] || [],\n }\n : { left: [], right: [] };\n\n if (isNewVersion) {\n return defaultValue;\n }\n\n const pinnedColumns = getPinnedColumnsFromString(search, columns);\n\n if (pinnedColumns !== 'invalid') {\n const searchPinnedColumns = getSearchParamsFromPinnedColumns(pinnedColumns);\n\n if (searchPinnedColumns.toString() !== localStoragePinnedColumns) {\n setLocalStoragePinnedColumns(searchPinnedColumns.toString());\n }\n return pinnedColumns;\n }\n\n const pinnedColumnsFromLocalStorage = getPinnedColumnsFromString(localStoragePinnedColumns, columns);\n\n if (pinnedColumnsFromLocalStorage !== 'invalid') {\n return pinnedColumnsFromLocalStorage;\n }\n\n return defaultValue;\n};\n\nexport const getSearchParamsFromTab = (search: string): URLSearchParams => {\n const searchParams = new URLSearchParams();\n const openTab = new URLSearchParams(search).get('tab');\n if (openTab) {\n searchParams.set('tab', openTab);\n }\n return searchParams;\n};\n\ntype FinalSearchInput = {\n localStorageVersion: number;\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnsVisibilityModel: GridColumnVisibilityModel;\n pinnedColumnsModel: GridPinnedColumns;\n search: string;\n columns: DataGridProps['columns'];\n};\n\nexport const getFinalSearch = ({\n search,\n localStorageVersion,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel,\n pinnedColumnsModel,\n columns,\n}: FinalSearchInput): URLSearchParams => {\n const filterModelSearch = getSearchParamsFromFilterModel(filterModel);\n const sortModelSearch = getSearchParamsFromSorting(sortModel);\n const paginationModelSearch = getSearchParamsFromPagination(paginationModel);\n const columnVisibilityModelSearch = getSearchParamsFromColumnVisibility(columnsVisibilityModel, columns);\n const pinnedColumnsModelSearch = getSearchParamsFromPinnedColumns(pinnedColumnsModel);\n const tabSearch = getSearchParamsFromTab(search);\n\n const searchParams = new URLSearchParams();\n\n for (const [key, value] of new URLSearchParams(search)) {\n if (!key.startsWith('_')) {\n searchParams.set(key, value);\n }\n }\n searchParams.set('v', `${localStorageVersion}`);\n\n // Add quickFilterValues explicitly if present in filterModel\n if (filterModel.quickFilterValues && filterModel.quickFilterValues.length > 0) {\n // Encode array as JSON string to preserve all values in one param\n searchParams.set('_quickFilterValues', encodeURIComponent(JSON.stringify(filterModel.quickFilterValues)));\n }\n\n return new URLSearchParams([\n ...searchParams,\n ...filterModelSearch,\n ...sortModelSearch,\n ...paginationModelSearch,\n ...tabSearch,\n ...pinnedColumnsModelSearch,\n ...columnVisibilityModelSearch,\n ]);\n};\n\nexport type PinnedColumns = {\n left: string[];\n right: string[];\n};\n\ntype ModelsLocalStorage = {\n localStorageFilters: string;\n setLocalStorageFilters: (search: string) => void;\n localStorageSorting: string;\n setLocalStorageSorting: (search: string) => void;\n localStoragePagination: string;\n setLocalStoragePagination: (search: string) => void;\n localStorageColumnsVisibility: string;\n setLocalStorageColumnsVisibility: (search: string) => void;\n localStoragePinnedColumns: string;\n setLocalStoragePinnedColumns: (search: string) => void;\n};\n\ntype ModelsTable = {\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnVisibilityModel: GridColumnVisibilityModel;\n pinnedColumnsModel: PinnedColumns;\n};\n\n/** Return the state of the table given the URL and the local storage state */\nexport const getModelsParsedOrUpdateLocalStorage = (\n search: string,\n localStorageVersion: number,\n columns: DataGridProps['columns'],\n historyReplace: (newSearch: string) => void,\n initialState: GridInitialStatePro | undefined,\n localStorage: ModelsLocalStorage\n): ModelsTable => {\n const currentVersion = new URLSearchParams(search).get('v');\n const isNewVersion = !currentVersion || Number(currentVersion) !== localStorageVersion;\n\n const {\n localStorageFilters,\n setLocalStorageFilters,\n localStorageSorting,\n setLocalStorageSorting,\n localStoragePagination,\n setLocalStoragePagination,\n localStorageColumnsVisibility,\n setLocalStorageColumnsVisibility,\n localStoragePinnedColumns,\n setLocalStoragePinnedColumns,\n } = localStorage;\n\n const filterModel: ExtendedGridFilterModel = getFilterModel(\n search,\n columns,\n localStorageFilters,\n setLocalStorageFilters,\n initialState,\n isNewVersion\n );\n const sortModel = getSortModel(\n search,\n columns,\n localStorageSorting,\n setLocalStorageSorting,\n initialState,\n isNewVersion\n );\n const paginationModel = getPaginationModel(\n search,\n localStoragePagination,\n setLocalStoragePagination,\n initialState,\n isNewVersion\n );\n const columnVisibilityModel = getColumnsVisibility(\n search,\n columns as (GridColDef & { defaultHidden?: boolean })[],\n localStorageColumnsVisibility,\n setLocalStorageColumnsVisibility,\n initialState,\n isNewVersion\n );\n\n const pinnedColumnsModel = getPinnedColumns(\n search,\n columns,\n localStoragePinnedColumns,\n setLocalStoragePinnedColumns,\n initialState,\n isNewVersion\n );\n\n const finalSearch = getFinalSearch({\n localStorageVersion,\n search,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel: columnVisibilityModel,\n pinnedColumnsModel,\n columns,\n });\n\n const searchString = urlSearchParamsToString(finalSearch);\n if (searchString !== search) {\n historyReplace(searchString);\n }\n\n return {\n filterModel,\n sortModel,\n paginationModel,\n columnVisibilityModel,\n pinnedColumnsModel,\n };\n};\n\nexport type DataGridModel = {\n filterModel: GridFilterModel;\n sortModel: GridSortModel;\n paginationModel: ExtendedGridPaginationModel;\n columnsModel: GridColumnVisibilityModel;\n pinnedColumnsModel: GridPinnedColumns;\n};\n\nexport const updateUrl = (\n { filterModel, sortModel, paginationModel, columnsModel: columnsVisibilityModel, pinnedColumnsModel }: DataGridModel,\n search: string,\n localStorageVersion: number,\n historyReplace: (newSearch: string) => void,\n columns: DataGridProps['columns']\n) => {\n const newSearch = getFinalSearch({\n search,\n localStorageVersion,\n filterModel,\n sortModel,\n paginationModel,\n columnsVisibilityModel,\n pinnedColumnsModel,\n columns,\n });\n\n const searchString = urlSearchParamsToString(newSearch);\n if (searchString !== search) {\n historyReplace(searchString);\n }\n};\n\n// Note: this is a comparator to sort the filters, not pure comparison\n// do not use it for equivalence (e.g. with value `3` and undefined we\n// will get 0).\nconst compareFilters = (firstFilter: GridFilterItem, secondFilter: GridFilterItem): number => {\n if (firstFilter.field < secondFilter.field) {\n return -1;\n } else if (firstFilter.field > secondFilter.field) {\n return 1;\n }\n if (firstFilter.operator === undefined || secondFilter.operator === undefined) {\n return 0;\n }\n if (firstFilter.operator < secondFilter.operator) {\n return -1;\n } else if (firstFilter.operator > secondFilter.operator) {\n return 1;\n }\n\n if (firstFilter.value < secondFilter.value) {\n return -1;\n } else if (firstFilter.value > secondFilter.value) {\n return 1;\n }\n\n return 0;\n};\n\nconst areFiltersEquivalent = (firstFilter: GridFilterItem, secondFilter: GridFilterItem): boolean => {\n return (\n firstFilter.field === secondFilter.field &&\n firstFilter.operator === secondFilter.operator &&\n firstFilter.value === secondFilter.value\n );\n};\n\nexport const areFilterModelsEquivalent = (\n filterModel: GridFilterModel,\n filterModelToMatch: GridFilterModel\n): boolean => {\n const { items, logicOperator } = filterModel;\n const { items: itemsToMatch, logicOperator: logicOperatorToMatch } = filterModelToMatch;\n\n if (logicOperator !== logicOperatorToMatch) {\n return false;\n }\n\n if (items.length !== itemsToMatch.length) {\n return false;\n }\n\n items.sort(compareFilters);\n itemsToMatch.sort(compareFilters);\n\n for (let i = 0; i < items.length; i++) {\n const filter = items[i];\n const filterToCompare = itemsToMatch[i];\n\n // compareFilters return 0 if and only if the filters have the same\n // field, operator, and value\n if (!areFiltersEquivalent(filter, filterToCompare)) {\n return false;\n }\n }\n\n return true;\n};\n","// Get and Set data from LocalStorage WITHOUT useState\n// Useful for when you want to get and set data without\n// triggering a state update and consecutive re-render\n\nimport { useCallback } from 'react';\n\nexport const useFetchState = (defaultValue: unknown, key: string) => {\n let stickyValue = null;\n try {\n stickyValue = window.localStorage.getItem(key);\n } catch (e) {\n console.error('StatefulDataGrid: error getting item from local storage: ', e);\n }\n const parsedValue =\n stickyValue !== null && stickyValue !== undefined && stickyValue !== 'undefined'\n ? JSON.parse(stickyValue)\n : defaultValue;\n\n const updateValue = useCallback(\n (value: unknown) => {\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch (e) {\n console.error('StatefulDataGrid: error setting item into local storage: ', e);\n }\n },\n [key]\n );\n\n return [parsedValue, updateValue];\n};\n","import {\n buildStorageKey,\n DIMENSION_MODEL_KEY,\n FILTER_SEARCH_KEY,\n PAGINATION_MODEL_KEY,\n PINNED_COLUMNS,\n SORT_MODEL_KEY,\n VISIBILITY_MODEL_KEY,\n} from '../utils/localStorage';\nimport { useFetchState } from './useFetchState';\n// import useLocalStorage from './useLocalStorage';\n\nexport const useTableStates = (id: string, version: number) => {\n const [paginationModel, setPaginationModel] = useFetchState(\n '',\n buildStorageKey({ id, version, category: PAGINATION_MODEL_KEY })\n );\n\n const [sortModel, setSortModel] = useFetchState('', buildStorageKey({ id, version, category: SORT_MODEL_KEY }));\n\n const [localStorageFilters, setLocalStorageFilters] = useFetchState(\n '',\n buildStorageKey({ id, version, category: FILTER_SEARCH_KEY })\n );\n\n const [visibilityModelLocalStorage, setVisibilityModelLocalStorage] = useFetchState(\n '',\n buildStorageKey({ id, version, category: VISIBILITY_MODEL_KEY })\n );\n\n const [pinnedColumns, setPinnedColumns] = useFetchState(\n '_pinnedColumnsLeft=[]&_pinnedColumnsRight=[]',\n buildStorageKey({ id, version, category: PINNED_COLUMNS })\n );\n\n const [dimensionModel, setDimensionModel] = useFetchState(\n {},\n buildStorageKey({ id, version, category: DIMENSION_MODEL_KEY })\n );\n\n return {\n paginationModel,\n setPaginationModel,\n sortModel,\n setSortModel,\n localStorageFilters,\n setLocalStorageFilters,\n visibilityModelLocalStorage,\n setVisibilityModelLocalStorage,\n pinnedColumns,\n setPinnedColumns,\n dimensionModel,\n setDimensionModel,\n };\n};\n","import { useCallback, useEffect, useMemo } from 'react';\nimport { useTableStates } from './useTableStates';\nimport {\n GridApiPro,\n GridCallbackDetails,\n GridColDef,\n GridColumnResizeParams,\n GridFilterItem,\n GridFilterModel,\n GridPaginationModel,\n GridPinnedColumns,\n GridSortModel,\n} from '@mui/x-data-grid-pro';\nimport { clearPreviousVersionStorage } from '../utils/localStorage';\nimport { getModelsParsedOrUpdateLocalStorage, updateUrl } from '../utils/urlLocalStorageSync';\nimport { StatefulDataGridProps } from '../components/StatefulDataGrid';\nimport { DataGridProps } from '../components/DataGrid';\n\nexport interface UseStatefulTableProps\n extends Pick<\n StatefulDataGridProps,\n | 'columns'\n | 'onColumnVisibilityModelChange'\n | 'onColumnWidthChange'\n | 'onFilterModelChange'\n | 'onPaginationModelChange'\n | 'onPinnedColumnsChange'\n | 'onSortModelChange'\n | 'useRouter'\n | 'localStorageVersion'\n | 'previousLocalStorageVersions'\n | 'initialState'\n >,\n Required<Pick<StatefulDataGridProps, 'apiRef'>> {\n // density?: GridDensity;\n}\n\nexport interface ExtendedGridFilterItem extends GridFilterItem {\n type?: string;\n}\n\nexport interface ExtendedGridFilterModel extends GridFilterModel {\n quickFilterValues?: string[];\n}\n\nexport interface ExtendedGridPaginationModel extends GridPaginationModel {\n direction?: 'next' | 'back';\n}\n\nexport interface ExtendedGridApiPro extends GridApiPro {\n resetPage?: () => void;\n}\n\nexport type UseStatefulTableReponse = DataGridProps & Required<Pick<DataGridProps, 'paginationModel'>>;\n\nexport const useStatefulTable = (props: UseStatefulTableProps): UseStatefulTableReponse => {\n const {\n // density = 'standard',\n apiRef,\n initialState,\n columns: propsColumns,\n onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,\n onColumnWidthChange: propsOnColumnWidthChange,\n onFilterModelChange: propsOnFilterModelChange,\n onPaginationModelChange: propsOnPaginationModelChange,\n onPinnedColumnsChange: propsOnPinnedColumnsChange,\n onSortModelChange: propsOnSortModelChange,\n useRouter,\n localStorageVersion = 1,\n previousLocalStorageVersions = [],\n } = props;\n\n const { search, pathname, historyReplace } = useRouter();\n\n const id = pathname;\n\n // States and setters persisted in the local storage for this table\n const {\n paginationModel,\n setPaginationModel,\n sortModel,\n setSortModel,\n localStorageFilters,\n setLocalStorageFilters,\n visibilityModelLocalStorage,\n setVisibilityModelLocalStorage,\n pinnedColumns,\n setPinnedColumns,\n dimensionModel,\n setDimensionModel,\n } = useTableStates(id, localStorageVersion);\n\n // clearing up old version keys, triggering only on first render\n useEffect(() => clearPreviousVersionStorage(id, previousLocalStorageVersions), [id, previousLocalStorageVersions]);\n\n const onColumnDimensionChange = useCallback(\n ({\n newWidth,\n field,\n }: {\n newWidth: GridColumnResizeParams['width'];\n field: GridColumnResizeParams['colDef']['field'];\n }) => {\n setDimensionModel({ ...dimensionModel, [field]: newWidth });\n },\n [dimensionModel, setDimensionModel]\n );\n\n const {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnVisibilityModel: visibilityModel,\n pinnedColumnsModel,\n } = getModelsParsedOrUpdateLocalStorage(\n search || '',\n localStorageVersion,\n propsColumns,\n historyReplace,\n initialState,\n {\n localStorageFilters,\n setLocalStorageFilters,\n localStorageSorting: sortModel,\n setLocalStorageSorting: setSortModel,\n localStoragePagination: paginationModel,\n setLocalStoragePagination: setPaginationModel,\n localStorageColumnsVisibility: visibilityModelLocalStorage,\n setLocalStorageColumnsVisibility: setVisibilityModelLocalStorage,\n localStoragePinnedColumns: pinnedColumns,\n setLocalStoragePinnedColumns: setPinnedColumns,\n }\n );\n\n const columns = useMemo(\n () =>\n propsColumns.map((column: GridColDef) => {\n column.width = dimensionModel[column.field] || column.width || 100;\n return column;\n }),\n [propsColumns, dimensionModel]\n );\n /** Add resetPage method to apiRef. */\n (apiRef.current as ExtendedGridApiPro).resetPage = () => {\n apiRef.current.setPage(0);\n };\n\n return {\n apiRef,\n columns,\n onFilterModelChange: (model: GridFilterModel, details: GridCallbackDetails<'filter'>) => {\n const filterModel: GridFilterModel = {\n ...model,\n items: model.items.map((item) => {\n const column = apiRef.current.getColumn(item.field);\n (item as ExtendedGridFilterItem).type = column.type || 'string';\n return item;\n }),\n quickFilterValues: model.quickFilterValues || [],\n };\n propsOnFilterModelChange?.(filterModel, details);\n updateUrl(\n {\n filterModel: filterModel,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n filterModel: filterParsed,\n onSortModelChange: (model: GridSortModel, details: GridCallbackDetails) => {\n propsOnSortModelChange?.(model, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: model,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n sortModel: sortModelParsed,\n onPinnedColumnsChange: (pinnedColumns: GridPinnedColumns, details: GridCallbackDetails) => {\n propsOnPinnedColumnsChange?.(pinnedColumns, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumns,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n pinnedColumns: pinnedColumnsModel,\n paginationModel: paginationModelParsed,\n onPaginationModelChange: (model, details) => {\n const paginationModel: ExtendedGridPaginationModel = {\n ...model,\n direction: paginationModelParsed.page < model.page ? 'next' : 'back',\n };\n propsOnPaginationModelChange?.(paginationModel, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModel,\n columnsModel: apiRef.current.state.columns.columnVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n columnVisibilityModel: visibilityModel,\n onColumnVisibilityModelChange: (columnsVisibilityModel, details) => {\n propsOnColumnVisibilityModelChange?.(columnsVisibilityModel, details);\n updateUrl(\n {\n filterModel: filterParsed,\n sortModel: sortModelParsed,\n paginationModel: paginationModelParsed,\n columnsModel: columnsVisibilityModel,\n pinnedColumnsModel: pinnedColumnsModel,\n },\n search,\n localStorageVersion,\n historyReplace,\n columns\n );\n },\n onColumnWidthChange: (params, event, details) => {\n propsOnColumnWidthChange?.(params, event, details);\n onColumnDimensionChange({ newWidth: params.width, field: params.colDef.field });\n },\n };\n};\n","import React, { forwardRef, RefObject, useEffect, useMemo, useRef, useState } from 'react';\nimport { ThemeProvider as MuiThemeProvider, createTheme } from '@mui/material/styles';\nimport classNames from 'classnames';\nimport { LicenseInfo } from '@mui/x-license-pro';\nimport {\n Comp,\n RedsiftColorBlueN,\n RedsiftColorNeutralWhite,\n RedsiftColorNeutralXDarkGrey,\n ThemeProvider,\n useTheme,\n} from '@redsift/design-system';\nimport {\n DataGridPro,\n GridCallbackDetails,\n gridFilteredSortedRowEntriesSelector,\n gridFilteredSortedRowIdsSelector,\n gridPaginatedVisibleSortedGridRowEntriesSelector,\n gridPaginatedVisibleSortedGridRowIdsSelector,\n GridRowParams,\n GridRowSelectionModel,\n useGridApiRef,\n} from '@mui/x-data-grid-pro';\n\nimport { StyledDataGrid } from '../DataGrid/styles';\nimport { SelectionStatus } from '../DataGrid/types';\nimport { Toolbar as DefaultToolbar } from '../Toolbar';\nimport { BaseIcon, BaseButton, BaseCheckbox, BasePopper } from '../BaseComponents';\nimport { ToolbarWrapper } from '../ToolbarWrapper';\nimport { onServerSideSelectionStatusChange, ServerSideControlledPagination, ControlledPagination } from '../Pagination';\n\nimport { useStatefulTable } from '../../hooks/useStatefulTable';\nimport { StatefulDataGridProps } from './types';\nimport { useControlledDatagridState } from '../../hooks/useControlledDatagridState';\n\nconst COMPONENT_NAME = 'DataGrid';\nconst CLASSNAME = 'redsift-datagrid';\n\nexport const StatefulDataGrid: Comp<StatefulDataGridProps, HTMLDivElement> = forwardRef((props, ref) => {\n const datagridRef = ref || useRef<HTMLDivElement>();\n\n const {\n apiRef: propsApiRef,\n autoHeight,\n className,\n columns,\n slots,\n slotProps,\n filterModel: propsFilterModel,\n columnVisibilityModel: propsColumnVisibilityModel,\n pinnedColumns: propsPinnedColumns,\n sortModel: propsSortModel,\n paginationModel: propsPaginationModel,\n height: propsHeight,\n hideToolbar,\n initialState,\n isRowSelectable,\n license = process.env.MUI_LICENSE_KEY,\n localStorageVersion,\n previousLocalStorageVersions,\n onFilterModelChange: propsOnFilterModelChange,\n rowSelectionModel: propsRowSelectionModel,\n onColumnWidthChange: propsOnColumnWidthChange,\n onPaginationModelChange: propsOnPaginationModelChange,\n onRowSelectionModelChange: propsOnRowSelectionModelChange,\n onColumnVisibilityModelChange: propsOnColumnVisibilityModelChange,\n onPinnedColumnsChange: propsOnPinnedColumnsChange,\n onSortModelChange: propsOnSortModelChange,\n pagination,\n paginationPlacement = 'both',\n paginationProps,\n rows,\n pageSizeOptions,\n sx,\n theme: propsTheme,\n useRouter,\n paginationMode = 'client',\n rowCount,\n ...forwardedProps\n } = props;\n\n const theme = useTheme(propsTheme);\n\n const _apiRef = useGridApiRef();\n const apiRef = propsApiRef ?? _apiRef;\n const RenderedToolbar = slots?.toolbar ? slots.toolbar : DefaultToolbar;\n\n LicenseInfo.setLicenseKey(license!);\n\n const height = propsHeight ?? (autoHeight ? undefined : '500px');\n\n const {\n onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,\n onFilterModelChange: controlledOnFilterModelChange,\n onPaginationModelChange: controlledOnPaginationModelChange,\n onPinnedColumnsChange: controlledOnPinnedColumnsChange,\n onSortModelChange: controlledOnSortModelChange,\n } = useControlledDatagridState({\n initialState,\n pageSizeOptions,\n propsColumnVisibilityModel,\n propsFilterModel,\n propsOnColumnVisibilityModelChange,\n propsOnFilterModelChange,\n propsOnPinnedColumnsChange,\n propsOnSortModelChange,\n propsPaginationModel,\n propsPinnedColumns,\n propsSortModel,\n propsOnPaginationModelChange,\n });\n\n const {\n columnVisibilityModel,\n filterModel,\n onColumnVisibilityModelChange,\n onFilterModelChange,\n onPaginationModelChange,\n onPinnedColumnsChange,\n onSortModelChange,\n paginationModel,\n pinnedColumns,\n sortModel,\n onColumnWidthChange,\n } = useStatefulTable({\n apiRef: apiRef!,\n initialState,\n columns,\n onColumnVisibilityModelChange: controlledOnColumnVisibilityModelChange,\n onColumnWidthChange: propsOnColumnWidthChange,\n onFilterModelChange: controlledOnFilterModelChange,\n onPaginationModelChange: controlledOnPaginationModelChange,\n onPinnedColumnsChange: controlledOnPinnedColumnsChange,\n onSortModelChange: controlledOnSortModelChange,\n useRouter: useRouter!,\n localStorageVersion,\n previousLocalStorageVersions,\n });\n\n const [rowSelectionModel, setRowSelectionModel] = useState(propsRowSelectionModel ?? []);\n useEffect(() => {\n setRowSelectionModel(propsRowSelectionModel ?? []);\n }, [propsRowSelectionModel]);\n\n const onRowSelectionModelChange = (selectionModel: GridRowSelectionModel, details: GridCallbackDetails) => {\n if (propsOnRowSelectionModelChange) {\n propsOnRowSelectionModelChange(selectionModel, details);\n } else {\n setRowSelectionModel(selectionModel);\n }\n };\n\n const selectionStatus = useRef<SelectionStatus>({\n type: 'none',\n numberOfSelectedRows: 0,\n numberOfSelectedRowsInPage: 0,\n page: paginationModel.page,\n pageSize: paginationModel.pageSize,\n });\n\n // in server-side pagination we want to update the selection status\n // every time we navigate between pages, resize our page or select something\n useEffect(() => {\n if (paginationMode == 'server') {\n onServerSideSelectionStatusChange(\n Array.isArray(rowSelectionModel) ? rowSelectionModel : [rowSelectionModel],\n apiRef,\n selectionStatus,\n isRowSelectable,\n paginationModel.page,\n paginationModel.pageSize\n );\n }\n }, [rowSelectionModel, paginationModel.page, paginationModel.pageSize]);\n\n if (!Array.isArray(rows)) {\n return null;\n }\n\n const muiTheme = useMemo(\n () =>\n createTheme({\n palette: {\n mode: theme,\n primary: { main: RedsiftColorBlueN },\n background: {\n default: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,\n paper: theme === 'dark' ? RedsiftColorNeutralXDarkGrey : RedsiftColorNeutralWhite,\n },\n },\n }),\n [theme]\n );\n\n return (\n <ThemeProvider value={{ theme }}>\n <MuiThemeProvider theme={muiTheme}>\n {/* <pre>{JSON.stringify(selectionStatus, null, 2)}</pre> */}\n <StyledDataGrid\n ref={datagridRef as RefObject<HTMLDivElement>}\n className={classNames(StatefulDataGrid.className, className)}\n $height={height}\n >\n <DataGridPro\n {...forwardedProps}\n apiRef={apiRef}\n columns={columns}\n columnVisibilityModel={columnVisibilityModel}\n filterModel={filterModel}\n onColumnVisibilityModelChange={onColumnVisibilityModelChange}\n onFilterModelChange={onFilterModelChange}\n onPaginationModelChange={onPaginationModelChange}\n onPinnedColumnsChange={onPinnedColumnsChange}\n onSortModelChange={onSortModelChange}\n paginationModel={paginationModel}\n pinnedColumns={pinnedColumns}\n sortModel={sortModel}\n pageSizeOptions={pageSizeOptions}\n onColumnWidthChange={onColumnWidthChange}\n initialState={initialState}\n isRowSelectable={isRowSelectable}\n pagination={pagination}\n paginationMode={paginationMode}\n keepNonExistentRowsSelected={paginationMode == 'server'}\n rows={rows}\n rowCount={rowCount!}\n autoHeight={autoHeight}\n checkboxSelectionVisibleOnly={Boolean(pagination)}\n slots={{\n baseButton: BaseButton,\n baseCheckbox: BaseCheckbox,\n // baseTextField,\n basePopper: BasePopper,\n columnFilteredIcon: (props) => <BaseIcon {...props} displayName=\"ColumnFilteredIcon\" />,\n columnSelectorIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSelectorIcon\" />,\n columnSortedAscendingIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSortedAscendingIcon\" />,\n columnSortedDescendingIcon: (props) => <BaseIcon {...props} displayName=\"ColumnSortedDescendingIcon\" />,\n densityCompactIcon: (props) => <BaseIcon {...props} displayName=\"DensityCompactIcon\" />,\n densityStandardIcon: (props) => <BaseIcon {...props} displayName=\"DensityStandardIcon\" />,\n densityComfortableIcon: (props) => <BaseIcon {...props} displayName=\"DensityComfortableIcon\" />,\n detailPanelCollapseIcon: (props) => <BaseIcon {...props} displayName=\"DetailPanelCollapseIcon\" />,\n detailPanelExpandIcon: (props) => <BaseIcon {...props} displayName=\"DetailPanelExpandIcon\" />,\n exportIcon: (props) => <BaseIcon {...props} displayName=\"ExportIcon\" />,\n openFilterButtonIcon: (props) => <BaseIcon displayName=\"OpenFilterButtonIcon\" {...props} />,\n ...slots,\n toolbar: ToolbarWrapper,\n pagination: (props) => {\n return pagination ? (\n paginationMode == 'server' ? (\n <ServerSideControlledPagination\n {...props}\n displaySelection={false}\n displayRowsPerPage={['bottom', 'both'].includes(paginationPlacement!)}\n displayPagination={['bottom', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n paginationModel={paginationModel}\n onPaginationModelChange={onPaginationModelChange}\n pageSizeOptions={pageSizeOptions as any as number[]}\n paginationProps={paginationProps}\n paginationMode={paginationMode}\n rowCount={rowCount!}\n />\n ) : (\n <ControlledPagination\n {...props}\n displaySelection={false}\n displayRowsPerPage={['bottom', 'both'].includes(paginationPlacement!)}\n displayPagination={['bottom', 'both'].includes(paginationPlacement!)}\n selectionStatus={selectionStatus.current}\n apiRef={apiRef}\n isRowSelectable={isRowSelectable}\n paginationModel={paginationModel}\n onPaginationModelChange={onPaginationModelChange}\n pageSizeOptions={pageSizeOptions as any as number[]}\n paginationProps={paginationProps}\n paginationMode={paginationMode}\n />\n )\n ) : null;\n },\n }}\n slotProps={{\n ...slotProps,\n toolbar: {\n hideToolbar,\n RenderedToolbar,\n filterModel,\n onFilterModelChange,\n pagination,\n paginationPlacement,\n selectionStatus,\n apiRef,\n isRowSelectable,\n paginationModel,\n onPaginationModelChange,\n pageSizeOptions,\n paginationProps,\n paginationMode,\n rowCount,\n ...slotProps?.toolbar,\n },\n }}\n rowSelectionModel={rowSelectionModel}\n onRowSelectionModelChange={(newSelectionModel, details) => {\n if (pagination && paginationMode != 'server') {\n const selectableRowsInPage = isRowSelectable\n ? gridPaginatedVisibleSortedGridRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridPaginatedVisibleSortedGridRowIdsSelector(apiRef);\n const numberOfSelectableRowsInPage = selectableRowsInPage.length;\n\n const selectableRowsInTable = isRowSelectable\n ? gridFilteredSortedRowEntriesSelector(apiRef)\n .filter(({ model }) => isRowSelectable({ row: model } as GridRowParams))\n .map(({ id }) => id)\n : gridFilteredSortedRowIdsSelector(apiRef);\n const numberOfSelectableRowsInTable = selectableRowsInTable.length;\n\n const numberOfSelectedRows = newSelectionModel.length;\n\n if (\n (selectionStatus.current.type === 'table' &&\n numberOfSelectedRows === numberOfSelectableRowsInTable - numberOfSelectableRowsInPage) ||\n (selectionStatus.current.type === 'table' &&\n numberOfSelectedRows === numberOfSelectableRowsInTable) ||\n (selectionStatus.current.type === 'page' && numberOfSelectedRows === numberOfSelectableRowsInPage)\n ) {\n setTimeout(() => {\n apiRef.current.selectRows([], true, true);\n }, 0);\n }\n\n if (\n numberOfSelectedRows === numberOfSelectableRowsInPage &&\n numberOfSelectableRowsInPage < numberOfSelectableRowsInTable\n ) {\n selectionStatus.current = {\n type: 'page',\n numberOfSelectedRows,\n };\n } else if (\n numberOfSelectedRows === numberOfSelectableRowsInTable &&\n numberOfSelectableRowsInPage < numberOfSelectableRowsInTable\n ) {\n selectionStatus.current = {\n type: 'table',\n numberOfSelectedRows,\n };\n } else if (numberOfSelectedRows > 0) {\n selectionStatus.current = {\n type: 'other',\n numberOfSelectedRows,\n };\n } else {\n selectionStatus.current = {\n type: 'none',\n numberOfSelectedRows,\n };\n }\n }\n onRowSelectionModelChange?.(newSelectionModel, details);\n }}\n sx={{\n ...sx,\n '.MuiDataGrid-columnHeaders': {\n flexDirection: 'column',\n alignItems: 'normal',\n },\n '.MuiDataGrid-selectedRowCount': {\n margin: 'none',\n },\n }}\n />\n </StyledDataGrid>\n </MuiThemeProvider>\n </ThemeProvider>\n );\n});\nStatefulDataGrid.className = CLASSNAME;\nStatefulDataGrid.displayName = COMPONENT_NAME;\n"],"names":["_excluded","_jsx","useUtilityClasses","styled","formLabelClasses","_jsxs","FormLabel","formHelperTextClasses","FormControl","InputLabel","FormHelperText","SUBMIT_FILTER_STROKE_TIME","InputNumberInterval","props","_item$value","item","applyValue","focusElementRef","filterTimeout","React","useRef","filterValueState","setFilterValueState","useState","value","applying","setIsApplying","useEffect","clearTimeout","current","_item$value2","itemValue","undefined","updateFilterValue","lowerBound","upperBound","setTimeout","_objectSpread","handleUpperFilterChange","event","newUpperBound","target","handleLowerFilterChange","newLowerBound","createElement","Box","sx","display","flexDirection","alignItems","height","pl","TextField","name","placeholder","label","variant","Number","onChange","type","inputRef","mr","InputProps","endAdornment","Icon","icon","mdiSync","isBetweenOperator","getApplyFilterFn","filterItem","field","operator","Array","isArray","length","params","InputComponent","IS_BETWEEN","getGridNumericOperators","forwardOperators","doesNotContain","String","indexOf","GridFilterInputValue","DOES_NOT_CONTAIN","doesNotEqual","DOES_NOT_EQUAL","doesNotHaveOperator","cellValues","map","includes","DOES_NOT_HAVE","DOES_NOT_HAVE_WITH_SELECT","GridFilterInputSingleSelect","hasOperator","HAS","HAS_WITH_SELECT","hasOnlyOperator","HAS_ONLY","HAS_ONLY_WITH_SELECT","isOperator","IS","IS_WITH_SELECT","isNotOperator","IS_NOT","IS_NOT_WITH_SELECT","containsAnyOfOperator","paramValues","match","forEach","filteredValue","paramValue","GridFilterInputMultipleValue","containsAnyOfCIOperator","paramValuesLower","toLowerCase","CONTAINS_ANY_OF","CONTAINS_ANY_OF_I","endsWithAnyOfOperator","endsWith","ENDS_WITH_ANY_OF","isAnyOfOperator","IS_ANY_OF","IS_ANY_OF_WITH_SELECT","GridFilterInputMultipleSingleSelect","hasAnyOfOperator","filterItemValues","some","v","HAS_ANY_OF","HAS_ANY_OF_WITH_SELECT","isNotAnyOfOperator","IS_NOT_ANY_OF","IS_NOT_ANY_OF_WITH_SELECT","startsWithAnyOfOperator","startsWith","STARTS_WITH_ANY_OF","doesNotHaveAnyOf","every","filterVal","DOES_NOT_HAVE_ANY_OF","DOES_NOT_HAVE_ANY_OF_WITH_SELECT","getGridStringArrayOperators","getGridStringArrayOperatorsWithSelect","getGridStringArrayOperatorsWithSelectOnStringArrayColumns","getGridStringOperators","filter","operatorList","string","nativeGetGridStringOperators","number","nativeGetGridNumericOperators","boolean","getGridBooleanOperators","date","getGridDateOperators","dateTime","singleSelect","getGridSingleSelectOperators","rsString","rsNumber","rsSingleSelect","rsSingleSelectWithShortOperatorList","rsMultipleSelect","rsMultipleSelectWithShortOperatorList","rsStringArray","PAGINATION_MODEL_KEY","FILTER_MODEL_KEY","SORT_MODEL_KEY","VISIBILITY_MODEL_KEY","PINNED_COLUMNS","DIMENSION_MODEL_KEY","FILTER_SEARCH_KEY","CATEGORIES","buildStorageKey","_ref","id","version","category","clearPreviousVersionStorage","previousLocalStorageVersions","keysToDelete","keyToDelete","window","localStorage","removeItem","e","DECODER","ENCODER","decodeValue","re","RegExp","Object","keys","reduce","acc","curr","arrayValues","split","arrayList","replace","encoded","encodeValue","encodedArray","entry","join","castedValue","urlSearchParamsToString","searchParams","searchString","key","slice","numberOperatorEncoder","numberOperatorDecoder","eq","ne","gt","gte","lt","lte","isOperatorValueValid","columns","column","find","columnType","operators","filterOperators","op","listOperators","isValueValid","_column$type","isNaN","dateSplitted","YYYY","MM","DD","parseInt","getFilterModelFromString","logicOperator","GridLogicOperator","And","quickFilterValues","URLSearchParams","set","Or","JSON","parse","decodeURIComponent","fields","isInvalid","items","_columns$find","left","splitRight","decodedValue","push","getSearchParamsFromFilterModel","filterModel","_filterModel$quickFil","encodeURIComponent","stringify","getFilterModel","search","localStorageFilters","setLocalStorageFilters","initialState","isNewVersion","defaultValue","filterModelFromSearch","searchFromFilterModel","filterModelFromLocalStorage","getSortingFromString","get","order","sort","getSearchParamsFromSorting","sorting","getSortModel","localStorageSorting","setLocalStorageSorting","_initialState$sorting","sortModel","searchFromSortModel","sortModelFromLocalStorage","getPaginationFromString","pagination","page","parseFloat","pageSize","direction","getSearchParamsFromPagination","getPaginationModel","localStoragePagination","setLocalStoragePagination","searchFromPaginationModel","paginationModelFromLocalStorage","getColumnVisibilityFromString","parsedFields","visibility","parsedField","values","getSearchParamsFromColumnVisibility","columnVisibility","finalColumnVisibility","c","_c$hideable","hideable","colName","visibleColumns","getColumnsVisibility","localStorageColumnsVisibility","setLocalStorageColumnsVisibility","_initialState$columns3","_initialState$columns","_initialState$columns2","columnVisibilityModel","defaultHidden","searchColumnVisibility","toString","columnVisibilityFromLocalStorage","getPinnedColumnsFromString","notParsed","tableColumns","parsed","pinnedColumns","fieldURL","encodedValues","val","right","getSearchParamsFromPinnedColumns","_pinnedColumns$left","_pinnedColumns$right","pinnedColumnLeft","pinnedColumnRight","getPinnedColumns","localStoragePinnedColumns","setLocalStoragePinnedColumns","searchPinnedColumns","pinnedColumnsFromLocalStorage","getSearchParamsFromTab","openTab","getFinalSearch","localStorageVersion","paginationModel","columnsVisibilityModel","pinnedColumnsModel","filterModelSearch","sortModelSearch","paginationModelSearch","columnVisibilityModelSearch","pinnedColumnsModelSearch","tabSearch","getModelsParsedOrUpdateLocalStorage","historyReplace","currentVersion","finalSearch","updateUrl","_ref2","columnsModel","newSearch","compareFilters","firstFilter","secondFilter","areFiltersEquivalent","areFilterModelsEquivalent","filterModelToMatch","itemsToMatch","logicOperatorToMatch","i","filterToCompare","useFetchState","stickyValue","getItem","console","error","parsedValue","updateValue","useCallback","setItem","useTableStates","setPaginationModel","setSortModel","visibilityModelLocalStorage","setVisibilityModelLocalStorage","setPinnedColumns","dimensionModel","setDimensionModel","useStatefulTable","apiRef","propsColumns","onColumnVisibilityModelChange","propsOnColumnVisibilityModelChange","onColumnWidthChange","propsOnColumnWidthChange","onFilterModelChange","propsOnFilterModelChange","onPaginationModelChange","propsOnPaginationModelChange","onPinnedColumnsChange","propsOnPinnedColumnsChange","onSortModelChange","propsOnSortModelChange","useRouter","pathname","onColumnDimensionChange","newWidth","filterParsed","sortModelParsed","paginationModelParsed","visibilityModel","useMemo","width","resetPage","setPage","model","details","getColumn","state","colDef","COMPONENT_NAME","CLASSNAME","StatefulDataGrid","forwardRef","ref","datagridRef","propsApiRef","autoHeight","className","slots","slotProps","propsFilterModel","propsColumnVisibilityModel","propsPinnedColumns","propsSortModel","propsPaginationModel","propsHeight","hideToolbar","isRowSelectable","license","process","env","MUI_LICENSE_KEY","rowSelectionModel","propsRowSelectionModel","onRowSelectionModelChange","propsOnRowSelectionModelChange","paginationPlacement","paginationProps","rows","pageSizeOptions","theme","propsTheme","paginationMode","rowCount","forwardedProps","_objectWithoutProperties","useTheme","_apiRef","useGridApiRef","RenderedToolbar","toolbar","DefaultToolbar","LicenseInfo","setLicenseKey","controlledOnColumnVisibilityModelChange","controlledOnFilterModelChange","controlledOnPaginationModelChange","controlledOnPinnedColumnsChange","controlledOnSortModelChange","useControlledDatagridState","setRowSelectionModel","selectionModel","selectionStatus","numberOfSelectedRows","numberOfSelectedRowsInPage","onServerSideSelectionStatusChange","muiTheme","createTheme","palette","mode","primary","main","RedsiftColorBlueN","background","default","RedsiftColorNeutralXDarkGrey","RedsiftColorNeutralWhite","paper","ThemeProvider","MuiThemeProvider","StyledDataGrid","classNames","$height","DataGridPro","_extends","keepNonExistentRowsSelected","checkboxSelectionVisibleOnly","Boolean","baseButton","BaseButton","baseCheckbox","BaseCheckbox","basePopper","BasePopper","columnFilteredIcon","BaseIcon","displayName","columnSelectorIcon","columnSortedAscendingIcon","columnSortedDescendingIcon","densityCompactIcon","densityStandardIcon","densityComfortableIcon","detailPanelCollapseIcon","detailPanelExpandIcon","exportIcon","openFilterButtonIcon","ToolbarWrapper","ServerSideControlledPagination","displaySelection","displayRowsPerPage","displayPagination","ControlledPagination","newSelectionModel","selectableRowsInPage","gridPaginatedVisibleSortedGridRowEntriesSelector","row","gridPaginatedVisibleSortedGridRowIdsSelector","numberOfSelectableRowsInPage","selectableRowsInTable","gridFilteredSortedRowEntriesSelector","_ref3","_ref4","gridFilteredSortedRowIdsSelector","numberOfSelectableRowsInTable","selectRows","margin"],"mappings":"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"}
|