@lax-wp/design-system 0.13.28 → 0.13.29
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/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +135 -133
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.es.js +301 -296
- package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/context.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/context.d.ts +1 -0
- package/dist/components/data-display/infinite-table/context.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/index.d.ts +1 -1
- package/dist/components/data-display/infinite-table/index.es.js +211 -208
- package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/types.d.ts +22 -0
- package/dist/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../../../../src/components/data-display/infinite-table/index.tsx"],"sourcesContent":["import { useCheckbox } from '../../../hooks/useCheckbox';\nimport { useTableConfig } from '../../../providers/design-system-provider/hooks';\nimport { mergeViewColumnsWithTableColumns } from '../../../utils/table';\nimport Button from '../../button/Button';\nimport { FloatingBar } from '../../floating-bar/FloatingBar';\nimport { NoDataFound, NoDataFoundWidgets } from '../empty-state';\nimport { Typography } from '../typography/Typography';\nimport { DndContext, DragOverlay, type DragEndEvent, type DragStartEvent, type DropAnimation, MouseSensor, TouchSensor, closestCorners, useSensor, useSensors } from '@dnd-kit/core';\nimport React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { AutoSizer as _AutoSizer } from 'react-virtualized-auto-sizer';\nimport { createPortal } from 'react-dom';\nimport type { Row as ReactTableRow } from 'react-table';\nimport { useResizeColumns, useTable } from 'react-table';\n\nimport { Body } from './body';\nimport { validateCellValue } from './validateCell';\nimport { Row } from './body/rows/row';\nimport { TableContext } from './context';\nimport { CurrencyDropdownPortal } from './CurrencyDropdownPortal';\nimport { Head } from './head';\nimport { PendingEditsFloatingBar } from './PendingEditsFloatingBar';\nimport type { ICurrencyDropdownConfig, IColumn, IMasterDataModalConfig, ITableProps, ITableView, PendingEditsMap, IPendingEdit } from './types';\nimport { Add2Icon } from '../../icon';\n\nconst AutoSizer = _AutoSizer as unknown as React.ComponentType<{\n renderProp: (size: { width: number; height: number }) => React.ReactNode;\n style?: React.CSSProperties;\n}>;\n\nconst FIRST_BREAKPOINT = 700;\nconst SECOND_BREAKPOINT = 430;\nconst CREATE_COLUMN_LABEL = 'Create Column';\n\nconst getEmptyButtonId = (label: string, index: number): string => {\n const slug = label.toLowerCase().trim().replace(/\\s+/g, '-').replace(/[^a-z0-9-_]/g, '');\n return `button-admin-${slug || index}`;\n};\n\nexport const InfiniteTable = React.memo(\n ({\n tableKey,\n searchConfig = { search: '', handleSearch: () => null, allowAStarSearch: false },\n filterConfig = {\n columnFilters: [],\n onFilter: () => null,\n onRemoveFilter: () => null,\n onClearFilter: () => null,\n onResetFilter: () => Promise.resolve({}),\n asyncRowOptionsFilter: () => Promise.resolve({}),\n },\n sortConfig = { onSort: () => null, columnSort: { field: '', order: '' }, onRemoveSort: () => null },\n headerConfig = {\n showExportButton: null,\n showFilters: true,\n showSorts: true,\n showSearch: true,\n showTableView: true,\n showTableViewAsModal: false,\n content: null,\n postContent: null,\n preContent: null,\n isLoading: false,\n showDivider: false,\n },\n hoverConfig = null,\n columns,\n modelName,\n enableMasterDataEnumSuggestions = false,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId,\n enumSuggestionsData,\n data = [],\n onRowClick,\n showHeader,\n tableActions,\n rowOptions,\n hideRowOptionWidth,\n checkboxUtilities,\n isLoading = false,\n onScroll,\n onScrolling,\n isColumnConfigurable,\n onAddColumnClick,\n emptyMessage,\n noDataWidget,\n buttons,\n onEditColumnClick,\n onDeleteColumnClick,\n onRowTooltipClick,\n tooltiptext,\n cascadingTableConfig,\n originalsOnly,\n disableOptionsForRowIndex,\n tableHeightClass = 'h-[calc(100vh-220px)]',\n getFullRowDataOnClick,\n onRowEdit,\n onBulkRowEdit,\n inlineEditColumns,\n isResizable = true,\n paginationConfig,\n dndSortableUtils,\n multipleContexts,\n withSortable,\n withDraggable,\n enableRootDrag,\n pageSize = 10,\n onCascadingRowExpand,\n totalItems,\n showRecordCount = false,\n getInnerRowData,\n maxLevel,\n expandedRows = {},\n setExpandedRows,\n showNewItem,\n rawData,\n dragConfig,\n isOverlayLoading,\n style = {},\n floatingBarConfig,\n rowWrapper,\n rowLinkConfig,\n isCellClickDisabled,\n setHeaderOnParent,\n optimizeTable = false,\n multiSelectConfig,\n headerContextOptions,\n showHeaderContextOptions,\n setShowHeaderContextOptions,\n showDataTypeIcon = false,\n rowAdditionalActions,\n rowAdditionalActionsWidth,\n setVisibleHeaders,\n cellEditing = null,\n cellEditingValue = null,\n allowInlineEdit = false,\n onFieldOperationFlow,\n fieldOperationLoading = null,\n onTableActionsReady,\n onPendingEditsChange,\n onCancelPendingEdits,\n }: ITableProps) => {\n const tableConfig = useTableConfig();\n\n const isSearch = Boolean(searchConfig?.search);\n\n const isFilters = filterConfig?.columnFilters?.length > 0;\n const isAnyFilters = isSearch || isFilters;\n\n const isCheckbox = Boolean(checkboxUtilities);\n\n const defaultTableView = tableConfig?.getTableView?.(tableKey as string) ?? null;\n const [selectedTableView, setSelectedTableView] = useState<ITableView | null>(defaultTableView || null);\n const [showFilters, setShowFilters] = useState(false);\n const [showSorts, setShowSorts] = useState(false);\n const [newFilterColumn, setNewFilterColumn] = useState<unknown>(null);\n const [tableHeaders, setTableHeaders] = useState<IColumn[]>(columns);\n const isEmpty = (data.length === 0 || !tableHeaders.length) && !isLoading;\n const [showHeaderOptions, setShowHeaderOptions] = useState<string | null>(null);\n const [showDataFilterModal, setShowDataFilterModal] = useState<boolean>(false);\n const [dataFilterColumn, setDataFilterColumn] = useState<unknown>(null);\n const [isAllChecked, setIsAllChecked] = useState(false);\n const [isShowSortArrowAsc, setIsShowSortArrowAsc] = useState<string | null>(null);\n const [isShowSortArrowDesc, setIsShowSortArrowDesc] = useState<string | null>(null);\n const [sortableListByContext, setSortableListByContext] = useState<Record<string, unknown>>({});\n const [activeItem, setActiveItem] = useState<ReactTableRow<object> | null>(null);\n const [dndLoading, setDndLoading] = useState<boolean>(false);\n const [headerDivWidth, setHeaderDivWidth] = useState(0);\n const headerDivRef = useRef<HTMLDivElement>(null);\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const [tableContainerSize, setTableContainerSize] = useState({ width: 0, height: 0 });\n const [activeInlineEdit, setActiveInlineEdit] = useState<{ rowId: string; columnKey: string } | null>(null);\n const [masterDataModalConfig, setMasterDataModalConfig] = useState<IMasterDataModalConfig | null>(null);\n const [selectedMasterData, setSelectedMasterData] = useState<{ value: unknown; reference: unknown } | null>(null);\n const [currencyDropdownConfig, setCurrencyDropdownConfig] = useState<ICurrencyDropdownConfig | null>(null);\n const [selectedCurrenciesMap, setSelectedCurrenciesMap] = useState<Record<string, string>>({});\n const hasAppliedInitialFilters = useRef(false);\n const userClearedFiltersRef = useRef(false);\n\n const selectedTableViewRef = useRef(selectedTableView);\n selectedTableViewRef.current = selectedTableView;\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n const columnsRef = useRef(columns);\n columnsRef.current = columns;\n const filterConfigRef = useRef(filterConfig);\n filterConfigRef.current = filterConfig;\n const headerGroupsRef = useRef<unknown[] | null>(null);\n const resolveTableViewRef = useRef<() => ITableView>(() => ({}) as ITableView);\n const computeListRef = useRef<() => unknown>(() => ({}));\n\n const [pendingEdits, setPendingEdits] = useState<PendingEditsMap>({});\n\n const addPendingEdit = useCallback(\n (rowId: string, columnKey: string, edit: IPendingEdit) => {\n setPendingEdits((prev) => {\n const existingEdit = prev[rowId]?.[columnKey];\n let resolvedValidationError: string | null | undefined = edit.validationError;\n if (resolvedValidationError === undefined) {\n const column = tableHeaders.find((col) => col.key === columnKey);\n if (column) {\n const result = validateCellValue(edit.value, column as { type?: string; is_required?: boolean });\n resolvedValidationError = !result.isValid ? (result.error || 'Invalid') : null;\n } else {\n resolvedValidationError = existingEdit?.validationError ?? null;\n }\n }\n return { ...prev, [rowId]: { ...(prev[rowId] || {}), [columnKey]: { ...edit, validationError: resolvedValidationError ?? null } } };\n });\n },\n [tableHeaders],\n );\n\n const hasPendingEdits = useCallback(() => {\n return Object.values(pendingEdits).some((rowEdits) => Object.keys(rowEdits).length > 0);\n }, [pendingEdits]);\n\n useEffect(() => {\n if (onTableActionsReady) onTableActionsReady({ addPendingEdit: addPendingEdit as (rowId: string, columnKey: string, edit: { value: unknown; originalValue?: unknown; meta?: unknown }) => void, hasPendingEdits });\n }, [onTableActionsReady, addPendingEdit, hasPendingEdits]);\n\n const removePendingEdit = useCallback((rowId: string, columnKey: string) => {\n setPendingEdits((prev) => {\n const newEdits = { ...prev };\n if (newEdits[rowId]) {\n const { [columnKey]: _removed, ...rest } = newEdits[rowId]; void _removed;\n if (Object.keys(rest).length === 0) delete newEdits[rowId];\n else newEdits[rowId] = rest;\n }\n return newEdits;\n });\n }, []);\n\n const getPendingEdit = useCallback(\n (rowId: string, columnKey: string): IPendingEdit | undefined => pendingEdits[rowId]?.[columnKey],\n [pendingEdits],\n );\n\n const hasPendingEdit = useCallback(\n (rowId: string, columnKey: string): boolean => Boolean(pendingEdits[rowId]?.[columnKey]),\n [pendingEdits],\n );\n\n const clearAllPendingEdits = useCallback(() => {\n if (fieldOperationLoading) return;\n if (onCancelPendingEdits && Object.keys(pendingEdits).length > 0) onCancelPendingEdits(pendingEdits);\n setPendingEdits({});\n setSelectedCurrenciesMap({});\n setActiveInlineEdit(null);\n }, [fieldOperationLoading, onCancelPendingEdits, pendingEdits]);\n\n const scrollToCell = useCallback(\n (rowId: string, columnKey: string, rowIndex: number) => {\n setTimeout(() => {\n tableConfig?.dispatchEvent?.('SCROLL_TO_TABLE_ROW', { rowIndex });\n const colIndex = tableHeaders.findIndex((col) => col.key === columnKey);\n setTimeout(() => {\n const cellElement = document.querySelector(`[data-row-id=\"${rowId}\"] [data-column-key=\"${columnKey}\"]`);\n if (cellElement) {\n cellElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n } else if (colIndex > 0) {\n const scrollContainer = document.querySelector('.os-viewport');\n if (scrollContainer) {\n let scrollLeft = 0;\n for (let i = 0; i < colIndex; i++) {\n const col = tableHeaders[i];\n if (!col?.sticky) scrollLeft += col?.width || 200;\n }\n scrollLeft = Math.max(0, scrollLeft - 200);\n scrollContainer.scrollTo({ left: scrollLeft, behavior: 'smooth' });\n }\n }\n setActiveInlineEdit({ rowId, columnKey });\n }, 350);\n }, 100);\n },\n [tableHeaders, tableConfig],\n );\n\n const validateAllPendingEdits = useCallback(\n (editsToValidate: PendingEditsMap): { hasErrors: boolean; updatedEdits: PendingEditsMap; firstError: { rowId: string; columnKey: string } | null; errorTypes: Set<string> } => {\n let hasErrors = false;\n let firstError: { rowId: string; columnKey: string } | null = null;\n const updatedEdits: PendingEditsMap = {};\n const errorTypes = new Set<string>();\n\n Object.entries(editsToValidate).forEach(([rowId, rowEdits]) => {\n updatedEdits[rowId] = {};\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n const column = tableHeaders.find((col) => col.key === columnKey);\n const result = validateCellValue(edit.value, column as { type?: string; is_required?: boolean });\n if (!result.isValid) {\n hasErrors = true;\n if (result.error) errorTypes.add(result.error);\n if (!firstError) firstError = { rowId, columnKey };\n updatedEdits[rowId][columnKey] = { ...edit, validationError: result.error };\n } else {\n updatedEdits[rowId][columnKey] = { ...edit, validationError: null };\n }\n });\n });\n\n return { hasErrors, updatedEdits, firstError, errorTypes };\n },\n [tableHeaders],\n );\n\n const getValidationToastMessage = useCallback((errorTypes: Set<string>) => {\n const hasRequired = errorTypes.has('Field required');\n const hasFormat = errorTypes.size > (hasRequired ? 1 : 0);\n if (hasRequired && hasFormat) return 'Missing required field(s) and invalid format detected. Please review highlighted field(s).';\n if (hasRequired) return 'Missing required field(s). Please review highlighted field(s).';\n return 'Invalid field value(s). Please review highlighted field(s).';\n }, []);\n\n const saveAllPendingEdits = useCallback(() => {\n const { hasErrors, updatedEdits, firstError, errorTypes } = validateAllPendingEdits(pendingEdits);\n if (hasErrors) {\n setPendingEdits(updatedEdits);\n tableConfig?.showNotification?.('error', getValidationToastMessage(errorTypes));\n if (firstError) {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === firstError!.rowId);\n scrollToCell(firstError!.rowId, firstError!.columnKey, rowIndex);\n }\n return;\n }\n\n const editedRows: Array<Record<string, unknown>> = [];\n Object.entries(pendingEdits).forEach(([rowId, rowEdits]) => {\n const originalRow = data.find((row: Record<string, unknown>) => row.id === rowId);\n if (originalRow) {\n const updatedRow = { ...originalRow };\n const editedFields: Record<string, { value: unknown; meta?: unknown }> = {};\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n updatedRow[columnKey] = edit.value;\n editedFields[columnKey] = { value: edit.value, meta: edit.meta };\n });\n editedRows.push({ ...updatedRow, __editedFields: editedFields });\n }\n });\n\n if (editedRows.length > 0) {\n if (onBulkRowEdit) onBulkRowEdit(editedRows);\n else if (onRowEdit) onRowEdit(null, null, null, null, null, { isBulk: true, rows: editedRows });\n }\n\n setPendingEdits({});\n setSelectedCurrenciesMap({});\n setActiveInlineEdit(null);\n }, [pendingEdits, data, onRowEdit, onBulkRowEdit, validateAllPendingEdits, getValidationToastMessage, scrollToCell, tableConfig]);\n\n const clearRowPendingEdits = useCallback(\n (rowId: string) => {\n if (fieldOperationLoading) return;\n const rowEdits = pendingEdits[rowId];\n if (rowEdits && onCancelPendingEdits) onCancelPendingEdits({ [rowId]: rowEdits });\n setPendingEdits((prev) => { const n = { ...prev }; delete n[rowId]; return n; });\n setSelectedCurrenciesMap((prev) => { const n = { ...prev }; Object.keys(n).forEach((k) => { if (k.startsWith(`${rowId}-`)) delete n[k]; }); return n; });\n setActiveInlineEdit(null);\n },\n [fieldOperationLoading, onCancelPendingEdits, pendingEdits],\n );\n\n const saveRowPendingEdits = useCallback(\n (rowId: string) => {\n const rowEdits = pendingEdits[rowId];\n if (!rowEdits || Object.keys(rowEdits).length === 0) return;\n\n const { hasErrors, updatedEdits, firstError, errorTypes } = validateAllPendingEdits({ [rowId]: rowEdits });\n if (hasErrors) {\n setPendingEdits((prev) => ({ ...prev, [rowId]: updatedEdits[rowId] }));\n tableConfig?.showNotification?.('error', getValidationToastMessage(errorTypes));\n if (firstError) {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === firstError!.rowId);\n scrollToCell(firstError!.rowId, firstError!.columnKey, rowIndex);\n }\n return;\n }\n\n const originalRow = data.find((row: Record<string, unknown>) => row.id === rowId);\n if (!originalRow) return;\n const updatedRow = { ...originalRow };\n const editedFields: Record<string, { value: unknown; meta?: unknown }> = {};\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n updatedRow[columnKey] = edit.value;\n editedFields[columnKey] = { value: edit.value, meta: edit.meta };\n });\n\n const editedRowData = { ...updatedRow, __editedFields: editedFields };\n\n if (onBulkRowEdit) onBulkRowEdit([editedRowData]);\n else if (onRowEdit) onRowEdit(null, null, null, null, null, { isBulk: true, rows: [editedRowData] });\n\n setPendingEdits((prev) => { const n = { ...prev }; delete n[rowId]; return n; });\n setSelectedCurrenciesMap((prev) => { const n = { ...prev }; Object.keys(n).forEach((k) => { if (k.startsWith(`${rowId}-`)) delete n[k]; }); return n; });\n setActiveInlineEdit(null);\n },\n [pendingEdits, data, onRowEdit, onBulkRowEdit, validateAllPendingEdits, getValidationToastMessage, scrollToCell, tableConfig],\n );\n\n const pendingEditsCount = useMemo(() => {\n return Object.values(pendingEdits).reduce((total, rowEdits) => total + Object.keys(rowEdits).length, 0);\n }, [pendingEdits]);\n\n useEffect(() => {\n onPendingEditsChange?.(pendingEditsCount > 0, pendingEditsCount);\n }, [pendingEditsCount, onPendingEditsChange]);\n\n const pendingEditsList = useMemo(() => {\n const list: Array<{ rowId: string; columnKey: string; fieldName: string; value: unknown; originalValue: unknown; meta?: IPendingEdit['meta']; originalMeta?: IPendingEdit['originalMeta']; rowIndex: number }> = [];\n Object.entries(pendingEdits).forEach(([rowId, rowEdits]) => {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === rowId);\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n const column = tableHeaders.find((col) => col.key === columnKey);\n list.push({ rowId, columnKey, fieldName: column?.Header || column?.display_name || columnKey, value: edit.value, originalValue: edit.originalValue, meta: edit.meta, originalMeta: edit.originalMeta, rowIndex });\n });\n });\n return list;\n }, [pendingEdits, tableHeaders, data]);\n\n const rowsWithPendingEdits = useMemo(() => {\n const rowsMap = new Map<string, { rowId: string; rowIndex: number; editCount: number }>();\n Object.entries(pendingEdits).forEach(([rowId, rowEdits]) => {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === rowId);\n rowsMap.set(rowId, { rowId, rowIndex, editCount: Object.keys(rowEdits).length });\n });\n return Array.from(rowsMap.values()).sort((a, b) => a.rowIndex - b.rowIndex);\n }, [pendingEdits, data]);\n\n const openMasterDataModal = useCallback((config: IMasterDataModalConfig) => setMasterDataModalConfig(config), []);\n const closeMasterDataModal = useCallback(() => setMasterDataModalConfig(null), []);\n\n const handleMasterDataSelected = useCallback(\n (value: unknown, row?: unknown) => {\n setSelectedMasterData({ value, reference: row });\n if (masterDataModalConfig?.onSelected) masterDataModalConfig.onSelected(value, row);\n closeMasterDataModal();\n },\n [masterDataModalConfig, closeMasterDataModal],\n );\n\n const clearSelectedMasterData = useCallback(() => setSelectedMasterData(null), []);\n\n const openCurrencyDropdown = useCallback((config: ICurrencyDropdownConfig) => setCurrencyDropdownConfig(config), []);\n const closeCurrencyDropdown = useCallback(() => setCurrencyDropdownConfig(null), []);\n\n const setCurrencyForCell = useCallback((cellKey: string, currency: string) => {\n setSelectedCurrenciesMap((prev) => ({ ...prev, [cellKey]: currency }));\n }, []);\n\n const getCurrencyForCell = useCallback(\n (cellKey: string): string | undefined => selectedCurrenciesMap[cellKey],\n [selectedCurrenciesMap],\n );\n\n const fallbackHeight = useMemo(() => {\n const pxMatch = tableHeightClass.match(/h-\\[(\\d+px)\\]/);\n if (pxMatch) return pxMatch[1];\n const calcMatch = tableHeightClass.match(/h-\\[(calc\\(.+\\))\\]/);\n if (calcMatch) return calcMatch[1].replace(/([+-])/g, ' $1 ').replace(/\\s+/g, ' ');\n return undefined;\n }, [tableHeightClass]);\n\n const emptySwitchProps = {\n isEmpty,\n isFilters: isAnyFilters,\n isColumnConfigurable,\n handleOnClick: onAddColumnClick,\n emptyMessage,\n buttons,\n noDataWidget,\n };\n const translatedCreateColumnLabel = tableConfig?.t?.(CREATE_COLUMN_LABEL) ?? CREATE_COLUMN_LABEL;\n const defaultEmptyText = isAnyFilters ? 'No Results Found' : emptyMessage || 'No Data Found';\n const resolvedEmptyText = typeof defaultEmptyText === 'string' ? (tableConfig?.t?.(defaultEmptyText) ?? defaultEmptyText) : defaultEmptyText;\n\n const loaderData = { __isLoading: true };\n const cellLoaders = new Array(1).fill(loaderData);\n const tableLoaders = new Array(pageSize).fill(loaderData);\n\n const visibleColumns = useMemo(() => tableHeaders.filter((header) => Boolean(header?.visible)), [tableHeaders]);\n\n const table = useTable(\n {\n columns: optimizeTable ? visibleColumns : tableHeaders,\n data: [...data, ...(isLoading ? (data?.length ? cellLoaders : tableLoaders) : [])],\n defaultColumn: { minWidth: 100, width: 200, maxWidth: 999999 },\n },\n useResizeColumns,\n );\n\n const { getTableProps, getTableBodyProps, headerGroups, prepareRow, rows } = table;\n headerGroupsRef.current = headerGroups;\n\n const headerKeys = JSON.stringify(headerGroups[0]?.headers?.map((header) => (header as unknown as Record<string, unknown>)?.Header));\n useEffect(() => {\n if (setVisibleHeaders) {\n const groups = headerGroupsRef.current as Array<{ headers?: Array<Record<string, unknown>> }> | null;\n setVisibleHeaders?.(groups?.[0]?.headers?.map((header) => header?.Header as string) ?? []);\n }\n }, [headerKeys, setVisibleHeaders]);\n\n const { checkboxConfig } = useCheckbox({\n rows: rows as never,\n checkedIds: checkboxUtilities?.checkedIds as string[],\n isCheckAllDisabled: checkboxUtilities?.isCheckAllDisabled,\n selectionDisabledRowIds: checkboxUtilities?.selectionDisabledRowIds,\n rawData,\n onAllChecked: setIsAllChecked,\n setCheckedIds: checkboxUtilities?.setCheckedIds as (ids: string[]) => void,\n checkboxMetadata: checkboxUtilities?.checkboxMetadata as { checkedIds: string[]; tooltip: string; highlight: string },\n });\n\n const sensors = useSensors(\n useSensor(MouseSensor, { activationConstraint: { distance: 5 } }),\n useSensor(TouchSensor, { activationConstraint: { distance: 5 } }),\n );\n\n const dropAnimation: DropAnimation = { easing: 'cubic-bezier(0.18, 0.67, 0.6, 1.22)', duration: 20 };\n\n function computeList() {\n if (!multipleContexts?.length || !withSortable) return rows;\n return multipleContexts.reduce((acc: Record<string, unknown>, contextKey: string) => {\n acc[contextKey] = rows.filter((e) => (e.original as Record<string, unknown>)?.type === contextKey);\n return acc;\n }, {});\n }\n computeListRef.current = computeList;\n\n const handleDragStart = (event: DragStartEvent) => {\n const { active } = event;\n setActiveItem(rows.find((item) => (item.original as Record<string, unknown>)?.id === active?.id) ?? null);\n };\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over) return;\n if (dndSortableUtils?.checkDndDragEnd) {\n dndSortableUtils.checkDndDragEnd(active, over, sortableListByContext, (newState: Record<string, unknown>) => {\n setSortableListByContext(newState as Record<string, unknown>);\n setDndLoading(true);\n dndSortableUtils.onDragSuccess?.({\n draggedId: active.id as string,\n droppedId: over.id as string,\n draggedType: (active.data.current as Record<string, unknown>)?.type,\n droppedType: (over.data.current as Record<string, unknown>)?.type,\n updatedList: newState,\n cb: () => setDndLoading(false),\n });\n });\n }\n setActiveItem(null);\n };\n\n const handleDragCancel = () => setActiveItem(null);\n\n const toggleHeaderOption = (key: string) => {\n if (!sortConfig?.onSort && !filterConfig?.onFilter) return;\n if (showHeaderOptions === key) setShowHeaderOptions(null);\n else setShowHeaderOptions(key);\n };\n\n const toggleDataFilterModal = (col: unknown) => {\n setDataFilterColumn(col);\n setShowDataFilterModal(!showDataFilterModal);\n setShowHeaderOptions(null);\n };\n\n const handleRemoveSort = useCallback(() => {\n if (sortConfig?.onRemoveSort) sortConfig.onRemoveSort();\n else if (sortConfig?.onSort) sortConfig.onSort('', '');\n }, [sortConfig]);\n\n const toggleShowFilters = useCallback((col: unknown = null) => {\n setNewFilterColumn(col);\n setShowFilters(prev => col ? true : !prev);\n }, []);\n const toggleShowSorts = useCallback(() => setShowSorts(prev => !prev), []);\n\n const lastNonStickyColumnIndex = () => {\n const reverseHeaders = (headerGroups[0]?.headers as unknown as Array<Record<string, unknown>>)?.filter((header) => header?.visible !== false);\n for (let i = 0; i < reverseHeaders.length; i++) {\n if (reverseHeaders[i].sticky) return i - 1;\n }\n return reverseHeaders.length - 1;\n };\n\n const getSumOfNextVisibleColumnWidth = useCallback(\n (currentIndex: number) => {\n let sum = 0;\n for (let i = currentIndex + 1; i < visibleColumns.length; i++) {\n if (visibleColumns[i].visible !== false) sum += visibleColumns[i].width ?? 0;\n }\n if (rowAdditionalActions) sum += rowAdditionalActionsWidth || 40;\n if (rowOptions) sum += hideRowOptionWidth ? 0 : 28;\n return sum;\n },\n [visibleColumns, rowAdditionalActionsWidth, hideRowOptionWidth, rowAdditionalActions, rowOptions],\n );\n\n const resolveTableView = (): ITableView => {\n const userId = tableConfig?.getUserId?.();\n return {\n ...(selectedTableView || {}),\n name: selectedTableView?.name || 'Untitled View',\n created_by: selectedTableView?.created_by || userId,\n filters: selectedTableView?.filters || filterConfig?.columnFilters,\n id: selectedTableView?.id || 'untitled-view',\n table_key: selectedTableView?.table_key || tableKey,\n columns: selectedTableView?.columns || columns?.map((column, index) => ({\n name: column.Header,\n width: column.width,\n visible: column.visible,\n sticky: column.sticky,\n order: index + 1,\n display_name: column.Header,\n sequence: index + 1,\n Header: column.Header,\n })),\n };\n };\n resolveTableViewRef.current = resolveTableView;\n\n const handleUpdateColumnWidth = (columnName: string, width: number) => {\n const updatedTableView = resolveTableView();\n setSelectedTableView({\n ...updatedTableView,\n columns: updatedTableView?.columns?.map((column) => (column.name === columnName ? { ...column, width } : column)),\n unsaved: true,\n });\n };\n\n useEffect(() => {\n if (filterConfig?.columnFilters?.length > 0) setShowFilters(true);\n const currentView = selectedTableViewRef.current;\n if (JSON.stringify(currentView?.filters || []) !== JSON.stringify(filterConfig?.columnFilters || [])) {\n const hasViewFilters = (currentView?.filters?.length ?? 0) > 0;\n const hasConfigFilters = filterConfig?.columnFilters?.length > 0;\n // Skip sync only during the initial load window where the view already has filters\n // but they haven't propagated to columnFilters yet. If the user explicitly cleared\n // filters from ActiveFilters (X button or Clear), we must propagate the empty state.\n const isClearingFilters = hasViewFilters && !hasConfigFilters && !userClearedFiltersRef.current;\n if (!isClearingFilters) {\n const updatedTableView = resolveTableViewRef.current();\n setSelectedTableView({ ...updatedTableView, filters: JSON.parse(JSON.stringify(filterConfig?.columnFilters || [])), unsaved: true });\n }\n userClearedFiltersRef.current = false;\n }\n }, [filterConfig?.columnFilters]);\n\n const handleActiveRemoveFilter = useCallback(\n (key: string) => {\n userClearedFiltersRef.current = true;\n filterConfig?.onRemoveFilter?.(key);\n },\n [filterConfig?.onRemoveFilter],\n );\n\n const handleActiveClearFilter = useCallback(() => {\n userClearedFiltersRef.current = true;\n filterConfig?.onClearFilter?.();\n }, [filterConfig?.onClearFilter]);\n\n useEffect(() => {\n if (sortConfig?.columnSort?.field) {\n setShowSorts(true);\n if (sortConfig.columnSort.order === 'asc') { setIsShowSortArrowAsc(sortConfig.columnSort.field); setIsShowSortArrowDesc(null); }\n else if (sortConfig.columnSort.order === 'desc') { setIsShowSortArrowDesc(sortConfig.columnSort.field); setIsShowSortArrowAsc(null); }\n } else { setIsShowSortArrowAsc(null); setIsShowSortArrowDesc(null); }\n }, [sortConfig?.columnSort?.field, sortConfig?.columnSort?.order]);\n\n useEffect(() => {\n setTableHeaders(mergeViewColumnsWithTableColumns(selectedTableViewRef.current?.columns || [], columns));\n }, [columns]);\n\n useEffect(() => {\n if (selectedTableView?.unsaved) tableConfigRef.current?.persistTableView?.(selectedTableView);\n }, [selectedTableView]);\n\n useEffect(() => { setSortableListByContext(computeListRef.current() as Record<string, unknown>); }, [rows.length]);\n\n useEffect(() => {\n setSelectedTableView(defaultTableView || null);\n if (defaultTableView?.columns) {\n setTableHeaders(mergeViewColumnsWithTableColumns(defaultTableView?.columns || [], columnsRef.current));\n }\n if (defaultTableView?.filters && defaultTableView.filters.length > 0 && !hasAppliedInitialFilters.current) {\n requestAnimationFrame(() => { filterConfigRef.current?.onFilter?.(defaultTableView.filters); });\n hasAppliedInitialFilters.current = true;\n } else if (defaultTableView?.filters && hasAppliedInitialFilters.current) {\n const filtersAreDifferent = JSON.stringify(defaultTableView.filters) !== JSON.stringify(filterConfigRef.current?.columnFilters);\n if (filtersAreDifferent) filterConfigRef.current?.onFilter?.(defaultTableView.filters);\n }\n }, [defaultTableView]);\n\n useEffect(() => {\n if (headerDivRef.current) {\n const resizeObserver = new ResizeObserver((entries) => setHeaderDivWidth(entries[0].contentRect.width));\n resizeObserver.observe(headerDivRef.current);\n return () => resizeObserver.disconnect();\n }\n }, []);\n\n useEffect(() => {\n if (!tableContainerRef.current) return;\n const resizeObserver = new ResizeObserver((entries) => {\n const { width, height } = entries[0].contentRect;\n setTableContainerSize({ width, height });\n });\n resizeObserver.observe(tableContainerRef.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n const tableHeader = (\n <Head\n isResizable={isResizable}\n headerGroups={headerGroups as never}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n isAllChecked={isAllChecked}\n showHeaderOptions={showHeaderOptions ?? ''}\n setShowHeaderOptions={setShowHeaderOptions}\n isShowSortArrowAsc={isShowSortArrowAsc}\n isShowSortArrowDesc={isShowSortArrowDesc}\n onSort={sortConfig?.onSort as ((field: string, order?: string) => void) | undefined}\n onFilter={filterConfig?.onFilter}\n toggleHeaderOption={toggleHeaderOption}\n setIsShowSortArrowAsc={setIsShowSortArrowAsc}\n setIsShowSortArrowDesc={setIsShowSortArrowDesc}\n toggleDataFilterModal={toggleShowFilters}\n rowOptions={(Array.isArray(rowOptions) ? rowOptions : []) as unknown[]}\n isColumnConfigurable={isColumnConfigurable ?? false}\n onAddColumnClick={onAddColumnClick as (column: { id: string; key: string; [k: string]: unknown }) => void}\n onEditColumnClick={onEditColumnClick as (column: { id: string; key: string; [k: string]: unknown }) => void}\n onDeleteColumnClick={onDeleteColumnClick as (column: { id: string; key: string; [k: string]: unknown }) => void}\n tableActions={(tableActions || null)}\n isLoading={isLoading}\n rowAdditionalActions={(rowAdditionalActions ?? null) as (() => React.ReactNode) | null}\n showPendingEditsColumn={pendingEditsCount > 0}\n />\n );\n\n const tableView = (\n <>\n {dndLoading || isOverlayLoading ? (\n <div className='absolute left-0 top-0 w-full h-full z-40 flex items-center justify-center bg-neutral-100 dark:bg-black-700' />\n ) : null}\n <div\n {...getTableProps()}\n className='w-full text-sm text-left text-neutral-500 dark:text-neutral-200 h-full bg-white dark:bg-black-800'\n >\n {isEmpty ? (\n <div className='z-10'>\n {tableHeader}\n <div className='absolute w-full'>\n {tableConfig?.renderEmpty ? tableConfig.renderEmpty(emptySwitchProps) : (\n <div className='flex flex-col items-center justify-center w-full h-[12rem] text-neutral-900 dark:text-neutral-200 mt-8'>\n {noDataWidget && !isAnyFilters ? <NoDataFoundWidgets widgetType='TABLE' /> : <NoDataFound text={resolvedEmptyText} />}\n {isColumnConfigurable && !isAnyFilters ? (\n <div className='my-4'>\n <Button\n id='btn-table-shell-create-column'\n status='primary'\n appearance='ghost'\n onClick={onAddColumnClick as ((event: React.MouseEvent<HTMLButtonElement>) => void) | undefined}\n >\n <Add2Icon className='text-white dark:text-white' /> {translatedCreateColumnLabel}\n </Button>\n </div>\n ) : null}\n {!isAnyFilters &&\n buttons?.map((button, index) => (\n <Button key={`${button.label}-${index}`} status='secondary' id={getEmptyButtonId(button.label, index)} onClick={button.onClick}>\n {tableConfig?.t?.(button.label) ?? button.label}\n </Button>\n ))}\n </div>\n )}\n </div>\n </div>\n ) : (\n <AutoSizer\n style={{ width: '100%', height: '100%' }}\n renderProp={({ width, height }) => {\n const effectiveWidth = width > 0 ? width : tableContainerSize.width;\n const effectiveHeight = height > 0 ? height : tableContainerSize.height;\n return effectiveWidth > 0 && effectiveHeight > 0 ? (\n <Body\n {...{\n getTableBodyProps: getTableBodyProps as unknown as () => Record<string, unknown>, rows: rows as never, prepareRow: prepareRow as never, isLoading, onScroll, onScrolling, columns, width: effectiveWidth, height: effectiveHeight, withSortable,\n allowAstarSearch: searchConfig?.allowAStarSearch || false,\n }}\n />\n ) : null;\n }}\n />\n )}\n </div>\n </>\n );\n\n const tableWrapper = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <div className='h-full w-full' {...props} ref={ref}>\n {tableHeader}\n <div className='relative w-full h-full'>{props?.children}</div>\n </div>\n ));\n\n const tableBodyWrapper = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <div className='h-full w-full' {...props} ref={ref}>\n <div className='relative w-full h-full'>{props?.children}</div>\n </div>\n ));\n\n const TableHeaderComponent = useMemo(() => {\n if (tableConfig?.renderTableHeader) {\n return tableConfig.renderTableHeader({\n tableKey, search: searchConfig?.search, handleSearch: searchConfig?.handleSearch,\n toggleShowFilters, toggleShowSorts, filterCounts: filterConfig?.columnFilters?.length,\n columns, columnFilters: filterConfig?.columnFilters, setSelectedTableView, selectedTableView,\n enableTableView: headerConfig?.showTableView, modelName: modelName as string,\n enableMasterDataEnumSuggestions,\n onRemoveFilter: filterConfig?.onRemoveFilter, onClearFilter: filterConfig?.onClearFilter,\n onFilter: filterConfig?.onFilter, data: enumSuggestionsData ?? data, tableHeaders, showTableViewAsModal: headerConfig?.showTableViewAsModal,\n additionalOptions: headerConfig?.additionalOptions, showFilters: headerConfig?.showFilters,\n showSorts: headerConfig?.showSorts, showSearch: headerConfig?.showSearch,\n isLoading: Boolean(headerConfig?.isLoading), setTableHeaders,\n allowAStarSearch: Boolean(searchConfig?.allowAStarSearch), withContent: !!headerConfig?.content,\n setShowFilters, sort: sortConfig?.columnSort, onSort: sortConfig?.onSort, onRemoveSort: handleRemoveSort,\n showExportButton: headerConfig?.showExportButton,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId\n });\n }\n return null;\n }, [\n tableKey, searchConfig?.search, searchConfig?.handleSearch, toggleShowFilters, toggleShowSorts,\n filterConfig?.columnFilters, columns, setSelectedTableView, selectedTableView, headerConfig,\n modelName, filterConfig?.onRemoveFilter, filterConfig?.onClearFilter, filterConfig?.onFilter,\n data, enumSuggestionsData, tableHeaders, sortConfig?.columnSort, sortConfig?.onSort, handleRemoveSort, tableConfig,\n searchConfig?.allowAStarSearch, enableMasterDataEnumSuggestions,agreementCategoryId, agreementDomainId, agreementId,modificationId,lineItemRowId,\n ]);\n\n useEffect(() => {\n if (setHeaderOnParent) setHeaderOnParent(TableHeaderComponent);\n }, [TableHeaderComponent, setHeaderOnParent]);\n\n return (\n <TableContext.Provider\n value={{\n tableWrapper, tableBodyWrapper, lastNonStickyColumnIndex, search: searchConfig?.search,\n columnFilters: filterConfig?.columnFilters, onRowClick, onSort: sortConfig?.onSort,\n onFilter: filterConfig?.onFilter, toggleShowFilters, toggleShowSorts,\n onRemoveFilter: filterConfig?.onRemoveFilter, onClearFilter: filterConfig?.onClearFilter,\n rowOptions, checkboxConfig, onResetFilter: filterConfig?.onResetFilter, isColumnConfigurable,\n onAddColumnClick, onEditColumnClick, onDeleteColumnClick, onRowTooltipClick, tooltiptext,\n cascadingTableConfig, activeInlineEdit, setActiveInlineEdit, originalsOnly,\n disableOptionsForRowIndex, getFullRowDataOnClick, getSumOfNextVisibleColumnWidth,\n onRowEdit, inlineEditColumns, tableActions, dndSortableUtils, withSortable, withDraggable,\n onCascadingRowExpand, getInnerRowData, tableHeaders, maxLevel, expandedRows, setExpandedRows,\n showNewItem, rawData, dragConfig, rowWrapper, rowLinkConfig, isCellClickDisabled,\n asyncRowOptionsFilter: filterConfig?.asyncRowOptionsFilter, handleUpdateColumnWidth,\n multiSelectConfig, headerContextOptions, showHeaderContextOptions, setShowHeaderContextOptions: setShowHeaderContextOptions as ((value: string | null) => void) | undefined,\n headerDivWidth, showDataTypeIcon, rowAdditionalActions, hoverConfig, rowAdditionalActionsWidth,\n cellEditing, cellEditingValue, openMasterDataModal, closeMasterDataModal, selectedMasterData,\n clearSelectedMasterData, allowInlineEdit, openCurrencyDropdown, closeCurrencyDropdown,\n currencyDropdownConfig, selectedCurrenciesMap, setCurrencyForCell, getCurrencyForCell,\n pendingEdits, addPendingEdit, removePendingEdit, getPendingEdit, hasPendingEdit,\n clearAllPendingEdits, saveAllPendingEdits, clearRowPendingEdits, saveRowPendingEdits,\n pendingEditsCount, scrollToCell, onFieldOperationFlow, fieldOperationLoading, validateAllPendingEdits,\n }}\n >\n {showHeader ? (\n <div\n ref={headerDivRef}\n className={`mb-2 flex w-full min-w-0 gap-2 dark:bg-black-800 ${\n headerDivWidth < FIRST_BREAKPOINT ? 'flex-col items-stretch' : 'flex-row items-center'\n }`}\n >\n <div\n className={`flex items-center gap-x-2 gap-y-1 ${\n headerDivWidth < FIRST_BREAKPOINT ? 'w-full flex-wrap' : ''\n } ${headerConfig?.content ? 'min-w-0 flex-1' : 'shrink-0'}`}\n >\n {headerConfig?.content ? (\n <div className={`min-w-0 ${headerDivWidth < FIRST_BREAKPOINT ? 'w-full' : 'flex-1'}`}>\n {headerConfig.content}\n </div>\n ) : null}\n {showRecordCount ? (\n <div className='flex items-center gap-1.5 shrink-0'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width='16'\n height='16'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='text-neutral-500 dark:text-neutral-400 flex-shrink-0'\n aria-hidden\n >\n <ellipse cx='12' cy='5' rx='9' ry='3' />\n <path d='M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5' />\n <path d='M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9' />\n <path d='M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4' />\n </svg>\n <Typography size='small' variant='semibold' appearance='title'>\n {(totalItems ?? data.length).toLocaleString()}\n </Typography>\n <Typography size='small' variant='regular' appearance='subtitle'>\n total records\n </Typography>\n </div>\n ) : headerConfig?.preContent ? (\n <div className='flex min-w-0 shrink-0 justify-start items-center'>{headerConfig.preContent}</div>\n ) : null}\n </div>\n <div\n className={`flex min-w-0 items-center justify-end ${\n headerDivWidth < FIRST_BREAKPOINT ? 'w-full' : headerConfig?.content ? 'shrink-0' : 'flex-1'\n } ${headerDivWidth < SECOND_BREAKPOINT ? 'flex-col' : 'flex-row'} ${\n headerConfig?.postContent ? 'gap-2' : ''\n }`}\n >\n {showRecordCount && headerConfig?.preContent ? (\n <div className='flex w-full justify-start items-center'>{headerConfig.preContent}</div>\n ) : null}\n <div\n className={`flex justify-end items-center min-w-0 ${\n headerDivWidth < SECOND_BREAKPOINT ? 'w-full' : headerDivWidth < FIRST_BREAKPOINT ? 'w-full' : ''\n }`}\n >\n {TableHeaderComponent}\n </div>\n {headerConfig?.postContent ? (\n <div className={`flex justify-end items-center ${headerDivWidth < SECOND_BREAKPOINT ? 'w-full' : ''}`}>\n {headerConfig.postContent}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n {headerConfig?.showDivider ? <div className='border-b pb-2 w-full dark:bg-black-800' /> : null}\n {showFilters || showSorts ? (\n <div className='flex justify-between items-center pb-4 dark:bg-black-800'>\n <div className='flex gap-2 items-center'>\n {showSorts && tableConfig?.renderSortItem ? (\n tableConfig.renderSortItem({ sort: sortConfig?.columnSort, onRemoveSort: handleRemoveSort, onSort: sortConfig?.onSort, tableHeaders, data })\n ) : null}\n {showFilters && showSorts && sortConfig?.columnSort?.field !== '' ? (\n <div className='h-8 w-[1px] flex-shrink-0 bg-neutral-200' />\n ) : null}\n {showFilters ? (\n <div className='flex gap-2 items-center'>\n {(isFilters || filterConfig?.onResetFilter) && tableConfig?.renderActiveFilters && (\n tableConfig.renderActiveFilters({\n filters: filterConfig?.columnFilters, onRemoveFilter: handleActiveRemoveFilter,\n onClearFilter: handleActiveClearFilter, onResetFilter: filterConfig?.onResetFilter,\n onFilter: filterConfig?.onFilter, tableHeaders, columnFilters: filterConfig?.columnFilters,\n modelName, enableMasterDataEnumSuggestions, noSpacing: true, notionStyle: filterConfig?.notionStyle, context: filterConfig?.context, data: enumSuggestionsData ?? data,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId\n })\n )}\n {tableConfig?.renderFilterButtons && (\n tableConfig.renderFilterButtons({\n onClearFilter: filterConfig?.onClearFilter, onClose: toggleDataFilterModal,\n modelName, enableMasterDataEnumSuggestions, defaultFilterColumn: newFilterColumn, resetDefaultFilterColumn: () => setNewFilterColumn(null),\n column: dataFilterColumn, onFilter: filterConfig?.onFilter, tableHeaders,\n columnFilters: filterConfig?.columnFilters, data: enumSuggestionsData ?? data, notionStyle: filterConfig?.notionStyle,\n context: filterConfig?.context,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId,\n })\n )}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n {floatingBarConfig && Object.keys(floatingBarConfig).length ? <FloatingBar {...floatingBarConfig} /> : null}\n {!showHeader && showRecordCount ? (\n <div className='flex items-center gap-1.5 mb-2'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width='16'\n height='16'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='text-neutral-500 dark:text-neutral-400 flex-shrink-0'\n aria-hidden\n >\n <ellipse cx='12' cy='5' rx='9' ry='3' />\n <path d='M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5' />\n <path d='M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9' />\n <path d='M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4' />\n </svg>\n <Typography size='small' variant='semibold' appearance='title'>\n {(totalItems ?? data.length).toLocaleString()}\n </Typography>\n <Typography size='small' variant='regular' appearance='subtitle'>\n total records\n </Typography>\n </div>\n ) : !showHeader && headerConfig?.preContent ? (\n <div className='flex items-center mb-2'>{headerConfig.preContent}</div>\n ) : null}\n <div\n ref={tableContainerRef}\n className={`w-full ${paginationConfig ? `h-auto` : tableHeightClass} rounded-lg relative border overflow-x-hidden`}\n style={{\n ...(paginationConfig\n ? { height: data?.length > 0 ? `${(data?.length + 1) * 41 + 4}px` : '350px' }\n : { height: fallbackHeight }),\n ...style,\n }}\n >\n {enableRootDrag ? (\n tableView\n ) : (\n <DndContext sensors={sensors} onDragEnd={handleDragEnd} onDragStart={handleDragStart} onDragCancel={handleDragCancel} collisionDetection={closestCorners}>\n {tableView}\n {activeItem\n ? createPortal(\n <DragOverlay adjustScale={true} dropAnimation={dropAnimation}>\n <table {...getTableProps()} className='w-full text-sm text-left text-neutral-500 dark:text-neutral-200 bg-white dark:bg-black-700 table-auto border-collapse'>\n <tbody {...getTableBodyProps()} className='bg-transparent divide-y divide-neutral-200'>\n {void prepareRow(activeItem)}\n <Row key={(activeItem.original as Record<string, unknown>).id as string} row={activeItem as never} index={rows?.findIndex((item) => item.id === (activeItem.original as Record<string, unknown>).id)} />\n </tbody>\n </table>\n </DragOverlay>,\n document.getElementById('full-screen-container') || document.body,\n )\n : null}\n </DndContext>\n )}\n </div>\n {paginationConfig && tableConfig?.renderPagination ? tableConfig.renderPagination(paginationConfig) : null}\n\n {tableConfig?.renderMasterDataModal && tableConfig.renderMasterDataModal({\n isVisible: !!masterDataModalConfig, onSelected: handleMasterDataSelected, onClose: closeMasterDataModal,\n masterDataColumnName: masterDataModalConfig?.masterDataColumnName, masterDataFilters: masterDataModalConfig?.masterDataFilters,\n masterDataName: masterDataModalConfig?.masterDataName, masterDataId: masterDataModalConfig?.masterDataName, showFilters: true,\n })}\n\n <CurrencyDropdownPortal config={currencyDropdownConfig} onClose={closeCurrencyDropdown} />\n\n <PendingEditsFloatingBar\n pendingEditsCount={pendingEditsCount}\n pendingEditsList={pendingEditsList}\n rowsWithPendingEdits={rowsWithPendingEdits}\n fieldOperationLoading={fieldOperationLoading}\n onClearAll={clearAllPendingEdits}\n onSaveAll={saveAllPendingEdits}\n onScrollToCell={scrollToCell}\n />\n </TableContext.Provider>\n );\n },\n);\n"],"names":["AutoSizer","_AutoSizer","FIRST_BREAKPOINT","SECOND_BREAKPOINT","CREATE_COLUMN_LABEL","getEmptyButtonId","label","index","InfiniteTable","React","tableKey","searchConfig","filterConfig","sortConfig","headerConfig","hoverConfig","columns","modelName","enableMasterDataEnumSuggestions","agreementCategoryId","agreementDomainId","agreementId","modificationId","lineItemRowId","enumSuggestionsData","data","onRowClick","showHeader","tableActions","rowOptions","hideRowOptionWidth","checkboxUtilities","isLoading","onScroll","onScrolling","isColumnConfigurable","onAddColumnClick","emptyMessage","noDataWidget","buttons","onEditColumnClick","onDeleteColumnClick","onRowTooltipClick","tooltiptext","cascadingTableConfig","originalsOnly","disableOptionsForRowIndex","tableHeightClass","getFullRowDataOnClick","onRowEdit","onBulkRowEdit","inlineEditColumns","isResizable","paginationConfig","dndSortableUtils","multipleContexts","withSortable","withDraggable","enableRootDrag","pageSize","onCascadingRowExpand","totalItems","showRecordCount","getInnerRowData","maxLevel","expandedRows","setExpandedRows","showNewItem","rawData","dragConfig","isOverlayLoading","style","floatingBarConfig","rowWrapper","rowLinkConfig","isCellClickDisabled","setHeaderOnParent","optimizeTable","multiSelectConfig","headerContextOptions","showHeaderContextOptions","setShowHeaderContextOptions","showDataTypeIcon","rowAdditionalActions","rowAdditionalActionsWidth","setVisibleHeaders","cellEditing","cellEditingValue","allowInlineEdit","onFieldOperationFlow","fieldOperationLoading","onTableActionsReady","onPendingEditsChange","onCancelPendingEdits","tableConfig","useTableConfig","isSearch","isFilters","isAnyFilters","isCheckbox","defaultTableView","selectedTableView","setSelectedTableView","useState","showFilters","setShowFilters","showSorts","setShowSorts","newFilterColumn","setNewFilterColumn","tableHeaders","setTableHeaders","isEmpty","showHeaderOptions","setShowHeaderOptions","showDataFilterModal","setShowDataFilterModal","dataFilterColumn","setDataFilterColumn","isAllChecked","setIsAllChecked","isShowSortArrowAsc","setIsShowSortArrowAsc","isShowSortArrowDesc","setIsShowSortArrowDesc","sortableListByContext","setSortableListByContext","activeItem","setActiveItem","dndLoading","setDndLoading","headerDivWidth","setHeaderDivWidth","headerDivRef","useRef","tableContainerRef","tableContainerSize","setTableContainerSize","activeInlineEdit","setActiveInlineEdit","masterDataModalConfig","setMasterDataModalConfig","selectedMasterData","setSelectedMasterData","currencyDropdownConfig","setCurrencyDropdownConfig","selectedCurrenciesMap","setSelectedCurrenciesMap","hasAppliedInitialFilters","userClearedFiltersRef","selectedTableViewRef","tableConfigRef","columnsRef","filterConfigRef","headerGroupsRef","resolveTableViewRef","computeListRef","pendingEdits","setPendingEdits","addPendingEdit","useCallback","rowId","columnKey","edit","prev","existingEdit","resolvedValidationError","column","col","result","validateCellValue","hasPendingEdits","rowEdits","useEffect","removePendingEdit","newEdits","_removed","rest","getPendingEdit","hasPendingEdit","clearAllPendingEdits","scrollToCell","rowIndex","colIndex","cellElement","scrollContainer","scrollLeft","i","validateAllPendingEdits","editsToValidate","hasErrors","firstError","updatedEdits","errorTypes","getValidationToastMessage","hasRequired","hasFormat","saveAllPendingEdits","row","editedRows","originalRow","updatedRow","editedFields","clearRowPendingEdits","k","saveRowPendingEdits","editedRowData","n","pendingEditsCount","useMemo","total","pendingEditsList","list","rowsWithPendingEdits","rowsMap","a","b","openMasterDataModal","config","closeMasterDataModal","handleMasterDataSelected","value","clearSelectedMasterData","openCurrencyDropdown","closeCurrencyDropdown","setCurrencyForCell","cellKey","currency","getCurrencyForCell","fallbackHeight","pxMatch","calcMatch","emptySwitchProps","translatedCreateColumnLabel","defaultEmptyText","resolvedEmptyText","loaderData","cellLoaders","tableLoaders","visibleColumns","header","table","useTable","useResizeColumns","getTableProps","getTableBodyProps","headerGroups","prepareRow","rows","headerKeys","groups","checkboxConfig","useCheckbox","sensors","useSensors","useSensor","MouseSensor","TouchSensor","dropAnimation","computeList","acc","contextKey","e","handleDragStart","event","active","item","handleDragEnd","over","newState","handleDragCancel","toggleHeaderOption","key","toggleDataFilterModal","handleRemoveSort","toggleShowFilters","toggleShowSorts","lastNonStickyColumnIndex","reverseHeaders","getSumOfNextVisibleColumnWidth","currentIndex","sum","resolveTableView","userId","handleUpdateColumnWidth","columnName","width","updatedTableView","currentView","hasViewFilters","hasConfigFilters","handleActiveRemoveFilter","handleActiveClearFilter","mergeViewColumnsWithTableColumns","resizeObserver","entries","height","tableHeader","jsx","Head","tableView","jsxs","Fragment","NoDataFoundWidgets","NoDataFound","Button","Add2Icon","button","effectiveWidth","effectiveHeight","Body","tableWrapper","forwardRef","props","ref","tableBodyWrapper","TableHeaderComponent","TableContext","Typography","FloatingBar","DndContext","closestCorners","createPortal","DragOverlay","Row","CurrencyDropdownPortal","PendingEditsFloatingBar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../../../../src/components/data-display/infinite-table/index.tsx"],"sourcesContent":["import { useCheckbox } from '../../../hooks/useCheckbox';\nimport { useTableConfig } from '../../../providers/design-system-provider/hooks';\nimport { mergeViewColumnsWithTableColumns } from '../../../utils/table';\nimport Button from '../../button/Button';\nimport { FloatingBar } from '../../floating-bar/FloatingBar';\nimport { NoDataFound, NoDataFoundWidgets } from '../empty-state';\nimport { Typography } from '../typography/Typography';\nimport { DndContext, DragOverlay, type DragEndEvent, type DragStartEvent, type DropAnimation, MouseSensor, TouchSensor, closestCorners, useSensor, useSensors } from '@dnd-kit/core';\nimport React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { AutoSizer as _AutoSizer } from 'react-virtualized-auto-sizer';\nimport { createPortal } from 'react-dom';\nimport type { Row as ReactTableRow } from 'react-table';\nimport { useResizeColumns, useTable } from 'react-table';\n\nimport { Body } from './body';\nimport { validateCellValue } from './validateCell';\nimport { Row } from './body/rows/row';\nimport { TableContext } from './context';\nimport { CurrencyDropdownPortal } from './CurrencyDropdownPortal';\nimport { Head } from './head';\nimport { PendingEditsFloatingBar } from './PendingEditsFloatingBar';\nimport type { ICurrencyDropdownConfig, IColumn, IMasterDataModalConfig, ITableProps, ITableView, PendingEditsMap, IPendingEdit } from './types';\nimport { Add2Icon } from '../../icon';\n\nconst AutoSizer = _AutoSizer as unknown as React.ComponentType<{\n renderProp: (size: { width: number; height: number }) => React.ReactNode;\n style?: React.CSSProperties;\n}>;\n\nconst FIRST_BREAKPOINT = 700;\nconst SECOND_BREAKPOINT = 430;\nconst CREATE_COLUMN_LABEL = 'Create Column';\n\nconst getEmptyButtonId = (label: string, index: number): string => {\n const slug = label.toLowerCase().trim().replace(/\\s+/g, '-').replace(/[^a-z0-9-_]/g, '');\n return `button-admin-${slug || index}`;\n};\n\nexport const InfiniteTable = React.memo(\n ({\n tableKey,\n searchConfig = { search: '', handleSearch: () => null, allowAStarSearch: false },\n filterConfig = {\n columnFilters: [],\n onFilter: () => null,\n onRemoveFilter: () => null,\n onClearFilter: () => null,\n onResetFilter: () => Promise.resolve({}),\n asyncRowOptionsFilter: () => Promise.resolve({}),\n },\n sortConfig = { onSort: () => null, columnSort: { field: '', order: '' }, onRemoveSort: () => null },\n headerConfig = {\n showExportButton: null,\n showFilters: true,\n showSorts: true,\n showSearch: true,\n showTableView: true,\n showTableViewAsModal: false,\n content: null,\n postContent: null,\n preContent: null,\n isLoading: false,\n showDivider: false,\n },\n hoverConfig = null,\n columns,\n modelName,\n enableMasterDataEnumSuggestions = false,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId,\n enumSuggestionsData,\n data = [],\n onRowClick,\n showHeader,\n tableActions,\n rowOptions,\n hideRowOptionWidth,\n checkboxUtilities,\n isLoading = false,\n onScroll,\n onScrolling,\n isColumnConfigurable,\n onAddColumnClick,\n emptyMessage,\n noDataWidget,\n buttons,\n onEditColumnClick,\n onDeleteColumnClick,\n onRowTooltipClick,\n tooltiptext,\n cascadingTableConfig,\n originalsOnly,\n disableOptionsForRowIndex,\n tableHeightClass = 'h-[calc(100vh-220px)]',\n getFullRowDataOnClick,\n selectedRowId = null,\n onRowEdit,\n onBulkRowEdit,\n inlineEditColumns,\n isResizable = true,\n paginationConfig,\n dndSortableUtils,\n multipleContexts,\n withSortable,\n withDraggable,\n enableRootDrag,\n pageSize = 10,\n onCascadingRowExpand,\n totalItems,\n showRecordCount = false,\n getInnerRowData,\n maxLevel,\n expandedRows = {},\n setExpandedRows,\n showNewItem,\n rawData,\n dragConfig,\n isOverlayLoading,\n style = {},\n floatingBarConfig,\n rowWrapper,\n rowLinkConfig,\n isCellClickDisabled,\n setHeaderOnParent,\n optimizeTable = false,\n multiSelectConfig,\n headerContextOptions,\n showHeaderContextOptions,\n setShowHeaderContextOptions,\n showDataTypeIcon = false,\n rowAdditionalActions,\n rowAdditionalActionsWidth,\n setVisibleHeaders,\n cellEditing = null,\n cellEditingValue = null,\n allowInlineEdit = false,\n onFieldOperationFlow,\n fieldOperationLoading = null,\n onTableActionsReady,\n onPendingEditsChange,\n onCancelPendingEdits,\n }: ITableProps) => {\n const tableConfig = useTableConfig();\n\n const isSearch = Boolean(searchConfig?.search);\n\n const isFilters = filterConfig?.columnFilters?.length > 0;\n const isAnyFilters = isSearch || isFilters;\n\n const isCheckbox = Boolean(checkboxUtilities);\n\n const defaultTableView = tableConfig?.getTableView?.(tableKey as string) ?? null;\n const [selectedTableView, setSelectedTableView] = useState<ITableView | null>(defaultTableView || null);\n const [showFilters, setShowFilters] = useState(false);\n const [showSorts, setShowSorts] = useState(false);\n const [newFilterColumn, setNewFilterColumn] = useState<unknown>(null);\n const [tableHeaders, setTableHeaders] = useState<IColumn[]>(columns);\n const isEmpty = (data.length === 0 || !tableHeaders.length) && !isLoading;\n const [showHeaderOptions, setShowHeaderOptions] = useState<string | null>(null);\n const [showDataFilterModal, setShowDataFilterModal] = useState<boolean>(false);\n const [dataFilterColumn, setDataFilterColumn] = useState<unknown>(null);\n const [isAllChecked, setIsAllChecked] = useState(false);\n const [isShowSortArrowAsc, setIsShowSortArrowAsc] = useState<string | null>(null);\n const [isShowSortArrowDesc, setIsShowSortArrowDesc] = useState<string | null>(null);\n const [sortableListByContext, setSortableListByContext] = useState<Record<string, unknown>>({});\n const [activeItem, setActiveItem] = useState<ReactTableRow<object> | null>(null);\n const [dndLoading, setDndLoading] = useState<boolean>(false);\n const [headerDivWidth, setHeaderDivWidth] = useState(0);\n const headerDivRef = useRef<HTMLDivElement>(null);\n const tableContainerRef = useRef<HTMLDivElement>(null);\n const [tableContainerSize, setTableContainerSize] = useState({ width: 0, height: 0 });\n const [activeInlineEdit, setActiveInlineEdit] = useState<{ rowId: string; columnKey: string } | null>(null);\n const [masterDataModalConfig, setMasterDataModalConfig] = useState<IMasterDataModalConfig | null>(null);\n const [selectedMasterData, setSelectedMasterData] = useState<{ value: unknown; reference: unknown } | null>(null);\n const [currencyDropdownConfig, setCurrencyDropdownConfig] = useState<ICurrencyDropdownConfig | null>(null);\n const [selectedCurrenciesMap, setSelectedCurrenciesMap] = useState<Record<string, string>>({});\n const hasAppliedInitialFilters = useRef(false);\n const userClearedFiltersRef = useRef(false);\n\n const selectedTableViewRef = useRef(selectedTableView);\n selectedTableViewRef.current = selectedTableView;\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n const columnsRef = useRef(columns);\n columnsRef.current = columns;\n const filterConfigRef = useRef(filterConfig);\n filterConfigRef.current = filterConfig;\n const headerGroupsRef = useRef<unknown[] | null>(null);\n const resolveTableViewRef = useRef<() => ITableView>(() => ({}) as ITableView);\n const computeListRef = useRef<() => unknown>(() => ({}));\n\n const [pendingEdits, setPendingEdits] = useState<PendingEditsMap>({});\n\n const addPendingEdit = useCallback(\n (rowId: string, columnKey: string, edit: IPendingEdit) => {\n setPendingEdits((prev) => {\n const existingEdit = prev[rowId]?.[columnKey];\n let resolvedValidationError: string | null | undefined = edit.validationError;\n if (resolvedValidationError === undefined) {\n const column = tableHeaders.find((col) => col.key === columnKey);\n if (column) {\n const result = validateCellValue(edit.value, column as { type?: string; is_required?: boolean });\n resolvedValidationError = !result.isValid ? (result.error || 'Invalid') : null;\n } else {\n resolvedValidationError = existingEdit?.validationError ?? null;\n }\n }\n return { ...prev, [rowId]: { ...(prev[rowId] || {}), [columnKey]: { ...edit, validationError: resolvedValidationError ?? null } } };\n });\n },\n [tableHeaders],\n );\n\n const hasPendingEdits = useCallback(() => {\n return Object.values(pendingEdits).some((rowEdits) => Object.keys(rowEdits).length > 0);\n }, [pendingEdits]);\n\n useEffect(() => {\n if (onTableActionsReady) onTableActionsReady({ addPendingEdit: addPendingEdit as (rowId: string, columnKey: string, edit: { value: unknown; originalValue?: unknown; meta?: unknown }) => void, hasPendingEdits });\n }, [onTableActionsReady, addPendingEdit, hasPendingEdits]);\n\n const removePendingEdit = useCallback((rowId: string, columnKey: string) => {\n setPendingEdits((prev) => {\n const newEdits = { ...prev };\n if (newEdits[rowId]) {\n const { [columnKey]: _removed, ...rest } = newEdits[rowId]; void _removed;\n if (Object.keys(rest).length === 0) delete newEdits[rowId];\n else newEdits[rowId] = rest;\n }\n return newEdits;\n });\n }, []);\n\n const getPendingEdit = useCallback(\n (rowId: string, columnKey: string): IPendingEdit | undefined => pendingEdits[rowId]?.[columnKey],\n [pendingEdits],\n );\n\n const hasPendingEdit = useCallback(\n (rowId: string, columnKey: string): boolean => Boolean(pendingEdits[rowId]?.[columnKey]),\n [pendingEdits],\n );\n\n const clearAllPendingEdits = useCallback(() => {\n if (fieldOperationLoading) return;\n if (onCancelPendingEdits && Object.keys(pendingEdits).length > 0) onCancelPendingEdits(pendingEdits);\n setPendingEdits({});\n setSelectedCurrenciesMap({});\n setActiveInlineEdit(null);\n }, [fieldOperationLoading, onCancelPendingEdits, pendingEdits]);\n\n const scrollToCell = useCallback(\n (rowId: string, columnKey: string, rowIndex: number) => {\n setTimeout(() => {\n tableConfig?.dispatchEvent?.('SCROLL_TO_TABLE_ROW', { rowIndex });\n const colIndex = tableHeaders.findIndex((col) => col.key === columnKey);\n setTimeout(() => {\n const cellElement = document.querySelector(`[data-row-id=\"${rowId}\"] [data-column-key=\"${columnKey}\"]`);\n if (cellElement) {\n cellElement.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n } else if (colIndex > 0) {\n const scrollContainer = document.querySelector('.os-viewport');\n if (scrollContainer) {\n let scrollLeft = 0;\n for (let i = 0; i < colIndex; i++) {\n const col = tableHeaders[i];\n if (!col?.sticky) scrollLeft += col?.width || 200;\n }\n scrollLeft = Math.max(0, scrollLeft - 200);\n scrollContainer.scrollTo({ left: scrollLeft, behavior: 'smooth' });\n }\n }\n setActiveInlineEdit({ rowId, columnKey });\n }, 350);\n }, 100);\n },\n [tableHeaders, tableConfig],\n );\n\n const validateAllPendingEdits = useCallback(\n (editsToValidate: PendingEditsMap): { hasErrors: boolean; updatedEdits: PendingEditsMap; firstError: { rowId: string; columnKey: string } | null; errorTypes: Set<string> } => {\n let hasErrors = false;\n let firstError: { rowId: string; columnKey: string } | null = null;\n const updatedEdits: PendingEditsMap = {};\n const errorTypes = new Set<string>();\n\n Object.entries(editsToValidate).forEach(([rowId, rowEdits]) => {\n updatedEdits[rowId] = {};\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n const column = tableHeaders.find((col) => col.key === columnKey);\n const result = validateCellValue(edit.value, column as { type?: string; is_required?: boolean });\n if (!result.isValid) {\n hasErrors = true;\n if (result.error) errorTypes.add(result.error);\n if (!firstError) firstError = { rowId, columnKey };\n updatedEdits[rowId][columnKey] = { ...edit, validationError: result.error };\n } else {\n updatedEdits[rowId][columnKey] = { ...edit, validationError: null };\n }\n });\n });\n\n return { hasErrors, updatedEdits, firstError, errorTypes };\n },\n [tableHeaders],\n );\n\n const getValidationToastMessage = useCallback((errorTypes: Set<string>) => {\n const hasRequired = errorTypes.has('Field required');\n const hasFormat = errorTypes.size > (hasRequired ? 1 : 0);\n if (hasRequired && hasFormat) return 'Missing required field(s) and invalid format detected. Please review highlighted field(s).';\n if (hasRequired) return 'Missing required field(s). Please review highlighted field(s).';\n return 'Invalid field value(s). Please review highlighted field(s).';\n }, []);\n\n const saveAllPendingEdits = useCallback(() => {\n const { hasErrors, updatedEdits, firstError, errorTypes } = validateAllPendingEdits(pendingEdits);\n if (hasErrors) {\n setPendingEdits(updatedEdits);\n tableConfig?.showNotification?.('error', getValidationToastMessage(errorTypes));\n if (firstError) {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === firstError!.rowId);\n scrollToCell(firstError!.rowId, firstError!.columnKey, rowIndex);\n }\n return;\n }\n\n const editedRows: Array<Record<string, unknown>> = [];\n Object.entries(pendingEdits).forEach(([rowId, rowEdits]) => {\n const originalRow = data.find((row: Record<string, unknown>) => row.id === rowId);\n if (originalRow) {\n const updatedRow = { ...originalRow };\n const editedFields: Record<string, { value: unknown; meta?: unknown }> = {};\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n updatedRow[columnKey] = edit.value;\n editedFields[columnKey] = { value: edit.value, meta: edit.meta };\n });\n editedRows.push({ ...updatedRow, __editedFields: editedFields });\n }\n });\n\n if (editedRows.length > 0) {\n if (onBulkRowEdit) onBulkRowEdit(editedRows);\n else if (onRowEdit) onRowEdit(null, null, null, null, null, { isBulk: true, rows: editedRows });\n }\n\n setPendingEdits({});\n setSelectedCurrenciesMap({});\n setActiveInlineEdit(null);\n }, [pendingEdits, data, onRowEdit, onBulkRowEdit, validateAllPendingEdits, getValidationToastMessage, scrollToCell, tableConfig]);\n\n const clearRowPendingEdits = useCallback(\n (rowId: string) => {\n if (fieldOperationLoading) return;\n const rowEdits = pendingEdits[rowId];\n if (rowEdits && onCancelPendingEdits) onCancelPendingEdits({ [rowId]: rowEdits });\n setPendingEdits((prev) => { const n = { ...prev }; delete n[rowId]; return n; });\n setSelectedCurrenciesMap((prev) => { const n = { ...prev }; Object.keys(n).forEach((k) => { if (k.startsWith(`${rowId}-`)) delete n[k]; }); return n; });\n setActiveInlineEdit(null);\n },\n [fieldOperationLoading, onCancelPendingEdits, pendingEdits],\n );\n\n const saveRowPendingEdits = useCallback(\n (rowId: string) => {\n const rowEdits = pendingEdits[rowId];\n if (!rowEdits || Object.keys(rowEdits).length === 0) return;\n\n const { hasErrors, updatedEdits, firstError, errorTypes } = validateAllPendingEdits({ [rowId]: rowEdits });\n if (hasErrors) {\n setPendingEdits((prev) => ({ ...prev, [rowId]: updatedEdits[rowId] }));\n tableConfig?.showNotification?.('error', getValidationToastMessage(errorTypes));\n if (firstError) {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === firstError!.rowId);\n scrollToCell(firstError!.rowId, firstError!.columnKey, rowIndex);\n }\n return;\n }\n\n const originalRow = data.find((row: Record<string, unknown>) => row.id === rowId);\n if (!originalRow) return;\n const updatedRow = { ...originalRow };\n const editedFields: Record<string, { value: unknown; meta?: unknown }> = {};\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n updatedRow[columnKey] = edit.value;\n editedFields[columnKey] = { value: edit.value, meta: edit.meta };\n });\n\n const editedRowData = { ...updatedRow, __editedFields: editedFields };\n\n if (onBulkRowEdit) onBulkRowEdit([editedRowData]);\n else if (onRowEdit) onRowEdit(null, null, null, null, null, { isBulk: true, rows: [editedRowData] });\n\n setPendingEdits((prev) => { const n = { ...prev }; delete n[rowId]; return n; });\n setSelectedCurrenciesMap((prev) => { const n = { ...prev }; Object.keys(n).forEach((k) => { if (k.startsWith(`${rowId}-`)) delete n[k]; }); return n; });\n setActiveInlineEdit(null);\n },\n [pendingEdits, data, onRowEdit, onBulkRowEdit, validateAllPendingEdits, getValidationToastMessage, scrollToCell, tableConfig],\n );\n\n const pendingEditsCount = useMemo(() => {\n return Object.values(pendingEdits).reduce((total, rowEdits) => total + Object.keys(rowEdits).length, 0);\n }, [pendingEdits]);\n\n useEffect(() => {\n onPendingEditsChange?.(pendingEditsCount > 0, pendingEditsCount);\n }, [pendingEditsCount, onPendingEditsChange]);\n\n const pendingEditsList = useMemo(() => {\n const list: Array<{ rowId: string; columnKey: string; fieldName: string; value: unknown; originalValue: unknown; meta?: IPendingEdit['meta']; originalMeta?: IPendingEdit['originalMeta']; rowIndex: number }> = [];\n Object.entries(pendingEdits).forEach(([rowId, rowEdits]) => {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === rowId);\n Object.entries(rowEdits).forEach(([columnKey, edit]) => {\n const column = tableHeaders.find((col) => col.key === columnKey);\n list.push({ rowId, columnKey, fieldName: column?.Header || column?.display_name || columnKey, value: edit.value, originalValue: edit.originalValue, meta: edit.meta, originalMeta: edit.originalMeta, rowIndex });\n });\n });\n return list;\n }, [pendingEdits, tableHeaders, data]);\n\n const rowsWithPendingEdits = useMemo(() => {\n const rowsMap = new Map<string, { rowId: string; rowIndex: number; editCount: number }>();\n Object.entries(pendingEdits).forEach(([rowId, rowEdits]) => {\n const rowIndex = data.findIndex((row: Record<string, unknown>) => row.id === rowId);\n rowsMap.set(rowId, { rowId, rowIndex, editCount: Object.keys(rowEdits).length });\n });\n return Array.from(rowsMap.values()).sort((a, b) => a.rowIndex - b.rowIndex);\n }, [pendingEdits, data]);\n\n const openMasterDataModal = useCallback((config: IMasterDataModalConfig) => setMasterDataModalConfig(config), []);\n const closeMasterDataModal = useCallback(() => setMasterDataModalConfig(null), []);\n\n const handleMasterDataSelected = useCallback(\n (value: unknown, row?: unknown) => {\n setSelectedMasterData({ value, reference: row });\n if (masterDataModalConfig?.onSelected) masterDataModalConfig.onSelected(value, row);\n closeMasterDataModal();\n },\n [masterDataModalConfig, closeMasterDataModal],\n );\n\n const clearSelectedMasterData = useCallback(() => setSelectedMasterData(null), []);\n\n const openCurrencyDropdown = useCallback((config: ICurrencyDropdownConfig) => setCurrencyDropdownConfig(config), []);\n const closeCurrencyDropdown = useCallback(() => setCurrencyDropdownConfig(null), []);\n\n const setCurrencyForCell = useCallback((cellKey: string, currency: string) => {\n setSelectedCurrenciesMap((prev) => ({ ...prev, [cellKey]: currency }));\n }, []);\n\n const getCurrencyForCell = useCallback(\n (cellKey: string): string | undefined => selectedCurrenciesMap[cellKey],\n [selectedCurrenciesMap],\n );\n\n const fallbackHeight = useMemo(() => {\n const pxMatch = tableHeightClass.match(/h-\\[(\\d+px)\\]/);\n if (pxMatch) return pxMatch[1];\n const calcMatch = tableHeightClass.match(/h-\\[(calc\\(.+\\))\\]/);\n if (calcMatch) return calcMatch[1].replace(/([+-])/g, ' $1 ').replace(/\\s+/g, ' ');\n return undefined;\n }, [tableHeightClass]);\n\n const emptySwitchProps = {\n isEmpty,\n isFilters: isAnyFilters,\n isColumnConfigurable,\n handleOnClick: onAddColumnClick,\n emptyMessage,\n buttons,\n noDataWidget,\n };\n const translatedCreateColumnLabel = tableConfig?.t?.(CREATE_COLUMN_LABEL) ?? CREATE_COLUMN_LABEL;\n const defaultEmptyText = isAnyFilters ? 'No Results Found' : emptyMessage || 'No Data Found';\n const resolvedEmptyText = typeof defaultEmptyText === 'string' ? (tableConfig?.t?.(defaultEmptyText) ?? defaultEmptyText) : defaultEmptyText;\n\n const loaderData = { __isLoading: true };\n const cellLoaders = new Array(1).fill(loaderData);\n const tableLoaders = new Array(pageSize).fill(loaderData);\n\n const visibleColumns = useMemo(() => tableHeaders.filter((header) => Boolean(header?.visible)), [tableHeaders]);\n\n const table = useTable(\n {\n columns: optimizeTable ? visibleColumns : tableHeaders,\n data: [...data, ...(isLoading ? (data?.length ? cellLoaders : tableLoaders) : [])],\n defaultColumn: { minWidth: 100, width: 200, maxWidth: 999999 },\n },\n useResizeColumns,\n );\n\n const { getTableProps, getTableBodyProps, headerGroups, prepareRow, rows } = table;\n headerGroupsRef.current = headerGroups;\n\n const headerKeys = JSON.stringify(headerGroups[0]?.headers?.map((header) => (header as unknown as Record<string, unknown>)?.Header));\n useEffect(() => {\n if (setVisibleHeaders) {\n const groups = headerGroupsRef.current as Array<{ headers?: Array<Record<string, unknown>> }> | null;\n setVisibleHeaders?.(groups?.[0]?.headers?.map((header) => header?.Header as string) ?? []);\n }\n }, [headerKeys, setVisibleHeaders]);\n\n const { checkboxConfig } = useCheckbox({\n rows: rows as never,\n checkedIds: checkboxUtilities?.checkedIds as string[],\n isCheckAllDisabled: checkboxUtilities?.isCheckAllDisabled,\n selectionDisabledRowIds: checkboxUtilities?.selectionDisabledRowIds,\n rawData,\n onAllChecked: setIsAllChecked,\n setCheckedIds: checkboxUtilities?.setCheckedIds as (ids: string[]) => void,\n checkboxMetadata: checkboxUtilities?.checkboxMetadata as { checkedIds: string[]; tooltip: string; highlight: string },\n });\n\n const sensors = useSensors(\n useSensor(MouseSensor, { activationConstraint: { distance: 5 } }),\n useSensor(TouchSensor, { activationConstraint: { distance: 5 } }),\n );\n\n const dropAnimation: DropAnimation = { easing: 'cubic-bezier(0.18, 0.67, 0.6, 1.22)', duration: 20 };\n\n function computeList() {\n if (!multipleContexts?.length || !withSortable) return rows;\n return multipleContexts.reduce((acc: Record<string, unknown>, contextKey: string) => {\n acc[contextKey] = rows.filter((e) => (e.original as Record<string, unknown>)?.type === contextKey);\n return acc;\n }, {});\n }\n computeListRef.current = computeList;\n\n const handleDragStart = (event: DragStartEvent) => {\n const { active } = event;\n setActiveItem(rows.find((item) => (item.original as Record<string, unknown>)?.id === active?.id) ?? null);\n };\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over) return;\n if (dndSortableUtils?.checkDndDragEnd) {\n dndSortableUtils.checkDndDragEnd(active, over, sortableListByContext, (newState: Record<string, unknown>) => {\n setSortableListByContext(newState as Record<string, unknown>);\n setDndLoading(true);\n dndSortableUtils.onDragSuccess?.({\n draggedId: active.id as string,\n droppedId: over.id as string,\n draggedType: (active.data.current as Record<string, unknown>)?.type,\n droppedType: (over.data.current as Record<string, unknown>)?.type,\n updatedList: newState,\n cb: () => setDndLoading(false),\n });\n });\n }\n setActiveItem(null);\n };\n\n const handleDragCancel = () => setActiveItem(null);\n\n const toggleHeaderOption = (key: string) => {\n if (!sortConfig?.onSort && !filterConfig?.onFilter) return;\n if (showHeaderOptions === key) setShowHeaderOptions(null);\n else setShowHeaderOptions(key);\n };\n\n const toggleDataFilterModal = (col: unknown) => {\n setDataFilterColumn(col);\n setShowDataFilterModal(!showDataFilterModal);\n setShowHeaderOptions(null);\n };\n\n const handleRemoveSort = useCallback(() => {\n if (sortConfig?.onRemoveSort) sortConfig.onRemoveSort();\n else if (sortConfig?.onSort) sortConfig.onSort('', '');\n }, [sortConfig]);\n\n const toggleShowFilters = useCallback((col: unknown = null) => {\n setNewFilterColumn(col);\n setShowFilters(prev => col ? true : !prev);\n }, []);\n const toggleShowSorts = useCallback(() => setShowSorts(prev => !prev), []);\n\n const lastNonStickyColumnIndex = () => {\n const reverseHeaders = (headerGroups[0]?.headers as unknown as Array<Record<string, unknown>>)?.filter((header) => header?.visible !== false);\n for (let i = 0; i < reverseHeaders.length; i++) {\n if (reverseHeaders[i].sticky) return i - 1;\n }\n return reverseHeaders.length - 1;\n };\n\n const getSumOfNextVisibleColumnWidth = useCallback(\n (currentIndex: number) => {\n let sum = 0;\n for (let i = currentIndex + 1; i < visibleColumns.length; i++) {\n if (visibleColumns[i].visible !== false) sum += visibleColumns[i].width ?? 0;\n }\n if (rowAdditionalActions) sum += rowAdditionalActionsWidth || 40;\n if (rowOptions) sum += hideRowOptionWidth ? 0 : 28;\n return sum;\n },\n [visibleColumns, rowAdditionalActionsWidth, hideRowOptionWidth, rowAdditionalActions, rowOptions],\n );\n\n const resolveTableView = (): ITableView => {\n const userId = tableConfig?.getUserId?.();\n return {\n ...(selectedTableView || {}),\n name: selectedTableView?.name || 'Untitled View',\n created_by: selectedTableView?.created_by || userId,\n filters: selectedTableView?.filters || filterConfig?.columnFilters,\n id: selectedTableView?.id || 'untitled-view',\n table_key: selectedTableView?.table_key || tableKey,\n columns: selectedTableView?.columns || columns?.map((column, index) => ({\n name: column.Header,\n width: column.width,\n visible: column.visible,\n sticky: column.sticky,\n order: index + 1,\n display_name: column.Header,\n sequence: index + 1,\n Header: column.Header,\n })),\n };\n };\n resolveTableViewRef.current = resolveTableView;\n\n const handleUpdateColumnWidth = (columnName: string, width: number) => {\n const updatedTableView = resolveTableView();\n setSelectedTableView({\n ...updatedTableView,\n columns: updatedTableView?.columns?.map((column) => (column.name === columnName ? { ...column, width } : column)),\n unsaved: true,\n });\n };\n\n useEffect(() => {\n if (filterConfig?.columnFilters?.length > 0) setShowFilters(true);\n const currentView = selectedTableViewRef.current;\n if (JSON.stringify(currentView?.filters || []) !== JSON.stringify(filterConfig?.columnFilters || [])) {\n const hasViewFilters = (currentView?.filters?.length ?? 0) > 0;\n const hasConfigFilters = filterConfig?.columnFilters?.length > 0;\n // Skip sync only during the initial load window where the view already has filters\n // but they haven't propagated to columnFilters yet. If the user explicitly cleared\n // filters from ActiveFilters (X button or Clear), we must propagate the empty state.\n const isClearingFilters = hasViewFilters && !hasConfigFilters && !userClearedFiltersRef.current;\n if (!isClearingFilters) {\n const updatedTableView = resolveTableViewRef.current();\n setSelectedTableView({ ...updatedTableView, filters: JSON.parse(JSON.stringify(filterConfig?.columnFilters || [])), unsaved: true });\n }\n userClearedFiltersRef.current = false;\n }\n }, [filterConfig?.columnFilters]);\n\n const handleActiveRemoveFilter = useCallback(\n (key: string) => {\n userClearedFiltersRef.current = true;\n filterConfig?.onRemoveFilter?.(key);\n },\n [filterConfig?.onRemoveFilter],\n );\n\n const handleActiveClearFilter = useCallback(() => {\n userClearedFiltersRef.current = true;\n filterConfig?.onClearFilter?.();\n }, [filterConfig?.onClearFilter]);\n\n useEffect(() => {\n if (sortConfig?.columnSort?.field) {\n setShowSorts(true);\n if (sortConfig.columnSort.order === 'asc') { setIsShowSortArrowAsc(sortConfig.columnSort.field); setIsShowSortArrowDesc(null); }\n else if (sortConfig.columnSort.order === 'desc') { setIsShowSortArrowDesc(sortConfig.columnSort.field); setIsShowSortArrowAsc(null); }\n } else { setIsShowSortArrowAsc(null); setIsShowSortArrowDesc(null); }\n }, [sortConfig?.columnSort?.field, sortConfig?.columnSort?.order]);\n\n useEffect(() => {\n setTableHeaders(mergeViewColumnsWithTableColumns(selectedTableViewRef.current?.columns || [], columns));\n }, [columns]);\n\n useEffect(() => {\n if (selectedTableView?.unsaved) tableConfigRef.current?.persistTableView?.(selectedTableView);\n }, [selectedTableView]);\n\n useEffect(() => { setSortableListByContext(computeListRef.current() as Record<string, unknown>); }, [rows.length]);\n\n useEffect(() => {\n setSelectedTableView(defaultTableView || null);\n if (defaultTableView?.columns) {\n setTableHeaders(mergeViewColumnsWithTableColumns(defaultTableView?.columns || [], columnsRef.current));\n }\n if (defaultTableView?.filters && defaultTableView.filters.length > 0 && !hasAppliedInitialFilters.current) {\n requestAnimationFrame(() => { filterConfigRef.current?.onFilter?.(defaultTableView.filters); });\n hasAppliedInitialFilters.current = true;\n } else if (defaultTableView?.filters && hasAppliedInitialFilters.current) {\n const filtersAreDifferent = JSON.stringify(defaultTableView.filters) !== JSON.stringify(filterConfigRef.current?.columnFilters);\n if (filtersAreDifferent) filterConfigRef.current?.onFilter?.(defaultTableView.filters);\n }\n }, [defaultTableView]);\n\n useEffect(() => {\n if (headerDivRef.current) {\n const resizeObserver = new ResizeObserver((entries) => setHeaderDivWidth(entries[0].contentRect.width));\n resizeObserver.observe(headerDivRef.current);\n return () => resizeObserver.disconnect();\n }\n }, []);\n\n useEffect(() => {\n if (!tableContainerRef.current) return;\n const resizeObserver = new ResizeObserver((entries) => {\n const { width, height } = entries[0].contentRect;\n setTableContainerSize({ width, height });\n });\n resizeObserver.observe(tableContainerRef.current);\n return () => resizeObserver.disconnect();\n }, []);\n\n const tableHeader = (\n <Head\n isResizable={isResizable}\n headerGroups={headerGroups as never}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n isAllChecked={isAllChecked}\n showHeaderOptions={showHeaderOptions ?? ''}\n setShowHeaderOptions={setShowHeaderOptions}\n isShowSortArrowAsc={isShowSortArrowAsc}\n isShowSortArrowDesc={isShowSortArrowDesc}\n onSort={sortConfig?.onSort as ((field: string, order?: string) => void) | undefined}\n onFilter={filterConfig?.onFilter}\n toggleHeaderOption={toggleHeaderOption}\n setIsShowSortArrowAsc={setIsShowSortArrowAsc}\n setIsShowSortArrowDesc={setIsShowSortArrowDesc}\n toggleDataFilterModal={toggleShowFilters}\n rowOptions={(Array.isArray(rowOptions) ? rowOptions : []) as unknown[]}\n isColumnConfigurable={isColumnConfigurable ?? false}\n onAddColumnClick={onAddColumnClick as (column: { id: string; key: string; [k: string]: unknown }) => void}\n onEditColumnClick={onEditColumnClick as (column: { id: string; key: string; [k: string]: unknown }) => void}\n onDeleteColumnClick={onDeleteColumnClick as (column: { id: string; key: string; [k: string]: unknown }) => void}\n tableActions={(tableActions || null)}\n isLoading={isLoading}\n rowAdditionalActions={(rowAdditionalActions ?? null) as (() => React.ReactNode) | null}\n showPendingEditsColumn={pendingEditsCount > 0}\n />\n );\n\n const tableView = (\n <>\n {dndLoading || isOverlayLoading ? (\n <div className='absolute left-0 top-0 w-full h-full z-40 flex items-center justify-center bg-neutral-100 dark:bg-black-700' />\n ) : null}\n <div\n {...getTableProps()}\n className='w-full text-sm text-left text-neutral-500 dark:text-neutral-200 h-full bg-white dark:bg-black-800'\n >\n {isEmpty ? (\n <div className='z-10'>\n {tableHeader}\n <div className='absolute w-full'>\n {tableConfig?.renderEmpty ? tableConfig.renderEmpty(emptySwitchProps) : (\n <div className='flex flex-col items-center justify-center w-full h-[12rem] text-neutral-900 dark:text-neutral-200 mt-8'>\n {noDataWidget && !isAnyFilters ? <NoDataFoundWidgets widgetType='TABLE' /> : <NoDataFound text={resolvedEmptyText} />}\n {isColumnConfigurable && !isAnyFilters ? (\n <div className='my-4'>\n <Button\n id='btn-table-shell-create-column'\n status='primary'\n appearance='ghost'\n onClick={onAddColumnClick as ((event: React.MouseEvent<HTMLButtonElement>) => void) | undefined}\n >\n <Add2Icon className='text-white dark:text-white' /> {translatedCreateColumnLabel}\n </Button>\n </div>\n ) : null}\n {!isAnyFilters &&\n buttons?.map((button, index) => (\n <Button key={`${button.label}-${index}`} status='secondary' id={getEmptyButtonId(button.label, index)} onClick={button.onClick}>\n {tableConfig?.t?.(button.label) ?? button.label}\n </Button>\n ))}\n </div>\n )}\n </div>\n </div>\n ) : (\n <AutoSizer\n style={{ width: '100%', height: '100%' }}\n renderProp={({ width, height }) => {\n const effectiveWidth = width > 0 ? width : tableContainerSize.width;\n const effectiveHeight = height > 0 ? height : tableContainerSize.height;\n return effectiveWidth > 0 && effectiveHeight > 0 ? (\n <Body\n {...{\n getTableBodyProps: getTableBodyProps as unknown as () => Record<string, unknown>, rows: rows as never, prepareRow: prepareRow as never, isLoading, onScroll, onScrolling, columns, width: effectiveWidth, height: effectiveHeight, withSortable,\n allowAstarSearch: searchConfig?.allowAStarSearch || false,\n }}\n />\n ) : null;\n }}\n />\n )}\n </div>\n </>\n );\n\n const tableWrapper = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <div className='h-full w-full' {...props} ref={ref}>\n {tableHeader}\n <div className='relative w-full h-full'>{props?.children}</div>\n </div>\n ));\n\n const tableBodyWrapper = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>((props, ref) => (\n <div className='h-full w-full' {...props} ref={ref}>\n <div className='relative w-full h-full'>{props?.children}</div>\n </div>\n ));\n\n const TableHeaderComponent = useMemo(() => {\n if (tableConfig?.renderTableHeader) {\n return tableConfig.renderTableHeader({\n tableKey, search: searchConfig?.search, handleSearch: searchConfig?.handleSearch,\n toggleShowFilters, toggleShowSorts, filterCounts: filterConfig?.columnFilters?.length,\n columns, columnFilters: filterConfig?.columnFilters, setSelectedTableView, selectedTableView,\n enableTableView: headerConfig?.showTableView, modelName: modelName as string,\n enableMasterDataEnumSuggestions,\n onRemoveFilter: filterConfig?.onRemoveFilter, onClearFilter: filterConfig?.onClearFilter,\n onFilter: filterConfig?.onFilter, data: enumSuggestionsData ?? data, tableHeaders, showTableViewAsModal: headerConfig?.showTableViewAsModal,\n additionalOptions: headerConfig?.additionalOptions, inlineActions: headerConfig?.inlineActions, showFilters: headerConfig?.showFilters,\n showSorts: headerConfig?.showSorts, showSearch: headerConfig?.showSearch,\n isLoading: Boolean(headerConfig?.isLoading), setTableHeaders,\n allowAStarSearch: Boolean(searchConfig?.allowAStarSearch), withContent: !!headerConfig?.content,\n setShowFilters, sort: sortConfig?.columnSort, onSort: sortConfig?.onSort, onRemoveSort: handleRemoveSort,\n showExportButton: headerConfig?.showExportButton,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId\n });\n }\n return null;\n }, [\n tableKey, searchConfig?.search, searchConfig?.handleSearch, toggleShowFilters, toggleShowSorts,\n filterConfig?.columnFilters, columns, setSelectedTableView, selectedTableView, headerConfig,\n modelName, filterConfig?.onRemoveFilter, filterConfig?.onClearFilter, filterConfig?.onFilter,\n data, enumSuggestionsData, tableHeaders, sortConfig?.columnSort, sortConfig?.onSort, handleRemoveSort, tableConfig,\n searchConfig?.allowAStarSearch, enableMasterDataEnumSuggestions,agreementCategoryId, agreementDomainId, agreementId,modificationId,lineItemRowId,\n ]);\n\n useEffect(() => {\n if (setHeaderOnParent) setHeaderOnParent(TableHeaderComponent);\n }, [TableHeaderComponent, setHeaderOnParent]);\n\n return (\n <TableContext.Provider\n value={{\n tableWrapper, tableBodyWrapper, lastNonStickyColumnIndex, search: searchConfig?.search,\n columnFilters: filterConfig?.columnFilters, onRowClick, onSort: sortConfig?.onSort,\n onFilter: filterConfig?.onFilter, toggleShowFilters, toggleShowSorts,\n onRemoveFilter: filterConfig?.onRemoveFilter, onClearFilter: filterConfig?.onClearFilter,\n rowOptions, checkboxConfig, onResetFilter: filterConfig?.onResetFilter, isColumnConfigurable,\n onAddColumnClick, onEditColumnClick, onDeleteColumnClick, onRowTooltipClick, tooltiptext,\n cascadingTableConfig, activeInlineEdit, setActiveInlineEdit, originalsOnly,\n disableOptionsForRowIndex, getFullRowDataOnClick, selectedRowId, getSumOfNextVisibleColumnWidth,\n onRowEdit, inlineEditColumns, tableActions, dndSortableUtils, withSortable, withDraggable,\n onCascadingRowExpand, getInnerRowData, tableHeaders, maxLevel, expandedRows, setExpandedRows,\n showNewItem, rawData, dragConfig, rowWrapper, rowLinkConfig, isCellClickDisabled,\n asyncRowOptionsFilter: filterConfig?.asyncRowOptionsFilter, handleUpdateColumnWidth,\n multiSelectConfig, headerContextOptions, showHeaderContextOptions, setShowHeaderContextOptions: setShowHeaderContextOptions as ((value: string | null) => void) | undefined,\n headerDivWidth, showDataTypeIcon, rowAdditionalActions, hoverConfig, rowAdditionalActionsWidth,\n cellEditing, cellEditingValue, openMasterDataModal, closeMasterDataModal, selectedMasterData,\n clearSelectedMasterData, allowInlineEdit, openCurrencyDropdown, closeCurrencyDropdown,\n currencyDropdownConfig, selectedCurrenciesMap, setCurrencyForCell, getCurrencyForCell,\n pendingEdits, addPendingEdit, removePendingEdit, getPendingEdit, hasPendingEdit,\n clearAllPendingEdits, saveAllPendingEdits, clearRowPendingEdits, saveRowPendingEdits,\n pendingEditsCount, scrollToCell, onFieldOperationFlow, fieldOperationLoading, validateAllPendingEdits,\n }}\n >\n {showHeader ? (\n <div\n ref={headerDivRef}\n className={`mb-2 flex w-full min-w-0 gap-2 dark:bg-black-800 ${\n headerDivWidth < FIRST_BREAKPOINT ? 'flex-col items-stretch' : 'flex-row items-center'\n }`}\n >\n <div\n className={`flex items-center gap-x-2 gap-y-1 ${\n headerDivWidth < FIRST_BREAKPOINT ? 'w-full flex-wrap' : ''\n } ${headerConfig?.content ? 'min-w-0 flex-1' : 'shrink-0'}`}\n >\n {headerConfig?.content ? (\n <div className={`min-w-0 ${headerDivWidth < FIRST_BREAKPOINT ? 'w-full' : 'flex-1'}`}>\n {headerConfig.content}\n </div>\n ) : null}\n {showRecordCount ? (\n <div className='flex items-center gap-1.5 shrink-0'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width='16'\n height='16'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='text-neutral-500 dark:text-neutral-400 flex-shrink-0'\n aria-hidden\n >\n <ellipse cx='12' cy='5' rx='9' ry='3' />\n <path d='M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5' />\n <path d='M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9' />\n <path d='M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4' />\n </svg>\n <Typography size='small' variant='semibold' appearance='title'>\n {(totalItems ?? data.length).toLocaleString()}\n </Typography>\n <Typography size='small' variant='regular' appearance='subtitle'>\n total records\n </Typography>\n </div>\n ) : headerConfig?.preContent ? (\n <div className='flex min-w-0 shrink-0 justify-start items-center'>{headerConfig.preContent}</div>\n ) : null}\n </div>\n <div\n className={`flex min-w-0 items-center justify-end ${\n headerDivWidth < FIRST_BREAKPOINT ? 'w-full' : headerConfig?.content ? 'shrink-0' : 'flex-1'\n } ${headerDivWidth < SECOND_BREAKPOINT ? 'flex-col' : 'flex-row'} ${\n headerConfig?.postContent ? 'gap-2' : ''\n }`}\n >\n {showRecordCount && headerConfig?.preContent ? (\n <div className='flex w-full justify-start items-center'>{headerConfig.preContent}</div>\n ) : null}\n <div\n className={`flex justify-end items-center min-w-0 ${\n headerDivWidth < SECOND_BREAKPOINT ? 'w-full' : headerDivWidth < FIRST_BREAKPOINT ? 'w-full' : ''\n }`}\n >\n {TableHeaderComponent}\n </div>\n {headerConfig?.postContent ? (\n <div className={`flex justify-end items-center ${headerDivWidth < SECOND_BREAKPOINT ? 'w-full' : ''}`}>\n {headerConfig.postContent}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n {headerConfig?.showDivider ? <div className='border-b pb-2 w-full dark:bg-black-800' /> : null}\n {showFilters || showSorts ? (\n <div className='flex justify-between items-center pb-4 dark:bg-black-800'>\n <div className='flex gap-2 items-center'>\n {showSorts && tableConfig?.renderSortItem ? (\n tableConfig.renderSortItem({ sort: sortConfig?.columnSort, onRemoveSort: handleRemoveSort, onSort: sortConfig?.onSort, tableHeaders, data })\n ) : null}\n {showFilters && showSorts && sortConfig?.columnSort?.field !== '' ? (\n <div className='h-8 w-[1px] flex-shrink-0 bg-neutral-200' />\n ) : null}\n {showFilters ? (\n <div className='flex gap-2 items-center'>\n {(isFilters || filterConfig?.onResetFilter) && tableConfig?.renderActiveFilters && (\n tableConfig.renderActiveFilters({\n filters: filterConfig?.columnFilters, onRemoveFilter: handleActiveRemoveFilter,\n onClearFilter: handleActiveClearFilter, onResetFilter: filterConfig?.onResetFilter,\n onFilter: filterConfig?.onFilter, tableHeaders, columnFilters: filterConfig?.columnFilters,\n modelName, enableMasterDataEnumSuggestions, noSpacing: true, notionStyle: filterConfig?.notionStyle, context: filterConfig?.context, data: enumSuggestionsData ?? data,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId\n })\n )}\n {tableConfig?.renderFilterButtons && (\n tableConfig.renderFilterButtons({\n onClearFilter: filterConfig?.onClearFilter, onClose: toggleDataFilterModal,\n modelName, enableMasterDataEnumSuggestions, defaultFilterColumn: newFilterColumn, resetDefaultFilterColumn: () => setNewFilterColumn(null),\n column: dataFilterColumn, onFilter: filterConfig?.onFilter, tableHeaders,\n columnFilters: filterConfig?.columnFilters, data: enumSuggestionsData ?? data, notionStyle: filterConfig?.notionStyle,\n context: filterConfig?.context,\n agreementCategoryId,\n agreementDomainId,\n agreementId,\n modificationId,\n lineItemRowId,\n })\n )}\n </div>\n ) : null}\n </div>\n </div>\n ) : null}\n {floatingBarConfig && Object.keys(floatingBarConfig).length ? <FloatingBar {...floatingBarConfig} /> : null}\n {!showHeader && showRecordCount ? (\n <div className='flex items-center gap-1.5 mb-2'>\n <svg\n xmlns='http://www.w3.org/2000/svg'\n width='16'\n height='16'\n viewBox='0 0 24 24'\n fill='none'\n stroke='currentColor'\n strokeWidth='2'\n strokeLinecap='round'\n strokeLinejoin='round'\n className='text-neutral-500 dark:text-neutral-400 flex-shrink-0'\n aria-hidden\n >\n <ellipse cx='12' cy='5' rx='9' ry='3' />\n <path d='M3 5v4c0 1.66 4.03 3 9 3s9-1.34 9-3V5' />\n <path d='M3 9v4c0 1.66 4.03 3 9 3s9-1.34 9-3V9' />\n <path d='M3 13v4c0 1.66 4.03 3 9 3s9-1.34 9-3v-4' />\n </svg>\n <Typography size='small' variant='semibold' appearance='title'>\n {(totalItems ?? data.length).toLocaleString()}\n </Typography>\n <Typography size='small' variant='regular' appearance='subtitle'>\n total records\n </Typography>\n </div>\n ) : !showHeader && headerConfig?.preContent ? (\n <div className='flex items-center mb-2'>{headerConfig.preContent}</div>\n ) : null}\n <div\n ref={tableContainerRef}\n className={`w-full ${paginationConfig ? `h-auto` : tableHeightClass} rounded-lg relative border overflow-x-hidden`}\n style={{\n ...(paginationConfig\n ? { height: data?.length > 0 ? `${(data?.length + 1) * 41 + 4}px` : '350px' }\n : { height: fallbackHeight }),\n ...style,\n }}\n >\n {enableRootDrag ? (\n tableView\n ) : (\n <DndContext sensors={sensors} onDragEnd={handleDragEnd} onDragStart={handleDragStart} onDragCancel={handleDragCancel} collisionDetection={closestCorners}>\n {tableView}\n {activeItem\n ? createPortal(\n <DragOverlay adjustScale={true} dropAnimation={dropAnimation}>\n <table {...getTableProps()} className='w-full text-sm text-left text-neutral-500 dark:text-neutral-200 bg-white dark:bg-black-700 table-auto border-collapse'>\n <tbody {...getTableBodyProps()} className='bg-transparent divide-y divide-neutral-200'>\n {void prepareRow(activeItem)}\n <Row key={(activeItem.original as Record<string, unknown>).id as string} row={activeItem as never} index={rows?.findIndex((item) => item.id === (activeItem.original as Record<string, unknown>).id)} />\n </tbody>\n </table>\n </DragOverlay>,\n document.getElementById('full-screen-container') || document.body,\n )\n : null}\n </DndContext>\n )}\n </div>\n {paginationConfig && tableConfig?.renderPagination ? tableConfig.renderPagination(paginationConfig) : null}\n\n {tableConfig?.renderMasterDataModal && tableConfig.renderMasterDataModal({\n isVisible: !!masterDataModalConfig, onSelected: handleMasterDataSelected, onClose: closeMasterDataModal,\n masterDataColumnName: masterDataModalConfig?.masterDataColumnName, masterDataFilters: masterDataModalConfig?.masterDataFilters,\n masterDataName: masterDataModalConfig?.masterDataName, masterDataId: masterDataModalConfig?.masterDataName, showFilters: true,\n })}\n\n <CurrencyDropdownPortal config={currencyDropdownConfig} onClose={closeCurrencyDropdown} />\n\n <PendingEditsFloatingBar\n pendingEditsCount={pendingEditsCount}\n pendingEditsList={pendingEditsList}\n rowsWithPendingEdits={rowsWithPendingEdits}\n fieldOperationLoading={fieldOperationLoading}\n onClearAll={clearAllPendingEdits}\n onSaveAll={saveAllPendingEdits}\n onScrollToCell={scrollToCell}\n />\n </TableContext.Provider>\n );\n },\n);\n"],"names":["AutoSizer","_AutoSizer","FIRST_BREAKPOINT","SECOND_BREAKPOINT","CREATE_COLUMN_LABEL","getEmptyButtonId","label","index","InfiniteTable","React","tableKey","searchConfig","filterConfig","sortConfig","headerConfig","hoverConfig","columns","modelName","enableMasterDataEnumSuggestions","agreementCategoryId","agreementDomainId","agreementId","modificationId","lineItemRowId","enumSuggestionsData","data","onRowClick","showHeader","tableActions","rowOptions","hideRowOptionWidth","checkboxUtilities","isLoading","onScroll","onScrolling","isColumnConfigurable","onAddColumnClick","emptyMessage","noDataWidget","buttons","onEditColumnClick","onDeleteColumnClick","onRowTooltipClick","tooltiptext","cascadingTableConfig","originalsOnly","disableOptionsForRowIndex","tableHeightClass","getFullRowDataOnClick","selectedRowId","onRowEdit","onBulkRowEdit","inlineEditColumns","isResizable","paginationConfig","dndSortableUtils","multipleContexts","withSortable","withDraggable","enableRootDrag","pageSize","onCascadingRowExpand","totalItems","showRecordCount","getInnerRowData","maxLevel","expandedRows","setExpandedRows","showNewItem","rawData","dragConfig","isOverlayLoading","style","floatingBarConfig","rowWrapper","rowLinkConfig","isCellClickDisabled","setHeaderOnParent","optimizeTable","multiSelectConfig","headerContextOptions","showHeaderContextOptions","setShowHeaderContextOptions","showDataTypeIcon","rowAdditionalActions","rowAdditionalActionsWidth","setVisibleHeaders","cellEditing","cellEditingValue","allowInlineEdit","onFieldOperationFlow","fieldOperationLoading","onTableActionsReady","onPendingEditsChange","onCancelPendingEdits","tableConfig","useTableConfig","isSearch","isFilters","isAnyFilters","isCheckbox","defaultTableView","selectedTableView","setSelectedTableView","useState","showFilters","setShowFilters","showSorts","setShowSorts","newFilterColumn","setNewFilterColumn","tableHeaders","setTableHeaders","isEmpty","showHeaderOptions","setShowHeaderOptions","showDataFilterModal","setShowDataFilterModal","dataFilterColumn","setDataFilterColumn","isAllChecked","setIsAllChecked","isShowSortArrowAsc","setIsShowSortArrowAsc","isShowSortArrowDesc","setIsShowSortArrowDesc","sortableListByContext","setSortableListByContext","activeItem","setActiveItem","dndLoading","setDndLoading","headerDivWidth","setHeaderDivWidth","headerDivRef","useRef","tableContainerRef","tableContainerSize","setTableContainerSize","activeInlineEdit","setActiveInlineEdit","masterDataModalConfig","setMasterDataModalConfig","selectedMasterData","setSelectedMasterData","currencyDropdownConfig","setCurrencyDropdownConfig","selectedCurrenciesMap","setSelectedCurrenciesMap","hasAppliedInitialFilters","userClearedFiltersRef","selectedTableViewRef","tableConfigRef","columnsRef","filterConfigRef","headerGroupsRef","resolveTableViewRef","computeListRef","pendingEdits","setPendingEdits","addPendingEdit","useCallback","rowId","columnKey","edit","prev","existingEdit","resolvedValidationError","column","col","result","validateCellValue","hasPendingEdits","rowEdits","useEffect","removePendingEdit","newEdits","_removed","rest","getPendingEdit","hasPendingEdit","clearAllPendingEdits","scrollToCell","rowIndex","colIndex","cellElement","scrollContainer","scrollLeft","i","validateAllPendingEdits","editsToValidate","hasErrors","firstError","updatedEdits","errorTypes","getValidationToastMessage","hasRequired","hasFormat","saveAllPendingEdits","row","editedRows","originalRow","updatedRow","editedFields","clearRowPendingEdits","k","saveRowPendingEdits","editedRowData","n","pendingEditsCount","useMemo","total","pendingEditsList","list","rowsWithPendingEdits","rowsMap","a","b","openMasterDataModal","config","closeMasterDataModal","handleMasterDataSelected","value","clearSelectedMasterData","openCurrencyDropdown","closeCurrencyDropdown","setCurrencyForCell","cellKey","currency","getCurrencyForCell","fallbackHeight","pxMatch","calcMatch","emptySwitchProps","translatedCreateColumnLabel","defaultEmptyText","resolvedEmptyText","loaderData","cellLoaders","tableLoaders","visibleColumns","header","table","useTable","useResizeColumns","getTableProps","getTableBodyProps","headerGroups","prepareRow","rows","headerKeys","groups","checkboxConfig","useCheckbox","sensors","useSensors","useSensor","MouseSensor","TouchSensor","dropAnimation","computeList","acc","contextKey","e","handleDragStart","event","active","item","handleDragEnd","over","newState","handleDragCancel","toggleHeaderOption","key","toggleDataFilterModal","handleRemoveSort","toggleShowFilters","toggleShowSorts","lastNonStickyColumnIndex","reverseHeaders","getSumOfNextVisibleColumnWidth","currentIndex","sum","resolveTableView","userId","handleUpdateColumnWidth","columnName","width","updatedTableView","currentView","hasViewFilters","hasConfigFilters","handleActiveRemoveFilter","handleActiveClearFilter","mergeViewColumnsWithTableColumns","resizeObserver","entries","height","tableHeader","jsx","Head","tableView","jsxs","Fragment","NoDataFoundWidgets","NoDataFound","Button","Add2Icon","button","effectiveWidth","effectiveHeight","Body","tableWrapper","forwardRef","props","ref","tableBodyWrapper","TableHeaderComponent","TableContext","Typography","FloatingBar","DndContext","closestCorners","createPortal","DragOverlay","Row","CurrencyDropdownPortal","PendingEditsFloatingBar"],"mappings":"08BAwBMA,GAAYC,GAAAA,UAKZC,EAAmB,IACnBC,GAAoB,IACpBC,GAAsB,gBAEtBC,GAAmB,CAACC,EAAeC,IAEhC,gBADMD,EAAM,YAAA,EAAc,KAAA,EAAO,QAAQ,OAAQ,GAAG,EAAE,QAAQ,eAAgB,EAAE,GACxDC,CAAK,GAGzBC,GAAgBC,EAAM,KACjC,CAAC,CACC,SAAAC,EACA,aAAAC,EAAe,CAAE,OAAQ,GAAI,aAAc,IAAM,KAAM,iBAAkB,EAAA,EACzE,aAAAC,EAAe,CACb,cAAe,CAAA,EACf,SAAU,IAAM,KAChB,eAAgB,IAAM,KACtB,cAAe,IAAM,KACrB,cAAe,IAAM,QAAQ,QAAQ,EAAE,EACvC,sBAAuB,IAAM,QAAQ,QAAQ,CAAA,CAAE,CAAA,EAEjD,WAAAC,EAAa,CAAE,OAAQ,IAAM,KAAM,WAAY,CAAE,MAAO,GAAI,MAAO,EAAA,EAAM,aAAc,IAAM,IAAA,EAC7F,aAAAC,EAAe,CACb,iBAAkB,KAClB,YAAa,GACb,UAAW,GACX,WAAY,GACZ,cAAe,GACf,qBAAsB,GACtB,QAAS,KACT,YAAa,KACb,WAAY,KACZ,UAAW,GACX,YAAa,EAAA,EAEf,YAAAC,GAAc,KACd,QAAAC,EACA,UAAAC,EACA,gCAAAC,EAAkC,GAClC,oBAAAC,EACA,kBAAAC,EACA,YAAAC,EACA,eAAAC,EACA,cAAAC,EACA,oBAAAC,GACA,KAAAC,EAAO,CAAA,EACP,WAAAC,GACA,WAAAC,GACA,aAAAC,GACA,WAAAC,EACA,mBAAAC,GACA,kBAAAC,EACA,UAAAC,GAAY,GACZ,SAAAC,GACA,YAAAC,GACA,qBAAAC,GACA,iBAAAC,GACA,aAAAC,GACA,aAAAC,GACA,QAAAC,GACA,kBAAAC,GACA,oBAAAC,GACA,kBAAAC,GACA,YAAAC,GACA,qBAAAC,GACA,cAAAC,GACA,0BAAAC,GACA,iBAAAC,GAAmB,wBACnB,sBAAAC,GACA,cAAAC,GAAgB,KAChB,UAAAC,EACA,cAAAC,EACA,kBAAAC,GACA,YAAAC,GAAc,GACd,iBAAAC,GACA,iBAAAC,GACA,iBAAAC,GACA,aAAAC,GACA,cAAAC,GACA,eAAAC,GACA,SAAAC,GAAW,GACX,qBAAAC,GACA,WAAAC,GACA,gBAAAC,GAAkB,GAClB,gBAAAC,GACA,SAAAC,GACA,aAAAC,GAAe,CAAA,EACf,gBAAAC,GACA,YAAAC,GACA,QAAAC,GACA,WAAAC,GACA,iBAAAC,GACA,MAAAC,GAAQ,CAAA,EACR,kBAAAC,GACA,WAAAC,GACA,cAAAC,GACA,oBAAAC,GACA,kBAAAC,GACA,cAAAC,GAAgB,GAChB,kBAAAC,GACA,qBAAAC,GACA,yBAAAC,GACA,4BAAAC,GACA,iBAAAC,GAAmB,GACnB,qBAAAC,GACA,0BAAAC,GACA,kBAAAC,GACA,YAAAC,GAAc,KACd,iBAAAC,GAAmB,KACnB,gBAAAC,GAAkB,GAClB,qBAAAC,GACA,sBAAAC,EAAwB,KACxB,oBAAAC,GACA,qBAAAC,GACA,qBAAAC,CAAA,IACiB,CACjB,MAAMC,EAAcC,GAAAA,eAAA,EAEdC,GAAW,EAAQtF,GAAc,OAEjCuF,GAAYtF,GAAc,eAAe,OAAS,EAClDuF,EAAeF,IAAYC,GAE3BE,GAAa,EAAQrE,EAErBsE,EAAmBN,GAAa,eAAerF,CAAkB,GAAK,KACtE,CAAC4F,EAAmBC,CAAoB,EAAIC,EAAAA,SAA4BH,GAAoB,IAAI,EAChG,CAACI,GAAaC,EAAc,EAAIF,EAAAA,SAAS,EAAK,EAC9C,CAACG,GAAWC,EAAY,EAAIJ,EAAAA,SAAS,EAAK,EAC1C,CAACK,GAAiBC,EAAkB,EAAIN,EAAAA,SAAkB,IAAI,EAC9D,CAACO,EAAcC,EAAe,EAAIR,EAAAA,SAAoBxF,CAAO,EAC7DiG,IAAWxF,EAAK,SAAW,GAAK,CAACsF,EAAa,SAAW,CAAC/E,GAC1D,CAACkF,GAAmBC,EAAoB,EAAIX,EAAAA,SAAwB,IAAI,EACxE,CAACY,GAAqBC,EAAsB,EAAIb,EAAAA,SAAkB,EAAK,EACvE,CAACc,GAAkBC,EAAmB,EAAIf,EAAAA,SAAkB,IAAI,EAChE,CAACgB,GAAcC,EAAe,EAAIjB,EAAAA,SAAS,EAAK,EAChD,CAACkB,GAAoBC,EAAqB,EAAInB,EAAAA,SAAwB,IAAI,EAC1E,CAACoB,GAAqBC,EAAsB,EAAIrB,EAAAA,SAAwB,IAAI,EAC5E,CAACsB,GAAuBC,EAAwB,EAAIvB,EAAAA,SAAkC,CAAA,CAAE,EACxF,CAACwB,EAAYC,EAAa,EAAIzB,EAAAA,SAAuC,IAAI,EACzE,CAAC0B,GAAYC,EAAa,EAAI3B,EAAAA,SAAkB,EAAK,EACrD,CAAC4B,EAAgBC,EAAiB,EAAI7B,EAAAA,SAAS,CAAC,EAChD8B,GAAeC,EAAAA,OAAuB,IAAI,EAC1CC,GAAoBD,EAAAA,OAAuB,IAAI,EAC/C,CAACE,GAAoBC,EAAqB,EAAIlC,EAAAA,SAAS,CAAE,MAAO,EAAG,OAAQ,EAAG,EAC9E,CAACmC,GAAkBC,CAAmB,EAAIpC,EAAAA,SAAsD,IAAI,EACpG,CAACqC,EAAuBC,EAAwB,EAAItC,EAAAA,SAAwC,IAAI,EAChG,CAACuC,GAAoBC,EAAqB,EAAIxC,EAAAA,SAAwD,IAAI,EAC1G,CAACyC,GAAwBC,EAAyB,EAAI1C,EAAAA,SAAyC,IAAI,EACnG,CAAC2C,GAAuBC,CAAwB,EAAI5C,EAAAA,SAAiC,CAAA,CAAE,EACvF6C,GAA2Bd,EAAAA,OAAO,EAAK,EACvCe,GAAwBf,EAAAA,OAAO,EAAK,EAEpCgB,GAAuBhB,EAAAA,OAAOjC,CAAiB,EACrDiD,GAAqB,QAAUjD,EAC/B,MAAMkD,GAAiBjB,EAAAA,OAAOxC,CAAW,EACzCyD,GAAe,QAAUzD,EACzB,MAAM0D,GAAalB,EAAAA,OAAOvH,CAAO,EACjCyI,GAAW,QAAUzI,EACrB,MAAM0I,GAAkBnB,EAAAA,OAAO3H,CAAY,EAC3C8I,GAAgB,QAAU9I,EAC1B,MAAM+I,GAAkBpB,EAAAA,OAAyB,IAAI,EAC/CqB,GAAsBrB,EAAAA,OAAyB,KAAO,CAAA,EAAiB,EACvEsB,GAAiBtB,EAAAA,OAAsB,KAAO,CAAA,EAAG,EAEjD,CAACuB,EAAcC,CAAe,EAAIvD,EAAAA,SAA0B,CAAA,CAAE,EAE9DwD,GAAiBC,EAAAA,YACrB,CAACC,EAAeC,EAAmBC,IAAuB,CACxDL,EAAiBM,GAAS,CACxB,MAAMC,EAAeD,EAAKH,CAAK,IAAIC,CAAS,EAC5C,IAAII,EAAqDH,EAAK,gBAC9D,GAAIG,IAA4B,OAAW,CACzC,MAAMC,EAASzD,EAAa,KAAM0D,GAAQA,EAAI,MAAQN,CAAS,EAC/D,GAAIK,EAAQ,CACV,MAAME,EAASC,GAAAA,kBAAkBP,EAAK,MAAOI,CAAkD,EAC/FD,EAA2BG,EAAO,QAAwC,KAA7BA,EAAO,OAAS,SAC/D,MACEH,EAA0BD,GAAc,iBAAmB,IAE/D,CACA,MAAO,CAAE,GAAGD,EAAM,CAACH,CAAK,EAAG,CAAE,GAAIG,EAAKH,CAAK,GAAK,CAAA,EAAK,CAACC,CAAS,EAAG,CAAE,GAAGC,EAAM,gBAAiBG,GAA2B,IAAA,EAAO,CAClI,CAAC,CACH,EACA,CAACxD,CAAY,CAAA,EAGT6D,GAAkBX,EAAAA,YAAY,IAC3B,OAAO,OAAOH,CAAY,EAAE,KAAMe,GAAa,OAAO,KAAKA,CAAQ,EAAE,OAAS,CAAC,EACrF,CAACf,CAAY,CAAC,EAEjBgB,EAAAA,UAAU,IAAM,CACVlF,IAAqBA,GAAoB,CAAE,eAAAoE,GAAiJ,gBAAAY,GAAiB,CACnN,EAAG,CAAChF,GAAqBoE,GAAgBY,EAAe,CAAC,EAEzD,MAAMG,GAAoBd,EAAAA,YAAY,CAACC,EAAeC,IAAsB,CAC1EJ,EAAiBM,GAAS,CACxB,MAAMW,EAAW,CAAE,GAAGX,CAAA,EACtB,GAAIW,EAASd,CAAK,EAAG,CACnB,KAAM,CAAE,CAACC,CAAS,EAAGc,EAAU,GAAGC,CAAA,EAASF,EAASd,CAAK,EACrD,OAAO,KAAKgB,CAAI,EAAE,SAAW,EAAG,OAAOF,EAASd,CAAK,EACpDc,EAASd,CAAK,EAAIgB,CACzB,CACA,OAAOF,CACT,CAAC,CACH,EAAG,CAAA,CAAE,EAECG,GAAiBlB,EAAAA,YACrB,CAACC,EAAeC,IAAgDL,EAAaI,CAAK,IAAIC,CAAS,EAC/F,CAACL,CAAY,CAAA,EAGTsB,GAAiBnB,EAAAA,YACrB,CAACC,EAAeC,IAA+B,EAAQL,EAAaI,CAAK,IAAIC,CAAS,EACtF,CAACL,CAAY,CAAA,EAGTuB,GAAuBpB,EAAAA,YAAY,IAAM,CACzCtE,IACAG,GAAwB,OAAO,KAAKgE,CAAY,EAAE,OAAS,KAAwBA,CAAY,EACnGC,EAAgB,CAAA,CAAE,EAClBX,EAAyB,CAAA,CAAE,EAC3BR,EAAoB,IAAI,EAC1B,EAAG,CAACjD,EAAuBG,EAAsBgE,CAAY,CAAC,EAExDwB,EAAerB,EAAAA,YACnB,CAACC,EAAeC,EAAmBoB,IAAqB,CACtD,WAAW,IAAM,CACfxF,GAAa,gBAAgB,sBAAuB,CAAE,SAAAwF,CAAA,CAAU,EAChE,MAAMC,EAAWzE,EAAa,UAAW0D,GAAQA,EAAI,MAAQN,CAAS,EACtE,WAAW,IAAM,CACf,MAAMsB,EAAc,SAAS,cAAc,iBAAiBvB,CAAK,wBAAwBC,CAAS,IAAI,EACtG,GAAIsB,EACFA,EAAY,eAAe,CAAE,SAAU,SAAU,MAAO,SAAU,OAAQ,SAAU,UAC3ED,EAAW,EAAG,CACvB,MAAME,EAAkB,SAAS,cAAc,cAAc,EAC7D,GAAIA,EAAiB,CACnB,IAAIC,EAAa,EACjB,QAASC,EAAI,EAAGA,EAAIJ,EAAUI,IAAK,CACjC,MAAMnB,EAAM1D,EAAa6E,CAAC,EACrBnB,GAAK,SAAQkB,GAAclB,GAAK,OAAS,IAChD,CACAkB,EAAa,KAAK,IAAI,EAAGA,EAAa,GAAG,EACzCD,EAAgB,SAAS,CAAE,KAAMC,EAAY,SAAU,SAAU,CACnE,CACF,CACA/C,EAAoB,CAAE,MAAAsB,EAAO,UAAAC,EAAW,CAC1C,EAAG,GAAG,CACR,EAAG,GAAG,CACR,EACA,CAACpD,EAAchB,CAAW,CAAA,EAGtB8F,EAA0B5B,EAAAA,YAC7B6B,GAA8K,CAC7K,IAAIC,EAAY,GACZC,EAA0D,KAC9D,MAAMC,EAAgC,CAAA,EAChCC,MAAiB,IAEvB,cAAO,QAAQJ,CAAe,EAAE,QAAQ,CAAC,CAAC5B,EAAOW,CAAQ,IAAM,CAC7DoB,EAAa/B,CAAK,EAAI,CAAA,EACtB,OAAO,QAAQW,CAAQ,EAAE,QAAQ,CAAC,CAACV,EAAWC,CAAI,IAAM,CACtD,MAAMI,EAASzD,EAAa,KAAM0D,GAAQA,EAAI,MAAQN,CAAS,EACzDO,EAASC,GAAAA,kBAAkBP,EAAK,MAAOI,CAAkD,EAC1FE,EAAO,QAMVuB,EAAa/B,CAAK,EAAEC,CAAS,EAAI,CAAE,GAAGC,EAAM,gBAAiB,IAAA,GAL7D2B,EAAY,GACRrB,EAAO,OAAOwB,EAAW,IAAIxB,EAAO,KAAK,EACxCsB,IAAYA,EAAa,CAAE,MAAA9B,EAAO,UAAAC,CAAA,GACvC8B,EAAa/B,CAAK,EAAEC,CAAS,EAAI,CAAE,GAAGC,EAAM,gBAAiBM,EAAO,KAAA,EAIxE,CAAC,CACH,CAAC,EAEM,CAAE,UAAAqB,EAAW,aAAAE,EAAc,WAAAD,EAAY,WAAAE,CAAA,CAChD,EACA,CAACnF,CAAY,CAAA,EAGToF,GAA4BlC,cAAaiC,GAA4B,CACzE,MAAME,EAAcF,EAAW,IAAI,gBAAgB,EAC7CG,EAAYH,EAAW,MAAQE,EAAc,EAAI,GACvD,OAAIA,GAAeC,EAAkB,6FACjCD,EAAoB,iEACjB,6DACT,EAAG,CAAA,CAAE,EAECE,GAAsBrC,EAAAA,YAAY,IAAM,CAC5C,KAAM,CAAE,UAAA8B,EAAW,aAAAE,EAAc,WAAAD,EAAY,WAAAE,CAAA,EAAeL,EAAwB/B,CAAY,EAChG,GAAIiC,EAAW,CAGb,GAFAhC,EAAgBkC,CAAY,EAC5BlG,GAAa,mBAAmB,QAASoG,GAA0BD,CAAU,CAAC,EAC1EF,EAAY,CACd,MAAMT,EAAW9J,EAAK,UAAW8K,GAAiCA,EAAI,KAAOP,EAAY,KAAK,EAC9FV,EAAaU,EAAY,MAAOA,EAAY,UAAWT,CAAQ,CACjE,CACA,MACF,CAEA,MAAMiB,EAA6C,CAAA,EACnD,OAAO,QAAQ1C,CAAY,EAAE,QAAQ,CAAC,CAACI,EAAOW,CAAQ,IAAM,CAC1D,MAAM4B,EAAchL,EAAK,KAAM8K,GAAiCA,EAAI,KAAOrC,CAAK,EAChF,GAAIuC,EAAa,CACf,MAAMC,EAAa,CAAE,GAAGD,CAAA,EAClBE,EAAmE,CAAA,EACzE,OAAO,QAAQ9B,CAAQ,EAAE,QAAQ,CAAC,CAACV,EAAWC,CAAI,IAAM,CACtDsC,EAAWvC,CAAS,EAAIC,EAAK,MAC7BuC,EAAaxC,CAAS,EAAI,CAAE,MAAOC,EAAK,MAAO,KAAMA,EAAK,IAAA,CAC5D,CAAC,EACDoC,EAAW,KAAK,CAAE,GAAGE,EAAY,eAAgBC,EAAc,CACjE,CACF,CAAC,EAEGH,EAAW,OAAS,IAClBrJ,IAA6BqJ,CAAU,EAClCtJ,GAAWA,EAAU,KAAM,KAAM,KAAM,KAAM,KAAM,CAAE,OAAQ,GAAM,KAAMsJ,CAAA,CAAY,GAGhGzC,EAAgB,CAAA,CAAE,EAClBX,EAAyB,CAAA,CAAE,EAC3BR,EAAoB,IAAI,CAC1B,EAAG,CAACkB,EAAcrI,EAAMyB,EAAWC,EAAe0I,EAAyBM,GAA2Bb,EAAcvF,CAAW,CAAC,EAE1H6G,GAAuB3C,EAAAA,YAC1BC,GAAkB,CACjB,GAAIvE,EAAuB,OAC3B,MAAMkF,EAAWf,EAAaI,CAAK,EAC/BW,GAAY/E,GAAsBA,EAAqB,CAAE,CAACoE,CAAK,EAAGW,EAAU,EAChFd,EAAiBM,GAAS,CAAE,MAAM,EAAI,CAAE,GAAGA,CAAA,EAAQ,cAAO,EAAEH,CAAK,EAAU,CAAG,CAAC,EAC/Ed,EAA0BiB,GAAS,CAAE,MAAM,EAAI,CAAE,GAAGA,CAAA,EAAQ,cAAO,KAAK,CAAC,EAAE,QAASwC,GAAM,CAAMA,EAAE,WAAW,GAAG3C,CAAK,GAAG,GAAG,OAAO,EAAE2C,CAAC,CAAG,CAAC,EAAU,CAAG,CAAC,EACvJjE,EAAoB,IAAI,CAC1B,EACA,CAACjD,EAAuBG,EAAsBgE,CAAY,CAAA,EAGtDgD,GAAsB7C,EAAAA,YACzBC,GAAkB,CACjB,MAAMW,EAAWf,EAAaI,CAAK,EACnC,GAAI,CAACW,GAAY,OAAO,KAAKA,CAAQ,EAAE,SAAW,EAAG,OAErD,KAAM,CAAE,UAAAkB,EAAW,aAAAE,EAAc,WAAAD,EAAY,WAAAE,GAAeL,EAAwB,CAAE,CAAC3B,CAAK,EAAGW,EAAU,EACzG,GAAIkB,EAAW,CAGb,GAFAhC,EAAiBM,IAAU,CAAE,GAAGA,EAAM,CAACH,CAAK,EAAG+B,EAAa/B,CAAK,CAAA,EAAI,EACrEnE,GAAa,mBAAmB,QAASoG,GAA0BD,CAAU,CAAC,EAC1EF,EAAY,CACd,MAAMT,EAAW9J,EAAK,UAAW8K,GAAiCA,EAAI,KAAOP,EAAY,KAAK,EAC9FV,EAAaU,EAAY,MAAOA,EAAY,UAAWT,CAAQ,CACjE,CACA,MACF,CAEA,MAAMkB,EAAchL,EAAK,KAAM8K,GAAiCA,EAAI,KAAOrC,CAAK,EAChF,GAAI,CAACuC,EAAa,OAClB,MAAMC,EAAa,CAAE,GAAGD,CAAA,EAClBE,EAAmE,CAAA,EACzE,OAAO,QAAQ9B,CAAQ,EAAE,QAAQ,CAAC,CAACV,EAAWC,CAAI,IAAM,CACtDsC,EAAWvC,CAAS,EAAIC,EAAK,MAC7BuC,EAAaxC,CAAS,EAAI,CAAE,MAAOC,EAAK,MAAO,KAAMA,EAAK,IAAA,CAC5D,CAAC,EAED,MAAM2C,EAAgB,CAAE,GAAGL,EAAY,eAAgBC,CAAA,EAEnDxJ,EAAeA,EAAc,CAAC4J,CAAa,CAAC,EACvC7J,GAAWA,EAAU,KAAM,KAAM,KAAM,KAAM,KAAM,CAAE,OAAQ,GAAM,KAAM,CAAC6J,CAAa,EAAG,EAEnGhD,EAAiBM,GAAS,CAAE,MAAM2C,EAAI,CAAE,GAAG3C,CAAA,EAAQ,cAAO2C,EAAE9C,CAAK,EAAU8C,CAAG,CAAC,EAC/E5D,EAA0BiB,GAAS,CAAE,MAAM2C,EAAI,CAAE,GAAG3C,CAAA,EAAQ,cAAO,KAAK2C,CAAC,EAAE,QAASH,IAAM,CAAMA,GAAE,WAAW,GAAG3C,CAAK,GAAG,GAAG,OAAO8C,EAAEH,EAAC,CAAG,CAAC,EAAUG,CAAG,CAAC,EACvJpE,EAAoB,IAAI,CAC1B,EACA,CAACkB,EAAcrI,EAAMyB,EAAWC,EAAe0I,EAAyBM,GAA2Bb,EAAcvF,CAAW,CAAA,EAGxHkH,EAAoBC,EAAAA,QAAQ,IACzB,OAAO,OAAOpD,CAAY,EAAE,OAAO,CAACqD,EAAOtC,IAAasC,EAAQ,OAAO,KAAKtC,CAAQ,EAAE,OAAQ,CAAC,EACrG,CAACf,CAAY,CAAC,EAEjBgB,EAAAA,UAAU,IAAM,CACdjF,KAAuBoH,EAAoB,EAAGA,CAAiB,CACjE,EAAG,CAACA,EAAmBpH,EAAoB,CAAC,EAE5C,MAAMuH,GAAmBF,EAAAA,QAAQ,IAAM,CACrC,MAAMG,EAA2M,CAAA,EACjN,cAAO,QAAQvD,CAAY,EAAE,QAAQ,CAAC,CAACI,EAAOW,CAAQ,IAAM,CAC1D,MAAMU,EAAW9J,EAAK,UAAW8K,GAAiCA,EAAI,KAAOrC,CAAK,EAClF,OAAO,QAAQW,CAAQ,EAAE,QAAQ,CAAC,CAACV,EAAWC,CAAI,IAAM,CACtD,MAAMI,EAASzD,EAAa,KAAM0D,GAAQA,EAAI,MAAQN,CAAS,EAC/DkD,EAAK,KAAK,CAAE,MAAAnD,EAAO,UAAAC,EAAW,UAAWK,GAAQ,QAAUA,GAAQ,cAAgBL,EAAW,MAAOC,EAAK,MAAO,cAAeA,EAAK,cAAe,KAAMA,EAAK,KAAM,aAAcA,EAAK,aAAc,SAAAmB,CAAA,CAAU,CAClN,CAAC,CACH,CAAC,EACM8B,CACT,EAAG,CAACvD,EAAc/C,EAActF,CAAI,CAAC,EAE/B6L,GAAuBJ,EAAAA,QAAQ,IAAM,CACzC,MAAMK,MAAc,IACpB,cAAO,QAAQzD,CAAY,EAAE,QAAQ,CAAC,CAACI,EAAOW,CAAQ,IAAM,CAC1D,MAAMU,EAAW9J,EAAK,UAAW8K,GAAiCA,EAAI,KAAOrC,CAAK,EAClFqD,EAAQ,IAAIrD,EAAO,CAAE,MAAAA,EAAO,SAAAqB,EAAU,UAAW,OAAO,KAAKV,CAAQ,EAAE,MAAA,CAAQ,CACjF,CAAC,EACM,MAAM,KAAK0C,EAAQ,OAAA,CAAQ,EAAE,KAAK,CAACC,EAAGC,IAAMD,EAAE,SAAWC,EAAE,QAAQ,CAC5E,EAAG,CAAC3D,EAAcrI,CAAI,CAAC,EAEjBiM,GAAsBzD,EAAAA,YAAa0D,GAAmC7E,GAAyB6E,CAAM,EAAG,EAAE,EAC1GC,GAAuB3D,EAAAA,YAAY,IAAMnB,GAAyB,IAAI,EAAG,CAAA,CAAE,EAE3E+E,GAA2B5D,EAAAA,YAC/B,CAAC6D,EAAgBvB,IAAkB,CACjCvD,GAAsB,CAAE,MAAA8E,EAAO,UAAWvB,CAAA,CAAK,EAC3C1D,GAAuB,YAAYA,EAAsB,WAAWiF,EAAOvB,CAAG,EAClFqB,GAAA,CACF,EACA,CAAC/E,EAAuB+E,EAAoB,CAAA,EAGxCG,GAA0B9D,EAAAA,YAAY,IAAMjB,GAAsB,IAAI,EAAG,CAAA,CAAE,EAE3EgF,GAAuB/D,EAAAA,YAAa0D,GAAoCzE,GAA0ByE,CAAM,EAAG,EAAE,EAC7GM,GAAwBhE,EAAAA,YAAY,IAAMf,GAA0B,IAAI,EAAG,CAAA,CAAE,EAE7EgF,GAAqBjE,EAAAA,YAAY,CAACkE,EAAiBC,IAAqB,CAC5EhF,EAA0BiB,IAAU,CAAE,GAAGA,EAAM,CAAC8D,CAAO,EAAGC,CAAA,EAAW,CACvE,EAAG,CAAA,CAAE,EAECC,GAAqBpE,EAAAA,YACxBkE,GAAwChF,GAAsBgF,CAAO,EACtE,CAAChF,EAAqB,CAAA,EAGlBmF,GAAiBpB,EAAAA,QAAQ,IAAM,CACnC,MAAMqB,EAAUxL,GAAiB,MAAM,eAAe,EACtD,GAAIwL,EAAS,OAAOA,EAAQ,CAAC,EAC7B,MAAMC,EAAYzL,GAAiB,MAAM,oBAAoB,EAC7D,GAAIyL,EAAW,OAAOA,EAAU,CAAC,EAAE,QAAQ,UAAW,MAAM,EAAE,QAAQ,OAAQ,GAAG,CAEnF,EAAG,CAACzL,EAAgB,CAAC,EAEf0L,GAAmB,CACvB,QAAAxH,GACA,UAAWd,EACX,qBAAAhE,GACA,cAAeC,GACf,aAAAC,GACA,QAAAE,GACA,aAAAD,EAAA,EAEIoM,GAA8B3I,GAAa,IAAI3F,EAAmB,GAAKA,GACvEuO,GAAmBxI,EAAe,mBAAqB9D,IAAgB,gBACvEuM,GAAoB,OAAOD,IAAqB,SAAY5I,GAAa,IAAI4I,EAAgB,GAAKA,GAAoBA,GAEtHE,GAAa,CAAE,YAAa,EAAA,EAC5BC,GAAc,IAAI,MAAM,CAAC,EAAE,KAAKD,EAAU,EAC1CE,GAAe,IAAI,MAAMnL,EAAQ,EAAE,KAAKiL,EAAU,EAElDG,EAAiB9B,EAAAA,QAAQ,IAAMnG,EAAa,OAAQkI,GAAW,EAAQA,GAAQ,OAAQ,EAAG,CAAClI,CAAY,CAAC,EAExGmI,GAAQC,GAAAA,SACZ,CACE,QAASrK,GAAgBkK,EAAiBjI,EAC1C,KAAM,CAAC,GAAGtF,EAAM,GAAIO,GAAaP,GAAM,OAASqN,GAAcC,GAAgB,EAAG,EACjF,cAAe,CAAE,SAAU,IAAK,MAAO,IAAK,SAAU,MAAA,CAAO,EAE/DK,GAAAA,gBAAA,EAGI,CAAE,cAAAC,GAAe,kBAAAC,GAAmB,aAAAC,GAAc,WAAAC,GAAY,KAAAC,GAASP,GAC7EvF,GAAgB,QAAU4F,GAE1B,MAAMG,GAAa,KAAK,UAAUH,GAAa,CAAC,GAAG,SAAS,IAAKN,GAAYA,GAA+C,MAAM,CAAC,EACnInE,EAAAA,UAAU,IAAM,CACd,GAAIxF,GAAmB,CACrB,MAAMqK,EAAShG,GAAgB,QAC/BrE,KAAoBqK,IAAS,CAAC,GAAG,SAAS,IAAKV,GAAWA,GAAQ,MAAgB,GAAK,EAAE,CAC3F,CACF,EAAG,CAACS,GAAYpK,EAAiB,CAAC,EAElC,KAAM,CAAE,eAAAsK,EAAA,EAAmBC,eAAY,CACrC,KAAAJ,EACA,WAAY1N,GAAmB,WAC/B,mBAAoBA,GAAmB,mBACvC,wBAAyBA,GAAmB,wBAC5C,QAAAsC,GACA,aAAcoD,GACd,cAAe1F,GAAmB,cAClC,iBAAkBA,GAAmB,gBAAA,CACtC,EAEK+N,GAAUC,EAAAA,WACdC,EAAAA,UAAUC,EAAAA,YAAa,CAAE,qBAAsB,CAAE,SAAU,CAAA,EAAK,EAChED,EAAAA,UAAUE,EAAAA,YAAa,CAAE,qBAAsB,CAAE,SAAU,CAAA,EAAK,CAAA,EAG5DC,GAA+B,CAAE,OAAQ,sCAAuC,SAAU,EAAA,EAEhG,SAASC,IAAc,CACrB,MAAI,CAAC5M,IAAkB,QAAU,CAACC,GAAqBgM,EAChDjM,GAAiB,OAAO,CAAC6M,EAA8BC,KAC5DD,EAAIC,CAAU,EAAIb,EAAK,OAAQc,GAAOA,EAAE,UAAsC,OAASD,CAAU,EAC1FD,GACN,CAAA,CAAE,CACP,CACAxG,GAAe,QAAUuG,GAEzB,MAAMI,GAAmBC,GAA0B,CACjD,KAAM,CAAE,OAAAC,GAAWD,EACnBxI,GAAcwH,EAAK,KAAMkB,GAAUA,EAAK,UAAsC,KAAOD,GAAQ,EAAE,GAAK,IAAI,CAC1G,EAEME,GAAiBH,GAAwB,CAC7C,KAAM,CAAE,OAAAC,EAAQ,KAAAG,CAAA,EAASJ,EACpBI,IACDtN,IAAkB,iBACpBA,GAAiB,gBAAgBmN,EAAQG,EAAM/I,GAAwBgJ,GAAsC,CAC3G/I,GAAyB+I,CAAmC,EAC5D3I,GAAc,EAAI,EAClB5E,GAAiB,gBAAgB,CAC/B,UAAWmN,EAAO,GAClB,UAAWG,EAAK,GAChB,YAAcH,EAAO,KAAK,SAAqC,KAC/D,YAAcG,EAAK,KAAK,SAAqC,KAC7D,YAAaC,EACb,GAAI,IAAM3I,GAAc,EAAK,CAAA,CAC9B,CACH,CAAC,EAEHF,GAAc,IAAI,EACpB,EAEM8I,GAAmB,IAAM9I,GAAc,IAAI,EAE3C+I,GAAsBC,GAAgB,CACtC,CAACpQ,GAAY,QAAU,CAACD,GAAc,UACXuG,GAA3BD,KAAsB+J,EAA0B,KAC1BA,CAD8B,CAE1D,EAEMC,GAAyBzG,GAAiB,CAC9ClD,GAAoBkD,CAAG,EACvBpD,GAAuB,CAACD,EAAmB,EAC3CD,GAAqB,IAAI,CAC3B,EAEMgK,GAAmBlH,EAAAA,YAAY,IAAM,CACrCpJ,GAAY,aAAcA,EAAW,aAAA,EAChCA,GAAY,QAAQA,EAAW,OAAO,GAAI,EAAE,CACvD,EAAG,CAACA,CAAU,CAAC,EAETuQ,GAAoBnH,EAAAA,YAAY,CAACQ,EAAe,OAAS,CAC7D3D,GAAmB2D,CAAG,EACtB/D,GAAe2D,GAAQI,EAAM,GAAO,CAACJ,CAAI,CAC3C,EAAG,CAAA,CAAE,EACCgH,GAAkBpH,EAAAA,YAAY,IAAMrD,MAAqB,CAACyD,CAAI,EAAG,EAAE,EAEnEiH,GAA2B,IAAM,CACrC,MAAMC,EAAkBhC,GAAa,CAAC,GAAG,SAAuD,OAAQN,GAAWA,GAAQ,UAAY,EAAK,EAC5I,QAASrD,EAAI,EAAGA,EAAI2F,EAAe,OAAQ3F,IACzC,GAAI2F,EAAe3F,CAAC,EAAE,cAAeA,EAAI,EAE3C,OAAO2F,EAAe,OAAS,CACjC,EAEMC,GAAiCvH,EAAAA,YACpCwH,GAAyB,CACxB,IAAIC,EAAM,EACV,QAAS9F,EAAI6F,EAAe,EAAG7F,EAAIoD,EAAe,OAAQpD,IACpDoD,EAAepD,CAAC,EAAE,UAAY,KAAO8F,GAAO1C,EAAepD,CAAC,EAAE,OAAS,GAE7E,OAAIxG,QAA6BC,IAA6B,IAC1DxD,IAAY6P,GAAO5P,GAAqB,EAAI,IACzC4P,CACT,EACA,CAAC1C,EAAgB3J,GAA2BvD,GAAoBsD,GAAsBvD,CAAU,CAAA,EAG5F8P,GAAmB,IAAkB,CACzC,MAAMC,EAAS7L,GAAa,YAAA,EAC5B,MAAO,CACL,GAAIO,GAAqB,CAAA,EACzB,KAAMA,GAAmB,MAAQ,gBACjC,WAAYA,GAAmB,YAAcsL,EAC7C,QAAStL,GAAmB,SAAW1F,GAAc,cACrD,GAAI0F,GAAmB,IAAM,gBAC7B,UAAWA,GAAmB,WAAa5F,EAC3C,QAAS4F,GAAmB,SAAWtF,GAAS,IAAI,CAACwJ,EAAQjK,KAAW,CACtE,KAAMiK,EAAO,OACb,MAAOA,EAAO,MACd,QAASA,EAAO,QAChB,OAAQA,EAAO,OACf,MAAOjK,EAAQ,EACf,aAAciK,EAAO,OACrB,SAAUjK,EAAQ,EAClB,OAAQiK,EAAO,MAAA,EACf,CAAA,CAEN,EACAZ,GAAoB,QAAU+H,GAE9B,MAAME,GAA0B,CAACC,EAAoBC,IAAkB,CACrE,MAAMC,EAAmBL,GAAA,EACzBpL,EAAqB,CACnB,GAAGyL,EACH,QAASA,GAAkB,SAAS,IAAKxH,GAAYA,EAAO,OAASsH,EAAa,CAAE,GAAGtH,EAAQ,MAAAuH,CAAA,EAAUvH,CAAO,EAChH,QAAS,EAAA,CACV,CACH,EAEAM,EAAAA,UAAU,IAAM,CACVlK,GAAc,eAAe,OAAS,MAAkB,EAAI,EAChE,MAAMqR,EAAc1I,GAAqB,QACzC,GAAI,KAAK,UAAU0I,GAAa,SAAW,CAAA,CAAE,IAAM,KAAK,UAAUrR,GAAc,eAAiB,CAAA,CAAE,EAAG,CACpG,MAAMsR,GAAkBD,GAAa,SAAS,QAAU,GAAK,EACvDE,EAAmBvR,GAAc,eAAe,OAAS,EAK/D,GAAI,EADsBsR,GAAkB,CAACC,GAAoB,CAAC7I,GAAsB,SAChE,CACtB,MAAM0I,EAAmBpI,GAAoB,QAAA,EAC7CrD,EAAqB,CAAE,GAAGyL,EAAkB,QAAS,KAAK,MAAM,KAAK,UAAUpR,GAAc,eAAiB,CAAA,CAAE,CAAC,EAAG,QAAS,GAAM,CACrI,CACA0I,GAAsB,QAAU,EAClC,CACF,EAAG,CAAC1I,GAAc,aAAa,CAAC,EAEhC,MAAMwR,GAA2BnI,EAAAA,YAC9BgH,GAAgB,CACf3H,GAAsB,QAAU,GAChC1I,GAAc,iBAAiBqQ,CAAG,CACpC,EACA,CAACrQ,GAAc,cAAc,CAAA,EAGzByR,GAA0BpI,EAAAA,YAAY,IAAM,CAChDX,GAAsB,QAAU,GAChC1I,GAAc,gBAAA,CAChB,EAAG,CAACA,GAAc,aAAa,CAAC,EAEhCkK,EAAAA,UAAU,IAAM,CACVjK,GAAY,YAAY,OAC1B+F,GAAa,EAAI,EACb/F,EAAW,WAAW,QAAU,OAAS8G,GAAsB9G,EAAW,WAAW,KAAK,EAAGgH,GAAuB,IAAI,GACnHhH,EAAW,WAAW,QAAU,SAAUgH,GAAuBhH,EAAW,WAAW,KAAK,EAAG8G,GAAsB,IAAI,KAC3HA,GAAsB,IAAI,EAAGE,GAAuB,IAAI,EACnE,EAAG,CAAChH,GAAY,YAAY,MAAOA,GAAY,YAAY,KAAK,CAAC,EAEjEiK,EAAAA,UAAU,IAAM,CACd9D,GAAgBsL,GAAAA,iCAAiC/I,GAAqB,SAAS,SAAW,CAAA,EAAIvI,CAAO,CAAC,CACxG,EAAG,CAACA,CAAO,CAAC,EAEZ8J,EAAAA,UAAU,IAAM,CACVxE,GAAmB,SAASkD,GAAe,SAAS,mBAAmBlD,CAAiB,CAC9F,EAAG,CAACA,CAAiB,CAAC,EAEtBwE,EAAAA,UAAU,IAAM,CAAE/C,GAAyB8B,GAAe,SAAoC,CAAG,EAAG,CAAC4F,EAAK,MAAM,CAAC,EAEjH3E,EAAAA,UAAU,IAAM,CACdvE,EAAqBF,GAAoB,IAAI,EACzCA,GAAkB,SACpBW,GAAgBsL,GAAAA,iCAAiCjM,GAAkB,SAAW,CAAA,EAAIoD,GAAW,OAAO,CAAC,EAEnGpD,GAAkB,SAAWA,EAAiB,QAAQ,OAAS,GAAK,CAACgD,GAAyB,SAChG,sBAAsB,IAAM,CAAEK,GAAgB,SAAS,WAAWrD,EAAiB,OAAO,CAAG,CAAC,EAC9FgD,GAAyB,QAAU,IAC1BhD,GAAkB,SAAWgD,GAAyB,SACnC,KAAK,UAAUhD,EAAiB,OAAO,IAAM,KAAK,UAAUqD,GAAgB,SAAS,aAAa,GACrGA,GAAgB,SAAS,WAAWrD,EAAiB,OAAO,CAEzF,EAAG,CAACA,CAAgB,CAAC,EAErByE,EAAAA,UAAU,IAAM,CACd,GAAIxC,GAAa,QAAS,CACxB,MAAMiK,EAAiB,IAAI,eAAgBC,GAAYnK,GAAkBmK,EAAQ,CAAC,EAAE,YAAY,KAAK,CAAC,EACtG,OAAAD,EAAe,QAAQjK,GAAa,OAAO,EACpC,IAAMiK,EAAe,WAAA,CAC9B,CACF,EAAG,CAAA,CAAE,EAELzH,EAAAA,UAAU,IAAM,CACd,GAAI,CAACtC,GAAkB,QAAS,OAChC,MAAM+J,EAAiB,IAAI,eAAgBC,GAAY,CACrD,KAAM,CAAE,MAAAT,EAAO,OAAAU,CAAA,EAAWD,EAAQ,CAAC,EAAE,YACrC9J,GAAsB,CAAE,MAAAqJ,EAAO,OAAAU,EAAQ,CACzC,CAAC,EACD,OAAAF,EAAe,QAAQ/J,GAAkB,OAAO,EACzC,IAAM+J,EAAe,WAAA,CAC9B,EAAG,CAAA,CAAE,EAEL,MAAMG,GACJC,EAAAA,IAACC,GAAAA,KAAA,CACC,YAAAvP,GACA,aAAAkM,GACA,WAAAnJ,GACA,eAAAwJ,GACA,aAAApI,GACA,kBAAmBN,IAAqB,GACxC,qBAAAC,GACA,mBAAAO,GACA,oBAAAE,GACA,OAAQ/G,GAAY,OACpB,SAAUD,GAAc,SACxB,mBAAAoQ,GACA,sBAAArJ,GACA,uBAAAE,GACA,sBAAuBuJ,GACvB,WAAa,MAAM,QAAQvP,CAAU,EAAIA,EAAa,CAAA,EACtD,qBAAsBM,IAAwB,GAC9C,iBAAAC,GACA,kBAAAI,GACA,oBAAAC,GACA,aAAeb,IAAgB,KAC/B,UAAAI,GACA,qBAAuBoD,IAAwB,KAC/C,uBAAwB6H,EAAoB,CAAA,CAAA,EAI1C4F,GACJC,EAAAA,KAAAC,EAAAA,SAAA,CACG,SAAA,CAAA7K,IAAc3D,GACboO,MAAC,MAAA,CAAI,UAAU,6GAA6G,EAC1H,KACJA,EAAAA,IAAC,MAAA,CACE,GAAGtD,GAAA,EACJ,UAAU,oGAET,SAAApI,GACC6L,OAAC,MAAA,CAAI,UAAU,OACZ,SAAA,CAAAJ,GACDC,EAAAA,IAAC,MAAA,CAAI,UAAU,kBACZ,SAAA5M,GAAa,YAAcA,EAAY,YAAY0I,EAAgB,EAClEqE,OAAC,MAAA,CAAI,UAAU,yGACZ,SAAA,CAAAxQ,IAAgB,CAAC6D,EAAewM,MAACK,GAAAA,mBAAA,CAAmB,WAAW,QAAQ,EAAKL,EAAAA,IAACM,GAAAA,YAAA,CAAY,KAAMrE,EAAA,CAAmB,EAClHzM,IAAwB,CAACgE,EACxBwM,MAAC,MAAA,CAAI,UAAU,OACb,SAAAG,EAAAA,KAACI,GAAA,CACC,GAAG,gCACH,OAAO,UACP,WAAW,QACX,QAAS9Q,GAET,SAAA,CAAAuQ,EAAAA,IAACQ,GAAAA,SAAA,CAAS,UAAU,4BAAA,CAA6B,EAAE,IAAEzE,EAAA,CAAA,CAAA,EAEzD,EACE,KACH,CAACvI,GACA5D,IAAS,IAAI,CAAC6Q,EAAQ7S,IACpBoS,MAACO,GAAA,CAAwC,OAAO,YAAY,GAAI7S,GAAiB+S,EAAO,MAAO7S,CAAK,EAAG,QAAS6S,EAAO,QACpH,SAAArN,GAAa,IAAIqN,EAAO,KAAK,GAAKA,EAAO,KAAA,EAD/B,GAAGA,EAAO,KAAK,IAAI7S,CAAK,EAErC,CACD,CAAA,CAAA,CACL,CAAA,CAEJ,CAAA,CAAA,CACF,EAEAoS,EAAAA,IAAC3S,GAAA,CACC,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,EAChC,WAAY,CAAC,CAAE,MAAA+R,EAAO,OAAAU,KAAa,CACjC,MAAMY,EAAiBtB,EAAQ,EAAIA,EAAQtJ,GAAmB,MACxD6K,EAAkBb,EAAS,EAAIA,EAAShK,GAAmB,OACjE,OAAO4K,EAAiB,GAAKC,EAAkB,EAC7CX,EAAAA,IAACY,GAAAA,KAAA,CAEG,kBAAAjE,GAAkF,KAAAG,EAAqB,WAAAD,GAAiC,UAAAxN,GAAW,SAAAC,GAAU,YAAAC,GAAa,QAAAlB,EAAS,MAAOqS,EAAgB,OAAQC,EAAiB,aAAA7P,GACnO,iBAAkB9C,GAAc,kBAAoB,EACtD,CAAA,EAEA,IACN,CAAA,CAAA,CACF,CAAA,CAEJ,EACF,EAGI6S,GAAeC,EAAAA,WAAiE,CAACC,EAAOC,IAC5Fb,EAAAA,KAAC,MAAA,CAAI,UAAU,gBAAiB,GAAGY,EAAO,IAAAC,EACvC,SAAA,CAAAjB,GACDC,EAAAA,IAAC,MAAA,CAAI,UAAU,yBAA0B,YAAO,QAAA,CAAS,CAAA,CAAA,CAC3D,CACD,EAEKiB,GAAmBH,EAAAA,WAAiE,CAACC,EAAOC,IAChGhB,MAAC,OAAI,UAAU,gBAAiB,GAAGe,EAAO,IAAAC,EACxC,eAAC,MAAA,CAAI,UAAU,yBAA0B,SAAAD,GAAO,SAAS,EAC3D,CACD,EAEKG,GAAuB3G,EAAAA,QAAQ,IAC/BnH,GAAa,kBACRA,EAAY,kBAAkB,CACnC,SAAArF,EAAU,OAAQC,GAAc,OAAQ,aAAcA,GAAc,aACpE,kBAAAyQ,GAAmB,gBAAAC,GAAiB,aAAczQ,GAAc,eAAe,OAC/E,QAAAI,EAAS,cAAeJ,GAAc,cAAe,qBAAA2F,EAAsB,kBAAAD,EAC3E,gBAAiBxF,GAAc,cAAe,UAAAG,EAC9C,gCAAAC,EACA,eAAgBN,GAAc,eAAgB,cAAeA,GAAc,cAC3E,SAAUA,GAAc,SAAU,KAAMY,IAAuBC,EAAM,aAAAsF,EAAc,qBAAsBjG,GAAc,qBACvH,kBAAmBA,GAAc,kBAAmB,cAAeA,GAAc,cAAe,YAAaA,GAAc,YAC3H,UAAWA,GAAc,UAAW,WAAYA,GAAc,WAC9D,UAAW,EAAQA,GAAc,UAAY,gBAAAkG,GAC7C,iBAAkB,EAAQrG,GAAc,iBAAmB,YAAa,CAAC,CAACG,GAAc,QACxF,eAAA4F,GAAgB,KAAM7F,GAAY,WAAY,OAAQA,GAAY,OAAQ,aAAcsQ,GACxF,iBAAkBrQ,GAAc,iBAChC,oBAAAK,EACA,kBAAAC,EACA,YAAAC,EACA,eAAAC,EACA,cAAAC,CAAA,CACD,EAEI,KACN,CACDb,EAAUC,GAAc,OAAQA,GAAc,aAAcyQ,GAAmBC,GAC/EzQ,GAAc,cAAeI,EAASuF,EAAsBD,EAAmBxF,EAC/EG,EAAWL,GAAc,eAAgBA,GAAc,cAAeA,GAAc,SACpFa,EAAMD,GAAqBuF,EAAclG,GAAY,WAAYA,GAAY,OAAQsQ,GAAkBpL,EACvGpF,GAAc,iBAAkBO,EAAgCC,EAAqBC,EAAmBC,EAAYC,EAAeC,CAAA,CACpI,EAEDuJ,OAAAA,EAAAA,UAAU,IAAM,CACVjG,OAAqCgP,EAAoB,CAC/D,EAAG,CAACA,GAAsBhP,EAAiB,CAAC,EAG1CiO,EAAAA,KAACgB,GAAAA,aAAa,SAAb,CACC,MAAO,CACL,aAAAN,GAAc,iBAAAI,GAAkB,yBAAAtC,GAA0B,OAAQ3Q,GAAc,OAChF,cAAeC,GAAc,cAAe,WAAAc,GAAY,OAAQb,GAAY,OAC5E,SAAUD,GAAc,SAAU,kBAAAwQ,GAAmB,gBAAAC,GACrD,eAAgBzQ,GAAc,eAAgB,cAAeA,GAAc,cAC3E,WAAAiB,EAAY,eAAA+N,GAAgB,cAAehP,GAAc,cAAe,qBAAAuB,GACxE,iBAAAC,GAAkB,kBAAAI,GAAmB,oBAAAC,GAAqB,kBAAAC,GAAmB,YAAAC,GAC7E,qBAAAC,GAAsB,iBAAA+F,GAAkB,oBAAAC,EAAqB,cAAA/F,GAC7D,0BAAAC,GAA2B,sBAAAE,GAAuB,cAAAC,GAAe,+BAAAuO,GACjE,UAAAtO,EAAW,kBAAAE,GAAmB,aAAAxB,GAAc,iBAAA2B,GAAkB,aAAAE,GAAc,cAAAC,GAC5E,qBAAAG,GAAsB,gBAAAG,GAAiB,aAAA+C,EAAc,SAAA9C,GAAU,aAAAC,GAAc,gBAAAC,GAC7E,YAAAC,GAAa,QAAAC,GAAS,WAAAC,GAAY,WAAAI,GAAY,cAAAC,GAAe,oBAAAC,GAC7D,sBAAuBhE,GAAc,sBAAuB,wBAAAiR,GAC5D,kBAAA9M,GAAmB,qBAAAC,GAAsB,yBAAAC,GAA0B,4BAAAC,GACnE,eAAAkD,EAAgB,iBAAAjD,GAAkB,qBAAAC,GAAsB,YAAArE,GAAa,0BAAAsE,GACrE,YAAAE,GAAa,iBAAAC,GAAkB,oBAAAkI,GAAqB,qBAAAE,GAAsB,mBAAA7E,GAC1E,wBAAAgF,GAAyB,gBAAAtI,GAAiB,qBAAAuI,GAAsB,sBAAAC,GAChE,uBAAAhF,GAAwB,sBAAAE,GAAuB,mBAAA+E,GAAoB,mBAAAG,GACnE,aAAAvE,EAAc,eAAAE,GAAgB,kBAAAe,GAAmB,eAAAI,GAAgB,eAAAC,GACjE,qBAAAC,GAAsB,oBAAAiB,GAAqB,qBAAAM,GAAsB,oBAAAE,GACjE,kBAAAG,EAAmB,aAAA3B,EAAc,qBAAA5F,GAAsB,sBAAAC,EAAuB,wBAAAkG,CAAA,EAG/E,SAAA,CAAAlK,GACCmR,EAAAA,KAAC,MAAA,CACC,IAAKxK,GACL,UAAW,oDACTF,EAAiBlI,EAAmB,yBAA2B,uBACjE,GAEA,SAAA,CAAA4S,EAAAA,KAAC,MAAA,CACC,UAAW,qCACT1K,EAAiBlI,EAAmB,mBAAqB,EAC3D,IAAIY,GAAc,QAAU,iBAAmB,UAAU,GAExD,SAAA,CAAAA,GAAc,QACb6R,MAAC,MAAA,CAAI,UAAW,WAAWvK,EAAiBlI,EAAmB,SAAW,QAAQ,GAC/E,SAAAY,EAAa,OAAA,CAChB,EACE,KACHiD,GACC+O,EAAAA,KAAC,MAAA,CAAI,UAAU,qCACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CACC,MAAM,6BACN,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QACf,UAAU,uDACV,cAAW,GAEX,SAAA,CAAAH,EAAAA,IAAC,UAAA,CAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAA,CAAI,EACtCA,EAAAA,IAAC,OAAA,CAAK,EAAE,uCAAA,CAAwC,EAChDA,EAAAA,IAAC,OAAA,CAAK,EAAE,uCAAA,CAAwC,EAChDA,EAAAA,IAAC,OAAA,CAAK,EAAE,yCAAA,CAA0C,CAAA,CAAA,CAAA,EAEpDA,EAAAA,IAACoB,GAAAA,WAAA,CAAW,KAAK,QAAQ,QAAQ,WAAW,WAAW,QACnD,UAAAjQ,IAAcrC,EAAK,QAAQ,eAAA,EAC/B,EACAkR,EAAAA,IAACoB,GAAAA,YAAW,KAAK,QAAQ,QAAQ,UAAU,WAAW,WAAW,SAAA,eAAA,CAEjE,CAAA,CAAA,CACF,EACEjT,GAAc,WAChB6R,EAAAA,IAAC,OAAI,UAAU,mDAAoD,SAAA7R,EAAa,UAAA,CAAW,EACzF,IAAA,CAAA,CAAA,EAENgS,EAAAA,KAAC,MAAA,CACC,UAAW,yCACT1K,EAAiBlI,EAAmB,SAAWY,GAAc,QAAU,WAAa,QACtF,IAAIsH,EAAiBjI,GAAoB,WAAa,UAAU,IAC9DW,GAAc,YAAc,QAAU,EACxC,GAEC,SAAA,CAAAiD,IAAmBjD,GAAc,WAChC6R,EAAAA,IAAC,MAAA,CAAI,UAAU,yCAA0C,SAAA7R,EAAa,WAAW,EAC/E,KACJ6R,EAAAA,IAAC,MAAA,CACC,UAAW,yCACTvK,EAAiBjI,IAA+BiI,EAAiBlI,EAA5B,SAA0D,EACjG,GAEC,SAAA2T,EAAA,CAAA,EAEF/S,GAAc,YACb6R,EAAAA,IAAC,MAAA,CAAI,UAAW,iCAAiCvK,EAAiBjI,GAAoB,SAAW,EAAE,GAChG,SAAAW,EAAa,YAChB,EACE,IAAA,CAAA,CAAA,CACN,CAAA,CAAA,EAEA,KACHA,GAAc,YAAc6R,MAAC,MAAA,CAAI,UAAU,yCAAyC,EAAK,KACzFlM,IAAeE,GACdgM,EAAAA,IAAC,MAAA,CAAI,UAAU,2DACb,SAAAG,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACZ,SAAA,CAAAnM,IAAaZ,GAAa,eACzBA,EAAY,eAAe,CAAE,KAAMlF,GAAY,WAAY,aAAcsQ,GAAkB,OAAQtQ,GAAY,OAAQ,aAAAkG,EAAc,KAAAtF,CAAA,CAAM,EACzI,KACHgF,IAAeE,IAAa9F,GAAY,YAAY,QAAU,GAC7D8R,EAAAA,IAAC,MAAA,CAAI,UAAU,0CAAA,CAA2C,EACxD,KACHlM,GACCqM,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACX,SAAA,EAAA5M,IAAatF,GAAc,gBAAkBmF,GAAa,qBAC1DA,EAAY,oBAAoB,CAC9B,QAASnF,GAAc,cAAe,eAAgBwR,GACtD,cAAeC,GAAyB,cAAezR,GAAc,cACrE,SAAUA,GAAc,SAAU,aAAAmG,EAAc,cAAenG,GAAc,cAC7E,UAAAK,EAAW,gCAAAC,EAAiC,UAAW,GAAM,YAAaN,GAAc,YAAa,QAASA,GAAc,QAAS,KAAMY,IAAuBC,EAClK,oBAAAN,EACA,kBAAAC,EACA,YAAAC,EACA,eAAAC,EACA,cAAAC,CAAA,CACD,EAEFwE,GAAa,qBACZA,EAAY,oBAAoB,CAC9B,cAAenF,GAAc,cAAe,QAASsQ,GACrD,UAAAjQ,EAAW,gCAAAC,EAAiC,oBAAqB2F,GAAiB,yBAA0B,IAAMC,GAAmB,IAAI,EACzI,OAAQQ,GAAkB,SAAU1G,GAAc,SAAU,aAAAmG,EAC5D,cAAenG,GAAc,cAAe,KAAMY,IAAuBC,EAAM,YAAab,GAAc,YAC1G,QAASA,GAAc,QACvB,oBAAAO,EACA,kBAAAC,EACA,YAAAC,EACA,eAAAC,EACA,cAAAC,CAAA,CACD,CAAA,CAAA,CAEL,EACE,IAAA,CAAA,CACN,EACF,EACE,KACHkD,IAAqB,OAAO,KAAKA,EAAiB,EAAE,OAASkO,EAAAA,IAACqB,eAAA,CAAa,GAAGvP,EAAA,CAAmB,EAAK,KACtG,CAAC9C,IAAcoC,GACd+O,EAAAA,KAAC,MAAA,CAAI,UAAU,iCACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CACC,MAAM,6BACN,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,OACL,OAAO,eACP,YAAY,IACZ,cAAc,QACd,eAAe,QACf,UAAU,uDACV,cAAW,GAEX,SAAA,CAAAH,EAAAA,IAAC,UAAA,CAAQ,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,GAAA,CAAI,EACtCA,EAAAA,IAAC,OAAA,CAAK,EAAE,uCAAA,CAAwC,EAChDA,EAAAA,IAAC,OAAA,CAAK,EAAE,uCAAA,CAAwC,EAChDA,EAAAA,IAAC,OAAA,CAAK,EAAE,yCAAA,CAA0C,CAAA,CAAA,CAAA,EAEpDA,EAAAA,IAACoB,GAAAA,WAAA,CAAW,KAAK,QAAQ,QAAQ,WAAW,WAAW,QACnD,UAAAjQ,IAAcrC,EAAK,QAAQ,eAAA,EAC/B,EACAkR,EAAAA,IAACoB,GAAAA,YAAW,KAAK,QAAQ,QAAQ,UAAU,WAAW,WAAW,SAAA,eAAA,CAEjE,CAAA,CAAA,CACF,EACE,CAACpS,IAAcb,GAAc,WAC/B6R,EAAAA,IAAC,MAAA,CAAI,UAAU,yBAA0B,SAAA7R,EAAa,UAAA,CAAW,EAC/D,KACJ6R,EAAAA,IAAC,MAAA,CACC,IAAKnK,GACL,UAAW,UAAUlF,GAAmB,SAAWP,EAAgB,gDACnE,MAAO,CACL,GAAIO,GACA,CAAE,OAAQ7B,GAAM,OAAS,EAAI,IAAIA,GAAM,OAAS,GAAK,GAAK,CAAC,KAAO,SAClE,CAAE,OAAQ6M,EAAA,EACd,GAAG9J,EAAA,EAGJ,SAAAb,GACCkP,GAEAC,EAAAA,KAACmB,EAAAA,WAAA,CAAW,QAAAnE,GAAkB,UAAWc,GAAe,YAAaJ,GAAiB,aAAcO,GAAkB,mBAAoBmD,EAAAA,eACvI,SAAA,CAAArB,GACA7K,EACGmM,GAAAA,mBACGC,EAAAA,YAAA,CAAY,YAAa,GAAM,cAAAjE,GAC9B,SAAAwC,EAAAA,IAAC,SAAO,GAAGtD,GAAA,EAAiB,UAAU,wHACpC,SAAAyD,EAAAA,KAAC,QAAA,CAAO,GAAGxD,KAAqB,UAAU,6CACvC,SAAA,CAAA,KAAKE,GAAWxH,CAAU,QAC1BqM,GAAAA,IAAA,CAAwE,IAAKrM,EAAqB,MAAOyH,GAAM,UAAWkB,GAASA,EAAK,KAAQ3I,EAAW,SAAqC,EAAE,GAAxLA,EAAW,SAAqC,EAA2I,CAAA,CAAA,CACxM,EACF,EACF,EACA,SAAS,eAAe,uBAAuB,GAAK,SAAS,IAAA,EAE/D,IAAA,CAAA,CACN,CAAA,CAAA,EAGH1E,IAAoByC,GAAa,iBAAmBA,EAAY,iBAAiBzC,EAAgB,EAAI,KAErGyC,GAAa,uBAAyBA,EAAY,sBAAsB,CACvE,UAAW,CAAC,CAAC8C,EAAuB,WAAYgF,GAA0B,QAASD,GACnF,qBAAsB/E,GAAuB,qBAAsB,kBAAmBA,GAAuB,kBAC7G,eAAgBA,GAAuB,eAAgB,aAAcA,GAAuB,eAAgB,YAAa,EAAA,CAC1H,EAED8J,EAAAA,IAAC2B,GAAAA,uBAAA,CAAuB,OAAQrL,GAAwB,QAASgF,GAAuB,EAExF0E,EAAAA,IAAC4B,GAAAA,wBAAA,CACC,kBAAAtH,EACA,iBAAAG,GACA,qBAAAE,GACA,sBAAA3H,EACA,WAAY0F,GACZ,UAAWiB,GACX,eAAgBhB,CAAA,CAAA,CAClB,CAAA,CAAA,CAGN,CACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { ITableProps } from './types';
|
|
3
|
-
export declare const InfiniteTable: React.MemoExoticComponent<({ tableKey, searchConfig, filterConfig, sortConfig, headerConfig, hoverConfig, columns, modelName, enableMasterDataEnumSuggestions, agreementCategoryId, agreementDomainId, agreementId, modificationId, lineItemRowId, enumSuggestionsData, data, onRowClick, showHeader, tableActions, rowOptions, hideRowOptionWidth, checkboxUtilities, isLoading, onScroll, onScrolling, isColumnConfigurable, onAddColumnClick, emptyMessage, noDataWidget, buttons, onEditColumnClick, onDeleteColumnClick, onRowTooltipClick, tooltiptext, cascadingTableConfig, originalsOnly, disableOptionsForRowIndex, tableHeightClass, getFullRowDataOnClick, onRowEdit, onBulkRowEdit, inlineEditColumns, isResizable, paginationConfig, dndSortableUtils, multipleContexts, withSortable, withDraggable, enableRootDrag, pageSize, onCascadingRowExpand, totalItems, showRecordCount, getInnerRowData, maxLevel, expandedRows, setExpandedRows, showNewItem, rawData, dragConfig, isOverlayLoading, style, floatingBarConfig, rowWrapper, rowLinkConfig, isCellClickDisabled, setHeaderOnParent, optimizeTable, multiSelectConfig, headerContextOptions, showHeaderContextOptions, setShowHeaderContextOptions, showDataTypeIcon, rowAdditionalActions, rowAdditionalActionsWidth, setVisibleHeaders, cellEditing, cellEditingValue, allowInlineEdit, onFieldOperationFlow, fieldOperationLoading, onTableActionsReady, onPendingEditsChange, onCancelPendingEdits, }: ITableProps) => import("react/jsx-runtime").JSX.Element>;
|
|
3
|
+
export declare const InfiniteTable: React.MemoExoticComponent<({ tableKey, searchConfig, filterConfig, sortConfig, headerConfig, hoverConfig, columns, modelName, enableMasterDataEnumSuggestions, agreementCategoryId, agreementDomainId, agreementId, modificationId, lineItemRowId, enumSuggestionsData, data, onRowClick, showHeader, tableActions, rowOptions, hideRowOptionWidth, checkboxUtilities, isLoading, onScroll, onScrolling, isColumnConfigurable, onAddColumnClick, emptyMessage, noDataWidget, buttons, onEditColumnClick, onDeleteColumnClick, onRowTooltipClick, tooltiptext, cascadingTableConfig, originalsOnly, disableOptionsForRowIndex, tableHeightClass, getFullRowDataOnClick, selectedRowId, onRowEdit, onBulkRowEdit, inlineEditColumns, isResizable, paginationConfig, dndSortableUtils, multipleContexts, withSortable, withDraggable, enableRootDrag, pageSize, onCascadingRowExpand, totalItems, showRecordCount, getInnerRowData, maxLevel, expandedRows, setExpandedRows, showNewItem, rawData, dragConfig, isOverlayLoading, style, floatingBarConfig, rowWrapper, rowLinkConfig, isCellClickDisabled, setHeaderOnParent, optimizeTable, multiSelectConfig, headerContextOptions, showHeaderContextOptions, setShowHeaderContextOptions, showDataTypeIcon, rowAdditionalActions, rowAdditionalActionsWidth, setVisibleHeaders, cellEditing, cellEditingValue, allowInlineEdit, onFieldOperationFlow, fieldOperationLoading, onTableActionsReady, onPendingEditsChange, onCancelPendingEdits, }: ITableProps) => import("react/jsx-runtime").JSX.Element>;
|