wcz-layout
Version:
1 lines • 180 kB
Source Map (JSON)
{"version":3,"file":"hooks.mjs","names":["Autocomplete","TextField","AutocompleteProps","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormAutocompleteProps","Omit","textFieldProps","FormAutocomplete","t0","$","_c","$i","Symbol","for","autocompleteProps","field","t1","isTouched","hasError","helperText","t2","t3","freeSolo","_","value","handleChange","__0","value_0","reason","t4","name","parameters","t5","handleBlur","state","Checkbox","FormControl","FormControlLabel","FormHelperText","CheckboxProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormCheckboxProps","Omit","label","FormCheckbox","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","name","t2","Boolean","state","value","t3","event","handleChange","target","checked","t4","handleBlur","t5","t6","t7","t8","DatePicker","Dayjs","PickersTextFieldProps","DatePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDatePickerProps","Omit","textFieldProps","Partial","FormDatePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TimePicker","PickersTextFieldProps","TimePickerProps","Dayjs","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTimePickerProps","Omit","textFieldProps","Partial","FormTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","DateTimePicker","Dayjs","PickersTextFieldProps","DateTimePickerProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormDateTimePickerProps","Omit","textFieldProps","Partial","FormDateTimePicker","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","value","handleChange","t2","t3","t4","handleBlur","onBlur","error","t5","slotProps","textField","t6","name","state","TextField","NumericFormat","InputAttributes","NumericFormatProps","FC","TextFieldProps","FormOmittedProps","useFieldContext","getFieldStatus","FormNumberFieldProps","Omit","defaultValue","options","FormNumberField","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","state","value","t3","t4","floatValue","handleChange","t5","t6","handleBlur","name","FormControl","FormControlLabel","FormHelperText","FormLabel","Radio","RadioGroup","RadioGroupProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","Option","label","value","FormRadioGroupProps","Omit","options","Array","FormRadioGroup","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","t3","name","t4","state","t5","event","handleChange","target","t6","handleBlur","t7","t8","map","_temp","t9","t10","t11","option","FormControl","FormHelperText","FormLabel","Slider","SliderProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormSliderProps","Omit","label","FormSlider","t0","$","_c","$i","Symbol","for","props","field","t1","isTouched","hasError","helperText","t2","t3","state","value","t4","_","handleChange","Array","isArray","t5","handleBlur","name","t6","t7","Button","ButtonProps","FC","useFormContext","FormSubmitButtonProps","Omit","FormSubmitButton","props","$","_c","$i","Symbol","for","form","t0","event","preventDefault","stopPropagation","handleSubmit","handleClick","t1","t2","canSubmit","isSubmitting","Subscribe","_temp","state","FormControl","FormControlLabel","FormHelperText","Switch","SwitchProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormSwitchProps","Omit","label","FormSwitch","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","name","t2","Boolean","state","value","t3","event","handleChange","target","checked","t4","handleBlur","t5","t6","t7","t8","TextField","TextFieldProps","FC","FormOmittedProps","useFieldContext","getFieldStatus","FormTextFieldProps","Omit","type","FormTextField","props","$","_c","$i","Symbol","for","field","t0","isTouched","hasError","helperText","t1","state","value","t2","event","handleChange","target","t3","t4","t5","handleBlur","name","createFormHook","createFormHookContexts","FormAutocomplete","Autocomplete","FormCheckbox","Checkbox","FormDatePicker","DatePicker","FormTimePicker","TimePicker","FormDateTimePicker","DateTimePicker","FormNumberField","NumberField","FormRadioGroup","RadioGroup","FormSlider","Slider","FormSubmitButton","SubmitButton","FormSwitch","Switch","FormTextField","TextField","fieldContext","useFieldContext","formContext","useFormContext","useAppForm","useLayoutForm","withForm","withLayoutForm","fieldComponents","formComponents","useEffect","useRef","BufferCharacter","time","char","Buffer","current","Array","Config","timeToEvaluate","averageWaitTime","startCharacter","endCharacter","onComplete","code","onError","error","minLength","ignoreIfFocusOn","Node","stopPropagation","preventDefault","container","enabled","useScanDetection","buffer","timeout","ReturnType","setTimeout","undefined","clearBuffer","evaluateBuffer","clearTimeout","sum","map","k","arr","slice","reduce","total","delta","avg","length","filter","join","onKeyDown","event","KeyboardEvent","currentTarget","includes","key","push","performance","now","onKeyDownRef","target","document","listener","Event","addEventListener","removeEventListener","MoreVert","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Tooltip","FC","ReactElement","useState","useTranslation","useCellContext","RowAction","label","icon","onClick","row","TData","divider","disabled","ActionsCell","actions","Array","t0","$","_c","$i","Symbol","for","cell","t","anchorEl","setAnchorEl","length","t1","t2","t3","t4","event","stopPropagation","currentTarget","t5","t6","t7","t8","t9","t10","action","event_0","original","flatMap","t11","KeyboardArrowDown","KeyboardArrowRight","IconButton","Subscribe","FC","useCellContext","ExpandCell","$","_c","$i","Symbol","for","row","t0","getCanExpand","expanded","getIsExpanded","event","stopPropagation","toggleExpanded","ml","depth","t1","table","atoms","KeyboardArrowDown","KeyboardArrowRight","IconButton","Stack","Typography","FlexRender","Subscribe","FC","useCellContext","GroupCell","$","_c","$i","Symbol","for","cell","row","t0","depth","t1","ml","alignItems","t2","expanded","getIsExpanded","event","stopPropagation","toggleExpanded","t3","table","atoms","t4","t5","subRows","length","t6","PushPin","IconButton","Tooltip","Subscribe","FC","useCellContext","PinRowCell","$","_c","$i","Symbol","for","row","t0","getCanPin","pinned","getIsPinned","event","stopPropagation","pin","t1","table","atoms","rowPinning","Checkbox","Subscribe","FC","useCellContext","SelectCell","$","_c","$i","Symbol","for","row","t0","getCanSelect","getIsSelected","getIsSomeSelected","getToggleSelectedHandler","_temp","input","t1","table","atoms","rowSelection","event","stopPropagation","Check","Close","FC","useCellContext","ICON_SX","verticalAlign","const","BooleanCell","$","_c","$i","Symbol","for","cell","t0","getValue","TypographyProps","Typography","dayjs","localizedFormat","FC","useCellContext","extend","DateCell","format","t0","$","_c","$i","Symbol","for","props","t1","undefined","cell","T0","t2","t3","t4","t5","t6","bb0","value","getValue","t7","ComponentProps","FC","DateCell","DateTimeCell","t0","$","_c","$i","Symbol","for","props","t1","format","undefined","t2","TypographyProps","Typography","FC","useCellContext","NumberCell","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","props","sx","cell","t1","value","getValue","t2","fontVariantNumeric","toLocaleString","undefined","TypographyProps","Typography","FC","useCellContext","ValueCell","props","$","_c","$i","Symbol","for","cell","t0","renderValue","value","t1","CreatedFilterFn","FilterFn","Row","constructFilterFn","filterFn_arrHas","filterFn_empty","filterFn_endsWith","filterFn_equals","filterFn_equalsString","filterFn_greaterThan","filterFn_greaterThanOrEqualTo","filterFn_inDateRange","filterFn_includesString","filterFn_inNumberRange","filterFn_lessThan","filterFn_lessThanOrEqualTo","filterFn_notEmpty","filterFn_startsWith","LayoutTableFeatures","foldForSearch","ExtendedColumnFilter","FilterOperator","LayoutColumnMeta","TableFilterVariant","AnyRow","AnyFilterFn","apply","fn","row","columnId","value","resolveFilterValue","ignoreDiacritics","resolveDataValue","includesString","equalsString","startsWith","endsWith","isFilterActive","filter","operator","isBlank","undefined","Array","isArray","length","every","toTime","Date","Number","isNaN","getTime","time","toDay","setHours","compareDates","rowTime","getValue","filterTime","daysFromToday","Math","floor","now","isRelativeToToday","diff","min","max","map","days","equals","variant","test","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","dynamicFilterFn","filters","table","store","state","columnFilters","id","getColumn","columnDef","meta","results","joinOperator","Boolean","some","autoRemove","globalFilterFn","TEXT_OPERATORS","NUMBER_OPERATORS","DATE_OPERATORS","CHOICE_OPERATORS","getFilterOperators","Typography","Subscribe","FC","formatValue","useHeaderContext","AggregationFooter","prefix","options","Intl","NumberFormatOptions","t0","$","_c","$i","Symbol","for","t1","undefined","column","t2","value","getAggregationValue","rows","table","getFilteredRowModel","numeric","Number","fontWeight","isFinite","toLocaleString","t3","atoms","columnFilters","ArrowDownward","IconButton","Subscribe","FC","useHeaderContext","ExpandAllCell","$","_c","$i","Symbol","for","header","table","t0","getCanSomeRowsExpand","getToggleAllRowsExpandedHandler","transition","transform","getIsAllRowsExpanded","t1","atoms","expanded","ArrowBack","ArrowDownward","ArrowForward","ArrowUpward","Clear","MoreVert","PushPin","VisibilityOff","Workspaces","Box","Divider","IconButton","ListItemIcon","ListItemText","Menu","MenuItem","Subscribe","FC","useState","useTranslation","useHeaderContext","hasColumnLabel","moveColumn","HeaderMenu","$","_c","$i","Symbol","for","header","t","anchorEl","setAnchorEl","column","t0","close","t1","action","run","t2","canSort","getCanSort","canPin","getCanPin","canGroup","getCanGroup","canHide","getCanHide","sorted","getIsSorted","pinned","getIsPinned","grouped","getIsGrouped","index","getIndex","leafCount","table","getVisibleLeafColumns","length","display","flexShrink","mr","overflow","width","event","currentTarget","toggleSorting","clearSorting","const","map","position","pin","toggleGrouping","toggleVisibility","t3","store","_temp","state","SxProps","Theme","Box","Subscribe","FC","useHeaderContext","BAR_HEIGHT","TARGET_SIZE","bar","accent","content","position","insetInlineEnd","top","width","height","borderRadius","bgcolor","transition","theme","transitions","create","const","base","insetBlock","HeaderResizeHandle","$","_c","$i","Symbol","for","header","column","getCanResize","t0","getResizeHandler","handler","t1","resetSize","_temp","cursor","touchAction","userSelect","getIsResizing","t2","table","atoms","columnResizing","event","stopPropagation","Box","TableSortLabel","Subscribe","FC","ReactNode","useHeaderContext","HeaderSortLabel","children","t0","$","_c","$i","Symbol","for","column","getCanSort","t1","sorting","direction","getIsSorted","sortIndex","length","getSortIndex","getToggleSortingHandler","ml","fontSize","opacity","t2","table","atoms","Checkbox","Subscribe","FC","useHeaderContext","SelectAllCell","scope","t0","$","_c","$i","Symbol","for","t1","undefined","header","table","t2","checked","getIsAllPageRowsSelected","getIsAllRowsSelected","indeterminate","getIsSomePageRowsSelected","getIsSomeRowsSelected","getToggleAllPageRowsSelectedHandler","getToggleAllRowsSelectedHandler","input","t3","atoms","rowSelection","ViewColumn","Box","Checkbox","FormControlLabel","IconButton","Popover","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","columnLabel","hasColumnLabel","shortcutLabel","ColumnsPanel","$","_c","$i","Symbol","for","table","t","anchorEl","setAnchorEl","buttonRef","t0","getAllLeafColumns","filter","_temp","columns","t1","current","t2","length","t3","enabled","t4","t5","event","currentTarget","t6","t7","t10","t11","t8","t9","vertical","horizontal","paper","sx","maxWidth","t12","display","flexDirection","px","py","maxHeight","minWidth","overflow","map","_temp2","alignItems","p","borderTop","borderColor","typography","variant","noWrap","getIsAllColumnsVisible","getIsSomeColumnsVisible","getToggleAllColumnsVisibilityHandler","t13","atoms","columnVisibility","t14","t15","column","getCanHide","column_0","id","getIsVisible","getToggleVisibilityHandler","Autocomplete","MenuItem","Stack","TextField","Typography","Column","RowData","useTranslation","LayoutTableFeatures","ExtendedColumnFilter","LayoutColumnMeta","TableFilterOption","formatValue","FilterColumn","TData","ColumnFilterFieldProps","column","filter","onChange","value","filterMeta","columnDef","meta","resolveOptions","Array","declared","options","from","getFacetedUniqueValues","keys","map","label","option","sort","a","b","localeCompare","toDateInputValue","Date","date","Number","isNaN","getTime","getFullYear","String","getMonth","padStart","getDate","fromDateInputValue","raw","toISOString","undefined","toNumber","pair","isArray","ColumnFilterField","t0","$","_c","$i","Symbol","for","t","t1","variant","operator","t2","t3","size","const","fullWidth","shared","t4","t5","T0","T1","isDate","t6","t7","t8","t9","to","t10","event","target","t11","inputLabel","shrink","t12","t13","t14","t15","t16","event_0","t17","t18","t19","event_1","multiple","selected","includes","find","option_0","_","next","_temp3","params","_temp","_temp2","event_2","event_3","event_4","option_3","option_2","option_1","selectedOption","Add","Close","DeleteForever","FilterList","Autocomplete","Badge","Box","Button","FormControl","IconButton","InputLabel","MenuItem","Popover","Select","TextField","Tooltip","useHotkey","Subscribe","FC","useRef","useState","useTranslation","useTableContext","ColumnFilterField","getFilterOperators","isFilterActive","ExtendedColumnFilter","FilterOperator","JoinOperator","LayoutColumnMeta","columnLabel","shortcutLabel","DATE_OPERATOR_LABELS","lessThan","lessThanOrEqualTo","greaterThan","greaterThanOrEqualTo","const","DateOperator","LOGIC_WIDTH","FIELD_WIDTH","VALUE_WIDTH","FiltersMenu","table","t","anchorEl","setAnchorEl","HTMLElement","placeholder","buttonRef","HTMLButtonElement","filterableColumns","getAllLeafColumns","filter","column","getCanFilter","close","current","enabled","length","setFilters","filters","Array","setColumnFilters","newFilter","joinOperator","id","filterId","crypto","randomUUID","value","operator","columnDef","meta","variant","atoms","columnFilters","rows","activeCount","update","patch","Partial","map","remove","next","add","event","currentTarget","vertical","horizontal","paper","sx","maxWidth","display","flexDirection","gap","p","maxHeight","overflow","index","getColumn","operators","alignItems","flexShrink","width","visibility","item","target","option","selected","_","params","flexGrow","justifyContent","borderTop","borderColor","resetColumnFilters","Close","Search","Box","IconButton","InputAdornment","TextField","Tooltip","useTheme","useHotkey","FC","useEffect","useRef","useState","useTranslation","useTableContext","shortcutLabel","GlobalFilter","defaultExpanded","debounce","t0","$","_c","$i","Symbol","for","t1","undefined","table","t","theme","inputRef","value","setValue","state","globalFilter","expanded","setExpanded","t2","t3","id","setTimeout","setGlobalFilter","clearTimeout","t4","collapse","t5","current","focus","expand","t6","display","alignItems","t7","t8","t9","t10","t11","transitions","create","t12","gridArea","width","height","zIndex","opacity","pointerEvents","transition","t13","t14","t15","t16","t17","t18","event","target","event_0","key","t19","t20","t21","t22","t23","t24","overflowX","t25","t26","t27","t28","mr","t29","input","startAdornment","endAdornment","t30","t31","TablePagination","TablePaginationProps","FC","useTranslation","useTableContext","PaginationProps","Omit","pageSizeOptions","Array","ALL","Pagination","t0","$","_c","$i","Symbol","for","t1","props","undefined","table","t","pageIndex","pageSize","state","pagination","sizes","Number","isFinite","includes","sort","_temp","t2","flexShrink","minHeight","borderTop","borderColor","t3","t4","label","value","t5","t6","getRowCount","t7","t8","t9","_","page","setPageIndex","event","next","target","setPageSize","Infinity","isArray","sx","a","b","Skeleton","MuiSkeleton","TableCell","TableRow","FC","useEffect","useRef","useState","useTableContext","hasColumnLabel","rowHeight","t0","$","_c","$i","Symbol","for","table","firstRow","t1","state","pagination","pageSize","Math","min","rowCount","setRowCount","t2","t3","container","current","closest","measure","spent","reduce","total","selector","querySelector","getBoundingClientRect","height","max","floor","clientHeight","observer","ResizeObserver","observe","disconnect","t4","Array","from","length","_","index","undefined","getVisibleLeafColumns","map","_temp","p","column","id","py","px","mx","Box","Divider","Typography","Subscribe","FC","ReactNode","useTranslation","useTableContext","ColumnsPanel","FiltersMenu","GlobalFilter","TableToolbarProps","title","actions","disableColumnFilter","disableColumnSelector","disableSearch","ToolbarDivider","$","_c","$i","Symbol","for","t0","height","alignSelf","mx","Toolbar","table","t","t1","flexShrink","display","alignItems","justifyContent","minHeight","gap","p","boxSizing","borderBottom","borderColor","t2","flex","minWidth","t3","fontWeight","t4","count","getSelectedRowIds","length","t5","atoms","rowSelection","t6","t7","t8","t9","t10","t11","createTableHook","ActionsCell","ExpandCell","GroupCell","PinRowCell","SelectCell","AggregatedCell","BooleanCell","DateCell","DateTimeCell","NumberCell","ValueCell","dynamicFilterFn","globalFilterFn","AggregationFooter","ExpandAllCell","HeaderMenu","HeaderResizeHandle","HeaderSortLabel","SelectAllCell","ColumnsPanel","FiltersMenu","GlobalFilter","Pagination","Skeleton","Toolbar","cellContext","headerContext","layoutTableFeatures","tableContext","useCellContext","useHeaderContext","useTableContext","LayoutTableFeatures","appFeatures","createAppColumnHelper","createLayoutColumnHelper","useAppTable","useLayoutTable","features","getRowId","row","id","defaultColumn","filterFn","aggregatedCell","columnResizeMode","isMultiSortEvent","e","ctrlKey","metaKey","shiftKey","MouseEvent","tableComponents","cellComponents","headerComponents","RowAction","LayoutTable","LayoutTableProps","FilterOperator","LayoutColumnMeta","TableFilterOption","TableFilterVariant"],"sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/useForm.ts","../src/hooks/useScanDetection.ts","../src/components/table/cells/features/ActionsCell.tsx","../src/components/table/cells/features/ExpandCell.tsx","../src/components/table/cells/features/GroupCell.tsx","../src/components/table/cells/features/PinRowCell.tsx","../src/components/table/cells/features/SelectCell.tsx","../src/components/table/cells/formatters/BooleanCell.tsx","../src/components/table/cells/formatters/DateCell.tsx","../src/components/table/cells/formatters/DateTimeCell.tsx","../src/components/table/cells/formatters/NumberCell.tsx","../src/components/table/cells/formatters/ValueCell.tsx","../src/components/table/filterFns.ts","../src/components/table/headers/AggregationFooter.tsx","../src/components/table/headers/ExpandAllCell.tsx","../src/components/table/headers/HeaderMenu.tsx","../src/components/table/headers/HeaderResizeHandle.tsx","../src/components/table/headers/HeaderSortLabel.tsx","../src/components/table/headers/SelectAllCell.tsx","../src/components/table/table/ColumnsPanel.tsx","../src/components/table/ColumnFilterField.tsx","../src/components/table/table/FiltersMenu.tsx","../src/components/table/table/GlobalFilter.tsx","../src/components/table/table/Pagination.tsx","../src/components/table/table/Skeleton.tsx","../src/components/table/table/Toolbar.tsx","../src/hooks/useLayoutTable.tsx"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormAutocompleteProps extends Omit<\n AutocompleteProps<any, boolean, boolean, boolean>,\n FormOmittedProps\n> {\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\n}\n\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({\n textFieldProps,\n ...autocompleteProps\n}) => {\n const field = useFieldContext();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <Autocomplete\n value={field.state.value}\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\n onInputChange={(_, value, reason) =>\n reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)\n }\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...autocompleteProps}\n renderInput={(parameters) => (\n <TextField\n {...parameters}\n name={field.name}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n {...textFieldProps}\n />\n )}\n />\n );\n};\n","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { CheckboxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\n const field = useFieldContext<boolean | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n <FormControlLabel\n control={\n <Checkbox\n name={field.name}\n checked={Boolean(field.state.value)}\n onChange={(event) => field.handleChange(event.target.checked)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n />\n }\n label={props.label ?? \"\"}\n />\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { DatePicker } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DatePickerProps } from \"@mui/x-date-pickers\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\n textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DatePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps,\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { TimePicker } from \"@mui/x-date-pickers\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { TimePickerProps } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\n textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TimePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps,\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { DateTimePicker } from \"@mui/x-date-pickers\";\nimport type { Dayjs } from \"dayjs\";\nimport type { PickersTextFieldProps } from \"@mui/x-date-pickers/PickersTextField\";\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\n textFieldProps?: Partial<PickersTextFieldProps>;\n}\n\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DateTimePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps,\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { TextField } from \"@mui/material\";\nimport { NumericFormat } from \"react-number-format\";\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\nimport type { FC } from \"react\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n defaultValue?: number | null;\n options?: Omit<\n NumericFormatProps<InputAttributes>,\n \"customInput\" | \"onValueChange\" | keyof InputAttributes\n >;\n}\n\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\n const field = useFieldContext<number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <NumericFormat\n customInput={TextField}\n name={field.name}\n value={field.state.value ?? \"\"}\n onValueChange={({ floatValue }) => field.handleChange(floatValue)}\n onBlur={field.handleBlur}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n aria-label={field.name}\n {...props}\n {...options}\n />\n );\n};\n","import {\n FormControl,\n FormControlLabel,\n FormHelperText,\n FormLabel,\n Radio,\n RadioGroup,\n} from \"@mui/material\";\nimport type { RadioGroupProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\ninterface Option {\n label: string;\n value: string | number;\n}\n\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\n label?: string;\n options: Array<Option>;\n}\n\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\n const field = useFieldContext<string | number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\n <RadioGroup\n name={field.name}\n value={field.state.value ?? \"\"}\n onChange={(event) => field.handleChange(event.target.value)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n >\n {options.map((option) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n control={<Radio />}\n label={option.label}\n />\n ))}\n </RadioGroup>\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\nimport type { SliderProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\n const field = useFieldContext<number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n {label && <FormLabel>{label}</FormLabel>}\n <Slider\n name={field.name}\n value={field.state.value ?? 0}\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n />\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { Button } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useFormContext } from \"~/hooks/useForm\";\n\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\n\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\n const form = useFormContext();\n\n const handleClick = async (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n await form.handleSubmit();\n };\n\n return (\n <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\n {([canSubmit, isSubmitting]) => (\n <Button\n loading={isSubmitting}\n disabled={!canSubmit}\n onClick={handleClick}\n type=\"submit\"\n aria-label=\"submit\"\n {...props}\n />\n )}\n </form.Subscribe>\n );\n};\n","import { FormControl, FormControlLabel, FormHelperText, Switch } from \"@mui/material\";\nimport type { SwitchProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\n const field = useFieldContext<boolean | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n <FormControlLabel\n control={\n <Switch\n name={field.name}\n checked={Boolean(field.state.value)}\n onChange={(event) => field.handleChange(event.target.checked)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n />\n }\n label={props.label ?? \"\"}\n />\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { TextField } from \"@mui/material\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/useForm\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\";\n}\n\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\n const field = useFieldContext<string | number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TextField\n name={field.name}\n value={field.state.value ?? \"\"}\n onChange={(event) => field.handleChange(event.target.value)}\n onBlur={field.handleBlur}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } =\n createFormHookContexts();\n\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } = createFormHook({\n fieldComponents: {\n TextField,\n NumberField,\n Autocomplete,\n Checkbox,\n Switch,\n RadioGroup,\n Slider,\n DatePicker,\n TimePicker,\n DateTimePicker,\n },\n formComponents: {\n SubmitButton,\n },\n fieldContext,\n formContext,\n});\n","import { useEffect, useRef } from \"react\";\n\ninterface BufferCharacter {\n time: number;\n char: string;\n}\n\ninterface Buffer {\n current: Array<BufferCharacter>;\n}\n\ninterface Config {\n /** Time to wait from last character to then trigger an evaluation of the buffer. Defaults to 100ms. */\n timeToEvaluate?: number;\n /** Average time between characters in milliseconds. Used to determine if input is from keyboard or a scanner. Defaults to 50ms.*/\n averageWaitTime?: number;\n /** Character that barcode scanner prefixes input with.*/\n startCharacter?: Array<string>;\n /** Character that barcode scanner suffixes input with. Defaults to [\"Enter\", \"Escape\"].*/\n endCharacter?: Array<string>;\n /** Callback to use on complete scan input.*/\n onComplete: (code: string) => void;\n /** Callback to use on error. */\n onError?: (error: string) => void;\n /** Minimum length a scanned code should be. Defaults to 1.*/\n minLength?: number;\n /** Ignore scan input if this node is focused.*/\n ignoreIfFocusOn?: Node;\n /** Stop propagation on keydown event. Defaults to false.*/\n stopPropagation?: boolean;\n /** Prevent default on keydown event. Defaults to false.*/\n preventDefault?: boolean;\n /** Bind keydown event to this node. Defaults to document (resolved on the client only, so the hook is SSR-safe).*/\n container?: Node;\n /** Indicates if the scanning is enabled. */\n enabled?: boolean;\n}\n\nexport const useScanDetection = ({\n timeToEvaluate = 100,\n averageWaitTime = 50,\n startCharacter = [],\n endCharacter = [\"Enter\", \"Escape\"],\n onComplete,\n onError,\n minLength = 1,\n ignoreIfFocusOn,\n stopPropagation = false,\n preventDefault = false,\n container,\n enabled = true,\n}: Config) => {\n const buffer: Buffer = useRef([]);\n const timeout = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const clearBuffer = () => {\n buffer.current = [];\n };\n const evaluateBuffer = () => {\n clearTimeout(timeout.current);\n const sum = buffer.current\n .map(({ time }, k, arr) => (k > 0 ? time - arr[k - 1].time : 0))\n .slice(1)\n .reduce((total, delta) => total + delta, 0);\n const avg = sum / (buffer.current.length - 1);\n\n const code = buffer.current\n .slice(startCharacter.length > 0 ? 1 : 0)\n .filter(({ char }) => char !== \"Shift\" && char !== \"Tab\")\n .map(({ char }) => char)\n .join(\"\");\n\n if (\n avg <= averageWaitTime &&\n buffer.current.slice(startCharacter.length > 0 ? 1 : 0).length >= minLength\n ) {\n onComplete(code);\n } else if (avg <= averageWaitTime) {\n onError?.(code);\n }\n clearBuffer();\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!enabled) return;\n\n if (event.currentTarget !== ignoreIfFocusOn) {\n if (endCharacter.includes(event.key)) {\n evaluateBuffer();\n }\n if (\n buffer.current.length > 0 ||\n startCharacter.includes(event.key) ||\n startCharacter.length === 0\n ) {\n clearTimeout(timeout.current);\n timeout.current = setTimeout(evaluateBuffer, timeToEvaluate);\n buffer.current.push({ time: performance.now(), char: event.key });\n }\n }\n if (stopPropagation) {\n event.stopPropagation();\n }\n if (preventDefault) {\n event.preventDefault();\n }\n };\n\n const onKeyDownRef = useRef(onKeyDown);\n onKeyDownRef.current = onKeyDown;\n\n useEffect(() => {\n return () => {\n clearTimeout(timeout.current);\n };\n }, []);\n\n useEffect(() => {\n const target = container ?? document;\n const listener = (event: Event) => onKeyDownRef.current(event as KeyboardEvent);\n target.addEventListener(\"keydown\", listener);\n return () => {\n target.removeEventListener(\"keydown\", listener);\n };\n }, [container]);\n};\n","import MoreVert from \"@mui/icons-material/MoreVert\";\nimport {\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n Tooltip,\n} from \"@mui/material\";\nimport type { FC, ReactElement } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport type RowAction<TData = any> = {\n label: string;\n icon?: ReactElement;\n onClick: (row: TData) => void;\n divider?: boolean;\n disabled?: boolean;\n};\n\nexport const ActionsCell: FC<{ actions: Array<RowAction> }> = ({ actions }) => {\n const cell = useCellContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n\n if (!actions.length) return null;\n\n return (\n <>\n <Tooltip title={t(\"Layout.Table.RowActions\")}>\n <IconButton\n size=\"small\"\n aria-label={t(\"Layout.Table.RowActions\")}\n aria-haspopup=\"menu\"\n onClick={(event) => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n }}\n >\n <MoreVert fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={() => setAnchorEl(null)}>\n {actions.flatMap((action) => [\n ...(action.divider ? [<Divider key={`${action.label}-divider`} />] : []),\n <MenuItem\n key={action.label}\n disabled={action.disabled}\n onClick={(event) => {\n event.stopPropagation();\n action.onClick(cell.row.original);\n setAnchorEl(null);\n }}\n >\n {action.icon && <ListItemIcon>{action.icon}</ListItemIcon>}\n <ListItemText>{action.label}</ListItemText>\n </MenuItem>,\n ])}\n </Menu>\n </>\n );\n};\n","import KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport { IconButton } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const ExpandCell: FC = () => {\n const { row } = useCellContext();\n\n return (\n <Subscribe source={row.table.atoms.expanded}>\n {() => {\n if (!row.getCanExpand()) return null;\n const expanded = row.getIsExpanded();\n\n return (\n <IconButton\n size=\"small\"\n onClick={(event) => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n aria-label={expanded ? \"Collapse row\" : \"Expand row\"}\n sx={{ ml: row.depth * 2 }}\n >\n {expanded ? (\n <KeyboardArrowDown fontSize=\"small\" />\n ) : (\n <KeyboardArrowRight fontSize=\"small\" />\n )}\n </IconButton>\n );\n }}\n </Subscribe>\n );\n};\n","import KeyboardArrowDown from \"@mui/icons-material/KeyboardArrowDown\";\nimport KeyboardArrowRight from \"@mui/icons-material/KeyboardArrowRight\";\nimport { IconButton, Stack, Typography } from \"@mui/material\";\nimport { FlexRender, Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const GroupCell: FC = () => {\n const cell = useCellContext();\n const { row } = cell;\n\n return (\n <Stack direction=\"row\" spacing={0.5} sx={{ ml: row.depth * 2, alignItems: \"center\" }}>\n <Subscribe source={row.table.atoms.expanded}>\n {() => {\n const expanded = row.getIsExpanded();\n\n return (\n <IconButton\n size=\"small\"\n onClick={(event) => {\n event.stopPropagation();\n row.toggleExpanded();\n }}\n aria-label={expanded ? \"Collapse group\" : \"Expand group\"}\n >\n {expanded ? (\n <KeyboardArrowDown fontSize=\"small\" />\n ) : (\n <KeyboardArrowRight fontSize=\"small\" />\n )}\n </IconButton>\n );\n }}\n </Subscribe>\n\n <FlexRender cell={cell} />\n\n <Typography variant=\"caption\" color=\"text.secondary\">\n ({row.subRows.length})\n </Typography>\n </Stack>\n );\n};\n","import PushPin from \"@mui/icons-material/PushPin\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const PinRowCell: FC = () => {\n const { row } = useCellContext();\n\n return (\n <Subscribe source={row.table.atoms.rowPinning}>\n {() => {\n if (!row.getCanPin()) return null;\n const pinned = row.getIsPinned();\n\n return (\n <Tooltip title={pinned ? \"Unpin row\" : \"Pin row\"}>\n <IconButton\n size=\"small\"\n color={pinned ? \"primary\" : \"default\"}\n onClick={(event) => {\n event.stopPropagation();\n row.pin(pinned ? false : \"top\");\n }}\n >\n <PushPin fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n );\n }}\n </Subscribe>\n );\n};\n","import { Checkbox } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const SelectCell: FC = () => {\n const { row } = useCellContext();\n\n return (\n <Subscribe source={row.table.atoms.rowSelection}>\n {() =>\n row.getCanSelect() ? (\n <Checkbox\n size=\"small\"\n checked={row.getIsSelected()}\n indeterminate={!row.getIsSelected() && row.getIsSomeSelected()}\n onChange={row.getToggleSelectedHandler()}\n onClick={(event) => event.stopPropagation()}\n slotProps={{ input: { \"aria-label\": \"Select row\" } }}\n />\n ) : null\n }\n </Subscribe>\n );\n};\n","import Check from \"@mui/icons-material/Check\";\nimport Close from \"@mui/icons-material/Close\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\n/** Icons are inline-block, so without this they sit on the baseline and read as too high. */\nconst ICON_SX = { verticalAlign: \"middle\" } as const;\n\nexport const BooleanCell: FC = () => {\n const cell = useCellContext<boolean>();\n\n return cell.getValue() ? (\n <Check fontSize=\"small\" color=\"success\" sx={ICON_SX} />\n ) : (\n <Close fontSize=\"small\" color=\"error\" sx={ICON_SX} />\n );\n};\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport dayjs from \"dayjs\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\ndayjs.extend(localizedFormat);\n\nexport const DateCell: FC<TypographyProps & { format?: string }> = ({ format = \"L\", ...props }) => {\n const cell = useCellContext<Date | string>();\n const value = cell.getValue();\n if (!value) return null;\n\n return (\n <Typography variant=\"body2\" noWrap {...props}>\n {dayjs(value).format(format)}\n </Typography>\n );\n};\n","import type { ComponentProps, FC } from \"react\";\nimport { DateCell } from \"~/components/table/cells/formatters/DateCell\";\n\nexport const DateTimeCell: FC<ComponentProps<typeof DateCell>> = ({\n format = \"L LT\",\n ...props\n}) => <DateCell format={format} {...props} />;\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const NumberCell: FC<TypographyProps & { options?: Intl.NumberFormatOptions }> = ({\n options,\n sx,\n ...props\n}) => {\n const cell = useCellContext<number>();\n const value = cell.getValue();\n\n return (\n <Typography\n variant=\"body2\"\n noWrap\n sx={{ fontVariantNumeric: \"tabular-nums\", ...sx }}\n {...props}\n >\n {typeof value === \"number\" && value.toLocaleString(undefined, options)}\n </Typography>\n );\n};\n","import type { TypographyProps } from \"@mui/material\";\nimport { Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useCellContext } from \"~/components/table/context\";\n\nexport const ValueCell: FC<TypographyProps> = (props) => {\n const cell = useCellContext<string>();\n const value = cell.renderValue();\n\n return (\n <Typography variant=\"body2\" noWrap {...props}>\n {value}\n </Typography>\n );\n};\n","import type { CreatedFilterFn, FilterFn, Row } from \"@tanstack/react-table\";\nimport {\n constructFilterFn,\n filterFn_arrHas,\n filterFn_empty,\n filterFn_endsWith,\n filterFn_equals,\n filterFn_equalsString,\n filterFn_greaterThan,\n filterFn_greaterThanOrEqualTo,\n filterFn_inDateRange,\n filterFn_includesString,\n filterFn_inNumberRange,\n filterFn_lessThan,\n filterFn_lessThanOrEqualTo,\n filterFn_notEmpty,\n filterFn_startsWith,\n} from \"@tanstack/react-table\";\nimport type { LayoutTableFeatures } from \"~/components/table/context\";\nimport { foldForSearch } from \"~/lib/utils\";\nimport type {\n ExtendedColumnFilter,\n FilterOperator,\n LayoutColumnMeta,\n TableFilterVariant,\n} from \"./types\";\n\ntype AnyRow = Row<LayoutTableFeatures, any>;\ntype AnyFilterFn = FilterFn<LayoutTableFeatures, any>;\n\nconst apply = (fn: AnyFilterFn, row: AnyRow, columnId: string, value: unknown): boolean =>\n fn(row, columnId, fn.resolveFilterValue?.(value) ?? value);\n\nconst ignoreDiacritics = (fn: CreatedFilterFn<any, any>): CreatedFilterFn<any, any> =>\n constructFilterFn({ ...fn, resolveFilterValue: foldForSearch, resolveDataValue: foldForSearch });\n\nconst includesString = ignoreDiacritics(filterFn_includesString);\nconst equalsString = ignoreDiacritics(filterFn_equalsString);\nconst startsWith = ignoreDiacritics(filterFn_startsWith);\nconst endsWith = ignoreDiacritics(filterFn_endsWith);\n\nexport const isFilterActive = (filter: ExtendedColumnFilter): boolean =>\n filter.operator === \"isEmpty\" || filter.operator === \"isNotEmpty\" || !isBlank(filter.value);\n\nconst isBlank = (value: unknown): boolean =>\n value === undefined ||\n value === null ||\n value === \"\" ||\n (Array.isArray(value) && (!value.length || value.every(isBlank)));\n\nconst toTime = (value: unknown): number | null => {\n if (value instanceof Date) return Number.isNaN(value.getTime()) ? null : value.getTime();\n if (typeof value === \"string\" || typeof value === \"number\") {\n const time = new Date(value).getTime();\n return Number.isNaN(time) ? null : time;\n }\n return null;\n};\n\nconst toDay = (time: number): number => new Date(time).setHours(0, 0, 0, 0);\n\nconst compareDates = (\n row: AnyRow,\n columnId: string,\n value: unknown,\n operator: FilterOperator,\n): boolean | undefined => {\n const rowTime = toTime(row.getValue(columnId));\n const filterTime = toTime(value);\n if (rowTime === null || filterTime === null) return undefined;\n\n switch (operator) {\n case \"equals\":\n return toDay(rowTime) === toDay(filterTime);\n case \"greaterThan\":\n return rowTime > filterTime;\n case \"greaterThanOrEqualTo\":\n return rowTime >= filterTime;\n case \"lessThan\":\n return rowTime < filterTime;\n case \"lessThanOrEqualTo\":\n return rowTime <= filterTime;\n default:\n return undefined;\n }\n};\n\nconst daysFromToday = (row: AnyRow, columnId: string): number | null => {\n const rowTime = toTime(row.getValue(columnId));\n if (rowTime === null) return null;\n\n return Math.floor((toDay(rowTime) - toDay(Date.now())) / 86_400_000);\n};\n\nconst isRelativeToToday = (row: AnyRow, columnId: string, value: unknown): boolean => {\n const diff = daysFromToday(row, columnId);\n if (diff === null) return false;\n\n if (Array.isArray(value)) {\n const [min, max] = value.map(Number);\n return (Number.isNaN(min) || diff >= min) && (Number.isNaN(max) || diff <= max);\n }\n\n const days = Number(value);\n return !Number.isNaN(days) && diff === days;\n};\n\nconst equals = (\n row: AnyRow,\n columnId: string,\n value: unknown,\n variant: TableFilterVariant,\n): boolean => {\n if (Array.isArray(value)) return apply(filterFn_arrHas, row, columnId, value);\n if (variant === \"date\") return compareDates(row, columnId, value, \"equals\") ?? false;\n\n return apply(filterFn_equals, row, columnId, value);\n};\n\nconst test = (\n row: AnyRow,\n columnId: string,\n operator: FilterOperator,\n value: unknown,\n variant: TableFilterVariant,\n): boolean => {\n switch (operator) {\n case \"includesString\":\n return apply(includesString, row, columnId, value);\n case \"notIncludesString\":\n return !apply(includesString, row, columnId, value);\n case \"equalsString\":\n return apply(equalsString, row, columnId, value);\n case \"notEqualsString\":\n return !apply(equalsString, row, columnId, value);\n case \"startsWith\":\n return apply(startsWith, row, columnId, value);\n case \"endsWith\":\n return apply(endsWith, row, columnId, value);\n case \"isEmpty\":\n return filterFn_empty(row, columnId, true);\n case \"isNotEmpty\":\n return filterFn_notEmpty(row, columnId, true);\n case \"equals\":\n return equals(row, columnId, value, variant);\n case \"notEquals\":\n return !equals(row, columnId, value, variant);\n case \"greaterThan\":\n case \"greaterThanOrEqualTo\":\n case \"lessThan\":\n case \"lessThanOrEqualTo\": {\n if (variant === \"date\") return compareDates(row, columnId, value, operator) ?? false;\n\n const fn = {\n greaterThan: filterFn_greaterThan,\n greaterThanOrEqualTo: filterFn_greaterThanOrEqualTo,\n lessThan: filterFn_lessThan,\n lessThanOrEqualTo: filterFn_lessThanOrEqualTo,\n }[operator];\n\n return apply(fn, row, columnId, value);\n }\n case \"inRange\":\n return apply(\n variant === \"date\" ? filterFn_inDateRange : filterFn_inNumberRange,\n row,\n columnId,\n Array.isArray(value) ? value : [value, value],\n );\n case \"isRelativeToToday\":\n return isRelativeToToday(row, columnId, value);\n }\n};\n\nexport const dynamicFilterFn: FilterFn<LayoutTableFeatures, any> = (row, columnId) => {\n const filters = (row.table.store.state.columnFilters as Array<ExtendedColumnFilter>).filter(\n (filter) => filter.id === columnId,\n );\n if (!filters.length) return true;\n\n const variant =\n (row.table.getColumn(columnId)?.columnDef.meta as LayoutColumnMeta | undefined)?.variant ??\n \"text\";\n\n const results = filters\n .filter(isFilterActive)\n .map((filter) =>\n test(row, columnId, filter.operator ?? \"includesString\", filter.value, variant),\n );\n\n if (!results.length) return true;\n\n return (filters[0].joinOperator ?? \"and\") === \"and\"\n ? results.every(Boolean)\n : results.some(Boolean);\n};\n\ndynamicFilterFn.autoRemove = () => false;\n\nexport const globalFilterFn = includesString;\n\nconst TEXT_OPERATORS: Array<FilterOperator> = [\n \"includesString\",\n \"notIncludesString\",\n \"startsWith\",\n \"endsWith\",\n \"equalsString\",\n \"notEqualsString\",\n \"isEmpty\",\n \"isNotEmpty\",\n];\n\nconst NUMBER_OPERATORS: Array<FilterOperator> = [\n \"equals\",\n \"notEquals\",\n \"lessThan\",\n \"lessThanOrEqualTo\",\n \"greaterThan\",\n \"greaterThanOrEqualTo\",\n \"inRange\",\n];\n\nconst DATE_OPERATORS: Array<FilterOperator> = [\n \"equals\",\n \"notEquals\",\n \"lessThan\",\n \"lessThanOrEqualTo\",\n \"greaterThan\",\n \"greaterThanOrEqualTo\",\n \"inRange\",\n \"isRelativeToToday\",\n \"isEmpty\",\n \"isNotEmpty\",\n];\n\nconst CHOICE_OPERATORS: Array<FilterOperator> = [\"equals\", \"notEquals\", \"isEmpty\", \"isNotEmpty\"];\n\nexport const getFilterOperators = (variant: TableFilterVariant): Array<FilterOperator> => {\n switch (variant) {\n case \"number\":\n return NUMBER_OPERATORS;\n case \"date\":\n return DATE_OPERATORS;\n case \"boolean\":\n case \"select\":\n case \"multi-select\":\n return CHOICE_OPERATORS;\n default:\n return TEXT_OPERATORS;\n }\n};\n","import { Typography } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { formatValue } from \"../formatValue\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const AggregationFooter: FC<{\n prefix?: string;\n options?: Intl.NumberFormatOptions;\n}> = ({ prefix = \"\", options }) => {\n const { column } = useHeaderContext();\n\n return (\n <Subscribe source={column.table.atoms.columnFilters}>\n {() => {\n const value = formatValue(\n column.getAggregationValue({ rows: column.table.getFilteredRowModel().rows }) as unknown,\n );\n if (!value) return null;\n\n const numeric = Number(value);\n\n return (\n <Typography variant=\"body2\" noWrap sx={{ fontWeight: 700 }}>\n {prefix}\n {Number.isFinite(numeric) ? numeric.toLocaleString(undefined, options) : value}\n </Typography>\n );\n }}\n </Subscribe>\n );\n};\n","import ArrowDownward from \"@mui/icons-material/ArrowDownward\";\nimport { IconButton } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const ExpandAllCell: FC = () => {\n const header = useHeaderContext();\n const table = header.table;\n\n return (\n <Subscribe source={table.atoms.expanded}>\n {() => {\n if (!table.getCanSomeRowsExpand()) return null;\n\n return (\n <IconButton\n size=\"small\"\n onClick={table.getToggleAllRowsExpandedHandler()}\n aria-label=\"Toggle all rows\"\n >\n <ArrowDownward\n fontSize=\"small\"\n sx={{\n transition: \"transform 150ms\",\n transform: table.getIsAllRowsExpanded() ? \"rotate(0deg)\" : \"rotate(-90deg)\",\n }}\n />\n </IconButton>\n );\n }}\n </Subscribe>\n );\n};\n","import ArrowBack from \"@mui/icons-material/ArrowBack\";\nimport ArrowDownward from \"@mui/icons-material/ArrowDownward\";\nimport ArrowForward from \"@mui/icons-material/ArrowForward\";\nimport ArrowUpward from \"@mui/icons-material/ArrowUpward\";\nimport Clear from \"@mui/icons-material/Clear\";\nimport MoreVert from \"@mui/icons-material/MoreVert\";\nimport PushPin from \"@mui/icons-material/PushPin\";\nimport VisibilityOff from \"@mui/icons-material/VisibilityOff\";\nimport Workspaces from \"@mui/icons-material/Workspaces\";\nimport {\n Box,\n Divider,\n IconButton,\n ListItemIcon,\n ListItemText,\n Menu,\n MenuItem,\n} from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHeaderContext } from \"~/components/table/context\";\nimport { hasColumnLabel, moveColumn } from \"../utils\";\n\nexport const HeaderMenu: FC = () => {\n const header = useHeaderContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const { column } = header;\n\n const close = () => setAnchorEl(null);\n const run = (action: () => void) => () => {\n action();\n close();\n };\n\n if (!hasColumnLabel(column)) return null;\n\n return (\n <Subscribe source={column.table.store} selector={(state) => state}>\n {() => {\n const canSort = column.getCanSort();\n const canPin = column.getCanPin();\n const canGroup = column.getCanGroup();\n const canHide = column.getCanHide();\n\n if (!canSort && !canPin && !canGroup && !canHide) return null;\n\n const sorted = column.getIsSorted();\n const pinned = column.getIsPinned();\n const grouped = column.getIsGrouped();\n const index = column.getIndex();\n const leafCount = column.table.getVisibleLeafColumns().length;\n\n return (\n <Box\n sx={{\n display: \"flex\",\n flexShrink: 0,\n mr: \"-5px\",\n overflow: \"hidden\",\n width: anchorEl ? \"auto\" : 0,\n \".MuiTableCell-root:hover &\": { width: \"auto\" },\n \"&:focus-within\": { width: \"auto\" },\n \"@media (hover: none)\": { width: \"auto\" },\n }}\n >\n <IconButton\n size=\"small\"\n onClick={(event) => setAnchorEl(event.currentTarget)}\n aria-label={t(\"Layout.Table.ColumnMenu\")}\n >\n <MoreVert fontSize=\"small\" />\n </IconButton>\n\n <Menu anchorEl={anchorEl} open={!!anchorEl} onClose={close}>\n {/* Sorting */}\n {canSort && sorted !== \"asc\" && (\n <MenuItem onClick={run(() => column.toggleSorting(false, true))}>\n <ListItemIcon>\n <ArrowUpward fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.SortAscending\")}</ListItemText>\n </MenuItem>\n )}\n {canSort && sorted !== \"desc\" && (\n <MenuItem onClick={run(() => column.toggleSorting(true, true))}>\n <ListItemIcon>\n <ArrowDownward fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.SortDescending\")}</ListItemText>\n </MenuItem>\n )}\n {canSort && sorted !== false && (\n <MenuItem onClick={run(() => column.clearSorting())}>\n <ListItemIcon>\n <Clear fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.ClearSort\")}</ListItemText>\n </MenuItem>\n )}\n\n {/* Pinning */}\n {canPin && <Divider />}\n {canPin &&\n ([\"start\", \"end\"] as const).map((position) => (\n <MenuItem\n key={position}\n selected={pinned === position}\n onClick={run(() => column.pin(pinned === position ? false : position))}\n >\n <ListItemIcon>\n <PushPin fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>\n {pinned === position\n ? t(\"Layout.Table.Unpin\")\n : position === \"start\"\n ? t(\"Layout.Table.PinStart\")\n : t(\"Layout.Table.PinEnd\")}\n </ListItemText>\n </MenuItem>\n ))}\n\n {/* Reordering */}\n <Divider />\n <MenuItem disabled={index <= 0} onClick={run(() => moveColumn(column, -1))}>\n <ListItemIcon>\n <ArrowBack fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.MoveLeft\")}</ListItemText>\n </MenuItem>\n <MenuItem\n disabled={index >= leafCount - 1}\n onClick={run(() => moveColumn(column, 1))}\n >\n <ListItemIcon>\n <ArrowForward fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.MoveRight\")}</ListItemText>\n </MenuItem>\n\n {/* Grouping */}\n {canGroup && <Divider />}\n {canGroup && (\n <MenuItem onClick={run(() => column.toggleGrouping())}>\n <ListItemIcon>\n <Workspaces fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>\n {grouped ? t(\"Layout.Table.Ungroup\") : t(\"Layout.Table.GroupBy\")}\n </ListItemText>\n </MenuItem>\n )}\n\n {/* Visibility */}\n {canHide && <Divider />}\n {canHide && (\n <MenuItem onClick={run(() => column.toggleVisibility(false))}>\n <ListItemIcon>\n <VisibilityOff fontSize=\"small\" />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.Table.HideColumn\")}</ListItemText>\n </MenuItem>\n )}\n </Menu>\n </Box>\n );\n }}\n </Subscribe>\n );\n};\n","import type { SxProps, Theme } from \"@mui/material\";\nimport { Box } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nconst BAR_HEIGHT = 24;\nconst TARGET_SIZE = 10;\n\nconst bar = (accent: boolean) =>\n ({\n content: '\"\"',\n position: \"absolute\",\n insetInlineEnd: 0,\n top: `calc(50% - ${BAR_HEIGHT / 2}px)`,\n width: accent ? \"3px\" : \"1px\",\n height: BAR_HEIGHT,\n borderRadius: accent ? \"1.5px\" : \"0.5px\",\n bgcolor: accent ? \"primary.dark\" : \"divider\",\n transition: (theme: Theme) => theme.transitions.create([\"width\", \"background-color\"]),\n }) as const;\n\n// The header cell clips its overflow, so the target stays inside the cell.\nconst base: SxProps<Theme> = {\n position: \"absolute\",\n insetBlock: 0,\n insetInlineEnd: 0,\n width: TARGET_SIZE,\n};\n\nexport const HeaderResizeHandle: FC = () => {\n const header = useHeaderContext();\n const { column } = header;\n\n if (!column.getCanResize()) return <Box sx={{ ...base, \"&::after\": bar(false) }} />;\n\n const handler = header.getResizeHandler();\n\n return (\n <Subscribe source={column.table.atoms.columnResizing}>\n {() => (\n <Box\n role=\"separator\"\n aria-orientation=\"vertical\"\n onMouseDown={handler}\n onTouchStart={handler}\n onDoubleClick={() => column.resetSize()}\n onClick={(event) => event.stopPropagation()}\n sx={{\n ...base,\n cursor: \"col-resize\",\n touchAction: \"none\",\n userSelect: \"none\",\n \"&::after\": bar(column.getIsResizing()),\n \"&:hover::after\": bar(true),\n }}\n />\n )}\n </Subscribe>\n );\n};\n","import { Box, TableSortLabel } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, ReactNode } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const HeaderSortLabel: FC<{ children: ReactNode }> = ({ children }) => {\n const { column } = useHeaderContext();\n\n if (!column.getCanSort()) return children;\n\n return (\n <Subscribe source={column.table.atoms.sorting}>\n {(sorting) => {\n const direction = column.getIsSorted();\n const sortIndex = sorting.length > 1 ? column.getSortIndex() : -1;\n\n return (\n <TableSortLabel\n active={direction !== false}\n direction={direction === false ? \"asc\" : direction}\n onClick={column.getToggleSortingHandler()}\n >\n {children}\n {sortIndex > -1 && (\n <Box component=\"span\" sx={{ ml: 0.5, fontSize: 11, opacity: 0.7 }}>\n {sortIndex + 1}\n </Box>\n )}\n </TableSortLabel>\n );\n }}\n </Subscribe>\n );\n};\n","import { Checkbox } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useHeaderContext } from \"~/components/table/context\";\n\nexport const SelectAllCell: FC<{ scope?: \"page\" | \"all\" }> = ({ scope = \"page\" }) => {\n const header = useHeaderContext();\n const table = header.table;\n\n return (\n <Subscribe source={table.atoms.rowSelection}>\n {() => {\n const checked =\n scope === \"page\" ? table.getIsAllPageRowsSelected() : table.getIsAllRowsSelected();\n const indeterminate =\n scope === \"page\" ? table.getIsSomePageRowsSelected() : table.getIsSomeRowsSelected();\n\n return (\n <Checkbox\n size=\"small\"\n checked={checked}\n indeterminate={!checked && indeterminate}\n onChange={\n scope === \"page\"\n ? table.getToggleAllPageRowsSelectedHandler()\n : table.getToggleAllRowsSelectedHandler()\n }\n slotProps={{ input: { \"aria-label\": \"Select all rows\" } }}\n />\n );\n }}\n </Subscribe>\n );\n};\n","import ViewColumn from \"@mui/icons-material/ViewColumn\";\nimport { Box, Checkbox, FormControlLabel, IconButton, Popover, Tooltip } from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { columnLabel, hasColumnLabel, shortcutLabel } from \"../utils\";\n\nexport const ColumnsPanel: FC = () => {\n const table = useTableContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const columns = table\n .getAllLeafColumns()\n .filter((column) => hasColumnLabel(column) && column.getCanHide());\n\n useHotkey(\"Alt+C\", () => setAnchorEl((current) => (current ? null : buttonRef.current)), {\n enabled: columns.length > 0,\n });\n\n if (!columns.length) return null;\n\n return (\n <>\n <Tooltip title={shortcutLabel(t(\"Layout.Table.Columns\"), \"Alt+C\")}>\n <IconButton\n ref={buttonRef}\n size=\"small\"\n onClick={(event) => setAnchorEl(event.currentTarget)}\n >\n <ViewColumn fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <Popover\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n slotProps={{ paper: { sx: { maxWidth: \"calc(100vw - 16px)\" } } }}\n >\n <Subscribe source={table.atoms.columnVisibility}>\n {() => (\n <>\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n px: 1.5,\n py: 1,\n maxHeight: 300,\n minWidth: 240,\n overflow: \"auto\",\n }}\n >\n {columns.map((column) => (\n <FormControlLabel\n key={column.id}\n label={columnLabel(column)}\n slotProps={{ typography: { variant: \"body2\", noWrap: true } }}\n control={\n <Checkbox\n size=\"small\"\n checked={column.getIsVisible()}\n onChange={column.getToggleVisibilityHandler()}\n />\n }\n />\n ))}\n </Box>\n\n <Box\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n p: 1.5,\n borderTop: 1,\n borderColor: \"divider\",\n }}\n >\n <FormControlLabel\n label={t(\"Layout.Table.ShowHideAll\")}\n slotProps={{ typography: { variant: \"body2\", noWrap: true } }}\n control={\n <Checkbox\n size=\"small\"\n checked={table.getIsAllColumnsVisible()}\n indeterminate={\n table.getIsSomeColumnsVisible() && !table.getIsAllColumnsVisible()\n }\n onChange={table.getToggleAllColumnsVisibilityHandler()}\n />\n }\n />\n </Box>\n </>\n )}\n </Subscribe>\n </Popover>\n </>\n );\n};\n","import { Autocomplete, MenuItem, Stack, TextField, Typography } from \"@mui/material\";\nimport type { Column, RowData } from \"@tanstack/react-table\";\nimport { useTranslation } from \"react-i18next\";\nimport type { LayoutTableFeatures } from \"~/components/table/context\";\nimport type { ExtendedColumnFilter, LayoutColumnMeta, TableFilterOption } from \"./types\";\nimport { formatValue } from \"./formatValue\";\n\ntype FilterColumn<TData extends RowData> = Column<LayoutTableFeatures, TData, unknown>;\n\ntype ColumnFilterFieldProps<TData extends RowData> = {\n column: FilterColumn<TData>;\n filter: ExtendedColumnFilter;\n onChange: (value: unknown) => void;\n};\n\nconst filterMeta = <TData extends RowData>(column: FilterColumn<TData>): LayoutColumnMeta =>\n (column.columnDef.meta as LayoutColumnMeta | undefined) ?? {};\n\nconst resolveOptions = <TData extends RowData>(\n column: FilterColumn<TData>,\n): Array<TableFilterOption> => {\n const declared = filterMeta(column).options;\n if (declared) return declared;\n\n return Array.from(column.getFacetedUniqueValues().keys())\n .map((value) => ({ label: formatValue(value), value: formatValue(value) }))\n .filter((option) => option.value !== \"\")\n .sort((a, b) => a.label.localeCompare(b.label));\n};\n\nconst toDateInputValue = (value: unknown): string => {\n if (!(value instanceof Date || typeof value === \"string\" || typeof value === \"number\")) return \"\";\n\n const date = value instanceof Date ? value : new Date(value);\n if (Number.isNaN(date.getTime())) return \"\";\n\n return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, \"0\")}-${String(date.getDate()).padStart(2, \"0\")}`;\n};\n\nconst fromDateInputValue = (raw: string): string | undefined =>\n raw ? new Date(`${raw}T00:00:00`).toISOString() : undefined;\n\nconst toNumber = (raw: string): number | \"\" => (raw === \"\" ? \"\" : Number(raw));\n\nconst pair = (value: unknown): [unknown, unknown] =>\n Array.isArray(value) ? [value[0], value[1]] : [\"\", \"\"];\n\nexport function ColumnFilterField<TData extends RowData>({\n column,\n filter,\n onChange,\n}: ColumnFilterFieldProps<TData>) {\n const { t } = useTranslation();\n const variant = filterMeta(column).variant ?? \"text\";\n const operator = filter.operator ?? \"includesString\";\n const shared = { size: \"small\" as const, fullWidth: true, label: t(\"Layout.Table.Value\") };\n\n if (operator === \"isEmpty\" || operator === \"isNotEmpty\") {\n return (\n <Typography variant=\"body2\" color=\"text.secondary\">\n {t(\"Layout.Table.NoValueRequired\")}\n </Typography>\n );\n }\n\n if (operator === \"inRange\") {\n const [from, to] = pair(filter.value);\n const isDate = variant === \"date\";\n\n return (\n <Stack direction=\"row\" spacing={1}>\n <TextField\n {...shared}\n type={isDate ? \"date\" : \"number\"}\n label={t(\"Layout.Table.From\")}\n value={isDate ? toDateInputValue(from) : ((from as number | \"\" | undefined) ?? \"\")}\n onChange={(event) =>\n onChange([\n isDate ? fromDateInputValue(event.target.value) : toNumber(event.target.value),\n to,\n ])\n }\n slotProps={{ inputLabel: { shrink: true } }}\n />\n <TextField\n {...shared}\n type={isDate ? \"date\" : \"number\"}\n label={t(\"Layout.Table.To\")}\n value={isDate ? toDateInputValue(to) : ((to as number | \"\" | undefined) ?? \"\")}\n onChange={(event) =>\n onChange([\n from,\n isDate ? fromDateInputValue(event.target.value) : toNumber(event.target.value),\n ])\n }\n slotProps={{ inputLabel: { shrink: true } }}\n />\n </Stack>\n );\n }\n\n if (operator === \"isRelativeToToday\") {\n return (\n <TextField\n {...shared}\n type=\"number\"\n label={t(\"Layout.Table.DaysFromToday\")}\n value={(filter.value as number | \"\" | undefined) ?? \"\"}\n onChange={(event) => onChange(toNumber(event.target.value))}\n />\n );\n }\n\n if (variant === \"select\" || variant === \"multi-select\") {\n const options = resolveOptions(column);\n const multiple = variant === \"multi-select\";\n const selected = Array.isArray(filter.value) ? (filter.value as Array<string>) : [];\n\n return (\n <Autocomplete\n size=\"small\"\n fullWidth\n multiple={multiple}\n options={options}\n disableCloseOnSelect={multiple}\n value={\n multiple\n ? options.filter((option) => selected.includes(option.value))\n : (options.find((option) => option.value === filter.value) ?? null)\n }\n isOptionEqualToValue={(option, selectedOption) => option.value === selectedOption.value}\n getOptionLabel={(option) => option.label}\n onChange={(_, next) =>\n onChange(\n Array.isArray(next) ? next.map((option) => option.value) : (next?.value ?? undefined),\n )\n }\n renderInput={(params) => (\n <TextField {...params} size=\"small\" label={t(\"Layout.Table.Value\")} />\n )}\n />\n );\n }\n\n if (variant === \"boolean\") {\n return (\n <TextField\n {...shared}\n select\n value={typeof filter.value === \"boolean\" ? String(filter.value) : \"\"}\n onChange={(event) =>\n onChange(event.target.value === \"\" ? undefined : event.target.value === \"true\")\n }\n >\n <MenuItem value=\"\">—</MenuItem>\n <MenuItem value=\"true\">✓</MenuItem>\n <MenuItem value=\"false\">✗</MenuItem>\n </TextField>\n );\n }\n\n if (variant === \"date\") {\n return (\n <TextField\n {...shared}\n type=\"date\"\n value={toDateInputValue(filter.value)}\n onChange={(event) => onChange(fromDateInputValue(event.target.value) ?? \"\")}\n slotProps={{ inputLabel: { shrink: true } }}\n />\n );\n }\n\n return (\n <TextField\n {...shared}\n type={variant === \"number\" ? \"number\" : \"text\"}\n value={(filter.value as string | number | undefined) ?? \"\"}\n onChange={(event) =>\n onChange(variant === \"number\" ? toNumber(event.target.value) : event.target.value)\n }\n />\n );\n}\n","import Add from \"@mui/icons-material/Add\";\nimport Close from \"@mui/icons-material/Close\";\nimport DeleteForever from \"@mui/icons-material/DeleteForever\";\nimport FilterList from \"@mui/icons-material/FilterList\";\nimport {\n Autocomplete,\n Badge,\n Box,\n Button,\n FormControl,\n IconButton,\n InputLabel,\n MenuItem,\n Popover,\n Select,\n TextField,\n Tooltip,\n} from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC } from \"react\";\nimport { useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { ColumnFilterField } from \"../ColumnFilterField\";\nimport { getFilterOperators, isFilterActive } from \"../filterFns\";\nimport type {\n ExtendedColumnFilter,\n FilterOperator,\n JoinOperator,\n LayoutColumnMeta,\n} from \"../types\";\nimport { columnLabel, shortcutLabel } from \"../utils\";\n\nconst DATE_OPERATOR_LABELS = {\n lessThan: \"Layout.Table.Operators.Date.lessThan\",\n lessThanOrEqualTo: \"Layout.Table.Operators.Date.lessThanOrEqualTo\",\n greaterThan: \"Layout.Table.Operators.Date.greaterThan\",\n greaterThanOrEqualTo: \"Layout.Table.Operators.Date.greaterThanOrEqualTo\",\n} as const;\n\ntype DateOperator = keyof typeof DATE_OPERATOR_LABELS;\n\n/** Slot widths taken from the MUI X `GridFilterForm` inputs. */\nconst LOGIC_WIDTH = 75;\nconst FIELD_WIDTH = 150;\nconst VALUE_WIDTH = 190;\n\nexport const FiltersMenu: FC = () => {\n const table = useTableContext();\n const { t } = useTranslation();\n const [anchorEl, setAnchorEl] = useState<HTMLElement | null>(null);\n const placeholder = useRef<ExtendedColumnFilter | null>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const filterableColumns = table.getAllLeafColumns().filter((column) => column.getCanFilter());\n\n const close = () => {\n setAnchorEl(null);\n placeholder.current = null;\n };\n\n useHotkey(\"Control+F\", () => (anchorEl ? close() : setAnchorEl(buttonRef.current)), {\n enabled: filterableColumns.length > 0,\n });\n\n if (!filterableColumns.length) return null;\n\n const setFilters = (filters: Array<ExtendedColumnFilter>) => table.setColumnFilters(filters);\n\n const newFilter = (\n column: (typeof filterableColumns)[number],\n joinOperator: JoinOperator = \"and\",\n ): ExtendedColumnFilter => ({\n id: column.id,\n filterId: crypto.randomUUID(),\n value: \"\",\n operator: getFilterOperators(\n (column.columnDef.meta as LayoutColumnMeta | undefined)?.variant ?? \"text\",\n )[0],\n joinOperator,\n });\n\n return (\n <Subscribe\n source={table.atoms.columnFilters}\n selector={(filters) => filters as Array<ExtendedColumnFilter>}\n >\n {(columnFilters) => {\n if (!columnFilters.length) {\n placeholder.current ??= newFilter(filterableColumns[0]);\n }\n // Editing the placeholder row is what commits it to the model.\n const rows = columnFilters.length\n ? columnFilters\n : placeholder.current\n ? [placeholder.current]\n : [];\n const activeCount = columnFilters.filter(isFilterActive).length;\n\n const update = (filterId: string, patch: Partial<ExtendedColumnFilter>) =>\n setFilters(\n rows.map((filter) =>\n filter.filterId === filterId\n ? { ...filter, ...patch, ...(\"value\" in patch && { value: patch.value ?? \"\" }) }\n : filter,\n ),\n );\n\n const remove = (filterId: string) => {\n const next = rows.filter((filter) => filter.filterId !== filterId);\n placeholder.current = null;\n setFilters(next);\n if (!next.length) close();\n };\n\n const add = () =>\n setFilters([...rows, newFilter(filterableColumns[0], rows[0]?.joinOperator ?? \"and\")]);\n\n return (\n <>\n <Tooltip title={shortcutLabel(t(\"Layout.Table.Filters\"), \"Control+F\")}>\n <IconButton\n ref={buttonRef}\n size=\"small\"\n color={activeCount ? \"primary\" : \"default\"}\n onClick={(event) => setAnchorEl(event.currentTarget)}\n >\n <Badge badgeContent={activeCount} color=\"primary\" variant=\"dot\">\n <FilterList fontSize=\"small\" />\n </Badge>\n </IconButton>\n </Tooltip>\n\n <Popover\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={close}\n anchorOrigin={{ vertical: \"bottom\", horizontal: \"right\" }}\n transformOrigin={{ vertical: \"top\", horizontal: \"right\" }}\n slotProps={{ paper: { sx: { maxWidth: \"calc(100vw - 16px)\" } } }}\n >\n {/* Panel content: MUI X `GridPanelContent` metrics. */}\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: 2.5,\n p: \"20px 12px 16px 8px\",\n maxHeight: 400,\n overflow: \"auto\",\n }}\n >\n {rows.map((filter, index) => {\n const column = table.getColumn(filter.id);\n if (!column || !filter.filterId) return null;\n\n const variant =\n (column.columnDef.meta as LayoutColumnMeta | undefined)?.variant ?? \"text\";\n const operators = getFilterOperators(variant);\n\n return (\n <Box\n key={filter.filterId}\n sx={{ display: \"flex\", alignItems: \"center\", gap: 1.5 }}\n >\n <IconButton\n size=\"small\"\n aria-label={t(\"Layout.Table.RemoveFilter\")}\n sx={{ flexShrink: 0 }}\n onClick={() => remove(filter.filterId!)}\n >\n <Close fontSize=\"small\" />\n </IconButton>\n\n {/* Rendered on every row so the columns stay aligned; only the\n second row may change the operator, matching MUI X. */}\n <FormControl\n size=\"small\"\n sx={{\n width: LOGIC_WIDTH,\n flexShrink: 0,\n visibility: index === 0 ? \"hidden\" : \"visible\",\n }}\n >\n <Select\n disabled={index > 1}\n value={filter.joinOperator ?? \"and\"}\n inputProps={{ \"aria-label\": t(\"Layout.Table.Operator\") }}\n onChange={(event) =>\n setFilters(\n rows.map((item) => ({\n ...item,\n joinOperator: event.target.value as JoinOperator,\n })),\n )\n }\n >\n <MenuItem value=\"and\">{t(\"Layout.Table.And\")}</MenuItem>\n <MenuItem value=\"or\">{t(\"Layout.Table.Or\")}</MenuItem>\n </Select>\n </FormControl>\n\n <Autocomplete\n size=\"small\"\n sx={{ width: FIELD_WIDTH, flexShrink: 0 }}\n disableClearable\n options={filterableColumns}\n value={column}\n isOptionEqualToValue={(option, selected) => option.id === selected.id}\n getOptionLabel={(option) => columnLabel(option)}\n onChange={(_, next) =>\n update(filter.filterId!, {\n id: next.id,\n operator: getFilterOperators(\n (next.columnDef.meta as LayoutColumnMeta | undefined)?.variant ??\n \"text\",\n )[0],\n value: \"\",\n })\n }\n renderInput={(params) => (\n <TextField {...params} size=\"small\" label={t(\"Layout.Table.Field\")} />\n )}\n />\n\n <FormControl size=\"small\" sx={{ width: FIELD_WIDTH, flexShrink: 0 }}>\n <InputLabel>{t(\"Layout.Table.Operator\")}</InputLabel>\n <Select\n label={t(\"Layout.Table.Operator\")}\n value={filter.operator ?? operators[0]}\n onChange={(event) =>\n update(filter.filterId!, {\n operator: event.target.value as FilterOperator,\n value: \"\",\n })\n }\n >\n {operators.map((operator) => (\n <MenuItem key={operator} value={operator}>\n {variant === \"date\" && operator in DATE_OPERATOR_LABELS\n ? t(DATE_OPERATOR_LABELS[operator as DateOperator])\n : t(`Layout.Table.Operators.${operator}`)}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n\n <Box sx={{ width: VALUE_WIDTH, flexGrow: 1 }}>\n <ColumnFilterField\n column={column}\n filter={filter}\n onChange={(value) => update(filter.filterId!, { value })}\n />\n </Box>\n </Box>\n );\n })}\n </Box>\n\n {/* Panel footer: MUI X `GridPanelFooter` metrics. */}\n <Box\n sx={{\n display: \"flex\",\n justifyContent: \"space-between\",\n gap: 1,\n p: 1,\n borderTop: 1,\n borderColor: \"divider\",\n }}\n >\n <Button size=\"small\" startIcon={<Add />} onClick={add}>\n {t(\"Layout.Table.AddFilter\")}\n </Button>\n {columnFilters.length > 0 && (\n <Button\n size=\"small\"\n color=\"inherit\"\n startIcon={<DeleteForever />}\n onClick={() => {\n placeholder.current = null;\n table.resetColumnFilters(true);\n }}\n >\n {t(\"Layout.Table.ClearFilters\")}\n </Button>\n )}\n </Box>\n </Popover>\n </>\n );\n }}\n </Subscribe>\n );\n};\n","import Close from \"@mui/icons-material/Close\";\nimport Search from \"@mui/icons-material/Search\";\nimport { Box, IconButton, InputAdornment, TextField, Tooltip, useTheme } from \"@mui/material\";\nimport { useHotkey } from \"@tanstack/react-hotkeys\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { shortcutLabel } from \"../utils\";\n\nexport const GlobalFilter: FC<{ defaultExpanded?: boolean; debounce?: number }> = ({\n defaultExpanded,\n debounce = 300,\n}) => {\n const table = useTableContext();\n const { t } = useTranslation();\n const theme = useTheme();\n const inputRef = useRef<HTMLInputElement>(null);\n const [value, setValue] = useState((table.state.globalFilter as string | undefined) ?? \"\");\n const [expanded, setExpanded] = useState(!!defaultExpanded);\n\n useEffect(() => {\n const id = setTimeout(() => table.setGlobalFilter(value), debounce);\n return () => clearTimeout(id);\n }, [value, debounce, table]);\n\n const collapse = () => {\n setValue(\"\");\n setExpanded(false);\n };\n\n const expand = () => {\n setExpanded(true);\n inputRef.current?.focus();\n };\n\n useHotkey(\"Control+Q\", expand);\n\n return (\n <Box sx={{ display: \"grid\", alignItems: \"center\" }}>\n <Tooltip title={shortcutLabel(t(\"Layout.Table.Search\"), \"Control+Q\")}>\n <IconButton\n size=\"small\"\n aria-label={t(\"Layout.Table.Search\")}\n aria-disabled={expanded}\n onClick={expand}\n sx={{\n gridArea: \"1 / 1\",\n width: \"min-content\",\n height: \"min-content\",\n zIndex: 1,\n opacity: expanded ? 0 : 1,\n pointerEvents: expanded ? \"none\" : \"auto\",\n transition: theme.transitions.create([\"opacity\"]),\n }}\n >\n <Search fontSize=\"small\" />\n </IconButton>\n </Tooltip>\n\n <TextField\n inputRef={inputRef}\n size=\"small\"\n value={value}\n placeholder={t(\"Layout.Table.Search\")}\n onChange={(event) => setValue(event.target.value)}\n onKeyDown={(event) => event.key === \"Escape\" && collapse()}\n onBlur={() => !value && !defaultExpanded && setExpanded(false)}\n sx={{\n gridArea: \"1 / 1\",\n overflowX: \"clip\",\n width: expanded ? 260 : 40,\n opacity: expanded ? 1 : 0,\n pointerEvents: expanded ? \"auto\" : \"none\",\n transition: theme.transitions.create([\"width\", \"opacity\"]),\n }}\n slotProps={{\n input: {\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search fontSize=\"small\" />\n </InputAdornment>\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <IconButton\n edge=\"end\"\n size=\"small\"\n aria-label={t(\"Layout.Table.ClearSearch\")}\n onClick={collapse}\n sx={{ mr: -0.75 }}\n >\n <Close fontSize=\"small\" />\n </IconButton>\n </InputAdornment>\n ),\n },\n }}\n />\n </Box>\n );\n};\n","import { TablePagination, type TablePaginationProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\n\nexport type PaginationProps = Omit<\n TablePaginationProps,\n \"count\" | \"page\" | \"rowsPerPage\" | \"onPageChange\" | \"onRowsPerPageChange\" | \"rowsPerPageOptions\"\n> & { pageSizeOptions?: Array<number> };\n\nconst ALL = -1;\n\nexport const Pagination: FC<PaginationProps> = ({\n pageSizeOptions = [10, 25, 50, 100],\n ...props\n}) => {\n const table = useTableContext();\n const { t } = useTranslation();\n const { pageIndex, pageSize } = table.state.pagination;\n\n const sizes =\n Number.isFinite(pageSize) && !pageSizeOptions.includes(pageSize)\n ? [...pageSizeOptions, pageSize].sort((a, b) => a - b)\n : pageSizeOptions;\n\n return (\n <TablePagination\n component=\"div\"\n showFirstButton\n showLastButton\n {...props}\n sx={[\n { flexShrink: 0, minHeight: 52, borderTop: 1, borderColor: \"divider\" },\n ...(Array.isArray(props.sx) ? props.sx : [props.sx]),\n ]}\n rowsPerPageOptions={[...sizes, { label: t(\"Layout.Table.All\"), value: ALL }]}\n count={table.getRowCount()}\n page={pageIndex}\n rowsPerPage={Number.isFinite(pageSize) ? pageSize : ALL}\n onPageChange={(_, page) => table.setPageIndex(page)}\n onRowsPerPageChange={(event) => {\n const next = Number(event.target.value);\n table.setPageSize(next === ALL ? Infinity : next);\n table.setPageIndex(0);\n }}\n />\n );\n};\n","import { Skeleton as MuiSkeleton, TableCell, TableRow } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { hasColumnLabel } from \"../utils\";\n\nexport const Skeleton: FC<{ rowHeight: number }> = ({ rowHeight }) => {\n const table = useTableContext();\n const firstRow = useRef<HTMLTableRowElement>(null);\n const [rowCount, setRowCount] = useState(() => Math.min(table.state.pagination.pageSize, 20));\n\n useEffect(() => {\n const container = firstRow.current?.closest(\".MuiTableContainer-root\");\n if (!container) return;\n\n const measure = () => {\n const spent = [\"thead\", \"tfoot\"].reduce(\n (total, selector) =>\n total + (container.querySelector(selector)?.getBoundingClientRect().height ?? 0),\n 0,\n );\n setRowCount(Math.max(1, Math.floor((container.clientHeight - spent) / rowHeight)));\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n observer.observe(container);\n return () => observer.disconnect();\n }, [rowHeight]);\n\n return (\n <>\n {Array.from({ length: rowCount }, (_, index) => (\n <TableRow key={index} ref={index === 0 ? firstRow : undefined} sx={{ height: rowHeight }}>\n {table.getVisibleLeafColumns().map((column) =>\n hasColumnLabel(column) ? (\n <TableCell key={column.id} sx={{ py: 0, px: \"10px\" }}>\n <MuiSkeleton variant=\"text\" />\n </TableCell>\n ) : (\n <TableCell key={column.id} align=\"center\" sx={{ px: 0.5, py: 0 }}>\n <MuiSkeleton variant=\"circular\" width={22} height={22} sx={{ mx: \"auto\" }} />\n </TableCell>\n ),\n )}\n <TableCell aria-hidden sx={{ p: 0 }} />\n </TableRow>\n ))}\n </>\n );\n};\n","import { Box, Divider, Typography } from \"@mui/material\";\nimport { Subscribe } from \"@tanstack/react-table\";\nimport type { FC, ReactNode } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useTableContext } from \"~/components/table/context\";\nimport { ColumnsPanel } from \"./ColumnsPanel\";\nimport { FiltersMenu } from \"./FiltersMenu\";\nimport { GlobalFilter } from \"./GlobalFilter\";\n\nexport type TableToolbarProps = {\n title?: ReactNode;\n actions?: ReactNode;\n disableColumnFilter?: boolean;\n disableColumnSelector?: boolean;\n disableSearch?: boolean;\n};\n\n/** Vertical rule with the MUI X toolbar proportions: half height, 4px gutters. */\nconst ToolbarDivider: FC = () => (\n <Divider orientation=\"vertical\" sx={{ height: \"50%\", alignSelf: \"center\", mx: 0.5 }} />\n);\n\nexport const Toolbar: FC<TableToolbarProps> = ({\n title,\n actions,\n disableColumnFilter,\n disableColumnSelector,\n disableSearch,\n}) => {\n const table = useTableContext();\n const { t } = useTranslation();\n\n return (\n <Box\n role=\"toolbar\"\n aria-orientation=\"horizontal\"\n sx={{\n flexShrink: 0,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"end\",\n minHeight: 52,\n gap: 0.25,\n p: 0.75,\n boxSizing: \"border-box\",\n borderBottom: 1,\n borderColor: \"divider\",\n }}\n >\n {/* Label slot, which doubles as the flexible spacer pushing controls to the end. */}\n <Box sx={{ flex: 1, minWidth: 0, display: \"flex\", alignItems: \"center\", gap: 1, mx: 0.5 }}>\n {title && (\n <Typography variant=\"body1\" noWrap sx={{ fontWeight: \"medium\" }}>\n {title}\n </Typography>\n )}\n\n <Subscribe source={table.atoms.rowSelection}>\n {() => {\n const count = table.getSelectedRowIds().length;\n if (!count) return null;\n\n return (\n <Typography variant=\"body2\" noWrap color=\"primary\">\n {t(\"Layout.Table.SelectedCount\", { count })}\n </Typography>\n );\n }}\n </Subscribe>\n </Box>\n\n {actions}\n {actions && <ToolbarDivider />}\n\n {!disableColumnSelector && <ColumnsPanel />}\n {!disableColumnFilter && <FiltersMenu />}\n\n {!disableSearch && (\n <>\n <ToolbarDivider />\n <GlobalFilter />\n </>\n )}\n </Box>\n );\n};\n","import { createTableHook } from \"@tanstack/react-table\";\nimport { ActionsCell } from \"~/components/table/cells/features/ActionsCell\";\nimport { ExpandCell } from \"~/components/table/cells/features/ExpandCell\";\nimport { GroupCell } from \"~/components/table/cells/features/GroupCell\";\nimport { PinRowCell } from \"~/components/table/cells/features/PinRowCell\";\nimport { SelectCell } from \"~/components/table/cells/features/SelectCell\";\nimport { AggregatedCell } from \"~/components/table/cells/formatters/AggregatedCell\";\nimport { BooleanCell } from \"~/components/table/cells/formatters/BooleanCell\";\nimport { DateCell } from \"~/components/table/cells/formatters/DateCell\";\nimport { DateTimeCell } from \"~/components/table/cells/formatters/DateTimeCell\";\nimport { NumberCell } from \"~/components/table/cells/formatters/NumberCell\";\nimport { ValueCell } from \"~/components/table/cells/formatters/ValueCell\";\nimport { dynamicFilterFn, globalFilterFn } from \"~/components/table/filterFns\";\nimport { AggregationFooter } from \"~/components/table/headers/AggregationFooter\";\nimport { ExpandAllCell } from \"~/components/table/headers/ExpandAllCell\";\nimport { HeaderMenu } from \"~/components/table/headers/HeaderMenu\";\nimport { HeaderResizeHandle } from \"~/components/table/headers/HeaderResizeHandle\";\nimport { HeaderSortLabel } from \"~/components/table/headers/HeaderSortLabel\";\nimport { SelectAllCell } from \"~/components/table/headers/SelectAllCell\";\nimport { ColumnsPanel } from \"~/components/table/table/ColumnsPanel\";\nimport { FiltersMenu } from \"~/components/table/table/FiltersMenu\";\nimport { GlobalFilter } from \"~/components/table/table/GlobalFilter\";\nimport { Pagination } from \"~/components/table/table/Pagination\";\nimport { Skeleton } from \"~/components/table/table/Skeleton\";\nimport { Toolbar } from \"~/components/table/table/Toolbar\";\nimport {\n cellContext,\n headerContext,\n layoutTableFeatures,\n tableContext,\n} from \"~/components/table/context\";\n\n/* The contexts live in `~/components/table/context` so the cell, header and\n table components can read them without importing this module back. */\nexport {\n cellContext,\n headerContext,\n layoutTableFeatures,\n tableContext,\n useCellContext,\n useHeaderContext,\n useTableContext,\n} from \"~/components/table/context\";\nexport type { LayoutTableFeatures } from \"~/components/table/context\";\n\nexport const {\n appFeatures,\n createAppColumnHelper: createLayoutColumnHelper,\n useAppTable: useLayoutTable,\n} = createTableHook({\n features: layoutTableFeatures,\n tableContext,\n cellContext,\n headerContext,\n getRowId: (row) => row.id,\n defaultColumn: {\n filterFn: dynamicFilterFn,\n aggregatedCell: () => <AggregatedCell />,\n },\n globalFilterFn,\n columnResizeMode: \"onChange\",\n isMultiSortEvent: (e) => {\n const { ctrlKey, metaKey, shiftKey } = e as MouseEvent;\n return ctrlKey || metaKey || shiftKey;\n },\n tableComponents: {\n ColumnsPanel,\n FiltersMenu,\n GlobalFilter,\n Pagination,\n Skeleton,\n Toolbar,\n },\n cellComponents: {\n ActionsCell,\n AggregatedCell,\n BooleanCell,\n DateCell,\n DateTimeCell,\n ExpandCell,\n GroupCell,\n NumberCell,\n PinRowCell,\n SelectCell,\n ValueCell,\n },\n headerComponents: {\n AggregationFooter,\n ExpandAllCell,\n HeaderMenu,\n HeaderResizeHandle,\n HeaderSortLabel,\n SelectAllCell,\n },\n});\n\nexport type { RowAction } from \"~/components/table/cells/features/ActionsCell\";\nexport { AggregatedCell } from \"~/components/table/cells/formatters/AggregatedCell\";\nexport { LayoutTable } from \"~/components/table/LayoutTable\";\nexport type { LayoutTableProps } from \"~/components/table/LayoutTable\";\nexport type {\n FilterOperator,\n LayoutColumnMeta,\n TableFilterOption,\n TableFilterVariant,\n} from \"~/components/table/types\";\n"],"mappings":"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"}