{"version":3,"file":"StaticTable.cjs","names":["_materialReactTable","require","_react","_i18n","_jsxRuntime","StaticTable","columns","data","getRowId","hasError","initialState","onGlobalFilterChange","state","ToolbarButtons","t","useTranslation","rowVirtualizerInstanceRef","useRef","columnFilters","setColumnFilters","useState","globalFilter","setGlobalFilter","useEffect","undefined","modifiedState","useMemo","renderTopToolbarCustomActions","useCallback","table","jsx","Fragment","children","current","scrollToIndex","error","console","useMaterialReactTable","enableBottomToolbar","enablePagination","enableRowVirtualization","enableSorting","muiToolbarAlertBannerProps","color","onColumnFiltersChange","rowVirtualizerOptions","overscan","MaterialReactTable","MemoizedStaticTable","exports","memo","displayName"],"sources":["../../../src/labs/StaticTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2022-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport {\n  MaterialReactTable,\n  type MRT_ColumnFiltersState,\n  type MRT_TableInstance,\n  type MRT_Virtualizer,\n  useMaterialReactTable,\n} from \"material-react-table\";\nimport {\n  FunctionComponent,\n  memo,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from \"react\";\n\nimport type {\n  DefaultMaterialReactTableData,\n  MaterialReactTableProps,\n} from \"./materialReactTableTypes.js\";\n\nimport { useTranslation } from \"../i18n.generated/i18n.js\";\n\nexport type StaticTableProps<TData extends DefaultMaterialReactTableData> = {\n  columns: MaterialReactTableProps<TData>[\"columns\"];\n  data: MaterialReactTableProps<TData>[\"data\"];\n  getRowId?: MaterialReactTableProps<TData>[\"getRowId\"];\n  hasError?: boolean;\n  initialState?: MaterialReactTableProps<TData>[\"initialState\"];\n  onGlobalFilterChange?: MaterialReactTableProps<TData>[\"onGlobalFilterChange\"];\n  state?: MaterialReactTableProps<TData>[\"state\"];\n  ToolbarButtons?: FunctionComponent<{ table: MRT_TableInstance<TData> }>;\n};\n\nconst StaticTable = <TData extends DefaultMaterialReactTableData>({\n  columns = [],\n  data = [],\n  getRowId,\n  hasError,\n  initialState,\n  onGlobalFilterChange,\n  state,\n  ToolbarButtons,\n}: StaticTableProps<TData>) => {\n  const { t } = useTranslation();\n\n  const rowVirtualizerInstanceRef =\n    useRef<MRT_Virtualizer<HTMLDivElement, HTMLTableRowElement>>(null);\n\n  const [columnFilters, setColumnFilters] = useState<MRT_ColumnFiltersState>(\n    [],\n  );\n\n  const [globalFilter, setGlobalFilter] = useState<string>();\n\n  useEffect(() => {\n    if (globalFilter !== undefined) {\n      onGlobalFilterChange?.(globalFilter);\n    }\n  }, [globalFilter, onGlobalFilterChange]);\n\n  const modifiedState = useMemo(\n    () => ({\n      globalFilter,\n      columnFilters,\n      ...state,\n    }),\n    [globalFilter, columnFilters, state],\n  );\n\n  const renderTopToolbarCustomActions = useCallback<\n    Exclude<\n      MaterialReactTableProps<TData>[\"renderTopToolbarCustomActions\"],\n      undefined\n    >\n  >(\n    ({ table }) => <>{ToolbarButtons && <ToolbarButtons table={table} />}</>,\n    [ToolbarButtons],\n  );\n\n  useEffect(() => {\n    try {\n      // Scroll to top of table when sorting or filters change.\n      rowVirtualizerInstanceRef.current?.scrollToIndex?.(0);\n    } catch (error) {\n      console.error(error);\n    }\n  }, [columnFilters, globalFilter]);\n\n  const table = useMaterialReactTable({\n    columns: columns,\n    data: data,\n    enableBottomToolbar: false,\n    enablePagination: false,\n    enableRowVirtualization: true,\n    enableSorting: false,\n    getRowId: getRowId,\n    initialState: initialState,\n    muiToolbarAlertBannerProps: hasError\n      ? { children: t(\"table.error\"), color: \"error\" }\n      : undefined,\n    onColumnFiltersChange: setColumnFilters,\n    onGlobalFilterChange: setGlobalFilter,\n    renderTopToolbarCustomActions: renderTopToolbarCustomActions,\n    rowVirtualizerInstanceRef: rowVirtualizerInstanceRef,\n    rowVirtualizerOptions: { overscan: 4 },\n    state: modifiedState,\n  });\n\n  return <MaterialReactTable table={table} />;\n};\n\n// Need the `typeof StaticTable` because generics don't get passed through `memo`.\nconst MemoizedStaticTable = memo(StaticTable) as typeof StaticTable;\n\n// @ts-expect-error displayName is expected to not be on `typeof StaticTable`\nMemoizedStaticTable.displayName = \"StaticTable\";\n\nexport { MemoizedStaticTable as StaticTable };\n"],"mappings":"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","ignoreList":[]}