@pstdio/ui 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/{MermaidComponent-BLMDb5XE.js → MermaidComponent-81jr28u4.js} +2 -2
  2. package/dist/{MermaidComponent-BLMDb5XE.js.map → MermaidComponent-81jr28u4.js.map} +1 -1
  3. package/dist/chat-ui.d.ts +6 -6
  4. package/dist/chat-ui.js +1 -1
  5. package/dist/{data-table-stats-row-BrpOFzgn.js → data-table-stats-row-CpRe_xK2.js} +2 -2
  6. package/dist/{data-table-stats-row-BrpOFzgn.js.map → data-table-stats-row-CpRe_xK2.js.map} +1 -1
  7. package/dist/data-table.d.ts +3 -1
  8. package/dist/data-table.js +7 -10
  9. package/dist/data-table.js.map +1 -1
  10. package/dist/{diff-viewer-hGkaF_zW.js → diff-viewer-DJ1B5hxL.js} +3 -3
  11. package/dist/{diff-viewer-hGkaF_zW.js.map → diff-viewer-DJ1B5hxL.js.map} +1 -1
  12. package/dist/diff.js +1 -1
  13. package/dist/index.d.ts +8 -6
  14. package/dist/index.js +111 -99
  15. package/dist/index.js.map +1 -1
  16. package/dist/kanban-renderer.d.ts +9 -21
  17. package/dist/kanban-renderer.js +276 -274
  18. package/dist/kanban-renderer.js.map +1 -1
  19. package/dist/{list-row-De9R2zKU.js → list-row-uqD-q4gv.js} +20 -10
  20. package/dist/list-row-uqD-q4gv.js.map +1 -0
  21. package/dist/{param-editor-BsyIOdrP.js → param-editor-BQd4AOUP.js} +2 -2
  22. package/dist/{param-editor-BsyIOdrP.js.map → param-editor-BQd4AOUP.js.map} +1 -1
  23. package/dist/{param-editor-field-qEWoluWT.js → param-editor-field-BJ_rLUnV.js} +728 -722
  24. package/dist/param-editor-field-BJ_rLUnV.js.map +1 -0
  25. package/dist/param-editor.d.ts +1 -0
  26. package/dist/param-editor.js +2 -2
  27. package/dist/{rich-text-CQAntEuA.js → rich-text-VYAmEigU.js} +1142 -1184
  28. package/dist/rich-text-VYAmEigU.js.map +1 -0
  29. package/dist/rich-text.js +1 -1
  30. package/dist/style.css +1 -1
  31. package/dist/{theme-BH-rGipZ.js → theme-BsOWAIi2.js} +31 -5
  32. package/dist/theme-BsOWAIi2.js.map +1 -0
  33. package/dist/theme.js +1 -1
  34. package/dist/{tree-list-BUfDQz3v.js → tree-list-WhISG-cz.js} +637 -488
  35. package/dist/tree-list-WhISG-cz.js.map +1 -0
  36. package/dist/{types-yjKBk07w.d.ts → types-DWA3enV6.d.ts} +22 -1
  37. package/package.json +2 -2
  38. package/dist/list-row-De9R2zKU.js.map +0 -1
  39. package/dist/param-editor-field-qEWoluWT.js.map +0 -1
  40. package/dist/rich-text-CQAntEuA.js.map +0 -1
  41. package/dist/theme-BH-rGipZ.js.map +0 -1
  42. package/dist/tree-list-BUfDQz3v.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"data-table.js","names":["ReactNode","DataTableCategoricalColor","CategoricalColorCellProps","children","resolveCategoricalColor","value","categories","find","category","Object","is","color","CategoricalColorCell","props","DataTableThemeColor","RgbColor","r","g","b","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","split","map","character","join","parseHexColor","color","normalized","trim","startsWith","slice","expandedHex","length","test","Number","parseInt","toLinearChannel","channel","relativeLuminance","contrastRatio","foreground","background","foregroundLuminance","backgroundLuminance","lighter","Math","max","darker","min","toHexColor","toHexChannel","round","toString","padStart","mixRgbColors","start","end","endWeight","contrastRatioForHexColors","foregroundColor","backgroundColor","findMatchingForeground","target","step","candidate","resolveReadableTextColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","light","darkForeground","dark","Text","mixHexColors","DataTableColorScaleStop","DataTableThemeColor","ColorScaleCellProps","value","toDisplayPercent","Math","round","mixColors","startColor","endColor","startWeight","mixedColor","mixThemeColors","start","end","foreground","light","dark","undefined","resolveColorScaleValue","stops","Number","isFinite","length","firstStop","lastStop","range","color","endIndex","findIndex","stop","startStop","endStop","segmentProgress","ColorScaleCell","props","$","_c","t0","_c","Badge","DataTableBadgeCategory","DataTableBadgeCellProps","value","categories","DataTableBadgeCell","props","$","_c","t0","find","category","palette","t1","String","t2","_c","Text","useEffect","useState","Tooltip","relativeUnits","unit","seconds","const","parseDate","value","time","Date","parse","Number","isNaN","formatDataTableRelativeDate","now","locale","date","format","Intl","RelativeTimeFormat","numeric","elapsedSeconds","getTime","match","find","candidate","Math","abs","round","DataTableDateCellProps","DataTableDateCell","props","$","_c","setNow","_temp","t0","t1","Symbol","for","timer","setInterval","clearInterval","t2","relativeLabel","t3","toLocaleString","undefined","dateStyle","timeStyle","fullDate","t4","t5","_c","_temp","Tooltip","DiffBubble","DataTableDiffValue","DataTableDiffCell","props","$","_c","value","t0","additions","deletions","_c","chakra","Tooltip","visibleEndLength","DataTablePathCell","props","$","_c","value","t0","slice","start","t1","end","t2","t3","t4","t5","_c","Tooltip","ParamEditor","JsonField","label","value","FriendlyJsonDisplayProps","imageExtensionPattern","imageLabelPattern","humanizeKey","key","words","replace","trim","toLowerCase","toUpperCase","slice","formatPath","path","map","part","test","join","isPrimitiveArray","every","item","appendJsonFields","fields","Array","isArray","length","push","forEach","index","String","entries","Object","parseJsonCellValue","JSON","parse","buildJsonFields","field","isJsonImageValue","startsWith","url","URL","protocol","pathname","isJsonImageArray","formatJsonPrimitive","undefined","formatJsonValue","getJsonCellSummary","parsedValue","keys","filter","visibleValues","remainingCount","Boolean","toReadOnlyValue","type","const","src","alt","images","image","buildFriendlyJsonParams","id","name","FriendlyJsonDisplay","props","$","_c","t0","t1","_c","Button","HStack","Image","Popover","Portal","Text","Braces","ChevronRight","ScrollArea","buildJsonFields","FriendlyJsonDisplay","getJsonCellSummary","isJsonImageArray","isJsonImageValue","JsonCellProps","columnLabel","value","stopRowActivation","event","stopPropagation","JsonCell","props","$","_c","T0","T1","T2","summary","t0","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","fields","imageFields","flatMap","_temp","slice","t12","Root","Symbol","for","placement","offset","mainAxis","Trigger","length","map","_temp2","t13","t14","t15","t16","overscrollBehavior","t17","t18","field","label","Array","isArray","image","index","field_0","String","_c","_temp","_temp2","ScrollArea","Icon","ChakraIcon","chakra","IconButton","Menu","Portal","Text","CellContext","HeaderContext","Check","ChevronDown","CircleHelp","Minus","CSSProperties","cloneElement","isValidElement","ReactNode","Checkbox","Tooltip","ListRow","CategoricalColorCell","resolveCategoricalColor","ColorScaleCell","resolveColorScaleValue","DataTableBadgeCell","isDataTableDiffValue","DataTableColumnMeta","DataTableDateCell","formatDataTableRelativeDate","DataTableDiffCell","DataTablePathCell","formatDisplayValue","JsonCell","DataTableColumnRenderer","DataTableRowAction","RowData","toSingleLineElement","element","style","props","flexWrap","minWidth","whiteSpace","stopControlPropagation","event","stopPropagation","SelectionHeader","$","_c","table","checked","getIsAllRowsSelected","isIndeterminate","getIsSomeRowsSelected","t0","t1","t2","t3","details","toggleAllRowsSelected","t4","SelectionCell","row","column","selectedRowIds","columnDef","meta","Boolean","id","Symbol","for","toggleSelected","mergeRowActions","rowActions","dynamicActions","dynamicLabels","Set","map","action","label","filter","has","RowActionsCell","getRowActions","getActions","T0","T1","T2","T3","t5","bb0","actions","undefined","resolvedActions","original","length","Root","Positioner","Content","t6","destructive","icon","onSelect","t7","t8","t9","FormattedCellProps","value","wrapRows","FormattedCell","displayValue","DataCellProps","columnLabel","renderer","DataCell","type","includes","categories","color","stops","color_0","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","headerIcon","columnDescription","_c","ChakraIcon","Checkbox","Tooltip","RowSelectionState","ReactNode","resolveCategoricalColor","resolveColorCellStyle","resolveColorScaleValue","ColumnDataCell","ColumnHeader","RowActionsCell","RowIndexCell","SelectionCell","SelectionHeader","resolveDataTableComparableValue","DataTableColumnMeta","columnHelper","getIcon","DataTableColumnRenderer","DataTableRowAction","RowData","compareValues","valueA","valueB","undefined","String","localeCompare","BuildColumnsOptions","columnIcons","Partial","Record","columnDescriptions","compactHeaders","enableSelection","selectedRowIds","rowActions","getRowActions","row","columnRenderers","wrapRows","resolveDataCellStyle","value","renderer","type","color","stops","categories","buildColumns","data","columnKeys","options","rowIndexColumn","accessor","_row","rowIndex","header","id","enableResizing","size","cell","selectionColumn","display","meta","enableSorting","dataColumns","map","key","fallBackKey","columnValues","customIcon","headerIcon","columnDescription","headerLabel","getCellStyle","sortingFn","rowA","rowB","original","rowActionsColumn","length","Box","HStack","Icon","IconButton","Popover","Portal","Stack","Text","closestCenter","DndContext","DragEndEvent","PointerSensor","useSensor","useSensors","SortableContext","useSortable","verticalListSortingStrategy","CSS","Check","GripVertical","Settings2","useEffect","useRef","useState","SearchableMenuInput","Checkbox","ScrollArea","Switch","DataTableRowDisplaySwitch","DataTableColumnMenuColumn","id","label","DataTableColumnMenuProps","columns","visibleColumnIds","Set","wrapRows","showStats","statsAvailable","onColumnVisibilityChange","columnId","visible","onColumnReorder","activeColumnId","overColumnId","onWrapRowsChange","onStatsVisibilityChange","DataTableColumnMenuRowProps","column","checked","DataTableColumnMenuRow","props","$","_c","t0","attributes","listeners","setNodeRef","transform","transition","isDragging","t1","Transform","toString","t2","t3","opacity","style","t4","Symbol","for","bg","t5","t6","t7","t8","details","t9","t10","t11","DataTableColumnMenu","triggerRef","contentRef","open","setOpen","query","setQuery","activationConstraint","distance","sensors","normalizedQuery","trim","toLowerCase","filter","includes","filteredColumns","event","active","over","String","handleDragEnd","closeOnOutsidePointerDown","event_0","target","Node","current","contains","closeOnEscape","event_1","key","document","addEventListener","removeEventListener","placement","offset","mainAxis","getAnchorElement","_temp","role","overscrollBehavior","map","_temp2","t12","t13","column_1","has","t14","t15","t16","t17","column_0","_c","Checkbox","_temp","Switch","_temp2","ScrollArea","Icon","ChakraIcon","Flex","IconButton","Menu","Portal","Table","Text","Cell","flexRender","Header","HeaderGroup","Row","TanStackTable","ArrowDownAZ","ArrowUpAZ","MoreVertical","ResourceContextMenu","Tooltip","ListRow","DataTableColumnMeta","DataTableCellContext","DataTableProps","RowData","utilityColumnIds","Set","getSortMenuIcon","sortDirection","DataTableColumnHeaderProps","header","headerGroup","table","fullWidth","hasDescription","DataTableColumnHeader","props","$","_c","canSortColumn","t0","column","getIsSorted","t1","id","has","getCoreRowModel","rows","length","SortIcon","columnDef","getContext","tooltipContent","t2","t3","Symbol","for","borderRight","t4","t5","headers","indexOf","undefined","t6","width","t7","t8","t9","visibility","toggleSorting","clearSorting","t10","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","t11","t12","t13","DataTableCellViewProps","cell","row","wrapRows","getCellContextMenuActions","DataTableCellView","columnMeta","meta","getCellStyle","getValue","cellStyle","original","cellContext","rowId","columnId","value","map","action","key","label","icon","onClick","onSelect","contextActions","cellElement","DataTableBodyRowProps","noBorder","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","DataTableBodyRow","borderBottom","borderColor","getVisibleCells","_c","ChakraIcon","Tooltip","Box","Flex","Table","getCoreRowModel","getPaginationRowModel","getSortedRowModel","PaginationState","RowSelectionState","SortingState","useReactTable","Fragment","lazy","Suspense","useEffect","useState","ScrollArea","useKanbanRendererStore","buildColumns","DataTableColumnMenu","DataTableHeader","buildDataTableRendererAttributes","buildDataTableRendererRows","filterDataTableRows","getSelectedOriginalRows","reorderDataTableColumns","resolveDataTableColumnOrder","resolveDataTableRowId","resolveDataTableToolbarStorageKey","resolveInitialPageSize","resolveSelectionActions","shouldEnableSelection","shouldHighlightActiveRow","toggleHiddenDataTableColumn","DataTableBodyRow","DataTableColumnHeader","EditModeDataTable","PaginationFooter","SelectionToolbar","DataTableProps","RowData","DataTableStatsRow","then","module","default","DatasetPaginationProps","table","ReturnType","pagination","pageSizeOptions","buildColumnMenuColumns","columnKeys","compactHeaders","Partial","Record","map","columnId","id","label","resolveColumnSizeVars","colSizes","header","getFlatHeaders","getSize","column","DatasetPagination","props","$","_c","t0","getPageCount","t1","pageIndex","t2","pageSize","t3","t4","rows","length","setPageIndex","setPageSize","DatasetDataTable","data","noBorder","fullWidth","hiddenColumns","defaultHiddenColumns","defaultShowStats","onRowClick","isRowInteractive","activeRowId","columnIcons","columnDescriptions","columnStats","columnRenderers","initialPageSize","rowActions","getRowActions","getRowId","toolbarStorageKey","enableRowActivation","getCellContextMenuActions","sorting","setSorting","setPagination","rowSelection","setRowSelection","showStats","setShowStats","wrapRows","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","Set","Object","keys","filter","key","has","hiddenColumnMenuIds","setHiddenColumnMenuIds","hiddenColumnsSet","baseColumnKeys","orderedBaseColumnKeys","visibleColumnIds","enableSelection","selectionActions","rendererAttributes","rendererRows","resolvedToolbarStorageKey","filters","state","settings","viewMode","views","defaultViews","activeViewId","defaultActiveViewId","filteredRendererRows","filteredData","row","sourceRow","columns","selectedRowIds","defaultColumn","size","minSize","maxSize","index","columnResizeMode","columnResizeDirection","onSortingChange","onPaginationChange","onRowSelectionChange","enableMultiRowSelection","enableRowSelection","autoResetAll","pageCount","current","Math","max","columnSizeVars","selectedRows","getSelectedRowModel","allRows","selectedOriginalRows","columnControl","Boolean","visible","activeColumnId","overColumnId","width","getTotalSize","getHeaderGroups","headerGroup","headers","getRowModel","rowIsInteractive","original","rowIsActive","rowId","rowIsSelected","getIsSelected","toggleAllRowsSelected","DataTable","editMode","_c","ScrollArea","Fragment","Skeleton","Table","Text","DataTableSkeletonColumn","id","label","DataTableSkeletonProps","columns","columnCount","rowCount","cellWidths","DataTableSkeleton","props","$","_c","t0","t1","undefined","t2","length","Array","from","_temp","headers","t3","map","_temp2","t4","t5","t6","__0","rowIndex","column_0","columnIndex","column","borderRight","_","index","_c","Checkbox$1","Switch$1","ScrollArea$1","ResourceContextMenu","ListRow","shouldHighlightActiveRow","reorderDataTableColumns","resolveInitialPageSize","resolveDataTableToolbarStorageKey","formatDisplayValue","getIcon","isDataTableDiffValue","resolveDataTableComparableValue","resolveSelectionActions","columnHelper","DataTableRowDisplaySwitch","getSelectedOriginalRows","resolveDataTableRowId","useKanbanRendererStore","buildDataTableRendererRows","PaginationFooter","SelectionToolbar","toggleHiddenDataTableColumn","shouldEnableSelection","EditModeDataTable","resolveDataTableColumnOrder","filterDataTableRows","buildDataTableRendererAttributes","DataTableHeader","DiffBubble","ParamEditor","Fragment$1","resolveCategoricalColor","categories","category","value","CategoricalColorCell","props","children","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","character","parseHexColor","normalized","color","expandedHex","toLinearChannel","channel","relativeLuminance","contrastRatio","foregroundLuminance","foreground","backgroundLuminance","background","lighter","darker","toHexColor","toHexChannel","mixRgbColors","start","endWeight","end","findMatchingForeground","step","candidate","target","resolveReadableTextColor","backgroundColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","darkForeground","toDisplayPercent","mixColors","mixThemeColors","resolveColorScaleValue","stops","firstStop","lastStop","endIndex","stop","startStop","endStop","ColorScaleCell","$","c","t0","Text","DataTableBadgeCell","palette","t1","t2","Badge","relativeUnits","parseDate","time","formatDataTableRelativeDate","date","format","locale","elapsedSeconds","now","match","DataTableDateCell","setNow","useState","_temp$3","timer","useEffect","relativeLabel","t3","fullDate","t4","t5","Tooltip$1","DataTableDiffCell","DataTablePathCell","chakra","imageExtensionPattern","imageLabelPattern","humanizeKey","words","key","formatPath","path","part","isPrimitiveArray","item","appendJsonFields","index","fields","entries","parseJsonCellValue","buildJsonFields","field","isJsonImageValue","url","label","isJsonImageArray","formatJsonPrimitive","formatJsonValue","getJsonCellSummary","parsedValue","visibleValues","remainingCount","toReadOnlyValue","image","buildFriendlyJsonParams","FriendlyJsonDisplay","stopRowActivation","event","JsonCell","T0","T1","T2","summary","t10","t11","t6","t7","t8","t9","columnLabel","imageFields","_temp$2","t12","Popover","Button","HStack","_temp2$2","Braces","t13","ChevronRight","t14","t15","t16","t17","Portal","t18","Image","field_0","toSingleLineElement","isValidElement","element","cloneElement","stopControlPropagation","SelectionHeader","checked","table","isIndeterminate","Minus","Check","Icon","details","SelectionCell","column","selectedRowIds","row","mergeRowActions","dynamicLabels","dynamicActions","action","rowActions","RowActionsCell","getActions","T3","resolvedActions","Menu","IconButton","ChevronDown","FormattedCell","displayValue","wrapRows","DataCell","renderer","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","columnDescription","CircleHelp","headerIcon","compareValues","valueA","valueB","resolveDataCellStyle","buildColumns","options","rowIndexColumn","rowIndex","selectionColumn","dataColumns","columnKeys","fallBackKey","columnValues","data","columnRenderers","customIcon","columnIcons","columnDescriptions","compactHeaders","rowA","rowB","rowActionsColumn","enableSelection","getRowActions","DataTableColumnMenuRow","useSortable","transform","CSS","isDragging","transition","style","GripVertical","attributes","listeners","Box","onColumnVisibilityChange","setNodeRef","DataTableColumnMenu","triggerRef","useRef","contentRef","open","setOpen","query","setQuery","sensors","useSensors","useSensor","PointerSensor","columns","normalizedQuery","filteredColumns","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","closeOnEscape","event_1","_temp$1","Settings2","onWrapRowsChange","onStatsVisibilityChange","showStats","statsAvailable","SearchableMenuInput","_temp2$1","visibleColumnIds","column_1","Stack","SortableContext","verticalListSortingStrategy","DndContext","closestCenter","current","column_0","utilityColumnIds","getSortMenuIcon","sortDirection","ArrowUpAZ","ArrowDownAZ","MoreVertical","DataTableColumnHeader","canSortColumn","header","SortIcon","flexRender","tooltipContent","fullWidth","headerGroup","Flex","hasDescription","Table","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","noBorder","DataTableStatsRow","lazy","module","buildColumnMenuColumns","columnId","resolveColumnSizeVars","colSizes","DatasetPagination","pagination","pageSizeOptions","DatasetDataTable","sorting","setSorting","setPagination","rowSelection","setRowSelection","setShowStats","defaultShowStats","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","hiddenColumns","hiddenColumnMenuIds","setHiddenColumnMenuIds","defaultHiddenColumns","hiddenColumnsSet","baseColumnKeys","key_0","orderedBaseColumnKeys","key_1","key_2","selectionActions","rendererAttributes","rendererRows","getRowId","resolvedToolbarStorageKey","filters","state","filteredData","useReactTable","row_0","getSortedRowModel","getCoreRowModel","getPaginationRowModel","pageCount","columnSizeVars","selectedRows","allRows","selectedOriginalRows","columnControl","columnStats","current_0","visible","current_1","activeColumnId","overColumnId","Suspense","isRowInteractive","row_1","DataTable","cellWidths","DataTableSkeleton","columnCount","rowCount","_temp","headers","_temp2","Skeleton","columnIndex"],"sources":["../src/components/data-table/categorical-color-cell.tsx","../src/components/data-table/color-cell-style.ts","../src/components/data-table/color-scale-cell.tsx","../src/components/data-table/data-table-badge-cell.tsx","../src/components/data-table/data-table-date-cell.tsx","../src/components/data-table/data-table-diff-cell.tsx","../src/components/data-table/data-table-path-cell.tsx","../src/components/data-table/friendly-json-display.tsx","../src/components/data-table/json-cell.tsx","../src/components/data-table/data-table-cell-renderers.tsx","../src/components/data-table/build-columns.tsx","../src/components/data-table/data-table-column-menu.tsx","../src/components/data-table/data-table-table-parts.tsx","../src/components/data-table/data-table.tsx","../src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { DataTableCategoricalColor } from \"./types\";\n\ninterface CategoricalColorCellProps {\n children: ReactNode;\n}\n\nexport const resolveCategoricalColor = (value: unknown, categories: DataTableCategoricalColor[]) => {\n return categories.find((category) => Object.is(category.value, value))?.color ?? null;\n};\n\nexport const CategoricalColorCell = (props: CategoricalColorCellProps) => {\n const { children } = props;\n\n return children;\n};\n","import type { DataTableThemeColor } from \"./types\";\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\nconst darkTextColor = \"#111827\";\nconst lightTextColor = \"#ffffff\";\nconst darkColorTarget = \"#000000\";\nconst readableContrastRatio = 4.5;\n\nconst expandShortHex = (hex: string) =>\n hex\n .split(\"\")\n .map((character) => character + character)\n .join(\"\");\n\nexport const parseHexColor = (color: string) => {\n const normalized = color.trim();\n const hex = normalized.startsWith(\"#\") ? normalized.slice(1) : normalized;\n const expandedHex = hex.length === 3 ? expandShortHex(hex) : hex;\n if (!/^[\\da-f]{6}$/i.test(expandedHex)) return null;\n\n return {\n r: Number.parseInt(expandedHex.slice(0, 2), 16),\n g: Number.parseInt(expandedHex.slice(2, 4), 16),\n b: Number.parseInt(expandedHex.slice(4, 6), 16),\n };\n};\n\nconst toLinearChannel = (channel: number) => {\n const normalized = channel / 255;\n return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;\n};\n\nconst relativeLuminance = (color: RgbColor) =>\n 0.2126 * toLinearChannel(color.r) + 0.7152 * toLinearChannel(color.g) + 0.0722 * toLinearChannel(color.b);\n\nconst contrastRatio = (foreground: RgbColor, background: RgbColor) => {\n const foregroundLuminance = relativeLuminance(foreground);\n const backgroundLuminance = relativeLuminance(background);\n const lighter = Math.max(foregroundLuminance, backgroundLuminance);\n const darker = Math.min(foregroundLuminance, backgroundLuminance);\n return (lighter + 0.05) / (darker + 0.05);\n};\n\nconst toHexColor = (color: RgbColor) => {\n const toHexChannel = (channel: number) => Math.round(channel).toString(16).padStart(2, \"0\");\n return `#${toHexChannel(color.r)}${toHexChannel(color.g)}${toHexChannel(color.b)}`;\n};\n\nconst mixRgbColors = (start: RgbColor, end: RgbColor, endWeight: number) => ({\n r: start.r * (1 - endWeight) + end.r * endWeight,\n g: start.g * (1 - endWeight) + end.g * endWeight,\n b: start.b * (1 - endWeight) + end.b * endWeight,\n});\n\nexport const contrastRatioForHexColors = (foregroundColor: string, backgroundColor: string) => {\n const foreground = parseHexColor(foregroundColor);\n const background = parseHexColor(backgroundColor);\n if (!foreground || !background) return 0;\n return contrastRatio(foreground, background);\n};\n\nconst findMatchingForeground = (background: RgbColor, target: RgbColor) => {\n for (let step = 1; step <= 50; step += 1) {\n const candidate = mixRgbColors(background, target, step / 50);\n if (contrastRatio(candidate, background) >= readableContrastRatio) {\n return { color: toHexColor(candidate), step };\n }\n }\n\n return { color: toHexColor(target), step: 50 };\n};\n\nexport const resolveReadableTextColor = (backgroundColor: string) => {\n const background = parseHexColor(backgroundColor);\n if (!background) return darkTextColor;\n\n const darkText = parseHexColor(darkColorTarget)!;\n const lightText = parseHexColor(lightTextColor)!;\n const darkerMatch = findMatchingForeground(background, darkText);\n const lighterMatch = findMatchingForeground(background, lightText);\n\n return darkerMatch.step <= lighterMatch.step ? darkerMatch.color : lighterMatch.color;\n};\n\nexport const mixHexColors = (startColor: string, endColor: string, startWeight: number) => {\n const start = parseHexColor(startColor);\n const end = parseHexColor(endColor);\n if (!start || !end) return null;\n\n return toHexColor(mixRgbColors(start, end, 1 - startWeight));\n};\n\nexport const resolveColorCellStyle = (color: DataTableThemeColor) => {\n const lightForeground = color.foreground?.light ?? resolveReadableTextColor(color.light);\n const darkForeground = color.foreground?.dark ?? resolveReadableTextColor(color.dark);\n\n return {\n backgroundColor: `light-dark(${color.light}, ${color.dark})`,\n color: `light-dark(${lightForeground}, ${darkForeground})`,\n };\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\n}\n\nconst toDisplayPercent = (value: number) => Math.round(value * 100) / 100;\n\nconst mixColors = (startColor: string, endColor: string, startWeight: number) => {\n const mixedColor = mixHexColors(startColor, endColor, startWeight);\n if (mixedColor) return mixedColor;\n\n return `color-mix(in srgb, ${startColor} ${toDisplayPercent(startWeight * 100)}%, ${endColor})`;\n};\n\nconst mixThemeColors = (start: DataTableThemeColor, end: DataTableThemeColor, startWeight: number) => {\n const foreground =\n start.foreground && end.foreground\n ? {\n light: mixColors(start.foreground.light, end.foreground.light, startWeight),\n dark: mixColors(start.foreground.dark, end.foreground.dark, startWeight),\n }\n : undefined;\n\n return {\n light: mixColors(start.light, end.light, startWeight),\n dark: mixColors(start.dark, end.dark, startWeight),\n ...(foreground ? { foreground } : {}),\n };\n};\n\nexport const resolveColorScaleValue = (value: unknown, stops: DataTableColorScaleStop[]) => {\n if (typeof value !== \"number\" || !Number.isFinite(value) || stops.length < 2) return null;\n\n const firstStop = stops[0]!;\n const lastStop = stops[stops.length - 1]!;\n const range = lastStop.value - firstStop.value;\n if (range <= 0) return null;\n\n if (value <= firstStop.value) return firstStop.color;\n if (value >= lastStop.value) return lastStop.color;\n\n const endIndex = stops.findIndex((stop) => value <= stop.value);\n const startStop = stops[endIndex - 1]!;\n const endStop = stops[endIndex]!;\n const segmentProgress = (value - startStop.value) / (endStop.value - startStop.value);\n const startWeight = 1 - segmentProgress;\n return mixThemeColors(startStop.color, endStop.color, startWeight);\n};\n\nexport const ColorScaleCell = (props: ColorScaleCellProps) => {\n const { value } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n {value}\n </Text>\n );\n};\n","import { Badge } from \"@chakra-ui/react\";\nimport type { DataTableBadgeCategory } from \"./types\";\n\ninterface DataTableBadgeCellProps {\n value: string | number | boolean;\n categories?: DataTableBadgeCategory[];\n}\n\nexport const DataTableBadgeCell = (props: DataTableBadgeCellProps) => {\n const { value, categories } = props;\n const palette = categories?.find((category) => category.value === value)?.palette ?? \"gray\";\n\n return (\n <Badge variant=\"subtle\" size=\"sm\" colorPalette={palette} maxW=\"full\" truncate>\n {String(value)}\n </Badge>\n );\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\nconst relativeUnits = [\n { unit: \"year\", seconds: 365 * 24 * 60 * 60 },\n { unit: \"month\", seconds: 30 * 24 * 60 * 60 },\n { unit: \"day\", seconds: 24 * 60 * 60 },\n { unit: \"hour\", seconds: 60 * 60 },\n { unit: \"minute\", seconds: 60 },\n] as const;\n\nconst parseDate = (value: unknown) => {\n if (typeof value !== \"string\") return null;\n const time = Date.parse(value);\n return Number.isNaN(time) ? null : new Date(time);\n};\n\nexport const formatDataTableRelativeDate = (value: unknown, now = new Date(), locale?: string) => {\n const date = parseDate(value);\n if (!date) return null;\n const format = new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n const elapsedSeconds = (date.getTime() - now.getTime()) / 1000;\n const match = relativeUnits.find((candidate) => Math.abs(elapsedSeconds) >= candidate.seconds);\n if (!match) return format.format(0, \"second\");\n return format.format(Math.round(elapsedSeconds / match.seconds), match.unit);\n};\n\ninterface DataTableDateCellProps {\n value: string;\n}\n\nexport const DataTableDateCell = (props: DataTableDateCellProps) => {\n const { value } = props;\n const [now, setNow] = useState(() => new Date());\n useEffect(() => {\n const timer = setInterval(() => setNow(new Date()), 60_000);\n return () => clearInterval(timer);\n }, []);\n const relativeLabel = formatDataTableRelativeDate(value, now);\n const fullDate = new Date(value).toLocaleString(undefined, { dateStyle: \"medium\", timeStyle: \"short\" });\n\n return (\n <Tooltip content={fullDate} openDelay={300}>\n <Text as=\"span\" tabIndex={0} textStyle=\"paragraph/S/regular\" color=\"fg.muted\" whiteSpace=\"nowrap\">\n {relativeLabel}\n </Text>\n </Tooltip>\n );\n};\n","import { DiffBubble } from \"../diff-viewer/diff-bubble\";\nimport type { DataTableDiffValue } from \"./types\";\n\nexport const DataTableDiffCell = (props: { value: DataTableDiffValue }) => {\n const { value } = props;\n return <DiffBubble additions={value.additions} deletions={value.deletions} variant=\"ghost\" size=\"small\" />;\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\n// Long paths keep their start and final characters, so the folder name stays readable (design/DESIGN.md).\nconst visibleEndLength = 5;\n\nexport const DataTablePathCell = (props: { value: string }) => {\n const { value } = props;\n const start = value.slice(0, -visibleEndLength);\n const end = value.slice(-visibleEndLength);\n\n return (\n <Tooltip content={value} openDelay={300}>\n <chakra.span\n display=\"inline-flex\"\n minW=\"0\"\n maxW=\"full\"\n tabIndex={0}\n textStyle=\"paragraph/S/regular\"\n whiteSpace=\"nowrap\"\n >\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\">\n {start}\n </chakra.span>\n <chakra.span flexShrink={0}>{end}</chakra.span>\n </chakra.span>\n </Tooltip>\n );\n};\n","import { ParamEditor } from \"@/components/param-editor\";\n\ninterface JsonField {\n label: string;\n value: unknown;\n}\n\nexport interface FriendlyJsonDisplayProps {\n value: unknown;\n}\n\nconst imageExtensionPattern = /\\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i;\nconst imageLabelPattern = /(^|\\s)(avatar|image|logo|photo|picture|thumbnail)(\\s|$)/i;\n\nconst humanizeKey = (key: string) => {\n const words = key\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .trim()\n .toLowerCase();\n\n return words ? `${words[0]?.toUpperCase()}${words.slice(1)}` : \"Details\";\n};\n\nconst formatPath = (path: string[]) => path.map((part) => (/^\\d+$/.test(part) ? part : humanizeKey(part))).join(\" / \");\n\nconst isPrimitiveArray = (value: unknown[]) => value.every((item) => item === null || typeof item !== \"object\");\n\nconst appendJsonFields = (value: unknown, path: string[], fields: JsonField[]) => {\n if (Array.isArray(value)) {\n if (value.length === 0 || isPrimitiveArray(value)) {\n fields.push({ label: formatPath(path), value });\n return;\n }\n\n value.forEach((item, index) => {\n appendJsonFields(item, [...path, String(index + 1)], fields);\n });\n return;\n }\n\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n fields.push({ label: formatPath(path), value: null });\n return;\n }\n\n entries.forEach(([key, item]) => {\n appendJsonFields(item, [...path, key], fields);\n });\n return;\n }\n\n fields.push({ label: formatPath(path), value });\n};\n\nexport const parseJsonCellValue = (value: unknown) => {\n if (typeof value !== \"string\") return value;\n\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return value;\n }\n};\n\nexport const buildJsonFields = (value: unknown) => {\n const fields: JsonField[] = [];\n appendJsonFields(parseJsonCellValue(value), [], fields);\n return fields.map((field) => ({ ...field, label: field.label || \"Value\" }));\n};\n\nexport const isJsonImageValue = (value: unknown, label: string) => {\n if (typeof value !== \"string\") return false;\n if (value.startsWith(\"data:image/\")) return true;\n\n try {\n const url = new URL(value);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return false;\n return imageExtensionPattern.test(url.pathname) || imageLabelPattern.test(label);\n } catch {\n return false;\n }\n};\n\nexport const isJsonImageArray = (value: unknown, label: string) => {\n return Array.isArray(value) && value.length > 0 && value.every((item) => isJsonImageValue(item, label));\n};\n\nconst formatJsonPrimitive = (value: unknown) => {\n if (value === null || value === undefined || value === \"\") return \"Not provided\";\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n return String(value);\n};\n\nconst formatJsonValue = (value: unknown) => {\n if (Array.isArray(value)) return value.length === 0 ? \"None\" : value.map(formatJsonPrimitive).join(\", \");\n return formatJsonPrimitive(value);\n};\n\nexport const getJsonCellSummary = (value: unknown) => {\n const parsedValue = parseJsonCellValue(value);\n if (Array.isArray(parsedValue) && parsedValue.length === 0) return \"No details\";\n if (parsedValue !== null && typeof parsedValue === \"object\" && Object.keys(parsedValue).length === 0) {\n return \"No details\";\n }\n\n const fields = buildJsonFields(value).filter(\n (field) => !isJsonImageValue(field.value, field.label) && !isJsonImageArray(field.value, field.label),\n );\n if (fields.length === 0) return \"No details\";\n\n const visibleValues = fields.slice(0, 2).map((field) => formatJsonValue(field.value));\n const remainingCount = fields.length - visibleValues.length;\n return [...visibleValues, remainingCount > 0 ? `${remainingCount} more` : null].filter(Boolean).join(\" · \");\n};\n\nconst toReadOnlyValue = (field: JsonField) => {\n const { label, value } = field;\n if (isJsonImageValue(value, label)) {\n return { type: \"image\" as const, src: String(value), alt: `${label} preview` };\n }\n if (Array.isArray(value) && isJsonImageArray(value, label)) {\n return {\n type: \"image-gallery\" as const,\n images: value.map((image, index) => ({ src: String(image), alt: `${label} ${index + 1} preview` })),\n };\n }\n if (Array.isArray(value)) return value as Array<string | number | boolean | null>;\n if (value === undefined) return null;\n return value as string | number | boolean | null;\n};\n\nexport const buildFriendlyJsonParams = (value: unknown) =>\n buildJsonFields(value).map((field, index) => ({\n id: `friendly-json-${index}`,\n name: field.label,\n type: \"readOnly\" as const,\n value: toReadOnlyValue(field),\n }));\n\nexport const FriendlyJsonDisplay = (props: FriendlyJsonDisplayProps) => {\n const { value } = props;\n return <ParamEditor params={buildFriendlyJsonParams(value)} readOnly fullWidth />;\n};\n","import { Button, HStack, Image, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Braces, ChevronRight } from \"lucide-react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport {\n buildJsonFields,\n FriendlyJsonDisplay,\n getJsonCellSummary,\n isJsonImageArray,\n isJsonImageValue,\n} from \"./friendly-json-display\";\n\ninterface JsonCellProps {\n columnLabel: string;\n value: unknown;\n}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value } = props;\n const fields = buildJsonFields(value);\n const imageFields = fields\n .flatMap((field) => {\n if (isJsonImageValue(field.value, field.label)) return [field];\n if (!Array.isArray(field.value) || !isJsonImageArray(field.value, field.label)) return [];\n return field.value.map((image, index) => ({ label: `${field.label} ${index + 1}`, value: image }));\n })\n .slice(0, 2);\n const summary = getJsonCellSummary(value);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 6 } }}>\n <Popover.Trigger asChild>\n <Button\n aria-label={`View ${columnLabel} details`}\n variant=\"ghost\"\n size=\"xs\"\n width=\"full\"\n minWidth=\"0\"\n height=\"28px\"\n paddingX=\"2xs\"\n justifyContent=\"flex-start\"\n onClick={stopRowActivation}\n >\n {imageFields.length > 0 ? (\n <HStack gap=\"-1\" flexShrink=\"0\">\n {imageFields.map((field) => (\n <Image\n key={field.label}\n src={String(field.value)}\n alt={`${field.label} preview`}\n boxSize=\"22px\"\n borderRadius=\"xs\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n ) : (\n <Braces size={14} />\n )}\n <Text flex=\"1\" minWidth=\"0\" textAlign=\"left\" textStyle=\"paragraph/S/regular\" truncate>\n {summary}\n </Text>\n <ChevronRight size={12} />\n </Button>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"min(380px, calc(100vw - 32px))\" padding=\"0\" background=\"bg\" overflow=\"hidden\">\n <ScrollArea maxH=\"360px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <FriendlyJsonDisplay value={value} />\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, chakra, IconButton, Menu, Portal, Text } from \"@chakra-ui/react\";\nimport type { CellContext, HeaderContext } from \"@tanstack/react-table\";\nimport { Check, ChevronDown, CircleHelp, Minus } from \"lucide-react\";\nimport { type CSSProperties, cloneElement, isValidElement, type ReactNode } from \"react\";\n\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport { CategoricalColorCell, resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { ColorScaleCell, resolveColorScaleValue } from \"./color-scale-cell\";\nimport { DataTableBadgeCell } from \"./data-table-badge-cell\";\nimport { isDataTableDiffValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { DataTableDateCell, formatDataTableRelativeDate } from \"./data-table-date-cell\";\nimport { DataTableDiffCell } from \"./data-table-diff-cell\";\nimport { DataTablePathCell } from \"./data-table-path-cell\";\nimport { formatDisplayValue } from \"./helpers\";\nimport { JsonCell } from \"./json-cell\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst toSingleLineElement = (element: ReactNode) => {\n if (!isValidElement<{ style?: CSSProperties }>(element)) return element;\n\n return cloneElement(element, {\n style: {\n ...element.props.style,\n flexWrap: \"nowrap\",\n minWidth: 0,\n whiteSpace: \"nowrap\",\n },\n });\n};\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\nexport const SelectionHeader = (props: HeaderContext<RowData, unknown>) => {\n const { table } = props;\n const checked = table.getIsAllRowsSelected();\n const isIndeterminate = !checked && table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n checked={checked ? true : isIndeterminate ? \"indeterminate\" : false}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={isIndeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => table.toggleAllRowsSelected(details.checked === true)}\n />\n );\n};\n\nexport const SelectionCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { selectedRowIds } = column.columnDef.meta as DataTableColumnMeta;\n\n return (\n <Checkbox\n checked={Boolean(selectedRowIds?.[row.id])}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => row.toggleSelected(details.checked === true)}\n />\n );\n};\n\nconst mergeRowActions = (rowActions: DataTableRowAction[], dynamicActions: DataTableRowAction[]) => {\n const dynamicLabels = new Set(dynamicActions.map((action) => action.label));\n return [...dynamicActions, ...rowActions.filter((action) => !dynamicLabels.has(action.label))];\n};\n\nexport const RowActionsCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { rowActions: actions = [], getRowActions: getActions } = column.columnDef.meta as DataTableColumnMeta;\n const resolvedActions = mergeRowActions(actions, getActions?.(row.original) ?? []);\n\n if (resolvedActions.length === 0) return null;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Row actions\" size=\"2xs\" variant=\"ghost\" onClick={stopControlPropagation}>\n <ChakraIcon as={ChevronDown} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n {resolvedActions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onClick={stopControlPropagation}\n onActivate={() => action.onSelect(row.original)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n\ninterface FormattedCellProps {\n value: unknown;\n wrapRows: boolean;\n}\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows } = props;\n const displayValue = formatDisplayValue(value);\n\n if (isValidElement(displayValue)) {\n return (\n <chakra.span\n display=\"inline-flex\"\n maxWidth=\"full\"\n minW=\"0\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {wrapRows ? displayValue : toSingleLineElement(displayValue)}\n </chakra.span>\n );\n }\n\n return (\n <Text\n maxWidth=\"full\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n textStyle=\"paragraph/S/regular\"\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {displayValue}\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} />;\n\n if (renderer?.type === \"badge\" && [\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n return <DataTableBadgeCell value={value as string | number | boolean} categories={renderer.categories} />;\n }\n\n if (renderer?.type === \"diff\" && isDataTableDiffValue(value)) return <DataTableDiffCell value={value} />;\n\n if (renderer?.type === \"path\" && typeof value === \"string\" && !wrapRows) return <DataTablePathCell value={value} />;\n\n if (renderer?.type === \"date\") {\n if (formatDataTableRelativeDate(value)) return <DataTableDateCell value={value as string} />;\n }\n\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return <ColorScaleCell value={value} />;\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) {\n return (\n <CategoricalColorCell>\n <FormattedCell value={value} wrapRows={wrapRows} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} />;\n};\n\nexport const RowIndexCell = (props: CellContext<RowData, number>) => {\n const { getValue } = props;\n return (\n <chakra.span display=\"block\" textStyle=\"paragraph/S/regular\" textAlign=\"center\">\n {getValue()}\n </chakra.span>\n );\n};\n\nexport const ColumnDataCell = (props: CellContext<RowData, unknown>) => {\n const { column, getValue } = props;\n const { renderer, wrapRows = false } = column.columnDef.meta as DataTableColumnMeta;\n return <DataCell columnLabel={column.id} renderer={renderer} value={getValue()} wrapRows={wrapRows} />;\n};\n\nexport const ColumnHeader = (props: HeaderContext<RowData, unknown>) => {\n const { column } = props;\n const { headerLabel, headerIcon, columnDescription } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <chakra.span display=\"inline-flex\" alignItems=\"center\" gap=\"4px\" minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {headerIcon}\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\">\n {headerLabel}\n </chakra.span>\n {columnDescription ? (\n <Tooltip content={columnDescription}>\n <ChakraIcon\n as={CircleHelp}\n aria-label={`About ${headerLabel}`}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor=\"help\"\n flexShrink={0}\n opacity={0.6}\n tabIndex={0}\n />\n </Tooltip>\n ) : null}\n </chakra.span>\n );\n};\n","import type { RowSelectionState } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\nimport { resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { resolveColorCellStyle } from \"./color-cell-style\";\nimport { resolveColorScaleValue } from \"./color-scale-cell\";\nimport {\n ColumnDataCell,\n ColumnHeader,\n RowActionsCell,\n RowIndexCell,\n SelectionCell,\n SelectionHeader,\n} from \"./data-table-cell-renderers\";\nimport { resolveDataTableComparableValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { columnHelper, getIcon } from \"./helpers\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst compareValues = (valueA: unknown, valueB: unknown) => {\n if (valueA === valueB) return 0;\n if (valueA === null || valueA === undefined) return 1;\n if (valueB === null || valueB === undefined) return -1;\n\n if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n return valueA - valueB;\n }\n\n return String(valueA).localeCompare(String(valueB));\n};\n\ninterface BuildColumnsOptions {\n columnIcons?: Partial<Record<string, ReactNode>>;\n columnDescriptions?: Partial<Record<string, string>>;\n compactHeaders?: Partial<Record<string, string>>;\n enableSelection?: boolean;\n selectedRowIds?: RowSelectionState;\n rowActions?: DataTableRowAction[];\n getRowActions?: (row: RowData) => DataTableRowAction[];\n columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;\n wrapRows?: boolean;\n}\n\nconst resolveDataCellStyle = (value: unknown, renderer?: DataTableColumnRenderer) => {\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return resolveColorCellStyle(color);\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) return resolveColorCellStyle(color);\n }\n};\n\nexport function buildColumns(data: RowData[], columnKeys: string[], options: BuildColumnsOptions = {}) {\n const {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection = false,\n selectedRowIds,\n rowActions = [],\n getRowActions,\n columnRenderers,\n wrapRows = false,\n } = options;\n const rowIndexColumn = columnHelper.accessor((_row, rowIndex) => rowIndex + 1, {\n header: \"\",\n id: \"rowIndex\",\n enableResizing: false,\n size: 20,\n cell: RowIndexCell,\n });\n\n const selectionColumn = columnHelper.display({\n id: \"rowSelection\",\n header: SelectionHeader,\n cell: SelectionCell,\n meta: { selectedRowIds } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n const dataColumns = columnKeys.map((key) => {\n const fallBackKey = key || \"-\";\n const columnValues = data.map((row) => row[fallBackKey]);\n const renderer = columnRenderers?.[fallBackKey];\n const customIcon = columnIcons?.[fallBackKey];\n const headerIcon = customIcon === undefined ? getIcon(columnValues) : customIcon;\n const columnDescription = columnDescriptions?.[fallBackKey];\n\n return columnHelper.accessor((row) => row[fallBackKey], {\n id: fallBackKey,\n header: ColumnHeader,\n cell: ColumnDataCell,\n meta: {\n headerLabel: compactHeaders?.[fallBackKey] ?? fallBackKey,\n headerIcon,\n columnDescription,\n renderer,\n wrapRows,\n getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n } satisfies DataTableColumnMeta,\n sortingFn: (rowA, rowB) => {\n const valueA = resolveDataTableComparableValue(rowA.original[fallBackKey], renderer);\n const valueB = resolveDataTableComparableValue(rowB.original[fallBackKey], renderer);\n return compareValues(valueA, valueB);\n },\n });\n });\n\n const rowActionsColumn = columnHelper.display({\n id: \"rowActions\",\n header: \"\",\n cell: RowActionsCell,\n meta: { rowActions, getRowActions } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n return [\n rowIndexColumn,\n ...(enableSelection ? [selectionColumn] : []),\n ...dataColumns,\n ...(rowActions.length > 0 || getRowActions ? [rowActionsColumn] : []),\n ];\n}\n","import { Box, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { closestCenter, DndContext, type DragEndEvent, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Check, GripVertical, Settings2 } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { SearchableMenuInput } from \"@/components/overlays/searchable-menu-input\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { DataTableRowDisplaySwitch } from \"./data-table-row-display\";\n\ninterface DataTableColumnMenuColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableColumnMenuProps {\n columns: DataTableColumnMenuColumn[];\n visibleColumnIds: Set<string>;\n wrapRows: boolean;\n showStats: boolean;\n statsAvailable: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n onWrapRowsChange: (wrapRows: boolean) => void;\n onStatsVisibilityChange: (showStats: boolean) => void;\n}\n\ninterface DataTableColumnMenuRowProps {\n column: DataTableColumnMenuColumn;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst DataTableColumnMenuRow = (props: DataTableColumnMenuRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <HStack\n ref={setNodeRef}\n style={style}\n gap=\"2xs\"\n minW=\"0\"\n width=\"full\"\n borderRadius=\"xs\"\n px=\"xs\"\n py=\"2xs\"\n _hover={{ bg: \"bg.hover\" }}\n >\n <Box as=\"span\" display=\"inline-flex\" cursor=\"grab\" color=\"fg.muted\" {...attributes} {...listeners}>\n <GripVertical size={14} />\n </Box>\n <Checkbox\n checked={checked}\n flex=\"1\"\n minW=\"0\"\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n size=\"sm\"\n icon={<Icon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onCheckedChange={(details) => onColumnVisibilityChange(column.id, details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\" truncate>\n {column.label}\n </Text>\n </Checkbox>\n </HStack>\n );\n};\n\nexport const DataTableColumnMenu = (props: DataTableColumnMenuProps) => {\n const {\n columns,\n visibleColumnIds,\n wrapRows,\n showStats,\n statsAvailable,\n onColumnVisibilityChange,\n onColumnReorder,\n onWrapRowsChange,\n onStatsVisibilityChange,\n } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n const normalizedQuery = query.trim().toLowerCase();\n const filteredColumns = normalizedQuery\n ? columns.filter((column) => column.label.toLowerCase().includes(normalizedQuery))\n : columns;\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n\n const closeOnOutsidePointerDown = (event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;\n\n setOpen(false);\n };\n const closeOnEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.addEventListener(\"keydown\", closeOnEscape, true);\n return () => {\n document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"keydown\", closeOnEscape, true);\n };\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-end\",\n offset: { mainAxis: 8 },\n getAnchorElement: () => triggerRef.current,\n }}\n >\n <Popover.Trigger asChild>\n <IconButton\n ref={triggerRef}\n aria-label=\"Display settings\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content ref={contentRef} width=\"min(320px, calc(100vw - 32px))\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <Stack gap=\"0\">\n <DataTableRowDisplaySwitch showDivider wrapRows={wrapRows} onWrapRowsChange={onWrapRowsChange} />\n {statsAvailable ? (\n <Box borderBottomWidth=\"1px\" borderColor=\"border.subtle\" padding=\"xs\">\n <Switch\n checked={showStats}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => onStatsVisibilityChange(details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\">\n Statistics\n </Text>\n </Switch>\n </Box>\n ) : null}\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <Box padding=\"2xs\">\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\">\n {filteredColumns.map((column) => (\n <DataTableColumnMenuRow\n key={column.id}\n column={column}\n checked={visibleColumnIds.has(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </Box>\n </ScrollArea>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\nimport {\n type Cell,\n flexRender,\n type Header,\n type HeaderGroup,\n type Row,\n type Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDownAZ, ArrowUpAZ, MoreVertical } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport type { DataTableCellContext, DataTableProps, RowData } from \"./types\";\n\nconst utilityColumnIds = new Set([\"rowIndex\", \"rowSelection\", \"rowActions\"]);\n\nconst getSortMenuIcon = (sortDirection: false | \"asc\" | \"desc\") => {\n if (sortDirection === \"asc\") return ArrowUpAZ;\n if (sortDirection === \"desc\") return ArrowDownAZ;\n return MoreVertical;\n};\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n}\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, table, fullWidth, hasDescription } = props;\n const sortDirection = header.column.getIsSorted();\n const canSortColumn = !utilityColumnIds.has(header.column.id) && table.getCoreRowModel().rows.length > 1;\n const SortIcon = getSortMenuIcon(sortDirection);\n const tooltipContent =\n header.column.id === \"rowSelection\"\n ? \"Select all\"\n : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n key={header.id}\n overflow=\"hidden\"\n position=\"relative\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n <Tooltip content={tooltipContent} disabled={hasDescription}>\n <Flex className=\"group\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"1\" flex=\"1\" minW=\"0\">\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n {canSortColumn && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n aria-label={sortDirection ? `Sorted ${sortDirection}` : \"Sort column\"}\n variant=\"ghost\"\n visibility={sortDirection ? \"visible\" : \"hidden\"}\n _groupHover={{ visibility: \"visible\" }}\n >\n <ChakraIcon as={SortIcon} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <Menu.Item value=\"sort-asc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort ascending\"\n icon={<ChakraIcon as={ArrowUpAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"asc\"}\n onActivate={() => header.column.toggleSorting(false)}\n />\n </Menu.Item>\n <Menu.Item value=\"sort-desc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort descending\"\n icon={<ChakraIcon as={ArrowDownAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"desc\"}\n onActivate={() => header.column.toggleSorting(true)}\n />\n </Menu.Item>\n {sortDirection && (\n <Menu.Item value=\"clear-sort\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Clear sort\"\n onActivate={() => header.column.clearSorting()}\n />\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n )}\n {header.column.getCanResize() && (\n <span\n {...{\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: `resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`,\n }}\n />\n )}\n </Flex>\n </Tooltip>\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableCellViewProps {\n cell: Cell<RowData, unknown>;\n row: Row<RowData>;\n wrapRows: boolean;\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nconst DataTableCellView = (props: DataTableCellViewProps) => {\n const { cell, row, wrapRows, getCellContextMenuActions } = props;\n const columnMeta = cell.column.columnDef.meta as DataTableColumnMeta | undefined;\n const cellStyle = columnMeta?.getCellStyle?.(cell.getValue());\n const cellContext: DataTableCellContext = {\n row: row.original,\n rowId: row.id,\n columnId: cell.column.id,\n value: cell.getValue(),\n };\n const contextActions =\n getCellContextMenuActions?.(cellContext).map((action) => ({\n key: action.label,\n label: action.label,\n icon: action.icon,\n onClick: () => action.onSelect(cellContext),\n })) ?? [];\n const cellElement = (\n <Table.Cell\n data-column-id={cell.column.id}\n width=\"fit-content\"\n maxWidth=\"12rem\"\n overflow=\"hidden\"\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n padding=\"xs\"\n height={wrapRows ? undefined : \"10\"}\n maxHeight={wrapRows ? undefined : \"10\"}\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n key={cell.id}\n textStyle=\"paragraph/S/regular\"\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n style={cellStyle}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n\n if (contextActions.length === 0) return cellElement;\n\n return (\n <ResourceContextMenu key={cell.id} actions={contextActions}>\n {cellElement}\n </ResourceContextMenu>\n );\n};\n\ninterface DataTableBodyRowProps {\n row: Row<RowData>;\n noBorder?: boolean;\n rowIsInteractive: boolean;\n rowIsActive: boolean;\n rowIsSelected: boolean;\n wrapRows: boolean;\n onRowClick?: DataTableProps[\"onRowClick\"];\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nexport const DataTableBodyRow = (props: DataTableBodyRowProps) => {\n const {\n row,\n noBorder,\n rowIsInteractive,\n rowIsActive,\n rowIsSelected,\n wrapRows,\n onRowClick,\n getCellContextMenuActions,\n } = props;\n\n return (\n <Table.Row\n key={row.id}\n data-active={rowIsActive ? \"true\" : undefined}\n data-selected={rowIsSelected ? \"true\" : undefined}\n aria-selected={rowIsSelected ? \"true\" : undefined}\n height={wrapRows ? undefined : \"10\"}\n cursor={rowIsInteractive ? \"pointer\" : undefined}\n onClick={rowIsInteractive ? () => onRowClick?.(row.original) : undefined}\n borderTop={noBorder ? \"none\" : \"1px solid\"}\n borderBottom=\"1px solid\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n _last={{ borderBottom: noBorder ? \"none\" : \"1px solid\", borderColor: \"border.subtle\" }}\n borderColor=\"border.subtle\"\n background={rowIsActive ? \"bg.active\" : \"bg\"}\n >\n {row.getVisibleCells().map((cell) => (\n <DataTableCellView\n key={cell.id}\n cell={cell}\n row={row}\n wrapRows={wrapRows}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n </Table.Row>\n );\n};\n","import \"./data-table.css\";\n\nimport { Box, Flex, Table } from \"@chakra-ui/react\";\nimport {\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { Fragment, lazy, Suspense, useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableColumnMenu } from \"./data-table-column-menu\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n getSelectedOriginalRows,\n reorderDataTableColumns,\n resolveDataTableColumnOrder,\n resolveDataTableRowId,\n resolveDataTableToolbarStorageKey,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n shouldHighlightActiveRow,\n toggleHiddenDataTableColumn,\n} from \"./data-table-state\";\nimport { DataTableBodyRow, DataTableColumnHeader } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, RowData } from \"./types\";\n\nconst DataTableStatsRow = lazy(() =>\n import(\"./data-table-stats-row\").then((module) => ({ default: module.DataTableStatsRow })),\n);\n\ninterface DatasetPaginationProps {\n table: ReturnType<typeof useReactTable<RowData>>;\n pagination: PaginationState;\n pageSizeOptions: number[];\n}\n\nconst buildColumnMenuColumns = (columnKeys: string[], compactHeaders?: Partial<Record<string, string>>) =>\n columnKeys.map((columnId) => ({ id: columnId, label: compactHeaders?.[columnId] ?? columnId }));\n\nconst resolveColumnSizeVars = (table: ReturnType<typeof useReactTable<RowData>>) => {\n const colSizes: Record<string, number> = {};\n for (const header of table.getFlatHeaders()) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n return colSizes;\n};\n\nconst DatasetPagination = (props: DatasetPaginationProps) => {\n const { table, pagination, pageSizeOptions } = props;\n\n return (\n <PaginationFooter\n pageCount={table.getPageCount()}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n pageSizeOptions={pageSizeOptions}\n totalRows={table.getCoreRowModel().rows.length}\n onPageChange={table.setPageIndex}\n onPageSizeChange={table.setPageSize}\n />\n );\n};\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n data,\n noBorder,\n fullWidth,\n hiddenColumns,\n defaultHiddenColumns,\n defaultShowStats = true,\n onRowClick,\n isRowInteractive,\n activeRowId,\n columnIcons,\n columnDescriptions,\n compactHeaders,\n columnStats,\n columnRenderers,\n initialPageSize,\n pageSizeOptions = [10, 20, 30, 50, 100],\n rowActions = [],\n getRowActions,\n getRowId,\n toolbarStorageKey,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const [sorting, setSorting] = useState<SortingState>([]);\n const [pagination, setPagination] = useState<PaginationState>(() => ({\n pageIndex: 0,\n pageSize: resolveInitialPageSize({ initialPageSize }),\n }));\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [showStats, setShowStats] = useState(defaultShowStats);\n const [wrapRows, setWrapRows] = useState(false);\n const [columnOrder, setColumnOrder] = useState<string[]>(() => {\n const propHiddenColumnsSet = new Set(hiddenColumns ?? []);\n return Object.keys(data[0] || {}).filter((key) => !propHiddenColumnsSet.has(key));\n });\n const [hiddenColumnMenuIds, setHiddenColumnMenuIds] = useState<Set<string>>(() => new Set(defaultHiddenColumns));\n const hiddenColumnsSet = new Set(hiddenColumns ?? []);\n const baseColumnKeys = Object.keys(data[0] || {}).filter((key) => !hiddenColumnsSet.has(key));\n const orderedBaseColumnKeys = resolveDataTableColumnOrder(baseColumnKeys, columnOrder);\n const visibleColumnIds = new Set(orderedBaseColumnKeys.filter((key) => !hiddenColumnMenuIds.has(key)));\n const columnKeys = orderedBaseColumnKeys.filter((key) => visibleColumnIds.has(key));\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const rendererAttributes = buildDataTableRendererAttributes(\n data,\n orderedBaseColumnKeys,\n compactHeaders,\n columnRenderers,\n );\n const rendererRows = buildDataTableRendererRows(data, orderedBaseColumnKeys, getRowId, columnRenderers);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({\n toolbarStorageKey,\n columnKeys: baseColumnKeys,\n });\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, {\n settings: { viewMode: \"list\" },\n views: props.defaultViews,\n activeViewId: props.defaultActiveViewId,\n });\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const columns = buildColumns(data, columnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows,\n });\n\n const table = useReactTable({\n data: filteredData,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { sorting, pagination, rowSelection },\n getRowId: (row, index) => resolveDataTableRowId(row, index, getRowId),\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onSortingChange: setSorting,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection,\n getSortedRowModel: getSortedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n useEffect(() => {\n const pageCount = table.getPageCount();\n if (pageCount === 0 || pagination.pageIndex < pageCount) return;\n\n setPagination((current) => ({\n ...current,\n pageIndex: Math.max(pageCount - 1, 0),\n }));\n }, [pagination.pageIndex, table]);\n\n const columnSizeVars = resolveColumnSizeVars(table);\n\n const selectedRows = table.getSelectedRowModel().rows;\n const allRows = table.getCoreRowModel().rows;\n const selectedOriginalRows = getSelectedOriginalRows(selectedRows);\n const columnControl = (\n <DataTableColumnMenu\n columns={buildColumnMenuColumns(orderedBaseColumnKeys, compactHeaders)}\n visibleColumnIds={visibleColumnIds}\n wrapRows={wrapRows}\n showStats={showStats}\n statsAvailable={Boolean(columnStats)}\n onColumnVisibilityChange={(columnId, visible) =>\n setHiddenColumnMenuIds((current) => toggleHiddenDataTableColumn(current, columnId, visible))\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setColumnOrder((current) =>\n reorderDataTableColumns(resolveDataTableColumnOrder(baseColumnKeys, current), activeColumnId, overColumnId),\n )\n }\n onWrapRowsChange={setWrapRows}\n onStatsVisibilityChange={setShowStats}\n />\n );\n\n return (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={columnControl}\n defaultViews={props.defaultViews}\n defaultActiveViewId={props.defaultActiveViewId}\n />\n <Box position=\"relative\" flex=\"1\" minHeight=\"0\">\n <ScrollArea height=\"100%\" maxWidth=\"unset\" showHorizontalScrollbar>\n <Table.Root\n className={`data-table${fullWidth ? \" full-width\" : \"\"}`}\n style={{ ...columnSizeVars, width: fullWidth ? \"100%\" : table.getTotalSize() }}\n >\n <Table.Header>\n {table.getHeaderGroups().map((headerGroup) => (\n <Fragment key={headerGroup.id}>\n <Table.Row\n className=\"data-table-column-header-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableColumnHeader\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n table={table}\n fullWidth={fullWidth}\n hasDescription={Boolean(columnDescriptions?.[header.column.id])}\n />\n ))}\n </Table.Row>\n {columnStats && showStats ? (\n <Suspense fallback={null}>\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={filteredData}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n </Suspense>\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {table.getRowModel().rows.map((row) => {\n const rowIsInteractive = onRowClick ? (isRowInteractive?.(row.original) ?? true) : false;\n const rowIsActive = shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id });\n const rowIsSelected = row.getIsSelected();\n\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={rowIsInteractive}\n rowIsActive={rowIsActive}\n rowIsSelected={rowIsSelected}\n wrapRows={wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={allRows.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={selectedOriginalRows}\n />\n ) : null}\n </Box>\n {table.getPageCount() > 1 && (\n <DatasetPagination table={table} pagination={pagination} pageSizeOptions={pageSizeOptions} />\n )}\n </Flex>\n );\n};\n\nexport const DataTable = (props: DataTableProps) => {\n if (props.editMode) return <EditModeDataTable {...props} />;\n return <DatasetDataTable {...props} />;\n};\n","import \"./data-table.css\";\n\nimport { Skeleton, Table, Text } from \"@chakra-ui/react\";\n\nexport interface DataTableSkeletonColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableSkeletonProps {\n /** Real column headers when the caller already knows them. */\n columns?: DataTableSkeletonColumn[];\n /** Placeholder column count when the headers are still unknown. */\n columnCount?: number;\n rowCount?: number;\n}\n\n// Deterministic width variation keeps the shimmer organic without re-rendering\n// to a different layout on every mount.\nconst cellWidths = [\"70%\", \"45%\", \"60%\", \"35%\", \"55%\"];\n\nexport const DataTableSkeleton = (props: DataTableSkeletonProps) => {\n const { columns, columnCount = 3, rowCount = 5 } = props;\n const headers =\n columns && columns.length > 0\n ? columns\n : Array.from({ length: columnCount }, (_, index) => ({ id: `column-${index + 1}`, label: \"\" }));\n\n return (\n <Table.Root className=\"data-table full-width\" width=\"100%\">\n <Table.Header>\n <Table.Row className=\"data-table-column-header-row\" borderRight=\"1px solid\" borderColor=\"border.subtle\">\n {headers.map((column) => (\n <Table.ColumnHeader\n key={column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n whiteSpace=\"nowrap\"\n >\n {column.label ? (\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {column.label}\n </Text>\n ) : (\n <Skeleton height=\"12px\" width=\"4rem\" borderRadius=\"xs\" />\n )}\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {Array.from({ length: rowCount }, (_, rowIndex) => (\n <Table.Row key={rowIndex}>\n {headers.map((column, columnIndex) => (\n <Table.Cell\n key={column.id}\n padding=\"xs\"\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n >\n <Skeleton\n height=\"14px\"\n width={cellWidths[(rowIndex + columnIndex) % cellWidths.length]}\n borderRadius=\"xs\"\n />\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"data-table.js","names":["ReactNode","DataTableCategoricalColor","CategoricalColorCellProps","children","resolveCategoricalColor","value","categories","find","category","Object","is","color","CategoricalColorCell","props","DataTableThemeColor","RgbColor","r","g","b","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","split","map","character","join","parseHexColor","color","normalized","trim","startsWith","slice","expandedHex","length","test","Number","parseInt","toLinearChannel","channel","relativeLuminance","contrastRatio","foreground","background","foregroundLuminance","backgroundLuminance","lighter","Math","max","darker","min","toHexColor","toHexChannel","round","toString","padStart","mixRgbColors","start","end","endWeight","contrastRatioForHexColors","foregroundColor","backgroundColor","findMatchingForeground","target","step","candidate","resolveReadableTextColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","light","darkForeground","dark","Text","mixHexColors","DataTableColorScaleStop","DataTableThemeColor","ColorScaleCellProps","value","toDisplayPercent","Math","round","mixColors","startColor","endColor","startWeight","mixedColor","mixThemeColors","start","end","foreground","light","dark","undefined","resolveColorScaleValue","stops","Number","isFinite","length","firstStop","lastStop","range","color","endIndex","findIndex","stop","startStop","endStop","segmentProgress","ColorScaleCell","props","$","_c","t0","_c","Badge","DataTableBadgeCategory","DataTableBadgeCellProps","value","categories","DataTableBadgeCell","props","$","_c","t0","find","category","palette","t1","String","t2","_c","Text","useEffect","useState","Tooltip","relativeUnits","unit","seconds","const","parseDate","value","time","Date","parse","Number","isNaN","formatDataTableRelativeDate","now","locale","date","format","Intl","RelativeTimeFormat","numeric","elapsedSeconds","getTime","match","find","candidate","Math","abs","round","DataTableDateCellProps","DataTableDateCell","props","$","_c","setNow","_temp","t0","t1","Symbol","for","timer","setInterval","clearInterval","t2","relativeLabel","t3","toLocaleString","undefined","dateStyle","timeStyle","fullDate","t4","t5","_c","_temp","Tooltip","DiffBubble","DataTableDiffValue","DataTableDiffCell","props","$","_c","value","t0","additions","deletions","_c","chakra","Tooltip","visibleEndLength","DataTablePathCell","props","$","_c","value","t0","slice","start","t1","end","t2","t3","t4","t5","_c","Tooltip","ParamEditor","JsonField","label","value","FriendlyJsonDisplayProps","imageExtensionPattern","imageLabelPattern","humanizeKey","key","words","replace","trim","toLowerCase","toUpperCase","slice","formatPath","path","map","part","test","join","isPrimitiveArray","every","item","appendJsonFields","fields","Array","isArray","length","push","forEach","index","String","entries","Object","parseJsonCellValue","JSON","parse","buildJsonFields","field","isJsonImageValue","startsWith","url","URL","protocol","pathname","isJsonImageArray","formatJsonPrimitive","undefined","formatJsonValue","getJsonCellSummary","parsedValue","keys","filter","visibleValues","remainingCount","Boolean","toReadOnlyValue","type","const","src","alt","images","image","buildFriendlyJsonParams","id","name","FriendlyJsonDisplay","props","$","_c","t0","t1","_c","Button","HStack","Image","Popover","Portal","Text","Braces","ChevronRight","ScrollArea","buildJsonFields","FriendlyJsonDisplay","getJsonCellSummary","isJsonImageArray","isJsonImageValue","JsonCellProps","columnLabel","value","stopRowActivation","event","stopPropagation","JsonCell","props","$","_c","T0","T1","T2","summary","t0","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","fields","imageFields","flatMap","_temp","slice","t12","Root","Symbol","for","placement","offset","mainAxis","Trigger","length","map","_temp2","t13","t14","t15","t16","overscrollBehavior","t17","t18","field","label","Array","isArray","image","index","field_0","String","_c","_temp","_temp2","ScrollArea","Icon","ChakraIcon","chakra","IconButton","Menu","Portal","Text","CellContext","HeaderContext","Check","ChevronDown","CircleHelp","Minus","CSSProperties","cloneElement","isValidElement","ReactNode","Checkbox","Tooltip","ListRow","CategoricalColorCell","resolveCategoricalColor","ColorScaleCell","resolveColorScaleValue","DataTableBadgeCell","isDataTableDiffValue","DataTableColumnMeta","DataTableDateCell","formatDataTableRelativeDate","DataTableDiffCell","DataTablePathCell","formatDisplayValue","JsonCell","DataTableColumnRenderer","DataTableRowAction","RowData","toSingleLineElement","element","style","props","flexWrap","minWidth","whiteSpace","stopControlPropagation","event","stopPropagation","SelectionHeader","$","_c","table","checked","getIsAllRowsSelected","isIndeterminate","getIsSomeRowsSelected","t0","t1","t2","t3","details","toggleAllRowsSelected","t4","SelectionCell","row","column","selectedRowIds","columnDef","meta","Boolean","id","Symbol","for","toggleSelected","mergeRowActions","rowActions","dynamicActions","dynamicLabels","Set","map","action","label","filter","has","RowActionsCell","getRowActions","getActions","T0","T1","T2","T3","t5","bb0","actions","undefined","resolvedActions","original","length","Root","Positioner","Content","t6","destructive","icon","onSelect","t7","t8","t9","FormattedCellProps","value","wrapRows","FormattedCell","displayValue","DataCellProps","columnLabel","renderer","DataCell","type","includes","categories","color","stops","color_0","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","headerIcon","columnDescription","_c","ChakraIcon","Checkbox","Tooltip","RowSelectionState","ReactNode","resolveCategoricalColor","resolveColorCellStyle","resolveColorScaleValue","ColumnDataCell","ColumnHeader","RowActionsCell","RowIndexCell","SelectionCell","SelectionHeader","resolveDataTableComparableValue","DataTableColumnMeta","columnHelper","getIcon","DataTableColumnRenderer","DataTableRowAction","RowData","compareValues","valueA","valueB","undefined","String","localeCompare","BuildColumnsOptions","columnIcons","Partial","Record","columnDescriptions","compactHeaders","enableSelection","selectedRowIds","rowActions","getRowActions","row","columnRenderers","wrapRows","resolveDataCellStyle","value","renderer","type","color","stops","categories","buildColumns","data","columnKeys","options","rowIndexColumn","accessor","_row","rowIndex","header","id","enableResizing","size","cell","selectionColumn","display","meta","enableSorting","dataColumns","map","key","fallBackKey","columnValues","customIcon","headerIcon","columnDescription","headerLabel","getCellStyle","sortingFn","rowA","rowB","original","rowActionsColumn","length","Box","HStack","Icon","IconButton","Popover","Portal","Stack","Text","closestCenter","DndContext","DragEndEvent","PointerSensor","useSensor","useSensors","SortableContext","useSortable","verticalListSortingStrategy","CSS","Check","GripVertical","Settings2","useEffect","useRef","useState","SearchableMenuInput","Checkbox","ScrollArea","Switch","DataTableRowDisplaySwitch","DataTableColumnMenuColumn","id","label","DataTableColumnMenuProps","columns","visibleColumnIds","Set","wrapRows","showStats","statsAvailable","onColumnVisibilityChange","columnId","visible","onColumnReorder","activeColumnId","overColumnId","onWrapRowsChange","onStatsVisibilityChange","DataTableColumnMenuRowProps","column","checked","DataTableColumnMenuRow","props","$","_c","t0","attributes","listeners","setNodeRef","transform","transition","isDragging","t1","Transform","toString","t2","t3","opacity","style","t4","Symbol","for","bg","t5","t6","t7","t8","details","t9","t10","t11","DataTableColumnMenu","triggerRef","contentRef","open","setOpen","query","setQuery","activationConstraint","distance","sensors","normalizedQuery","trim","toLowerCase","filter","includes","filteredColumns","event","active","over","String","handleDragEnd","closeOnOutsidePointerDown","event_0","target","Node","current","contains","closeOnEscape","event_1","key","document","addEventListener","removeEventListener","placement","offset","mainAxis","getAnchorElement","_temp","role","overscrollBehavior","map","_temp2","t12","t13","column_1","has","t14","t15","t16","t17","column_0","_c","Checkbox","_temp","Switch","_temp2","ScrollArea","Icon","ChakraIcon","Flex","IconButton","Menu","Portal","Table","Text","Cell","flexRender","Header","HeaderGroup","Row","TanStackTable","ArrowDownAZ","ArrowUpAZ","MoreVertical","ResourceContextMenu","Tooltip","ListRow","DataTableColumnMeta","DataTableCellContext","DataTableProps","RowData","utilityColumnIds","Set","getSortMenuIcon","sortDirection","DataTableColumnHeaderProps","header","headerGroup","table","fullWidth","hasDescription","DataTableColumnHeader","props","$","_c","canSortColumn","t0","column","getIsSorted","t1","id","has","getCoreRowModel","rows","length","SortIcon","columnDef","getContext","tooltipContent","t2","t3","Symbol","for","borderRight","t4","t5","headers","indexOf","undefined","t6","width","t7","t8","t9","visibility","toggleSorting","clearSorting","t10","getCanResize","onDoubleClick","resetSize","onMouseDown","getResizeHandler","onTouchStart","className","getIsResizing","t11","t12","t13","DataTableCellViewProps","cell","row","wrapRows","getCellContextMenuActions","DataTableCellView","columnMeta","meta","getCellStyle","getValue","cellStyle","original","cellContext","rowId","columnId","value","map","action","key","label","icon","onClick","onSelect","contextActions","cellElement","DataTableBodyRowProps","noBorder","rowIsInteractive","rowIsActive","rowIsSelected","onRowClick","DataTableBodyRow","borderBottom","borderColor","getVisibleCells","_c","ChakraIcon","Tooltip","Box","Flex","Table","getCoreRowModel","getPaginationRowModel","getSortedRowModel","PaginationState","RowSelectionState","SortingState","useReactTable","Fragment","lazy","Suspense","useEffect","useState","ScrollArea","useKanbanRendererStore","buildColumns","DataTableColumnMenu","DataTableHeader","buildDataTableRendererAttributes","buildDataTableRendererRows","filterDataTableRows","getSelectedOriginalRows","reorderDataTableColumns","resolveDataTableColumnOrder","resolveDataTableRowId","resolveDataTableToolbarStorageKey","resolveInitialPageSize","resolveSelectionActions","shouldEnableSelection","shouldHighlightActiveRow","toggleHiddenDataTableColumn","DataTableBodyRow","DataTableColumnHeader","EditModeDataTable","PaginationFooter","SelectionToolbar","DataTableProps","RowData","DataTableStatsRow","then","module","default","DatasetPaginationProps","table","ReturnType","pagination","pageSizeOptions","buildColumnMenuColumns","columnKeys","compactHeaders","Partial","Record","map","columnId","id","label","resolveColumnSizeVars","colSizes","header","getFlatHeaders","getSize","column","DatasetPagination","props","$","_c","t0","getPageCount","t1","pageIndex","t2","pageSize","t3","t4","rows","length","setPageIndex","setPageSize","DatasetDataTable","data","noBorder","fullWidth","hiddenColumns","defaultHiddenColumns","defaultShowStats","onRowClick","isRowInteractive","activeRowId","columnIcons","columnDescriptions","columnStats","columnRenderers","initialPageSize","rowActions","getRowActions","getRowId","toolbarStorageKey","enableRowActivation","getCellContextMenuActions","sorting","setSorting","setPagination","rowSelection","setRowSelection","showStats","setShowStats","wrapRows","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","Set","Object","keys","filter","key","has","hiddenColumnMenuIds","setHiddenColumnMenuIds","hiddenColumnsSet","baseColumnKeys","orderedBaseColumnKeys","visibleColumnIds","enableSelection","selectionActions","rendererAttributes","rendererRows","resolvedToolbarStorageKey","filters","state","settings","viewMode","filteredRendererRows","filteredData","row","sourceRow","columns","selectedRowIds","defaultColumn","size","minSize","maxSize","index","columnResizeMode","columnResizeDirection","onSortingChange","onPaginationChange","onRowSelectionChange","enableMultiRowSelection","enableRowSelection","autoResetAll","pageCount","current","Math","max","columnSizeVars","selectedRows","getSelectedRowModel","allRows","selectedOriginalRows","columnControl","Boolean","visible","activeColumnId","overColumnId","toolbarActions","defaultViews","defaultActiveViewId","contentPlaceholder","width","getTotalSize","getHeaderGroups","headerGroup","headers","getRowModel","rowIsInteractive","original","rowIsActive","rowId","rowIsSelected","getIsSelected","toggleAllRowsSelected","DataTable","editMode","_c","ScrollArea","Fragment","Skeleton","Table","Text","DataTableSkeletonColumn","id","label","DataTableSkeletonProps","columns","columnCount","rowCount","cellWidths","DataTableSkeleton","props","$","_c","t0","t1","undefined","t2","length","Array","from","_temp","headers","t3","map","_temp2","t4","t5","t6","__0","rowIndex","column_0","columnIndex","column","borderRight","_","index","_c","Checkbox$1","Switch$1","ScrollArea$1","SearchableMenuInput","ResourceContextMenu","ListRow","shouldHighlightActiveRow","reorderDataTableColumns","resolveInitialPageSize","resolveDataTableToolbarStorageKey","formatDisplayValue","getIcon","isDataTableDiffValue","resolveDataTableComparableValue","resolveSelectionActions","columnHelper","DataTableRowDisplaySwitch","getSelectedOriginalRows","resolveDataTableRowId","useKanbanRendererStore","buildDataTableRendererRows","PaginationFooter","SelectionToolbar","toggleHiddenDataTableColumn","shouldEnableSelection","EditModeDataTable","resolveDataTableColumnOrder","filterDataTableRows","buildDataTableRendererAttributes","DataTableHeader","DiffBubble","ParamEditor","Fragment$1","resolveCategoricalColor","categories","category","value","CategoricalColorCell","props","children","darkTextColor","lightTextColor","darkColorTarget","readableContrastRatio","expandShortHex","hex","character","parseHexColor","normalized","color","expandedHex","toLinearChannel","channel","relativeLuminance","contrastRatio","foregroundLuminance","foreground","backgroundLuminance","background","lighter","darker","toHexColor","toHexChannel","mixRgbColors","start","endWeight","end","findMatchingForeground","step","candidate","target","resolveReadableTextColor","backgroundColor","darkText","lightText","darkerMatch","lighterMatch","mixHexColors","startColor","endColor","startWeight","resolveColorCellStyle","lightForeground","darkForeground","toDisplayPercent","mixColors","mixThemeColors","resolveColorScaleValue","stops","firstStop","lastStop","endIndex","stop","startStop","endStop","ColorScaleCell","$","c","t0","Text","DataTableBadgeCell","palette","t1","t2","Badge","relativeUnits","parseDate","time","formatDataTableRelativeDate","date","format","locale","elapsedSeconds","now","match","DataTableDateCell","setNow","useState","_temp$3","timer","useEffect","relativeLabel","t3","fullDate","t4","t5","Tooltip$1","DataTableDiffCell","DataTablePathCell","chakra","imageExtensionPattern","imageLabelPattern","humanizeKey","words","key","formatPath","path","part","isPrimitiveArray","item","appendJsonFields","index","fields","entries","parseJsonCellValue","buildJsonFields","field","isJsonImageValue","url","label","isJsonImageArray","formatJsonPrimitive","formatJsonValue","getJsonCellSummary","parsedValue","visibleValues","remainingCount","toReadOnlyValue","image","buildFriendlyJsonParams","FriendlyJsonDisplay","stopRowActivation","event","JsonCell","T0","T1","T2","summary","t10","t11","t6","t7","t8","t9","columnLabel","imageFields","_temp$2","t12","Popover","Button","HStack","_temp2$2","Braces","t13","ChevronRight","t14","t15","t16","t17","Portal","t18","Image","field_0","toSingleLineElement","isValidElement","element","cloneElement","stopControlPropagation","SelectionHeader","checked","table","isIndeterminate","Minus","Check","Icon","details","SelectionCell","column","selectedRowIds","row","mergeRowActions","dynamicLabels","dynamicActions","action","rowActions","RowActionsCell","getActions","T3","resolvedActions","Menu","IconButton","ChevronDown","FormattedCell","displayValue","wrapRows","DataCell","renderer","RowIndexCell","getValue","ColumnDataCell","ColumnHeader","headerLabel","columnDescription","CircleHelp","headerIcon","compareValues","valueA","valueB","resolveDataCellStyle","buildColumns","options","rowIndexColumn","rowIndex","selectionColumn","dataColumns","columnKeys","fallBackKey","columnValues","data","columnRenderers","customIcon","columnIcons","columnDescriptions","compactHeaders","rowA","rowB","rowActionsColumn","enableSelection","getRowActions","DataTableColumnMenuRow","useSortable","transform","CSS","isDragging","transition","style","GripVertical","attributes","listeners","Box","onColumnVisibilityChange","setNodeRef","DataTableColumnMenu","triggerRef","useRef","contentRef","open","setOpen","query","setQuery","sensors","useSensors","useSensor","PointerSensor","columns","normalizedQuery","filteredColumns","onColumnReorder","over","active","handleDragEnd","closeOnOutsidePointerDown","event_0","closeOnEscape","event_1","_temp$1","Settings2","onWrapRowsChange","onStatsVisibilityChange","showStats","statsAvailable","_temp2$1","visibleColumnIds","column_1","Stack","SortableContext","verticalListSortingStrategy","DndContext","closestCenter","current","column_0","utilityColumnIds","getSortMenuIcon","sortDirection","ArrowUpAZ","ArrowDownAZ","MoreVertical","DataTableColumnHeader","canSortColumn","header","SortIcon","flexRender","tooltipContent","fullWidth","headerGroup","Flex","hasDescription","Table","DataTableCellView","columnMeta","cell","cellStyle","getCellContextMenuActions","cellContext","contextActions","cellElement","DataTableBodyRow","rowIsActive","rowIsSelected","rowIsInteractive","onRowClick","noBorder","DataTableStatsRow","lazy","module","buildColumnMenuColumns","columnId","resolveColumnSizeVars","colSizes","DatasetPagination","pagination","pageSizeOptions","DatasetDataTable","sorting","setSorting","setPagination","rowSelection","setRowSelection","setShowStats","defaultShowStats","setWrapRows","columnOrder","setColumnOrder","propHiddenColumnsSet","hiddenColumns","hiddenColumnMenuIds","setHiddenColumnMenuIds","defaultHiddenColumns","hiddenColumnsSet","baseColumnKeys","key_0","orderedBaseColumnKeys","key_1","key_2","selectionActions","rendererAttributes","rendererRows","getRowId","resolvedToolbarStorageKey","filters","state","filteredData","useReactTable","row_0","getSortedRowModel","getCoreRowModel","getPaginationRowModel","pageCount","columnSizeVars","selectedRows","allRows","selectedOriginalRows","columnControl","columnStats","current_0","visible","current_1","activeColumnId","overColumnId","Suspense","isRowInteractive","row_1","DataTable","cellWidths","DataTableSkeleton","columnCount","rowCount","_temp","headers","_temp2","Skeleton","columnIndex"],"sources":["../src/components/data-table/categorical-color-cell.tsx","../src/components/data-table/color-cell-style.ts","../src/components/data-table/color-scale-cell.tsx","../src/components/data-table/data-table-badge-cell.tsx","../src/components/data-table/data-table-date-cell.tsx","../src/components/data-table/data-table-diff-cell.tsx","../src/components/data-table/data-table-path-cell.tsx","../src/components/data-table/friendly-json-display.tsx","../src/components/data-table/json-cell.tsx","../src/components/data-table/data-table-cell-renderers.tsx","../src/components/data-table/build-columns.tsx","../src/components/data-table/data-table-column-menu.tsx","../src/components/data-table/data-table-table-parts.tsx","../src/components/data-table/data-table.tsx","../src/components/data-table/data-table-skeleton.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { DataTableCategoricalColor } from \"./types\";\n\ninterface CategoricalColorCellProps {\n children: ReactNode;\n}\n\nexport const resolveCategoricalColor = (value: unknown, categories: DataTableCategoricalColor[]) => {\n return categories.find((category) => Object.is(category.value, value))?.color ?? null;\n};\n\nexport const CategoricalColorCell = (props: CategoricalColorCellProps) => {\n const { children } = props;\n\n return children;\n};\n","import type { DataTableThemeColor } from \"./types\";\n\ninterface RgbColor {\n r: number;\n g: number;\n b: number;\n}\n\nconst darkTextColor = \"#111827\";\nconst lightTextColor = \"#ffffff\";\nconst darkColorTarget = \"#000000\";\nconst readableContrastRatio = 4.5;\n\nconst expandShortHex = (hex: string) =>\n hex\n .split(\"\")\n .map((character) => character + character)\n .join(\"\");\n\nexport const parseHexColor = (color: string) => {\n const normalized = color.trim();\n const hex = normalized.startsWith(\"#\") ? normalized.slice(1) : normalized;\n const expandedHex = hex.length === 3 ? expandShortHex(hex) : hex;\n if (!/^[\\da-f]{6}$/i.test(expandedHex)) return null;\n\n return {\n r: Number.parseInt(expandedHex.slice(0, 2), 16),\n g: Number.parseInt(expandedHex.slice(2, 4), 16),\n b: Number.parseInt(expandedHex.slice(4, 6), 16),\n };\n};\n\nconst toLinearChannel = (channel: number) => {\n const normalized = channel / 255;\n return normalized <= 0.03928 ? normalized / 12.92 : ((normalized + 0.055) / 1.055) ** 2.4;\n};\n\nconst relativeLuminance = (color: RgbColor) =>\n 0.2126 * toLinearChannel(color.r) + 0.7152 * toLinearChannel(color.g) + 0.0722 * toLinearChannel(color.b);\n\nconst contrastRatio = (foreground: RgbColor, background: RgbColor) => {\n const foregroundLuminance = relativeLuminance(foreground);\n const backgroundLuminance = relativeLuminance(background);\n const lighter = Math.max(foregroundLuminance, backgroundLuminance);\n const darker = Math.min(foregroundLuminance, backgroundLuminance);\n return (lighter + 0.05) / (darker + 0.05);\n};\n\nconst toHexColor = (color: RgbColor) => {\n const toHexChannel = (channel: number) => Math.round(channel).toString(16).padStart(2, \"0\");\n return `#${toHexChannel(color.r)}${toHexChannel(color.g)}${toHexChannel(color.b)}`;\n};\n\nconst mixRgbColors = (start: RgbColor, end: RgbColor, endWeight: number) => ({\n r: start.r * (1 - endWeight) + end.r * endWeight,\n g: start.g * (1 - endWeight) + end.g * endWeight,\n b: start.b * (1 - endWeight) + end.b * endWeight,\n});\n\nexport const contrastRatioForHexColors = (foregroundColor: string, backgroundColor: string) => {\n const foreground = parseHexColor(foregroundColor);\n const background = parseHexColor(backgroundColor);\n if (!foreground || !background) return 0;\n return contrastRatio(foreground, background);\n};\n\nconst findMatchingForeground = (background: RgbColor, target: RgbColor) => {\n for (let step = 1; step <= 50; step += 1) {\n const candidate = mixRgbColors(background, target, step / 50);\n if (contrastRatio(candidate, background) >= readableContrastRatio) {\n return { color: toHexColor(candidate), step };\n }\n }\n\n return { color: toHexColor(target), step: 50 };\n};\n\nexport const resolveReadableTextColor = (backgroundColor: string) => {\n const background = parseHexColor(backgroundColor);\n if (!background) return darkTextColor;\n\n const darkText = parseHexColor(darkColorTarget)!;\n const lightText = parseHexColor(lightTextColor)!;\n const darkerMatch = findMatchingForeground(background, darkText);\n const lighterMatch = findMatchingForeground(background, lightText);\n\n return darkerMatch.step <= lighterMatch.step ? darkerMatch.color : lighterMatch.color;\n};\n\nexport const mixHexColors = (startColor: string, endColor: string, startWeight: number) => {\n const start = parseHexColor(startColor);\n const end = parseHexColor(endColor);\n if (!start || !end) return null;\n\n return toHexColor(mixRgbColors(start, end, 1 - startWeight));\n};\n\nexport const resolveColorCellStyle = (color: DataTableThemeColor) => {\n const lightForeground = color.foreground?.light ?? resolveReadableTextColor(color.light);\n const darkForeground = color.foreground?.dark ?? resolveReadableTextColor(color.dark);\n\n return {\n backgroundColor: `light-dark(${color.light}, ${color.dark})`,\n color: `light-dark(${lightForeground}, ${darkForeground})`,\n };\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { mixHexColors } from \"./color-cell-style\";\nimport type { DataTableColorScaleStop, DataTableThemeColor } from \"./types\";\n\ninterface ColorScaleCellProps {\n value: number;\n}\n\nconst toDisplayPercent = (value: number) => Math.round(value * 100) / 100;\n\nconst mixColors = (startColor: string, endColor: string, startWeight: number) => {\n const mixedColor = mixHexColors(startColor, endColor, startWeight);\n if (mixedColor) return mixedColor;\n\n return `color-mix(in srgb, ${startColor} ${toDisplayPercent(startWeight * 100)}%, ${endColor})`;\n};\n\nconst mixThemeColors = (start: DataTableThemeColor, end: DataTableThemeColor, startWeight: number) => {\n const foreground =\n start.foreground && end.foreground\n ? {\n light: mixColors(start.foreground.light, end.foreground.light, startWeight),\n dark: mixColors(start.foreground.dark, end.foreground.dark, startWeight),\n }\n : undefined;\n\n return {\n light: mixColors(start.light, end.light, startWeight),\n dark: mixColors(start.dark, end.dark, startWeight),\n ...(foreground ? { foreground } : {}),\n };\n};\n\nexport const resolveColorScaleValue = (value: unknown, stops: DataTableColorScaleStop[]) => {\n if (typeof value !== \"number\" || !Number.isFinite(value) || stops.length < 2) return null;\n\n const firstStop = stops[0]!;\n const lastStop = stops[stops.length - 1]!;\n const range = lastStop.value - firstStop.value;\n if (range <= 0) return null;\n\n if (value <= firstStop.value) return firstStop.color;\n if (value >= lastStop.value) return lastStop.color;\n\n const endIndex = stops.findIndex((stop) => value <= stop.value);\n const startStop = stops[endIndex - 1]!;\n const endStop = stops[endIndex]!;\n const segmentProgress = (value - startStop.value) / (endStop.value - startStop.value);\n const startWeight = 1 - segmentProgress;\n return mixThemeColors(startStop.color, endStop.color, startWeight);\n};\n\nexport const ColorScaleCell = (props: ColorScaleCellProps) => {\n const { value } = props;\n\n return (\n <Text textStyle=\"paragraph/S/medium\" fontVariantNumeric=\"tabular-nums\" truncate>\n {value}\n </Text>\n );\n};\n","import { Badge } from \"@chakra-ui/react\";\nimport type { DataTableBadgeCategory } from \"./types\";\n\ninterface DataTableBadgeCellProps {\n value: string | number | boolean;\n categories?: DataTableBadgeCategory[];\n}\n\nexport const DataTableBadgeCell = (props: DataTableBadgeCellProps) => {\n const { value, categories } = props;\n const palette = categories?.find((category) => category.value === value)?.palette ?? \"gray\";\n\n return (\n <Badge variant=\"subtle\" size=\"sm\" colorPalette={palette} maxW=\"full\" truncate>\n {String(value)}\n </Badge>\n );\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { useEffect, useState } from \"react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\nconst relativeUnits = [\n { unit: \"year\", seconds: 365 * 24 * 60 * 60 },\n { unit: \"month\", seconds: 30 * 24 * 60 * 60 },\n { unit: \"day\", seconds: 24 * 60 * 60 },\n { unit: \"hour\", seconds: 60 * 60 },\n { unit: \"minute\", seconds: 60 },\n] as const;\n\nconst parseDate = (value: unknown) => {\n if (typeof value !== \"string\") return null;\n const time = Date.parse(value);\n return Number.isNaN(time) ? null : new Date(time);\n};\n\nexport const formatDataTableRelativeDate = (value: unknown, now = new Date(), locale?: string) => {\n const date = parseDate(value);\n if (!date) return null;\n const format = new Intl.RelativeTimeFormat(locale, { numeric: \"auto\" });\n const elapsedSeconds = (date.getTime() - now.getTime()) / 1000;\n const match = relativeUnits.find((candidate) => Math.abs(elapsedSeconds) >= candidate.seconds);\n if (!match) return format.format(0, \"second\");\n return format.format(Math.round(elapsedSeconds / match.seconds), match.unit);\n};\n\ninterface DataTableDateCellProps {\n value: string;\n}\n\nexport const DataTableDateCell = (props: DataTableDateCellProps) => {\n const { value } = props;\n const [now, setNow] = useState(() => new Date());\n useEffect(() => {\n const timer = setInterval(() => setNow(new Date()), 60_000);\n return () => clearInterval(timer);\n }, []);\n const relativeLabel = formatDataTableRelativeDate(value, now);\n const fullDate = new Date(value).toLocaleString(undefined, { dateStyle: \"medium\", timeStyle: \"short\" });\n\n return (\n <Tooltip content={fullDate} openDelay={300}>\n <Text as=\"span\" tabIndex={0} textStyle=\"paragraph/S/regular\" color=\"fg.muted\" whiteSpace=\"nowrap\">\n {relativeLabel}\n </Text>\n </Tooltip>\n );\n};\n","import { DiffBubble } from \"../diff-viewer/diff-bubble\";\nimport type { DataTableDiffValue } from \"./types\";\n\nexport const DataTableDiffCell = (props: { value: DataTableDiffValue }) => {\n const { value } = props;\n return <DiffBubble additions={value.additions} deletions={value.deletions} variant=\"ghost\" size=\"small\" />;\n};\n","import { chakra } from \"@chakra-ui/react\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\n\n// Long paths keep their start and final characters, so the folder name stays readable (design/DESIGN.md).\nconst visibleEndLength = 5;\n\nexport const DataTablePathCell = (props: { value: string }) => {\n const { value } = props;\n const start = value.slice(0, -visibleEndLength);\n const end = value.slice(-visibleEndLength);\n\n return (\n <Tooltip content={value} openDelay={300}>\n <chakra.span\n display=\"inline-flex\"\n minW=\"0\"\n maxW=\"full\"\n tabIndex={0}\n textStyle=\"paragraph/S/regular\"\n whiteSpace=\"nowrap\"\n >\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\">\n {start}\n </chakra.span>\n <chakra.span flexShrink={0}>{end}</chakra.span>\n </chakra.span>\n </Tooltip>\n );\n};\n","import { ParamEditor } from \"@/components/param-editor\";\n\ninterface JsonField {\n label: string;\n value: unknown;\n}\n\nexport interface FriendlyJsonDisplayProps {\n value: unknown;\n}\n\nconst imageExtensionPattern = /\\.(avif|bmp|gif|jpe?g|png|svg|webp)$/i;\nconst imageLabelPattern = /(^|\\s)(avatar|image|logo|photo|picture|thumbnail)(\\s|$)/i;\n\nconst humanizeKey = (key: string) => {\n const words = key\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n .replace(/[_-]+/g, \" \")\n .trim()\n .toLowerCase();\n\n return words ? `${words[0]?.toUpperCase()}${words.slice(1)}` : \"Details\";\n};\n\nconst formatPath = (path: string[]) => path.map((part) => (/^\\d+$/.test(part) ? part : humanizeKey(part))).join(\" / \");\n\nconst isPrimitiveArray = (value: unknown[]) => value.every((item) => item === null || typeof item !== \"object\");\n\nconst appendJsonFields = (value: unknown, path: string[], fields: JsonField[]) => {\n if (Array.isArray(value)) {\n if (value.length === 0 || isPrimitiveArray(value)) {\n fields.push({ label: formatPath(path), value });\n return;\n }\n\n value.forEach((item, index) => {\n appendJsonFields(item, [...path, String(index + 1)], fields);\n });\n return;\n }\n\n if (value !== null && typeof value === \"object\") {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n fields.push({ label: formatPath(path), value: null });\n return;\n }\n\n entries.forEach(([key, item]) => {\n appendJsonFields(item, [...path, key], fields);\n });\n return;\n }\n\n fields.push({ label: formatPath(path), value });\n};\n\nexport const parseJsonCellValue = (value: unknown) => {\n if (typeof value !== \"string\") return value;\n\n try {\n return JSON.parse(value) as unknown;\n } catch {\n return value;\n }\n};\n\nexport const buildJsonFields = (value: unknown) => {\n const fields: JsonField[] = [];\n appendJsonFields(parseJsonCellValue(value), [], fields);\n return fields.map((field) => ({ ...field, label: field.label || \"Value\" }));\n};\n\nexport const isJsonImageValue = (value: unknown, label: string) => {\n if (typeof value !== \"string\") return false;\n if (value.startsWith(\"data:image/\")) return true;\n\n try {\n const url = new URL(value);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") return false;\n return imageExtensionPattern.test(url.pathname) || imageLabelPattern.test(label);\n } catch {\n return false;\n }\n};\n\nexport const isJsonImageArray = (value: unknown, label: string) => {\n return Array.isArray(value) && value.length > 0 && value.every((item) => isJsonImageValue(item, label));\n};\n\nconst formatJsonPrimitive = (value: unknown) => {\n if (value === null || value === undefined || value === \"\") return \"Not provided\";\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n return String(value);\n};\n\nconst formatJsonValue = (value: unknown) => {\n if (Array.isArray(value)) return value.length === 0 ? \"None\" : value.map(formatJsonPrimitive).join(\", \");\n return formatJsonPrimitive(value);\n};\n\nexport const getJsonCellSummary = (value: unknown) => {\n const parsedValue = parseJsonCellValue(value);\n if (Array.isArray(parsedValue) && parsedValue.length === 0) return \"No details\";\n if (parsedValue !== null && typeof parsedValue === \"object\" && Object.keys(parsedValue).length === 0) {\n return \"No details\";\n }\n\n const fields = buildJsonFields(value).filter(\n (field) => !isJsonImageValue(field.value, field.label) && !isJsonImageArray(field.value, field.label),\n );\n if (fields.length === 0) return \"No details\";\n\n const visibleValues = fields.slice(0, 2).map((field) => formatJsonValue(field.value));\n const remainingCount = fields.length - visibleValues.length;\n return [...visibleValues, remainingCount > 0 ? `${remainingCount} more` : null].filter(Boolean).join(\" · \");\n};\n\nconst toReadOnlyValue = (field: JsonField) => {\n const { label, value } = field;\n if (isJsonImageValue(value, label)) {\n return { type: \"image\" as const, src: String(value), alt: `${label} preview` };\n }\n if (Array.isArray(value) && isJsonImageArray(value, label)) {\n return {\n type: \"image-gallery\" as const,\n images: value.map((image, index) => ({ src: String(image), alt: `${label} ${index + 1} preview` })),\n };\n }\n if (Array.isArray(value)) return value as Array<string | number | boolean | null>;\n if (value === undefined) return null;\n return value as string | number | boolean | null;\n};\n\nexport const buildFriendlyJsonParams = (value: unknown) =>\n buildJsonFields(value).map((field, index) => ({\n id: `friendly-json-${index}`,\n name: field.label,\n type: \"readOnly\" as const,\n value: toReadOnlyValue(field),\n }));\n\nexport const FriendlyJsonDisplay = (props: FriendlyJsonDisplayProps) => {\n const { value } = props;\n return <ParamEditor params={buildFriendlyJsonParams(value)} readOnly fullWidth />;\n};\n","import { Button, HStack, Image, Popover, Portal, Text } from \"@chakra-ui/react\";\nimport { Braces, ChevronRight } from \"lucide-react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport {\n buildJsonFields,\n FriendlyJsonDisplay,\n getJsonCellSummary,\n isJsonImageArray,\n isJsonImageValue,\n} from \"./friendly-json-display\";\n\ninterface JsonCellProps {\n columnLabel: string;\n value: unknown;\n}\n\nconst stopRowActivation = (event: { stopPropagation: () => void }) => event.stopPropagation();\n\nexport const JsonCell = (props: JsonCellProps) => {\n const { columnLabel, value } = props;\n const fields = buildJsonFields(value);\n const imageFields = fields\n .flatMap((field) => {\n if (isJsonImageValue(field.value, field.label)) return [field];\n if (!Array.isArray(field.value) || !isJsonImageArray(field.value, field.label)) return [];\n return field.value.map((image, index) => ({ label: `${field.label} ${index + 1}`, value: image }));\n })\n .slice(0, 2);\n const summary = getJsonCellSummary(value);\n\n return (\n <Popover.Root positioning={{ placement: \"bottom-start\", offset: { mainAxis: 6 } }}>\n <Popover.Trigger asChild>\n <Button\n aria-label={`View ${columnLabel} details`}\n variant=\"ghost\"\n size=\"xs\"\n width=\"full\"\n minWidth=\"0\"\n height=\"28px\"\n paddingX=\"2xs\"\n justifyContent=\"flex-start\"\n onClick={stopRowActivation}\n >\n {imageFields.length > 0 ? (\n <HStack gap=\"-1\" flexShrink=\"0\">\n {imageFields.map((field) => (\n <Image\n key={field.label}\n src={String(field.value)}\n alt={`${field.label} preview`}\n boxSize=\"22px\"\n borderRadius=\"xs\"\n borderWidth=\"1px\"\n borderColor=\"border.subtle\"\n objectFit=\"cover\"\n />\n ))}\n </HStack>\n ) : (\n <Braces size={14} />\n )}\n <Text flex=\"1\" minWidth=\"0\" textAlign=\"left\" textStyle=\"paragraph/S/regular\" truncate>\n {summary}\n </Text>\n <ChevronRight size={12} />\n </Button>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content width=\"min(380px, calc(100vw - 32px))\" padding=\"0\" background=\"bg\" overflow=\"hidden\">\n <ScrollArea maxH=\"360px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <FriendlyJsonDisplay value={value} />\n </ScrollArea>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, chakra, IconButton, Menu, Portal, Text } from \"@chakra-ui/react\";\nimport type { CellContext, HeaderContext } from \"@tanstack/react-table\";\nimport { Check, ChevronDown, CircleHelp, Minus } from \"lucide-react\";\nimport { type CSSProperties, cloneElement, isValidElement, type ReactNode } from \"react\";\n\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport { CategoricalColorCell, resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { ColorScaleCell, resolveColorScaleValue } from \"./color-scale-cell\";\nimport { DataTableBadgeCell } from \"./data-table-badge-cell\";\nimport { isDataTableDiffValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { DataTableDateCell, formatDataTableRelativeDate } from \"./data-table-date-cell\";\nimport { DataTableDiffCell } from \"./data-table-diff-cell\";\nimport { DataTablePathCell } from \"./data-table-path-cell\";\nimport { formatDisplayValue } from \"./helpers\";\nimport { JsonCell } from \"./json-cell\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst toSingleLineElement = (element: ReactNode) => {\n if (!isValidElement<{ style?: CSSProperties }>(element)) return element;\n\n return cloneElement(element, {\n style: {\n ...element.props.style,\n flexWrap: \"nowrap\",\n minWidth: 0,\n whiteSpace: \"nowrap\",\n },\n });\n};\n\nconst stopControlPropagation = (event: { stopPropagation: () => void }) => {\n event.stopPropagation();\n};\n\nexport const SelectionHeader = (props: HeaderContext<RowData, unknown>) => {\n const { table } = props;\n const checked = table.getIsAllRowsSelected();\n const isIndeterminate = !checked && table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n checked={checked ? true : isIndeterminate ? \"indeterminate\" : false}\n aria-label=\"Select all\"\n icon={<ChakraIcon as={isIndeterminate ? Minus : Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => table.toggleAllRowsSelected(details.checked === true)}\n />\n );\n};\n\nexport const SelectionCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { selectedRowIds } = column.columnDef.meta as DataTableColumnMeta;\n\n return (\n <Checkbox\n checked={Boolean(selectedRowIds?.[row.id])}\n aria-label=\"Select row\"\n icon={<ChakraIcon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onClick={stopControlPropagation}\n onCheckedChange={(details) => row.toggleSelected(details.checked === true)}\n />\n );\n};\n\nconst mergeRowActions = (rowActions: DataTableRowAction[], dynamicActions: DataTableRowAction[]) => {\n const dynamicLabels = new Set(dynamicActions.map((action) => action.label));\n return [...dynamicActions, ...rowActions.filter((action) => !dynamicLabels.has(action.label))];\n};\n\nexport const RowActionsCell = (props: CellContext<RowData, unknown>) => {\n const { row, column } = props;\n const { rowActions: actions = [], getRowActions: getActions } = column.columnDef.meta as DataTableColumnMeta;\n const resolvedActions = mergeRowActions(actions, getActions?.(row.original) ?? []);\n\n if (resolvedActions.length === 0) return null;\n\n return (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton aria-label=\"Row actions\" size=\"2xs\" variant=\"ghost\" onClick={stopControlPropagation}>\n <ChakraIcon as={ChevronDown} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n {resolvedActions.map((action) => (\n <Menu.Item key={action.label} value={action.label} asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n tone={action.destructive ? \"danger\" : \"default\"}\n label={action.label}\n icon={action.icon}\n onClick={stopControlPropagation}\n onActivate={() => action.onSelect(row.original)}\n />\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n );\n};\n\ninterface FormattedCellProps {\n value: unknown;\n wrapRows: boolean;\n}\n\nconst FormattedCell = (props: FormattedCellProps) => {\n const { value, wrapRows } = props;\n const displayValue = formatDisplayValue(value);\n\n if (isValidElement(displayValue)) {\n return (\n <chakra.span\n display=\"inline-flex\"\n maxWidth=\"full\"\n minW=\"0\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {wrapRows ? displayValue : toSingleLineElement(displayValue)}\n </chakra.span>\n );\n }\n\n return (\n <Text\n maxWidth=\"full\"\n overflow={wrapRows ? \"visible\" : \"hidden\"}\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n textStyle=\"paragraph/S/regular\"\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n >\n {displayValue}\n </Text>\n );\n};\n\ninterface DataCellProps {\n columnLabel: string;\n renderer?: DataTableColumnRenderer;\n value: unknown;\n wrapRows: boolean;\n}\n\nconst DataCell = (props: DataCellProps) => {\n const { columnLabel, renderer, value, wrapRows } = props;\n\n if (renderer?.type === \"json\") return <JsonCell columnLabel={columnLabel} value={value} />;\n\n if (renderer?.type === \"badge\" && [\"string\", \"number\", \"boolean\"].includes(typeof value)) {\n return <DataTableBadgeCell value={value as string | number | boolean} categories={renderer.categories} />;\n }\n\n if (renderer?.type === \"diff\" && isDataTableDiffValue(value)) return <DataTableDiffCell value={value} />;\n\n if (renderer?.type === \"path\" && typeof value === \"string\" && !wrapRows) return <DataTablePathCell value={value} />;\n\n if (renderer?.type === \"date\") {\n if (formatDataTableRelativeDate(value)) return <DataTableDateCell value={value as string} />;\n }\n\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return <ColorScaleCell value={value} />;\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) {\n return (\n <CategoricalColorCell>\n <FormattedCell value={value} wrapRows={wrapRows} />\n </CategoricalColorCell>\n );\n }\n }\n\n return <FormattedCell value={value} wrapRows={wrapRows} />;\n};\n\nexport const RowIndexCell = (props: CellContext<RowData, number>) => {\n const { getValue } = props;\n return (\n <chakra.span display=\"block\" textStyle=\"paragraph/S/regular\" textAlign=\"center\">\n {getValue()}\n </chakra.span>\n );\n};\n\nexport const ColumnDataCell = (props: CellContext<RowData, unknown>) => {\n const { column, getValue } = props;\n const { renderer, wrapRows = false } = column.columnDef.meta as DataTableColumnMeta;\n return <DataCell columnLabel={column.id} renderer={renderer} value={getValue()} wrapRows={wrapRows} />;\n};\n\nexport const ColumnHeader = (props: HeaderContext<RowData, unknown>) => {\n const { column } = props;\n const { headerLabel, headerIcon, columnDescription } = column.columnDef.meta as DataTableColumnMeta;\n return (\n <chakra.span display=\"inline-flex\" alignItems=\"center\" gap=\"4px\" minW=\"0\" maxW=\"full\" overflow=\"hidden\">\n {headerIcon}\n <chakra.span overflow=\"hidden\" textOverflow=\"ellipsis\" whiteSpace=\"nowrap\">\n {headerLabel}\n </chakra.span>\n {columnDescription ? (\n <Tooltip content={columnDescription}>\n <ChakraIcon\n as={CircleHelp}\n aria-label={`About ${headerLabel}`}\n boxSize=\"12px\"\n color=\"fg.muted\"\n cursor=\"help\"\n flexShrink={0}\n opacity={0.6}\n tabIndex={0}\n />\n </Tooltip>\n ) : null}\n </chakra.span>\n );\n};\n","import type { RowSelectionState } from \"@tanstack/react-table\";\nimport type { ReactNode } from \"react\";\nimport { resolveCategoricalColor } from \"./categorical-color-cell\";\nimport { resolveColorCellStyle } from \"./color-cell-style\";\nimport { resolveColorScaleValue } from \"./color-scale-cell\";\nimport {\n ColumnDataCell,\n ColumnHeader,\n RowActionsCell,\n RowIndexCell,\n SelectionCell,\n SelectionHeader,\n} from \"./data-table-cell-renderers\";\nimport { resolveDataTableComparableValue } from \"./data-table-cell-value\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport { columnHelper, getIcon } from \"./helpers\";\nimport type { DataTableColumnRenderer, DataTableRowAction, RowData } from \"./types\";\n\nconst compareValues = (valueA: unknown, valueB: unknown) => {\n if (valueA === valueB) return 0;\n if (valueA === null || valueA === undefined) return 1;\n if (valueB === null || valueB === undefined) return -1;\n\n if (typeof valueA === \"number\" && typeof valueB === \"number\") {\n return valueA - valueB;\n }\n\n return String(valueA).localeCompare(String(valueB));\n};\n\ninterface BuildColumnsOptions {\n columnIcons?: Partial<Record<string, ReactNode>>;\n columnDescriptions?: Partial<Record<string, string>>;\n compactHeaders?: Partial<Record<string, string>>;\n enableSelection?: boolean;\n selectedRowIds?: RowSelectionState;\n rowActions?: DataTableRowAction[];\n getRowActions?: (row: RowData) => DataTableRowAction[];\n columnRenderers?: Partial<Record<string, DataTableColumnRenderer>>;\n wrapRows?: boolean;\n}\n\nconst resolveDataCellStyle = (value: unknown, renderer?: DataTableColumnRenderer) => {\n if (renderer?.type === \"color-scale\") {\n const color = resolveColorScaleValue(value, renderer.stops);\n if (color && typeof value === \"number\") return resolveColorCellStyle(color);\n }\n\n if (renderer?.type === \"categorical-color\") {\n const color = resolveCategoricalColor(value, renderer.categories);\n if (color) return resolveColorCellStyle(color);\n }\n};\n\nexport function buildColumns(data: RowData[], columnKeys: string[], options: BuildColumnsOptions = {}) {\n const {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection = false,\n selectedRowIds,\n rowActions = [],\n getRowActions,\n columnRenderers,\n wrapRows = false,\n } = options;\n const rowIndexColumn = columnHelper.accessor((_row, rowIndex) => rowIndex + 1, {\n header: \"\",\n id: \"rowIndex\",\n enableResizing: false,\n size: 20,\n cell: RowIndexCell,\n });\n\n const selectionColumn = columnHelper.display({\n id: \"rowSelection\",\n header: SelectionHeader,\n cell: SelectionCell,\n meta: { selectedRowIds } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n const dataColumns = columnKeys.map((key) => {\n const fallBackKey = key || \"-\";\n const columnValues = data.map((row) => row[fallBackKey]);\n const renderer = columnRenderers?.[fallBackKey];\n const customIcon = columnIcons?.[fallBackKey];\n const headerIcon = customIcon === undefined ? getIcon(columnValues) : customIcon;\n const columnDescription = columnDescriptions?.[fallBackKey];\n\n return columnHelper.accessor((row) => row[fallBackKey], {\n id: fallBackKey,\n header: ColumnHeader,\n cell: ColumnDataCell,\n meta: {\n headerLabel: compactHeaders?.[fallBackKey] ?? fallBackKey,\n headerIcon,\n columnDescription,\n renderer,\n wrapRows,\n getCellStyle: (value: unknown) => resolveDataCellStyle(value, renderer),\n } satisfies DataTableColumnMeta,\n sortingFn: (rowA, rowB) => {\n const valueA = resolveDataTableComparableValue(rowA.original[fallBackKey], renderer);\n const valueB = resolveDataTableComparableValue(rowB.original[fallBackKey], renderer);\n return compareValues(valueA, valueB);\n },\n });\n });\n\n const rowActionsColumn = columnHelper.display({\n id: \"rowActions\",\n header: \"\",\n cell: RowActionsCell,\n meta: { rowActions, getRowActions } satisfies DataTableColumnMeta,\n enableResizing: false,\n enableSorting: false,\n size: 36,\n });\n\n return [\n rowIndexColumn,\n ...(enableSelection ? [selectionColumn] : []),\n ...dataColumns,\n ...(rowActions.length > 0 || getRowActions ? [rowActionsColumn] : []),\n ];\n}\n","import { Box, HStack, Icon, IconButton, Popover, Portal, Stack, Text } from \"@chakra-ui/react\";\nimport { closestCenter, DndContext, type DragEndEvent, PointerSensor, useSensor, useSensors } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, verticalListSortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Check, GripVertical, Settings2 } from \"lucide-react\";\nimport { useEffect, useRef, useState } from \"react\";\n\nimport { SearchableMenuInput } from \"@/components/overlays/searchable-menu-input\";\nimport { Checkbox } from \"@/components/primitives/checkbox\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { Switch } from \"@/components/primitives/switch\";\nimport { DataTableRowDisplaySwitch } from \"./data-table-row-display\";\n\ninterface DataTableColumnMenuColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableColumnMenuProps {\n columns: DataTableColumnMenuColumn[];\n visibleColumnIds: Set<string>;\n wrapRows: boolean;\n showStats: boolean;\n statsAvailable: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n onColumnReorder: (activeColumnId: string, overColumnId: string) => void;\n onWrapRowsChange: (wrapRows: boolean) => void;\n onStatsVisibilityChange: (showStats: boolean) => void;\n}\n\ninterface DataTableColumnMenuRowProps {\n column: DataTableColumnMenuColumn;\n checked: boolean;\n onColumnVisibilityChange: (columnId: string, visible: boolean) => void;\n}\n\nconst DataTableColumnMenuRow = (props: DataTableColumnMenuRowProps) => {\n const { column, checked, onColumnVisibilityChange } = props;\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: column.id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <HStack\n ref={setNodeRef}\n style={style}\n gap=\"2xs\"\n minW=\"0\"\n width=\"full\"\n borderRadius=\"xs\"\n px=\"xs\"\n py=\"2xs\"\n _hover={{ bg: \"bg.hover\" }}\n >\n <Box as=\"span\" display=\"inline-flex\" cursor=\"grab\" color=\"fg.muted\" {...attributes} {...listeners}>\n <GripVertical size={14} />\n </Box>\n <Checkbox\n checked={checked}\n flex=\"1\"\n minW=\"0\"\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n size=\"sm\"\n icon={<Icon as={Check} boxSize=\"12px\" strokeWidth=\"3\" />}\n onCheckedChange={(details) => onColumnVisibilityChange(column.id, details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\" truncate>\n {column.label}\n </Text>\n </Checkbox>\n </HStack>\n );\n};\n\nexport const DataTableColumnMenu = (props: DataTableColumnMenuProps) => {\n const {\n columns,\n visibleColumnIds,\n wrapRows,\n showStats,\n statsAvailable,\n onColumnVisibilityChange,\n onColumnReorder,\n onWrapRowsChange,\n onStatsVisibilityChange,\n } = props;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const [open, setOpen] = useState(false);\n const [query, setQuery] = useState(\"\");\n const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));\n const normalizedQuery = query.trim().toLowerCase();\n const filteredColumns = normalizedQuery\n ? columns.filter((column) => column.label.toLowerCase().includes(normalizedQuery))\n : columns;\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n onColumnReorder(String(active.id), String(over.id));\n };\n\n useEffect(() => {\n if (!open) return;\n\n const closeOnOutsidePointerDown = (event: PointerEvent) => {\n const target = event.target;\n if (!(target instanceof Node)) return;\n if (contentRef.current?.contains(target) || triggerRef.current?.contains(target)) return;\n\n setOpen(false);\n };\n const closeOnEscape = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n }\n };\n\n document.addEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.addEventListener(\"keydown\", closeOnEscape, true);\n return () => {\n document.removeEventListener(\"pointerdown\", closeOnOutsidePointerDown);\n document.removeEventListener(\"keydown\", closeOnEscape, true);\n };\n }, [open]);\n\n return (\n <Popover.Root\n open={open}\n closeOnInteractOutside={false}\n positioning={{\n placement: \"bottom-end\",\n offset: { mainAxis: 8 },\n getAnchorElement: () => triggerRef.current,\n }}\n >\n <Popover.Trigger asChild>\n <IconButton\n ref={triggerRef}\n aria-label=\"Display settings\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setOpen((current) => !current)}\n >\n <Icon as={Settings2} boxSize=\"14px\" />\n </IconButton>\n </Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content ref={contentRef} width=\"min(320px, calc(100vw - 32px))\" p=\"0\" bg=\"bg\" overflow=\"hidden\">\n <Stack gap=\"0\">\n <DataTableRowDisplaySwitch showDivider wrapRows={wrapRows} onWrapRowsChange={onWrapRowsChange} />\n {statsAvailable ? (\n <Box borderBottomWidth=\"1px\" borderColor=\"border.subtle\" padding=\"xs\">\n <Switch\n checked={showStats}\n inputProps={{ role: \"switch\" }}\n width=\"full\"\n flexDirection=\"row-reverse\"\n justifyContent=\"space-between\"\n onCheckedChange={(details) => onStatsVisibilityChange(details.checked === true)}\n >\n <Text as=\"span\" textStyle=\"label/S/regular\">\n Statistics\n </Text>\n </Switch>\n </Box>\n ) : null}\n <SearchableMenuInput value={query} placeholder=\"Search columns\" onValueChange={setQuery} />\n <ScrollArea maxH=\"280px\" viewportProps={{ overscrollBehavior: \"contain\" }}>\n <Box padding=\"2xs\">\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\n <SortableContext items={columns.map((column) => column.id)} strategy={verticalListSortingStrategy}>\n <Stack gap=\"1px\">\n {filteredColumns.map((column) => (\n <DataTableColumnMenuRow\n key={column.id}\n column={column}\n checked={visibleColumnIds.has(column.id)}\n onColumnVisibilityChange={onColumnVisibilityChange}\n />\n ))}\n </Stack>\n </SortableContext>\n </DndContext>\n </Box>\n </ScrollArea>\n </Stack>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n );\n};\n","import { Icon as ChakraIcon, Flex, IconButton, Menu, Portal, Table, Text } from \"@chakra-ui/react\";\nimport {\n type Cell,\n flexRender,\n type Header,\n type HeaderGroup,\n type Row,\n type Table as TanStackTable,\n} from \"@tanstack/react-table\";\nimport { ArrowDownAZ, ArrowUpAZ, MoreVertical } from \"lucide-react\";\nimport { ResourceContextMenu } from \"@/components/overlays/resource-context-menu\";\nimport { Tooltip } from \"@/components/primitives/tooltip\";\nimport { ListRow } from \"../list-row/list-row\";\nimport type { DataTableColumnMeta } from \"./data-table-column-meta\";\nimport type { DataTableCellContext, DataTableProps, RowData } from \"./types\";\n\nconst utilityColumnIds = new Set([\"rowIndex\", \"rowSelection\", \"rowActions\"]);\n\nconst getSortMenuIcon = (sortDirection: false | \"asc\" | \"desc\") => {\n if (sortDirection === \"asc\") return ArrowUpAZ;\n if (sortDirection === \"desc\") return ArrowDownAZ;\n return MoreVertical;\n};\n\ninterface DataTableColumnHeaderProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n table: TanStackTable<RowData>;\n fullWidth?: boolean;\n hasDescription?: boolean;\n}\n\nexport const DataTableColumnHeader = (props: DataTableColumnHeaderProps) => {\n const { header, headerGroup, table, fullWidth, hasDescription } = props;\n const sortDirection = header.column.getIsSorted();\n const canSortColumn = !utilityColumnIds.has(header.column.id) && table.getCoreRowModel().rows.length > 1;\n const SortIcon = getSortMenuIcon(sortDirection);\n const tooltipContent =\n header.column.id === \"rowSelection\"\n ? \"Select all\"\n : flexRender(header.column.columnDef.header, header.getContext());\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n key={header.id}\n overflow=\"hidden\"\n position=\"relative\"\n verticalAlign=\"middle\"\n whiteSpace=\"nowrap\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n <Tooltip content={tooltipContent} disabled={hasDescription}>\n <Flex className=\"group\" alignItems=\"center\" justifyContent=\"space-between\" gap=\"1\" flex=\"1\" minW=\"0\">\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </Text>\n {canSortColumn && (\n <Menu.Root>\n <Menu.Trigger asChild>\n <IconButton\n ml=\"2px\"\n size=\"2xs\"\n aria-label={sortDirection ? `Sorted ${sortDirection}` : \"Sort column\"}\n variant=\"ghost\"\n visibility={sortDirection ? \"visible\" : \"hidden\"}\n _groupHover={{ visibility: \"visible\" }}\n >\n <ChakraIcon as={SortIcon} boxSize=\"14px\" />\n </IconButton>\n </Menu.Trigger>\n <Portal>\n <Menu.Positioner>\n <Menu.Content zIndex=\"popover\" bg=\"bg\">\n <Menu.Item value=\"sort-asc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort ascending\"\n icon={<ChakraIcon as={ArrowUpAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"asc\"}\n onActivate={() => header.column.toggleSorting(false)}\n />\n </Menu.Item>\n <Menu.Item value=\"sort-desc\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Sort descending\"\n icon={<ChakraIcon as={ArrowDownAZ} boxSize=\"16px\" />}\n disabled={sortDirection === \"desc\"}\n onActivate={() => header.column.toggleSorting(true)}\n />\n </Menu.Item>\n {sortDirection && (\n <Menu.Item value=\"clear-sort\" asChild>\n <ListRow\n asChild\n variant=\"full-width\"\n label=\"Clear sort\"\n onActivate={() => header.column.clearSorting()}\n />\n </Menu.Item>\n )}\n </Menu.Content>\n </Menu.Positioner>\n </Portal>\n </Menu.Root>\n )}\n {header.column.getCanResize() && (\n <span\n {...{\n onDoubleClick: () => header.column.resetSize(),\n onMouseDown: header.getResizeHandler(),\n onTouchStart: header.getResizeHandler(),\n className: `resizer ${header.column.getIsResizing() ? \"isResizing\" : \"\"}`,\n }}\n />\n )}\n </Flex>\n </Tooltip>\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableCellViewProps {\n cell: Cell<RowData, unknown>;\n row: Row<RowData>;\n wrapRows: boolean;\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nconst DataTableCellView = (props: DataTableCellViewProps) => {\n const { cell, row, wrapRows, getCellContextMenuActions } = props;\n const columnMeta = cell.column.columnDef.meta as DataTableColumnMeta | undefined;\n const cellStyle = columnMeta?.getCellStyle?.(cell.getValue());\n const cellContext: DataTableCellContext = {\n row: row.original,\n rowId: row.id,\n columnId: cell.column.id,\n value: cell.getValue(),\n };\n const contextActions =\n getCellContextMenuActions?.(cellContext).map((action) => ({\n key: action.label,\n label: action.label,\n icon: action.icon,\n onClick: () => action.onSelect(cellContext),\n })) ?? [];\n const cellElement = (\n <Table.Cell\n data-column-id={cell.column.id}\n width=\"fit-content\"\n maxWidth=\"12rem\"\n overflow=\"hidden\"\n overflowWrap={wrapRows ? \"anywhere\" : undefined}\n padding=\"xs\"\n height={wrapRows ? undefined : \"10\"}\n maxHeight={wrapRows ? undefined : \"10\"}\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n key={cell.id}\n textStyle=\"paragraph/S/regular\"\n textOverflow={wrapRows ? undefined : \"ellipsis\"}\n verticalAlign={wrapRows ? \"top\" : \"middle\"}\n whiteSpace={wrapRows ? \"normal\" : \"nowrap\"}\n style={cellStyle}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n\n if (contextActions.length === 0) return cellElement;\n\n return (\n <ResourceContextMenu key={cell.id} actions={contextActions}>\n {cellElement}\n </ResourceContextMenu>\n );\n};\n\ninterface DataTableBodyRowProps {\n row: Row<RowData>;\n noBorder?: boolean;\n rowIsInteractive: boolean;\n rowIsActive: boolean;\n rowIsSelected: boolean;\n wrapRows: boolean;\n onRowClick?: DataTableProps[\"onRowClick\"];\n getCellContextMenuActions?: DataTableProps[\"getCellContextMenuActions\"];\n}\n\nexport const DataTableBodyRow = (props: DataTableBodyRowProps) => {\n const {\n row,\n noBorder,\n rowIsInteractive,\n rowIsActive,\n rowIsSelected,\n wrapRows,\n onRowClick,\n getCellContextMenuActions,\n } = props;\n\n return (\n <Table.Row\n key={row.id}\n data-active={rowIsActive ? \"true\" : undefined}\n data-selected={rowIsSelected ? \"true\" : undefined}\n aria-selected={rowIsSelected ? \"true\" : undefined}\n height={wrapRows ? undefined : \"10\"}\n cursor={rowIsInteractive ? \"pointer\" : undefined}\n onClick={rowIsInteractive ? () => onRowClick?.(row.original) : undefined}\n borderTop={noBorder ? \"none\" : \"1px solid\"}\n borderBottom=\"1px solid\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n _last={{ borderBottom: noBorder ? \"none\" : \"1px solid\", borderColor: \"border.subtle\" }}\n borderColor=\"border.subtle\"\n background={rowIsActive ? \"bg.active\" : \"bg\"}\n >\n {row.getVisibleCells().map((cell) => (\n <DataTableCellView\n key={cell.id}\n cell={cell}\n row={row}\n wrapRows={wrapRows}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n ))}\n </Table.Row>\n );\n};\n","import \"./data-table.css\";\n\nimport { Box, Flex, Table } from \"@chakra-ui/react\";\nimport {\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n type PaginationState,\n type RowSelectionState,\n type SortingState,\n useReactTable,\n} from \"@tanstack/react-table\";\nimport { Fragment, lazy, Suspense, useEffect, useState } from \"react\";\nimport { ScrollArea } from \"@/components/primitives/scroll-area\";\nimport { useKanbanRendererStore } from \"../kanban-renderer/use-kanban-renderer-store\";\nimport { buildColumns } from \"./build-columns\";\nimport { DataTableColumnMenu } from \"./data-table-column-menu\";\nimport { DataTableHeader } from \"./data-table-header\";\nimport {\n buildDataTableRendererAttributes,\n buildDataTableRendererRows,\n filterDataTableRows,\n getSelectedOriginalRows,\n reorderDataTableColumns,\n resolveDataTableColumnOrder,\n resolveDataTableRowId,\n resolveDataTableToolbarStorageKey,\n resolveInitialPageSize,\n resolveSelectionActions,\n shouldEnableSelection,\n shouldHighlightActiveRow,\n toggleHiddenDataTableColumn,\n} from \"./data-table-state\";\nimport { DataTableBodyRow, DataTableColumnHeader } from \"./data-table-table-parts\";\nimport { EditModeDataTable } from \"./edit-mode-data-table\";\nimport { PaginationFooter } from \"./pagination-footer\";\nimport { SelectionToolbar } from \"./selection-toolbar\";\nimport type { DataTableProps, RowData } from \"./types\";\n\nconst DataTableStatsRow = lazy(() =>\n import(\"./data-table-stats-row\").then((module) => ({ default: module.DataTableStatsRow })),\n);\n\ninterface DatasetPaginationProps {\n table: ReturnType<typeof useReactTable<RowData>>;\n pagination: PaginationState;\n pageSizeOptions: number[];\n}\n\nconst buildColumnMenuColumns = (columnKeys: string[], compactHeaders?: Partial<Record<string, string>>) =>\n columnKeys.map((columnId) => ({ id: columnId, label: compactHeaders?.[columnId] ?? columnId }));\n\nconst resolveColumnSizeVars = (table: ReturnType<typeof useReactTable<RowData>>) => {\n const colSizes: Record<string, number> = {};\n for (const header of table.getFlatHeaders()) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n return colSizes;\n};\n\nconst DatasetPagination = (props: DatasetPaginationProps) => {\n const { table, pagination, pageSizeOptions } = props;\n\n return (\n <PaginationFooter\n pageCount={table.getPageCount()}\n pageIndex={pagination.pageIndex}\n pageSize={pagination.pageSize}\n pageSizeOptions={pageSizeOptions}\n totalRows={table.getCoreRowModel().rows.length}\n onPageChange={table.setPageIndex}\n onPageSizeChange={table.setPageSize}\n />\n );\n};\n\nconst DatasetDataTable = (props: DataTableProps) => {\n const {\n data,\n noBorder,\n fullWidth,\n hiddenColumns,\n defaultHiddenColumns,\n defaultShowStats = true,\n onRowClick,\n isRowInteractive,\n activeRowId,\n columnIcons,\n columnDescriptions,\n compactHeaders,\n columnStats,\n columnRenderers,\n initialPageSize,\n pageSizeOptions = [10, 20, 30, 50, 100],\n rowActions = [],\n getRowActions,\n getRowId,\n toolbarStorageKey,\n enableRowActivation = false,\n getCellContextMenuActions,\n } = props;\n const [sorting, setSorting] = useState<SortingState>([]);\n const [pagination, setPagination] = useState<PaginationState>(() => ({\n pageIndex: 0,\n pageSize: resolveInitialPageSize({ initialPageSize }),\n }));\n const [rowSelection, setRowSelection] = useState<RowSelectionState>({});\n const [showStats, setShowStats] = useState(defaultShowStats);\n const [wrapRows, setWrapRows] = useState(false);\n const [columnOrder, setColumnOrder] = useState<string[]>(() => {\n const propHiddenColumnsSet = new Set(hiddenColumns ?? []);\n return Object.keys(data[0] || {}).filter((key) => !propHiddenColumnsSet.has(key));\n });\n const [hiddenColumnMenuIds, setHiddenColumnMenuIds] = useState<Set<string>>(() => new Set(defaultHiddenColumns));\n const hiddenColumnsSet = new Set(hiddenColumns ?? []);\n const baseColumnKeys = Object.keys(data[0] || {}).filter((key) => !hiddenColumnsSet.has(key));\n const orderedBaseColumnKeys = resolveDataTableColumnOrder(baseColumnKeys, columnOrder);\n const visibleColumnIds = new Set(orderedBaseColumnKeys.filter((key) => !hiddenColumnMenuIds.has(key)));\n const columnKeys = orderedBaseColumnKeys.filter((key) => visibleColumnIds.has(key));\n const enableSelection = shouldEnableSelection(props);\n const selectionActions = resolveSelectionActions(props);\n const rendererAttributes = buildDataTableRendererAttributes(\n data,\n orderedBaseColumnKeys,\n compactHeaders,\n columnRenderers,\n );\n const rendererRows = buildDataTableRendererRows(data, orderedBaseColumnKeys, getRowId, columnRenderers);\n const resolvedToolbarStorageKey = resolveDataTableToolbarStorageKey({\n toolbarStorageKey,\n columnKeys: baseColumnKeys,\n });\n const filters = useKanbanRendererStore(resolvedToolbarStorageKey, (state) => state.filters, {\n settings: { viewMode: \"list\" },\n });\n const filteredRendererRows = filterDataTableRows(rendererRows, filters, rendererAttributes);\n const filteredData = filteredRendererRows.map((row) => row.sourceRow);\n const columns = buildColumns(data, columnKeys, {\n columnIcons,\n columnDescriptions,\n compactHeaders,\n enableSelection,\n rowActions,\n getRowActions,\n selectedRowIds: rowSelection,\n columnRenderers,\n wrapRows,\n });\n\n const table = useReactTable({\n data: filteredData,\n columns,\n defaultColumn: { size: 150, minSize: 40, maxSize: 800 },\n state: { sorting, pagination, rowSelection },\n getRowId: (row, index) => resolveDataTableRowId(row, index, getRowId),\n columnResizeMode: \"onChange\",\n columnResizeDirection: \"ltr\",\n onSortingChange: setSorting,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection,\n getSortedRowModel: getSortedRowModel(),\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n enableMultiRowSelection: enableSelection,\n enableRowSelection: enableSelection,\n autoResetAll: false,\n });\n\n useEffect(() => {\n const pageCount = table.getPageCount();\n if (pageCount === 0 || pagination.pageIndex < pageCount) return;\n\n setPagination((current) => ({\n ...current,\n pageIndex: Math.max(pageCount - 1, 0),\n }));\n }, [pagination.pageIndex, table]);\n\n const columnSizeVars = resolveColumnSizeVars(table);\n\n const selectedRows = table.getSelectedRowModel().rows;\n const allRows = table.getCoreRowModel().rows;\n const selectedOriginalRows = getSelectedOriginalRows(selectedRows);\n const columnControl = (\n <DataTableColumnMenu\n columns={buildColumnMenuColumns(orderedBaseColumnKeys, compactHeaders)}\n visibleColumnIds={visibleColumnIds}\n wrapRows={wrapRows}\n showStats={showStats}\n statsAvailable={Boolean(columnStats)}\n onColumnVisibilityChange={(columnId, visible) =>\n setHiddenColumnMenuIds((current) => toggleHiddenDataTableColumn(current, columnId, visible))\n }\n onColumnReorder={(activeColumnId, overColumnId) =>\n setColumnOrder((current) =>\n reorderDataTableColumns(resolveDataTableColumnOrder(baseColumnKeys, current), activeColumnId, overColumnId),\n )\n }\n onWrapRowsChange={setWrapRows}\n onStatsVisibilityChange={setShowStats}\n />\n );\n\n return (\n <Flex direction=\"column\" height=\"100%\" width=\"100%\">\n <DataTableHeader\n rows={rendererRows}\n storageKey={resolvedToolbarStorageKey}\n attributes={rendererAttributes}\n columnControl={columnControl}\n actions={props.toolbarActions}\n defaultViews={props.defaultViews}\n defaultActiveViewId={props.defaultActiveViewId}\n />\n {props.contentPlaceholder ?? (\n <Box position=\"relative\" flex=\"1\" minHeight=\"0\">\n <ScrollArea height=\"100%\" maxWidth=\"unset\" showHorizontalScrollbar>\n <Table.Root\n className={`data-table${fullWidth ? \" full-width\" : \"\"}`}\n style={{ ...columnSizeVars, width: fullWidth ? \"100%\" : table.getTotalSize() }}\n >\n <Table.Header>\n {table.getHeaderGroups().map((headerGroup) => (\n <Fragment key={headerGroup.id}>\n <Table.Row\n className=\"data-table-column-header-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableColumnHeader\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n table={table}\n fullWidth={fullWidth}\n hasDescription={Boolean(columnDescriptions?.[header.column.id])}\n />\n ))}\n </Table.Row>\n {columnStats && showStats ? (\n <Suspense fallback={null}>\n <DataTableStatsRow\n headerGroup={headerGroup}\n rows={filteredData}\n columnStats={columnStats}\n noBorder={noBorder}\n fullWidth={fullWidth}\n />\n </Suspense>\n ) : null}\n </Fragment>\n ))}\n </Table.Header>\n <Table.Body>\n {table.getRowModel().rows.map((row) => {\n const rowIsInteractive = onRowClick ? (isRowInteractive?.(row.original) ?? true) : false;\n const rowIsActive = shouldHighlightActiveRow({ enableRowActivation, activeRowId, rowId: row.id });\n const rowIsSelected = row.getIsSelected();\n\n return (\n <DataTableBodyRow\n key={row.id}\n row={row}\n noBorder={noBorder}\n rowIsInteractive={rowIsInteractive}\n rowIsActive={rowIsActive}\n rowIsSelected={rowIsSelected}\n wrapRows={wrapRows}\n onRowClick={onRowClick}\n getCellContextMenuActions={getCellContextMenuActions}\n />\n );\n })}\n </Table.Body>\n </Table.Root>\n </ScrollArea>\n {enableSelection && selectedRows.length > 0 ? (\n <SelectionToolbar\n selectedCount={selectedRows.length}\n totalCount={allRows.length}\n onClearSelection={() => table.toggleAllRowsSelected(false)}\n onSelectAll={() => table.toggleAllRowsSelected(true)}\n actions={selectionActions}\n selectedRows={selectedOriginalRows}\n />\n ) : null}\n </Box>\n )}\n {table.getPageCount() > 1 && (\n <DatasetPagination table={table} pagination={pagination} pageSizeOptions={pageSizeOptions} />\n )}\n </Flex>\n );\n};\n\nexport const DataTable = (props: DataTableProps) => {\n if (props.editMode) return <EditModeDataTable {...props} />;\n return <DatasetDataTable {...props} />;\n};\n","import \"./data-table.css\";\n\nimport { Skeleton, Table, Text } from \"@chakra-ui/react\";\n\nexport interface DataTableSkeletonColumn {\n id: string;\n label: string;\n}\n\ninterface DataTableSkeletonProps {\n /** Real column headers when the caller already knows them. */\n columns?: DataTableSkeletonColumn[];\n /** Placeholder column count when the headers are still unknown. */\n columnCount?: number;\n rowCount?: number;\n}\n\n// Deterministic width variation keeps the shimmer organic without re-rendering\n// to a different layout on every mount.\nconst cellWidths = [\"70%\", \"45%\", \"60%\", \"35%\", \"55%\"];\n\nexport const DataTableSkeleton = (props: DataTableSkeletonProps) => {\n const { columns, columnCount = 3, rowCount = 5 } = props;\n const headers =\n columns && columns.length > 0\n ? columns\n : Array.from({ length: columnCount }, (_, index) => ({ id: `column-${index + 1}`, label: \"\" }));\n\n return (\n <Table.Root className=\"data-table full-width\" width=\"100%\">\n <Table.Header>\n <Table.Row className=\"data-table-column-header-row\" borderRight=\"1px solid\" borderColor=\"border.subtle\">\n {headers.map((column) => (\n <Table.ColumnHeader\n key={column.id}\n textTransform=\"none\"\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n paddingX=\"xs\"\n paddingY=\"xs\"\n whiteSpace=\"nowrap\"\n >\n {column.label ? (\n <Text as=\"div\" textStyle=\"label/S/medium\" lineHeight=\"1.2\" truncate>\n {column.label}\n </Text>\n ) : (\n <Skeleton height=\"12px\" width=\"4rem\" borderRadius=\"xs\" />\n )}\n </Table.ColumnHeader>\n ))}\n </Table.Row>\n </Table.Header>\n <Table.Body>\n {Array.from({ length: rowCount }, (_, rowIndex) => (\n <Table.Row key={rowIndex}>\n {headers.map((column, columnIndex) => (\n <Table.Cell\n key={column.id}\n padding=\"xs\"\n borderRight=\"1px solid\"\n borderColor=\"border.subtle\"\n _last={{ borderRight: \"none\" }}\n borderBottom=\"none\"\n >\n <Skeleton\n height=\"14px\"\n width={cellWidths[(rowIndex + columnIndex) % cellWidths.length]}\n borderRadius=\"xs\"\n />\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;;AAOA,IAAaI,MAA2BC,GAAgBC,MAC/CA,EAAWC,MAAMC,MAAaC,OAAOC,GAAGF,EAASH,OAAOA,CAAK,CAAC,CAAC,EAAEM,SAAS,MAGtEC,MAAwBC,MAAqC;CACxE,IAAM,EAAEV,gBAAaU;CAErB,OAAOV;AACT,GCPMgB,KAAgB,WAChBC,KAAiB,WACjBC,KAAkB,WAClBC,KAAwB,KAExBC,MAAkBC,MACtBA,EACGC,MAAM,EAAE,CAAC,CACTC,KAAKC,MAAcA,IAAYA,CAAS,CAAC,CACzCC,KAAK,EAAE,GAECC,KAAiBC,MAAkB;CAC9C,IAAMC,IAAaD,EAAME,KAAK,GACxBR,IAAMO,EAAWE,WAAW,GAAG,IAAIF,EAAWG,MAAM,CAAC,IAAIH,GACzDI,IAAcX,EAAIY,WAAW,IAAIb,GAAeC,CAAG,IAAIA;CAG7D,OAFK,gBAAgBa,KAAKF,CAAW,IAE9B;EACLnB,GAAGsB,OAAOC,SAASJ,EAAYD,MAAM,GAAG,CAAC,GAAG,EAAE;EAC9CjB,GAAGqB,OAAOC,SAASJ,EAAYD,MAAM,GAAG,CAAC,GAAG,EAAE;EAC9ChB,GAAGoB,OAAOC,SAASJ,EAAYD,MAAM,GAAG,CAAC,GAAG,EAAE;CAChD,IAN+C;AAOjD,GAEMM,MAAmBC,MAAoB;CAC3C,IAAMV,IAAaU,IAAU;CAC7B,OAAOV,KAAc,SAAUA,IAAa,UAAUA,IAAa,QAAS,UAAU;AACxF,GAEMW,MAAqBZ,MACzB,QAASU,GAAgBV,EAAMd,CAAC,IAAI,QAASwB,GAAgBV,EAAMb,CAAC,IAAI,QAASuB,GAAgBV,EAAMZ,CAAC,GAEpGyB,MAAiBC,GAAsBC,MAAyB;CACpE,IAAMC,IAAsBJ,GAAkBE,CAAU,GAClDG,IAAsBL,GAAkBG,CAAU,GAClDG,IAAUC,KAAKC,IAAIJ,GAAqBC,CAAmB,GAC3DI,IAASF,KAAKG,IAAIN,GAAqBC,CAAmB;CAChE,QAAQC,IAAU,QAASG,IAAS;AACtC,GAEME,MAAcvB,MAAoB;CACtC,IAAMwB,KAAgBb,MAAoBQ,KAAKM,MAAMd,CAAO,CAAC,CAACe,SAAS,EAAE,CAAC,CAACC,SAAS,GAAG,GAAG;CAC1F,OAAO,IAAIH,EAAaxB,EAAMd,CAAC,IAAIsC,EAAaxB,EAAMb,CAAC,IAAIqC,EAAaxB,EAAMZ,CAAC;AACjF,GAEMwC,MAAgBC,GAAiBC,GAAeC,OAAuB;CAC3E7C,GAAG2C,EAAM3C,KAAK,IAAI6C,KAAaD,EAAI5C,IAAI6C;CACvC5C,GAAG0C,EAAM1C,KAAK,IAAI4C,KAAaD,EAAI3C,IAAI4C;CACvC3C,GAAGyC,EAAMzC,KAAK,IAAI2C,KAAaD,EAAI1C,IAAI2C;AACzC,IASMI,MAA0BpB,GAAsBqB,MAAqB;CACzE,KAAK,IAAIC,IAAO,GAAGA,KAAQ,IAAIA,KAAQ,GAAG;EACxC,IAAMC,IAAYV,GAAab,GAAYqB,GAAQC,IAAO,EAAE;EAC5D,IAAIxB,GAAcyB,GAAWvB,CAAU,KAAKvB,IAC1C,OAAO;GAAEQ,OAAOuB,GAAWe,CAAS;GAAGD;EAAK;CAEhD;CAEA,OAAO;EAAErC,OAAOuB,GAAWa,CAAM;EAAGC,MAAM;CAAG;AAC/C,GAEaE,MAA4BL,MAA4B;CACnE,IAAMnB,IAAahB,EAAcmC,CAAe;CAChD,IAAI,CAACnB,GAAY,OAAO1B;CAExB,IAAMmD,IAAWzC,EAAcR,EAAe,GACxCkD,IAAY1C,EAAcT,EAAc,GACxCoD,IAAcP,GAAuBpB,GAAYyB,CAAQ,GACzDG,IAAeR,GAAuBpB,GAAY0B,CAAS;CAEjE,OAAOC,EAAYL,QAAQM,EAAaN,OAAOK,EAAY1C,QAAQ2C,EAAa3C;AAClF,GAEa4C,MAAgBC,GAAoBC,GAAkBC,MAAwB;CACzF,IAAMlB,IAAQ9B,EAAc8C,CAAU,GAChCf,IAAM/B,EAAc+C,CAAQ;CAGlC,OAFI,CAACjB,KAAS,CAACC,IAAY,OAEpBP,GAAWK,GAAaC,GAAOC,GAAK,IAAIiB,CAAW,CAAC;AAC7D,GAEaC,MAAyBhD,MAA+B;CACnE,IAAMiD,IAAkBjD,EAAMc,YAAYoC,SAASX,GAAyBvC,EAAMkD,KAAK,GACjFC,IAAiBnD,EAAMc,YAAYsC,QAAQb,GAAyBvC,EAAMoD,IAAI;CAEpF,OAAO;EACLlB,iBAAiB,cAAclC,EAAMkD,MAAK,IAAKlD,EAAMoD,KAAI;EACzDpD,OAAO,cAAciD,EAAe,IAAKE,EAAc;CACzD;AACF,GCjGMQ,MAAoBD,MAAkBE,KAAKC,MAAMH,IAAQ,GAAG,IAAI,KAEhEI,MAAaC,GAAoBC,GAAkBC,MACpCX,GAAaS,GAAYC,GAAUC,CAClDC,KAEG,sBAAsBH,EAAU,GAAIJ,GAAiBM,IAAc,GAAG,EAAC,KAAMD,EAAQ,IAGxFG,MAAkBC,GAA4BC,GAA0BJ,MAAwB;CACpG,IAAMK,IACJF,EAAME,cAAcD,EAAIC,aACpB;EACEC,OAAOT,GAAUM,EAAME,WAAWC,OAAOF,EAAIC,WAAWC,OAAON,CAAW;EAC1EO,MAAMV,GAAUM,EAAME,WAAWE,MAAMH,EAAIC,WAAWE,MAAMP,CAAW;CACzE,IACAQ,KAAAA;CAEN,OAAO;EACLF,OAAOT,GAAUM,EAAMG,OAAOF,EAAIE,OAAON,CAAW;EACpDO,MAAMV,GAAUM,EAAMI,MAAMH,EAAIG,MAAMP,CAAW;EACjD,GAAIK,IAAa,EAAEA,cAAW,IAAI,CAAC;CACrC;AACF,GAEaI,MAA0BhB,GAAgBiB,MAAqC;CAC1F,IAAI,OAAOjB,KAAU,YAAY,CAACkB,OAAOC,SAASnB,CAAK,KAAKiB,EAAMG,SAAS,GAAG,OAAO;CAErF,IAAMC,IAAYJ,EAAM,IAClBK,IAAWL,EAAMA,EAAMG,SAAS;CAEtC,IADcE,EAAStB,QAAQqB,EAAUrB,SAC5B,GAAG,OAAO;CAEvB,IAAIA,KAASqB,EAAUrB,OAAO,OAAOqB,EAAUG;CAC/C,IAAIxB,KAASsB,EAAStB,OAAO,OAAOsB,EAASE;CAE7C,IAAMC,IAAWR,EAAMS,WAAWC,MAAS3B,KAAS2B,EAAK3B,KAAK,GACxD4B,IAAYX,EAAMQ,IAAW,IAC7BI,IAAUZ,EAAMQ,IAEhBlB,IAAc,KADKP,IAAQ4B,EAAU5B,UAAU6B,EAAQ7B,QAAQ4B,EAAU5B;CAE/E,OAAOS,GAAemB,EAAUJ,OAAOK,EAAQL,OAAOjB,CAAW;AACnE,GAEawB,MAAiBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAC5B,EAAAlC,aAAkBgC,GAAMG;CAKf,OALeF,EAAA,OAAAjC,IAKfmC,IAAAF,EAAA,MAFPE,IAAA,kBAACyhC,GAAD;EAAgB,WAAA;EAAwC,oBAAA;EAAe,UAAA;EACpE5jC,UAAAA;CADE,CAAA,GAEEiC,EAAA,KAAAjC,GAAAiC,EAAA,KAAAE,IAFPA;AAEO,GClDEO,MAAqBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAChC,EAAAL,UAAAC,kBAA8BE,GAAMG;CAAA,AAAAF,EAAA,OAAAH,KAAAG,EAAA,OAAAJ,KACpBM,IAAAL,GAAUM,MAAOC,MAAcA,EAAQR,UAAWA,CAAc,CAAC,EAAAS,WAAjE,QAA2EL,EAAA,KAAAH,GAAAG,EAAA,KAAAJ,GAAAI,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAA3F,IAAAK,IAAgBH,GAIXI,IAAAC,OAAOX,CAAK,GAACY;CACR,OADQR,EAAA,OAAAK,KAAAL,EAAA,OAAAM,KADhBE,IAAA,kBAAC6gC,GAAD;EAAe,SAAA;EAAc,MAAA;EAAmBhhC,cAAAA;EAAc,MAAA;EAAO,UAAA;EAClEC,UAAAA;CADG,CAAA,GAEEN,EAAA,KAAAK,GAAAL,EAAA,KAAAM,GAAAN,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAFRQ;AAEQ,GCXNM,KAAgB;CACpB;EAAEC,MAAM;EAAQC,SAAS;CAAmB;CAC5C;EAAED,MAAM;EAASC,SAAS;CAAkB;CAC5C;EAAED,MAAM;EAAOC,SAAS;CAAa;CACrC;EAAED,MAAM;EAAQC,SAAS;CAAQ;CACjC;EAAED,MAAM;EAAUC,SAAS;CAAG;AAAC,GAG3BE,MAAaC,MAAmB;CACpC,IAAI,OAAOA,KAAU,UAAU,OAAO;CACtC,IAAMC,IAAOC,KAAKC,MAAMH,CAAK;CAC7B,OAAOI,OAAOC,MAAMJ,CAAI,IAAI,OAAO,IAAIC,KAAKD,CAAI;AAClD,GAEaK,MAA+BN,GAAgBO,oBAAM,IAAIL,KAAK,GAAGM,MAAoB;CAChG,IAAMC,IAAOV,GAAUC,CAAK;CAC5B,IAAI,CAACS,GAAM,OAAO;CAClB,IAAMC,IAAS,IAAIC,KAAKC,mBAAmBJ,GAAQ,EAAEK,SAAS,OAAO,CAAC,GAChEC,KAAkBL,EAAKM,QAAQ,IAAIR,EAAIQ,QAAQ,KAAK,KACpDC,IAAQrB,GAAcsB,MAAMC,MAAcC,KAAKC,IAAIN,CAAc,KAAKI,EAAUrB,OAAO;CAE7F,OADKmB,IACEN,EAAOA,OAAOS,KAAKE,MAAMP,IAAiBE,EAAMnB,OAAO,GAAGmB,EAAMpB,IAAI,IADxDc,EAAOA,OAAO,GAAG,QAAQ;AAE9C,GAMaa,MAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC/B,EAAA1B,aAAkBwB,GAClB,CAAAjB,GAAAoB,KAAsBlC,EAASmC,EAAgB,GAAEC,GAAAC;CACjDtC,AADiDiC,EAAA,OAAAM,OAAAC,IAAA,2BAAA,KACvCH,UAAA;EACR,IAAAI,IAAcC,kBAAkBP,kBAAO,IAAIzB,KAAK,CAAC,GAAG,GAAM;EAAE,aAC/CiC,cAAcF,CAAK;CAAC,GAChCH,IAAA,CAAA,GAAEL,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,MAAAD,IAAAJ,EAAA,IAAAK,IAAAL,EAAA,KAHLjC,GAAUqC,GAGPC,CAAE;CAAC,IAAAM;CAAA,AAAAX,EAAA,OAAAlB,KAAAkB,EAAA,OAAAzB,KACgBoC,IAAA9B,GAA4BN,GAAOO,CAAG,GAACkB,EAAA,KAAAlB,GAAAkB,EAAA,KAAAzB,GAAAyB,EAAA,KAAAW,KAAAA,IAAAX,EAAA;CAA7D,IAAAY,IAAsBD,GAAwCE;CAAA,AAAAb,EAAA,OAAAzB,IACyCsC,IAAAb,EAAA,MAAtFa,IAAA,IAAIpC,KAAKF,CAAK,CAAC,CAAAuC,eAAgBC,KAAAA,GAAW;EAAAC,WAAa;EAAQC,WAAa;CAAQ,CAAC,GAACjB,EAAA,KAAAzB,GAAAyB,EAAA,KAAAa;CAAvG,IAAAK,IAAiBL,GAAuFM;CAAA,AAAAnB,EAAA,OAAAY,IAM7FO,IAAAnB,EAAA,MAFPmB,IAAA,kBAACi9B,GAAD;EAAS,IAAA;EAAiB,UAAA;EAAa,WAAA;EAA4B,OAAA;EAAsB,YAAA;EACtFx9B,UAAAA;CADE,CAAA,GAEEZ,EAAA,KAAAY,GAAAZ,EAAA,KAAAmB;CAAA,IAAAC;CACC,OADDpB,EAAA,OAAAkB,KAAAlB,EAAA,QAAAmB,KAHTC,IAAA,kBAACG,GAAD;EAAkBL,SAAAA;EAAqB,WAAA;EACrCC,UAAAA;CADM,CAAA,GAIEnB,EAAA,KAAAkB,GAAAlB,EAAA,MAAAmB,GAAAnB,EAAA,MAAAoB,KAAAA,IAAApB,EAAA,KAJVoB;AAIU;AAfmB,SAAAjB,KAAA;CAAA,uBAEM,IAAI1B,KAAK;AAAC;;;AC/BjD,IAAaiD,MAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAC/B,EAAAC,aAAkBH,GAAMI;CACkF,OADlFH,EAAA,OAAAE,EAAAE,aAAAJ,EAAA,OAAAE,EAAAG,aACjBF,IAAA,kBAACg4B,GAAD;EAAuB,WAAAj4B,EAAKE;EAAuB,WAAAF,EAAKG;EAAoB,SAAA;EAAa,MAAA;CAAO,CAAA,GAAGL,EAAA,KAAAE,EAAAE,WAAAJ,EAAA,KAAAE,EAAAG,WAAAL,EAAA,KAAAG,KAAAA,IAAAH,EAAA,IAAnGG;AAAmG,GCC/FO,MAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC/B,EAAAC,aAAkBH,GAAMI;CAAA,AAAAH,EAAA,OAAAE,IACuBC,IAAAH,EAAA,MAAjCG,IAAAD,EAAKE,MAAO,GAAG,EAAiB,GAACJ,EAAA,KAAAE,GAAAF,EAAA,KAAAG;CAA/C,IAAAE,IAAcF,GAAkCG;CAAA,AAAAN,EAAA,OAAAE,IACNI,IAAAN,EAAA,MAA9BM,IAAAJ,EAAKE,MAAO,EAAiB,GAACJ,EAAA,KAAAE,GAAAF,EAAA,KAAAM;CAA1C,IAAAC,IAAYD,GAA+BE;CAAA,AAAAR,EAAA,OAAAK,IAcvBG,IAAAR,EAAA,MAFdQ,IAAA,kBAAAk9B,EAAA,MAAA;EAAsB,UAAA;EAAsB,cAAA;EACzCr9B,UAAAA;CACH,CAAA,GAAcL,EAAA,KAAAK,GAAAL,EAAA,KAAAQ;CAAA,IAAAC;CAAA,AAAAT,EAAA,OAAAO,IACiCE,IAAAT,EAAA,MAA/CS,IAAA,kBAAAi9B,EAAA,MAAA;EAAyB,YAAA;EAAIn9B,UAAAA;CAAI,CAAA,GAAcP,EAAA,KAAAO,GAAAP,EAAA,KAAAS;CAAA,IAAAC;CAAA,AAAAV,EAAA,OAAAQ,KAAAR,EAAA,OAAAS,KAXjDC,IAAA,kBAAAg9B,EAAA,MAAA;EACU,SAAA;EACH,MAAA;EACA,MAAA;EACK,UAAA;EACA,WAAA;EACC,YAAA;EANb,UAAA,CAQEl9B,GAGAC,CACF;KAAcT,EAAA,KAAAQ,GAAAR,EAAA,KAAAS,GAAAT,EAAA,MAAAU,KAAAA,IAAAV,EAAA;CAAA,IAAAW;CACN,OADMX,EAAA,QAAAU,KAAAV,EAAA,QAAAE,KAbhBS,IAAA,kBAACE,GAAD;EAAkBX,SAAAA;EAAkB,WAAA;EAClCQ,UAAAA;CADM,CAAA,GAcEV,EAAA,MAAAU,GAAAV,EAAA,MAAAE,GAAAF,EAAA,MAAAW,KAAAA,IAAAX,EAAA,KAdVW;AAcU,GCfRQ,KAAwB,yCACxBC,KAAoB,4DAEpBC,MAAeC,MAAgB;CACnC,IAAMC,IAAQD,EACXE,QAAQ,sBAAsB,OAAO,CAAC,CACtCA,QAAQ,UAAU,GAAG,CAAC,CACtBC,KAAK,CAAC,CACNC,YAAY;CAEf,OAAOH,IAAQ,GAAGA,EAAM,EAAE,EAAEI,YAAY,IAAIJ,EAAMK,MAAM,CAAC,MAAM;AACjE,GAEMC,MAAcC,MAAmBA,EAAKC,KAAKC,MAAU,QAAQC,KAAKD,CAAI,IAAIA,IAAOX,GAAYW,CAAI,CAAE,CAAC,CAACE,KAAK,KAAK,GAE/GC,MAAoBlB,MAAqBA,EAAMmB,OAAOC,MAA0B,OAAOA,KAAS,aAAjCA,CAAyC,GAExGC,MAAoBrB,GAAgBa,GAAgBS,MAAwB;CAChF,IAAIC,MAAMC,QAAQxB,CAAK,GAAG;EACxB,IAAIA,EAAMyB,WAAW,KAAKP,GAAiBlB,CAAK,GAAG;GACjDsB,EAAOI,KAAK;IAAE3B,OAAOa,GAAWC,CAAI;IAAGb;GAAM,CAAC;GAC9C;EACF;EAEAA,EAAM2B,SAASP,GAAMQ,MAAU;GAC7BP,GAAiBD,GAAM,CAAC,GAAGP,GAAMgB,OAAOD,IAAQ,CAAC,CAAC,GAAGN,CAAM;EAC7D,CAAC;EACD;CACF;CAEA,IAAsB,OAAOtB,KAAU,YAAnCA,GAA6C;EAC/C,IAAM8B,IAAUC,OAAOD,QAAQ9B,CAAK;EACpC,IAAI8B,EAAQL,WAAW,GAAG;GACxBH,EAAOI,KAAK;IAAE3B,OAAOa,GAAWC,CAAI;IAAGb,OAAO;GAAK,CAAC;GACpD;EACF;EAEA8B,EAAQH,SAAS,CAACtB,GAAKe,OAAU;GAC/BC,GAAiBD,GAAM,CAAC,GAAGP,GAAMR,CAAG,GAAGiB,CAAM;EAC/C,CAAC;EACD;CACF;CAEAA,EAAOI,KAAK;EAAE3B,OAAOa,GAAWC,CAAI;EAAGb;CAAM,CAAC;AAChD,GAEagC,MAAsBhC,MAAmB;CACpD,IAAI,OAAOA,KAAU,UAAU,OAAOA;CAEtC,IAAI;EACF,OAAOiC,KAAKC,MAAMlC,CAAK;CACzB,QAAQ;EACN,OAAOA;CACT;AACF,GAEamC,MAAmBnC,MAAmB;CACjD,IAAMsB,IAAsB,CAAA;CAE5B,OADAD,GAAiBW,GAAmBhC,CAAK,GAAG,CAAA,GAAIsB,CAAM,GAC/CA,EAAOR,KAAKsB,OAAW;EAAE,GAAGA;EAAOrC,OAAOqC,EAAMrC,SAAS;CAAQ,EAAE;AAC5E,GAEasC,MAAoBrC,GAAgBD,MAAkB;CACjE,IAAI,OAAOC,KAAU,UAAU,OAAO;CACtC,IAAIA,EAAMsC,WAAW,aAAa,GAAG,OAAO;CAE5C,IAAI;EACF,IAAMC,IAAM,IAAIC,IAAIxC,CAAK;EAEzB,OADIuC,EAAIE,aAAa,WAAWF,EAAIE,aAAa,WAAiB,KAC3DvC,GAAsBc,KAAKuB,EAAIG,QAAQ,KAAKvC,GAAkBa,KAAKjB,CAAK;CACjF,QAAQ;EACN,OAAO;CACT;AACF,GAEa4C,MAAoB3C,GAAgBD,MACxCwB,MAAMC,QAAQxB,CAAK,KAAKA,EAAMyB,SAAS,KAAKzB,EAAMmB,OAAOC,MAASiB,GAAiBjB,GAAMrB,CAAK,CAAC,GAGlG6C,MAAuB5C,MACvBA,KAAU,QAA+BA,MAAU,KAAW,iBAC9D,OAAOA,KAAU,YAAkBA,IAAQ,QAAQ,OAChD6B,OAAO7B,CAAK,GAGf8C,MAAmB9C,MACnBuB,MAAMC,QAAQxB,CAAK,IAAUA,EAAMyB,WAAW,IAAI,SAASzB,EAAMc,IAAI8B,EAAmB,CAAC,CAAC3B,KAAK,IAAI,IAChG2B,GAAoB5C,CAAK,GAGrB+C,MAAsB/C,MAAmB;CACpD,IAAMgD,IAAchB,GAAmBhC,CAAK;CAE5C,IADIuB,MAAMC,QAAQwB,CAAW,KAAKA,EAAYvB,WAAW,KAC7B,OAAOuB,KAAgB,YAA/CA,KAA2DjB,OAAOkB,KAAKD,CAAW,CAAC,CAACvB,WAAW,GACjG,OAAO;CAGT,IAAMH,IAASa,GAAgBnC,CAAK,CAAC,CAACkD,QACnCd,MAAU,CAACC,GAAiBD,EAAMpC,OAAOoC,EAAMrC,KAAK,KAAK,CAAC4C,GAAiBP,EAAMpC,OAAOoC,EAAMrC,KAAK,CACtG;CACA,IAAIuB,EAAOG,WAAW,GAAG,OAAO;CAEhC,IAAM0B,IAAgB7B,EAAOX,MAAM,GAAG,CAAC,CAAC,CAACG,KAAKsB,MAAUU,GAAgBV,EAAMpC,KAAK,CAAC,GAC9EoD,IAAiB9B,EAAOG,SAAS0B,EAAc1B;CACrD,OAAO,CAAC,GAAG0B,GAAeC,IAAiB,IAAI,GAAGA,EAAc,SAAU,IAAI,CAAC,CAACF,OAAOG,OAAO,CAAC,CAACpC,KAAK,KAAK;AAC5G,GAEMqC,MAAmBlB,MAAqB;CAC5C,IAAM,EAAErC,UAAOC,aAAUoC;CAYzB,OAXIC,GAAiBrC,GAAOD,CAAK,IACxB;EAAEwD,MAAM;EAAkBE,KAAK5B,OAAO7B,CAAK;EAAG0D,KAAK,GAAG3D,EAAK;CAAW,IAE3EwB,MAAMC,QAAQxB,CAAK,KAAK2C,GAAiB3C,GAAOD,CAAK,IAChD;EACLwD,MAAM;EACNI,QAAQ3D,EAAMc,KAAK8C,GAAOhC,OAAW;GAAE6B,KAAK5B,OAAO+B,CAAK;GAAGF,KAAK,GAAG3D,EAAK,GAAI6B,IAAQ,EAAC;EAAW,EAAE;CACpG,IAEEL,MAAMC,QAAQxB,CAAK,IAAUA,IAC7BA,MAAU6C,KAAAA,IAAkB,OACzB7C;AACT,GAEa6D,MAA2B7D,MACtCmC,GAAgBnC,CAAK,CAAC,CAACc,KAAKsB,GAAOR,OAAW;CAC5CkC,IAAI,iBAAiBlC;CACrBmC,MAAM3B,EAAMrC;CACZwD,MAAM;CACNvD,OAAOsD,GAAgBlB,CAAK;AAC9B,EAAE,GAES4B,MAAsBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACjC,EAAAnE,aAAkBiE,GAAMG;CAAA,AAAAF,EAAA,OAAAlE,IACkCoE,IAAAF,EAAA,MAA9BE,IAAAP,GAAwB7D,CAAK,GAACkE,EAAA,KAAAlE,GAAAkE,EAAA,KAAAE;CAAA,IAAAC;CAAuB,OAAvBH,EAAA,OAAAE,IAAuBC,IAAAH,EAAA,MAA1EG,IAAA,kBAACkyB,GAAD;EAAqB,QAAAnyB;EAAgC,UAAA;EAAS,WAAA;CAAS,CAAA,GAAGF,EAAA,KAAAE,GAAAF,EAAA,KAAAG,IAA1EA;AAA0E,GChI7EmB,MAAqBC,MAA2CA,EAAMC,gBAAgB,GAE/EC,MAAWC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACtB,EAAAR,gBAAAC,aAA+BK,GAAMG,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;CAAA,IAAAjB,EAAA,OAAAP,KAAAO,EAAA,OAAAN,GAAA;EAErC,IAAAyB,IADehC,GAAgBO,CACXwB,CAAAA,CAAME,QACfC,EAIR,CAAC,CAAAC,MACK,GAAG,CAAC,GAAEC;EAkCNvB,AAlCMA,EAAA,QAAAN,IAC0B6B,IAAAvB,EAAA,OAAzBuB,IAAAlC,GAAmBK,CAAK,GAACM,EAAA,MAAAN,GAAAM,EAAA,MAAAuB,IAAzClB,IAAgBkB,GAGbnB,IAAAvB,EAAO2C,MAAKxB,EAAA,QAAAyB,OAAAC,IAAA,2BAAA,KAAcjB,IAAA;GAAAkB,WAAa;GAAcC,QAAU,EAAAC,UAAY,EAAE;EAAE,GAAC7B,EAAA,MAAAS,KAAAA,IAAAT,EAAA,KAC9EG,IAAAtB,EAAOiD,SAAStB,IAAA,IACdN,IAAAxB,GACa4B,IAAA,QAAQb,EAAW,WACvBc,IAAA,SACHG,IAAA,MACCC,IAAA,QACGC,IAAA,KACFC,IAAA,QACEC,IAAA,OACMC,IAAA,cACNpB,IAAAA,IAERsB,IAAAE,EAAWY,SAAU,IACpB,kBAACg4B,GAAD;GAAY,KAAA;GAAgB,YAAA;GACzB54B,UAAAA,EAAWa,IAAKC,EAWhB;EAZI,CAAA,IAeP,kBAACg4B,IAAD,EAAc,MAAA,GAAE,CAAA,GACjBj6B,EAAA,KAAAP,GAAAO,EAAA,KAAAN,GAAAM,EAAA,KAAAE,GAAAF,EAAA,KAAAG,GAAAH,EAAA,KAAAI,GAAAJ,EAAA,KAAAK,GAAAL,EAAA,KAAAM,GAAAN,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,GAAAR,EAAA,KAAAS,GAAAT,EAAA,MAAAU,GAAAV,EAAA,MAAAW,GAAAX,EAAA,MAAAY,GAAAZ,EAAA,MAAAa,GAAAb,EAAA,MAAAc,GAAAd,EAAA,MAAAe,GAAAf,EAAA,MAAAgB,GAAAhB,EAAA,MAAAiB;CAAA,OAAAA,AAAAf,IAAAF,EAAA,IAAAG,IAAAH,EAAA,IAAAI,IAAAJ,EAAA,IAAAK,IAAAL,EAAA,IAAAM,IAAAN,EAAA,IAAAO,IAAAP,EAAA,IAAAQ,IAAAR,EAAA,IAAAS,IAAAT,EAAA,IAAAU,IAAAV,EAAA,KAAAW,IAAAX,EAAA,KAAAY,IAAAZ,EAAA,KAAAa,IAAAb,EAAA,KAAAc,IAAAd,EAAA,KAAAe,IAAAf,EAAA,KAAAgB,IAAAhB,EAAA,KAAAiB,IAAAjB,EAAA;CAAA,IAAAuB;CAAA,AAAAvB,EAAA,QAAAK,IAGMkB,IAAAvB,EAAA,OAFPuB,IAAA,kBAACuzB,GAAD;EAAW,MAAA;EAAa,UAAA;EAAc,WAAA;EAAiB,WAAA;EAAsB,UAAA;EAC1Ez0B,UAAAA;CADE,CAAA,GAEEL,EAAA,MAAAK,GAAAL,EAAA,MAAAuB;CAAA,IAAAW;CAAA,AAAAlC,EAAA,QAAAyB,OAAAC,IAAA,2BAAA,KACPQ,IAAA,kBAACi4B,GAAD,EAAoB,MAAA,GAAE,CAAA,GAAIn6B,EAAA,MAAAkC,KAAAA,IAAAlC,EAAA;CAAA,IAAAmC;CAAA,AAAAnC,EAAA,QAAAE,KAAAF,EAAA,QAAAM,KAAAN,EAAA,QAAAO,KAAAP,EAAA,QAAAuB,KAAAvB,EAAA,QAAAU,KAAAV,EAAA,QAAAW,KAAAX,EAAA,QAAAY,KAAAZ,EAAA,QAAAa,KAAAb,EAAA,QAAAc,KAAAd,EAAA,QAAAe,KAAAf,EAAA,QAAAgB,KAAAhB,EAAA,QAAAiB,KAhC5BkB,IAAA,kBAAC42B,GAAD;EACc,cAAAz4B;EACJ,SAAAC;EACH,MAAAG;EACC,OAAAC;EACG,UAAAC;EACF,QAAAC;EACE,UAAAC;EACM,gBAAAC;EACNpB,SAAAA;EATX,UAAA;GAWGsB;GAkBDM;GAGAW;EAhCK;KAiCElC,EAAA,MAAAE,GAAAF,EAAA,MAAAM,GAAAN,EAAA,MAAAO,GAAAP,EAAA,MAAAuB,GAAAvB,EAAA,MAAAU,GAAAV,EAAA,MAAAW,GAAAX,EAAA,MAAAY,GAAAZ,EAAA,MAAAa,GAAAb,EAAA,MAAAc,GAAAd,EAAA,MAAAe,GAAAf,EAAA,MAAAgB,GAAAhB,EAAA,MAAAiB,GAAAjB,EAAA,MAAAmC,KAAAA,IAAAnC,EAAA;CAAA,IAAAoC;CAAA,AAAApC,EAAA,QAAAG,KAAAH,EAAA,QAAAQ,KAAAR,EAAA,QAAAmC,KAlCXC,IAAA,kBAAC42B,GAAD;EAAiB,SAAAx4B;EACf2B,UAAAA;CADc,CAAA,GAmCEnC,EAAA,MAAAG,GAAAH,EAAA,MAAAQ,GAAAR,EAAA,MAAAmC,GAAAnC,EAAA,MAAAoC,KAAAA,IAAApC,EAAA;CAAA,IAAAqC;CAAA,AAAArC,EAAA,QAAAyB,OAAAC,IAAA,2BAAA,KAI4BW,IAAA,EAAAC,oBAAsB,UAAU,GAACtC,EAAA,MAAAqC,KAAAA,IAAArC,EAAA;CAAA,IAAAuC;CAAA,AAAAvC,EAAA,QAAAN,IAKtE6C,IAAAvC,EAAA,OARTuC,IAAA,kBAACi4B,GAAD,EAAA,UACE,kBAAAX,EAAA,YAAA,EAAA,UACE,kBAAAA,EAAA,SAAA;EAAuB,OAAA;EAAyC,SAAA;EAAe,YAAA;EAAc,UAAA;EAC3F,UAAA,kBAACz2B,GAAD;GAAiB,MAAA;GAAuB,eAAAf;GACtC,UAAA,kBAACs2B,IAAD,EAA4Bj5B,SAAK,CAAA;EADxB,CAAA;CAGb,CAAA,EACF,CAAA,EAPK,CAAA,GAQEM,EAAA,MAAAN,GAAAM,EAAA,MAAAuC;CAAA,IAAAC;CACI,OADJxC,EAAA,QAAAI,KAAAJ,EAAA,QAAAS,KAAAT,EAAA,QAAAoC,KAAApC,EAAA,QAAAuC,KA7CXC,IAAA,kBAACy2B,GAAD;EAA2B,aAAAx4B;EAA3B,UAAA,CACE2B,GAoCAG,CArCW;KA8CEvC,EAAA,MAAAI,GAAAJ,EAAA,MAAAS,GAAAT,EAAA,MAAAoC,GAAApC,EAAA,MAAAuC,GAAAvC,EAAA,MAAAwC,KAAAA,IAAAxC,EAAA,KA9CfwC;AA8Ce;AA3DK,SAAAnB,GAAAoB,GAAA;CAMwE,OADtFlD,GAAiBkD,EAAK/C,OAAQ+C,EAAKC,KAAM,IAAU,CAACD,CAAK,IACzD,CAACE,MAAKC,QAASH,EAAK/C,KAAM,KAA1B,CAAgCJ,GAAiBmD,EAAK/C,OAAQ+C,EAAKC,KAAM,IAAU,CAAA,IAChFD,EAAK/C,MAAMsC,KAAKa,GAAAC,OAAmB;EAAAJ,OAAS,GAAGD,EAAKC,MAAM,GAAII,IAAQ;EAAGpD,OAASmD;CAAM,EAAE;AAAC;AAPhF,SAAAZ,GAAAc,GAAA;CAAA,OA6BR,kBAAC23B,GAAD;EAEO,KAAA13B,OAAOP,EAAK/C,KAAM;EAClB,KAAA,GAAG+C,EAAKC,MAAM;EACX,SAAA;EACK,cAAA;EACD,aAAA;EACA,aAAA;EACF,WAAA;CAAO,GAPZD,EAAKC,KAOO;AACjB;;;ACpClB,IAAM+C,MAAuBC,MACtBtB,EAA0CsB,CAAO,IAE/CvB,GAAauB,GAAS,EAC3BC,OAAO;CACL,GAAGD,EAAQE,MAAMD;CACjBE,UAAU;CACVC,UAAU;CACVC,YAAY;AACd,EACF,CAAC,IAT+DL,GAY5DM,MAA0BC,MAA2C;CACzEA,EAAMC,gBAAgB;AACxB,GAEaC,MAAkBP,MAAA;CAAA,IAAAQ,IAAAC,EAAA,CAAA,GAC7B,EAAAC,aAAkBV,GAClBW,IAAgBD,EAAKE,qBAAsB,GAC3CC,IAAwB,CAACF,KAAWD,EAAKI,sBAAuB,GAInDC,IAAAJ,IAAA,KAAiBE,IAAA,kBAAA,IAEJG,IAAAH,IAAAxC,IAAAH,IAA+B+C;CAAA,AAAAT,EAAA,OAAAQ,IAAmCC,IAAAT,EAAA,MAAlFS,IAAA,kBAACyE,GAAD;EAAgB,IAAA1E;EAAyC,SAAA;EAAmB,aAAA;CAAG,CAAA,GAAGR,EAAA,KAAAQ,GAAAR,EAAA,KAAAS;CAAA,IAAAC;CAAA,AAAAV,EAAA,OAAAE,IAELQ,IAAAV,EAAA,MAAlEU,KAAAC,MAAaT,EAAKU,sBAAuBD,EAAOR,YAAa,EAAI,GAACH,EAAA,KAAAE,GAAAF,EAAA,KAAAU;CAAA,IAAAG;CACnF,OADmFb,EAAA,OAAAO,KAAAP,EAAA,OAAAS,KAAAT,EAAA,OAAAU,KALrFG,IAAA,kBAACsE,GAAD;EACW,SAAA5E;EACE,cAAA;EACL,MAAAE;EACGb,SAAAA;EACQ,iBAAAc;CAAkE,CAAA,GACnFV,EAAA,KAAAO,GAAAP,EAAA,KAAAS,GAAAT,EAAA,KAAAU,GAAAV,EAAA,KAAAa,KAAAA,IAAAb,EAAA,IANFa;AAME,GAIOC,MAAgBtB,MAAA;CAAA,IAAAQ,IAAAC,EAAA,CAAA,GAC3B,EAAAc,QAAAC,cAAwBxB,GACxB,EAAAyB,sBAA2BD,EAAME,UAAUC,MAI9BZ,IAAAa,EAAQH,IAAiBF,EAAGM,KAAKb;CAAA,AAAAR,EAAA,OAAAsB,OAAAC,IAAA,2BAAA,KAEpCf,IAAA,kBAAC0E,GAAD;EAAgBxH,IAAAA;EAAe,SAAA;EAAmB,aAAA;CAAG,CAAA,GAAGsC,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAAA,IAAAS;CAAA,AAAAT,EAAA,OAAAe,IAEYN,IAAAT,EAAA,MAAzDS,KAAAE,MAAaI,EAAGS,eAAgBb,EAAOR,YAAa,EAAI,GAACH,EAAA,KAAAe,GAAAf,EAAA,KAAAS;CAAA,IAAAC;CAC1E,OAD0EV,EAAA,OAAAO,KAAAP,EAAA,OAAAS,KAL5EC,IAAA,kBAACyE,GAAD;EACW,SAAA5E;EACE,cAAA;EACL,MAAAC;EACGZ,SAAAA;EACQ,iBAAAa;CAAyD,CAAA,GAC1ET,EAAA,KAAAO,GAAAP,EAAA,KAAAS,GAAAT,EAAA,KAAAU,KAAAA,IAAAV,EAAA,IANFU;AAME,GAIAe,MAAmBC,GAAkCC,MAAyC;CAClG,IAAMC,IAAgB,IAAIC,IAAIF,EAAeG,KAAKC,MAAWA,EAAOC,KAAK,CAAC;CAC1E,OAAO,CAAC,GAAGL,GAAgB,GAAGD,EAAWO,QAAQF,MAAW,CAACH,EAAcM,IAAIH,EAAOC,KAAK,CAAC,CAAC;AAC/F,GAEaG,MAAiB3C,MAAA;CAAA,IAAAQ,IAAAC,EAAA,EAAA,GAC5B,EAAAc,QAAAC,cAAwBxB,GACxB,EAAAkC,YAAAnB,GAAA6B,eAAAC,MAAgErB,EAAME,UAAUC,MAA6BmB,GAAAC,GAAAC,GAAAC,GAAAjC,GAAAC,GAAAC,GAAAG,GAAA6B;CAAA,IAAA1C,EAAA,OAAAqC,KAAArC,EAAA,OAAAe,KAAAf,EAAA,OAAAO,GAAA;EAGpEmC,IAAApB,OAAIC,IAAJ,6BAAG;EAACoB,KAAA;GAF7C,IAAAG,IAAwBrB,GADJlB,MAAAsC,KAAAA,IAAA,CAAA,IAAAtC,GAC6B8B,IAAatB,EAAGgC,QAAe,KAA/B,CAAA,CAAgC;GAEjF,IAAID,EAAeE,WAAY,GAAC;IAASN,IAAA;IAAA,MAAAC;GAAI;GAWHlC,AARvCgC,IAAApF,EAAI4F,MAAKjD,EAAA,QAAAsB,OAAAC,IAAA,2BAAA,KACRV,IAAA,kBAAAq1B,EAAA,SAAA;IAAc,SAAA;IACZ,UAAA,kBAACC,IAAD;KAAuB,cAAA;KAAmB,MAAA;KAAc,SAAA;KAAiBv2B,SAAAA;KACvE,UAAA,kBAACsF,GAAD;MAAgBvH,IAAAA;MAAqB,SAAA;KAAM,CAAA;IADlC,CAAA;GAGb,CAAA,GAAeqC,EAAA,MAAAa,KAAAA,IAAAb,EAAA,KACdwC,IAAAlF,GACEiF,IAAAlF,EAAI6F,YACFZ,IAAAjF,EAAI8F,SAAgB3C,IAAA,WAAaC,IAAA;GAAI,IAAA2C;GACnC1C,AADmCV,EAAA,QAAAe,IAanCqC,IAAApD,EAAA,OAZoBoD,KAAArB,MACnB,kBAAAm0B,EAAA,MAAA;IAAqC,OAAAn0B,EAAMC;IAAQ,SAAA;IACjD,UAAA,kBAAC4mB,GAAD;KACE,SAAA;KACQ,SAAA;KACF,MAAA7mB,EAAMsB,cAAN,WAAA;KACC,OAAAtB,EAAMC;KACP,MAAAD,EAAMuB;KACH1D,SAAAA;KACG,kBAAMmC,EAAMwB,SAAUxC,EAAGgC,QAAS;IAAC,CAAA;GAEnD,GAVgBhB,EAAMC,KAUtB,GACDhC,EAAA,MAAAe,GAAAf,EAAA,MAAAoD,IAZA1C,IAAAoC,EAAehB,IAAKsB,CAYpB;EAAC;EAAApD,AAAAA,EAAA,KAAAqC,GAAArC,EAAA,KAAAe,GAAAf,EAAA,KAAAO,GAAAP,EAAA,KAAAsC,GAAAtC,EAAA,KAAAuC,GAAAvC,EAAA,KAAAwC,GAAAxC,EAAA,KAAAyC,GAAAzC,EAAA,KAAAQ,GAAAR,EAAA,KAAAS,GAAAT,EAAA,KAAAU,GAAAV,EAAA,MAAAa,GAAAb,EAAA,MAAA0C;CAAA,OAAAA,AAAAJ,IAAAtC,EAAA,IAAAuC,IAAAvC,EAAA,IAAAwC,IAAAxC,EAAA,IAAAyC,IAAAzC,EAAA,IAAAQ,IAAAR,EAAA,IAAAS,IAAAT,EAAA,IAAAU,IAAAV,EAAA,IAAAa,IAAAb,EAAA,KAAA0C,IAAA1C,EAAA;CAAA,IAAA0C,MAAApB,OAAAC,IAAA,6BAAA,GAAA,OAAAmB;CAAA,IAAAU;CAAA,AAAApD,EAAA,QAAAsC,KAAAtC,EAAA,QAAAQ,KAAAR,EAAA,QAAAS,KAAAT,EAAA,QAAAU,KAbJ0C,IAAA,kBAACuvB,GAAD;EAAqB,QAAAnyB;EAAa,IAAAC;EAC/BC,UAAAA;CADU,CAAA,GAcEV,EAAA,MAAAsC,GAAAtC,EAAA,MAAAQ,GAAAR,EAAA,MAAAS,GAAAT,EAAA,MAAAU,GAAAV,EAAA,MAAAoD,KAAAA,IAAApD,EAAA;CAAA,IAAAwD;CAAA,AAAAxD,EAAA,QAAAuC,KAAAvC,EAAA,QAAAoD,KAfjBI,IAAA,kBAACovB,GAAD,EAAA,UACExvB,EADc,CAAA,GAgBEpD,EAAA,MAAAuC,GAAAvC,EAAA,MAAAoD,GAAApD,EAAA,MAAAwD,KAAAA,IAAAxD,EAAA;CAAA,IAAAyD;CAAA,AAAAzD,EAAA,QAAAwC,KAAAxC,EAAA,QAAAwD,KAjBpBC,IAAA,kBAACovB,GAAD,EAAA,UACErvB,EADK,CAAA,GAkBExD,EAAA,MAAAwC,GAAAxC,EAAA,MAAAwD,GAAAxD,EAAA,MAAAyD,KAAAA,IAAAzD,EAAA;CAAA,IAAA0D;CACC,OADD1D,EAAA,QAAAyC,KAAAzC,EAAA,QAAAa,KAAAb,EAAA,QAAAyD,KAxBXC,IAAA,kBAACsyB,GAAD,EAAA,UAAA,CACEn1B,GAKA4C,CANQ,EAAA,CAAA,GAyBEzD,EAAA,MAAAyC,GAAAzC,EAAA,MAAAa,GAAAb,EAAA,MAAAyD,GAAAzD,EAAA,MAAA0D,KAAAA,IAAA1D,EAAA,KAzBZ0D;AAyBY,GASVI,MAAgBtE,MAAA;CAAA,IAAAQ,IAAAC,EAAA,EAAA,GACpB,EAAA2D,UAAAC,gBAA4BrE,GAAMuE,GAAAxD;CAAA,IAAAP,EAAA,OAAA4D,KAAA5D,EAAA,OAAA6D,GAAA;EAK9BtD,IAAAe,OAScC,IATd,6BASa;EAACoB,KAXlB,IAFAoB,IAAqB/E,EAAmB4E,CAAK,GAEzC5F,EAAe+F,CAAY,GAAC;GAMhB,IAAAvD,IAAAqD,IAAA,YAAA,UACIpD,IAAAoD,IAAA,aAAAhB,KAAAA,GACFnC,IAAAmD,IAAA,WAAA,UAEXhD,IAAAgD,IAAAE,IAA0B1E,GAAoB0E,CAAY,GAACrB;GAR9DnC,AAQ8DP,EAAA,OAAAQ,KAAAR,EAAA,OAAAS,KAAAT,EAAA,OAAAU,KAAAV,EAAA,OAAAa,KAR9D6B,IAAA,kBAAA8tB,EAAA,MAAA;IACU,SAAA;IACC,UAAA;IACJ,MAAA;IACK,UAAAhwB;IACI,cAAAC;IACF,YAAAC;IAEXG,UAAAA;GACH,CAAA,GAAcb,EAAA,KAAAQ,GAAAR,EAAA,KAAAS,GAAAT,EAAA,KAAAU,GAAAV,EAAA,KAAAa,GAAAb,EAAA,KAAA0C,KAAAA,IAAA1C,EAAA,IATdO,IAAAmC;GAAA,MAAAC;EASc;EAEjB3C,AAAAA,EAAA,KAAA4D,GAAA5D,EAAA,KAAA6D,GAAA7D,EAAA,KAAA+D,GAAA/D,EAAA,KAAAO;CAAA,OAAAA,AAAAwD,IAAA/D,EAAA,IAAAO,IAAAP,EAAA;CAAA,IAAAO,MAAAe,OAAAC,IAAA,6BAAA,GAAA,OAAAhB;CAKa,IAAAC,IAAAqD,IAAA,YAAA,UACIpD,IAAAoD,IAAA,aAAAhB,KAAAA,GACAnC,IAAAmD,IAAAhB,KAAAA,IAAA,YAEFhC,IAAAgD,IAAA,WAAA,UAA8BnB;CAGrC,OAHqC1C,EAAA,OAAA+D,KAAA/D,EAAA,QAAAQ,KAAAR,EAAA,QAAAS,KAAAT,EAAA,QAAAU,KAAAV,EAAA,QAAAa,KAN5C6B,IAAA,kBAACgsB,GAAD;EACW,UAAA;EACC,UAAAluB;EACI,cAAAC;EACA,cAAAC;EACJ,WAAA;EACE,YAAAG;EAEXkD,UAAAA;CARE,CAAA,GASE/D,EAAA,KAAA+D,GAAA/D,EAAA,MAAAQ,GAAAR,EAAA,MAAAS,GAAAT,EAAA,MAAAU,GAAAV,EAAA,MAAAa,GAAAb,EAAA,MAAA0C,KAAAA,IAAA1C,EAAA,KATP0C;AASO,GAWLyB,MAAW3E,MAAA;CAAA,IAAAQ,IAAAC,EAAA,EAAA,GACf,EAAAgE,gBAAAC,aAAAN,UAAAC,gBAAmDrE;CAEnD,IAAI0E,GAAQE,SAAW,QAAM;EAAA,IAAA7D;EAA6D,OAA7DP,EAAA,OAAAiE,KAAAjE,EAAA,OAAA4D,KAASrD,IAAA,kBAACmyB,IAAD;GAAuBzuB;GAAoBL;EAAK,CAAA,GAAI5D,EAAA,KAAAiE,GAAAjE,EAAA,KAAA4D,GAAA5D,EAAA,KAAAO,KAAAA,IAAAP,EAAA,IAApDO;CAAoD;CAE1F,IAAI2D,GAAQE,SAAW,WAAW;EAAC;EAAU;EAAU;CAAS,CAAC,CAAAC,SAAU,OAAOT,CAAK,GAAC;EACpD,IAAArD,IAAAqD,GAAkCpD;EAAqC,OAArCR,EAAA,OAAAkE,EAAAI,cAAAtE,EAAA,OAAAO,KAA7DC,IAAA,kBAACmuB,IAAD;GAA2B,OAAApuB;GAAgD,YAAA2D,EAAQI;EAAW,CAAA,GAAItE,EAAA,KAAAkE,EAAAI,YAAAtE,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,KAAAA,IAAAR,EAAA,IAAlGQ;CAAkG;CAG3G,IAAI0D,GAAQE,SAAW,UAAU1F,EAAqBkF,CAAK,GAAC;EAAA,IAAArD;EAA4C,OAA5CP,EAAA,OAAA4D,IAA4CrD,IAAAP,EAAA,MAAnCO,IAAA,kBAAC+vB,IAAD,EAA0B1sB,SAAK,CAAA,GAAI5D,EAAA,KAAA4D,GAAA5D,EAAA,KAAAO,IAAnCA;CAAmC;CAExG,IAAI2D,GAAQE,SAAW,UAAU,OAAOR,KAAU,YAA9C,CAA2DC,GAAQ;EAAA,IAAAtD;EAA4C,OAA5CP,EAAA,OAAA4D,IAA4CrD,IAAAP,EAAA,MAAnCO,IAAA,kBAACgwB,IAAD,EAA0B3sB,SAAK,CAAA,GAAI5D,EAAA,KAAA4D,GAAA5D,EAAA,KAAAO,IAAnCA;CAAmC;CAEnH,IAAI2D,GAAQE,SAAW,UACjBvF,GAA4B+E,CAAK,GAAC;EAAmC,IAAArD,IAAAqD,GAAepD;EAAI,OAAJR,EAAA,QAAAO,IAAIC,IAAAR,EAAA,OAA7CQ,IAAA,kBAACkvB,IAAD,EAA0B,OAAAnvB,EAAe,CAAA,GAAIP,EAAA,MAAAO,GAAAP,EAAA,MAAAQ,IAA7CA;CAA6C;CAG9F,IAAI0D,GAAQE,SAAW,iBACP5F,GAAuBoF,GAAOM,EAAQM,KAChDD,KAAS,OAAOX,KAAU,UAAQ;EAAA,IAAArD;EAAyC,OAAzCP,EAAA,QAAA4D,IAAyCrD,IAAAP,EAAA,OAAhCO,IAAA,kBAAC+tB,IAAD,EAAuB1qB,SAAK,CAAA,GAAI5D,EAAA,MAAA4D,GAAA5D,EAAA,MAAAO,IAAhCA;CAAgC;CAGjF,IAAI2D,GAAQE,SAAW,uBACP9F,GAAwBsF,GAAOM,EAAQI,UACjDC,GAAK;EAAA,IAAAhE;EAIkB,OAJlBP,EAAA,QAAA4D,KAAA5D,EAAA,QAAA6D,KAELtD,IAAA,kBAACqqB,IAAD,EAAA,UACE,kBAACyL,IAAD;GAAsBzyB;GAAiBC;EAAQ,CAAA,EAD5B,CAAA,GAEE7D,EAAA,MAAA4D,GAAA5D,EAAA,MAAA6D,GAAA7D,EAAA,MAAAO,KAAAA,IAAAP,EAAA,KAFvBO;CAEuB;CAG5B,IAAAA;CAEyD,OAFzDP,EAAA,QAAA4D,KAAA5D,EAAA,QAAA6D,KAEMtD,IAAA,kBAAC81B,IAAD;EAAsBzyB;EAAiBC;CAAQ,CAAA,GAAI7D,EAAA,MAAA4D,GAAA5D,EAAA,MAAA6D,GAAA7D,EAAA,MAAAO,KAAAA,IAAAP,EAAA,KAAnDO;AAAmD,GAG/CmE,MAAelF,MAAA;CAAA,IAAAQ,IAAAC,EAAA,CAAA,GAC1B,EAAA0E,gBAAqBnF,GAAMe;CAAA,AAAAP,EAAA,OAAA2E,IAGZpE,IAAAP,EAAA,MAAVO,IAAAoE,EAAS,GAAC3E,EAAA,KAAA2E,GAAA3E,EAAA,KAAAO;CAAA,IAAAC;CACC,OADDR,EAAA,OAAAO,IACCC,IAAAR,EAAA,MAFdQ,IAAA,kBAAAgwB,EAAA,MAAA;EAAqB,SAAA;EAAkB,WAAA;EAAgC,WAAA;EACpEjwB,UAAAA;CACH,CAAA,GAAcP,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,IAFdA;AAEc,GAILoE,MAAiBpF,MAAA;CAAA,IAAAQ,IAAAC,EAAA,CAAA,GAC5B,EAAAe,WAAA2D,gBAA6BnF,GAC7B,EAAA0E,aAAAL,UAAAtD,MAAuCS,EAAME,UAAUC,MAArC0C,IAAAtD,MAAAsC,KAAAA,KAAAtC,GACYC,IAAAQ,EAAMK,IAAGZ;CAAA,AAAAT,EAAA,OAAA2E,IAAuClE,IAAAT,EAAA,MAAVS,IAAAkE,EAAS,GAAC3E,EAAA,KAAA2E,GAAA3E,EAAA,KAAAS;CAAA,IAAAC;CAAwB,OAAxBV,EAAA,OAAAgB,EAAAK,MAAArB,EAAA,OAAAkE,KAAAlE,EAAA,OAAAS,KAAAT,EAAA,OAAA6D,KAAvEnD,IAAA,kBAAC81B,IAAD;EAAuB,aAAAh2B;EAAqB0D;EAAiB,OAAAzD;EAAsBoD;CAAQ,CAAA,GAAI7D,EAAA,KAAAgB,EAAAK,IAAArB,EAAA,KAAAkE,GAAAlE,EAAA,KAAAS,GAAAT,EAAA,KAAA6D,GAAA7D,EAAA,KAAAU,KAAAA,IAAAV,EAAA,IAA/FU;AAA+F,GAG3FmE,MAAerF,MAAA;CAAA,IAAAQ,IAAAC,EAAA,CAAA,GAC1B,EAAAe,cAAmBxB,GACnB,EAAAsF,gBAAAC,eAAAC,yBAAuDhE,EAAME,UAAUC,MAA6BZ;CAAA,AAAAP,EAAA,OAAA8E,IAMlFvE,IAAAP,EAAA,MAFdO,IAAA,kBAAAiwB,EAAA,MAAA;EAAsB,UAAA;EAAsB,cAAA;EAAsB,YAAA;EAC/D1rB,UAAAA;CACH,CAAA,GAAc9E,EAAA,KAAA8E,GAAA9E,EAAA,KAAAO;CAAA,IAAAC;CAAA,AAAAR,EAAA,OAAAgF,KAAAhF,EAAA,OAAA8E,KACbtE,IAAAwE,IACC,kBAACI,GAAD;EAAkBJ,SAAAA;EAChB,UAAA,kBAACE,GAAD;GACMtH,IAAAA;GACQ,cAAA,SAASkH;GACb,SAAA;GACF,OAAA;GACC,QAAA;GACK,YAAA;GACH,SAAA;GACC,UAAA;EAAC,CAAA;CATP,CAAA,IADT,MAaO9E,EAAA,KAAAgF,GAAAhF,EAAA,KAAA8E,GAAA9E,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;CAAA,IAAAS;CACI,OADJT,EAAA,OAAA+E,KAAA/E,EAAA,OAAAO,KAAAP,EAAA,OAAAQ,KAlBVC,IAAA,kBAAA+vB,EAAA,MAAA;EAAqB,SAAA;EAAyB,YAAA;EAAa,KAAA;EAAW,MAAA;EAAS,MAAA;EAAgB,UAAA;EAA/F,UAAA;GACGzrB;GACDxE;GAGCC;EAcH;KAAcR,EAAA,KAAA+E,GAAA/E,EAAA,KAAAO,GAAAP,EAAA,KAAAQ,GAAAR,EAAA,KAAAS,KAAAA,IAAAT,EAAA,IAnBdS;AAmBc,GCnNZ8F,MAAiBC,GAAiBC,MAClCD,MAAWC,IAAe,IAC1BD,KAAW,OAAqC,IAChDC,KAAW,OAAqC,KAEhD,OAAOD,KAAW,YAAY,OAAOC,KAAW,WAC3CD,IAASC,IAGXE,OAAOH,CAAM,CAAC,CAACI,cAAcD,OAAOF,CAAM,CAAC,GAe9CiB,MAAwBC,GAAgBC,MAAuC;CACnF,IAAIA,GAAUC,SAAS,eAAe;EACpC,IAAMC,IAAQrC,GAAuBkC,GAAOC,EAASG,KAAK;EAC1D,IAAID,KAAS,OAAOH,KAAU,UAAU,OAAOnC,GAAsBsC,CAAK;CAC5E;CAEA,IAAIF,GAAUC,SAAS,qBAAqB;EAC1C,IAAMC,IAAQvC,GAAwBoC,GAAOC,EAASI,UAAU;EAChE,IAAIF,GAAO,OAAOtC,GAAsBsC,CAAK;CAC/C;AACF;AAEA,SAAgBG,GAAaC,GAAiBC,GAAsBC,IAA+B,CAAC,GAAG;CACrG,IAAM,EACJtB,gBACAG,uBACAC,mBACAC,qBAAkB,IAClBC,mBACAC,gBAAa,CAAA,GACbC,kBACAE,oBACAC,cAAW,OACTW,GACEC,IAAiBnC,EAAaoC,UAAUC,GAAMC,MAAaA,IAAW,GAAG;EAC7EC,QAAQ;EACRC,IAAI;EACJC,gBAAgB;EAChBC,MAAM;EACNC,MAAMhD;CACR,CAAC,GAEKiD,IAAkB5C,EAAa6C,QAAQ;EAC3CL,IAAI;EACJD,QAAQ1C;EACR8C,MAAM/C;EACNkD,MAAM,EAAE5B,kBAAe;EACvBuB,gBAAgB;EAChBM,eAAe;EACfL,MAAM;CACR,CAAC,GAEKM,IAAcf,EAAWgB,KAAKC,MAAQ;EAC1C,IAAMC,IAAcD,KAAO,KACrBE,IAAepB,EAAKiB,KAAK5B,MAAQA,EAAI8B,EAAY,GACjDzB,IAAWJ,IAAkB6B,IAC7BE,IAAazC,IAAcuC,IAC3BG,IAAaD,MAAe7C,KAAAA,IAAYP,EAAQmD,CAAY,IAAIC,GAChEE,IAAoBxC,IAAqBoC;EAE/C,OAAOnD,EAAaoC,UAAUf,MAAQA,EAAI8B,IAAc;GACtDX,IAAIW;GACJZ,QAAQ9C;GACRkD,MAAMnD;GACNsD,MAAM;IACJU,aAAaxC,IAAiBmC,MAAgBA;IAC9CG;IACAC;IACA7B;IACAH;IACAkC,eAAehC,MAAmBD,GAAqBC,GAAOC,CAAQ;GACxE;GACAgC,YAAYC,GAAMC,MAGTvD,GAFQP,EAAgC6D,EAAKE,SAASV,IAAczB,CAEtDpB,GADNR,EAAgC8D,EAAKC,SAASV,IAAczB,CAC9CnB,CAAM;EAEvC,CAAC;CACH,CAAC,GAEKuD,IAAmB9D,EAAa6C,QAAQ;EAC5CL,IAAI;EACJD,QAAQ;EACRI,MAAMjD;EACNoD,MAAM;GAAE3B;GAAYC;EAAc;EAClCqB,gBAAgB;EAChBM,eAAe;EACfL,MAAM;CACR,CAAC;CAED,OAAO;EACLP;EACA,GAAIlB,IAAkB,CAAC2B,CAAe,IAAI,CAAA;EAC1C,GAAGI;EACH,GAAI7B,EAAW4C,SAAS,KAAK3C,IAAgB,CAAC0C,CAAgB,IAAI,CAAA;CAAG;AAEzE;;;AC5FA,IAAMoD,MAAyBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC7B,EAAAL,WAAAC,YAAAV,gCAAsDY,GAAMG;CAAA,AAAAF,EAAA,OAAAJ,EAAAlB,KACkDwB,IAAAF,EAAA,MAAjBE,IAAA,EAAAxB,IAAMkB,EAAMlB,GAAI,GAACsB,EAAA,KAAAJ,EAAAlB,IAAAsB,EAAA,KAAAE;CAA9G,IAAA,EAAAC,eAAAC,cAAAC,eAAAC,cAAAC,eAAAC,kBAAiF7C,GAAYuC,CAAiB,GAAEO;CAAA,AAAAT,EAAA,OAAAM,IAGlEG,IAAAT,EAAA,MAAjCS,IAAA5C,GAAG6C,UAAUC,SAAUL,CAAS,GAACN,EAAA,KAAAM,GAAAN,EAAA,KAAAS;CAEnC,IAAAG,IAAAJ,IAAA,KAAA,GAAoBK;CAAA,AAAAb,EAAA,OAAAS,KAAAT,EAAA,OAAAY,KAAAZ,EAAA,OAAAO,KAHjBM,IAAA;EAAAP,WACDG;EAAiCF;EAAAO,SAEnCF;CACX,GAACZ,EAAA,KAAAS,GAAAT,EAAA,KAAAY,GAAAZ,EAAA,KAAAO,GAAAP,EAAA,KAAAa,KAAAA,IAAAb,EAAA;CAJD,IAAAe,IAAcF,GAIZG;CAAA,AAAAhB,EAAA,OAAAiB,OAAAC,IAAA,2BAAA,KAYUF,IAAA,EAAAG,IAAM,WAAW,GAACnB,EAAA,KAAAgB,KAAAA,IAAAhB,EAAA;CAAA,IAAAoB;CAAA,AAAApB,EAAA,OAAAiB,OAAAC,IAAA,2BAAA,KAGxBE,IAAA,kBAACuqB,IAAD,EAAoB,MAAA,GAAE,CAAA,GAAI3rB,EAAA,KAAAoB,KAAAA,IAAApB,EAAA;CAAA,IAAAqB;CAAA,AAAArB,EAAA,QAAAG,KAAAH,EAAA,QAAAI,KAD5BiB,IAAA,kBAACyqB,IAAD;EAAQ,IAAA;EAAe,SAAA;EAAqB,QAAA;EAAa,OAAA;EAAU,GAAK3rB;EAAU,GAAMC;EACtFgB,UAAAA;CADE,CAAA,GAEEpB,EAAA,MAAAG,GAAAH,EAAA,MAAAI,GAAAJ,EAAA,MAAAqB,KAAAA,IAAArB,EAAA;CAAA,IAAAsB;CAAA,AAAAtB,EAAA,QAAAiB,OAAAC,IAAA,2BAAA,KASEI,IAAA,kBAACumB,GAAD;EAAU/pB,IAAAA;EAAe,SAAA;EAAmB,aAAA;CAAG,CAAA,GAAGkC,EAAA,MAAAsB,KAAAA,IAAAtB,EAAA;CAAA,IAAAuB;CAAA,AAAAvB,EAAA,QAAAJ,EAAAlB,MAAAsB,EAAA,QAAAb,KACvCoC,KAAAC,MAAarC,EAAyBS,EAAMlB,IAAK8C,EAAO3B,YAAa,EAAI,GAACG,EAAA,MAAAJ,EAAAlB,IAAAsB,EAAA,MAAAb,GAAAa,EAAA,MAAAuB,KAAAA,IAAAvB,EAAA;CAAA,IAAAyB;CAAA,AAAAzB,EAAA,QAAAJ,EAAAjB,QAIpF8C,IAAAzB,EAAA,OAFPyB,IAAA,kBAAC2f,GAAD;EAAS,IAAA;EAAiB,WAAA;EAAkB,UAAA;EACzCxhB,UAAAA,EAAMjB;CADJ,CAAA,GAEEqB,EAAA,MAAAJ,EAAAjB,OAAAqB,EAAA,MAAAyB;CAAA,IAAAC;CAAA,AAAA1B,EAAA,QAAAH,KAAAG,EAAA,QAAAuB,KAAAvB,EAAA,QAAAyB,KAbTC,IAAA,kBAACsD,GAAD;EACWnF;EACJ,MAAA;EACA,MAAA;EACC,OAAA;EACQ,eAAA;EACC,gBAAA;EACV,MAAA;EACC,MAAAyB;EACW,iBAAAC;EAEjBE,UAAAA;CAXO,CAAA,GAcEzB,EAAA,MAAAH,GAAAG,EAAA,MAAAuB,GAAAvB,EAAA,MAAAyB,GAAAzB,EAAA,MAAA0B,KAAAA,IAAA1B,EAAA;CAAA,IAAA2B;CACJ,OADI3B,EAAA,QAAAK,KAAAL,EAAA,QAAAe,KAAAf,EAAA,QAAA0B,KAAA1B,EAAA,QAAAqB,KA5BbM,IAAA,kBAAC0kB,GAAD;EACOhmB,KAAAA;EACEU;EACH,KAAA;EACC,MAAA;EACC,OAAA;EACO,cAAA;EACV,IAAA;EACA,IAAA;EACK,QAAAC;EATV,UAAA,CAWEK,GAGAK,CAdK;KA6BE1B,EAAA,MAAAK,GAAAL,EAAA,MAAAe,GAAAf,EAAA,MAAA0B,GAAA1B,EAAA,MAAAqB,GAAArB,EAAA,MAAA2B,KAAAA,IAAA3B,EAAA,KA7BT2B;AA6BS,GAIAC,MAAsB7B,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACjC,EAAApB,YAAAC,qBAAAE,aAAAC,cAAAC,mBAAAC,6BAAAG,oBAAAG,qBAAAC,+BAUIK,GACJ8B,IAAmB3D,GAA0B,IAAI,GACjD4D,IAAmB5D,GAAuB,IAAI,GAC9C,CAAA6D,GAAAC,KAAwB7D,EAAS,EAAK,GACtC,CAAA8D,GAAAC,KAA0B/D,EAAS,EAAE,GAAE+B;CAAA,AAAAF,EAAA,OAAAiB,OAAAC,IAAA,2BAAA,KACahB,IAAA,EAAAiC,sBAAwB,EAAAC,UAAY,EAAE,EAAE,GAACpC,EAAA,KAAAE,KAAAA,IAAAF,EAAA;CAA7F,IAAAqC,IAAgB5E,GAAWD,GAAUD,IAAe2C,CAAyC,CAAC,GAAEO;CAAA,IAAAT,EAAA,OAAAnB,KAAAmB,EAAA,OAAAiC,GAAA;EAChG,IAAAK,IAAwBL,EAAKM,KAAM,CAAC,CAAAC,YAAa;EAGtCxC,AAFaS,IAAA6B,IACpBzD,EAAO4D,QAAQ7C,MAAYA,EAAMjB,MAAM6D,YAAa,CAAC,CAAAE,SAAUJ,CAAe,CACxE,IAFczD,GAEbmB,EAAA,KAAAnB,GAAAmB,EAAA,KAAAiC,GAAAjC,EAAA,KAAAS;CAAA,OAAAA,IAAAT,EAAA;CAFX,IAAA2C,IAAwBlC,GAEZG;CAAA,AAAAZ,EAAA,OAAAV,IAOXsB,IAAAZ,EAAA,MALqBY,KAAAgC,MAAA;EACpB,IAAA,EAAAC,WAAAC,YAAyBF;EACzB,AAAKE,KAAQD,EAAMnE,OAAQoE,EAAIpE,MAE/BY,EAAgByD,OAAOF,EAAMnE,EAAG,GAAGqE,OAAOD,EAAIpE,EAAG,CAAC;CAAC,GACpDsB,EAAA,KAAAV,GAAAU,EAAA,KAAAY;CALD,IAAAoC,IAAsBpC,GAKpBC,GAAAG;CAEF/C,AAFE+B,EAAA,OAAA+B,KAwBOlB,IAAAb,EAAA,IAAAgB,IAAAhB,EAAA,OAtBCa,UAAA;EACR,IAAI,CAACkB,GAAI;EAET,IAAAkB,KAAkCC,MAAA;GAChC,IAAAC,IAAeP,EAAKO;GACpB,AAAMA,aAAkBC,SACpBtB,EAAUuB,SAAkBC,SAACH,CAA8C,KAAnCtB,EAAUwB,SAAkBC,SAACH,CAAM,KAE/EnB,EAAQ,EAAK;EAAC,GAEhBuB,KAAsBC,MAAA;GACpB,AAAIZ,EAAKa,QAAS,YAChBzB,EAAQ,EAAK;EACd;EAIsD,OADzD0B,SAAQC,iBAAkB,eAAeV,CAAyB,GAClES,SAAQC,iBAAkB,WAAWJ,GAAe,EAAI,SACjD;GAELG,AADAA,SAAQE,oBAAqB,eAAeX,CAAyB,GACrES,SAAQE,oBAAqB,WAAWL,GAAe,EAAI;EAAC;CAC7D,GACAvC,IAAA,CAACe,CAAI,GAAC/B,EAAA,KAAA+B,GAAA/B,EAAA,KAAAa,GAAAb,EAAA,KAAAgB,IAtBT/C,GAAU4C,GAsBPG,CAAM;CAAC,IAAAI;CAAA,AAAApB,EAAA,OAAAiB,OAAAC,IAAA,2BAAA,KAMOE,KAAA;EAAAyC,WACA;EAAYC,QACf,EAAAC,UAAY,EAAE;EAACC,wBACCnC,EAAUwB;CACpC,GAACrD,EAAA,KAAAoB,MAAAA,KAAApB,EAAA;CAAA,IAAAqB;CAAA,AAAArB,EAAA,QAAAiB,OAAAC,IAAA,2BAAA,KAEDG,IAAA,kBAAA8kB,EAAA,SAAA;EAAiB,SAAA;EACf,UAAA,kBAAC0C,IAAD;GACOhnB,KAAAA;GACM,cAAA;GACH,SAAA;GACH,MAAA;GACI,eAAMG,EAAQiC,EAAqB;GAE5C,UAAA,kBAAC4jB,GAAD;IAAU7pB,IAAAA;IAAmB,SAAA;GAAM,CAAA;EAP1B,CAAA;CASb,CAAA,GAAkBgC,EAAA,MAAAqB,KAAAA,IAAArB,EAAA;CAAA,IAAAsB;CAAA,AAAAtB,EAAA,QAAAP,KAAAO,EAAA,QAAAhB,KAKVsC,IAAA,kBAAC2a,GAAD;EAA2B,aAAA;EAAsBjd;EAA4BS;CAAgB,CAAA,GAAIO,EAAA,MAAAP,GAAAO,EAAA,MAAAhB,GAAAgB,EAAA,MAAAsB,KAAAA,IAAAtB,EAAA;CAAA,IAAAuB;CAAA,AAAAvB,EAAA,QAAAN,KAAAM,EAAA,QAAAf,KAAAe,EAAA,QAAAd,KAChGqC,IAAArC,IACC,kBAAC4sB,IAAD;EAAuB,mBAAA;EAAkB,aAAA;EAAwB,SAAA;EAC/D,UAAA,kBAAC5mB,GAAD;GACWjG,SAAAA;GACG,YAAA,EAAAiF,MAAQ,SAAS;GACvB,OAAA;GACQ,eAAA;GACC,gBAAA;GACE,kBAAA1C,MAAa9B,EAAwB8B,EAAO3B,YAAa,EAAI;GAE9E,UAAA,kBAACuhB,GAAD;IAAS,IAAA;IAAiB,WAAA;IAAkB,UAAA;GAAvC,CAAA;EARA,CAAA;CADL,CAAA,IADL,MAeOphB,EAAA,MAAAN,GAAAM,EAAA,MAAAf,GAAAe,EAAA,MAAAd,GAAAc,EAAA,MAAAuB,KAAAA,IAAAvB,EAAA;CAAA,IAAAyB;CAAA,AAAAzB,EAAA,QAAAiC,IACmFR,IAAAzB,EAAA,OAA3FyB,IAAA,kBAAC2Z,GAAD;EAA4BnZ,OAAAA;EAAmB,aAAA;EAAgCC,eAAAA;CAAQ,CAAA,GAAIlC,EAAA,MAAAiC,GAAAjC,EAAA,MAAAyB;CAAA,IAAAC;CAAA,AAAA1B,EAAA,QAAAiB,OAAAC,IAAA,2BAAA,KACnDQ,IAAA,EAAAyC,oBAAsB,UAAU,GAACnE,EAAA,MAAA0B,KAAAA,IAAA1B,EAAA;CAAA,IAAA2B;CAAA,AAAA3B,EAAA,QAAAnB,IAGT8C,IAAA3B,EAAA,OAAlC2B,IAAA9C,EAAOuF,IAAKC,EAAqB,GAACrE,EAAA,MAAAnB,GAAAmB,EAAA,MAAA2B;CAAA,IAAA2C;CAAA,IAAAtE,EAAA,QAAA2C,KAAA3C,EAAA,QAAAb,KAAAa,EAAA,QAAAlB,GAAA;EAAA,IAAAyF;EASpDvE,AAToDA,EAAA,QAAAb,KAAAa,EAAA,QAAAlB,KAEjCyF,KAAAC,MACnB,kBAAC4mB,IAAD;GAEUxrB,QAAAA;GACC,SAAAd,EAAgB2F,IAAK7E,EAAMlB,EAAG;GACbS;EAAwB,GAH7CS,EAAMlB,EAGuC,GAErDsB,EAAA,MAAAb,GAAAa,EAAA,MAAAlB,GAAAkB,EAAA,MAAAuE,KAAAA,IAAAvE,EAAA,KAPAsE,IAAA3B,EAAeyB,IAAKG,CAOpB,GAACvE,EAAA,MAAA2C,GAAA3C,EAAA,MAAAb,GAAAa,EAAA,MAAAlB,GAAAkB,EAAA,MAAAsE;CAAA,OAAAA,IAAAtE,EAAA;CAAA,IAAAuE;CAAA,AAAAvE,EAAA,QAAAsE,IACIC,IAAAvE,EAAA,OATRuE,IAAA,kBAAC0pB,IAAD;EAAW,KAAA;EACR3pB,UAAAA;CADG,CAAA,GASEtE,EAAA,MAAAsE,GAAAtE,EAAA,MAAAuE;CAAA,IAAAG;CAAA,AAAA1E,EAAA,QAAA2B,KAAA3B,EAAA,QAAAuE,KAVVG,IAAA,kBAACwpB,GAAD;EAAwB,OAAAvsB;EAA8C/D,UAAAA;EACpE2G,UAAAA;CADc,CAAA,GAWEvE,EAAA,MAAA2B,GAAA3B,EAAA,MAAAuE,GAAAvE,EAAA,MAAA0E,KAAAA,IAAA1E,EAAA;CAAA,IAAA2E;CAAA,AAAA3E,EAAA,QAAAgD,KAAAhD,EAAA,QAAAqC,KAAArC,EAAA,QAAA0E,KAdxBC,IAAA,kBAACS,GAAD;EAAiB,MAAA;EAAuB,eAAA1D;EACtC,UAAA,kBAACoqB,IAAD;GAAa,SAAA;GACX,UAAA,kBAACsC,IAAD;IAAqB/rB;IAA6BjF,oBAAAA;IAA0B4F,WAAAA;IAC1E0B,UAAAA;GADS,CAAA;EADT,CAAA;CADK,CAAA,GAiBE1E,EAAA,MAAAgD,GAAAhD,EAAA,MAAAqC,GAAArC,EAAA,MAAA0E,GAAA1E,EAAA,MAAA2E,KAAAA,IAAA3E,EAAA;CAAA,IAAA4E;CAAA,AAAA5E,EAAA,QAAA2E,KAAA3E,EAAA,QAAAsB,KAAAtB,EAAA,QAAAuB,KAAAvB,EAAA,QAAAyB,KAvCrBmD,IAAA,kBAACkiB,GAAD,EAAA,UACE,kBAAAX,EAAA,YAAA,EAAA,UACE,kBAAAA,EAAA,SAAA;EAAsBrkB,KAAAA;EAAkB,OAAA;EAAmC,GAAA;EAAO,IAAA;EAAc,UAAA;EAC9F,UAAA,kBAACmsB,IAAD;GAAW,KAAA;GAAX,UAAA;IACE3sB;IACCC;IAgBDE;IACAkD;GAnBI;;CAsCR,CAAA,EACF,CAAA,EA1CK,CAAA,GA2CE3E,EAAA,MAAA2E,GAAA3E,EAAA,MAAAsB,GAAAtB,EAAA,MAAAuB,GAAAvB,EAAA,MAAAyB,GAAAzB,EAAA,MAAA4E,KAAAA,IAAA5E,EAAA;CAAA,IAAA6E;CACI,OADJ7E,EAAA,QAAA+B,KAAA/B,EAAA,QAAA4E,KA/DXC,IAAA,kBAAAshB,EAAA,MAAA;EACQpkB;EACkB,wBAAA;EACX,aAAAX;EAHf,UAAA,CASEC,GAWAuD,CA4CF;KAAe5E,EAAA,MAAA+B,GAAA/B,EAAA,MAAA4E,GAAA5E,EAAA,MAAA6E,KAAAA,IAAA7E,EAAA,KAhEf6E;AAgEe;AAtHgB,SAAAZ,GAAAZ,GAAA;CAAA,OAqEW,CAACA;AAAO;AArEnB,SAAAgB,GAAAS,GAAA;CAAA,OAmGiClF,EAAMlB;AAAG;;;ACnK7E,IAAMmI,qBAAmB,IAAIC,IAAI;CAAC;CAAY;CAAgB;AAAY,CAAC,GAErEC,MAAmBC,MACnBA,MAAkB,QAAcZ,KAChCY,MAAkB,SAAeb,KAC9BE,IAWIkB,MAAwBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACnC,EAAAR,WAAAC,gBAAAC,UAAAC,cAAAC,sBAAkEE,GAAMG,GAAAX,GAAAY;CAAA,IAAAH,EAAA,OAAAP,EAAAW,UAAAJ,EAAA,OAAAL,GAAA;EACxEJ,IAAsBE,EAAMW,OAAOC,YAAa;EAAE,IAAAC;EAEHN,AAFGA,EAAA,OAAAP,EAAAW,OAAAG,MAAAP,EAAA,OAAAL,KAC5BW,IAAA,CAAClB,GAAgBoB,IAAKf,EAAMW,OAAOG,EAAG,KAAKZ,EAAKc,gBAAiB,CAAC,CAAAC,KAAKC,SAAU,GAACX,EAAA,KAAAP,EAAAW,OAAAG,IAAAP,EAAA,KAAAL,GAAAK,EAAA,KAAAM,KAAAA,IAAAN,EAAA,IAAxGE,IAAsBI,GACLH,IAAAb,GAAgBC,CAAa,GAACS,EAAA,KAAAP,EAAAW,QAAAJ,EAAA,KAAAL,GAAAK,EAAA,KAAAE,GAAAF,EAAA,KAAAT,GAAAS,EAAA,KAAAG;CAAA,OAAAA,AAAAD,IAAAF,EAAA,IAAAT,IAAAS,EAAA,IAAAG,IAAAH,EAAA;CAA/C,IAAAY,IAAiBT,GAA+BG;CAAA,AAAAN,EAAA,OAAAP,IAIqBa,IAAAN,EAAA,MAFnEM,IAAAb,EAAMW,OAAOG,OAAQ,iBAArB,eAEIlC,GAAWoB,EAAMW,OAAOS,UAAUpB,QAASA,EAAMqB,WAAY,CAAC,GAACd,EAAA,KAAAP,GAAAO,EAAA,KAAAM;CAHrE,IAAAS,IACET,GAMkBU,IAAAvB,EAAMW,OAAOG,IAAGU;CAAA,AAAAjB,EAAA,QAAAkB,OAAAC,IAAA,2BAAA,KAGzBF,IAAA,EAAAG,aAAe,OAAO,GAACpB,EAAA,MAAAiB,KAAAA,IAAAjB,EAAA;CAIzB,IAAAqB,IAAA5B,EAAMc,IAOPe,IAAA1B,KAAaF,EAAW6B,QAAQC,QAAS/B,CAAM,MAAMC,EAAW6B,QAAQZ,SAAU,IAAlFc,KAAAA,IAAA,qBAEyBhC,EAAMc,GAAG,gBAAemB;CAAA,AAAA1B,EAAA,QAAAsB,IACpDI,IAAA1B,EAAA,OALM0B,IAAA,EAAAC,OAEHL,EAGJ,GAACtB,EAAA,MAAAsB,GAAAtB,EAAA,MAAA0B;CAAA,IAAAE;CAAA,AAAA5B,EAAA,QAAAP,IAKqEmC,IAAA5B,EAAA,OAA/D4B,IAAAvD,GAAWoB,EAAMW,OAAOS,UAAUpB,QAASA,EAAMqB,WAAY,CAAC,GAACd,EAAA,MAAAP,GAAAO,EAAA,MAAA4B;CAAA,IAAAC;CAAA,AAAA7B,EAAA,QAAA4B,IAC3DC,IAAA7B,EAAA,OAFP6B,IAAA,kBAAC8X,GAAD;EAAS,IAAA;EAAgB,WAAA;EAA4B,YAAA;EAAM,UAAA;EACxD/X,UAAAA;CADE,CAAA,GAEE5B,EAAA,MAAA4B,GAAA5B,EAAA,MAAA6B;CAAA,IAAAC;CAAA,AAAA9B,EAAA,QAAAY,KAAAZ,EAAA,QAAAE,KAAAF,EAAA,QAAAP,EAAAW,UAAAJ,EAAA,QAAAT,KACNuC,IAAA5B,KACC,kBAAAihB,EAAA,MAAA,EAAA,UAAA,CACE,kBAAAA,EAAA,SAAA;EAAc,SAAA;EACZ,UAAA,kBAACC,IAAD;GACK,IAAA;GACE,MAAA;GACO,cAAA7hB,IAAA,UAA0BA,MAA1B;GACJ,SAAA;GACI,YAAAA,IAAA,YAAA;GACC,aAAA,EAAAwC,YAAc,UAAU;GAErC,UAAA,kBAACmD,GAAD;IAAgBtE,IAAAA;IAAkB,SAAA;GAAM,CAAA;EAR/B,CAAA;CAUb,CAAA,GACA,kBAACye,GAAD,EAAA,UACE,kBAAA8B,EAAA,YAAA,EAAA,UACE,kBAAAA,EAAA,SAAA;EAAqB,QAAA;EAAa,IAAA;EAAlC,UAAA;GACE,kBAAAA,EAAA,MAAA;IAAiB,OAAA;IAAW,SAAA;IAC1B,UAAA,kBAACtN,GAAD;KACE,SAAA;KACQ,SAAA;KACF,OAAA;KACA,MAAA,kBAAC3O,GAAD;MAAgBvG,IAAAA;MAAmB,SAAA;KAAM,CAAA;KACrC,UAAAY,MAAkB;KAChB,kBAAME,EAAMW,OAAO4B,cAAe,EAAK;IAAC,CAAA;GAExD,CAAA;GACA,kBAAAmf,EAAA,MAAA;IAAiB,OAAA;IAAY,SAAA;IAC3B,UAAA,kBAACtN,GAAD;KACE,SAAA;KACQ,SAAA;KACF,OAAA;KACA,MAAA,kBAAC3O,GAAD;MAAgBxG,IAAAA;MAAqB,SAAA;KAAM,CAAA;KACvC,UAAAa,MAAkB;KAChB,kBAAME,EAAMW,OAAO4B,cAAe,EAAI;IAAC,CAAA;GAEvD,CAAA;GACCzC,KACC,kBAAA4hB,EAAA,MAAA;IAAiB,OAAA;IAAa,SAAA;IAC5B,UAAA,kBAACtN,GAAD;KACE,SAAA;KACQ,SAAA;KACF,OAAA;KACM,kBAAMpU,EAAMW,OAAO6B,aAAc;IAAC,CAAA;GAElD,CAAA;EAEJ;CACF,CAAA,EAAA,CAAA,EAlCK,CAAA,CAoCT,EAAA,CAAA,GACDjC,EAAA,MAAAY,GAAAZ,EAAA,MAAAE,GAAAF,EAAA,MAAAP,EAAAW,QAAAJ,EAAA,MAAAT,GAAAS,EAAA,MAAA8B,KAAAA,IAAA9B,EAAA;CAAA,IAAAkC;CAAA,AAAAlC,EAAA,QAAAP,IAUAyC,IAAAlC,EAAA,OATAkC,IAAAzC,EAAMW,OAAO+B,aASd,KARE,kBAAA,QAAA;EACMC,qBACmB3C,EAAMW,OAAOiC,UAAW;EAACC,aACjC7C,EAAM8C,iBAAkB;EAACC,cACxB/C,EAAM8C,iBAAkB;EAACE,WAC5B,WAAWhD,EAAMW,OAAOsC,cAAmC,IAAhD,eAAA;CACvB,CAAA,GAEJ1C,EAAA,MAAAP,GAAAO,EAAA,MAAAkC;CAAA,IAAAS;CAAA,AAAA3C,EAAA,QAAAkC,KAAAlC,EAAA,QAAA6B,KAAA7B,EAAA,QAAA8B,KAjEHa,IAAA,kBAACklB,GAAD;EAAgB,WAAA;EAAmB,YAAA;EAAwB,gBAAA;EAAoB,KAAA;EAAS,MAAA;EAAS,MAAA;EAAjG,UAAA;GACEhmB;GAGCC;GAoDAI;EAxDE;KAkEElC,EAAA,MAAAkC,GAAAlC,EAAA,MAAA6B,GAAA7B,EAAA,MAAA8B,GAAA9B,EAAA,MAAA2C,KAAAA,IAAA3C,EAAA;CAAA,IAAA4C;CAAA,AAAA5C,EAAA,QAAAH,KAAAG,EAAA,QAAA2C,KAAA3C,EAAA,QAAAe,KAnET6B,IAAA,kBAACuC,GAAD;EAAkBpE,SAAAA;EAA0BlB,UAAAA;EAC1C8C,UAAAA;CADM,CAAA,GAoEE3C,EAAA,MAAAH,GAAAG,EAAA,MAAA2C,GAAA3C,EAAA,MAAAe,GAAAf,EAAA,MAAA4C,KAAAA,IAAA5C,EAAA;CAAA,IAAA6C;CACS,OADT7C,EAAA,QAAAP,EAAAW,OAAAG,MAAAP,EAAA,QAAAP,EAAAc,MAAAP,EAAA,QAAA4C,KAAA5C,EAAA,QAAA0B,KAxFZmB,IAAA,kBAAAklB,EAAA,cAAA;EACkB,kBAAA/mB;EACF,eAAA;EACF,aAAA;EACL,OAAAC;EACK,aAAA;EACH,UAAA;EACA,UAAA;EAEA,UAAA;EACA,UAAA;EACK,eAAA;EACH,YAAA;EACJ,OAAAS;EAOPkB,UAAAA;CAqEF,GAjFOvB,CAiFP,GAAqBrB,EAAA,MAAAP,EAAAW,OAAAG,IAAAP,EAAA,MAAAP,EAAAc,IAAAP,EAAA,MAAA4C,GAAA5C,EAAA,MAAA0B,GAAA1B,EAAA,MAAA6C,KAAAA,IAAA7C,EAAA,KAzFrB6C;AAyFqB,GAWnBM,MAAoBpD,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACxB,EAAA8C,SAAAC,QAAAC,aAAAC,iCAA2DnD,GAC3DqD,IAAmBL,EAAI3C,OAAOS,UAAUwC,MAAyClD;CAAA,AAAAH,EAAA,OAAA+C,KAAA/C,EAAA,OAAAoD,KAC/DjD,IAAAiD,GAAUE,eAAiBP,EAAIQ,SAAU,CAAC,GAACvD,EAAA,KAAA+C,GAAA/C,EAAA,KAAAoD,GAAApD,EAAA,KAAAG,KAAAA,IAAAH,EAAA;CAA7D,IAAAwD,IAAkBrD,GAA4CG;CAAA,IAAAN,EAAA,OAAA+C,KAAA/C,EAAA,OAAAkD,KAAAlD,EAAA,OAAAgD,EAAAzC,MAAAP,EAAA,OAAAgD,EAAAS,UAAA;EAC9D,IAAAC,IAA0C;GAAAV,KACnCA,EAAGS;GAASE,OACVX,EAAGzC;GAAGqD,UACHb,EAAI3C,OAAOG;GAAGsD,OACjBd,EAAIQ,SAAU;EACvB;EAOWvD,AALTM,IAAA4C,IAA4BQ,CAAe,CAAC,CAAAI,KAACC,OAAa;GAAAC,KACnDD,EAAME;GAAMA,OACVF,EAAME;GAAMC,MACbH,EAAMG;GAAKC,eACFJ,EAAMK,SAAUV,CAAW;EAC5C,EAAQ,KALR,CAAA,GAKS1D,EAAA,KAAA+C,GAAA/C,EAAA,KAAAkD,GAAAlD,EAAA,KAAAgD,EAAAzC,IAAAP,EAAA,KAAAgD,EAAAS,UAAAzD,EAAA,KAAAM;CAAA,OAAAA,IAAAN,EAAA;CANX,IAAAqE,IACE/D,GAQkBU,IAAA+B,EAAI3C,OAAOG,IAIbU,IAAAgC,IAAA,aAAAxB,KAAAA,GAENJ,IAAA4B,IAAAxB,KAAAA,IAAA,MACGH,IAAA2B,IAAAxB,KAAAA,IAAA,MAA2BC;CAAA,AAAA1B,EAAA,OAAAkB,OAAAC,IAAA,2BAAA,KAG/BO,IAAA,EAAAN,aAAe,OAAO,GAACpB,EAAA,KAAA0B,KAAAA,IAAA1B,EAAA;CAEzB,IAAA4B,IAAAmB,EAAIxC,IAEKsB,IAAAoB,IAAAxB,KAAAA,IAAA,YACCK,IAAAmB,IAAA,QAAA,UACHf,IAAAe,IAAA,WAAA,UAA8BN;CAAA,AAAA3C,EAAA,OAAA+C,IAGgBJ,IAAA3C,EAAA,OAAzD2C,IAAAtE,GAAW0E,EAAI3C,OAAOS,UAAUkC,MAAOA,EAAIjC,WAAY,CAAC,GAACd,EAAA,KAAA+C,GAAA/C,EAAA,MAAA2C;CAAA,IAAAC;CAAA,AAAA5C,EAAA,QAAA+C,EAAA3C,OAAAG,MAAAP,EAAA,QAAA+C,EAAAxC,MAAAP,EAAA,QAAAwD,KAAAxD,EAAA,QAAAkC,KAAAlC,EAAA,QAAA2C,KAAA3C,EAAA,QAAAiB,KAAAjB,EAAA,QAAAqB,KAAArB,EAAA,QAAAsB,KAAAtB,EAAA,QAAA6B,KAAA7B,EAAA,QAAA8B,KApB5Dc,IAAA,kBAAAmlB,EAAA,MAAA;EACkB,kBAAA/mB;EACV,OAAA;EACG,UAAA;EACA,UAAA;EACK,cAAAC;EACN,SAAA;EACA,QAAAI;EACG,WAAAC;EACC,aAAA;EACA,aAAA;EACL,OAAAI;EACM,cAAA;EAEH,WAAA;EACI,cAAAG;EACC,eAAAC;EACH,YAAAI;EACLsB,OAAAA;EAENb,UAAAA;CACH,GAROf,CAQP,GAAa5B,EAAA,MAAA+C,EAAA3C,OAAAG,IAAAP,EAAA,MAAA+C,EAAAxC,IAAAP,EAAA,MAAAwD,GAAAxD,EAAA,MAAAkC,GAAAlC,EAAA,MAAA2C,GAAA3C,EAAA,MAAAiB,GAAAjB,EAAA,MAAAqB,GAAArB,EAAA,MAAAsB,GAAAtB,EAAA,MAAA6B,GAAA7B,EAAA,MAAA8B,GAAA9B,EAAA,MAAA4C,KAAAA,IAAA5C,EAAA;CAtBf,IAAAsE,IACE1B;CAwBF,IAAIyB,EAAc1D,WAAY,GAAC,OAAS2D;CAAY,IAAAzB;CAK5B,OAL4B7C,EAAA,QAAA+C,EAAAxC,MAAAP,EAAA,QAAAsE,KAAAtE,EAAA,QAAAqE,KAGlDxB,IAAA,kBAAC+Q,GAAD;EAA4CvP,SAAAA;EACzCC,UAAAA;CADiB,GAAMvB,EAAIxC,EAAV,GAEEP,EAAA,MAAA+C,EAAAxC,IAAAP,EAAA,MAAAsE,GAAAtE,EAAA,MAAAqE,GAAArE,EAAA,MAAA6C,KAAAA,IAAA7C,EAAA,KAFtB6C;AAEsB,GAebgC,MAAmB9E,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC9B,EAAA+C,QAAAwB,aAAAC,qBAAAC,gBAAAC,kBAAA1B,aAAA2B,eAAA1B,iCASInD,GAIKI,IAAA6C,EAAGzC,IACKD,IAAAoE,IAAA,SAAAjD,KAAAA,GACET,IAAA2D,IAAA,SAAAlD,KAAAA,GACAR,IAAA0D,IAAA,SAAAlD,KAAAA,GACPJ,IAAA4B,IAAAxB,KAAAA,IAAA,MACAH,IAAAmD,IAAA,YAAAhD,KAAAA,GAAwCC;CAAA,AAAA1B,EAAA,OAAA4E,KAAA5E,EAAA,OAAAgD,EAAAS,YAAAzD,EAAA,OAAAyE,KACvC/C,IAAA+C,UAAyBG,IAAa5B,EAAGS,QAAS,IAAlDhC,KAAAA,GAA+DzB,EAAA,KAAA4E,GAAA5E,EAAA,KAAAgD,EAAAS,UAAAzD,EAAA,KAAAyE,GAAAzE,EAAA,KAAA0B,KAAAA,IAAA1B,EAAA;CAC7D,IAAA4B,IAAA4C,IAAA,SAAA,aAEE3C,IAAA2C,IAAA,SAAA,aACU1C,IAAA0C,IAAA,SAAA,aAA+BtC;CAAA,AAAAlC,EAAA,OAAA8B,IAAgCI,IAAAlC,EAAA,MAA/EkC,IAAA;EAAA4C,cAAgBhD;EAA+BiD,aAAe;CAAgB,GAAC/E,EAAA,KAAA8B,GAAA9B,EAAA,KAAAkC;CAE1E,IAAAS,IAAA+B,IAAA,cAAA,MAAgC9B;CAAA,AAAA5C,EAAA,OAAAkD,KAAAlD,EAAA,OAAAgD,KAAAhD,EAAA,OAAAiD,KAE3CL,IAAAI,EAAGgC,gBAAiB,CAAC,CAAAlB,KAAKf,MACzB,kBAACilB,IAAD;EAEQjlB;EACDC;EACKC;EACiBC;CAAyB,GAJ/CH,EAAIxC,EAI2C,CAEvD,GAACP,EAAA,KAAAkD,GAAAlD,EAAA,KAAAgD,GAAAhD,EAAA,KAAAiD,GAAAjD,EAAA,KAAA4C,KAAAA,IAAA5C,EAAA;CAAA,IAAA6C;CACQ,OADR7C,EAAA,QAAAgD,EAAAzC,MAAAP,EAAA,QAAAM,KAAAN,EAAA,QAAAkC,KAAAlC,EAAA,QAAA2C,KAAA3C,EAAA,QAAA4C,KAAA5C,EAAA,QAAAgB,KAAAhB,EAAA,QAAAiB,KAAAjB,EAAA,QAAAqB,KAAArB,EAAA,QAAAsB,KAAAtB,EAAA,QAAA0B,KAAA1B,EAAA,QAAA4B,KAAA5B,EAAA,QAAA6B,KAvBJgB,IAAA,kBAAAklB,EAAA,KAAA;EAEe,eAAAznB;EACE,iBAAAU;EACA,iBAAAC;EACP,QAAAI;EACA,QAAAC;EACC,SAAAI;EACE,WAAAE;EACE,cAAA;EACA,aAAAC;EACN,OAAAK;EACK,aAAA;EACA,YAAAS;EAEXC,UAAAA;CASH,GAvBOzC,CAuBP,GAAYH,EAAA,MAAAgD,EAAAzC,IAAAP,EAAA,MAAAM,GAAAN,EAAA,MAAAkC,GAAAlC,EAAA,MAAA2C,GAAA3C,EAAA,MAAA4C,GAAA5C,EAAA,MAAAgB,GAAAhB,EAAA,MAAAiB,GAAAjB,EAAA,MAAAqB,GAAArB,EAAA,MAAAsB,GAAAtB,EAAA,MAAA0B,GAAA1B,EAAA,MAAA4B,GAAA5B,EAAA,MAAA6B,GAAA7B,EAAA,MAAA6C,KAAAA,IAAA7C,EAAA,KAxBZ6C;AAwBY,GC3MV+E,KAAoB7B,SACxB,OAAO,qCAAyB,CAAC8B,MAAMC,OAAY,EAAEC,SAASD,EAAOF,kBAAkB,EAAE,CAC3F,GAQMS,MAA0BC,GAAsBC,MACpDD,EAAWI,KAAKC,OAAc;CAAEC,IAAID;CAAUE,OAAON,IAAiBI,MAAaA;AAAS,EAAE,GAE1FG,MAAyBb,MAAqD;CAClF,IAAMc,IAAmC,CAAC;CAC1C,KAAK,IAAMC,KAAUf,EAAMgB,eAAe,GAExCF,AADAA,EAAS,YAAYC,EAAOJ,GAAE,UAAWI,EAAOE,QAAQ,GACxDH,EAAS,SAASC,EAAOG,OAAOP,GAAE,UAAWI,EAAOG,OAAOD,QAAQ;CAErE,OAAOH;AACT,GAEMK,MAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACxB,EAAAtB,UAAAE,eAAAC,uBAA+CiB,GAAMG;CAAA,AAAAF,EAAA,OAAArB,IAIlBuB,IAAAF,EAAA,MAApBE,IAAAvB,EAAKwB,aAAc,GAACH,EAAA,KAAArB,GAAAqB,EAAA,KAAAE;CACpB,IAAAE,IAAAvB,EAAUwB,WACXC,IAAAzB,EAAU0B,UAASC;CAAA,AAAAR,EAAA,OAAArB,IAEK6B,IAAAR,EAAA,MAAvBQ,IAAA7B,EAAK1C,gBAAiB,GAAC+D,EAAA,KAAArB,GAAAqB,EAAA,KAAAQ;CAAA,IAAAC;CAGlC,OAHkCT,EAAA,OAAAlB,KAAAkB,EAAA,OAAAnB,EAAAwB,aAAAL,EAAA,OAAAnB,EAAA0B,YAAAP,EAAA,OAAAE,KAAAF,EAAA,OAAAQ,EAAAE,KAAAC,UAAAX,EAAA,OAAArB,EAAAiC,gBAAAZ,EAAA,QAAArB,EAAAkC,eALpCJ,IAAA,kBAAC8K,GAAD;EACa,WAAArL;EACA,WAAAE;EACD,UAAAE;EACOxB;EACN,WAAA0B,EAAuBE,KAAKC;EACzB,cAAAhC,EAAKiC;EACD,kBAAAjC,EAAKkC;CAAY,CAAA,GACnCb,EAAA,KAAAlB,GAAAkB,EAAA,KAAAnB,EAAAwB,WAAAL,EAAA,KAAAnB,EAAA0B,UAAAP,EAAA,KAAAE,GAAAF,EAAA,KAAAQ,EAAAE,KAAAC,QAAAX,EAAA,KAAArB,EAAAiC,cAAAZ,EAAA,MAAArB,EAAAkC,aAAAb,EAAA,MAAAS,KAAAA,IAAAT,EAAA,KARFS;AAQE,GAIAK,MAAoBf,MAA0B;CAClD,IAAM,EACJgB,SACAC,aACAC,cACAC,kBACAC,yBACAC,sBAAmB,IACnBC,eACAC,qBACAC,gBACAC,gBACAC,uBACAxC,mBACAyC,gBACAC,oBACAC,oBACA9C,qBAAkB;EAAC;EAAI;EAAI;EAAI;EAAI;CAAG,GACtC+C,gBAAa,CAAA,GACbC,kBACAC,aACAC,uBACAC,yBAAsB,IACtBC,iCACEnC,GACE,CAACoC,GAASC,KAAcxF,EAAuB,CAAA,CAAE,GACjD,CAACiC,GAAYwD,MAAiBzF,SAAiC;EACnEyD,WAAW;EACXE,UAAU7C,EAAuB,EAAEkE,mBAAgB,CAAC;CACtD,EAAE,GACI,CAACU,GAAcC,KAAmB3F,EAA4B,CAAC,CAAC,GAChE,CAAC4F,GAAWC,MAAgB7F,EAASwE,CAAgB,GACrD,CAACsB,GAAUC,MAAe/F,EAAS,EAAK,GACxC,CAACgG,IAAaC,MAAkBjG,QAAyB;EAC7D,IAAMkG,IAAuB,IAAIC,IAAI7B,KAAiB,CAAA,CAAE;EACxD,OAAO8B,OAAOC,KAAKlC,EAAK,MAAM,CAAC,CAAC,CAAC,CAACmC,QAAQC,MAAQ,CAACL,EAAqBM,IAAID,CAAG,CAAC;CAClF,CAAC,GACK,CAACE,IAAqBC,MAA0B1G,QAA4B,IAAImG,IAAI5B,CAAoB,CAAC,GACzGoC,KAAmB,IAAIR,IAAI7B,KAAiB,CAAA,CAAE,GAC9CsC,KAAiBR,OAAOC,KAAKlC,EAAK,MAAM,CAAC,CAAC,CAAC,CAACmC,QAAQC,MAAQ,CAACI,GAAiBH,IAAID,CAAG,CAAC,GACtFM,IAAwBlG,EAA4BiG,IAAgBZ,EAAW,GAC/Ec,KAAmB,IAAIX,IAAIU,EAAsBP,QAAQC,MAAQ,CAACE,GAAoBD,IAAID,CAAG,CAAC,CAAC,GAC/FnE,KAAayE,EAAsBP,QAAQC,MAAQO,GAAiBN,IAAID,CAAG,CAAC,GAC5EQ,IAAkB/F,EAAsBmC,CAAK,GAC7C6D,KAAmBjG,EAAwBoC,CAAK,GAChD8D,KAAqB3G,GACzB6D,GACA0C,GACAxE,GACA0C,CACF,GACMmC,KAAe3G,EAA2B4D,GAAM0C,GAAuB1B,GAAUJ,CAAe,GAChGoC,KAA4BtG,EAAkC;EAClEuE;EACAhD,YAAYwE;CACd,CAAC,GACKQ,KAAUlH,EAAuBiH,KAA4BE,MAAUA,EAAMD,SAAS,EAC1FE,UAAU,EAAEC,UAAU,OAAO,EAC/B,CAAC,GAEKE,KADuBjH,EAAoB0G,IAAcE,IAASH,EACnDO,CAAAA,CAAqBhF,KAAKkF,MAAQA,EAAIC,SAAS,GAC9DC,KAAUzH,GAAagE,GAAM/B,IAAY;EAC7CwC;EACAC;EACAxC;EACA0E;EACA9B;EACAC;EACA2C,gBAAgBnC;EAChBX;EACAe;CACF,CAAC,GAEK/D,IAAQpC,GAAc;EAC1BwE,MAAMsD;EACNG;EACAE,eAAe;GAAEC,MAAM;GAAKC,SAAS;GAAIC,SAAS;EAAI;EACtDZ,OAAO;GAAE9B;GAAStD;GAAYyD;EAAa;EAC3CP,WAAWuC,GAAKQ,MAAUtH,EAAsB8G,GAAKQ,GAAO/C,CAAQ;EACpEgD,kBAAkB;EAClBC,uBAAuB;EACvBC,iBAAiB7C;EACjB8C,oBAAoB7C;EACpB8C,sBAAsB5C;EACtBpG,mBAAmBA,GAAkB;EACrCF,iBAAiBA,GAAgB;EACjCC,uBAAuBA,GAAsB;EAC7CkJ,yBAAyBzB;EACzB0B,oBAAoB1B;EACpB2B,cAAc;CAChB,CAAC;CAED3I,SAAgB;EACd,IAAM4I,IAAY5G,EAAMwB,aAAa;EACrC,AAAIoF,MAAc,KAAK1G,EAAWwB,YAAYkF,KAE9ClD,IAAemD,OAAa;GAC1B,GAAGA;GACHnF,WAAWoF,KAAKC,IAAIH,IAAY,GAAG,CAAC;EACtC,EAAE;CACJ,GAAG,CAAC1G,EAAWwB,WAAW1B,CAAK,CAAC;CAEhC,IAAMgH,KAAiBnG,GAAsBb,CAAK,GAE5CiH,KAAejH,EAAMkH,oBAAoB,CAAC,CAACnF,MAC3CoF,KAAUnH,EAAM1C,gBAAgB,CAAC,CAACyE,MAClCqF,KAAuB1I,EAAwBuI,EAAY,GAC3DI,KACJ,kBAACkV,IAAD;EACE,SAASnc,GAAuB0E,GAAuBxE,CAAc;EACnDyE;EACRhB;EACCF;EACX,gBAAgByD,EAAQvE;EACxB,2BAA2BrC,GAAU6G,MACnC5C,IAAwBkC,MAAY1H,EAA4B0H,GAASnG,GAAU6G,CAAO,CAAC;EAE7F,kBAAkBC,GAAgBC,MAChCvD,IAAgB2C,MACdlI,EAAwBC,EAA4BiG,IAAgBgC,CAAO,GAAGW,GAAgBC,CAAY,CAC5G;EAEF,kBAAkBzD;EAClB,yBAAyBF;CAAa,CAAA;CAI1C,OACE,kBAAC8b,GAAD;EAAM,WAAU;EAAS,QAAO;EAAO,OAAM;EAA7C,UAAA;GACE,kBAACxS,GAAD;IACE,MAAMjI;IACN,YAAYC;IACZ,YAAYF;IACGmC;IACf,SAASjG,EAAMsG;IACf,cAActG,EAAMuG;IACpB,qBAAqBvG,EAAMwG;GAAoB,CAAA;GAEhDxG,EAAMyG,sBACL,kBAACuU,IAAD;IAAK,UAAS;IAAW,MAAK;IAAI,WAAU;IAA5C,UAAA,CACE,kBAACtT,GAAD;KAAY,QAAO;KAAO,UAAS;KAAQ,yBAAA;KACzC,UAAA,kBAACgX,EAAM,MAAP;MACE,WAAW,aAAaxd,IAAY,gBAAgB;MACpD,OAAO;OAAE,GAAG0E;OAAgBc,OAAOxF,IAAY,SAAStC,EAAM+H,aAAa;MAAE;MAF/E,UAAA,CAIE,kBAAC+X,EAAM,QAAP,EAAA,UACG9f,EAAMgI,gBAAgB,CAAC,CAACvH,KAAKwH,MAC5B,kBAACc,IAAD,EAAA,UAAA,CACE,kBAAC+W,EAAM,KAAP;OACE,WAAU;OACV,aAAazd,IAAW,SAAS;OACjC,aAAY;OAEX4F,UAAAA,EAAYC,QAAQzH,KAAKM,MACxB,kBAACqe,IAAD;QAEUre;QACKkH;QACNjI;QACIsC;QACX,gBAAgBgF,EAAQxE,IAAqB/B,EAAOG,OAAOP;OAAK,GAL3DI,EAAOJ,EAKoD,CAEnE;MACQ,CAAA,GACVoC,KAAec,IACd,kBAACygB,IAAD;OAAU,UAAU;OAClB,UAAA,kBAACzD,IAAD;QACe5Y;QACb,MAAMvC;QACO3C;QACHV;QACCC;OAAU,CAAA;MAEf,CAAA,IACR,IACI,EAAA,GA5BK2F,EAAYtH,EA4BjB,CACX,EACW,CAAA,GACd,kBAACmf,EAAM,MAAP,EAAA,UACG9f,EAAMmI,YAAY,CAAC,CAACpG,KAAKtB,KAAKkF,MAAQ;OACrC,IAAMyC,IAAmB1F,IAAcC,IAAmBgD,EAAI0C,QAAQ,KAAK,KAAQ,IAC7EC,IAAcpJ,EAAyB;QAAEoE;QAAqBV;QAAa2F,OAAO5C,EAAIhF;OAAG,CAAC,GAC1F6H,IAAgB7C,EAAI8C,cAAc;OAExC,OACE,kBAAC8X,IAAD;QAEE,KAAK5a;QACKtD;QACQ+F;QACLE;QACEE;QACLzE;QACErB;QACea;OAA0B,GARhDoC,EAAIhF,EAQ4C;MAG3D,CAAC,EACS,CAAA,CACF;;IACF,CAAA,GACXqE,KAAmBiC,GAAajF,SAAS,IACxC,kBAAC6K,GAAD;KACE,eAAe5F,GAAajF;KAC5B,YAAYmF,GAAQnF;KACpB,wBAAwBhC,EAAM0I,sBAAsB,EAAK;KACzD,mBAAmB1I,EAAM0I,sBAAsB,EAAI;KACnD,SAASzD;KACT,cAAcmC;IAAqB,CAAA,IAEnC,IACD;;GAENpH,EAAMwB,aAAa,IAAI,KACtB,kBAAC4f,IAAD;IAA0BphB;IAAmBE;IAA6BC;GAAgB,CAAA;EAExF;;AAEV,GAEawI,MAAYvH,MAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA;CACvB,IAAIF,EAAKwH,UAAS;EAAA,IAAArH;EAAyC,OAAzCF,EAAA,OAAAD,IAAyCG,IAAAF,EAAA,MAAhCE,IAAA,kBAACyL,GAAD,EAAkB,GAAK5L,EAAK,CAAA,GAAIC,EAAA,KAAAD,GAAAC,EAAA,KAAAE,IAAhCA;CAAgC;CAAC,IAAAA;CACtB,OADsBF,EAAA,OAAAD,IACtBG,IAAAF,EAAA,MAA/BE,IAAA,kBAACggB,IAAD,EAAiB,GAAKngB,EAAK,CAAA,GAAIC,EAAA,KAAAD,GAAAC,EAAA,KAAAE,IAA/BA;AAA+B,GCxRlCmI,KAAa;CAAC;CAAO;CAAO;CAAO;CAAO;AAAK,GAExCC,MAAoBC,MAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GAC/B,EAAAP,YAAAC,aAAAO,GAAAN,UAAAO,MAAmDJ,GAAlCJ,IAAAO,MAAAE,KAAAA,IAAA,IAAAF,GAAiBN,IAAAO,MAAAC,KAAAA,IAAA,IAAAD,GAAYE;CAAA,AAAAL,EAAA,OAAAL,KAAAK,EAAA,OAAAN,KAE5CW,IAAAX,KAAWA,EAAOY,SAAU,IAA5BZ,IAEIa,MAAKC,KAAM,EAAAF,QAAUX,EAAY,GAAGc,EAAwD,GAACT,EAAA,KAAAL,GAAAK,EAAA,KAAAN,GAAAM,EAAA,KAAAK,KAAAA,IAAAL,EAAA;CAHnG,IAAAU,IACEL,GAEkGM;CAAA,AAAAX,EAAA,OAAAU,IAyB1FC,IAAAX,EAAA,MAnBDW,IAAAD,EAAOE,IAAKC,EAmBZ,GAACb,EAAA,KAAAU,GAAAV,EAAA,KAAAW;CAAA,IAAAG;CAAA,AAAAd,EAAA,OAAAW,IAESG,IAAAd,EAAA,MAvBfc,IAAA,kBAAAmV,EAAA,QAAA,EAAA,UACE,kBAAAA,EAAA,KAAA;EAAqB,WAAA;EAA2C,aAAA;EAAwB,aAAA;EACrFtV,UAAAA;CAoBH,CAAA,EACF,CAAA,GAAeX,EAAA,KAAAW,GAAAX,EAAA,KAAAc;CAAA,IAAAC;CAAA,IAAAf,EAAA,OAAAU,KAAAV,EAAA,OAAAJ,GAAA;EAAA,IAAAoB;EAsBFhB,AAtBEA,EAAA,QAAAU,IAqBZM,IAAAhB,EAAA,OAnBiCgB,KAAAC,GAAAC,MAChC,kBAAA+U,EAAA,KAAA,EAAA,UACGvV,EAAOE,KAAKO,GAAAC,MACX,kBAAA6U,EAAA,MAAA;GAEU,SAAA;GACI,aAAA;GACA,aAAA;GACL,OAAA,EAAA3U,aAAe,OAAO;GAChB,cAAA;GAEb,UAAA,kBAAC8Z,GAAD;IACS,QAAA;IACA,OAAAvb,IAAYqB,IAAWE,KAAevB,GAAUS;IAC1C,cAAA;GAAI,CAAA;EAErB,GAZOe,EAAM9B,EAYb,CACD,EACH,GAjBgB2B,CAiBhB,GACDlB,EAAA,MAAAU,GAAAV,EAAA,MAAAgB,IApBHD,IAAA,kBAAAkV,EAAA,MAAA,EAAA,UACG1V,MAAKC,KAAM,EAAAF,QAAUV,EAAS,GAAGoB,CAmBjC,EACH,CAAA,GAAahB,EAAA,KAAAU,GAAAV,EAAA,KAAAJ,GAAAI,EAAA,KAAAe;CAAA,OAAAA,IAAAf,EAAA;CAAA,IAAAgB;CACF,OADEhB,EAAA,QAAAc,KAAAd,EAAA,QAAAe,KA9CfC,IAAA,kBAAAiV,EAAA,MAAA;EAAsB,WAAA;EAA8B,OAAA;EAApD,UAAA,CACEnV,GAwBAC,CAsBF;KAAaf,EAAA,MAAAc,GAAAd,EAAA,MAAAe,GAAAf,EAAA,MAAAgB,KAAAA,IAAAhB,EAAA,KA/CbgB;AA+Ca;AAvDgB,SAAAP,GAAAc,GAAAC,GAAA;CAAA,OAK0B;EAAAjC,IAAM,UAAUiC,IAAQ;EAAGhC,OAAS;CAAG;AAAC;AALlE,SAAAqB,GAAAQ,GAAA;CAAA,OAYrB,kBAAA4U,EAAA,cAAA;EAEgB,eAAA;EACF,aAAA;EACL,OAAA,EAAA3U,aAAe,OAAO;EACjB,aAAA;EACH,UAAA;EACA,UAAA;EACE,YAAA;EAEVD,UAAAA,EAAM7B,QACL,kBAACqI,GAAD;GAAS,IAAA;GAAgB,WAAA;GAA4B,YAAA;GAAM,UAAA;GACxDxG,UAAAA,EAAM7B;EADJ,CAAA,IAIL,kBAAC4b,GAAD;GAAiB,QAAA;GAAa,OAAA;GAAoB,cAAA;EAAI,CAAA;CAE1D,GAhBO/Z,EAAM9B,EAgBb;AAAqB"}