@coveord/plasma-mantine 58.0.1 → 59.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -4
- package/.turbo/turbo-test.log +100 -103
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/Badge/Badge.d.ts +2 -2
- package/dist/cjs/components/Badge/Badge.d.ts.map +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Header/HeaderRight/HeaderRight.js +1 -1
- package/dist/cjs/components/Header/HeaderRight/HeaderRight.js.map +1 -1
- package/dist/cjs/components/LastUpdated/LastUpdated.d.ts.map +1 -1
- package/dist/cjs/components/LastUpdated/LastUpdated.js +0 -1
- package/dist/cjs/components/LastUpdated/LastUpdated.js.map +1 -1
- package/dist/cjs/components/Modal/ModalFooter.module.css +1 -0
- package/dist/cjs/components/Prompt/Prompt.d.ts +3 -3
- package/dist/cjs/components/Prompt/Prompt.d.ts.map +1 -1
- package/dist/cjs/components/Prompt/Prompt.js +6 -6
- package/dist/cjs/components/Prompt/Prompt.js.map +1 -1
- package/dist/cjs/components/Table/use-persisted-column-visibility.d.ts +16 -0
- package/dist/cjs/components/Table/use-persisted-column-visibility.d.ts.map +1 -0
- package/dist/cjs/components/Table/use-persisted-column-visibility.js +123 -0
- package/dist/cjs/components/Table/use-persisted-column-visibility.js.map +1 -0
- package/dist/cjs/components/Table/use-table.d.ts +12 -0
- package/dist/cjs/components/Table/use-table.d.ts.map +1 -1
- package/dist/cjs/components/Table/use-table.js +22 -7
- package/dist/cjs/components/Table/use-table.js.map +1 -1
- package/dist/cjs/styles/Modal.module.css +13 -0
- package/dist/cjs/utils/local-storage.d.ts +38 -0
- package/dist/cjs/utils/local-storage.d.ts.map +1 -0
- package/dist/cjs/utils/local-storage.js +175 -0
- package/dist/cjs/utils/local-storage.js.map +1 -0
- package/dist/esm/components/Badge/Badge.d.ts +2 -2
- package/dist/esm/components/Badge/Badge.d.ts.map +1 -1
- package/dist/esm/components/Badge/Badge.js.map +1 -1
- package/dist/esm/components/Header/HeaderRight/HeaderRight.js +1 -1
- package/dist/esm/components/Header/HeaderRight/HeaderRight.js.map +1 -1
- package/dist/esm/components/LastUpdated/LastUpdated.d.ts.map +1 -1
- package/dist/esm/components/LastUpdated/LastUpdated.js +0 -1
- package/dist/esm/components/LastUpdated/LastUpdated.js.map +1 -1
- package/dist/esm/components/Modal/ModalFooter.module.css +1 -0
- package/dist/esm/components/Prompt/Prompt.d.ts +3 -3
- package/dist/esm/components/Prompt/Prompt.d.ts.map +1 -1
- package/dist/esm/components/Prompt/Prompt.js +7 -8
- package/dist/esm/components/Prompt/Prompt.js.map +1 -1
- package/dist/esm/components/Table/use-persisted-column-visibility.d.ts +16 -0
- package/dist/esm/components/Table/use-persisted-column-visibility.d.ts.map +1 -0
- package/dist/esm/components/Table/use-persisted-column-visibility.js +85 -0
- package/dist/esm/components/Table/use-persisted-column-visibility.js.map +1 -0
- package/dist/esm/components/Table/use-table.d.ts +12 -0
- package/dist/esm/components/Table/use-table.d.ts.map +1 -1
- package/dist/esm/components/Table/use-table.js +15 -3
- package/dist/esm/components/Table/use-table.js.map +1 -1
- package/dist/esm/styles/Modal.module.css +13 -0
- package/dist/esm/utils/local-storage.d.ts +38 -0
- package/dist/esm/utils/local-storage.d.ts.map +1 -0
- package/dist/esm/utils/local-storage.js +134 -0
- package/dist/esm/utils/local-storage.js.map +1 -0
- package/package.json +5 -5
- package/src/components/Badge/Badge.tsx +30 -27
- package/src/components/Header/HeaderRight/HeaderRight.tsx +1 -1
- package/src/components/LastUpdated/LastUpdated.tsx +34 -36
- package/src/components/Modal/ModalFooter.module.css +1 -0
- package/src/components/Prompt/Prompt.tsx +14 -6
- package/src/components/Table/__tests__/use-persisted-column-visibility.spec.ts +203 -0
- package/src/components/Table/use-persisted-column-visibility.ts +79 -0
- package/src/components/Table/use-table.ts +36 -3
- package/src/styles/Modal.module.css +13 -0
- package/src/utils/__tests__/local-storage.spec.ts +176 -0
- package/src/utils/local-storage.ts +151 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Table/use-table.ts"],"sourcesContent":["import type {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {type ExpandedState, type PaginationState, type SortingState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Dispatch, SetStateAction, useCallback, useMemo, useState} from 'react';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state.js';\n\n// Create a deeply optional version of another type\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport interface TableState<TData = unknown> {\n /**\n * Current pagination state\n *\n * @default { pageIndex: 0, pageSize: 50 }\n */\n pagination: PaginationState;\n /**\n * Total number of entries in the table.\n * This number is used to calculate the number of pages in the pagination.\n * When null, the number of pages is calculated using the current data length.\n *\n * @default null\n */\n totalEntries: number | null;\n /**\n * Current sorting state\n *\n * @default []\n */\n sorting: SortingState;\n /**\n * Current global filter value\n *\n * @default ''\n */\n globalFilter: string;\n\n /**\n * Current expanded state\n *\n * @default {}\n */\n expanded: ExpandedState;\n /**\n * Predicates and their current value\n *\n * @default {}\n */\n predicates: Record<string, string>;\n /**\n * Layout currently selected. When null, the first layout is used.\n *\n * @default null\n */\n layout: string | null;\n /**\n * Currently selected date range\n *\n * @default [null, null]\n */\n dateRange: DatesRangeValue<DateStringValue | null>;\n /**\n * Currently selected rows\n *\n * @default {}\n */\n rowSelection: Record<string, TData>;\n /**\n * Columns that are currently visible\n *\n * @default {}\n */\n columnVisibility: Record<string, boolean>;\n}\n\nexport interface TableStore<TData = unknown> {\n /**\n * Current state of the table.\n */\n state: TableState<TData>;\n /**\n * Allows to change the pagination state.\n */\n setPagination: Dispatch<SetStateAction<TableState<TData>['pagination']>>;\n /**\n * Allows to change the total number of entries.\n */\n setTotalEntries: Dispatch<SetStateAction<TableState<TData>['totalEntries']>>;\n /**\n * Allows to change the sorting state.\n */\n setSorting: Dispatch<SetStateAction<TableState<TData>['sorting']>>;\n /**\n * Allows to change the global filter value.\n */\n setGlobalFilter: Dispatch<SetStateAction<TableState<TData>['globalFilter']>>;\n /**\n * Allows to change the rows expanded state.\n */\n setExpanded: Dispatch<SetStateAction<TableState<TData>['expanded']>>;\n /**\n * Allows to change the predicates values.\n */\n setPredicates: Dispatch<SetStateAction<TableState<TData>['predicates']>>;\n /**\n * Allows to change the selected layout.\n */\n setLayout: Dispatch<SetStateAction<TableState<TData>['layout']>>;\n /**\n * Allows to change the selected date range.\n */\n setDateRange: Dispatch<SetStateAction<TableState<TData>['dateRange']>>;\n /**\n * Allows to change the current row selection.\n */\n setRowSelection: Dispatch<SetStateAction<TableState<TData>['rowSelection']>>;\n /**\n * Allows to change the visible columns.\n */\n setColumnVisibility: Dispatch<SetStateAction<TableState<TData>['columnVisibility']>>;\n /**\n * Whether the table is currently filtered.\n */\n isFiltered: boolean;\n /**\n * Whether the table has data when unfiltered.\n *\n * This is derived from the totalEntries so make sure you set that number correctly, even if you're using a client side table.\n */\n isVacant: boolean;\n /**\n * Clear currently applied filters.\n */\n clearFilters: () => void;\n /**\n * Deselects all currently selected rows.\n */\n clearRowSelection: () => void;\n /**\n * Get currently selected rows.\n */\n getSelectedRows: () => TData[];\n /**\n * Get currently selected row\n */\n getSelectedRow: () => TData | null;\n /**\n * Whether the user can select multiple rows at the same time.\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether rows can be selected.\n */\n rowSelectionEnabled: boolean;\n /**\n * Whether row selection is forced.\n */\n rowSelectionForced: boolean;\n}\n\nexport interface UseTableOptions<TData = unknown> {\n /**\n * Initial state of the table.\n */\n initialState?: DeepPartial<TableState<TData>>;\n /**\n * Whether rows can be selected.\n *\n * @default true\n */\n enableRowSelection?: boolean;\n /**\n * Whether multiple rows can be selected at the same time.\n *\n * @default false\n */\n enableMultiRowSelection?: boolean;\n /**\n * Forces the user to always have one row selected.\n * When activating that setting, a good practice is to have a row already selected in the initial state.\n *\n * @default false\n */\n forceSelection?: boolean;\n /**\n * Whether to sync the table state with the URL.\n *\n * @default false\n */\n syncWithUrl?: boolean;\n}\n\nconst defaultOptions: UseTableOptions = {\n enableRowSelection: true,\n enableMultiRowSelection: false,\n forceSelection: false,\n syncWithUrl: false,\n};\n\nconst defaultState: Partial<TableState> = {\n pagination: {\n pageIndex: 0,\n pageSize: 50,\n },\n totalEntries: null,\n sorting: [],\n globalFilter: '',\n predicates: {},\n layout: null,\n dateRange: [null, null],\n rowSelection: {},\n columnVisibility: {},\n};\n\nconst serialization = <K extends keyof TableState>(\n input: Pick<UseUrlSyncedStateOptions<TableState[K]>, 'serializer' | 'deserializer'>,\n) => Object.freeze(input);\n\nconst PAGINATION_SERIALIZATION = serialization<'pagination'>({\n serializer: ({pageIndex, pageSize}) => [\n ['page', (pageIndex + 1).toString()],\n ['pageSize', pageSize.toString()],\n ],\n deserializer: (params, initialState) =>\n defaultsDeep(\n {\n pageIndex: params.get('page') ? Math.max(1, parseInt(params.get('page'), 10)) - 1 : undefined,\n pageSize: params.get('pageSize') ? parseInt(params.get('pageSize'), 10) : undefined,\n },\n initialState,\n ),\n});\n\nconst SORTING_SERIALIZATION = serialization<'sorting'>({\n serializer: (sorting) => [['sortBy', sorting.map(({id, desc}) => `${id}.${desc ? 'desc' : 'asc'}`).join(',')]],\n deserializer: (params, initialState) => {\n if (!params.has('sortBy')) {\n return initialState;\n }\n const sorts = params.get('sortBy')?.split(',') ?? [];\n return sorts.map((sort) => {\n const [id, order] = sort.split('.');\n return {id, desc: order === 'desc'};\n });\n },\n});\n\nconst GLOBAL_FILTER_SERIALIZATION = serialization<'globalFilter'>({\n serializer: (filter) => [['filter', filter]],\n deserializer: (params, initialState) => params.get('filter') ?? initialState,\n});\n\nconst PREDICATES_SERIALIZATION = serialization<'predicates'>({\n serializer: (predicates) => Object.entries(predicates),\n deserializer: (params, initialState) =>\n Object.keys(initialState).reduce(\n (acc, predicateKey) => {\n acc[predicateKey] = params.get(predicateKey) ?? initialState[predicateKey];\n return acc;\n },\n {} as TableState['predicates'],\n ),\n});\n\nconst LAYOUT_SERIALIZATION = serialization<'layout'>({\n serializer: (_layout) => [['layout', _layout]],\n deserializer: (params, initialState) => params.get('layout') ?? initialState,\n});\n\nconst DATE_RANGE_SERIALIZATION = serialization<'dateRange'>({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nconst COLUMN_VISIBILITY_SERIALIZATION = serialization<'columnVisibility'>({\n serializer: (columns) => [\n [\n 'show',\n Object.entries(columns)\n .filter(([, visible]) => visible === true)\n .map(([columnName]) => columnName)\n .join(','),\n ],\n [\n 'hide',\n Object.entries(columns)\n .filter(([, visible]) => visible === false)\n .map(([columnName]) => columnName)\n .join(','),\n ],\n ],\n deserializer: (params, initial) => {\n if (!params.has('show') && !params.has('hide')) {\n return initial;\n }\n const visible = params.get('show')?.split(',') ?? [];\n const invisible = params.get('hide')?.split(',') ?? [];\n const columns = {} as TableState['columnVisibility'];\n visible.forEach((column) => {\n columns[column] = true;\n });\n invisible.forEach((column) => {\n columns[column] = false;\n });\n return columns;\n },\n});\n\nexport const useTable = <TData>(userOptions: UseTableOptions<TData> = {}): TableStore<TData> => {\n const options = defaultsDeep({}, userOptions, defaultOptions) as UseTableOptions<TData>;\n const initialState = defaultsDeep({}, options.initialState, defaultState) as TableState<TData>;\n /**\n * The `useUrlSyncedState` hook defaults to synchronize, but the table wants to default to not synchronize,\n * so always pass the sync option as a resolved boolean value.\n */\n const sync = !!options.syncWithUrl;\n\n // (Optionally) synced with url\n const [pagination, setPagination] = useUrlSyncedState<TableState<TData>['pagination']>({\n ...PAGINATION_SERIALIZATION,\n initialState: initialState.pagination,\n sync,\n });\n const [sorting, setSorting] = useUrlSyncedState<TableState<TData>['sorting']>({\n ...SORTING_SERIALIZATION,\n initialState: initialState.sorting,\n sync,\n });\n const [globalFilter, setGlobalFilter] = useUrlSyncedState<TableState<TData>['globalFilter']>({\n ...GLOBAL_FILTER_SERIALIZATION,\n initialState: initialState.globalFilter,\n sync,\n });\n const [predicates, setPredicates] = useUrlSyncedState<TableState<TData>['predicates']>({\n ...PREDICATES_SERIALIZATION,\n initialState: initialState.predicates,\n sync,\n });\n const [layout, setLayout] = useUrlSyncedState<TableState<TData>['layout']>({\n ...LAYOUT_SERIALIZATION,\n initialState: initialState.layout,\n sync,\n });\n const [dateRange, setDateRange] = useUrlSyncedState<TableState<TData>['dateRange']>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: initialState.dateRange,\n sync,\n });\n const [columnVisibility, setColumnVisibility] = useUrlSyncedState<TableState<TData>['columnVisibility']>({\n ...COLUMN_VISIBILITY_SERIALIZATION,\n initialState: initialState.columnVisibility,\n sync,\n });\n\n // unsynced\n const [totalEntries, _setTotalEntries] = useState<TableState<TData>['totalEntries']>(initialState.totalEntries);\n const [unfilteredTotalEntries, setUnfilteredTotalEntries] = useState<TableState<TData>['totalEntries']>(\n initialState.totalEntries,\n );\n const [expanded, setExpanded] = useState<TableState<TData>['expanded']>(initialState.expanded);\n const [rowSelection, setRowSelection] = useState<TableState<TData>['rowSelection']>(initialState.rowSelection);\n\n const isFiltered =\n !!globalFilter ||\n Object.keys(predicates).some((predicate) => !!predicates[predicate]) ||\n !!dateRange?.[0] ||\n !!dateRange?.[1];\n\n const isVacant = unfilteredTotalEntries === 0;\n\n const setTotalEntries: typeof _setTotalEntries = useCallback(\n (updater) => {\n _setTotalEntries((old) => {\n const newTotalEntries = updater instanceof Function ? updater(old) : updater;\n if (!isFiltered) {\n setUnfilteredTotalEntries(newTotalEntries);\n }\n return newTotalEntries;\n });\n },\n [isFiltered],\n );\n\n const clearFilters = useCallback(() => {\n setPredicates(initialState.predicates);\n setGlobalFilter('');\n }, []);\n\n const clearRowSelection = useCallback(() => {\n setRowSelection({});\n }, []);\n\n const getSelectedRows = useCallback(() => Object.values(rowSelection), [rowSelection]);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n useDidUpdate(() => {\n if (!options.enableMultiRowSelection) {\n clearRowSelection();\n }\n }, [globalFilter, pagination, sorting, dateRange, predicates]);\n\n const state = useMemo(\n () => ({\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n }),\n [\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n ],\n );\n\n return {\n state,\n setPagination,\n setTotalEntries,\n setSorting,\n setGlobalFilter,\n setExpanded,\n setPredicates,\n setLayout,\n setDateRange,\n setRowSelection,\n setColumnVisibility,\n isFiltered,\n isVacant,\n clearFilters,\n clearRowSelection,\n getSelectedRows,\n getSelectedRow,\n rowSelectionEnabled: options.enableRowSelection,\n rowSelectionForced: options.forceSelection,\n multiRowSelectionEnabled: options.enableMultiRowSelection,\n };\n};\n"],"names":["useTable","defaultOptions","enableRowSelection","enableMultiRowSelection","forceSelection","syncWithUrl","defaultState","pagination","pageIndex","pageSize","totalEntries","sorting","globalFilter","predicates","layout","dateRange","rowSelection","columnVisibility","serialization","input","Object","freeze","PAGINATION_SERIALIZATION","serializer","toString","deserializer","params","initialState","defaultsDeep","get","Math","max","parseInt","undefined","SORTING_SERIALIZATION","map","id","desc","join","has","sorts","split","sort","order","GLOBAL_FILTER_SERIALIZATION","filter","PREDICATES_SERIALIZATION","entries","keys","reduce","acc","predicateKey","LAYOUT_SERIALIZATION","_layout","DATE_RANGE_SERIALIZATION","from","to","Date","toISOString","initial","COLUMN_VISIBILITY_SERIALIZATION","columns","visible","columnName","invisible","forEach","column","userOptions","options","sync","useUrlSyncedState","setPagination","setSorting","setGlobalFilter","setPredicates","setLayout","setDateRange","setColumnVisibility","useState","_setTotalEntries","unfilteredTotalEntries","setUnfilteredTotalEntries","expanded","setExpanded","setRowSelection","isFiltered","some","predicate","isVacant","setTotalEntries","useCallback","updater","old","newTotalEntries","Function","clearFilters","clearRowSelection","getSelectedRows","values","getSelectedRow","useDidUpdate","state","useMemo","rowSelectionEnabled","rowSelectionForced","multiRowSelectionEnabled"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Table/use-table.ts"],"sourcesContent":["import type {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {type ExpandedState, type PaginationState, type SortingState} from '@tanstack/table-core';\nimport defaultsDeep from 'lodash.defaultsdeep';\nimport {Dispatch, SetStateAction, useCallback, useMemo, useState} from 'react';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state.js';\nimport {usePersistedColumnVisibility} from './use-persisted-column-visibility.js';\n\n// Create a deeply optional version of another type\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport interface TableState<TData = unknown> {\n /**\n * Current pagination state\n *\n * @default { pageIndex: 0, pageSize: 50 }\n */\n pagination: PaginationState;\n /**\n * Total number of entries in the table.\n * This number is used to calculate the number of pages in the pagination.\n * When null, the number of pages is calculated using the current data length.\n *\n * @default null\n */\n totalEntries: number | null;\n /**\n * Current sorting state\n *\n * @default []\n */\n sorting: SortingState;\n /**\n * Current global filter value\n *\n * @default ''\n */\n globalFilter: string;\n\n /**\n * Current expanded state\n *\n * @default {}\n */\n expanded: ExpandedState;\n /**\n * Predicates and their current value\n *\n * @default {}\n */\n predicates: Record<string, string>;\n /**\n * Layout currently selected. When null, the first layout is used.\n *\n * @default null\n */\n layout: string | null;\n /**\n * Currently selected date range\n *\n * @default [null, null]\n */\n dateRange: DatesRangeValue<DateStringValue | null>;\n /**\n * Currently selected rows\n *\n * @default {}\n */\n rowSelection: Record<string, TData>;\n /**\n * Columns that are currently visible\n *\n * @default {}\n */\n columnVisibility: Record<string, boolean>;\n}\n\nexport interface TableStore<TData = unknown> {\n /**\n * Current state of the table.\n */\n state: TableState<TData>;\n /**\n * Allows to change the pagination state.\n */\n setPagination: Dispatch<SetStateAction<TableState<TData>['pagination']>>;\n /**\n * Allows to change the total number of entries.\n */\n setTotalEntries: Dispatch<SetStateAction<TableState<TData>['totalEntries']>>;\n /**\n * Allows to change the sorting state.\n */\n setSorting: Dispatch<SetStateAction<TableState<TData>['sorting']>>;\n /**\n * Allows to change the global filter value.\n */\n setGlobalFilter: Dispatch<SetStateAction<TableState<TData>['globalFilter']>>;\n /**\n * Allows to change the rows expanded state.\n */\n setExpanded: Dispatch<SetStateAction<TableState<TData>['expanded']>>;\n /**\n * Allows to change the predicates values.\n */\n setPredicates: Dispatch<SetStateAction<TableState<TData>['predicates']>>;\n /**\n * Allows to change the selected layout.\n */\n setLayout: Dispatch<SetStateAction<TableState<TData>['layout']>>;\n /**\n * Allows to change the selected date range.\n */\n setDateRange: Dispatch<SetStateAction<TableState<TData>['dateRange']>>;\n /**\n * Allows to change the current row selection.\n */\n setRowSelection: Dispatch<SetStateAction<TableState<TData>['rowSelection']>>;\n /**\n * Allows to change the visible columns.\n */\n setColumnVisibility: Dispatch<SetStateAction<TableState<TData>['columnVisibility']>>;\n /**\n * Whether the table is currently filtered.\n */\n isFiltered: boolean;\n /**\n * Whether the table has data when unfiltered.\n *\n * This is derived from the totalEntries so make sure you set that number correctly, even if you're using a client side table.\n */\n isVacant: boolean;\n /**\n * Clear currently applied filters.\n */\n clearFilters: () => void;\n /**\n * Deselects all currently selected rows.\n */\n clearRowSelection: () => void;\n /**\n * Get currently selected rows.\n */\n getSelectedRows: () => TData[];\n /**\n * Get currently selected row\n */\n getSelectedRow: () => TData | null;\n /**\n * Whether the user can select multiple rows at the same time.\n */\n multiRowSelectionEnabled: boolean;\n /**\n * Whether rows can be selected.\n */\n rowSelectionEnabled: boolean;\n /**\n * Whether row selection is forced.\n */\n rowSelectionForced: boolean;\n}\n\nexport interface UseTableOptions<TData = unknown> {\n /**\n * Initial state of the table.\n */\n initialState?: DeepPartial<TableState<TData>>;\n /**\n * Whether rows can be selected.\n *\n * @default true\n */\n enableRowSelection?: boolean;\n /**\n * Whether multiple rows can be selected at the same time.\n *\n * @default false\n */\n enableMultiRowSelection?: boolean;\n /**\n * Forces the user to always have one row selected.\n * When activating that setting, a good practice is to have a row already selected in the initial state.\n *\n * @default false\n */\n forceSelection?: boolean;\n /**\n * Whether to sync the table state with the URL.\n *\n * @default false\n */\n syncWithUrl?: boolean;\n /**\n * Unique identifier for the table. When provided, column visibility preferences are persisted to localStorage.\n */\n tableId?: string;\n /**\n * Maximum number of columns that can be visible when restoring persisted visibility from localStorage.\n * This only affects the initial column visibility resolved on mount when `tableId` is set.\n * It does not enforce a runtime limit on `setColumnVisibility` — use `TableColumnsSelector` for UI enforcement.\n *\n * @default Infinity\n */\n maxSelectableColumns?: number;\n}\n\nconst defaultOptions: UseTableOptions = {\n enableRowSelection: true,\n enableMultiRowSelection: false,\n forceSelection: false,\n syncWithUrl: false,\n};\n\nconst defaultState: Partial<TableState> = {\n pagination: {\n pageIndex: 0,\n pageSize: 50,\n },\n totalEntries: null,\n sorting: [],\n globalFilter: '',\n predicates: {},\n layout: null,\n dateRange: [null, null],\n rowSelection: {},\n columnVisibility: {},\n};\n\nconst serialization = <K extends keyof TableState>(\n input: Pick<UseUrlSyncedStateOptions<TableState[K]>, 'serializer' | 'deserializer'>,\n) => Object.freeze(input);\n\nconst PAGINATION_SERIALIZATION = serialization<'pagination'>({\n serializer: ({pageIndex, pageSize}) => [\n ['page', (pageIndex + 1).toString()],\n ['pageSize', pageSize.toString()],\n ],\n deserializer: (params, initialState) =>\n defaultsDeep(\n {\n pageIndex: params.get('page') ? Math.max(1, parseInt(params.get('page'), 10)) - 1 : undefined,\n pageSize: params.get('pageSize') ? parseInt(params.get('pageSize'), 10) : undefined,\n },\n initialState,\n ),\n});\n\nconst SORTING_SERIALIZATION = serialization<'sorting'>({\n serializer: (sorting) => [['sortBy', sorting.map(({id, desc}) => `${id}.${desc ? 'desc' : 'asc'}`).join(',')]],\n deserializer: (params, initialState) => {\n if (!params.has('sortBy')) {\n return initialState;\n }\n const sorts = params.get('sortBy')?.split(',') ?? [];\n return sorts.map((sort) => {\n const [id, order] = sort.split('.');\n return {id, desc: order === 'desc'};\n });\n },\n});\n\nconst GLOBAL_FILTER_SERIALIZATION = serialization<'globalFilter'>({\n serializer: (filter) => [['filter', filter]],\n deserializer: (params, initialState) => params.get('filter') ?? initialState,\n});\n\nconst PREDICATES_SERIALIZATION = serialization<'predicates'>({\n serializer: (predicates) => Object.entries(predicates),\n deserializer: (params, initialState) =>\n Object.keys(initialState).reduce(\n (acc, predicateKey) => {\n acc[predicateKey] = params.get(predicateKey) ?? initialState[predicateKey];\n return acc;\n },\n {} as TableState['predicates'],\n ),\n});\n\nconst LAYOUT_SERIALIZATION = serialization<'layout'>({\n serializer: (_layout) => [['layout', _layout]],\n deserializer: (params, initialState) => params.get('layout') ?? initialState,\n});\n\nconst DATE_RANGE_SERIALIZATION = serialization<'dateRange'>({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nconst COLUMN_VISIBILITY_SERIALIZATION = serialization<'columnVisibility'>({\n serializer: (columns) => [\n [\n 'show',\n Object.entries(columns)\n .filter(([, visible]) => visible === true)\n .map(([columnName]) => columnName)\n .join(','),\n ],\n [\n 'hide',\n Object.entries(columns)\n .filter(([, visible]) => visible === false)\n .map(([columnName]) => columnName)\n .join(','),\n ],\n ],\n deserializer: (params, initial) => {\n if (!params.has('show') && !params.has('hide')) {\n return initial;\n }\n const visible = params.get('show')?.split(',') ?? [];\n const invisible = params.get('hide')?.split(',') ?? [];\n const columns = {} as TableState['columnVisibility'];\n visible.forEach((column) => {\n columns[column] = true;\n });\n invisible.forEach((column) => {\n columns[column] = false;\n });\n return columns;\n },\n});\n\nexport const useTable = <TData>(userOptions: UseTableOptions<TData> = {}): TableStore<TData> => {\n const options = defaultsDeep({}, userOptions, defaultOptions) as UseTableOptions<TData>;\n const [initialState] = useState(\n () => defaultsDeep({}, userOptions.initialState, defaultState) as TableState<TData>,\n );\n /**\n * The `useUrlSyncedState` hook defaults to synchronize, but the table wants to default to not synchronize,\n * so always pass the sync option as a resolved boolean value.\n */\n const sync = !!options.syncWithUrl;\n\n // (Optionally) synced with url\n const [pagination, setPagination] = useUrlSyncedState<TableState<TData>['pagination']>({\n ...PAGINATION_SERIALIZATION,\n initialState: initialState.pagination,\n sync,\n });\n const [sorting, setSorting] = useUrlSyncedState<TableState<TData>['sorting']>({\n ...SORTING_SERIALIZATION,\n initialState: initialState.sorting,\n sync,\n });\n const [globalFilter, setGlobalFilter] = useUrlSyncedState<TableState<TData>['globalFilter']>({\n ...GLOBAL_FILTER_SERIALIZATION,\n initialState: initialState.globalFilter,\n sync,\n });\n const [predicates, setPredicates] = useUrlSyncedState<TableState<TData>['predicates']>({\n ...PREDICATES_SERIALIZATION,\n initialState: initialState.predicates,\n sync,\n });\n const [layout, setLayout] = useUrlSyncedState<TableState<TData>['layout']>({\n ...LAYOUT_SERIALIZATION,\n initialState: initialState.layout,\n sync,\n });\n const [dateRange, setDateRange] = useUrlSyncedState<TableState<TData>['dateRange']>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: initialState.dateRange,\n sync,\n });\n\n const {initialColumnVisibility, persistColumnVisibility} = usePersistedColumnVisibility(\n initialState.columnVisibility,\n options.maxSelectableColumns ?? Infinity,\n options.tableId,\n );\n\n const [columnVisibility, _setColumnVisibility] = useUrlSyncedState<TableState<TData>['columnVisibility']>({\n ...COLUMN_VISIBILITY_SERIALIZATION,\n initialState: initialColumnVisibility,\n sync,\n });\n\n const setColumnVisibility: typeof _setColumnVisibility = useCallback(\n (updater) => {\n _setColumnVisibility((old) => {\n const newVis = updater instanceof Function ? updater(old) : updater;\n persistColumnVisibility(newVis);\n return newVis;\n });\n },\n [_setColumnVisibility, persistColumnVisibility],\n );\n\n // unsynced\n const [totalEntries, _setTotalEntries] = useState<TableState<TData>['totalEntries']>(initialState.totalEntries);\n const [unfilteredTotalEntries, setUnfilteredTotalEntries] = useState<TableState<TData>['totalEntries']>(\n initialState.totalEntries,\n );\n const [expanded, setExpanded] = useState<TableState<TData>['expanded']>(initialState.expanded);\n const [rowSelection, setRowSelection] = useState<TableState<TData>['rowSelection']>(initialState.rowSelection);\n\n const isFiltered =\n !!globalFilter ||\n Object.keys(predicates).some((predicate) => !!predicates[predicate]) ||\n !!dateRange?.[0] ||\n !!dateRange?.[1];\n\n const isVacant = unfilteredTotalEntries === 0;\n\n const setTotalEntries: typeof _setTotalEntries = useCallback(\n (updater) => {\n _setTotalEntries((old) => {\n const newTotalEntries = updater instanceof Function ? updater(old) : updater;\n if (!isFiltered) {\n setUnfilteredTotalEntries(newTotalEntries);\n }\n return newTotalEntries;\n });\n },\n [isFiltered],\n );\n\n const clearFilters = useCallback(() => {\n setPredicates(initialState.predicates);\n setGlobalFilter('');\n }, []);\n\n const clearRowSelection = useCallback(() => {\n setRowSelection({});\n }, []);\n\n const getSelectedRows = useCallback(() => Object.values(rowSelection), [rowSelection]);\n\n const getSelectedRow = () => getSelectedRows()[0] ?? null;\n\n useDidUpdate(() => {\n if (!options.enableMultiRowSelection) {\n clearRowSelection();\n }\n }, [globalFilter, pagination, sorting, dateRange, predicates]);\n\n const state = useMemo(\n () => ({\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n }),\n [\n pagination,\n totalEntries,\n sorting,\n globalFilter,\n expanded,\n predicates,\n layout,\n dateRange,\n rowSelection,\n columnVisibility,\n ],\n );\n\n return {\n state,\n setPagination,\n setTotalEntries,\n setSorting,\n setGlobalFilter,\n setExpanded,\n setPredicates,\n setLayout,\n setDateRange,\n setRowSelection,\n setColumnVisibility,\n isFiltered,\n isVacant,\n clearFilters,\n clearRowSelection,\n getSelectedRows,\n getSelectedRow,\n rowSelectionEnabled: options.enableRowSelection,\n rowSelectionForced: options.forceSelection,\n multiRowSelectionEnabled: options.enableMultiRowSelection,\n };\n};\n"],"names":["useTable","defaultOptions","enableRowSelection","enableMultiRowSelection","forceSelection","syncWithUrl","defaultState","pagination","pageIndex","pageSize","totalEntries","sorting","globalFilter","predicates","layout","dateRange","rowSelection","columnVisibility","serialization","input","Object","freeze","PAGINATION_SERIALIZATION","serializer","toString","deserializer","params","initialState","defaultsDeep","get","Math","max","parseInt","undefined","SORTING_SERIALIZATION","map","id","desc","join","has","sorts","split","sort","order","GLOBAL_FILTER_SERIALIZATION","filter","PREDICATES_SERIALIZATION","entries","keys","reduce","acc","predicateKey","LAYOUT_SERIALIZATION","_layout","DATE_RANGE_SERIALIZATION","from","to","Date","toISOString","initial","COLUMN_VISIBILITY_SERIALIZATION","columns","visible","columnName","invisible","forEach","column","userOptions","options","useState","sync","useUrlSyncedState","setPagination","setSorting","setGlobalFilter","setPredicates","setLayout","setDateRange","usePersistedColumnVisibility","maxSelectableColumns","Infinity","tableId","initialColumnVisibility","persistColumnVisibility","_setColumnVisibility","setColumnVisibility","useCallback","updater","old","newVis","Function","_setTotalEntries","unfilteredTotalEntries","setUnfilteredTotalEntries","expanded","setExpanded","setRowSelection","isFiltered","some","predicate","isVacant","setTotalEntries","newTotalEntries","clearFilters","clearRowSelection","getSelectedRows","values","getSelectedRow","useDidUpdate","state","useMemo","rowSelectionEnabled","rowSelectionForced","multiRowSelectionEnabled"],"mappings":"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"}
|
|
@@ -4,8 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
.header {
|
|
6
6
|
gap: var(--mantine-spacing-sm);
|
|
7
|
+
min-height: unset;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
.close {
|
|
10
11
|
align-self: flex-start;
|
|
11
12
|
}
|
|
13
|
+
|
|
14
|
+
.content {
|
|
15
|
+
overflow-y: initial;
|
|
16
|
+
display: flex;
|
|
17
|
+
flex-direction: column;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.body {
|
|
21
|
+
overflow-y: scroll;
|
|
22
|
+
border-end-start-radius: var(--modal-radius, var(--mantine-radius-default));
|
|
23
|
+
border-end-end-radius: var(--modal-radius, var(--mantine-radius-default));
|
|
24
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned localStorage utility for Plasma.
|
|
3
|
+
*
|
|
4
|
+
* All Plasma data is stored under a single `"plasma"` key with the shape:
|
|
5
|
+
* ```json
|
|
6
|
+
* {
|
|
7
|
+
* "storage-version": 1,
|
|
8
|
+
* "storage": {
|
|
9
|
+
* "table": {
|
|
10
|
+
* "my-table": { "columnVisibility": { ... } }
|
|
11
|
+
* }
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const STORAGE_KEY = "plasma";
|
|
17
|
+
export declare const CURRENT_STORAGE_VERSION = 1;
|
|
18
|
+
/**
|
|
19
|
+
* Read a value from the versioned Plasma storage at the given path.
|
|
20
|
+
*
|
|
21
|
+
* @param path - Path segments within `storage`, e.g. `['table', 'my-table', 'columnVisibility']`.
|
|
22
|
+
* @returns The stored value, or `null` if it doesn't exist or the storage is corrupted.
|
|
23
|
+
*/
|
|
24
|
+
export declare const getStorageItem: <T = unknown>(path: string[]) => T | null;
|
|
25
|
+
/**
|
|
26
|
+
* Write a value to the versioned Plasma storage at the given path.
|
|
27
|
+
*
|
|
28
|
+
* @param path - Path segments within `storage`, e.g. `['table', 'my-table', 'columnVisibility']`.
|
|
29
|
+
* @param value - The value to store (must be JSON-serializable).
|
|
30
|
+
*/
|
|
31
|
+
export declare const setStorageItem: <T = unknown>(path: string[], value: T) => void;
|
|
32
|
+
/**
|
|
33
|
+
* Remove a value from the versioned Plasma storage at the given path.
|
|
34
|
+
*
|
|
35
|
+
* @param path - Path segments within `storage`, e.g. `['table', 'my-table', 'columnVisibility']`.
|
|
36
|
+
*/
|
|
37
|
+
export declare const removeStorageItem: (path: string[]) => void;
|
|
38
|
+
//# sourceMappingURL=local-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-storage.d.ts","sourceRoot":"","sources":["../../../src/utils/local-storage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,WAAW,WAAW,CAAC;AACpC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AA0EzC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,GAAG,OAAO,EAAE,MAAM,MAAM,EAAE,KAAG,CAAC,GAAG,IAUhE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,CAAC,GAAG,OAAO,EAAE,MAAM,MAAM,EAAE,EAAE,OAAO,CAAC,KAAG,IAatE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,KAAG,IAelD,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Versioned localStorage utility for Plasma.
|
|
3
|
+
*
|
|
4
|
+
* All Plasma data is stored under a single `"plasma"` key with the shape:
|
|
5
|
+
* ```json
|
|
6
|
+
* {
|
|
7
|
+
* "storage-version": 1,
|
|
8
|
+
* "storage": {
|
|
9
|
+
* "table": {
|
|
10
|
+
* "my-table": { "columnVisibility": { ... } }
|
|
11
|
+
* }
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/ "use strict";
|
|
16
|
+
Object.defineProperty(exports, "__esModule", {
|
|
17
|
+
value: true
|
|
18
|
+
});
|
|
19
|
+
function _export(target, all) {
|
|
20
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
_export(exports, {
|
|
26
|
+
get CURRENT_STORAGE_VERSION () {
|
|
27
|
+
return CURRENT_STORAGE_VERSION;
|
|
28
|
+
},
|
|
29
|
+
get STORAGE_KEY () {
|
|
30
|
+
return STORAGE_KEY;
|
|
31
|
+
},
|
|
32
|
+
get getStorageItem () {
|
|
33
|
+
return getStorageItem;
|
|
34
|
+
},
|
|
35
|
+
get removeStorageItem () {
|
|
36
|
+
return removeStorageItem;
|
|
37
|
+
},
|
|
38
|
+
get setStorageItem () {
|
|
39
|
+
return setStorageItem;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
var _type_of = require("@swc/helpers/_/_type_of");
|
|
43
|
+
var STORAGE_KEY = 'plasma';
|
|
44
|
+
var CURRENT_STORAGE_VERSION = 1;
|
|
45
|
+
var createStorageObject = function createStorageObject() {
|
|
46
|
+
return Object.create(null);
|
|
47
|
+
};
|
|
48
|
+
var isUnsafeKey = function isUnsafeKey(key) {
|
|
49
|
+
return key === '__proto__' || key === 'constructor' || key === 'prototype';
|
|
50
|
+
};
|
|
51
|
+
var isSafePath = function isSafePath(path) {
|
|
52
|
+
return path.every(function(key) {
|
|
53
|
+
return !isUnsafeKey(key);
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
var readStorage = function readStorage() {
|
|
57
|
+
try {
|
|
58
|
+
var raw = localStorage.getItem(STORAGE_KEY);
|
|
59
|
+
if (raw === null) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
var parsed = JSON.parse(raw);
|
|
63
|
+
if ((typeof parsed === "undefined" ? "undefined" : _type_of._(parsed)) !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
64
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
return parsed;
|
|
68
|
+
} catch (unused) {
|
|
69
|
+
try {
|
|
70
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
71
|
+
} catch (unused) {
|
|
72
|
+
console.warn('Unable to clean up corrupted localStorage key "'.concat(STORAGE_KEY, '".'));
|
|
73
|
+
}
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
var writeStorage = function writeStorage(data) {
|
|
78
|
+
try {
|
|
79
|
+
localStorage.setItem(STORAGE_KEY, JSON.stringify(data));
|
|
80
|
+
} catch (unused) {
|
|
81
|
+
console.warn('Unable to write to localStorage key "'.concat(STORAGE_KEY, '".'));
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
var getNestedValue = function getNestedValue(obj, path) {
|
|
85
|
+
var current = obj;
|
|
86
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
87
|
+
try {
|
|
88
|
+
for(var _iterator = path[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
89
|
+
var key = _step.value;
|
|
90
|
+
if ((typeof current === "undefined" ? "undefined" : _type_of._(current)) !== 'object' || current === null) {
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
current = current[key];
|
|
94
|
+
}
|
|
95
|
+
} catch (err) {
|
|
96
|
+
_didIteratorError = true;
|
|
97
|
+
_iteratorError = err;
|
|
98
|
+
} finally{
|
|
99
|
+
try {
|
|
100
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
101
|
+
_iterator.return();
|
|
102
|
+
}
|
|
103
|
+
} finally{
|
|
104
|
+
if (_didIteratorError) {
|
|
105
|
+
throw _iteratorError;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return current;
|
|
110
|
+
};
|
|
111
|
+
var setNestedValue = function setNestedValue(obj, path, value) {
|
|
112
|
+
var current = obj;
|
|
113
|
+
for(var i = 0; i < path.length - 1; i++){
|
|
114
|
+
var key = path[i];
|
|
115
|
+
if (isUnsafeKey(key)) {
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (_type_of._(current[key]) !== 'object' || current[key] === null) {
|
|
119
|
+
current[key] = createStorageObject();
|
|
120
|
+
}
|
|
121
|
+
current = current[key];
|
|
122
|
+
}
|
|
123
|
+
var lastKey = path[path.length - 1];
|
|
124
|
+
if (!isUnsafeKey(lastKey)) {
|
|
125
|
+
current[lastKey] = value;
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
var getStorageItem = function getStorageItem(path) {
|
|
129
|
+
var _data_storage;
|
|
130
|
+
if (!isSafePath(path)) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
var data = readStorage();
|
|
134
|
+
if (!data || data['storage-version'] !== CURRENT_STORAGE_VERSION) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
var value = getNestedValue((_data_storage = data.storage) !== null && _data_storage !== void 0 ? _data_storage : createStorageObject(), path);
|
|
138
|
+
return value !== undefined ? value : null;
|
|
139
|
+
};
|
|
140
|
+
var setStorageItem = function setStorageItem(path, value) {
|
|
141
|
+
if (!isSafePath(path)) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
var data = readStorage();
|
|
145
|
+
if (!data || data['storage-version'] !== CURRENT_STORAGE_VERSION) {
|
|
146
|
+
data = {
|
|
147
|
+
'storage-version': CURRENT_STORAGE_VERSION,
|
|
148
|
+
storage: createStorageObject()
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
if (!data.storage) {
|
|
152
|
+
data.storage = createStorageObject();
|
|
153
|
+
}
|
|
154
|
+
setNestedValue(data.storage, path, value);
|
|
155
|
+
writeStorage(data);
|
|
156
|
+
};
|
|
157
|
+
var removeStorageItem = function removeStorageItem(path) {
|
|
158
|
+
var _data_storage;
|
|
159
|
+
if (!isSafePath(path)) {
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
var data = readStorage();
|
|
163
|
+
if (!data || data['storage-version'] !== CURRENT_STORAGE_VERSION) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
var parentPath = path.slice(0, -1);
|
|
167
|
+
var key = path[path.length - 1];
|
|
168
|
+
var parent = getNestedValue((_data_storage = data.storage) !== null && _data_storage !== void 0 ? _data_storage : {}, parentPath);
|
|
169
|
+
if ((typeof parent === "undefined" ? "undefined" : _type_of._(parent)) === 'object' && parent !== null) {
|
|
170
|
+
delete parent[key];
|
|
171
|
+
writeStorage(data);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
//# sourceMappingURL=local-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/local-storage.ts"],"sourcesContent":["/**\n * Versioned localStorage utility for Plasma.\n *\n * All Plasma data is stored under a single `\"plasma\"` key with the shape:\n * ```json\n * {\n * \"storage-version\": 1,\n * \"storage\": {\n * \"table\": {\n * \"my-table\": { \"columnVisibility\": { ... } }\n * }\n * }\n * }\n * ```\n */\n\nexport const STORAGE_KEY = 'plasma';\nexport const CURRENT_STORAGE_VERSION = 1;\n\ntype JsonObject = Record<string, unknown>;\n\nconst createStorageObject = (): JsonObject => Object.create(null) as JsonObject;\n\nconst isUnsafeKey = (key: string): boolean => key === '__proto__' || key === 'constructor' || key === 'prototype';\n\nconst isSafePath = (path: string[]): boolean => path.every((key) => !isUnsafeKey(key));\n\ninterface PlasmaStorageSchema {\n 'storage-version': number;\n storage: JsonObject;\n}\n\nconst readStorage = (): PlasmaStorageSchema | null => {\n try {\n const raw = localStorage.getItem(STORAGE_KEY);\n if (raw === null) {\n return null;\n }\n const parsed = JSON.parse(raw);\n if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {\n localStorage.removeItem(STORAGE_KEY);\n return null;\n }\n return parsed as PlasmaStorageSchema;\n } catch {\n try {\n localStorage.removeItem(STORAGE_KEY);\n } catch {\n console.warn(`Unable to clean up corrupted localStorage key \"${STORAGE_KEY}\".`);\n }\n return null;\n }\n};\n\nconst writeStorage = (data: PlasmaStorageSchema): void => {\n try {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(data));\n } catch {\n console.warn(`Unable to write to localStorage key \"${STORAGE_KEY}\".`);\n }\n};\n\nconst getNestedValue = (obj: JsonObject, path: string[]): unknown => {\n let current: unknown = obj;\n for (const key of path) {\n if (typeof current !== 'object' || current === null) {\n return undefined;\n }\n current = (current as JsonObject)[key];\n }\n return current;\n};\n\nconst setNestedValue = (obj: JsonObject, path: string[], value: unknown): void => {\n let current = obj;\n for (let i = 0; i < path.length - 1; i++) {\n const key = path[i];\n if (isUnsafeKey(key)) {\n return;\n }\n if (typeof current[key] !== 'object' || current[key] === null) {\n current[key] = createStorageObject();\n }\n current = current[key] as JsonObject;\n }\n const lastKey = path[path.length - 1];\n if (!isUnsafeKey(lastKey)) {\n current[lastKey] = value;\n }\n};\n\n/**\n * Read a value from the versioned Plasma storage at the given path.\n *\n * @param path - Path segments within `storage`, e.g. `['table', 'my-table', 'columnVisibility']`.\n * @returns The stored value, or `null` if it doesn't exist or the storage is corrupted.\n */\nexport const getStorageItem = <T = unknown>(path: string[]): T | null => {\n if (!isSafePath(path)) {\n return null;\n }\n const data = readStorage();\n if (!data || data['storage-version'] !== CURRENT_STORAGE_VERSION) {\n return null;\n }\n const value = getNestedValue(data.storage ?? createStorageObject(), path);\n return value !== undefined ? (value as T) : null;\n};\n\n/**\n * Write a value to the versioned Plasma storage at the given path.\n *\n * @param path - Path segments within `storage`, e.g. `['table', 'my-table', 'columnVisibility']`.\n * @param value - The value to store (must be JSON-serializable).\n */\nexport const setStorageItem = <T = unknown>(path: string[], value: T): void => {\n if (!isSafePath(path)) {\n return;\n }\n let data = readStorage();\n if (!data || data['storage-version'] !== CURRENT_STORAGE_VERSION) {\n data = {'storage-version': CURRENT_STORAGE_VERSION, storage: createStorageObject()};\n }\n if (!data.storage) {\n data.storage = createStorageObject();\n }\n setNestedValue(data.storage, path, value);\n writeStorage(data);\n};\n\n/**\n * Remove a value from the versioned Plasma storage at the given path.\n *\n * @param path - Path segments within `storage`, e.g. `['table', 'my-table', 'columnVisibility']`.\n */\nexport const removeStorageItem = (path: string[]): void => {\n if (!isSafePath(path)) {\n return;\n }\n const data = readStorage();\n if (!data || data['storage-version'] !== CURRENT_STORAGE_VERSION) {\n return;\n }\n const parentPath = path.slice(0, -1);\n const key = path[path.length - 1];\n const parent = getNestedValue(data.storage ?? {}, parentPath);\n if (typeof parent === 'object' && parent !== null) {\n delete (parent as JsonObject)[key];\n writeStorage(data);\n }\n};\n"],"names":["CURRENT_STORAGE_VERSION","STORAGE_KEY","getStorageItem","removeStorageItem","setStorageItem","createStorageObject","Object","create","isUnsafeKey","key","isSafePath","path","every","readStorage","raw","localStorage","getItem","parsed","JSON","parse","Array","isArray","removeItem","console","warn","writeStorage","data","setItem","stringify","getNestedValue","obj","current","undefined","setNestedValue","value","i","length","lastKey","storage","parentPath","slice","parent"],"mappings":"AAAA;;;;;;;;;;;;;;CAcC;;;;;;;;;;;QAGYA;eAAAA;;QADAC;eAAAA;;QAiFAC;eAAAA;;QAsCAC;eAAAA;;QApBAC;eAAAA;;;;AAnGN,IAAMH,cAAc;AACpB,IAAMD,0BAA0B;AAIvC,IAAMK,sBAAsB;WAAkBC,OAAOC,MAAM,CAAC;;AAE5D,IAAMC,cAAc,qBAACC;WAAyBA,QAAQ,eAAeA,QAAQ,iBAAiBA,QAAQ;;AAEtG,IAAMC,aAAa,oBAACC;WAA4BA,KAAKC,KAAK,CAAC,SAACH;eAAQ,CAACD,YAAYC;;;AAOjF,IAAMI,cAAc;IAChB,IAAI;QACA,IAAMC,MAAMC,aAAaC,OAAO,CAACf;QACjC,IAAIa,QAAQ,MAAM;YACd,OAAO;QACX;QACA,IAAMG,SAASC,KAAKC,KAAK,CAACL;QAC1B,IAAI,CAAA,OAAOG,uCAAP,UAAa,CAANA,OAAK,MAAM,YAAYA,WAAW,QAAQG,MAAMC,OAAO,CAACJ,SAAS;YACxEF,aAAaO,UAAU,CAACrB;YACxB,OAAO;QACX;QACA,OAAOgB;IACX,EAAE,eAAM;QACJ,IAAI;YACAF,aAAaO,UAAU,CAACrB;QAC5B,EAAE,eAAM;YACJsB,QAAQC,IAAI,CAAC,AAAC,kDAA6D,OAAZvB,aAAY;QAC/E;QACA,OAAO;IACX;AACJ;AAEA,IAAMwB,eAAe,sBAACC;IAClB,IAAI;QACAX,aAAaY,OAAO,CAAC1B,aAAaiB,KAAKU,SAAS,CAACF;IACrD,EAAE,eAAM;QACJH,QAAQC,IAAI,CAAC,AAAC,wCAAmD,OAAZvB,aAAY;IACrE;AACJ;AAEA,IAAM4B,iBAAiB,wBAACC,KAAiBnB;IACrC,IAAIoB,UAAmBD;QAClB,kCAAA,2BAAA;;QAAL,QAAK,YAAanB,yBAAb,SAAA,6BAAA,QAAA,yBAAA,iCAAmB;YAAnB,IAAMF,MAAN;YACD,IAAI,CAAA,OAAOsB,wCAAP,UAAc,CAAPA,QAAM,MAAM,YAAYA,YAAY,MAAM;gBACjD,OAAOC;YACX;YACAD,UAAU,AAACA,OAAsB,CAACtB,IAAI;QAC1C;;QALK;QAAA;;;iBAAA,6BAAA;gBAAA;;;gBAAA;sBAAA;;;;IAML,OAAOsB;AACX;AAEA,IAAME,iBAAiB,wBAACH,KAAiBnB,MAAgBuB;IACrD,IAAIH,UAAUD;IACd,IAAK,IAAIK,IAAI,GAAGA,IAAIxB,KAAKyB,MAAM,GAAG,GAAGD,IAAK;QACtC,IAAM1B,MAAME,IAAI,CAACwB,EAAE;QACnB,IAAI3B,YAAYC,MAAM;YAClB;QACJ;QACA,IAAI,UAAmB,CAAZsB,OAAO,CAACtB,IAAI,MAAK,YAAYsB,OAAO,CAACtB,IAAI,KAAK,MAAM;YAC3DsB,OAAO,CAACtB,IAAI,GAAGJ;QACnB;QACA0B,UAAUA,OAAO,CAACtB,IAAI;IAC1B;IACA,IAAM4B,UAAU1B,IAAI,CAACA,KAAKyB,MAAM,GAAG,EAAE;IACrC,IAAI,CAAC5B,YAAY6B,UAAU;QACvBN,OAAO,CAACM,QAAQ,GAAGH;IACvB;AACJ;AAQO,IAAMhC,iBAAiB,wBAAcS;QAQXe;IAP7B,IAAI,CAAChB,WAAWC,OAAO;QACnB,OAAO;IACX;IACA,IAAMe,OAAOb;IACb,IAAI,CAACa,QAAQA,IAAI,CAAC,kBAAkB,KAAK1B,yBAAyB;QAC9D,OAAO;IACX;IACA,IAAMkC,QAAQL,gBAAeH,gBAAAA,KAAKY,OAAO,cAAZZ,2BAAAA,gBAAgBrB,uBAAuBM;IACpE,OAAOuB,UAAUF,YAAaE,QAAc;AAChD;AAQO,IAAM9B,iBAAiB,wBAAcO,MAAgBuB;IACxD,IAAI,CAACxB,WAAWC,OAAO;QACnB;IACJ;IACA,IAAIe,OAAOb;IACX,IAAI,CAACa,QAAQA,IAAI,CAAC,kBAAkB,KAAK1B,yBAAyB;QAC9D0B,OAAO;YAAC,mBAAmB1B;YAAyBsC,SAASjC;QAAqB;IACtF;IACA,IAAI,CAACqB,KAAKY,OAAO,EAAE;QACfZ,KAAKY,OAAO,GAAGjC;IACnB;IACA4B,eAAeP,KAAKY,OAAO,EAAE3B,MAAMuB;IACnCT,aAAaC;AACjB;AAOO,IAAMvB,oBAAoB,2BAACQ;QAUAe;IAT9B,IAAI,CAAChB,WAAWC,OAAO;QACnB;IACJ;IACA,IAAMe,OAAOb;IACb,IAAI,CAACa,QAAQA,IAAI,CAAC,kBAAkB,KAAK1B,yBAAyB;QAC9D;IACJ;IACA,IAAMuC,aAAa5B,KAAK6B,KAAK,CAAC,GAAG,CAAC;IAClC,IAAM/B,MAAME,IAAI,CAACA,KAAKyB,MAAM,GAAG,EAAE;IACjC,IAAMK,SAASZ,gBAAeH,gBAAAA,KAAKY,OAAO,cAAZZ,2BAAAA,gBAAgB,CAAC,GAAGa;IAClD,IAAI,CAAA,OAAOE,uCAAP,UAAa,CAANA,OAAK,MAAM,YAAYA,WAAW,MAAM;QAC/C,OAAO,AAACA,MAAqB,CAAChC,IAAI;QAClCgB,aAAaC;IACjB;AACJ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BadgeCssVariables, BadgeProps, BadgeStylesNames, BadgeVariant,
|
|
1
|
+
import { BadgeCssVariables, BadgeProps, BadgeStylesNames, BadgeVariant, ElementProps, PolymorphicComponentProps, PolymorphicFactory } from '@mantine/core';
|
|
2
2
|
import { ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
|
|
3
|
-
export interface SemanticBadgeProps extends Pick<BadgeProps, 'm' | 'mt' | 'mb' | 'ml' | 'mr' | 'ms' | 'me' | 'mx' | 'my' | 'miw' | 'maw' | 'pos' | 'top' | 'left' | 'right' | 'bottom' | 'inset' | 'display' | 'flex' | 'leftSection' | 'rightSection' | 'fullWidth' | 'circle'> {
|
|
3
|
+
export interface SemanticBadgeProps extends Pick<BadgeProps, 'm' | 'mt' | 'mb' | 'ml' | 'mr' | 'ms' | 'me' | 'mx' | 'my' | 'miw' | 'maw' | 'pos' | 'top' | 'left' | 'right' | 'bottom' | 'inset' | 'display' | 'flex' | 'leftSection' | 'rightSection' | 'fullWidth' | 'circle'>, ElementProps<'div'> {
|
|
4
4
|
/**
|
|
5
5
|
* The size of the badge.
|
|
6
6
|
* @default 'small'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../../../src/components/Badge/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,YAAY,EAEZ,yBAAyB,EAEzB,kBAAkB,EAErB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAa,yBAAyB,EAAgB,SAAS,EAAE,aAAa,EAAC,MAAM,OAAO,CAAC;AAEpG,MAAM,WAAW,kBACb,SACI,IAAI,CACA,UAAU,EACR,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,GACN,aAAa,GACb,cAAc,GACd,WAAW,GACX,QAAQ,CACb,EACD,YAAY,CAAC,KAAK,CAAC;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzB;;;OAGG;IACH,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,yBAAyB,CAAC,kBAAkB,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;AAuH1G,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC;IAClD,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,cAAc,CAAC;IAC3B,gBAAgB,EAAE,KAAK,CAAC;IACxB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,gBAAgB,EAAE;QACd,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;KAC3B,CAAC;CACL,CAAC,CAAC;AAEH,eAAO,MAAM,KAAK;;;;;;;;;WAhBP,UAAU;gBACL,cAAc;sBACR,KAAK;iBACV,gBAAgB;UACvB,iBAAiB;aACd,YAAY;sBACH;QACd,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;KAC3B;;WAbM,UAAU;gBACL,cAAc;sBACR,KAAK;iBACV,gBAAgB;UACvB,iBAAiB;aACd,YAAY;sBACH;QACd,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;KAC3B;;WAbM,UAAU;gBACL,cAAc;sBACR,KAAK;iBACV,gBAAgB;UACvB,iBAAiB;aACd,YAAY;sBACH;QACd,OAAO,EAAE,aAAa,CAAC;QACvB,SAAS,EAAE,aAAa,CAAC;QACzB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;QACxB,OAAO,EAAE,aAAa,CAAC;QACvB,QAAQ,EAAE,aAAa,CAAC;KAC3B;;aANY,aAAa;eACX,aAAa;aACf,aAAa;cACZ,aAAa;aACd,aAAa;cACZ,aAAa;CAIqF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import {\n alpha,\n BadgeCssVariables,\n BadgeProps,\n BadgeStylesNames,\n BadgeVariant,\n Badge as MantineBadge,\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Badge/Badge.tsx"],"sourcesContent":["import {\n alpha,\n BadgeCssVariables,\n BadgeProps,\n BadgeStylesNames,\n BadgeVariant,\n ElementProps,\n Badge as MantineBadge,\n PolymorphicComponentProps,\n polymorphicFactory,\n PolymorphicFactory,\n useComputedColorScheme,\n} from '@mantine/core';\nimport {forwardRef, ForwardRefExoticComponent, ReactElement, ReactNode, RefAttributes} from 'react';\n\nexport interface SemanticBadgeProps\n extends\n Pick<\n BadgeProps,\n | 'm'\n | 'mt'\n | 'mb'\n | 'ml'\n | 'mr'\n | 'ms'\n | 'me'\n | 'mx'\n | 'my'\n | 'miw'\n | 'maw'\n | 'pos'\n | 'top'\n | 'left'\n | 'right'\n | 'bottom'\n | 'inset'\n | 'display'\n | 'flex'\n | 'leftSection'\n | 'rightSection'\n | 'fullWidth'\n | 'circle'\n >,\n ElementProps<'div'> {\n /**\n * The size of the badge.\n * @default 'small'\n */\n size?: 'small' | 'large';\n /**\n * Whether the badge is displayed over a light or dark background.\n * @default Falls back to theme.\n */\n on?: 'light' | 'dark';\n /**\n * The content of the badge.\n */\n children?: ReactNode;\n}\n\nexport type SemanticBadge = ForwardRefExoticComponent<SemanticBadgeProps & RefAttributes<HTMLDivElement>>;\n\nconst enhanceBadge = (\n ComponentLight: <L = 'div'>(props: PolymorphicComponentProps<L, BadgeProps>) => ReactElement,\n ComponentDark: <L = 'div'>(props: PolymorphicComponentProps<L, BadgeProps>) => ReactElement,\n displayName: string,\n): SemanticBadge => {\n const EnhancedBadge = forwardRef<HTMLDivElement, SemanticBadgeProps>((props, ref) => {\n const computedColorScheme = useComputedColorScheme('light', {getInitialValueInEffect: true});\n const Component = (props.on || computedColorScheme) === 'dark' ? ComponentDark : ComponentLight;\n return (\n <Component\n ref={ref}\n {...props}\n py={2}\n px={12}\n size={props.size === 'large' ? 'lg' : 'md'}\n h={props.size === 'large' ? 22 : 20}\n />\n );\n });\n EnhancedBadge.displayName = displayName;\n return EnhancedBadge;\n};\n\nconst BadgePrimary = enhanceBadge(\n MantineBadge.withProps({\n variant: 'light',\n bd: '1px solid var(--badge-bg)',\n c: 'var(--mantine-primary-color-6)',\n }),\n MantineBadge.withProps({\n variant: 'light',\n bd: `1px solid ${alpha('var(--mantine-primary-color-3)', 0.32)}`,\n c: 'var(--mantine-primary-color-2)',\n bg: alpha('var(--mantine-primary-color-3)', 0.32),\n }),\n 'Badge.Primary',\n);\nconst BadgeSecondary = enhanceBadge(\n MantineBadge.withProps({\n variant: 'light',\n color: 'gray',\n bd: '1px solid var(--badge-bg)',\n c: 'gray.7',\n }),\n MantineBadge.withProps({\n variant: 'light',\n color: 'gray',\n c: 'var(--mantine-color-white)',\n bd: `1px solid ${alpha('var(--mantine-color-gray-3)', 0.16)}`,\n bg: alpha('var(--mantine-color-gray-3)', 0.16),\n }),\n 'Badge.Secondary',\n);\nconst BadgeSuccess = enhanceBadge(\n MantineBadge.withProps({\n variant: 'light',\n color: 'green',\n bd: '1px solid var(--badge-bg)',\n c: 'green.6',\n }),\n MantineBadge.withProps({\n variant: 'light',\n color: 'green',\n c: 'green.2',\n bd: `1px solid ${alpha('var(--mantine-color-green-3)', 0.16)}`,\n bg: alpha('var(--mantine-color-green-3)', 0.16),\n }),\n 'Badge.Success',\n);\nconst BadgeCritical = enhanceBadge(\n MantineBadge.withProps({\n variant: 'light',\n color: 'critical',\n bd: '1px solid var(--badge-bg)',\n c: 'red.6',\n }),\n MantineBadge.withProps({\n variant: 'light',\n color: 'critical',\n c: 'red.2',\n bd: `1px solid ${alpha('var(--mantine-color-red-3)', 0.16)}`,\n bg: alpha('var(--mantine-color-red-3)', 0.16),\n }),\n 'Badge.Critical',\n);\nconst BadgeWarning = enhanceBadge(\n MantineBadge.withProps({\n variant: 'light',\n color: 'warning',\n bd: '1px solid var(--badge-bg)',\n c: 'yellow.6',\n }),\n MantineBadge.withProps({\n variant: 'light',\n color: 'warning',\n c: 'yellow.2',\n bd: `1px solid ${alpha('var(--mantine-color-yellow-3)', 0.16)}`,\n bg: alpha('var(--mantine-color-yellow-3)', 0.16),\n }),\n 'Badge.Warning',\n);\nconst BadgeDisabled = enhanceBadge(\n MantineBadge.withProps({\n variant: 'light',\n color: 'gray',\n c: 'var(--coveo-color-text-disabled)',\n bg: 'var(--coveo-color-bg-disabled)',\n }),\n MantineBadge.withProps({\n variant: 'light',\n color: 'gray',\n c: 'dark.3',\n bg: alpha('var(--mantine-color-gray-3)', 0.16),\n }),\n 'Badge.Disabled',\n);\n\nexport type BadgeOverloadFactory = PolymorphicFactory<{\n props: BadgeProps;\n defaultRef: HTMLDivElement;\n defaultComponent: 'div';\n stylesNames: BadgeStylesNames;\n vars: BadgeCssVariables;\n variant: BadgeVariant;\n staticComponents: {\n Primary: SemanticBadge;\n Secondary: SemanticBadge;\n Success: SemanticBadge;\n Critical: SemanticBadge;\n Warning: SemanticBadge;\n Disabled: SemanticBadge;\n };\n}>;\n\nexport const Badge = polymorphicFactory<BadgeOverloadFactory>((props, ref) => <MantineBadge ref={ref} {...props} />);\n\nBadge.Primary = BadgePrimary;\nBadge.Secondary = BadgeSecondary;\nBadge.Success = BadgeSuccess;\nBadge.Critical = BadgeCritical;\nBadge.Warning = BadgeWarning;\nBadge.Disabled = BadgeDisabled;\n"],"names":["alpha","Badge","MantineBadge","polymorphicFactory","useComputedColorScheme","forwardRef","enhanceBadge","ComponentLight","ComponentDark","displayName","EnhancedBadge","props","ref","computedColorScheme","getInitialValueInEffect","Component","on","py","px","size","h","BadgePrimary","withProps","variant","bd","c","bg","BadgeSecondary","color","BadgeSuccess","BadgeCritical","BadgeWarning","BadgeDisabled","Primary","Secondary","Success","Critical","Warning","Disabled"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { Group, factory, useProps } from '@mantine/core';
|
|
3
3
|
import { useHeaderContext } from '../Header.context.js';
|
|
4
4
|
const defaultProps = {
|
|
5
|
-
gap: '
|
|
5
|
+
gap: 'xs'
|
|
6
6
|
};
|
|
7
7
|
export const HeaderRight = factory((_props, ref)=>{
|
|
8
8
|
const props = useProps('HeaderRight', defaultProps, _props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Header/HeaderRight/HeaderRight.tsx"],"sourcesContent":["import {CompoundStylesApiProps, Factory, Group, GroupProps, factory, useProps} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport {useHeaderContext} from '../Header.context.js';\n\nexport type HeaderRightStyleNames = 'right';\n\nexport interface HeaderRightProps\n extends\n Omit<GroupProps, 'classNames' | 'styles' | 'vars' | 'children'>,\n CompoundStylesApiProps<HeaderRightFactory> {\n children: ReactNode;\n}\n\nexport type HeaderRightFactory = Factory<{\n props: HeaderRightProps;\n ref: HTMLDivElement;\n stylesNames: HeaderRightStyleNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<HeaderRightProps> = {\n gap: '
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Header/HeaderRight/HeaderRight.tsx"],"sourcesContent":["import {CompoundStylesApiProps, Factory, Group, GroupProps, factory, useProps} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport {useHeaderContext} from '../Header.context.js';\n\nexport type HeaderRightStyleNames = 'right';\n\nexport interface HeaderRightProps\n extends\n Omit<GroupProps, 'classNames' | 'styles' | 'vars' | 'children'>,\n CompoundStylesApiProps<HeaderRightFactory> {\n children: ReactNode;\n}\n\nexport type HeaderRightFactory = Factory<{\n props: HeaderRightProps;\n ref: HTMLDivElement;\n stylesNames: HeaderRightStyleNames;\n compound: true;\n}>;\n\nconst defaultProps: Partial<HeaderRightProps> = {\n gap: 'xs',\n};\n\nexport const HeaderRight = factory<HeaderRightFactory>((_props, ref) => {\n const props = useProps('HeaderRight', defaultProps, _props);\n const {gap, className, classNames, styles, style, children, vars, ...others} = props;\n const ctx = useHeaderContext();\n\n return (\n <Group\n ref={ref}\n gap={gap}\n {...ctx.getStyles('right', {className, style, classNames, styles, props})}\n {...others}\n >\n {children}\n </Group>\n );\n});\n\nHeaderRight.displayName = 'Header.Right';\n"],"names":["Group","factory","useProps","useHeaderContext","defaultProps","gap","HeaderRight","_props","ref","props","className","classNames","styles","style","children","vars","others","ctx","getStyles","displayName"],"mappings":";AAAA,SAAyCA,KAAK,EAAcC,OAAO,EAAEC,QAAQ,QAAO,gBAAgB;AAEpG,SAAQC,gBAAgB,QAAO,uBAAuB;AAkBtD,MAAMC,eAA0C;IAC5CC,KAAK;AACT;AAEA,OAAO,MAAMC,cAAcL,QAA4B,CAACM,QAAQC;IAC5D,MAAMC,QAAQP,SAAS,eAAeE,cAAcG;IACpD,MAAM,EAACF,GAAG,EAAEK,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAE,GAAGC,QAAO,GAAGP;IAC/E,MAAMQ,MAAMd;IAEZ,qBACI,KAACH;QACGQ,KAAKA;QACLH,KAAKA;QACJ,GAAGY,IAAIC,SAAS,CAAC,SAAS;YAACR;YAAWG;YAAOF;YAAYC;YAAQH;QAAK,EAAE;QACxE,GAAGO,MAAM;kBAETF;;AAGb,GAAG;AAEHR,YAAYa,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LastUpdated.d.ts","sourceRoot":"","sources":["../../../../src/components/LastUpdated/LastUpdated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,OAAO,EAAS,UAAU,EAAE,cAAc,EAA4B,MAAM,eAAe,CAAC;AACvH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC;IAC/G;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IAC/C;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,sBAAsB,CAAC;CACvC,CAAC,CAAC;AAOH,eAAO,MAAM,WAAW;WAVb,gBAAgB;SAClB,cAAc;iBACN,sBAAsB;
|
|
1
|
+
{"version":3,"file":"LastUpdated.d.ts","sourceRoot":"","sources":["../../../../src/components/LastUpdated/LastUpdated.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,OAAO,EAAS,UAAU,EAAE,cAAc,EAA4B,MAAM,eAAe,CAAC;AACvH,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,gBAAiB,SAAQ,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,cAAc,CAAC,kBAAkB,CAAC;IAC/G;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IAC/C;;;OAGG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC;IACrC,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,cAAc,CAAC;IACpB,WAAW,EAAE,sBAAsB,CAAC;CACvC,CAAC,CAAC;AAOH,eAAO,MAAM,WAAW;WAVb,gBAAgB;SAClB,cAAc;iBACN,sBAAsB;EA2CrC,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { factory, Group, Text, useProps, useStyles } from '@mantine/core';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
|
-
import React from 'react';
|
|
5
4
|
const defaultProps = {
|
|
6
5
|
label: 'Last update:',
|
|
7
6
|
formatter: (time)=>dayjs(time).format('h:mm:ss A')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/LastUpdated/LastUpdated.tsx"],"sourcesContent":["import {BoxProps, factory, Factory, Group, GroupProps, StylesApiProps, Text, useProps, useStyles} from '@mantine/core';\nimport dayjs from 'dayjs';\nimport
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/LastUpdated/LastUpdated.tsx"],"sourcesContent":["import {BoxProps, factory, Factory, Group, GroupProps, StylesApiProps, Text, useProps, useStyles} from '@mantine/core';\nimport dayjs from 'dayjs';\nimport {ForwardedRef} from 'react';\n\nexport type LastUpdatedStylesNames = 'root' | 'label';\n\nexport interface LastUpdatedProps extends BoxProps, Pick<GroupProps, 'justify'>, StylesApiProps<LastUpdatedFactory> {\n /**\n * Optional formatter function to format the time value.\n * Receives the time prop and should return a string.\n * @default (time) => dayjs(time).format('h:mm:ss A')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The unformatted time to display that can be parsed by dayjs.\n * @default The current time via dayjs().valueOf()\n */\n time?: dayjs.ConfigType;\n /**\n * Label to contextualize the time.\n *\n * @default \"Last update:\"\n */\n label?: string;\n}\n\nexport type LastUpdatedFactory = Factory<{\n props: LastUpdatedProps;\n ref: HTMLDivElement;\n stylesNames: LastUpdatedStylesNames;\n}>;\n\nconst defaultProps: Partial<LastUpdatedProps> = {\n label: 'Last update:',\n formatter: (time) => dayjs(time).format('h:mm:ss A'),\n};\n\nexport const LastUpdated = factory<LastUpdatedFactory>((props: LastUpdatedProps, ref: ForwardedRef<HTMLDivElement>) => {\n const {formatter, label, time, classNames, className, styles, style, vars, unstyled, ...others} = useProps(\n 'PlasmaLastUpdated',\n defaultProps as Partial<LastUpdatedProps>,\n props,\n );\n\n const resolvedTime = time ?? dayjs().valueOf();\n\n const getStyles = useStyles<LastUpdatedFactory>({\n name: 'LastUpdated',\n classes: {},\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n return (\n <Group\n justify={props.justify}\n ref={ref}\n {...getStyles('root', {className, style, ...stylesApiProps})}\n {...others}\n >\n <Text size=\"xs\" {...getStyles('label', {className, style, ...stylesApiProps})}>\n {label}\n <span role=\"timer\">{formatter(resolvedTime)}</span>\n </Text>\n </Group>\n );\n});\n\nLastUpdated.displayName = 'LastUpdated';\n"],"names":["factory","Group","Text","useProps","useStyles","dayjs","defaultProps","label","formatter","time","format","LastUpdated","props","ref","classNames","className","styles","style","vars","unstyled","others","resolvedTime","valueOf","getStyles","name","classes","stylesApiProps","justify","size","span","role","displayName"],"mappings":";AAAA,SAAkBA,OAAO,EAAWC,KAAK,EAA8BC,IAAI,EAAEC,QAAQ,EAAEC,SAAS,QAAO,gBAAgB;AACvH,OAAOC,WAAW,QAAQ;AA+B1B,MAAMC,eAA0C;IAC5CC,OAAO;IACPC,WAAW,CAACC,OAASJ,MAAMI,MAAMC,MAAM,CAAC;AAC5C;AAEA,OAAO,MAAMC,cAAcX,QAA4B,CAACY,OAAyBC;IAC7E,MAAM,EAACL,SAAS,EAAED,KAAK,EAAEE,IAAI,EAAEK,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAE,GAAGC,QAAO,GAAGjB,SAC9F,qBACAG,cACAM;IAGJ,MAAMS,eAAeZ,QAAQJ,QAAQiB,OAAO;IAE5C,MAAMC,YAAYnB,UAA8B;QAC5CoB,MAAM;QACNC,SAAS,CAAC;QACVb;QACAG;QACAE;QACAH;QACAE;QACAG;QACAD;IACJ;IACA,MAAMQ,iBAAiB;QAACZ;QAAYE;IAAM;IAE1C,qBACI,KAACf;QACG0B,SAASf,MAAMe,OAAO;QACtBd,KAAKA;QACJ,GAAGU,UAAU,QAAQ;YAACR;YAAWE;YAAO,GAAGS,cAAc;QAAA,EAAE;QAC3D,GAAGN,MAAM;kBAEV,cAAA,MAAClB;YAAK0B,MAAK;YAAM,GAAGL,UAAU,SAAS;gBAACR;gBAAWE;gBAAO,GAAGS,cAAc;YAAA,EAAE;;gBACxEnB;8BACD,KAACsB;oBAAKC,MAAK;8BAAStB,UAAUa;;;;;AAI9C,GAAG;AAEHV,YAAYoB,WAAW,GAAG"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Factory, ModalRootProps, ModalStylesNames, StylesApiProps } from '@mantine/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ForwardRefExoticComponent, ReactNode, RefAttributes } from 'react';
|
|
3
3
|
import { PromptCancelButtonStylesNamesVariant } from './PromptCancelButton.js';
|
|
4
4
|
import { PromptConfirmButtonStylesNamesVariant } from './PromptConfirmButton.js';
|
|
5
5
|
export type PromptVariant = 'success' | 'warning' | 'critical' | 'information';
|
|
@@ -22,7 +22,7 @@ export type PromptFactory = Factory<{
|
|
|
22
22
|
variant: PromptVariant;
|
|
23
23
|
stylesNames: PromptStylesNames;
|
|
24
24
|
}>;
|
|
25
|
-
type PromptCompoundComponent =
|
|
25
|
+
type PromptCompoundComponent = ForwardRefExoticComponent<PromptProps & RefAttributes<HTMLDivElement>>;
|
|
26
26
|
export declare const Prompt: {
|
|
27
27
|
readonly Information: PromptCompoundComponent;
|
|
28
28
|
readonly Success: PromptCompoundComponent;
|
|
@@ -40,7 +40,7 @@ export declare const Prompt: {
|
|
|
40
40
|
stylesNames: PromptConfirmButtonStylesNamesVariant;
|
|
41
41
|
compound: true;
|
|
42
42
|
}>;
|
|
43
|
-
readonly Footer: FunctionComponent<import("../Modal/ModalFooter.js").ModalFooterProps &
|
|
43
|
+
readonly Footer: import("react").FunctionComponent<import("../Modal/ModalFooter.js").ModalFooterProps & RefAttributes<HTMLDivElement> & {
|
|
44
44
|
component?: any;
|
|
45
45
|
renderRoot?: (props: Record<string, any>) => React.ReactNode;
|
|
46
46
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../../../src/components/Prompt/Prompt.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Prompt.d.ts","sourceRoot":"","sources":["../../../../src/components/Prompt/Prompt.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,OAAO,EACP,cAAc,EACd,gBAAgB,EAChB,cAAc,EAIjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAKH,yBAAyB,EAEzB,SAAS,EACT,aAAa,EAChB,MAAM,OAAO,CAAC;AAKf,OAAO,EAAqB,oCAAoC,EAAC,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAsB,qCAAqC,EAAC,MAAM,0BAA0B,CAAC;AAEpG,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,CAAC;AAC/E,MAAM,MAAM,UAAU,GAAG;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAC,CAAC;AACtD,MAAM,MAAM,iBAAiB,GACvB,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAClC,MAAM,GACN,oCAAoC,GACpC,qCAAqC,CAAC;AAE5C,KAAK,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;AAE3E,MAAM,WAAW,WACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/G,QAAQ,EAAE,SAAS,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,UAAU,mBAAoB,SAAQ,WAAW;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAChC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,GAAG,EAAE,cAAc,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,iBAAiB,CAAC;CAClC,CAAC,CAAC;AAiFH,KAAK,uBAAuB,GAAG,yBAAyB,CAAC,WAAW,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;AAatG,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;CAQT,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { factory, Title, useProps, useStyles } from '@mantine/core';
|
|
3
3
|
import { Children, forwardRef } from 'react';
|
|
4
4
|
import { InfoToken } from '../InfoToken/InfoToken.js';
|
|
5
5
|
import { Modal } from '../Modal/Modal.js';
|
|
@@ -80,14 +80,13 @@ const _Prompt = factory((_props, ref)=>{
|
|
|
80
80
|
})
|
|
81
81
|
]
|
|
82
82
|
}),
|
|
83
|
-
/*#__PURE__*/
|
|
83
|
+
/*#__PURE__*/ _jsxs(Modal.Body, {
|
|
84
84
|
...getStyles('body', stylesApiProps),
|
|
85
|
-
children:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
})
|
|
90
|
-
footers
|
|
85
|
+
children: [
|
|
86
|
+
otherChildren,
|
|
87
|
+
footers
|
|
88
|
+
]
|
|
89
|
+
})
|
|
91
90
|
]
|
|
92
91
|
})
|
|
93
92
|
]
|