@economic/taco 1.34.2 → 1.35.1
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/components/Provider/Localization.d.ts +3 -0
- package/dist/components/Select2/Select2.d.ts +2 -2
- package/dist/components/Select2/hooks/useChildren.d.ts +3 -4
- package/dist/components/Select2/types.d.ts +3 -0
- package/dist/components/Table2/Table2.d.ts +3 -0
- package/dist/components/Table2/types.d.ts +2 -0
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +3 -0
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +20 -2
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +2 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +2 -9
- package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/Table2.js +10 -1
- package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js +4 -3
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js +6 -3
- package/dist/esm/packages/taco/src/components/Table2/components/column/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +4 -0
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
- package/dist/taco.cjs.development.js +49 -17
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +30 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { EditModeButton } from './components/EditModeButton';\n\nexport type Table2Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n menu: {\n freezeColumns: (count: number) => string;\n unfreezeColumns: string;\n };\n };\n columnSettings: {\n search: string;\n tooltip: string;\n button: string;\n noResults: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n tooltip: string;\n total: string;\n };\n rowDensity: {\n tooltip: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nexport type Table2Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n toolbarLeft,\n toolbarRight,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<Table2Ref>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n const prevScrollY = React.useRef<number>(0);\n\n // react-table\n const { rows, table, footers } = useTable(props.children, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n React.useEffect(() => {\n if (tableRef.current) {\n tableRef.current.instance = {\n resetFiltering: () => table.resetColumnFilters(),\n resetRowExpansion: () => table.resetExpanded(),\n resetRowSelection: () => table.resetRowSelection(),\n resetSorting: () => table.resetSorting(),\n };\n }\n }, [table, tableRef.current]);\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n virtualiser.scrollToIndex(nextIndex - 1);\n });\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n if (event.key === 'a' && table.options.enableRowSelection) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n const scrollY = event.currentTarget.scrollTop;\n const isScrollingDown = scrollY > prevScrollY.current;\n prevScrollY.current = scrollY;\n\n const scrolledPercentage = Math.round((100 / event.currentTarget.scrollHeight) * scrollY);\n\n if (isScrollingDown && !loadingRef.current && scrolledPercentage >= 80) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } catch (error) {\n console.error(error);\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.shouldPauseHoverState) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setShouldPauseHoverState(false);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = hasInternalToolbar || !!toolbarLeft || !toolbarRight;\n\n const hasFooters = React.useMemo(() => {\n const summaryIds = Object.keys(footers);\n const visibleIds = Object.keys(columnVisibility).filter(c => !columnVisibility[c]);\n return summaryIds.length && summaryIds.some(v => !visibleIds.includes(v));\n }, [footers, columnVisibility]);\n\n return (\n <div className=\"-m-0.5 flex h-full w-[calc(100%_+_0.25rem)] flex-col gap-4 overflow-hidden p-0.5\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbarLeft}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {toolbarRight}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n {/*<ShortcutsGuideButton table={table} />*/}\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row className=\"group/row contents\" row={row} rowIndex={virtualRow.index} table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)?.()}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n {hasFooters ? (\n <div role=\"rowgroup\" className=\"contents\" data-taco=\"table2-footer\">\n {table.getFooterGroups().map(footerGroup => (\n <div key={footerGroup.id} role=\"row\" className=\"contents\">\n {footerGroup.headers.map((footer, cellIndex) => (\n <Footer key={footer.id} footer={footer} index={cellIndex} scrolled={scrolled} table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionRenderer, Table2Settings } from './types';\n"],"names":["Column","_","displayName","Table2","React","forwardRef","props","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","toolbarLeft","toolbarRight","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","prevScrollY","rows","table","footers","useTable","children","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","current","instance","resetFiltering","resetColumnFilters","resetRowExpansion","resetExpanded","resetRowSelection","resetSorting","resetFocussableColumnIndexes","editMode","isEditing","clearTimeout","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","setShouldPauseHoverState","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollY","scrollTop","isScrollingDown","scrolledPercentage","Math","round","isAllRowsSelected","getIsAllRowsSelected","error","console","handleMouseLeave","shouldPauseHoverState","className","cn","enableSettingsButton","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","hasFooters","useMemo","summaryIds","Object","keys","visibleIds","filter","c","some","v","includes","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","map","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary"],"mappings":";;;;;;;;;;;;;;;;;;;;AA8GA,SAASA,MAAM,CAAcC,CAA2B;EACpD,OAAO,IAAI;AACf;AACAD,MAAM,CAACE,WAAW,GAAG,cAAc;MAe7BC,MAAM,gBAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,MAAM,CAAcG,KAAyB,EAAEC,GAAyB;;EAE7G,MAAM;IACFC,UAAU,EAAEC,UAAU;IACtBC,mBAAmB;IACnBC,MAAM,GAAGL,KAAK,CAACM,IAAI,CAACD,MAAM;IAC1BE,QAAQ;IACRC,UAAU;IACVC,WAAW;IACXC,YAAY;IACZC,4BAA4B;IAC5BC;GACH,GAAGZ,KAAK;EACT,MAAMa,QAAQ,GAAGC,YAAY,CAAYb,GAAG,CAAC;EAC7C,MAAMc,YAAY,GAAGjB,cAAK,CAACkB,MAAM,EAAkB;EACnD,MAAMC,WAAW,GAAGnB,cAAK,CAACkB,MAAM,CAAS,CAAC,CAAC;;EAG3C,MAAM;IAAEE,IAAI;IAAEC,KAAK;IAAEC;GAAS,GAAGC,QAAQ,CAACrB,KAAK,CAACsB,QAAQ,EAAEtB,KAAK,EAAEa,QAAQ,CAAC;EAC1E,MAAMU,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAACD,IAAwB;EAEnD,MAAM;IAAEE,gBAAgB;IAAEC,WAAW;IAAEC;GAAc,GAAGR,KAAK,CAACS,QAAQ,EAAE;EAExE9B,cAAK,CAAC+B,SAAS,CAAC;IACZ,IAAIhB,QAAQ,CAACiB,OAAO,EAAE;MAClBjB,QAAQ,CAACiB,OAAO,CAACC,QAAQ,GAAG;QACxBC,cAAc,EAAE,MAAMb,KAAK,CAACc,kBAAkB,EAAE;QAChDC,iBAAiB,EAAE,MAAMf,KAAK,CAACgB,aAAa,EAAE;QAC9CC,iBAAiB,EAAE,MAAMjB,KAAK,CAACiB,iBAAiB,EAAE;QAClDC,YAAY,EAAE,MAAMlB,KAAK,CAACkB,YAAY;OACzC;;GAER,EAAE,CAAClB,KAAK,EAAEN,QAAQ,CAACiB,OAAO,CAAC,CAAC;;;;EAK7BhC,cAAK,CAAC+B,SAAS,CAAC;IACZN,IAAI,CAACe,4BAA4B,EAAE;GACtC,EAAE,CAACb,gBAAgB,EAAEC,WAAW,CAAC,CAAC;EAEnC5B,cAAK,CAAC+B,SAAS,CAAC;;;IAGZ,IAAI,CAACN,IAAI,CAACgB,QAAQ,CAACC,SAAS,EAAE;MAC1BjB,IAAI,CAACe,4BAA4B,EAAE;;GAE1C,EAAE,CAACf,IAAI,CAACgB,QAAQ,CAACC,SAAS,CAAC,CAAC;EAE7B1C,cAAK,CAAC+B,SAAS,CAAC;IACZ,OAAO,MAAMY,YAAY,CAAC1B,YAAY,CAACe,OAAO,CAAC;GAClD,EAAE,EAAE,CAAC;;EAGN,MAAM;IAAEY,WAAW;IAAEC,kBAAkB;IAAEC;GAAqB,GAAGC,cAAc,CAAC;IAAE3B,IAAI;IAAEC;GAAO,EAAEN,QAAQ,CAAC;;EAG1G,MAAMiC,mBAAmB,GAAGC,eAAe,CAAC5B,KAAK,CAAC;;EAGlD,MAAM6B,aAAa,GAAGlD,cAAK,CAACkB,MAAM,CAAC,IAAI,CAAC;;EAGxC,MAAMiC,aAAa,GAAIC,KAA0B;IAC7C,IAAIC,QAAQ,CAACC,aAAa,KAAKvC,QAAQ,CAACiB,OAAO,EAAE;MAC7C,IAAIoB,KAAK,CAACG,GAAG,KAAK,SAAS,EAAE;QACzBH,KAAK,CAACI,cAAc,EAAE;QAEtB,IAAIJ,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACM,OAAO,EAAE;UAChCjC,IAAI,CAACkC,iBAAiB,CAAC,CAAC,CAAC;UACzBf,WAAW,CAACgB,cAAc,CAAC,CAAC,CAAC;SAChC,MAAM;UACHnC,IAAI,CAACoC,iBAAiB,CAACzC,IAAI,EAAE0C,SAAS;YAClCrC,IAAI,CAACsC,wBAAwB,CAAC,IAAI,CAAC;YACnCnB,WAAW,CAACoB,aAAa,CAACF,SAAS,GAAG,CAAC,CAAC;WAC3C,CAAC;;QAGN;OACH,MAAM,IAAIV,KAAK,CAACG,GAAG,KAAK,WAAW,EAAE;QAClCH,KAAK,CAACI,cAAc,EAAE;QAEtB,IAAIJ,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACM,OAAO,EAAE;UAChCjC,IAAI,CAACkC,iBAAiB,CAACvC,IAAI,CAACb,MAAM,GAAG,CAAC,CAAC;UACvCqC,WAAW,CAACgB,cAAc,CAAChB,WAAW,CAACqB,SAAS,GAAG,CAAC,CAAC;SACxD,MAAM;UACHxC,IAAI,CAACyC,aAAa,CAAC9C,IAAI,EAAE0C,SAAS;YAC9BrC,IAAI,CAACsC,wBAAwB,CAAC,IAAI,CAAC;;YAGnC,IAAID,SAAS,KAAK1C,IAAI,CAACb,MAAM,GAAG,CAAC,EAAE;cAAA;cAC/B,qBAAAQ,QAAQ,CAACiB,OAAO,sDAAhB,kBAAkBmC,QAAQ,CAAC,CAAC,EAAEpD,QAAQ,CAACiB,OAAO,CAACoC,YAAY,CAAC;aAC/D,MAAM;cACHxB,WAAW,CAACoB,aAAa,CAACF,SAAS,GAAG,CAAC,CAAC;;WAE/C,CAAC;;QAGN;;MAGJ,MAAMO,qBAAqB,GAAGhD,KAAK,CAACK,OAAO,CAAC4C,eAAe;MAE3D,IAAIlB,KAAK,CAACG,GAAG,KAAK,WAAW,EAAE;QAC3BH,KAAK,CAACI,cAAc,EAAE;QAEtB,IAAIJ,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACM,OAAO,EAAE;UAChC,IAAIW,qBAAqB,EAAE;YAAA;YACvB,yBAAAjD,IAAI,CAACK,IAAI,CAAC8C,cAAc,CAAC,0DAAzB,sBAA2BC,cAAc,CAAC,KAAK,CAAC;;;QAGxD;;MAGJ,IAAIpB,KAAK,CAACG,GAAG,KAAK,YAAY,EAAE;QAC5BH,KAAK,CAACI,cAAc,EAAE;QAEtB,IAAIJ,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACM,OAAO,EAAE;UAChC,IAAIW,qBAAqB,EAAE;YAAA;YACvB,0BAAAjD,IAAI,CAACK,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE8C,cAAc,CAAC,2DAA1B,uBAA4BC,cAAc,CAAC,IAAI,CAAC;;;QAIxD;;MAGJ,IAAIpB,KAAK,CAACG,GAAG,KAAK,OAAO,EAAE;QACvBH,KAAK,CAACI,cAAc,EAAE;QAEtB,IAAI9C,UAAU,EAAE;UACZA,UAAU,CAACU,IAAI,CAACK,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE8C,cAAc,CAAC,CAACE,QAAQ,CAAC;;QAGnD;;MAGJ,IAAIrB,KAAK,CAACG,GAAG,KAAK,GAAG,EAAE;QACnBH,KAAK,CAACI,cAAc,EAAE;QAEtB,IAAInC,KAAK,CAACK,OAAO,CAACgD,kBAAkB,EAAE;UAAA;UAClC,0BAAAtD,IAAI,CAACK,IAAI,CAAC8C,cAAc,CAAC,2DAAzB,uBAA2BI,cAAc,EAAE;;QAG/C;;MAGJ,IAAIvB,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACM,OAAO,EAAE;QAChC,IAAIN,KAAK,CAACG,GAAG,KAAK,GAAG,IAAIlC,KAAK,CAACK,OAAO,CAACgD,kBAAkB,EAAE;UACvDtB,KAAK,CAACI,cAAc,EAAE;UACtBnC,KAAK,CAACuD,qBAAqB,EAAE;;QAGjC;;;GAGX;EAED,IAAIC,UAAU;EAEd,IAAIpD,IAAI,CAACgB,QAAQ,CAACC,SAAS,EAAE;IACzBmC,UAAU,GAAIzB,KAAuB;;MACjC,IAAI0B,mBAAmB,GAAG1B,KAAK,CAAC2B,aAAa;MAE7C,IAAID,mBAAmB,KAAKE,SAAS,EAAE;QACnC;;;;MAKJ,MAAMC,QAAQ,2BAAGH,mBAAmB,kFAAnB,qBAAqBI,OAAO,CAAC,oDAAoD,CAAC,0DAAlF,sBAAoFC,EAAE;MAEvG,IAAIF,QAAQ,EAAE;QAAA;QACVH,mBAAmB,4BAAG1B,KAAK,CAACgC,aAAa,CAACC,aAAa,oBAAoBJ,YAAY,CAAC,yEAAI7B,KAAK,CAAC2B,aAAa;;MAGnH,IAAI,0BAAC3B,KAAK,CAACgC,aAAa,iDAAnB,qBAAqBE,QAAQ,CAACR,mBAAmB,CAAC,KAAIA,mBAAmB,KAAK5B,aAAa,CAAClB,OAAO,EAAE;;;;;QAKtGf,YAAY,CAACe,OAAO,GAAGuD,UAAU,CAAC;UAC9B,MAAMC,SAAS,GAAGpC,KAAK,CAACqC,MAAM,CAACP,OAAO,CAAC,cAAc,CAAC;UACtD,MAAMQ,6BAA6B,GAAGF,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEF,QAAQ,CAACjC,QAAQ,CAACC,aAAa,CAAC;;;UAIjF,IAAI7B,IAAI,CAACkE,8BAA8B,IAAI,CAACD,6BAA6B,EAAE;;YAEvEjE,IAAI,CAACmE,iCAAiC,CAAC,KAAK,CAAC;;SAEpD,CAAC;;KAET;;;;EAKL,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG9F,cAAK,CAAC+F,QAAQ,CAAC,KAAK,CAAC;;EAGrD,MAAMC,UAAU,GAAGhG,cAAK,CAACkB,MAAM,CAAC,KAAK,CAAC;EAEtC,MAAM+E,YAAY,aAAU7C,KAAuC;IAAA;;YAC3DA,KAAK,CAACgC,aAAa,CAACc,UAAU,GAAG,CAAC,IAAI,CAACL,QAAQ;UAC/CC,WAAW,CAAC,IAAI,CAAC;;UAAC;YAAA,IACX1C,KAAK,CAACgC,aAAa,CAACc,UAAU,KAAK,CAAC,IAAIL,QAAQ;cACvDC,WAAW,CAAC,KAAK,CAAC;;cAAC;gBAAA,IACZ,OAAOrF,QAAQ,KAAK,UAAU;kBACrC,MAAM0F,OAAO,GAAG/C,KAAK,CAACgC,aAAa,CAACgB,SAAS;kBAC7C,MAAMC,eAAe,GAAGF,OAAO,GAAGhF,WAAW,CAACa,OAAO;kBACrDb,WAAW,CAACa,OAAO,GAAGmE,OAAO;kBAE7B,MAAMG,kBAAkB,GAAGC,IAAI,CAACC,KAAK,CAAE,GAAG,GAAGpD,KAAK,CAACgC,aAAa,CAAChB,YAAY,GAAI+B,OAAO,CAAC;kBAAC;oBAAA,IAEtFE,eAAe,IAAI,CAACL,UAAU,CAAChE,OAAO,IAAIsE,kBAAkB,IAAI,EAAE;sBAAA;wBAAA,0BAC9D;0BACA,MAAMG,iBAAiB,GAAGpF,KAAK,CAACqF,oBAAoB,EAAE;0BACtDV,UAAU,CAAChE,OAAO,GAAG,IAAI;0BAAC,uBACpBvB,QAAQ,EAAE;4BAAA,IAEZgG,iBAAiB;8BACjBpF,KAAK,CAACuD,qBAAqB,CAAC,IAAI,CAAC;;;yBAExC,YAAQ+B,KAAK,EAAE;0BACZC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;yBACvB;;wBACGX,UAAU,CAAChE,OAAO,GAAG,KAAK;wBAAC;wBAAA;;sBAAA;;;kBAAA;;;cAAA;;;UAAA;;;MAAA;KAI1C;MAAA;;;EAED,IAAI6E,gBAAgB;EAEpB,IAAIpF,IAAI,CAACqF,qBAAqB,EAAE;;IAE5BD,gBAAgB,GAAG,MAAMpF,IAAI,CAACsC,wBAAwB,CAAC,KAAK,CAAC;;EAGjE,MAAMgD,SAAS,GAAGC,EAAE,CAChB,8HAA8H,EAC9H9G,KAAK,CAAC6G,SAAS,CAClB;EAED,MAAME,oBAAoB,GAAG5F,KAAK,CAACK,OAAO,CAACwF,YAAY,IAAIzF,IAAI,CAAC0F,sBAAsB;EACtF,MAAMC,kBAAkB,GACpBH,oBAAoB,IACpBxF,IAAI,CAACgB,QAAQ,CAAC4E,cAAc,IAC5BhG,KAAK,CAACK,OAAO,CAAC4F,mBAAmB,IACjC7F,IAAI,CAAC8F,gBAAgB,IACrBlG,KAAK,CAACK,OAAO,CAAC8F,kBAAkB;EACpC,MAAMC,UAAU,GAAGL,kBAAkB,IAAI,CAAC,CAACzG,WAAW,IAAI,CAACC,YAAY;EAEvE,MAAM8G,UAAU,GAAG1H,cAAK,CAAC2H,OAAO,CAAC;IAC7B,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACxG,OAAO,CAAC;IACvC,MAAMyG,UAAU,GAAGF,MAAM,CAACC,IAAI,CAACnG,gBAAgB,CAAC,CAACqG,MAAM,CAACC,CAAC,IAAI,CAACtG,gBAAgB,CAACsG,CAAC,CAAC,CAAC;IAClF,OAAOL,UAAU,CAACrH,MAAM,IAAIqH,UAAU,CAACM,IAAI,CAACC,CAAC,IAAI,CAACJ,UAAU,CAACK,QAAQ,CAACD,CAAC,CAAC,CAAC;GAC5E,EAAE,CAAC7G,OAAO,EAAEK,gBAAgB,CAAC,CAAC;EAE/B,oBACI3B;IAAK+G,SAAS,EAAC;KACVU,UAAU,gBACPzH;IAAK+G,SAAS,EAAC;KACVpG,WAAW,EACXyG,kBAAkB,gBACfpH,6BAACqI,KAAK;IAACtB,SAAS,EAAC;KACZtF,IAAI,CAACgB,QAAQ,CAAC4E,cAAc,gBACzBrH,6BAACsI,cAAc;IACXnI,GAAG,EAAE+C,aAAa;IAClB7B,KAAK,EAAEA,KAAK;IACZN,QAAQ,EAAEA,QAAQ;IAClBiD,aAAa,EAAEpB,WAAW,CAACoB;IAC7B,GACF,IAAI,EACP3C,KAAK,CAACK,OAAO,CAAC4F,mBAAmB,gBAAGtH,6BAACuI,aAAa;IAAChI,MAAM,EAAEA,MAAM;IAAEc,KAAK,EAAEA;IAAS,GAAG,IAAI,EAC1FT,YAAY,EACZa,IAAI,CAAC8F,gBAAgB,gBAAGvH,6BAACwI,gBAAgB;IAACnH,KAAK,EAAEA;IAAS,GAAG,IAAI,EACjE4F,oBAAoB,gBAAGjH,6BAACyI,oBAAoB;IAACpH,KAAK,EAAEA;IAAS,GAAG,IAAI,EACpEA,KAAK,CAACK,OAAO,CAAC8F,kBAAkB,gBAC7BxH,6BAAC0I,MAAM;IACHC,QAAQ,EAAElH,IAAI,CAACmH,yBAAyB;IACxCC,QAAQ,EAAExH,KAAK,CAACyH,eAAe;IAC/BC,KAAK,EAAElH;IACT,GACF,IAAI,CACJ,GACR,IAAI,CAEN,GACN,IAAI,eACR7B;IACI+G,SAAS,EAAEA,SAAS;iBACV,QAAQ;IAClBiC,MAAM,EAAEnE,UAAU;IAClBoE,SAAS,EAAE9F,aAAa;IACxB+F,YAAY,EAAErC,gBAAgB;IAC9BsC,QAAQ,EAAElD,YAAY;IACtB9F,GAAG,EAAEY,QAAQ;IACbqI,IAAI,EAAC,OAAO;IACZC,KAAK,EAAE;MACHrG,mBAAmB;MACnBsG,gBAAgB,EAAElI,IAAI,CAACb,MAAM,GAAGyE,SAAS,GAAG,MAAM;;;MAGlDuE,OAAO,EAAE;KACZ;IACDC,QAAQ,EAAE;kBACVxJ;IAAK+G,SAAS,EAAC,UAAU;iBAAW,eAAe;IAACqC,IAAI,EAAC;KACpD/H,KAAK,CAACoI,eAAe,EAAE,CAACC,GAAG,CAACC,WAAW,iBACpC3J;IAAK+G,SAAS,EAAC,UAAU;IAACxD,GAAG,EAAEoG,WAAW,CAACxE,EAAE;IAAEiE,IAAI,EAAC;KAC/CO,WAAW,CAACC,OAAO,CAACF,GAAG,CAAC,CAACG,MAAM,EAAEC,WAAW,kBACzC9J,6BAAC+J,MAAM;IACHxG,GAAG,EAAEsG,MAAM,CAAC1E,EAAE;IACd0E,MAAM,EAAEA,MAAM;IACdG,KAAK,EAAEF,WAAW;IAClBG,YAAY,EAAEH,WAAW,KAAKH,WAAW,CAACC,OAAO,CAACrJ,MAAM,GAAG,CAAC;IAC5DsF,QAAQ,EAAEA,QAAQ;IAClBxE,KAAK,EAAEA,KAAK;IACZN,QAAQ,EAAEA;IAEjB,CAAC,CAET,CAAC,CACA,EACLK,IAAI,CAACb,MAAM,gBACRP;IAAK+G,SAAS,EAAC,UAAU;iBAAW,aAAa;IAACqC,IAAI,EAAC;KAClDvG,kBAAkB,CAACqH,GAAG,gBACnBlK;IAAKqJ,KAAK,EAAE;MAAEc,MAAM,EAAEtH,kBAAkB,CAACqH;KAAK;IAAEnD,SAAS,EAAC;IAAkB,GAC5E,IAAI,EACPnE,WAAW,CAACwH,YAAY,CAACV,GAAG,CAACW,UAAU;;IACpC,MAAMC,GAAG,GAAGlJ,IAAI,CAACiJ,UAAU,CAACL,KAAK,CAAC;IAElC,oBACIhK,6BAACA,cAAK,CAACuK,QAAQ;MAAChH,GAAG,EAAE+G,GAAG,CAACnF;oBACrBnF,6BAACwK,GAAG;MAACzD,SAAS,EAAC,oBAAoB;MAACuD,GAAG,EAAEA,GAAG;MAAEG,QAAQ,EAAEJ,UAAU,CAACL,KAAK;MAAE3I,KAAK,EAAEA;OAC5EiJ,GAAG,CAACI,eAAe,EAAE,CAAChB,GAAG,CAAC,CAACiB,IAAI,EAAEb,WAAW,kBACzC9J,6BAAC4K,IAAI;MACDD,IAAI,EAAEA,IAAI;MACVpH,GAAG,KAAKoH,IAAI,CAACxF,MAAMwF,IAAI,CAACE,QAAQ,IAAI;MACpCb,KAAK,EAAEF,WAAW;MAClBgB,SAAS,EAAET,UAAU,CAACL,KAAK,KAAK5I,IAAI,CAACb,MAAM,GAAG,CAAC;MAC/Ca,IAAI,EAAEA,IAAI;MACVqJ,QAAQ,EAAEJ,UAAU,CAACL,KAAK;MAC1BnE,QAAQ,EAAEA,QAAQ;MAClB7B,aAAa,EAAEpB,WAAW,CAACoB,aAAa;MACxCJ,cAAc,EAAEhB,WAAW,CAACgB,cAAc;MAC1CvC,KAAK,EAAEA,KAAK;MACZN,QAAQ,EAAEA;MAEjB,CAAC,CACA,EACLuJ,GAAG,CAACS,aAAa,EAAE,IAAIzK,mBAAmB,gBACvCN,6BAACgL,WAAW;MAAChB,KAAK,EAAEK,UAAU,CAACL,KAAK;MAAEiB,OAAO,EAAEnI;+BAC1CxC,mBAAmB,CAACgK,GAAG,CAAC7F,QAAQ,CAAC,yDAAjC,sBAAqC,CAC5B,GACd,IAAI,CACK;GAExB,CAAC,EACD5B,kBAAkB,CAACqI,MAAM,gBACtBlL;IAAKqJ,KAAK,EAAE;MAAEc,MAAM,EAAEtH,kBAAkB,CAACqI;KAAQ;IAAEnE,SAAS,EAAC;IAAkB,GAC/E,IAAI,CACN,gBAEN/G;IAAK+G,SAAS,EAAC;KAA0C1G,UAAU,gBAAGL,6BAACK,UAAU,OAAG,GAAG,IAAI,CAC9F,EACAqH,UAAU,gBACP1H;IAAKoJ,IAAI,EAAC,UAAU;IAACrC,SAAS,EAAC,UAAU;iBAAW;KAC/C1F,KAAK,CAAC8J,eAAe,EAAE,CAACzB,GAAG,CAAC0B,WAAW,iBACpCpL;IAAKuD,GAAG,EAAE6H,WAAW,CAACjG,EAAE;IAAEiE,IAAI,EAAC,KAAK;IAACrC,SAAS,EAAC;KAC1CqE,WAAW,CAACxB,OAAO,CAACF,GAAG,CAAC,CAAC2B,MAAM,EAAEC,SAAS,kBACvCtL,6BAACuL,MAAM;IAAChI,GAAG,EAAE8H,MAAM,CAAClG,EAAE;IAAEkG,MAAM,EAAEA,MAAM;IAAErB,KAAK,EAAEsB,SAAS;IAAEzF,QAAQ,EAAEA,QAAQ;IAAExE,KAAK,EAAEA;KAChFC,OAAO,CAAC+J,MAAM,CAAClG,EAAE,CAAC,GACb7D,OAAO,CAAC+J,MAAM,CAAClG,EAAE,CAAC,CAAC/D,IAAI,CAACsI,GAAG,CAAEY,GAAgB,IAAKA,GAAG,CAAC7F,QAAQ,CAAC4G,MAAM,CAAClG,EAAE,CAAC,CAAC,CAAC,GAC3E,IAAI,CAEjB,CAAC,CAET,CAAC,CACA,GACN,IAAI,CACN,EACL,CAAC,CAACtE,4BAA4B,IAC/BQ,KAAK,CAACK,OAAO,CAACgD,kBAAkB,KAC/BrD,KAAK,CAACmK,qBAAqB,EAAE,IAAInK,KAAK,CAACqF,oBAAoB,EAAE,CAAC,gBAC3D1G,6BAACyL,gBAAgB;IACb1E,SAAS,EAAC,gDAAgD;IAC1D2E,eAAe,EAAE7K,4BAA4B;IAC7C8K,OAAO,EAAE7K,mCAAmC;IAC5CO,KAAK,EAAEA;IACT,GACF,IAAI,CACN;AAEd,CAAC;AAEDtB,MAAM,CAACH,MAAM,GAAGA,MAAM;;;;"}
|
|
1
|
+
{"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { EditModeButton } from './components/EditModeButton';\n\nexport type Table2Texts = {\n columns: {\n resize: {\n tooltip: string;\n };\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n menu: {\n freezeColumns: (count: number) => string;\n unfreezeColumns: string;\n };\n };\n columnSettings: {\n search: string;\n tooltip: string;\n button: string;\n noResults: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n tooltip: string;\n total: string;\n };\n rowDensity: {\n tooltip: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nexport type Table2Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n };\n};\n\nconst BaseTable2 = React.forwardRef(function BaseTable2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n onRowDrop,\n toolbarLeft,\n toolbarRight,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<Table2Ref>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n const prevScrollY = React.useRef<number>(0);\n\n // react-table\n const { rows, table, footers } = useTable(props.children, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n React.useEffect(() => {\n if (tableRef.current) {\n tableRef.current.instance = {\n resetFiltering: () => table.resetColumnFilters(),\n resetRowExpansion: () => table.resetExpanded(),\n resetRowSelection: () => table.resetRowSelection(),\n resetSorting: () => table.resetSorting(),\n };\n }\n }, [table, tableRef.current]);\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n virtualiser.scrollToIndex(nextIndex - 1);\n });\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n if (event.key === 'a' && table.options.enableRowSelection) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n const scrollY = event.currentTarget.scrollTop;\n const isScrollingDown = scrollY > prevScrollY.current;\n prevScrollY.current = scrollY;\n\n const scrolledPercentage = Math.round((100 / event.currentTarget.scrollHeight) * scrollY);\n\n if (isScrollingDown && !loadingRef.current && scrolledPercentage >= 80) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } catch (error) {\n console.error(error);\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.shouldPauseHoverState) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setShouldPauseHoverState(false);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = hasInternalToolbar || !!toolbarLeft || !toolbarRight;\n\n const hasFooters = React.useMemo(() => {\n const summaryIds = Object.keys(footers);\n const visibleIds = Object.keys(columnVisibility).filter(c => !columnVisibility[c]);\n return summaryIds.length && summaryIds.some(v => !visibleIds.includes(v));\n }, [footers, columnVisibility]);\n\n return (\n <div className=\"-m-0.5 flex h-full w-[calc(100%_+_0.25rem)] flex-col gap-4 overflow-hidden p-0.5\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbarLeft}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {toolbarRight}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n {/*<ShortcutsGuideButton table={table} />*/}\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row\n className=\"group/row contents\"\n onRowDrop={onRowDrop}\n row={row}\n rowIndex={virtualRow.index}\n table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)?.()}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n {hasFooters ? (\n <div role=\"rowgroup\" className=\"contents\" data-taco=\"table2-footer\">\n {table.getFooterGroups().map(footerGroup => (\n <div key={footerGroup.id} role=\"row\" className=\"contents\">\n {footerGroup.headers.map((footer, cellIndex) => (\n <Footer key={footer.id} footer={footer} index={cellIndex} scrolled={scrolled} table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as React.ForwardRefExoticComponent<Table2Props<any>> &\n (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<Table2Ref> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<Table2Ref>) {\n const key = React.useMemo(() => String('tableKey_' + String(props.children)), [props.children]);\n return <BaseTable2 {...props} key={key} ref={ref} />;\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionRenderer, Table2Settings } from './types';\n"],"names":["Column","_","displayName","BaseTable2","React","forwardRef","props","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","onRowDrop","toolbarLeft","toolbarRight","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","prevScrollY","rows","table","footers","useTable","children","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","current","instance","resetFiltering","resetColumnFilters","resetRowExpansion","resetExpanded","resetRowSelection","resetSorting","resetFocussableColumnIndexes","editMode","isEditing","clearTimeout","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","setShouldPauseHoverState","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollY","scrollTop","isScrollingDown","scrolledPercentage","Math","round","isAllRowsSelected","getIsAllRowsSelected","error","console","handleMouseLeave","shouldPauseHoverState","className","cn","enableSettingsButton","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","hasFooters","useMemo","summaryIds","Object","keys","visibleIds","filter","c","some","v","includes","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","map","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary","Table2","String"],"mappings":"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"}
|
|
@@ -32,10 +32,11 @@ const Column = /*#__PURE__*/React__default.forwardRef(function Column(props, ref
|
|
|
32
32
|
});
|
|
33
33
|
const attributes = draggable ? dragAttributes : undefined;
|
|
34
34
|
const text = getColumnName(column);
|
|
35
|
+
const isVisible = column.getIsVisible();
|
|
35
36
|
return /*#__PURE__*/React__default.createElement("div", Object.assign({}, attributes, {
|
|
36
37
|
key: column.id,
|
|
37
38
|
className: className,
|
|
38
|
-
onClick: () => column.toggleVisibility(),
|
|
39
|
+
onClick: () => column.toggleVisibility(!isVisible),
|
|
39
40
|
ref: ref
|
|
40
41
|
}), draggable ? /*#__PURE__*/React__default.createElement(Icon, {
|
|
41
42
|
name: "drag",
|
|
@@ -47,8 +48,8 @@ const Column = /*#__PURE__*/React__default.forwardRef(function Column(props, ref
|
|
|
47
48
|
}, /*#__PURE__*/React__default.createElement("span", {
|
|
48
49
|
className: "flex-grow select-none"
|
|
49
50
|
}, text)), canHide ? /*#__PURE__*/React__default.createElement(Checkbox, {
|
|
50
|
-
checked:
|
|
51
|
-
onChange: column.toggleVisibility
|
|
51
|
+
checked: isVisible,
|
|
52
|
+
onChange: () => column.toggleVisibility(!isVisible)
|
|
52
53
|
}) : null);
|
|
53
54
|
});
|
|
54
55
|
function ColumnSettingsButton(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnSettingsButton.js","sources":["../../../../../../../../src/components/Table2/components/ColumnSettingsButton.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Table as RTable, Column as RTColumn, TableMeta } from '@tanstack/react-table';\nimport { Button } from '../../Button/Button';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { Popover } from '../../Popover/Popover';\nimport { Input } from '../../Input/Input';\nimport * as SortablePrimitive from '../../../primitives/Sortable/Sortable';\nimport { Icon } from '../../Icon/Icon';\nimport { ensureOrdering, isInternalColumn } from '../utilities/columns';\nimport { Truncate } from '../../Truncate/Truncate';\n\ntype ColumnProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n column: RTColumn<TType, unknown>;\n draggable?: boolean;\n isOrderingEnabled?: boolean;\n};\n\nfunction getColumnName<TType = unknown>(column: RTColumn<TType, unknown>) {\n return column.columnDef.header?.toString() ?? column.columnDef.id ?? '';\n}\n\nconst Column = React.forwardRef(function Column<TType = unknown>(props: ColumnProps<TType>, ref: React.Ref<HTMLDivElement>) {\n const { column, draggable = false, isOrderingEnabled, ...dragAttributes } = props;\n const canHide = column.getCanHide();\n\n const className = cn('group/column flex items-center gap-x-2 rounded py-1 px-2', {\n 'hover:bg-grey-200': canHide || draggable,\n 'hover:cursor-pointer': canHide,\n 'active:cursor-move active:bg-grey-300': draggable,\n });\n\n const attributes = draggable ? dragAttributes : undefined;\n const text = getColumnName(column);\n\n return (\n <div {...attributes} key={column.id} className={className} onClick={() => column.toggleVisibility()} ref={ref}>\n {draggable ? (\n <Icon name=\"drag\" className=\"text-grey-500 group-hover/column:text-grey-700 -mx-2 !h-5\" />\n ) : isOrderingEnabled ? (\n <span className=\"flex w-2\" />\n ) : null}\n <Truncate tooltip={text}>\n <span className=\"flex-grow select-none\">{text}</span>\n </Truncate>\n {canHide ? <Checkbox checked={column.getIsVisible()} onChange={column.toggleVisibility} /> : null}\n </div>\n );\n});\n\nexport type ColumnSettingsProps<TType = unknown> = {\n table: RTable<TType>;\n};\n\nexport function ColumnSettingsButton<TType = unknown>(props: ColumnSettingsProps<TType>) {\n const { table } = props;\n const { texts } = useLocalization();\n const [query, setQuery] = React.useState('');\n const allColumns = table.getAllLeafColumns();\n const tableMeta = table.options.meta as TableMeta<TType>;\n const columns = React.useMemo(\n () =>\n allColumns\n .filter(column => !isInternalColumn(column.id))\n .filter(column => (query?.length ? getColumnName(column).toLowerCase().includes(query.toLowerCase()) : true)),\n [allColumns, query]\n );\n\n const listClassName = 'flex max-h-64 flex-col gap-y-px overflow-auto';\n\n const handleReorder = (activeId, overId) => {\n if (columns.find(column => column.id === overId && column.columnDef.meta?.disableReordering)) {\n return;\n }\n\n table.setColumnOrder(currentOrder =>\n ensureOrdering(\n allColumns,\n SortablePrimitive.arrayMove(\n currentOrder,\n currentOrder.findIndex(c => c === activeId),\n currentOrder.findIndex(c => c === overId)\n )\n )\n );\n };\n\n const popover = popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex w-60 flex-col gap-2\">\n {table.options.enableHiding ? (\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder={texts.table2.columnSettings.search}\n value={query}\n />\n ) : null}\n {tableMeta.enableColumnReordering && columns.length && !query?.length ? (\n <SortablePrimitive.Container reorder={handleReorder}>\n <SortablePrimitive.List id=\"columns\" className={listClassName}>\n {columns.map(column => (\n <SortablePrimitive.Item\n key={column.id}\n id={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n asChild>\n <Column\n column={column as any}\n draggable={!column.columnDef.meta?.disableReordering}\n isOrderingEnabled\n />\n </SortablePrimitive.Item>\n ))}\n </SortablePrimitive.List>\n </SortablePrimitive.Container>\n ) : (\n <div className={listClassName}>\n {columns.length\n ? columns.map(column => <Column column={column as any} key={column.id} />)\n : texts.table2.columnSettings.noResults}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover>\n );\n\n return (\n <Button popover={popover} tooltip={texts.table2.columnSettings.tooltip}>\n <Icon name=\"columns\" /> {texts.table2.columnSettings.button}\n </Button>\n );\n}\n"],"names":["getColumnName","column","columnDef","header","toString","id","Column","React","forwardRef","props","ref","draggable","isOrderingEnabled","dragAttributes","canHide","getCanHide","className","cn","attributes","undefined","text","key","onClick","toggleVisibility","Icon","name","Truncate","tooltip","Checkbox","checked","getIsVisible","onChange","ColumnSettingsButton","table","texts","useLocalization","query","setQuery","useState","allColumns","getAllLeafColumns","tableMeta","options","meta","columns","useMemo","filter","isInternalColumn","length","toLowerCase","includes","listClassName","handleReorder","activeId","overId","find","disableReordering","setColumnOrder","currentOrder","ensureOrdering","SortablePrimitive","findIndex","c","popover","popoverProps","Popover","Content","align","enableHiding","Input","event","target","value","placeholder","table2","columnSettings","search","enableColumnReordering","reorder","map","disabled","asChild","noResults","Button","button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColumnSettingsButton.js","sources":["../../../../../../../../src/components/Table2/components/ColumnSettingsButton.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Table as RTable, Column as RTColumn, TableMeta } from '@tanstack/react-table';\nimport { Button } from '../../Button/Button';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { Popover } from '../../Popover/Popover';\nimport { Input } from '../../Input/Input';\nimport * as SortablePrimitive from '../../../primitives/Sortable/Sortable';\nimport { Icon } from '../../Icon/Icon';\nimport { ensureOrdering, isInternalColumn } from '../utilities/columns';\nimport { Truncate } from '../../Truncate/Truncate';\n\ntype ColumnProps<TType = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n column: RTColumn<TType, unknown>;\n draggable?: boolean;\n isOrderingEnabled?: boolean;\n};\n\nfunction getColumnName<TType = unknown>(column: RTColumn<TType, unknown>) {\n return column.columnDef.header?.toString() ?? column.columnDef.id ?? '';\n}\n\nconst Column = React.forwardRef(function Column<TType = unknown>(props: ColumnProps<TType>, ref: React.Ref<HTMLDivElement>) {\n const { column, draggable = false, isOrderingEnabled, ...dragAttributes } = props;\n const canHide = column.getCanHide();\n\n const className = cn('group/column flex items-center gap-x-2 rounded py-1 px-2', {\n 'hover:bg-grey-200': canHide || draggable,\n 'hover:cursor-pointer': canHide,\n 'active:cursor-move active:bg-grey-300': draggable,\n });\n\n const attributes = draggable ? dragAttributes : undefined;\n const text = getColumnName(column);\n const isVisible = column.getIsVisible();\n\n return (\n <div {...attributes} key={column.id} className={className} onClick={() => column.toggleVisibility(!isVisible)} ref={ref}>\n {draggable ? (\n <Icon name=\"drag\" className=\"text-grey-500 group-hover/column:text-grey-700 -mx-2 !h-5\" />\n ) : isOrderingEnabled ? (\n <span className=\"flex w-2\" />\n ) : null}\n <Truncate tooltip={text}>\n <span className=\"flex-grow select-none\">{text}</span>\n </Truncate>\n {canHide ? <Checkbox checked={isVisible} onChange={() => column.toggleVisibility(!isVisible)} /> : null}\n </div>\n );\n});\n\nexport type ColumnSettingsProps<TType = unknown> = {\n table: RTable<TType>;\n};\n\nexport function ColumnSettingsButton<TType = unknown>(props: ColumnSettingsProps<TType>) {\n const { table } = props;\n const { texts } = useLocalization();\n const [query, setQuery] = React.useState('');\n const allColumns = table.getAllLeafColumns();\n const tableMeta = table.options.meta as TableMeta<TType>;\n const columns = React.useMemo(\n () =>\n allColumns\n .filter(column => !isInternalColumn(column.id))\n .filter(column => (query?.length ? getColumnName(column).toLowerCase().includes(query.toLowerCase()) : true)),\n [allColumns, query]\n );\n\n const listClassName = 'flex max-h-64 flex-col gap-y-px overflow-auto';\n\n const handleReorder = (activeId, overId) => {\n if (columns.find(column => column.id === overId && column.columnDef.meta?.disableReordering)) {\n return;\n }\n\n table.setColumnOrder(currentOrder =>\n ensureOrdering(\n allColumns,\n SortablePrimitive.arrayMove(\n currentOrder,\n currentOrder.findIndex(c => c === activeId),\n currentOrder.findIndex(c => c === overId)\n )\n )\n );\n };\n\n const popover = popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex w-60 flex-col gap-2\">\n {table.options.enableHiding ? (\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder={texts.table2.columnSettings.search}\n value={query}\n />\n ) : null}\n {tableMeta.enableColumnReordering && columns.length && !query?.length ? (\n <SortablePrimitive.Container reorder={handleReorder}>\n <SortablePrimitive.List id=\"columns\" className={listClassName}>\n {columns.map(column => (\n <SortablePrimitive.Item\n key={column.id}\n id={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n asChild>\n <Column\n column={column as any}\n draggable={!column.columnDef.meta?.disableReordering}\n isOrderingEnabled\n />\n </SortablePrimitive.Item>\n ))}\n </SortablePrimitive.List>\n </SortablePrimitive.Container>\n ) : (\n <div className={listClassName}>\n {columns.length\n ? columns.map(column => <Column column={column as any} key={column.id} />)\n : texts.table2.columnSettings.noResults}\n </div>\n )}\n </div>\n </Popover.Content>\n </Popover>\n );\n\n return (\n <Button popover={popover} tooltip={texts.table2.columnSettings.tooltip}>\n <Icon name=\"columns\" /> {texts.table2.columnSettings.button}\n </Button>\n );\n}\n"],"names":["getColumnName","column","columnDef","header","toString","id","Column","React","forwardRef","props","ref","draggable","isOrderingEnabled","dragAttributes","canHide","getCanHide","className","cn","attributes","undefined","text","isVisible","getIsVisible","key","onClick","toggleVisibility","Icon","name","Truncate","tooltip","Checkbox","checked","onChange","ColumnSettingsButton","table","texts","useLocalization","query","setQuery","useState","allColumns","getAllLeafColumns","tableMeta","options","meta","columns","useMemo","filter","isInternalColumn","length","toLowerCase","includes","listClassName","handleReorder","activeId","overId","find","disableReordering","setColumnOrder","currentOrder","ensureOrdering","SortablePrimitive","findIndex","c","popover","popoverProps","Popover","Content","align","enableHiding","Input","event","target","value","placeholder","table2","columnSettings","search","enableColumnReordering","reorder","map","disabled","asChild","noResults","Button","button"],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { useLocalization } from '../../../Provider/Localization.js';
|
|
|
7
7
|
import { Menu } from '../../../Menu/Menu.js';
|
|
8
8
|
import { isOverflowing } from '../../../../utils/dom.js';
|
|
9
9
|
import { flexRender } from '@tanstack/react-table';
|
|
10
|
-
import { isInternalFrozenColumn, MIN_COLUMN_SIZE } from '../../utilities/columns.js';
|
|
10
|
+
import { isInternalFrozenColumn, isInternalColumn, MIN_COLUMN_SIZE } from '../../utilities/columns.js';
|
|
11
11
|
import { getCellSizingClasses, getCellAlignmentClasses } from '../../utilities/cell.js';
|
|
12
12
|
import { ColumnBase } from './Base.js';
|
|
13
13
|
|
|
@@ -85,6 +85,9 @@ const Header = function Header(props) {
|
|
|
85
85
|
className: "truncate",
|
|
86
86
|
ref: textRef
|
|
87
87
|
}, flexRender(header.column.columnDef.header, header.getContext()));
|
|
88
|
+
const {
|
|
89
|
+
texts
|
|
90
|
+
} = useLocalization();
|
|
88
91
|
return /*#__PURE__*/React__default.createElement(ColumnBase, Object.assign({}, columnProps, {
|
|
89
92
|
// base props
|
|
90
93
|
column: header.column,
|
|
@@ -114,14 +117,14 @@ const Header = function Header(props) {
|
|
|
114
117
|
name: "chevron-down-solid",
|
|
115
118
|
className: "pointer-events-none -my-0.5"
|
|
116
119
|
})
|
|
117
|
-
}[header.column.getIsSorted()]) !== null && _asc$desc$header$colu2 !== void 0 ? _asc$desc$header$colu2 : null), (_header$column$column8 = header.column.columnDef.meta) !== null && _header$column$column8 !== void 0 && _header$column$column8.menu || enableColumnFreezing ? /*#__PURE__*/React__default.createElement(HeaderMenu, {
|
|
120
|
+
}[header.column.getIsSorted()]) !== null && _asc$desc$header$colu2 !== void 0 ? _asc$desc$header$colu2 : null), !isInternalColumn(header.column.id) && ((_header$column$column8 = header.column.columnDef.meta) !== null && _header$column$column8 !== void 0 && _header$column$column8.menu || enableColumnFreezing) ? /*#__PURE__*/React__default.createElement(HeaderMenu, {
|
|
118
121
|
menu: (_header$column$column9 = header.column.columnDef.meta) === null || _header$column$column9 === void 0 ? void 0 : _header$column$column9.menu,
|
|
119
122
|
enableColumnFreezing: enableColumnFreezing,
|
|
120
123
|
table: table,
|
|
121
124
|
columnIndex: index
|
|
122
125
|
}) : null), header.column.getCanResize() ? /*#__PURE__*/React__default.createElement(Tooltip, {
|
|
123
126
|
placement: "top",
|
|
124
|
-
title:
|
|
127
|
+
title: texts.table2.columns.resize.tooltip
|
|
125
128
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
126
129
|
className: cn('invisible absolute right-0 top-0 flex h-full cursor-col-resize touch-none select-none rounded py-0.5 group-hover/header:visible', {
|
|
127
130
|
'-mr-2.5 w-5 justify-center': !isLastColumn,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sources":["../../../../../../../../../src/components/Table2/components/column/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { flexRender, Header as RTHeader, TableMeta, Table as RTTable } from '@tanstack/react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { isInternalFrozenColumn, MIN_COLUMN_SIZE } from '../../utilities/columns';\nimport { isOverflowing } from '../../../../utils/dom';\nimport { getCellAlignmentClasses, getCellSizingClasses } from '../../utilities/cell';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { Table2ColumnHeaderMenu } from '../../types';\nimport { useLocalization } from '../../../Provider/Localization';\n\ntype HeaderProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n header: RTHeader<TType, unknown>;\n index: number;\n isLastColumn: boolean;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const Header = function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, index, isLastColumn, table, tableRef, ...columnProps } = props;\n const textRef = React.useRef<HTMLDivElement>(null);\n const frozen = !!header.column.getIsPinned();\n const isOtherColumnBeingResized =\n table.getState().columnSizingInfo.isResizingColumn && table.getState().columnSizingInfo.isResizingColumn !== header.id;\n\n const { enableColumnFreezing } = table.options.meta as TableMeta<TType>;\n\n const className = cn(\n 'group/header sticky top-0 bg-white border-b-2 relative font-bold z-[5] hover:z-[6]',\n {\n 'z-[6]': header.column.getIsResizing(),\n 'z-[7]': frozen, // frozen headers should show above cells and other headers, so we assign a higher z-index\n 'cursor-pointer select-none': header.column.getCanSort(),\n 'hover:bg-grey-100': header.column.getCanSort() || header.column.getCanResize() || header.column.columnDef.meta?.menu,\n 'pointer-events-none': isOtherColumnBeingResized,\n },\n getCellSizingClasses('normal'),\n header.column.columnDef.meta?.headerClassName,\n props.className\n );\n\n // set the column size after the first render (after auto layout with 'max-content') has run\n // this way columns default to fit their content, then we save that size for resizing\n const refCallback = (node: HTMLDivElement) => {\n if (node && !table.getState().columnSizing[header.id]) {\n const size = Math.ceil(node.getBoundingClientRect().width);\n table.setColumnSizing(sizes => ({\n ...sizes,\n [header.id]: !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size,\n }));\n }\n };\n\n // we use mousedown because clicking and dragging resize and then letting go over the\n // column, results in sorting being applied\n const handleMouseDown = header.column.getCanSort()\n ? (event: React.MouseEvent) => {\n // only detect left clicks\n if (event.button === 0) {\n event.preventDefault();\n table.resetRowSelection();\n header.column.toggleSorting();\n tableRef.current?.focus();\n }\n }\n : undefined;\n\n const handleResizerDoubleClick = () => {\n const size = header.column.columnDef.meta?.defaultWidth;\n table.setColumnSizing(sizes => {\n const nextSizes = { ...sizes };\n\n if (size) {\n nextSizes[header.id] = !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size;\n } else {\n delete nextSizes[header.id];\n }\n\n return nextSizes;\n });\n };\n\n const handleResizerClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n const handleResize = event => {\n // prevent the parent onMouseDown propagating\n event.stopPropagation();\n header.getResizeHandler()(event);\n };\n\n const content = (\n <div className=\"truncate\" ref={textRef}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n );\n\n return (\n <ColumnBase\n {...columnProps}\n // base props\n column={header.column}\n table={table}\n // other props\n aria-sort={\n {\n asc: 'ascending',\n desc: 'descending',\n }[header.column.getIsSorted() as any] ?? 'none'\n }\n className={className}\n onMouseDown={handleMouseDown}\n ref={refCallback}\n role=\"columnheader\"\n // helper props\n data-column-index={index}>\n {isInternalFrozenColumn(header.id) ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n <>\n <div\n className={cn(\n 'flex flex-grow overflow-hidden',\n {\n 'group-hover/header:-ml-2': !!header.column.getIsSorted() && !!header.column.columnDef.meta?.menu,\n },\n getCellAlignmentClasses(header.column.columnDef.meta?.align)\n )}>\n {isOverflowing(textRef.current) ? (\n <Tooltip title={header.column.columnDef.meta?.tooltip ?? content} placement=\"top\">\n {content}\n </Tooltip>\n ) : (\n content\n )}\n {{\n asc: <Icon name=\"chevron-up-solid\" className=\"pointer-events-none -my-0.5\" />,\n desc: <Icon name=\"chevron-down-solid\" className=\"pointer-events-none -my-0.5\" />,\n }[header.column.getIsSorted() as string] ?? null}\n </div>\n {header.column.columnDef.meta?.menu || enableColumnFreezing ? (\n <HeaderMenu\n menu={header.column.columnDef.meta?.menu}\n enableColumnFreezing={enableColumnFreezing}\n table={table}\n columnIndex={index}\n />\n ) : null}\n </>\n )}\n {header.column.getCanResize() ? (\n <Tooltip placement=\"top\" title=\"Resize column\">\n <div\n className={cn(\n 'invisible absolute right-0 top-0 flex h-full cursor-col-resize touch-none select-none rounded py-0.5 group-hover/header:visible',\n {\n '-mr-2.5 w-5 justify-center': !isLastColumn,\n 'w-2': isLastColumn,\n '!visible': header.column.getIsResizing(),\n }\n )}\n onDoubleClick={handleResizerDoubleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}\n // this prevents sort handlers being activated\n onClick={handleResizerClick}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': header.column.getIsResizing(),\n 'bg-grey-500 hover:bg-grey-700': !header.column.getIsResizing(),\n })}\n />\n </div>\n </Tooltip>\n ) : null}\n </ColumnBase>\n );\n};\n\ntype HeaderMenuProps = {\n enableColumnFreezing: boolean;\n menu?: Table2ColumnHeaderMenu;\n table: RTTable<any>;\n columnIndex: number;\n};\n\nconst HeaderMenu = ({ menu, enableColumnFreezing, table, columnIndex }: HeaderMenuProps) => {\n const [open, setOpen] = React.useState(false);\n const { texts } = useLocalization();\n const { frozenColumnsCount, setFrozenColumnsCount } = table.options.meta as TableMeta<any>;\n\n const columns = table.getAllLeafColumns();\n const { columnVisibility, columnOrder } = table.getState();\n const visibleInternalColumnsCount = React.useMemo(\n () => columns.filter(column => isInternalFrozenColumn(column.id)).length,\n [columns]\n );\n const columnPosition = columnIndex + 1;\n const externalFrozenColumnsCount = columnPosition - visibleInternalColumnsCount;\n const isSomeExternalColumnFrozen = frozenColumnsCount !== 0;\n const freeAllColumns = () => {\n setFrozenColumnsCount(0);\n };\n const freezeColumns = () => {\n setFrozenColumnsCount(externalFrozenColumnsCount);\n };\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 hidden !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end group-hover/header:flex',\n {\n '!flex': open,\n }\n );\n const freezeMenuItems = [\n <Menu.Item icon=\"column-freeze\" onClick={freezeColumns} key=\"_freeze-columns_\">\n {texts.table2.columns.menu.freezeColumns(externalFrozenColumnsCount)}\n </Menu.Item>,\n ...(isSomeExternalColumnFrozen\n ? [\n <Menu.Item icon=\"column-unfreeze\" onClick={freeAllColumns} key=\"_unfreeze-columns_\">\n {texts.table2.columns.menu.unfreezeColumns}\n </Menu.Item>,\n ]\n : []),\n ];\n\n React.useEffect(() => {\n // Update column pinning/freezing whenever frozen columns count changes, or column order or visiblity changes\n const totalFrozenColumnsCount = visibleInternalColumnsCount + frozenColumnsCount;\n\n table.setColumnPinning({ left: columns.slice(0, totalFrozenColumnsCount).map(column => column.id), right: [] });\n }, [frozenColumnsCount, columnVisibility, columnOrder, visibleInternalColumnsCount]);\n\n const menuProps = {\n trigger: <IconButton className={className} icon=\"more\" />,\n open: open,\n onChange: setOpen,\n };\n let menuComponent: JSX.Element | null = null;\n\n if (menu) {\n menuComponent = menu(menuProps);\n\n if (enableColumnFreezing) {\n const menuContent = React.Children.only(menuComponent.props.children);\n const menuContentChildren = React.Children.toArray(menuContent.props.children);\n const menuItemsWithFreezingItems = [...menuContentChildren, <Menu.Separator />, ...freezeMenuItems];\n const menuContentWithFreezingItems = (\n <Menu.Content>\n {menuItemsWithFreezingItems.map((item, key) => React.cloneElement(item as any, { key }))}\n </Menu.Content>\n );\n\n menuComponent = React.cloneElement(menuComponent, { children: menuContentWithFreezingItems });\n }\n } else if (enableColumnFreezing) {\n menuComponent = (\n <Menu {...menuProps}>\n <Menu.Content>{freezeMenuItems}</Menu.Content>\n </Menu>\n );\n }\n\n // This div catches the mousedown events from menu item and menu trigger and prevents\n // mousedown event from bubbling up to the Header component to prevent toggling sorting\n return menuComponent ? <div onMouseDown={event => event.stopPropagation()}>{menuComponent}</div> : null;\n};\n"],"names":["Header","props","header","index","isLastColumn","table","tableRef","columnProps","textRef","React","useRef","frozen","column","getIsPinned","isOtherColumnBeingResized","getState","columnSizingInfo","isResizingColumn","id","enableColumnFreezing","options","meta","className","cn","getIsResizing","getCanSort","getCanResize","columnDef","menu","getCellSizingClasses","headerClassName","refCallback","node","columnSizing","size","Math","ceil","getBoundingClientRect","width","setColumnSizing","sizes","isInternalFrozenColumn","MIN_COLUMN_SIZE","handleMouseDown","event","button","preventDefault","resetRowSelection","toggleSorting","current","focus","undefined","handleResizerDoubleClick","defaultWidth","nextSizes","handleResizerClick","stopPropagation","handleResize","getResizeHandler","content","ref","flexRender","getContext","ColumnBase","asc","desc","getIsSorted","onMouseDown","role","getCellAlignmentClasses","align","isOverflowing","Tooltip","title","tooltip","placement","Icon","name","HeaderMenu","columnIndex","onDoubleClick","onTouchStart","onClick","open","setOpen","useState","texts","useLocalization","frozenColumnsCount","setFrozenColumnsCount","columns","getAllLeafColumns","columnVisibility","columnOrder","visibleInternalColumnsCount","useMemo","filter","length","columnPosition","externalFrozenColumnsCount","isSomeExternalColumnFrozen","freeAllColumns","freezeColumns","freezeMenuItems","Menu","Item","icon","key","table2","unfreezeColumns","useEffect","totalFrozenColumnsCount","setColumnPinning","left","slice","map","right","menuProps","trigger","IconButton","onChange","menuComponent","menuContent","Children","only","children","menuContentChildren","toArray","menuItemsWithFreezingItems","Separator","menuContentWithFreezingItems","Content","item","cloneElement"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Header.js","sources":["../../../../../../../../../src/components/Table2/components/column/Header.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { flexRender, Header as RTHeader, TableMeta, Table as RTTable } from '@tanstack/react-table';\nimport { Icon } from '../../../Icon/Icon';\nimport { ColumnBase, ColumnBaseProps } from './Base';\nimport { Tooltip } from '../../../Tooltip/Tooltip';\nimport { isInternalColumn, isInternalFrozenColumn, MIN_COLUMN_SIZE } from '../../utilities/columns';\nimport { isOverflowing } from '../../../../utils/dom';\nimport { getCellAlignmentClasses, getCellSizingClasses } from '../../utilities/cell';\nimport { IconButton } from '../../../IconButton/IconButton';\nimport { Menu } from '../../../Menu/Menu';\nimport { Table2ColumnHeaderMenu } from '../../types';\nimport { useLocalization } from '../../../Provider/Localization';\n\ntype HeaderProps<TType = unknown> = Omit<ColumnBaseProps<TType>, 'column' | 'isEditing'> & {\n header: RTHeader<TType, unknown>;\n index: number;\n isLastColumn: boolean;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nexport const Header = function Header<TType = unknown>(props: HeaderProps<TType>) {\n const { header, index, isLastColumn, table, tableRef, ...columnProps } = props;\n const textRef = React.useRef<HTMLDivElement>(null);\n const frozen = !!header.column.getIsPinned();\n const isOtherColumnBeingResized =\n table.getState().columnSizingInfo.isResizingColumn && table.getState().columnSizingInfo.isResizingColumn !== header.id;\n\n const { enableColumnFreezing } = table.options.meta as TableMeta<TType>;\n\n const className = cn(\n 'group/header sticky top-0 bg-white border-b-2 relative font-bold z-[5] hover:z-[6]',\n {\n 'z-[6]': header.column.getIsResizing(),\n 'z-[7]': frozen, // frozen headers should show above cells and other headers, so we assign a higher z-index\n 'cursor-pointer select-none': header.column.getCanSort(),\n 'hover:bg-grey-100': header.column.getCanSort() || header.column.getCanResize() || header.column.columnDef.meta?.menu,\n 'pointer-events-none': isOtherColumnBeingResized,\n },\n getCellSizingClasses('normal'),\n header.column.columnDef.meta?.headerClassName,\n props.className\n );\n\n // set the column size after the first render (after auto layout with 'max-content') has run\n // this way columns default to fit their content, then we save that size for resizing\n const refCallback = (node: HTMLDivElement) => {\n if (node && !table.getState().columnSizing[header.id]) {\n const size = Math.ceil(node.getBoundingClientRect().width);\n table.setColumnSizing(sizes => ({\n ...sizes,\n [header.id]: !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size,\n }));\n }\n };\n\n // we use mousedown because clicking and dragging resize and then letting go over the\n // column, results in sorting being applied\n const handleMouseDown = header.column.getCanSort()\n ? (event: React.MouseEvent) => {\n // only detect left clicks\n if (event.button === 0) {\n event.preventDefault();\n table.resetRowSelection();\n header.column.toggleSorting();\n tableRef.current?.focus();\n }\n }\n : undefined;\n\n const handleResizerDoubleClick = () => {\n const size = header.column.columnDef.meta?.defaultWidth;\n table.setColumnSizing(sizes => {\n const nextSizes = { ...sizes };\n\n if (size) {\n nextSizes[header.id] = !isInternalFrozenColumn(header.id) && size < MIN_COLUMN_SIZE ? MIN_COLUMN_SIZE : size;\n } else {\n delete nextSizes[header.id];\n }\n\n return nextSizes;\n });\n };\n\n const handleResizerClick = event => {\n event.stopPropagation();\n event.preventDefault();\n };\n\n const handleResize = event => {\n // prevent the parent onMouseDown propagating\n event.stopPropagation();\n header.getResizeHandler()(event);\n };\n\n const content = (\n <div className=\"truncate\" ref={textRef}>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </div>\n );\n\n const { texts } = useLocalization();\n\n return (\n <ColumnBase\n {...columnProps}\n // base props\n column={header.column}\n table={table}\n // other props\n aria-sort={\n {\n asc: 'ascending',\n desc: 'descending',\n }[header.column.getIsSorted() as any] ?? 'none'\n }\n className={className}\n onMouseDown={handleMouseDown}\n ref={refCallback}\n role=\"columnheader\"\n // helper props\n data-column-index={index}>\n {isInternalFrozenColumn(header.id) ? (\n flexRender(header.column.columnDef.header, header.getContext())\n ) : (\n <>\n <div\n className={cn(\n 'flex flex-grow overflow-hidden',\n {\n 'group-hover/header:-ml-2': !!header.column.getIsSorted() && !!header.column.columnDef.meta?.menu,\n },\n getCellAlignmentClasses(header.column.columnDef.meta?.align)\n )}>\n {isOverflowing(textRef.current) ? (\n <Tooltip title={header.column.columnDef.meta?.tooltip ?? content} placement=\"top\">\n {content}\n </Tooltip>\n ) : (\n content\n )}\n {{\n asc: <Icon name=\"chevron-up-solid\" className=\"pointer-events-none -my-0.5\" />,\n desc: <Icon name=\"chevron-down-solid\" className=\"pointer-events-none -my-0.5\" />,\n }[header.column.getIsSorted() as string] ?? null}\n </div>\n {!isInternalColumn(header.column.id) && (header.column.columnDef.meta?.menu || enableColumnFreezing) ? (\n <HeaderMenu\n menu={header.column.columnDef.meta?.menu}\n enableColumnFreezing={enableColumnFreezing}\n table={table}\n columnIndex={index}\n />\n ) : null}\n </>\n )}\n {header.column.getCanResize() ? (\n <Tooltip placement=\"top\" title={texts.table2.columns.resize.tooltip}>\n <div\n className={cn(\n 'invisible absolute right-0 top-0 flex h-full cursor-col-resize touch-none select-none rounded py-0.5 group-hover/header:visible',\n {\n '-mr-2.5 w-5 justify-center': !isLastColumn,\n 'w-2': isLastColumn,\n '!visible': header.column.getIsResizing(),\n }\n )}\n onDoubleClick={handleResizerDoubleClick}\n onMouseDown={handleResize}\n onTouchStart={handleResize}\n // this prevents sort handlers being activated\n onClick={handleResizerClick}>\n <div\n className={cn('h-full w-1 rounded', {\n '!bg-blue-500': header.column.getIsResizing(),\n 'bg-grey-500 hover:bg-grey-700': !header.column.getIsResizing(),\n })}\n />\n </div>\n </Tooltip>\n ) : null}\n </ColumnBase>\n );\n};\n\ntype HeaderMenuProps = {\n enableColumnFreezing: boolean;\n menu?: Table2ColumnHeaderMenu;\n table: RTTable<any>;\n columnIndex: number;\n};\n\nconst HeaderMenu = ({ menu, enableColumnFreezing, table, columnIndex }: HeaderMenuProps) => {\n const [open, setOpen] = React.useState(false);\n const { texts } = useLocalization();\n const { frozenColumnsCount, setFrozenColumnsCount } = table.options.meta as TableMeta<any>;\n\n const columns = table.getAllLeafColumns();\n const { columnVisibility, columnOrder } = table.getState();\n const visibleInternalColumnsCount = React.useMemo(\n () => columns.filter(column => isInternalFrozenColumn(column.id)).length,\n [columns]\n );\n const columnPosition = columnIndex + 1;\n const externalFrozenColumnsCount = columnPosition - visibleInternalColumnsCount;\n const isSomeExternalColumnFrozen = frozenColumnsCount !== 0;\n const freeAllColumns = () => {\n setFrozenColumnsCount(0);\n };\n const freezeColumns = () => {\n setFrozenColumnsCount(externalFrozenColumnsCount);\n };\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 hidden !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end group-hover/header:flex',\n {\n '!flex': open,\n }\n );\n const freezeMenuItems = [\n <Menu.Item icon=\"column-freeze\" onClick={freezeColumns} key=\"_freeze-columns_\">\n {texts.table2.columns.menu.freezeColumns(externalFrozenColumnsCount)}\n </Menu.Item>,\n ...(isSomeExternalColumnFrozen\n ? [\n <Menu.Item icon=\"column-unfreeze\" onClick={freeAllColumns} key=\"_unfreeze-columns_\">\n {texts.table2.columns.menu.unfreezeColumns}\n </Menu.Item>,\n ]\n : []),\n ];\n\n React.useEffect(() => {\n // Update column pinning/freezing whenever frozen columns count changes, or column order or visiblity changes\n const totalFrozenColumnsCount = visibleInternalColumnsCount + frozenColumnsCount;\n\n table.setColumnPinning({ left: columns.slice(0, totalFrozenColumnsCount).map(column => column.id), right: [] });\n }, [frozenColumnsCount, columnVisibility, columnOrder, visibleInternalColumnsCount]);\n\n const menuProps = {\n trigger: <IconButton className={className} icon=\"more\" />,\n open: open,\n onChange: setOpen,\n };\n let menuComponent: JSX.Element | null = null;\n\n if (menu) {\n menuComponent = menu(menuProps);\n\n if (enableColumnFreezing) {\n const menuContent = React.Children.only(menuComponent.props.children);\n const menuContentChildren = React.Children.toArray(menuContent.props.children);\n const menuItemsWithFreezingItems = [...menuContentChildren, <Menu.Separator />, ...freezeMenuItems];\n const menuContentWithFreezingItems = (\n <Menu.Content>\n {menuItemsWithFreezingItems.map((item, key) => React.cloneElement(item as any, { key }))}\n </Menu.Content>\n );\n\n menuComponent = React.cloneElement(menuComponent, { children: menuContentWithFreezingItems });\n }\n } else if (enableColumnFreezing) {\n menuComponent = (\n <Menu {...menuProps}>\n <Menu.Content>{freezeMenuItems}</Menu.Content>\n </Menu>\n );\n }\n\n // This div catches the mousedown events from menu item and menu trigger and prevents\n // mousedown event from bubbling up to the Header component to prevent toggling sorting\n return menuComponent ? <div onMouseDown={event => event.stopPropagation()}>{menuComponent}</div> : null;\n};\n"],"names":["Header","props","header","index","isLastColumn","table","tableRef","columnProps","textRef","React","useRef","frozen","column","getIsPinned","isOtherColumnBeingResized","getState","columnSizingInfo","isResizingColumn","id","enableColumnFreezing","options","meta","className","cn","getIsResizing","getCanSort","getCanResize","columnDef","menu","getCellSizingClasses","headerClassName","refCallback","node","columnSizing","size","Math","ceil","getBoundingClientRect","width","setColumnSizing","sizes","isInternalFrozenColumn","MIN_COLUMN_SIZE","handleMouseDown","event","button","preventDefault","resetRowSelection","toggleSorting","current","focus","undefined","handleResizerDoubleClick","defaultWidth","nextSizes","handleResizerClick","stopPropagation","handleResize","getResizeHandler","content","ref","flexRender","getContext","texts","useLocalization","ColumnBase","asc","desc","getIsSorted","onMouseDown","role","getCellAlignmentClasses","align","isOverflowing","Tooltip","title","tooltip","placement","Icon","name","isInternalColumn","HeaderMenu","columnIndex","table2","columns","resize","onDoubleClick","onTouchStart","onClick","open","setOpen","useState","frozenColumnsCount","setFrozenColumnsCount","getAllLeafColumns","columnVisibility","columnOrder","visibleInternalColumnsCount","useMemo","filter","length","columnPosition","externalFrozenColumnsCount","isSomeExternalColumnFrozen","freeAllColumns","freezeColumns","freezeMenuItems","Menu","Item","icon","key","unfreezeColumns","useEffect","totalFrozenColumnsCount","setColumnPinning","left","slice","map","right","menuProps","trigger","IconButton","onChange","menuComponent","menuContent","Children","only","children","menuContentChildren","toArray","menuItemsWithFreezingItems","Separator","menuContentWithFreezingItems","Content","item","cloneElement"],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
+
import { useDropTarget } from '../../../../utils/hooks/useDropTarget.js';
|
|
2
3
|
import { RowContextProvider, useRowContext } from './Context.js';
|
|
3
4
|
|
|
4
5
|
const InternalRow = ({
|
|
6
|
+
onRowDrop,
|
|
5
7
|
row,
|
|
6
8
|
rowIndex,
|
|
7
9
|
table,
|
|
@@ -13,8 +15,10 @@ const InternalRow = ({
|
|
|
13
15
|
const meta = table.options.meta;
|
|
14
16
|
const isActiveRow = meta.activeRowIndex === rowIndex;
|
|
15
17
|
const isDragging = meta.dragging[row.id];
|
|
18
|
+
const [, dropTargetProps] = useDropTarget(event => onRowDrop(event, row.original));
|
|
16
19
|
const attributes = {
|
|
17
20
|
...props,
|
|
21
|
+
...(typeof onRowDrop === 'function' ? dropTargetProps : undefined),
|
|
18
22
|
'aria-current': isActiveRow ? true : undefined,
|
|
19
23
|
'aria-grabbed': isDragging ? true : undefined,
|
|
20
24
|
'data-row-index': rowIndex,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.js","sources":["../../../../../../../../../src/components/Table2/components/row/Row.tsx"],"sourcesContent":["import React from 'react';\nimport { TableMeta } from '@tanstack/react-table';\nimport { RowContextProvider, useRowContext } from './Context';\n\nconst InternalRow = ({ row, rowIndex, table, ...props }) => {\n const { setIsHovered } = useRowContext();\n\n const meta = table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === rowIndex;\n const isDragging = meta.dragging[row.id];\n\n const attributes = {\n ...props,\n 'aria-current': isActiveRow ? true : undefined,\n 'aria-grabbed': isDragging ? true : undefined,\n 'data-row-index': rowIndex,\n draggable: meta.enableRowDragging ? true : undefined,\n onMouseEnter: () => setIsHovered(true),\n onMouseLeave: () => setIsHovered(false),\n role: 'row',\n };\n\n return <div {...attributes} />;\n};\n\nexport const Row = props => {\n const meta = props.table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === props.rowIndex;\n\n return (\n <RowContextProvider isActiveRow={isActiveRow} meta={props.table.options.meta} rowIndex={props.rowIndex}>\n <InternalRow {...props} />\n </RowContextProvider>\n );\n};\n"],"names":["InternalRow","row","rowIndex","table","props","setIsHovered","useRowContext","meta","options","isActiveRow","activeRowIndex","isDragging","dragging","id","attributes","undefined","draggable","enableRowDragging","onMouseEnter","onMouseLeave","role","React","Row","RowContextProvider"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Row.js","sources":["../../../../../../../../../src/components/Table2/components/row/Row.tsx"],"sourcesContent":["import React from 'react';\nimport { TableMeta } from '@tanstack/react-table';\nimport { RowContextProvider, useRowContext } from './Context';\nimport { useDropTarget } from '../../../../utils/hooks/useDropTarget';\n\nconst InternalRow = ({ onRowDrop, row, rowIndex, table, ...props }) => {\n const { setIsHovered } = useRowContext();\n\n const meta = table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === rowIndex;\n const isDragging = meta.dragging[row.id];\n\n const [, dropTargetProps] = useDropTarget(event => onRowDrop(event, row.original));\n\n const attributes = {\n ...props,\n ...(typeof onRowDrop === 'function' ? dropTargetProps : undefined),\n 'aria-current': isActiveRow ? true : undefined,\n 'aria-grabbed': isDragging ? true : undefined,\n 'data-row-index': rowIndex,\n draggable: meta.enableRowDragging ? true : undefined,\n onMouseEnter: () => setIsHovered(true),\n onMouseLeave: () => setIsHovered(false),\n role: 'row',\n };\n\n return <div {...attributes} />;\n};\n\nexport const Row = props => {\n const meta = props.table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === props.rowIndex;\n\n return (\n <RowContextProvider isActiveRow={isActiveRow} meta={props.table.options.meta} rowIndex={props.rowIndex}>\n <InternalRow {...props} />\n </RowContextProvider>\n );\n};\n"],"names":["InternalRow","onRowDrop","row","rowIndex","table","props","setIsHovered","useRowContext","meta","options","isActiveRow","activeRowIndex","isDragging","dragging","id","dropTargetProps","useDropTarget","event","original","attributes","undefined","draggable","enableRowDragging","onMouseEnter","onMouseLeave","role","React","Row","RowContextProvider"],"mappings":";;;;AAKA,MAAMA,WAAW,GAAG,CAAC;EAAEC,SAAS;EAAEC,GAAG;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;CAAO;EAC9D,MAAM;IAAEC;GAAc,GAAGC,aAAa,EAAE;EAExC,MAAMC,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAACD,IAAsB;EACjD,MAAME,WAAW,GAAGF,IAAI,CAACG,cAAc,KAAKR,QAAQ;EACpD,MAAMS,UAAU,GAAGJ,IAAI,CAACK,QAAQ,CAACX,GAAG,CAACY,EAAE,CAAC;EAExC,MAAM,GAAGC,eAAe,CAAC,GAAGC,aAAa,CAACC,KAAK,IAAIhB,SAAS,CAACgB,KAAK,EAAEf,GAAG,CAACgB,QAAQ,CAAC,CAAC;EAElF,MAAMC,UAAU,GAAG;IACf,GAAGd,KAAK;IACR,IAAI,OAAOJ,SAAS,KAAK,UAAU,GAAGc,eAAe,GAAGK,SAAS,CAAC;IAClE,cAAc,EAAEV,WAAW,GAAG,IAAI,GAAGU,SAAS;IAC9C,cAAc,EAAER,UAAU,GAAG,IAAI,GAAGQ,SAAS;IAC7C,gBAAgB,EAAEjB,QAAQ;IAC1BkB,SAAS,EAAEb,IAAI,CAACc,iBAAiB,GAAG,IAAI,GAAGF,SAAS;IACpDG,YAAY,EAAE,MAAMjB,YAAY,CAAC,IAAI,CAAC;IACtCkB,YAAY,EAAE,MAAMlB,YAAY,CAAC,KAAK,CAAC;IACvCmB,IAAI,EAAE;GACT;EAED,oBAAOC,sDAASP,UAAU,EAAI;AAClC,CAAC;MAEYQ,GAAG,GAAGtB,KAAK;EACpB,MAAMG,IAAI,GAAGH,KAAK,CAACD,KAAK,CAACK,OAAO,CAACD,IAAsB;EACvD,MAAME,WAAW,GAAGF,IAAI,CAACG,cAAc,KAAKN,KAAK,CAACF,QAAQ;EAE1D,oBACIuB,6BAACE,kBAAkB;IAAClB,WAAW,EAAEA,WAAW;IAAEF,IAAI,EAAEH,KAAK,CAACD,KAAK,CAACK,OAAO,CAACD,IAAI;IAAEL,QAAQ,EAAEE,KAAK,CAACF;kBAC1FuB,6BAAC1B,WAAW,oBAAKK,KAAK,EAAI,CACT;AAE7B;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table2/types.ts"],"sourcesContent":["import React from 'react';\nimport {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnSizingState,\n OnChangeFn,\n Row,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { IconName } from '../Icon/Icon';\nimport { MenuProps } from '../Menu/Menu';\n\nexport enum Table2FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table2Filter<TType = any> = {\n comparator?: Table2FilterComparator;\n value: TType | TType[];\n};\n\nexport type ColumnOffsetState = Record<string, number | undefined>;\nexport type RowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type CellAlignment = 'left' | 'center' | 'right';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\n\nexport type Table2ColumnHeaderRenderer<TType = any> = (value: any, row: TType) => JSX.Element | string | null;\nexport type Table2ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\nexport type Table2ColumnFooterRenderer = (values: any[]) => JSX.Element | string | null;\n\nexport type Table2ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur: (newValue?: any) => Promise<void>;\n onFocus: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n // This is a temporary fix to enable up/down arrow key shortcuts on input in quick mode. For some reason,\n // the preventDefault is true on Taco Input, so the keyboard shortcuts doesn't work. By adding this\n // data attribute we make sure the event is coming from a control component, and then we can make sure\n // keyboard shortcut works as expected.\n 'data-inline-editing-component'?: 'true';\n};\nexport type Table2ColumnControlRenderer<TType = any> =\n | ((props: Table2ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\nexport type SortFn<TType = unknown> = (rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1;\n\nexport type Table2ColumnProps<TType = any> = {\n accessor: string;\n align?: CellAlignment;\n className?: string | ((row: Row<TType>) => string);\n control?: Table2ColumnControlRenderer<TType>;\n dataType?: ColumnDataType;\n defaultActiveColumnIndex?: number;\n defaultActiveRowIndex?: number;\n defaultHidden?: boolean;\n disableFiltering?: boolean;\n disableHiding?: boolean;\n disableReordering?: boolean;\n disableResizing?: boolean;\n disableSorting?: boolean;\n defaultWidth?: number;\n header: string;\n headerClassName?: string;\n footer?: Table2ColumnFooterRenderer;\n renderer?: Table2ColumnHeaderRenderer<TType>;\n menu?: Table2ColumnHeaderMenu;\n minWidth?: number;\n sort?: SortDirection;\n sortFn?: SortFn<TType>;\n tooltip?: string;\n};\n\nexport type Table2ActionProps<TType> = {\n dialog?: (rows: TType[], resetSelectedRows: () => void) => (props: Partial<DialogProps>) => JSX.Element;\n disabled?: boolean | ((rows: TType[]) => boolean);\n icon: IconName | ((rows: TType[]) => IconName);\n onClick?: (rows: TType[], resetSelectedRows: () => void) => void;\n text: string | ((rows: TType[]) => string);\n visible?: boolean | ((rows: TType[]) => boolean);\n};\n\nexport type Table2RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element | null;\n\nexport type Table2Settings = {\n columnFilters?: ColumnFiltersState;\n columnOrder?: ColumnOrderState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n frozenColumnCount?: number;\n globalFilter?: string;\n rowDensity?: RowDensity;\n sorting?: SortingState;\n};\n\nexport type RowClickHandler<TType = any> = (row: TType) => void;\nexport type RowDragHandler<TType = any> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type RowSelectionHandler<TType = any> = (rows: TType[]) => void;\nexport type RowExpansionRenderer<TType = any> = (row: TType) => (() => JSX.Element) | null;\nexport type SortHandler = OnChangeFn<SortingState>;\nexport type SettingsHandler = OnChangeFn<Table2Settings>;\nexport type SaveHandlerErrorResponse = Record<string, string | undefined | null> | null;\nexport type SaveHandler<TType = any> = (row: TType, accessor: string) => Promise<SaveHandlerErrorResponse | void>;\n\nexport type DataColumnIndexes = {\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n};\n\nexport type Table2Children<TType = any> = (React.ReactElement<Table2ColumnProps<TType>> | boolean | null | undefined)[];\n\nexport type Table2Props<TType = any> = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n actionsForRow?: Table2RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n children: Table2Children;\n className?: string;\n data: TType[];\n defaultActiveRowIndex?: number;\n disableColumnFiltering?: boolean;\n disableColumnHiding?: boolean;\n disableColumnFreezing?: boolean;\n disableColumnReordering?: boolean;\n disableColumnResizing?: boolean;\n disableRowDensity?: boolean;\n disableRowExpansion?: boolean;\n disableRowSelection?: boolean;\n disableMultipleRowSelection?: boolean;\n disableSearch?: boolean;\n disableSorting?: boolean;\n emptyState?: () => JSX.Element;\n expandedRowRenderer?: RowExpansionRenderer<TType>;\n length?: number;\n loadMore?: () => Promise<void>;\n manualColumnFiltering?: boolean;\n manualSearch?: boolean;\n manualSorting?: boolean;\n onChangeSettings?: SettingsHandler;\n onRowClick?: RowClickHandler<TType>;\n onRowDrag?: RowDragHandler<TType>;\n onRowSelect?: RowSelectionHandler<TType>;\n onSave?: SaveHandler<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n settings?: Table2Settings;\n _experimentalActionsForTable?: Table2ActionProps<TType>[];\n _experimentalActionsForTableSummary?: (rows: TType[]) => JSX.Element | string;\n};\n"],"names":["Table2FilterComparator"],"mappings":"IAcYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table2/types.ts"],"sourcesContent":["import React from 'react';\nimport {\n ColumnFiltersState,\n ColumnOrderState,\n ColumnSizingState,\n OnChangeFn,\n Row,\n SortingState,\n VisibilityState,\n} from '@tanstack/react-table';\nimport { DialogProps } from '../Dialog/Dialog';\nimport { IconName } from '../Icon/Icon';\nimport { MenuProps } from '../Menu/Menu';\n\nexport enum Table2FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table2Filter<TType = any> = {\n comparator?: Table2FilterComparator;\n value: TType | TType[];\n};\n\nexport type ColumnOffsetState = Record<string, number | undefined>;\nexport type RowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type CellAlignment = 'left' | 'center' | 'right';\n\nexport type SortDirection = 'asc' | 'desc';\nexport type ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\n\nexport type Table2ColumnHeaderRenderer<TType = any> = (value: any, row: TType) => JSX.Element | string | null;\nexport type Table2ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\nexport type Table2ColumnFooterRenderer = (values: any[]) => JSX.Element | string | null;\n\nexport type Table2ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur: (newValue?: any) => Promise<void>;\n onFocus: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n // This is a temporary fix to enable up/down arrow key shortcuts on input in quick mode. For some reason,\n // the preventDefault is true on Taco Input, so the keyboard shortcuts doesn't work. By adding this\n // data attribute we make sure the event is coming from a control component, and then we can make sure\n // keyboard shortcut works as expected.\n 'data-inline-editing-component'?: 'true';\n};\nexport type Table2ColumnControlRenderer<TType = any> =\n | ((props: Table2ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\nexport type SortFn<TType = unknown> = (rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1;\n\nexport type Table2ColumnProps<TType = any> = {\n accessor: string;\n align?: CellAlignment;\n className?: string | ((row: Row<TType>) => string);\n control?: Table2ColumnControlRenderer<TType>;\n dataType?: ColumnDataType;\n defaultActiveColumnIndex?: number;\n defaultActiveRowIndex?: number;\n defaultHidden?: boolean;\n disableFiltering?: boolean;\n disableHiding?: boolean;\n disableReordering?: boolean;\n disableResizing?: boolean;\n disableSorting?: boolean;\n defaultWidth?: number;\n header: string;\n headerClassName?: string;\n footer?: Table2ColumnFooterRenderer;\n renderer?: Table2ColumnHeaderRenderer<TType>;\n menu?: Table2ColumnHeaderMenu;\n minWidth?: number;\n sort?: SortDirection;\n sortFn?: SortFn<TType>;\n tooltip?: string;\n};\n\nexport type Table2ActionProps<TType> = {\n dialog?: (rows: TType[], resetSelectedRows: () => void) => (props: Partial<DialogProps>) => JSX.Element;\n disabled?: boolean | ((rows: TType[]) => boolean);\n icon: IconName | ((rows: TType[]) => IconName);\n onClick?: (rows: TType[], resetSelectedRows: () => void) => void;\n text: string | ((rows: TType[]) => string);\n visible?: boolean | ((rows: TType[]) => boolean);\n};\n\nexport type Table2RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element | null;\n\nexport type Table2Settings = {\n columnFilters?: ColumnFiltersState;\n columnOrder?: ColumnOrderState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n frozenColumnCount?: number;\n globalFilter?: string;\n rowDensity?: RowDensity;\n sorting?: SortingState;\n};\n\nexport type RowClickHandler<TType = any> = (row: TType) => void;\nexport type RowDragHandler<TType = any> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type RowDropHandler<TType = any> = (event: React.DragEvent, row: TType) => void;\nexport type RowSelectionHandler<TType = any> = (rows: TType[]) => void;\nexport type RowExpansionRenderer<TType = any> = (row: TType) => (() => JSX.Element) | null;\nexport type SortHandler = OnChangeFn<SortingState>;\nexport type SettingsHandler = OnChangeFn<Table2Settings>;\nexport type SaveHandlerErrorResponse = Record<string, string | undefined | null> | null;\nexport type SaveHandler<TType = any> = (row: TType, accessor: string) => Promise<SaveHandlerErrorResponse | void>;\n\nexport type DataColumnIndexes = {\n dataColumnStartOffset: number;\n dataColumnEndOffset: number;\n};\n\nexport type Table2Children<TType = any> = (React.ReactElement<Table2ColumnProps<TType>> | boolean | null | undefined)[];\n\nexport type Table2Props<TType = any> = Omit<React.HTMLAttributes<HTMLDivElement>, 'children'> & {\n actionsForRow?: Table2RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n children: Table2Children;\n className?: string;\n data: TType[];\n defaultActiveRowIndex?: number;\n disableColumnFiltering?: boolean;\n disableColumnHiding?: boolean;\n disableColumnFreezing?: boolean;\n disableColumnReordering?: boolean;\n disableColumnResizing?: boolean;\n disableRowDensity?: boolean;\n disableRowExpansion?: boolean;\n disableRowSelection?: boolean;\n disableMultipleRowSelection?: boolean;\n disableSearch?: boolean;\n disableSorting?: boolean;\n emptyState?: () => JSX.Element;\n expandedRowRenderer?: RowExpansionRenderer<TType>;\n length?: number;\n loadMore?: () => Promise<void>;\n manualColumnFiltering?: boolean;\n manualSearch?: boolean;\n manualSorting?: boolean;\n onChangeSettings?: SettingsHandler;\n onRowClick?: RowClickHandler<TType>;\n onRowDrag?: RowDragHandler<TType>;\n onRowDrop?: RowDropHandler<TType>;\n onRowSelect?: RowSelectionHandler<TType>;\n onSave?: SaveHandler<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n settings?: Table2Settings;\n _experimentalActionsForTable?: Table2ActionProps<TType>[];\n _experimentalActionsForTableSummary?: (rows: TType[]) => JSX.Element | string;\n};\n"],"names":["Table2FilterComparator"],"mappings":"IAcYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
|