@entur/table 4.9.13 → 4.9.14-beta.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/dist/index.d.ts +226 -13
- package/dist/styles.css +100 -118
- package/dist/table.cjs.js +801 -0
- package/dist/table.cjs.js.map +1 -0
- package/dist/table.esm.js +743 -436
- package/dist/table.esm.js.map +1 -1
- package/package.json +37 -19
- package/dist/DataCell.d.ts +0 -20
- package/dist/EditableCell.d.ts +0 -24
- package/dist/ExpandRowButton.d.ts +0 -7
- package/dist/ExpandableRow.d.ts +0 -12
- package/dist/HeaderCell.d.ts +0 -24
- package/dist/Table.d.ts +0 -21
- package/dist/TableBody.d.ts +0 -9
- package/dist/TableFooter.d.ts +0 -6
- package/dist/TableHead.d.ts +0 -8
- package/dist/TableRow.d.ts +0 -21
- package/dist/index.js +0 -8
- package/dist/table.cjs.development.js +0 -509
- package/dist/table.cjs.development.js.map +0 -1
- package/dist/table.cjs.production.min.js +0 -2
- package/dist/table.cjs.production.min.js.map +0 -1
- package/dist/useSortableTable.d.ts +0 -41
- package/dist/useTableKeyboardNavigation.d.ts +0 -14
package/dist/table.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.esm.js","sources":["../src/Table.tsx","../src/TableHead.tsx","../src/TableBody.tsx","../src/TableFooter.tsx","../src/TableRow.tsx","../src/DataCell.tsx","../src/HeaderCell.tsx","../src/useSortableTable.ts","../src/EditableCell.tsx","../src/ExpandableRow.tsx","../src/ExpandRowButton.tsx","../src/useTableKeyboardNavigation.ts","../src/index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useRandomId, mergeRefs } from '@entur/utils';\nimport { VisuallyHidden } from '@entur/a11y';\n\nexport type TableProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Setter tettheten mellom rader og kolonner. Bruk gjerne middle og small for for sider med høy informasjonstetthet\n * @default \"default\"\n */\n spacing?: 'default' | 'middle' | 'small';\n /** Setter kolonne-layout til å være uavhengig av innhold\n * @default false\n */\n fixed?: boolean;\n /** Om header-raden skal bli værende på skjermen når man skroller tabellen\n * @default false\n */\n stickyHeader?: boolean;\n /** Innholdet i tabellen */\n children: React.ReactNode;\n [key: string]: any;\n};\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n fixed = false,\n spacing = 'default',\n sortable = false,\n changeSortDescription = 'Tabelloverskrifter med knapper kan trykkes på for å endre sortering,',\n stickyHeader = false,\n ...rest\n },\n ref,\n ) => {\n const sortableHeaderId = useRandomId('sortable-header');\n\n const tableRef = useRef<HTMLTableElement>(null);\n\n useEffect(() => {\n if (stickyHeader) {\n /* We check when an inserted div above the header \n is outside our scrolling container to determine when\n the table header becomes sticky. This is necessary\n to conditionally add our box-shadow when the \n header is overlapping table rows */\n const tableElement = tableRef.current;\n const observerElement = document.createElement('div');\n observerElement.classList.add('sticky-observer');\n\n tableElement?.parentNode?.insertBefore(observerElement, tableElement);\n\n const observer = new IntersectionObserver(\n entries => {\n tableElement?.classList.toggle(\n 'eds-table--sticky-header--active',\n !entries[0].isIntersecting,\n );\n },\n { threshold: [0, 1] },\n );\n\n observer.observe(observerElement);\n\n return () => {\n observer.unobserve(observerElement);\n observerElement.remove();\n };\n }\n }, [stickyHeader]);\n\n return (\n <>\n <table\n className={classNames(\n 'eds-table',\n { 'eds-table--fixed': fixed },\n { 'eds-table--middle': spacing === 'middle' },\n { 'eds-table--small': spacing === 'small' },\n { 'eds-table--sortable': sortable },\n { 'eds-table--sticky-header': stickyHeader },\n className,\n )}\n ref={mergeRefs(ref, tableRef)}\n aria-describedby={sortable ? sortableHeaderId : undefined}\n {...rest}\n />\n {sortable && (\n <VisuallyHidden id={sortableHeaderId}>\n {changeSortDescription}\n </VisuallyHidden>\n )}\n </>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableHeadProps = {\n /** Kolonneoverskrifter */\n children: React.ReactNode;\n /** Esktra klassenavn */\n className?: string;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableHead = React.forwardRef<\n HTMLTableSectionElement,\n TableHeadProps\n>(({ className, ...props }, ref) => (\n <thead\n className={classNames('eds-table__head', className)}\n ref={ref}\n {...props}\n />\n));\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableBodyProps = {\n /** Tabellrader */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n ref?: React.Ref<HTMLTableSectionElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>(({ className, ...rest }, ref) => (\n <tbody\n className={classNames('eds-table__body', className)}\n ref={ref}\n {...rest}\n />\n));\n","import React from 'react';\n\nexport type TableFooterProps = {\n /** Tabellrader */\n children: React.ReactNode;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n TableFooterProps\n>(({ ...props }, ref) => <tfoot ref={ref} {...props} />);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableRowProps = {\n /** Tabellceller */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /**Hvis satt, så vil tabellraden endre fargen ved hover\n * @default false\n */\n hover?: boolean;\n /** Om raden er klikkbar, så vil raden endre farge, og musepekeren vil symbolisere interaktivitet\n * @default false\n */\n active?: boolean;\n /**Signalisere om at det er en feil i tabellraden\n * @default false\n */\n error?: boolean;\n ref?: React.Ref<HTMLTableRowElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableRowElement>,\n HTMLTableRowElement\n>;\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n (\n { className, hover = false, active = false, error = false, ...rest },\n ref: React.Ref<HTMLTableRowElement>,\n ) => (\n <tr\n className={classNames('eds-table__row', className, {\n 'eds-table__row--hover': hover,\n 'eds-table__row--active': active,\n 'eds-table__row--error': error,\n })}\n ref={ref}\n {...rest}\n />\n ),\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { BulletBadge } from '@entur/layout';\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst danger = 'danger';\n\nexport type DataCellProps = {\n /** Innholdet i tabellcellen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for DataCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n /** @deprecated bruk variant */\n status?: 'positive' | 'negative' | 'neutral';\n /** Hvilken type status man vil vise */\n variant?: 'primary' | 'neutral' | VariantType | typeof danger | typeof info;\n} & React.DetailedHTMLProps<\n React.TdHTMLAttributes<HTMLTableDataCellElement>,\n HTMLTableDataCellElement\n>;\n\nfunction mapStatusToVariant(\n status: 'positive' | 'negative' | 'neutral',\n): DataCellProps['variant'] {\n switch (status) {\n case 'positive':\n return 'success';\n case 'negative':\n return 'negative';\n case 'neutral':\n return 'neutral';\n default:\n return 'neutral';\n }\n}\n\nexport const DataCell = React.forwardRef<\n HTMLTableDataCellElement,\n DataCellProps\n>(\n (\n { className, padding = 'default', status, variant, children, ...rest },\n ref: React.Ref<HTMLTableDataCellElement>,\n ) => {\n // If variant is undefined and status is defined, map status to variant\n if (!variant && status) {\n variant = mapStatusToVariant(status);\n }\n return (\n <td\n ref={ref}\n className={classNames('eds-table__data-cell', className, {\n 'eds-table__data-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__data-cell--padding-radio': padding === 'radio',\n 'eds-table__data-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n {...rest}\n >\n {variant ? (\n <BulletBadge variant={variant}>{children}</BulletBadge>\n ) : (\n children\n )}\n </td>\n );\n },\n);\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { DownArrowIcon, UpArrowIcon, UnsortedIcon } from '@entur/icons';\n\nimport { ExternalSortConfig } from '.';\n\nimport './HeaderCell.scss';\nimport { VisuallyHidden } from '@entur/a11y';\n\nexport type HeaderCellProps = {\n /** Kolonneoverskrift */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for HeaderCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n\n /** Ekstra props som kan sendes til sorteringsknappelementet. Benyttes via useSortableTable */\n sortableButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n\n /** Om komponenten brukes til sortering. Benytt via useSortableTable\n * @default false\n */\n sortable?: boolean;\n /** Konfigurering og rekkefølgen på sortering. Benyttes via useSortableTable */\n sortConfig?: ExternalSortConfig;\n /** Navnet det skal sorteres på. Benyttes via useSortableTable */\n name?: string;\n sortedAscendingAriaLabel?: string;\n sortedDescendingAriaLabel?: string;\n} & React.DetailedHTMLProps<\n React.ThHTMLAttributes<HTMLTableCellElement>,\n HTMLTableCellElement\n>;\n\nexport const HeaderCell = React.forwardRef<\n HTMLTableCellElement,\n HeaderCellProps\n>(\n (\n {\n className,\n children,\n name,\n sortable = false,\n sortConfig,\n padding = 'default',\n sortableButtonProps,\n sortedAscendingAriaLabel = ', sortert stigende',\n sortedDescendingAriaLabel = ', sortert synkende',\n ...rest\n },\n ref,\n ) => {\n const [isCurrentlySorted, setIsCurrentlySorted] =\n React.useState<boolean>(false);\n React.useEffect(() => {\n sortConfig &&\n name &&\n setIsCurrentlySorted(sortConfig && name === sortConfig.key);\n }, [sortConfig, name]);\n const ariaSort = isCurrentlySorted\n ? sortConfig && sortConfig.order\n : undefined;\n\n return (\n <th\n className={classNames('eds-table__header-cell', className, {\n 'eds-table__header-cell--sortable': sortable,\n 'eds-table__header-cell--padding-radio': padding === 'radio',\n 'eds-table__header-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__header-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n aria-sort={ariaSort}\n ref={ref}\n {...rest}\n >\n {sortable && sortConfig && sortableButtonProps ? (\n <SortableHeaderCellButton\n sortableButtonProps={sortableButtonProps}\n sortConfig={sortConfig}\n isCurrentlySorted={isCurrentlySorted}\n ariaSort={ariaSort}\n sortedAscendingAriaLabel={sortedAscendingAriaLabel}\n sortedDescendingAriaLabel={sortedDescendingAriaLabel}\n >\n {children}\n </SortableHeaderCellButton>\n ) : (\n children\n )}\n </th>\n );\n },\n);\n\ntype SortableHeaderCellButtonProps = {\n sortConfig: ExternalSortConfig;\n isCurrentlySorted: boolean;\n sortableButtonProps: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n ariaSort?: 'none' | 'ascending' | 'descending' | 'other' | undefined;\n sortedAscendingAriaLabel?: string;\n sortedDescendingAriaLabel?: string;\n};\n\nconst SortableHeaderCellButton: React.FC<SortableHeaderCellButtonProps> = ({\n sortConfig,\n sortableButtonProps,\n isCurrentlySorted,\n children,\n ariaSort,\n sortedAscendingAriaLabel,\n sortedDescendingAriaLabel,\n}) => {\n const [sortedAriaInfo, setSortedAriaInfo] = useState<string | undefined>('');\n\n const { className, ...rest } = sortableButtonProps;\n\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n useEffect(() => {\n const DISMISS_SORT_INFO_TIME = 3000;\n if (sortConfig.order == 'ascending') {\n setSortedAriaInfo(sortedAscendingAriaLabel);\n } else if (sortConfig.order == 'descending') {\n setSortedAriaInfo(sortedDescendingAriaLabel);\n }\n const dismissAriaTimer = setTimeout(() => {\n setSortedAriaInfo('');\n if (isFirefox) setSortedAriaInfo(', sort ' + sortConfig.order);\n }, DISMISS_SORT_INFO_TIME);\n\n return () => clearTimeout(dismissAriaTimer);\n }, [sortConfig.order]);\n\n return (\n <button\n className={classNames('eds-table__header-cell-button', className)}\n type=\"button\"\n aria-sort={ariaSort}\n {...rest}\n >\n {children}\n {(!isCurrentlySorted || sortConfig.order === 'none') && (\n <UnsortedIcon\n size=\"1em\"\n className=\"eds-table__header-cell-button-icon\"\n aria-hidden=\"true\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'ascending' && (\n <UpArrowIcon\n size=\"1em\"\n className=\"eds-table__header-cell-button-icon\"\n aria-hidden=\"true\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'descending' && (\n <DownArrowIcon\n size=\"1em\"\n className=\"eds-table__header-cell-button-icon\"\n aria-hidden=\"true\"\n />\n )}\n <VisuallyHidden>{isCurrentlySorted && sortedAriaInfo}</VisuallyHidden>\n </button>\n );\n};\n","import {\n ButtonHTMLAttributes,\n DetailedHTMLProps,\n useMemo,\n useState,\n} from 'react';\nimport get from 'lodash.get';\n\nexport type ExternalSortConfig = {\n /**\n * @default \"\"\n */\n key: string;\n /** @default \"none\" */\n order: 'ascending' | 'descending' | 'none';\n};\n\nexport function useSortableData<T>(\n tableData: T[],\n externalSortConfig: ExternalSortConfig = { key: '', order: 'none' },\n): {\n sortedData: T[];\n getSortableHeaderProps: (\n args: SortableHeaderProps,\n ) => SortableHeaderReturnProps;\n getSortableTableProps: (\n args?: SortableTableProps,\n ) => SortableTableReturnProps;\n} {\n const [sortConfig, setSortConfig] = useState(externalSortConfig);\n\n const onSortRequested = (key: string) => {\n const sortingNewColumn = key !== sortConfig.key;\n if (sortingNewColumn || sortConfig.order === 'none')\n return setSortConfig({ key, order: 'ascending' });\n if (sortConfig.order === 'ascending')\n return setSortConfig({ key, order: 'descending' });\n if (sortConfig.order === 'descending')\n return setSortConfig({ key, order: 'none' });\n };\n\n const tableSortedAscending = useMemo(\n () =>\n [...tableData].sort((a: any, b: any) => {\n const valueOfA: string = get(a, sortConfig.key, a)?.toString() ?? '';\n const valueOfB: string = get(b, sortConfig.key, b)?.toString() ?? '';\n\n const stringComparator = new Intl.Collator(['no', 'en'], {\n numeric: true,\n sensitivity: 'base',\n });\n\n return stringComparator.compare(valueOfA, valueOfB);\n }),\n [tableData, sortConfig.key],\n );\n\n const sortedData = useMemo(() => {\n switch (sortConfig.order) {\n case 'ascending': {\n return tableSortedAscending;\n }\n case 'descending': {\n return [...tableSortedAscending].reverse();\n }\n case 'none': {\n return tableData;\n }\n default: {\n return tableData;\n }\n }\n }, [sortConfig.order, tableData, tableSortedAscending]);\n\n const getSortableHeaderProps = ({\n name,\n sortable = true,\n buttonProps,\n ...props\n }: SortableHeaderProps): SortableHeaderReturnProps => {\n return {\n name,\n sortable,\n sortConfig: sortConfig,\n sortableButtonProps: {\n onClick: () => onSortRequested(name),\n ...buttonProps,\n },\n ...props,\n };\n };\n\n const getSortableTableProps = ({\n sortable = true,\n ...props\n }: SortableTableProps = {}): SortableTableReturnProps => {\n return {\n sortable,\n sortConfig: sortConfig,\n ...props,\n };\n };\n\n return { sortedData, getSortableHeaderProps, getSortableTableProps };\n}\n\nexport type SortableHeaderProps = {\n /** Navnet headeren skal se etter i forhold til sortering av items */\n name: string;\n /** Om headeren skal være sorterbar eller ikke\n * @default true */\n sortable?: boolean;\n /** Props som sendes til knapp-elementet */\n buttonProps?: Omit<\n DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n 'type' | 'onClick'\n >;\n [key: string]: any;\n};\n\nexport type SortableHeaderReturnProps = {\n name: string;\n sortable: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n\nexport type SortableTableProps = {\n /** @default true */\n sortable?: boolean;\n [key: string]: any;\n};\n\nexport type SortableTableReturnProps = {\n /** @default true */\n sortable?: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n","import classNames from 'classnames';\nimport React from 'react';\nimport { DataCell } from './DataCell';\n\nimport { VariantProvider } from '@entur/form';\nimport { VariantType } from '@entur/utils';\nimport { Tooltip } from '@entur/tooltip';\n\nimport './EditableCell.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype EditableCellProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Inputelementet som skal være i tabellcellen */\n children: React.ReactElement;\n /** Valideringsvariant for EditableCell */\n variant?: VariantType | typeof error | typeof info;\n /** Varselmelding, som vil komme som en Tooltip under EditableCell */\n feedback?: string;\n /** Om cellen skal vise omriss til enhver tid\n * @default false\n */\n outlined?: boolean;\n [key: string]: any;\n};\n\nexport const EditableCell: React.FC<EditableCellProps> = ({\n children,\n className,\n feedback,\n variant,\n outlined = false,\n ...rest\n}) => {\n return (\n <VariantProvider variant={variant}>\n <DataCell\n className={classNames(\n 'eds-editable-cell',\n {\n 'eds-editable-cell--outlined': outlined,\n },\n className,\n )}\n {...rest}\n >\n <Tooltip\n disableHoverListener={!feedback}\n disableFocusListener={!feedback}\n placement=\"bottom\"\n content={feedback || undefined}\n variant={feedback ? 'negative' : undefined}\n >\n {children}\n </Tooltip>\n </DataCell>\n </VariantProvider>\n );\n};\n","import React from 'react';\nimport { BaseExpand } from '@entur/expand';\n\nexport type ExpandableRowProps = {\n /** Antall kolonner tabellraden er */\n colSpan: number;\n /** Innholdet til ExpandableRow */\n children: React.ReactNode;\n /** Om ExpandableRow er åpen\n * @default false\n */\n open?: boolean;\n};\n\nexport const ExpandableRow: React.FC<ExpandableRowProps> = ({\n open = false,\n children,\n colSpan,\n}) => {\n return (\n <tr>\n <td colSpan={colSpan}>\n <BaseExpand open={open}>{children}</BaseExpand>\n </td>\n </tr>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DownArrowIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './ExpandRowButton.scss';\n\nexport type ExpandRowButtonProps = {\n open: boolean;\n onClick: (e: React.MouseEvent) => void;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ExpandRowButton: React.FC<ExpandRowButtonProps> = ({\n open,\n onClick,\n ...rest\n}) => {\n return (\n <IconButton\n className={classNames('eds-expand-row-button', {\n 'eds-expand-row-button--open': open,\n })}\n onClick={onClick}\n aria-label={open ? 'Lukk tabellrad' : 'Utvid tabellrad'}\n type=\"button\"\n {...rest}\n >\n <DownArrowIcon aria-hidden className=\"eds-expand-row-button__icon\" />\n </IconButton>\n );\n};\n","import { useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport { TableBodyProps, TableRowProps } from './index';\n\nfunction onTableKeypress(\n event: KeyboardEvent,\n currentRow: number,\n maxRow: number,\n allowWrap?: boolean,\n) {\n const keyPress = event.key;\n switch (keyPress) {\n case 'ArrowUp':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === 0 ? maxRow - 1 : currentRow - 1;\n } else {\n return currentRow > 0 ? currentRow - 1 : 0;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === maxRow - 1 ? 0 : currentRow + 1;\n } else {\n return currentRow < maxRow - 1 ? currentRow + 1 : currentRow;\n }\n default:\n return currentRow;\n }\n}\n\nexport type useTableKeyboardNavigationProps = (\n /** Antall rader i tabellen */\n numberOfRows: number,\n /** Tillate at man kan navigere sirkulært\n * @default false\n */\n allowWrap?: boolean,\n) => {\n getTableRowNavigationProps: (\n /** Raden i tabellen (0-indeksert) */\n row: number,\n ) => Partial<TableRowProps>;\n getTableBodyNavigationProps: () => Partial<TableBodyProps>;\n};\n\nexport const useTableKeyboardNavigation: useTableKeyboardNavigationProps = (\n numberOfRows = 0,\n allowWrap = true,\n) => {\n const [currentRow, setCurrentRow] = useState(numberOfRows);\n const [maxRow, setMaxRow] = useState(0);\n\n const tableBodyRef = useRef<HTMLTableSectionElement>(null);\n const tableHasFocus = tableBodyRef?.current?.contains(document.activeElement);\n\n useEffect(() => {\n tableBodyRef &&\n tableBodyRef.current &&\n tableHasFocus &&\n tableBodyRef.current.childNodes[\n currentRow\n ].childNodes[0].parentElement?.focus();\n }, [currentRow, tableHasFocus]);\n\n function getTableBodyNavigationProps(...rest: any): Partial<TableBodyProps> {\n return {\n ref: tableBodyRef,\n ...rest,\n };\n }\n\n const tableRowRef = useRef<HTMLTableRowElement>(null);\n function getTableRowNavigationProps(\n row: number,\n ...rest: any\n ): Partial<TableRowProps> {\n if (row >= maxRow) {\n setMaxRow(row + 1);\n }\n const tabIndex = currentRow ? 0 : -1;\n return {\n tabIndex,\n ref: tableRowRef,\n onClick: () => setCurrentRow(row),\n onKeyDown: (e: KeyboardEvent) => {\n const newCell = onTableKeypress(e, currentRow, numberOfRows, allowWrap);\n setCurrentRow(newCell);\n },\n ...rest,\n };\n }\n return { getTableRowNavigationProps, getTableBodyNavigationProps };\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('table');\n\nexport * from './Table';\nexport * from './TableHead';\nexport * from './TableBody';\nexport * from './TableFooter';\nexport * from './TableRow';\nexport * from './DataCell';\nexport * from './HeaderCell';\nexport * from './useSortableTable';\nexport * from './EditableCell';\nexport * from './ExpandableRow';\nexport * from './ExpandRowButton';\nexport * from './useTableKeyboardNavigation';\n"],"names":["Table","React","forwardRef","_ref","ref","className","_ref$fixed","fixed","_ref$spacing","spacing","_ref$sortable","sortable","_ref$changeSortDescri","changeSortDescription","_ref$stickyHeader","stickyHeader","rest","_objectWithoutPropertiesLoose","_excluded","sortableHeaderId","useRandomId","tableRef","useRef","useEffect","_tableElement$parentN","tableElement","current","observerElement","document","createElement","classList","add","parentNode","insertBefore","observer","IntersectionObserver","entries","toggle","isIntersecting","threshold","observe","unobserve","remove","Fragment","_extends","classNames","mergeRefs","undefined","VisuallyHidden","id","TableHead","props","TableBody","TableFooter","_objectDestructuringEmpty","TableRow","_ref$hover","hover","_ref$active","active","_ref$error","error","mapStatusToVariant","status","DataCell","_ref$padding","padding","variant","children","BulletBadge","HeaderCell","name","sortConfig","sortableButtonProps","_ref$sortedAscendingA","sortedAscendingAriaLabel","_ref$sortedDescending","sortedDescendingAriaLabel","_React$useState","useState","isCurrentlySorted","setIsCurrentlySorted","key","ariaSort","order","SortableHeaderCellButton","_ref2","_useState","sortedAriaInfo","setSortedAriaInfo","_excluded2","isFirefox","navigator","userAgent","toLowerCase","indexOf","DISMISS_SORT_INFO_TIME","dismissAriaTimer","setTimeout","clearTimeout","type","UnsortedIcon","size","UpArrowIcon","DownArrowIcon","useSortableData","tableData","externalSortConfig","setSortConfig","onSortRequested","sortingNewColumn","tableSortedAscending","useMemo","concat","sort","a","b","_get$toString","_get","_get$toString2","_get2","valueOfA","get","toString","valueOfB","stringComparator","Intl","Collator","numeric","sensitivity","compare","sortedData","reverse","getSortableHeaderProps","buttonProps","onClick","getSortableTableProps","_temp","_ref2$sortable","EditableCell","feedback","_ref$outlined","outlined","VariantProvider","Tooltip","disableHoverListener","disableFocusListener","placement","content","ExpandableRow","_ref$open","open","colSpan","BaseExpand","ExpandRowButton","IconButton","onTableKeypress","event","currentRow","maxRow","allowWrap","keyPress","preventDefault","useTableKeyboardNavigation","numberOfRows","_tableBodyRef$current","setCurrentRow","_useState2","setMaxRow","tableBodyRef","tableHasFocus","contains","activeElement","_tableBodyRef$current2","childNodes","parentElement","focus","getTableBodyNavigationProps","_len","arguments","length","Array","_key","tableRowRef","getTableRowNavigationProps","row","tabIndex","_len2","_key2","onKeyDown","e","newCell","warnAboutMissingStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.esm.js","sources":["../../../node_modules/classnames/index.js","../src/Table.tsx","../src/TableHead.tsx","../src/TableBody.tsx","../src/TableFooter.tsx","../src/TableRow.tsx","../src/DataCell.tsx","../src/HeaderCell.tsx","../../../node_modules/lodash.get/index.js","../src/useSortableTable.ts","../src/EditableCell.tsx","../src/ExpandableRow.tsx","../src/ExpandRowButton.tsx","../src/useTableKeyboardNavigation.ts","../src/index.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { useRandomId, mergeRefs } from '@entur/utils';\nimport { VisuallyHidden } from '@entur/a11y';\n\nexport type TableProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Setter tettheten mellom rader og kolonner. Bruk gjerne middle og small for for sider med høy informasjonstetthet\n * @default \"default\"\n */\n spacing?: 'default' | 'middle' | 'small';\n /** Setter kolonne-layout til å være uavhengig av innhold\n * @default false\n */\n fixed?: boolean;\n /** Om header-raden skal bli værende på skjermen når man skroller tabellen\n * @default false\n */\n stickyHeader?: boolean;\n /** Innholdet i tabellen */\n children: React.ReactNode;\n [key: string]: any;\n};\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n fixed = false,\n spacing = 'default',\n sortable = false,\n changeSortDescription = 'Tabelloverskrifter med knapper kan trykkes på for å endre sortering,',\n stickyHeader = false,\n ...rest\n },\n ref,\n ) => {\n const sortableHeaderId = useRandomId('sortable-header');\n\n const tableRef = useRef<HTMLTableElement>(null);\n\n useEffect(() => {\n if (stickyHeader) {\n /* We check when an inserted div above the header \n is outside our scrolling container to determine when\n the table header becomes sticky. This is necessary\n to conditionally add our box-shadow when the \n header is overlapping table rows */\n const tableElement = tableRef.current;\n const observerElement = document.createElement('div');\n observerElement.classList.add('sticky-observer');\n\n tableElement?.parentNode?.insertBefore(observerElement, tableElement);\n\n const observer = new IntersectionObserver(\n entries => {\n tableElement?.classList.toggle(\n 'eds-table--sticky-header--active',\n !entries[0].isIntersecting,\n );\n },\n { threshold: [0, 1] },\n );\n\n observer.observe(observerElement);\n\n return () => {\n observer.unobserve(observerElement);\n observerElement.remove();\n };\n }\n }, [stickyHeader]);\n\n return (\n <>\n <table\n className={classNames(\n 'eds-table',\n { 'eds-table--fixed': fixed },\n { 'eds-table--middle': spacing === 'middle' },\n { 'eds-table--small': spacing === 'small' },\n { 'eds-table--sortable': sortable },\n { 'eds-table--sticky-header': stickyHeader },\n className,\n )}\n ref={mergeRefs(ref, tableRef)}\n aria-describedby={sortable ? sortableHeaderId : undefined}\n {...rest}\n />\n {sortable && (\n <VisuallyHidden id={sortableHeaderId}>\n {changeSortDescription}\n </VisuallyHidden>\n )}\n </>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableHeadProps = {\n /** Kolonneoverskrifter */\n children: React.ReactNode;\n /** Esktra klassenavn */\n className?: string;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableHead = React.forwardRef<\n HTMLTableSectionElement,\n TableHeadProps\n>(({ className, ...props }, ref) => (\n <thead\n className={classNames('eds-table__head', className)}\n ref={ref}\n {...props}\n />\n));\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableBodyProps = {\n /** Tabellrader */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n ref?: React.Ref<HTMLTableSectionElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableBody = React.forwardRef<\n HTMLTableSectionElement,\n TableBodyProps\n>(({ className, ...rest }, ref) => (\n <tbody\n className={classNames('eds-table__body', className)}\n ref={ref}\n {...rest}\n />\n));\n","import React from 'react';\n\nexport type TableFooterProps = {\n /** Tabellrader */\n children: React.ReactNode;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableSectionElement>,\n HTMLTableSectionElement\n>;\n\nexport const TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n TableFooterProps\n>(({ ...props }, ref) => <tfoot ref={ref} {...props} />);\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type TableRowProps = {\n /** Tabellceller */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /**Hvis satt, så vil tabellraden endre fargen ved hover\n * @default false\n */\n hover?: boolean;\n /** Om raden er klikkbar, så vil raden endre farge, og musepekeren vil symbolisere interaktivitet\n * @default false\n */\n active?: boolean;\n /**Signalisere om at det er en feil i tabellraden\n * @default false\n */\n error?: boolean;\n ref?: React.Ref<HTMLTableRowElement>;\n} & React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLTableRowElement>,\n HTMLTableRowElement\n>;\n\nexport const TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n (\n { className, hover = false, active = false, error = false, ...rest },\n ref: React.Ref<HTMLTableRowElement>,\n ) => (\n <tr\n className={classNames('eds-table__row', className, {\n 'eds-table__row--hover': hover,\n 'eds-table__row--active': active,\n 'eds-table__row--error': error,\n })}\n ref={ref}\n {...rest}\n />\n ),\n);\n","import React from 'react';\nimport classNames from 'classnames';\n\nimport { BulletBadge } from '@entur/layout';\nimport { VariantType } from '@entur/utils';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst danger = 'danger';\n\nexport type DataCellProps = {\n /** Innholdet i tabellcellen */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for DataCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n /** @deprecated bruk variant */\n status?: 'positive' | 'negative' | 'neutral';\n /** Hvilken type status man vil vise */\n variant?: 'primary' | 'neutral' | VariantType | typeof danger | typeof info;\n} & React.DetailedHTMLProps<\n React.TdHTMLAttributes<HTMLTableDataCellElement>,\n HTMLTableDataCellElement\n>;\n\nfunction mapStatusToVariant(\n status: 'positive' | 'negative' | 'neutral',\n): DataCellProps['variant'] {\n switch (status) {\n case 'positive':\n return 'success';\n case 'negative':\n return 'negative';\n case 'neutral':\n return 'neutral';\n default:\n return 'neutral';\n }\n}\n\nexport const DataCell = React.forwardRef<\n HTMLTableDataCellElement,\n DataCellProps\n>(\n (\n { className, padding = 'default', status, variant, children, ...rest },\n ref: React.Ref<HTMLTableDataCellElement>,\n ) => {\n // If variant is undefined and status is defined, map status to variant\n if (!variant && status) {\n variant = mapStatusToVariant(status);\n }\n return (\n <td\n ref={ref}\n className={classNames('eds-table__data-cell', className, {\n 'eds-table__data-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__data-cell--padding-radio': padding === 'radio',\n 'eds-table__data-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n {...rest}\n >\n {variant ? (\n <BulletBadge variant={variant}>{children}</BulletBadge>\n ) : (\n children\n )}\n </td>\n );\n },\n);\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\n\nimport { DownArrowIcon, UpArrowIcon, UnsortedIcon } from '@entur/icons';\n\nimport { ExternalSortConfig } from '.';\n\nimport './HeaderCell.scss';\nimport { VisuallyHidden } from '@entur/a11y';\n\nexport type HeaderCellProps = {\n /** Kolonneoverskrift */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse som settes for HeaderCell for ulikt innhold av komponenter */\n padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';\n\n /** Ekstra props som kan sendes til sorteringsknappelementet. Benyttes via useSortableTable */\n sortableButtonProps?: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n\n /** Om komponenten brukes til sortering. Benytt via useSortableTable\n * @default false\n */\n sortable?: boolean;\n /** Konfigurering og rekkefølgen på sortering. Benyttes via useSortableTable */\n sortConfig?: ExternalSortConfig;\n /** Navnet det skal sorteres på. Benyttes via useSortableTable */\n name?: string;\n sortedAscendingAriaLabel?: string;\n sortedDescendingAriaLabel?: string;\n} & React.DetailedHTMLProps<\n React.ThHTMLAttributes<HTMLTableCellElement>,\n HTMLTableCellElement\n>;\n\nexport const HeaderCell = React.forwardRef<\n HTMLTableCellElement,\n HeaderCellProps\n>(\n (\n {\n className,\n children,\n name,\n sortable = false,\n sortConfig,\n padding = 'default',\n sortableButtonProps,\n sortedAscendingAriaLabel = ', sortert stigende',\n sortedDescendingAriaLabel = ', sortert synkende',\n ...rest\n },\n ref,\n ) => {\n const [isCurrentlySorted, setIsCurrentlySorted] =\n React.useState<boolean>(false);\n React.useEffect(() => {\n sortConfig &&\n name &&\n setIsCurrentlySorted(sortConfig && name === sortConfig.key);\n }, [sortConfig, name]);\n const ariaSort = isCurrentlySorted\n ? sortConfig && sortConfig.order\n : undefined;\n\n return (\n <th\n className={classNames('eds-table__header-cell', className, {\n 'eds-table__header-cell--sortable': sortable,\n 'eds-table__header-cell--padding-radio': padding === 'radio',\n 'eds-table__header-cell--padding-checkbox': padding === 'checkbox',\n 'eds-table__header-cell--padding-overflow-menu':\n padding === 'overflow-menu',\n })}\n aria-sort={ariaSort}\n ref={ref}\n {...rest}\n >\n {sortable && sortConfig && sortableButtonProps ? (\n <SortableHeaderCellButton\n sortableButtonProps={sortableButtonProps}\n sortConfig={sortConfig}\n isCurrentlySorted={isCurrentlySorted}\n ariaSort={ariaSort}\n sortedAscendingAriaLabel={sortedAscendingAriaLabel}\n sortedDescendingAriaLabel={sortedDescendingAriaLabel}\n >\n {children}\n </SortableHeaderCellButton>\n ) : (\n children\n )}\n </th>\n );\n },\n);\n\ntype SortableHeaderCellButtonProps = {\n sortConfig: ExternalSortConfig;\n isCurrentlySorted: boolean;\n sortableButtonProps: React.DetailedHTMLProps<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >;\n ariaSort?: 'none' | 'ascending' | 'descending' | 'other' | undefined;\n sortedAscendingAriaLabel?: string;\n sortedDescendingAriaLabel?: string;\n};\n\nconst SortableHeaderCellButton: React.FC<SortableHeaderCellButtonProps> = ({\n sortConfig,\n sortableButtonProps,\n isCurrentlySorted,\n children,\n ariaSort,\n sortedAscendingAriaLabel,\n sortedDescendingAriaLabel,\n}) => {\n const [sortedAriaInfo, setSortedAriaInfo] = useState<string | undefined>('');\n\n const { className, ...rest } = sortableButtonProps;\n\n const isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n useEffect(() => {\n const DISMISS_SORT_INFO_TIME = 3000;\n if (sortConfig.order == 'ascending') {\n setSortedAriaInfo(sortedAscendingAriaLabel);\n } else if (sortConfig.order == 'descending') {\n setSortedAriaInfo(sortedDescendingAriaLabel);\n }\n const dismissAriaTimer = setTimeout(() => {\n setSortedAriaInfo('');\n if (isFirefox) setSortedAriaInfo(', sort ' + sortConfig.order);\n }, DISMISS_SORT_INFO_TIME);\n\n return () => clearTimeout(dismissAriaTimer);\n }, [sortConfig.order]);\n\n return (\n <button\n className={classNames('eds-table__header-cell-button', className)}\n type=\"button\"\n aria-sort={ariaSort}\n {...rest}\n >\n {children}\n {(!isCurrentlySorted || sortConfig.order === 'none') && (\n <UnsortedIcon\n size=\"1em\"\n className=\"eds-table__header-cell-button-icon\"\n aria-hidden=\"true\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'ascending' && (\n <UpArrowIcon\n size=\"1em\"\n className=\"eds-table__header-cell-button-icon\"\n aria-hidden=\"true\"\n />\n )}\n {isCurrentlySorted && sortConfig.order === 'descending' && (\n <DownArrowIcon\n size=\"1em\"\n className=\"eds-table__header-cell-button-icon\"\n aria-hidden=\"true\"\n />\n )}\n <VisuallyHidden>{isCurrentlySorted && sortedAriaInfo}</VisuallyHidden>\n </button>\n );\n};\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","import {\n ButtonHTMLAttributes,\n DetailedHTMLProps,\n useMemo,\n useState,\n} from 'react';\nimport get from 'lodash.get';\n\nexport type ExternalSortConfig = {\n /**\n * @default \"\"\n */\n key: string;\n /** @default \"none\" */\n order: 'ascending' | 'descending' | 'none';\n};\n\nexport function useSortableData<T>(\n tableData: T[],\n externalSortConfig: ExternalSortConfig = { key: '', order: 'none' },\n): {\n sortedData: T[];\n getSortableHeaderProps: (\n args: SortableHeaderProps,\n ) => SortableHeaderReturnProps;\n getSortableTableProps: (\n args?: SortableTableProps,\n ) => SortableTableReturnProps;\n} {\n const [sortConfig, setSortConfig] = useState(externalSortConfig);\n\n const onSortRequested = (key: string) => {\n const sortingNewColumn = key !== sortConfig.key;\n if (sortingNewColumn || sortConfig.order === 'none')\n return setSortConfig({ key, order: 'ascending' });\n if (sortConfig.order === 'ascending')\n return setSortConfig({ key, order: 'descending' });\n if (sortConfig.order === 'descending')\n return setSortConfig({ key, order: 'none' });\n };\n\n const tableSortedAscending = useMemo(\n () =>\n [...tableData].sort((a: any, b: any) => {\n const valueOfA: string = get(a, sortConfig.key, a)?.toString() ?? '';\n const valueOfB: string = get(b, sortConfig.key, b)?.toString() ?? '';\n\n const stringComparator = new Intl.Collator(['no', 'en'], {\n numeric: true,\n sensitivity: 'base',\n });\n\n return stringComparator.compare(valueOfA, valueOfB);\n }),\n [tableData, sortConfig.key],\n );\n\n const sortedData = useMemo(() => {\n switch (sortConfig.order) {\n case 'ascending': {\n return tableSortedAscending;\n }\n case 'descending': {\n return [...tableSortedAscending].reverse();\n }\n case 'none': {\n return tableData;\n }\n default: {\n return tableData;\n }\n }\n }, [sortConfig.order, tableData, tableSortedAscending]);\n\n const getSortableHeaderProps = ({\n name,\n sortable = true,\n buttonProps,\n ...props\n }: SortableHeaderProps): SortableHeaderReturnProps => {\n return {\n name,\n sortable,\n sortConfig: sortConfig,\n sortableButtonProps: {\n onClick: () => onSortRequested(name),\n ...buttonProps,\n },\n ...props,\n };\n };\n\n const getSortableTableProps = ({\n sortable = true,\n ...props\n }: SortableTableProps = {}): SortableTableReturnProps => {\n return {\n sortable,\n sortConfig: sortConfig,\n ...props,\n };\n };\n\n return { sortedData, getSortableHeaderProps, getSortableTableProps };\n}\n\nexport type SortableHeaderProps = {\n /** Navnet headeren skal se etter i forhold til sortering av items */\n name: string;\n /** Om headeren skal være sorterbar eller ikke\n * @default true */\n sortable?: boolean;\n /** Props som sendes til knapp-elementet */\n buttonProps?: Omit<\n DetailedHTMLProps<\n ButtonHTMLAttributes<HTMLButtonElement>,\n HTMLButtonElement\n >,\n 'type' | 'onClick'\n >;\n [key: string]: any;\n};\n\nexport type SortableHeaderReturnProps = {\n name: string;\n sortable: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n\nexport type SortableTableProps = {\n /** @default true */\n sortable?: boolean;\n [key: string]: any;\n};\n\nexport type SortableTableReturnProps = {\n /** @default true */\n sortable?: boolean;\n sortConfig: ExternalSortConfig;\n [key: string]: any;\n};\n","import classNames from 'classnames';\nimport React from 'react';\nimport { DataCell } from './DataCell';\n\nimport { VariantProvider } from '@entur/form';\nimport { VariantType } from '@entur/utils';\nimport { Tooltip } from '@entur/tooltip';\n\nimport './EditableCell.scss';\n\n/** @deprecated use variant=\"information\" instead */\nconst info = 'info';\n/** @deprecated use variant=\"negative\" instead */\nconst error = 'error';\n\ntype EditableCellProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Inputelementet som skal være i tabellcellen */\n children: React.ReactElement;\n /** Valideringsvariant for EditableCell */\n variant?: VariantType | typeof error | typeof info;\n /** Varselmelding, som vil komme som en Tooltip under EditableCell */\n feedback?: string;\n /** Om cellen skal vise omriss til enhver tid\n * @default false\n */\n outlined?: boolean;\n [key: string]: any;\n};\n\nexport const EditableCell: React.FC<EditableCellProps> = ({\n children,\n className,\n feedback,\n variant,\n outlined = false,\n ...rest\n}) => {\n return (\n <VariantProvider variant={variant}>\n <DataCell\n className={classNames(\n 'eds-editable-cell',\n {\n 'eds-editable-cell--outlined': outlined,\n },\n className,\n )}\n {...rest}\n >\n <Tooltip\n disableHoverListener={!feedback}\n disableFocusListener={!feedback}\n placement=\"bottom\"\n content={feedback || undefined}\n variant={feedback ? 'negative' : undefined}\n >\n {children}\n </Tooltip>\n </DataCell>\n </VariantProvider>\n );\n};\n","import React from 'react';\nimport { BaseExpand } from '@entur/expand';\n\nexport type ExpandableRowProps = {\n /** Antall kolonner tabellraden er */\n colSpan: number;\n /** Innholdet til ExpandableRow */\n children: React.ReactNode;\n /** Om ExpandableRow er åpen\n * @default false\n */\n open?: boolean;\n};\n\nexport const ExpandableRow: React.FC<ExpandableRowProps> = ({\n open = false,\n children,\n colSpan,\n}) => {\n return (\n <tr>\n <td colSpan={colSpan}>\n <BaseExpand open={open}>{children}</BaseExpand>\n </td>\n </tr>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { DownArrowIcon } from '@entur/icons';\nimport { IconButton } from '@entur/button';\nimport './ExpandRowButton.scss';\n\nexport type ExpandRowButtonProps = {\n open: boolean;\n onClick: (e: React.MouseEvent) => void;\n} & React.ButtonHTMLAttributes<HTMLButtonElement>;\n\nexport const ExpandRowButton: React.FC<ExpandRowButtonProps> = ({\n open,\n onClick,\n ...rest\n}) => {\n return (\n <IconButton\n className={classNames('eds-expand-row-button', {\n 'eds-expand-row-button--open': open,\n })}\n onClick={onClick}\n aria-label={open ? 'Lukk tabellrad' : 'Utvid tabellrad'}\n type=\"button\"\n {...rest}\n >\n <DownArrowIcon aria-hidden className=\"eds-expand-row-button__icon\" />\n </IconButton>\n );\n};\n","import { useState, useEffect, useRef, KeyboardEvent } from 'react';\nimport { TableBodyProps, TableRowProps } from './index';\n\nfunction onTableKeypress(\n event: KeyboardEvent,\n currentRow: number,\n maxRow: number,\n allowWrap?: boolean,\n) {\n const keyPress = event.key;\n switch (keyPress) {\n case 'ArrowUp':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === 0 ? maxRow - 1 : currentRow - 1;\n } else {\n return currentRow > 0 ? currentRow - 1 : 0;\n }\n case 'ArrowDown':\n event.preventDefault();\n if (allowWrap) {\n return currentRow === maxRow - 1 ? 0 : currentRow + 1;\n } else {\n return currentRow < maxRow - 1 ? currentRow + 1 : currentRow;\n }\n default:\n return currentRow;\n }\n}\n\nexport type useTableKeyboardNavigationProps = (\n /** Antall rader i tabellen */\n numberOfRows: number,\n /** Tillate at man kan navigere sirkulært\n * @default false\n */\n allowWrap?: boolean,\n) => {\n getTableRowNavigationProps: (\n /** Raden i tabellen (0-indeksert) */\n row: number,\n ) => Partial<TableRowProps>;\n getTableBodyNavigationProps: () => Partial<TableBodyProps>;\n};\n\nexport const useTableKeyboardNavigation: useTableKeyboardNavigationProps = (\n numberOfRows = 0,\n allowWrap = true,\n) => {\n const [currentRow, setCurrentRow] = useState(numberOfRows);\n const [maxRow, setMaxRow] = useState(0);\n\n const tableBodyRef = useRef<HTMLTableSectionElement>(null);\n const tableHasFocus = tableBodyRef?.current?.contains(document.activeElement);\n\n useEffect(() => {\n tableBodyRef &&\n tableBodyRef.current &&\n tableHasFocus &&\n tableBodyRef.current.childNodes[\n currentRow\n ].childNodes[0].parentElement?.focus();\n }, [currentRow, tableHasFocus]);\n\n function getTableBodyNavigationProps(...rest: any): Partial<TableBodyProps> {\n return {\n ref: tableBodyRef,\n ...rest,\n };\n }\n\n const tableRowRef = useRef<HTMLTableRowElement>(null);\n function getTableRowNavigationProps(\n row: number,\n ...rest: any\n ): Partial<TableRowProps> {\n if (row >= maxRow) {\n setMaxRow(row + 1);\n }\n const tabIndex = currentRow ? 0 : -1;\n return {\n tabIndex,\n ref: tableRowRef,\n onClick: () => setCurrentRow(row),\n onKeyDown: (e: KeyboardEvent) => {\n const newCell = onTableKeypress(e, currentRow, numberOfRows, allowWrap);\n setCurrentRow(newCell);\n },\n ...rest,\n };\n }\n return { getTableRowNavigationProps, getTableBodyNavigationProps };\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles('table');\n\nexport * from './Table';\nexport * from './TableHead';\nexport * from './TableBody';\nexport * from './TableFooter';\nexport * from './TableRow';\nexport * from './DataCell';\nexport * from './HeaderCell';\nexport * from './useSortableTable';\nexport * from './EditableCell';\nexport * from './ExpandableRow';\nexport * from './ExpandRowButton';\nexport * from './useTableKeyboardNavigation';\n"],"names":["classNames","global","string","get"],"mappings":"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","x_google_ignoreList":[0,8]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/table",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.14-beta.0",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
|
-
"main": "dist/
|
|
5
|
+
"main": "dist/table.cjs.js",
|
|
6
6
|
"module": "dist/table.esm.js",
|
|
7
7
|
"typings": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/table.esm.js",
|
|
12
|
+
"require": "./dist/table.cjs.js"
|
|
13
|
+
},
|
|
14
|
+
"./dist/*": "./dist/*"
|
|
15
|
+
},
|
|
8
16
|
"files": [
|
|
9
17
|
"dist"
|
|
10
18
|
],
|
|
@@ -17,31 +25,41 @@
|
|
|
17
25
|
"access": "public"
|
|
18
26
|
},
|
|
19
27
|
"scripts": {
|
|
20
|
-
"start": "
|
|
21
|
-
"build": "
|
|
22
|
-
"test": "
|
|
23
|
-
"lint": "
|
|
28
|
+
"start": "vite build --watch",
|
|
29
|
+
"build": "vite build",
|
|
30
|
+
"test": "jest",
|
|
31
|
+
"lint": "eslint src"
|
|
24
32
|
},
|
|
25
33
|
"peerDependencies": {
|
|
26
34
|
"react": ">=16.8.0",
|
|
27
35
|
"react-dom": ">=16.8.0"
|
|
28
36
|
},
|
|
29
37
|
"dependencies": {
|
|
30
|
-
"@entur/a11y": "^0.2.
|
|
31
|
-
"@entur/button": "^3.3.
|
|
32
|
-
"@entur/expand": "^3.6.
|
|
33
|
-
"@entur/form": "^8.3.
|
|
34
|
-
"@entur/icons": "^8.0.0",
|
|
35
|
-
"@entur/layout": "^3.1.
|
|
36
|
-
"@entur/tokens": "^3.19.
|
|
37
|
-
"@entur/tooltip": "^5.2.
|
|
38
|
-
"@entur/utils": "^0.12.
|
|
39
|
-
"@types/lodash.get": "^4.4.
|
|
40
|
-
"classnames": "^2.
|
|
38
|
+
"@entur/a11y": "^0.2.100-beta.0",
|
|
39
|
+
"@entur/button": "^3.3.13-beta.0",
|
|
40
|
+
"@entur/expand": "^3.6.13-beta.0",
|
|
41
|
+
"@entur/form": "^8.3.2-beta.0",
|
|
42
|
+
"@entur/icons": "^8.0.1-beta.0",
|
|
43
|
+
"@entur/layout": "^3.1.9-beta.0",
|
|
44
|
+
"@entur/tokens": "^3.19.2-beta.0",
|
|
45
|
+
"@entur/tooltip": "^5.2.13-beta.0",
|
|
46
|
+
"@entur/utils": "^0.12.4-beta.0",
|
|
47
|
+
"@types/lodash.get": "^4.4.9",
|
|
48
|
+
"classnames": "^2.5.1",
|
|
41
49
|
"lodash.get": "^4.4.2"
|
|
42
50
|
},
|
|
43
51
|
"devDependencies": {
|
|
44
|
-
"
|
|
52
|
+
"@testing-library/jest-dom": "^5.17.0",
|
|
53
|
+
"@testing-library/react": "^10.4.9",
|
|
54
|
+
"@testing-library/user-event": "14.6.1",
|
|
55
|
+
"@vitejs/plugin-react": "^5.0.1",
|
|
56
|
+
"eslint": "^7.32.0",
|
|
57
|
+
"jest": "^29.0.0",
|
|
58
|
+
"jest-environment-jsdom": "^29.0.0",
|
|
59
|
+
"ts-jest": "^29.0.0",
|
|
60
|
+
"typescript": "^5.9.2",
|
|
61
|
+
"vite": "^7.1.3",
|
|
62
|
+
"vite-plugin-dts": "^4.5.4"
|
|
45
63
|
},
|
|
46
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "414181fa2084722438238256a9aa32e304896b9d"
|
|
47
65
|
}
|
package/dist/DataCell.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { VariantType } from '@entur/utils';
|
|
3
|
-
/** @deprecated use variant="information" instead */
|
|
4
|
-
declare const info = "info";
|
|
5
|
-
/** @deprecated use variant="negative" instead */
|
|
6
|
-
declare const danger = "danger";
|
|
7
|
-
export type DataCellProps = {
|
|
8
|
-
/** Innholdet i tabellcellen */
|
|
9
|
-
children: React.ReactNode;
|
|
10
|
-
/** Ekstra klassenavn */
|
|
11
|
-
className?: string;
|
|
12
|
-
/** Størrelse som settes for DataCell for ulikt innhold av komponenter */
|
|
13
|
-
padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';
|
|
14
|
-
/** @deprecated bruk variant */
|
|
15
|
-
status?: 'positive' | 'negative' | 'neutral';
|
|
16
|
-
/** Hvilken type status man vil vise */
|
|
17
|
-
variant?: 'primary' | 'neutral' | VariantType | typeof danger | typeof info;
|
|
18
|
-
} & React.DetailedHTMLProps<React.TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>;
|
|
19
|
-
export declare const DataCell: React.ForwardRefExoticComponent<Omit<DataCellProps, "ref"> & React.RefAttributes<HTMLTableDataCellElement>>;
|
|
20
|
-
export {};
|
package/dist/EditableCell.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { VariantType } from '@entur/utils';
|
|
3
|
-
import './EditableCell.scss';
|
|
4
|
-
/** @deprecated use variant="information" instead */
|
|
5
|
-
declare const info = "info";
|
|
6
|
-
/** @deprecated use variant="negative" instead */
|
|
7
|
-
declare const error = "error";
|
|
8
|
-
type EditableCellProps = {
|
|
9
|
-
/** Ekstra klassenavn */
|
|
10
|
-
className?: string;
|
|
11
|
-
/** Inputelementet som skal være i tabellcellen */
|
|
12
|
-
children: React.ReactElement;
|
|
13
|
-
/** Valideringsvariant for EditableCell */
|
|
14
|
-
variant?: VariantType | typeof error | typeof info;
|
|
15
|
-
/** Varselmelding, som vil komme som en Tooltip under EditableCell */
|
|
16
|
-
feedback?: string;
|
|
17
|
-
/** Om cellen skal vise omriss til enhver tid
|
|
18
|
-
* @default false
|
|
19
|
-
*/
|
|
20
|
-
outlined?: boolean;
|
|
21
|
-
[key: string]: any;
|
|
22
|
-
};
|
|
23
|
-
export declare const EditableCell: React.FC<EditableCellProps>;
|
|
24
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import './ExpandRowButton.scss';
|
|
3
|
-
export type ExpandRowButtonProps = {
|
|
4
|
-
open: boolean;
|
|
5
|
-
onClick: (e: React.MouseEvent) => void;
|
|
6
|
-
} & React.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
7
|
-
export declare const ExpandRowButton: React.FC<ExpandRowButtonProps>;
|
package/dist/ExpandableRow.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type ExpandableRowProps = {
|
|
3
|
-
/** Antall kolonner tabellraden er */
|
|
4
|
-
colSpan: number;
|
|
5
|
-
/** Innholdet til ExpandableRow */
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
/** Om ExpandableRow er åpen
|
|
8
|
-
* @default false
|
|
9
|
-
*/
|
|
10
|
-
open?: boolean;
|
|
11
|
-
};
|
|
12
|
-
export declare const ExpandableRow: React.FC<ExpandableRowProps>;
|
package/dist/HeaderCell.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { ExternalSortConfig } from '.';
|
|
3
|
-
import './HeaderCell.scss';
|
|
4
|
-
export type HeaderCellProps = {
|
|
5
|
-
/** Kolonneoverskrift */
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
/** Ekstra klassenavn */
|
|
8
|
-
className?: string;
|
|
9
|
-
/** Størrelse som settes for HeaderCell for ulikt innhold av komponenter */
|
|
10
|
-
padding?: 'default' | 'checkbox' | 'radio' | 'overflow-menu';
|
|
11
|
-
/** Ekstra props som kan sendes til sorteringsknappelementet. Benyttes via useSortableTable */
|
|
12
|
-
sortableButtonProps?: React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>;
|
|
13
|
-
/** Om komponenten brukes til sortering. Benytt via useSortableTable
|
|
14
|
-
* @default false
|
|
15
|
-
*/
|
|
16
|
-
sortable?: boolean;
|
|
17
|
-
/** Konfigurering og rekkefølgen på sortering. Benyttes via useSortableTable */
|
|
18
|
-
sortConfig?: ExternalSortConfig;
|
|
19
|
-
/** Navnet det skal sorteres på. Benyttes via useSortableTable */
|
|
20
|
-
name?: string;
|
|
21
|
-
sortedAscendingAriaLabel?: string;
|
|
22
|
-
sortedDescendingAriaLabel?: string;
|
|
23
|
-
} & React.DetailedHTMLProps<React.ThHTMLAttributes<HTMLTableCellElement>, HTMLTableCellElement>;
|
|
24
|
-
export declare const HeaderCell: React.ForwardRefExoticComponent<Omit<HeaderCellProps, "ref"> & React.RefAttributes<HTMLTableCellElement>>;
|
package/dist/Table.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type TableProps = {
|
|
3
|
-
/** Ekstra klassenavn */
|
|
4
|
-
className?: string;
|
|
5
|
-
/** Setter tettheten mellom rader og kolonner. Bruk gjerne middle og small for for sider med høy informasjonstetthet
|
|
6
|
-
* @default "default"
|
|
7
|
-
*/
|
|
8
|
-
spacing?: 'default' | 'middle' | 'small';
|
|
9
|
-
/** Setter kolonne-layout til å være uavhengig av innhold
|
|
10
|
-
* @default false
|
|
11
|
-
*/
|
|
12
|
-
fixed?: boolean;
|
|
13
|
-
/** Om header-raden skal bli værende på skjermen når man skroller tabellen
|
|
14
|
-
* @default false
|
|
15
|
-
*/
|
|
16
|
-
stickyHeader?: boolean;
|
|
17
|
-
/** Innholdet i tabellen */
|
|
18
|
-
children: React.ReactNode;
|
|
19
|
-
[key: string]: any;
|
|
20
|
-
};
|
|
21
|
-
export declare const Table: React.ForwardRefExoticComponent<Omit<TableProps, "ref"> & React.RefAttributes<HTMLTableElement>>;
|
package/dist/TableBody.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type TableBodyProps = {
|
|
3
|
-
/** Tabellrader */
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
/** Ekstra klassenavn */
|
|
6
|
-
className?: string;
|
|
7
|
-
ref?: React.Ref<HTMLTableSectionElement>;
|
|
8
|
-
} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
|
|
9
|
-
export declare const TableBody: React.ForwardRefExoticComponent<Omit<TableBodyProps, "ref"> & React.RefAttributes<HTMLTableSectionElement>>;
|
package/dist/TableFooter.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type TableFooterProps = {
|
|
3
|
-
/** Tabellrader */
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
|
|
6
|
-
export declare const TableFooter: React.ForwardRefExoticComponent<Omit<TableFooterProps, "ref"> & React.RefAttributes<HTMLTableSectionElement>>;
|
package/dist/TableHead.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type TableHeadProps = {
|
|
3
|
-
/** Kolonneoverskrifter */
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
/** Esktra klassenavn */
|
|
6
|
-
className?: string;
|
|
7
|
-
} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>;
|
|
8
|
-
export declare const TableHead: React.ForwardRefExoticComponent<Omit<TableHeadProps, "ref"> & React.RefAttributes<HTMLTableSectionElement>>;
|
package/dist/TableRow.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
export type TableRowProps = {
|
|
3
|
-
/** Tabellceller */
|
|
4
|
-
children: React.ReactNode;
|
|
5
|
-
/** Ekstra klassenavn */
|
|
6
|
-
className?: string;
|
|
7
|
-
/**Hvis satt, så vil tabellraden endre fargen ved hover
|
|
8
|
-
* @default false
|
|
9
|
-
*/
|
|
10
|
-
hover?: boolean;
|
|
11
|
-
/** Om raden er klikkbar, så vil raden endre farge, og musepekeren vil symbolisere interaktivitet
|
|
12
|
-
* @default false
|
|
13
|
-
*/
|
|
14
|
-
active?: boolean;
|
|
15
|
-
/**Signalisere om at det er en feil i tabellraden
|
|
16
|
-
* @default false
|
|
17
|
-
*/
|
|
18
|
-
error?: boolean;
|
|
19
|
-
ref?: React.Ref<HTMLTableRowElement>;
|
|
20
|
-
} & React.DetailedHTMLProps<React.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>;
|
|
21
|
-
export declare const TableRow: React.ForwardRefExoticComponent<Omit<TableRowProps, "ref"> & React.RefAttributes<HTMLTableRowElement>>;
|