@economic/taco 2.2.5 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. package/dist/components/Header/components/Agreement/types.d.ts +1 -1
  2. package/dist/components/Icon/components/PaymentPaid.d.ts +3 -0
  3. package/dist/components/Icon/components/PaymentUnpaid.d.ts +3 -0
  4. package/dist/components/Menu/Context.d.ts +2 -0
  5. package/dist/components/Menu/components/Item.d.ts +3 -2
  6. package/dist/components/Provider/Localization.d.ts +12 -0
  7. package/dist/components/Provider/Provider.d.ts +6 -1
  8. package/dist/components/Table2/types.d.ts +1 -1
  9. package/dist/components/Table3/Table3.d.ts +1 -1
  10. package/dist/components/Table3/components/toolbar/Filter/filters/components/Filter.d.ts +1 -2
  11. package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.d.ts +4 -4
  12. package/dist/components/Table3/components/toolbar/Filter/filters/components/FilterValue.d.ts +1 -1
  13. package/dist/components/Table3/hooks/features/useColumnFreezing.d.ts +2 -1
  14. package/dist/components/Table3/hooks/features/useSettings.d.ts +2 -0
  15. package/dist/components/Table3/hooks/listeners/useSettingsStateListener.d.ts +2 -2
  16. package/dist/components/Table3/hooks/useTable.d.ts +2 -1
  17. package/dist/components/Table3/types.d.ts +24 -12
  18. package/dist/esm/packages/taco/src/components/Menu/Context.js.map +1 -1
  19. package/dist/esm/packages/taco/src/components/Menu/Menu.js +1 -0
  20. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  21. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +32 -2
  22. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  23. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  24. package/dist/esm/packages/taco/src/components/Provider/Localization.js +13 -1
  25. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/Provider/Provider.js +11 -4
  27. package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Select2/Select2.js +1 -1
  29. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +13 -4
  31. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Select2/components/Search.js +7 -1
  33. package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js +1 -1
  35. package/dist/esm/packages/taco/src/components/Shortcut/Shortcut.js.map +1 -1
  36. package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
  37. package/dist/esm/packages/taco/src/components/Table3/Table3.js +2 -1
  38. package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
  39. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js +2 -2
  40. package/dist/esm/packages/taco/src/components/Table3/components/columns/cell/DisplayCell.js.map +1 -1
  41. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js +4 -19
  42. package/dist/esm/packages/taco/src/components/Table3/components/columns/header/Menu.js.map +1 -1
  43. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js +8 -2
  44. package/dist/esm/packages/taco/src/components/Table3/components/columns/internal/Selection.js.map +1 -1
  45. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js +4 -2
  46. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/Filters.js.map +1 -1
  47. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js +2 -24
  48. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Filter.js.map +1 -1
  49. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js +68 -17
  50. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterComparator.js.map +1 -1
  51. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js +31 -2
  52. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/FilterValue.js.map +1 -1
  53. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js +1 -5
  54. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Filter/filters/components/Placeholder.js.map +1 -1
  55. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +18 -25
  56. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js.map +1 -1
  57. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +5 -0
  58. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -1
  59. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js +3 -3
  60. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Search.js.map +1 -1
  61. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js +6 -2
  62. package/dist/esm/packages/taco/src/components/Table3/components/toolbar/Toolbar.js.map +1 -1
  63. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js +20 -16
  64. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useColumnFreezing.js.map +1 -1
  65. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js +18 -0
  66. package/dist/esm/packages/taco/src/components/Table3/hooks/features/useSettings.js.map +1 -0
  67. package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
  68. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js +2 -4
  69. package/dist/esm/packages/taco/src/components/Table3/hooks/useConvertChildrenToColumns.js.map +1 -1
  70. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +18 -12
  71. package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
  72. package/dist/esm/packages/taco/src/components/Table3/types.js +7 -5
  73. package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
  74. package/dist/esm/packages/taco/src/components/Table3/util/filtering.js +24 -6
  75. package/dist/esm/packages/taco/src/components/Table3/util/filtering.js.map +1 -1
  76. package/dist/esm/packages/taco/src/hooks/useLocalStorage.js +34 -0
  77. package/dist/esm/packages/taco/src/hooks/useLocalStorage.js.map +1 -0
  78. package/dist/esm/packages/taco/src/hooks/useTacoSettings.js +9 -0
  79. package/dist/esm/packages/taco/src/hooks/useTacoSettings.js.map +1 -0
  80. package/dist/esm/packages/taco/src/index.js +1 -1
  81. package/dist/hooks/useLocalStorage.d.ts +1 -0
  82. package/dist/hooks/useTacoSettings.d.ts +1 -0
  83. package/dist/taco.cjs.development.js +367 -183
  84. package/dist/taco.cjs.development.js.map +1 -1
  85. package/dist/taco.cjs.production.min.js +1 -1
  86. package/dist/taco.cjs.production.min.js.map +1 -1
  87. package/package.json +2 -2
  88. package/types.json +11451 -10602
  89. package/dist/components/Table3/components/toolbar/Filter/filters/components/Comparator.d.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"Table3.js","sources":["../../../../../../../src/components/Table3/Table3.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { flexRender, TableMeta } from '@tanstack/react-table';\nimport { FocusScope } from '@react-aria/focus';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { useCssGrid } from './hooks/useCssGrid';\nimport { useTable } from './hooks/useTable';\nimport { useTableRenderStrategy } from './strategies';\nimport { Table3ColumnProps, Table3Props, Table3Ref } from './types';\nimport { Toolbar } from './components/toolbar/Toolbar';\nimport { useColumnFreezingStyle } from './hooks/features/useColumnFreezing';\nimport { useTableRefInstanceSetup } from './hooks/useTableRefInstanceSetup';\nimport { Summary } from './components/columns/footer/Summary';\nimport { useCssVars } from './hooks/useCssVars';\nimport './style.css';\nimport { isEventTriggeredOnInteractiveElement } from '../../utils/keyboard';\n\nfunction Column<TType = unknown>(_: Table3ColumnProps<TType>) {\n return null;\n}\n\ntype FixedForwardRef = <T, P = {}>(\n render: (props: P, ref: React.Ref<T>) => JSX.Element\n) => (props: P & React.RefAttributes<T>) => JSX.Element;\n\n// Cast the old forwardRef to the new one\nexport const fixedForwardRef = React.forwardRef as FixedForwardRef;\n\nconst Table = fixedForwardRef(function Table3<TType = unknown>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const { emptyState: EmptyState, toolbarLeft, toolbarRight } = props;\n const internalRef = useMergedRef<Table3Ref>(ref);\n\n const { table, length } = useTable<TType>(props);\n useTableRefInstanceSetup(table, internalRef);\n\n React.useEffect(() => {\n if (props.autoFocus) {\n internalRef.current?.focus();\n }\n }, []);\n\n const { renderBody, scrollToIndex } = useTableRenderStrategy<TType>(props, table, internalRef);\n const tableMeta = table.options.meta as TableMeta<TType>;\n const state = table.getState();\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isEventTriggeredOnInteractiveElement(event.target)) {\n return;\n }\n\n tableMeta.hoverState.handleKeyDown(event);\n tableMeta.currentRow.handleKeyDown(event, table.getRowModel().rows.length, scrollToIndex);\n tableMeta.rowClick.handleKeyDown(event, table);\n tableMeta.rowSelection.handleKeyDown(event, table);\n tableMeta.editing.handleKeyDown(event, internalRef);\n };\n\n const handleBlur = (event: React.FocusEvent) => {\n tableMeta.editing.handleBlur(event);\n };\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n tableMeta.columnFreezing.handleScroll(event);\n };\n\n const className = cn(\n 'border-grey-300 relative grid h-full w-full flex-grow overflow-auto rounded border bg-white scroll-mt-[41px]',\n 'focus:yt-focus focus-within:yt-focus',\n '[&[data-resizing=\"true\"]]:select-none',\n {\n 'text-xs': tableMeta.fontSize.size === 'small',\n 'text-sm': tableMeta.fontSize.size === 'medium',\n 'text-base': tableMeta.fontSize.size === 'large',\n }\n );\n\n const { style: cssGridStyle } = useCssGrid<TType>(table);\n const { style: cssVars } = useCssVars(tableMeta.rowHeight.height, tableMeta.fontSize.size);\n\n const style = {\n ...cssVars,\n ...cssGridStyle,\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\n const columnFreezingStyle = useColumnFreezingStyle(props.id, table);\n const isServerLoadingAndNotReady = tableMeta.isUsingServer && props.length === undefined;\n\n return (\n <>\n {columnFreezingStyle ? <style data-taco=\"table3-column-freezing-styles\">{columnFreezingStyle}</style> : null}\n <Toolbar\n table={table}\n tableProps={props}\n total={length}\n left={toolbarLeft}\n right={toolbarRight}\n scrollToIndex={scrollToIndex}\n />\n <div\n className={className}\n id={props.id}\n data-font-size={tableMeta.fontSize.size}\n data-editing={tableMeta.editing.isEditing}\n data-horizontally-scrolled={tableMeta.columnFreezing.horizontallyScrolled}\n data-pause-hover={tableMeta?.hoverState.isPaused}\n data-resizing={!!state.columnSizingInfo.isResizingColumn}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onScroll={handleScroll}\n ref={internalRef}\n role=\"table\"\n style={style}\n tabIndex={0}>\n {isServerLoadingAndNotReady ? null : (\n <div className=\"group/header 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 => (\n <React.Fragment key={header.id}>\n {flexRender(header.column.columnDef.header, { ...header.getContext(), scrollToIndex })}\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n )}\n {table.getRowModel().rows.length ? (\n <>\n <FocusScope>\n <div className=\"group/body contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {renderBody()}\n <span className=\"col-span-full h-16 print:hidden\" />\n </div>\n </FocusScope>\n <div className=\"group/footer contents\" data-taco=\"table2-footer\" role=\"rowgroup\">\n {table.getFooterGroups().map(footerGroup => (\n <div className=\"contents\" key={footerGroup.id} role=\"row\">\n {footerGroup.headers.map(footer => (\n <React.Fragment key={footer.id}>\n {flexRender(footer.column.columnDef.footer, footer.getContext())}\n </React.Fragment>\n ))}\n </div>\n ))}\n {length ? <Summary length={length} table={table} /> : null}\n </div>\n </>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n </div>\n </>\n );\n});\n\ntype Table3WithStatics = (<TType = unknown>(props: Table3Props<TType> & React.RefAttributes<Table3Ref>) => JSX.Element) & {\n Column: typeof Column;\n};\n\nexport const Table3 = fixedForwardRef(function Table3<TType = unknown>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + String(props.children)), [props.children]);\n return <Table<TType> {...props} key={key} ref={ref} />;\n}) as Table3WithStatics;\nTable3.Column = Column;\n\n// hooks\nexport { useTable3DataLoader } from './hooks/useTableDataLoader';\n\n// types\nexport type {\n useTable3DataFetcher,\n useTable3DataOptions,\n useTable3DataFetcherValues as useTableDataValues,\n} from './hooks/useTableDataLoader';\n\nexport type {\n Table3Ref,\n Table3Props,\n Table3Preset,\n Table3Settings,\n Table3SettingsAdapter,\n Table3RowHeight,\n Table3FilterComparator,\n Table3FilterHandler,\n Table3LoadPageHandler,\n Table3LoadAllHandler,\n Table3RowGotoHandler,\n Table3SortHandler,\n Table3Shortcuts,\n Table3ShortcutHandlerFn,\n Table3ShortcutHandlerObject,\n Table3FontSize,\n Table3SortDirection,\n Table3SortFn,\n Table3RowActionRenderer,\n Table3RowSelectionHandler,\n Table3RowExpansionRenderer,\n Table3RowDropHandler,\n Table3RowDragHandler,\n Table3RowClickHandler,\n Table3ColumnProps,\n Table3ColumnAlignment,\n Table3ColumnDataType,\n Table3ColumnHeaderMenu,\n Table3ColumnClassNameHandler,\n Table3ColumnFooterRenderer,\n Table3ColumnRenderer,\n Table3ColumnControlRenderer,\n Table3ColumnControlProps,\n} from './types';\n"],"names":["Column","_","fixedForwardRef","React","forwardRef","Table","Table3","props","ref","emptyState","EmptyState","toolbarLeft","toolbarRight","internalRef","useMergedRef","table","length","useTable","useTableRefInstanceSetup","useEffect","autoFocus","current","focus","renderBody","scrollToIndex","useTableRenderStrategy","tableMeta","options","meta","state","getState","handleKeyDown","event","isEventTriggeredOnInteractiveElement","target","hoverState","currentRow","getRowModel","rows","rowClick","rowSelection","editing","handleBlur","handleScroll","columnFreezing","className","cn","fontSize","size","style","cssGridStyle","useCssGrid","cssVars","useCssVars","rowHeight","height","opacity","columnFreezingStyle","useColumnFreezingStyle","id","isServerLoadingAndNotReady","isUsingServer","undefined","Toolbar","tableProps","total","left","right","isEditing","horizontallyScrolled","isPaused","columnSizingInfo","isResizingColumn","onBlur","onKeyDown","onScroll","role","tabIndex","getHeaderGroups","map","headerGroup","key","headers","header","Fragment","flexRender","column","columnDef","getContext","FocusScope","getFooterGroups","footerGroup","footer","Summary","useMemo","String","children"],"mappings":"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"}
1
+ {"version":3,"file":"Table3.js","sources":["../../../../../../../src/components/Table3/Table3.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { flexRender, TableMeta } from '@tanstack/react-table';\nimport { FocusScope } from '@react-aria/focus';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { useCssGrid } from './hooks/useCssGrid';\nimport { useTable } from './hooks/useTable';\nimport { useTableRenderStrategy } from './strategies';\nimport { Table3ColumnProps, Table3Props, Table3Ref } from './types';\nimport { Toolbar } from './components/toolbar/Toolbar';\nimport { useColumnFreezingStyle } from './hooks/features/useColumnFreezing';\nimport { useTableRefInstanceSetup } from './hooks/useTableRefInstanceSetup';\nimport { Summary } from './components/columns/footer/Summary';\nimport { useCssVars } from './hooks/useCssVars';\nimport './style.css';\nimport { isEventTriggeredOnInteractiveElement } from '../../utils/keyboard';\n\nfunction Column<TType = unknown>(_: Table3ColumnProps<TType>) {\n return null;\n}\n\ntype FixedForwardRef = <T, P = {}>(\n render: (props: P, ref: React.Ref<T>) => JSX.Element\n) => (props: P & React.RefAttributes<T>) => JSX.Element;\n\n// Cast the old forwardRef to the new one\nexport const fixedForwardRef = React.forwardRef as FixedForwardRef;\n\nconst Table = fixedForwardRef(function Table3<TType = unknown>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const { emptyState: EmptyState, toolbarLeft, toolbarRight } = props;\n const internalRef = useMergedRef<Table3Ref>(ref);\n\n const { table, length } = useTable<TType>(props);\n useTableRefInstanceSetup(table, internalRef);\n\n React.useEffect(() => {\n if (props.autoFocus) {\n internalRef.current?.focus();\n }\n }, []);\n\n const { renderBody, scrollToIndex } = useTableRenderStrategy<TType>(props, table, internalRef);\n const tableMeta = table.options.meta as TableMeta<TType>;\n const state = table.getState();\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isEventTriggeredOnInteractiveElement(event.target)) {\n return;\n }\n\n tableMeta.hoverState.handleKeyDown(event);\n tableMeta.currentRow.handleKeyDown(event, table.getRowModel().rows.length, scrollToIndex);\n tableMeta.rowClick.handleKeyDown(event, table);\n tableMeta.rowSelection.handleKeyDown(event, table);\n tableMeta.editing.handleKeyDown(event, internalRef);\n };\n\n const handleBlur = (event: React.FocusEvent) => {\n tableMeta.editing.handleBlur(event);\n };\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n tableMeta.columnFreezing.handleScroll(event);\n };\n\n const className = cn(\n 'border-grey-300 relative grid h-full w-full flex-grow overflow-auto rounded border bg-white scroll-mt-[41px]',\n 'focus:yt-focus focus-within:yt-focus',\n '[&[data-resizing=\"true\"]]:select-none',\n {\n 'text-xs': tableMeta.fontSize.size === 'small',\n 'text-sm': tableMeta.fontSize.size === 'medium',\n 'text-base': tableMeta.fontSize.size === 'large',\n }\n );\n\n const { style: cssGridStyle } = useCssGrid<TType>(table);\n const { style: cssVars } = useCssVars(tableMeta.rowHeight.height, tableMeta.fontSize.size);\n\n const style = {\n ...cssVars,\n ...cssGridStyle,\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\n const columnFreezingStyle = useColumnFreezingStyle(props.id, table);\n const isServerLoadingAndNotReady = tableMeta.isUsingServer && props.length === undefined;\n\n return (\n <>\n {columnFreezingStyle ? <style data-taco=\"table3-column-freezing-styles\">{columnFreezingStyle}</style> : null}\n <Toolbar\n table={table}\n tableProps={props}\n total={length}\n left={toolbarLeft}\n right={toolbarRight}\n scrollToIndex={scrollToIndex}\n />\n <div\n className={className}\n id={props.id}\n data-font-size={tableMeta.fontSize.size}\n data-editing={tableMeta.editing.isEditing}\n data-horizontally-scrolled={tableMeta.columnFreezing.horizontallyScrolled}\n data-pause-hover={tableMeta?.hoverState.isPaused}\n data-resizing={!!state.columnSizingInfo.isResizingColumn}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onScroll={handleScroll}\n ref={internalRef}\n role=\"table\"\n style={style}\n tabIndex={0}>\n {isServerLoadingAndNotReady ? null : (\n <div className=\"group/header 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 => (\n <React.Fragment key={header.id}>\n {flexRender(header.column.columnDef.header, { ...header.getContext(), scrollToIndex })}\n </React.Fragment>\n ))}\n </div>\n ))}\n </div>\n )}\n {table.getRowModel().rows.length ? (\n <>\n <FocusScope>\n <div className=\"group/body contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {renderBody()}\n <span className=\"col-span-full h-16 print:hidden\" />\n </div>\n </FocusScope>\n <div className=\"group/footer contents\" data-taco=\"table2-footer\" role=\"rowgroup\">\n {table.getFooterGroups().map(footerGroup => (\n <div className=\"contents\" key={footerGroup.id} role=\"row\">\n {footerGroup.headers.map(footer => (\n <React.Fragment key={footer.id}>\n {flexRender(footer.column.columnDef.footer, footer.getContext())}\n </React.Fragment>\n ))}\n </div>\n ))}\n {length ? <Summary length={length} table={table} /> : null}\n </div>\n </>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n </div>\n </>\n );\n});\n\ntype Table3WithStatics = (<TType = unknown>(props: Table3Props<TType> & React.RefAttributes<Table3Ref>) => JSX.Element) & {\n Column: typeof Column;\n};\n\nexport const Table3 = fixedForwardRef(function Table3<TType = unknown>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const stringifiedChildren = String(props.children);\n // we force a remount (using key) when the child columns change because there are too many places to add children as an effect\n // this is cheaper from a complexity perspective, and probably performance wise as well\n const key = React.useMemo(() => String('tableKey_' + stringifiedChildren), [stringifiedChildren]);\n return <Table<TType> {...props} key={key} ref={ref} />;\n}) as Table3WithStatics;\nTable3.Column = Column;\n\n// hooks\nexport { useTable3DataLoader } from './hooks/useTableDataLoader';\n\n// types\nexport type {\n useTable3DataFetcher,\n useTable3DataOptions,\n useTable3DataFetcherValues as useTableDataValues,\n} from './hooks/useTableDataLoader';\n\nexport type {\n Table3Ref,\n Table3Props,\n Table3Preset,\n Table3Settings,\n Table3SettingsHandler,\n Table3RowHeight,\n Table3FilterComparator,\n Table3FilterHandler,\n Table3LoadPageHandler,\n Table3LoadAllHandler,\n Table3RowGotoHandler,\n Table3SortHandler,\n Table3Shortcuts,\n Table3ShortcutHandlerFn,\n Table3ShortcutHandlerObject,\n Table3FontSize,\n Table3SortDirection,\n Table3SortFn,\n Table3RowActionRenderer,\n Table3RowSelectionHandler,\n Table3RowExpansionRenderer,\n Table3RowDropHandler,\n Table3RowDragHandler,\n Table3RowClickHandler,\n Table3ColumnProps,\n Table3ColumnAlignment,\n Table3ColumnDataType,\n Table3ColumnHeaderMenu,\n Table3ColumnClassNameHandler,\n Table3ColumnFooterRenderer,\n Table3ColumnRenderer,\n Table3ColumnControlRenderer,\n Table3ColumnControlProps,\n} from './types';\n"],"names":["Column","_","fixedForwardRef","React","forwardRef","Table","Table3","props","ref","emptyState","EmptyState","toolbarLeft","toolbarRight","internalRef","useMergedRef","table","length","useTable","useTableRefInstanceSetup","useEffect","autoFocus","current","focus","renderBody","scrollToIndex","useTableRenderStrategy","tableMeta","options","meta","state","getState","handleKeyDown","event","isEventTriggeredOnInteractiveElement","target","hoverState","currentRow","getRowModel","rows","rowClick","rowSelection","editing","handleBlur","handleScroll","columnFreezing","className","cn","fontSize","size","style","cssGridStyle","useCssGrid","cssVars","useCssVars","rowHeight","height","opacity","columnFreezingStyle","useColumnFreezingStyle","id","isServerLoadingAndNotReady","isUsingServer","undefined","Toolbar","tableProps","total","left","right","isEditing","horizontallyScrolled","isPaused","columnSizingInfo","isResizingColumn","onBlur","onKeyDown","onScroll","role","tabIndex","getHeaderGroups","map","headerGroup","key","headers","header","Fragment","flexRender","column","columnDef","getContext","FocusScope","getFooterGroups","footerGroup","footer","Summary","stringifiedChildren","String","children","useMemo"],"mappings":"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"}
@@ -42,10 +42,10 @@ function DisplayCell(props) {
42
42
  }, [row.original, props.children, value]);
43
43
  const memoedHighlight = React__default.useMemo(() => {
44
44
  var _tableMeta$search$que;
45
- if (!tableMeta.search.isHighlightingEnabled) {
45
+ if (!tableMeta.search.isHighlightingEnabled || !columnMeta.enableSearch) {
46
46
  return false;
47
47
  }
48
- if ((_tableMeta$search$que = tableMeta.search.query) !== null && _tableMeta$search$que !== void 0 && _tableMeta$search$que.length && columnMeta.enableSearch) {
48
+ if ((_tableMeta$search$que = tableMeta.search.query) !== null && _tableMeta$search$que !== void 0 && _tableMeta$search$que.length) {
49
49
  return isCellHighlighted(tableMeta.search.query, value, memoedProps.children);
50
50
  }
51
51
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayCell.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/cell/DisplayCell.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { ColumnMeta, CellContext, TableMeta } from '@tanstack/react-table';\nimport { Table3ColumnAlignment } from '../../../types';\nimport { RowContext } from '../../rows/RowContext';\nimport { isCellHighlighted, scrollColumnIntoView } from '../../../util/columns';\n\nexport type DisplayCellProps<TType = unknown> = CellContext<TType, unknown> & {\n children?: string | JSX.Element;\n className?: string;\n};\n\nexport function DisplayCell<TType = unknown>(props: DisplayCellProps<TType>) {\n const { cell, className, column, getValue, index, row, table, tableRef } = props;\n const columnMeta = React.useMemo(() => column.columnDef.meta as ColumnMeta<TType, unknown>, []);\n const tableMeta = table.options.meta as TableMeta<TType>;\n const { rowIndex } = React.useContext(RowContext);\n\n const value = getValue();\n\n // cells are heavily memoized because performance in our table is critical\n // be careful and selective about props that you pass to the cell\n const memoedProps = React.useMemo(() => {\n return {\n align: columnMeta.align,\n children: (props.children ?? columnMeta.renderer?.(value, row.original) ?? value ?? null) as\n | JSX.Element\n | string\n | null,\n className: cn(\n className,\n // we alias to any because className conflicts with the Table2 definition,\n // when Table2 is gone, remove this as any\n typeof columnMeta.className === 'function' ? (columnMeta.className as any)(row.original) : columnMeta.className\n ),\n data: row.original,\n debug: table.options.debugAll,\n enableTruncate: columnMeta.enableTruncate,\n frozenColumnIndex: tableMeta.columnFreezing.frozenColumnIndex,\n id: cell.id,\n index,\n tableRef,\n };\n }, [row.original, props.children, value]);\n\n const memoedHighlight = React.useMemo(() => {\n if (!tableMeta.search.isHighlightingEnabled) {\n return false;\n }\n\n if (tableMeta.search.query?.length && columnMeta.enableSearch) {\n return isCellHighlighted(tableMeta.search.query, value, memoedProps.children);\n }\n\n return false;\n }, [\n memoedProps.children,\n tableMeta.search.isHighlightingEnabled,\n tableMeta.search.excludeUnmatchedResults,\n tableMeta.search.query,\n ]);\n\n const memoedHighlightCurrent = React.useMemo(() => {\n if (\n !tableMeta.search.isHighlightingEnabled ||\n !memoedHighlight ||\n tableMeta.search.currentHighlightColumnIndex === undefined\n ) {\n return false;\n }\n\n const [currentRowIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (currentRowIndex === rowIndex && currentColumnIndex === index) {\n return true;\n }\n\n return false;\n }, [memoedHighlight, tableMeta.search.highlightedColumnIndexes.length, tableMeta.search.currentHighlightColumnIndex]);\n\n return (\n <MemoedDisplayCell<TType> {...memoedProps} highlighted={memoedHighlight} highlightedAsCurrent={memoedHighlightCurrent} />\n );\n}\n\n// Memoization\nexport type MemoedDisplayCellProps<TType = unknown> = {\n align?: Table3ColumnAlignment;\n children: JSX.Element | string | null;\n className?: string;\n data: TType;\n debug?: boolean;\n enableTruncate?: boolean;\n frozenColumnIndex?: number;\n highlighted: boolean;\n highlightedAsCurrent: boolean;\n id: string;\n index: number;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell<TType = unknown>(props: MemoedDisplayCellProps<TType>) {\n const {\n align = 'left',\n children,\n className: customClassName,\n debug,\n enableTruncate,\n frozenColumnIndex,\n highlighted,\n highlightedAsCurrent = false,\n id,\n index,\n tableRef,\n } = props;\n\n const layoutClassName = cn('py-[var(--table3-row-padding)]', customClassName);\n\n const className = highlighted ? undefined : layoutClassName;\n const content = enableTruncate ? <span className=\"truncate\">{children}</span> : children;\n\n if (debug) {\n console.log('cell render', id);\n }\n\n return (\n <div className={className} data-align={align} data-column-index={index} data-highlighted={highlighted} role=\"cell\">\n {highlighted ? (\n <Highlight\n className={layoutClassName}\n current={highlightedAsCurrent}\n frozenColumnIndex={frozenColumnIndex}\n index={index}\n tableRef={tableRef}>\n {content}\n </Highlight>\n ) : (\n content\n )}\n </div>\n );\n}) as <TType = unknown>(props: MemoedDisplayCellProps<TType>) => JSX.Element;\n\nconst Highlight = props => {\n const { current, frozenColumnIndex, index, tableRef, ...attributes } = props;\n const ref = React.useRef<HTMLDivElement | null>(null);\n const className = cn('h-full flex px-4 [justify-content:inherit] [text-align:inherit]', props.className, {\n // normal row\n 'bg-blue-200/25': !current,\n // current row\n 'bg-blue-200/75': current,\n });\n\n React.useEffect(() => {\n if (ref.current && current) {\n scrollColumnIntoView(index, frozenColumnIndex, ref.current, tableRef.current);\n }\n }, [current]);\n\n return <div {...attributes} className={className} ref={ref} />;\n};\n"],"names":["DisplayCell","props","cell","className","column","getValue","index","row","table","tableRef","columnMeta","React","useMemo","columnDef","meta","tableMeta","options","rowIndex","useContext","RowContext","value","memoedProps","align","children","renderer","original","cn","data","debug","debugAll","enableTruncate","frozenColumnIndex","columnFreezing","id","memoedHighlight","search","isHighlightingEnabled","query","length","enableSearch","isCellHighlighted","excludeUnmatchedResults","memoedHighlightCurrent","currentHighlightColumnIndex","undefined","currentRowIndex","currentColumnIndex","highlightedColumnIndexes","MemoedDisplayCell","highlighted","highlightedAsCurrent","memo","customClassName","layoutClassName","content","console","log","role","Highlight","current","attributes","ref","useRef","useEffect","scrollColumnIntoView"],"mappings":"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"}
1
+ {"version":3,"file":"DisplayCell.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/cell/DisplayCell.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { ColumnMeta, CellContext, TableMeta } from '@tanstack/react-table';\nimport { Table3ColumnAlignment } from '../../../types';\nimport { RowContext } from '../../rows/RowContext';\nimport { isCellHighlighted, scrollColumnIntoView } from '../../../util/columns';\n\nexport type DisplayCellProps<TType = unknown> = CellContext<TType, unknown> & {\n children?: string | JSX.Element;\n className?: string;\n};\n\nexport function DisplayCell<TType = unknown>(props: DisplayCellProps<TType>) {\n const { cell, className, column, getValue, index, row, table, tableRef } = props;\n const columnMeta = React.useMemo(() => column.columnDef.meta as ColumnMeta<TType, unknown>, []);\n const tableMeta = table.options.meta as TableMeta<TType>;\n const { rowIndex } = React.useContext(RowContext);\n\n const value = getValue();\n\n // cells are heavily memoized because performance in our table is critical\n // be careful and selective about props that you pass to the cell\n const memoedProps = React.useMemo(() => {\n return {\n align: columnMeta.align,\n children: (props.children ?? columnMeta.renderer?.(value, row.original) ?? value ?? null) as\n | JSX.Element\n | string\n | null,\n className: cn(\n className,\n // we alias to any because className conflicts with the Table2 definition,\n // when Table2 is gone, remove this as any\n typeof columnMeta.className === 'function' ? (columnMeta.className as any)(row.original) : columnMeta.className\n ),\n data: row.original,\n debug: table.options.debugAll,\n enableTruncate: columnMeta.enableTruncate,\n frozenColumnIndex: tableMeta.columnFreezing.frozenColumnIndex,\n id: cell.id,\n index,\n tableRef,\n };\n }, [row.original, props.children, value]);\n\n const memoedHighlight = React.useMemo(() => {\n if (!tableMeta.search.isHighlightingEnabled || !columnMeta.enableSearch) {\n return false;\n }\n\n if (tableMeta.search.query?.length) {\n return isCellHighlighted(tableMeta.search.query, value, memoedProps.children);\n }\n\n return false;\n }, [\n memoedProps.children,\n tableMeta.search.isHighlightingEnabled,\n tableMeta.search.excludeUnmatchedResults,\n tableMeta.search.query,\n ]);\n\n const memoedHighlightCurrent = React.useMemo(() => {\n if (\n !tableMeta.search.isHighlightingEnabled ||\n !memoedHighlight ||\n tableMeta.search.currentHighlightColumnIndex === undefined\n ) {\n return false;\n }\n\n const [currentRowIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (currentRowIndex === rowIndex && currentColumnIndex === index) {\n return true;\n }\n\n return false;\n }, [memoedHighlight, tableMeta.search.highlightedColumnIndexes.length, tableMeta.search.currentHighlightColumnIndex]);\n\n return (\n <MemoedDisplayCell<TType> {...memoedProps} highlighted={memoedHighlight} highlightedAsCurrent={memoedHighlightCurrent} />\n );\n}\n\n// Memoization\nexport type MemoedDisplayCellProps<TType = unknown> = {\n align?: Table3ColumnAlignment;\n children: JSX.Element | string | null;\n className?: string;\n data: TType;\n debug?: boolean;\n enableTruncate?: boolean;\n frozenColumnIndex?: number;\n highlighted: boolean;\n highlightedAsCurrent: boolean;\n id: string;\n index: number;\n tableRef: React.RefObject<HTMLDivElement>;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell<TType = unknown>(props: MemoedDisplayCellProps<TType>) {\n const {\n align = 'left',\n children,\n className: customClassName,\n debug,\n enableTruncate,\n frozenColumnIndex,\n highlighted,\n highlightedAsCurrent = false,\n id,\n index,\n tableRef,\n } = props;\n\n const layoutClassName = cn('py-[var(--table3-row-padding)]', customClassName);\n\n const className = highlighted ? undefined : layoutClassName;\n const content = enableTruncate ? <span className=\"truncate\">{children}</span> : children;\n\n if (debug) {\n console.log('cell render', id);\n }\n\n return (\n <div className={className} data-align={align} data-column-index={index} data-highlighted={highlighted} role=\"cell\">\n {highlighted ? (\n <Highlight\n className={layoutClassName}\n current={highlightedAsCurrent}\n frozenColumnIndex={frozenColumnIndex}\n index={index}\n tableRef={tableRef}>\n {content}\n </Highlight>\n ) : (\n content\n )}\n </div>\n );\n}) as <TType = unknown>(props: MemoedDisplayCellProps<TType>) => JSX.Element;\n\nconst Highlight = props => {\n const { current, frozenColumnIndex, index, tableRef, ...attributes } = props;\n const ref = React.useRef<HTMLDivElement | null>(null);\n const className = cn('h-full flex px-4 [justify-content:inherit] [text-align:inherit]', props.className, {\n // normal row\n 'bg-blue-200/25': !current,\n // current row\n 'bg-blue-200/75': current,\n });\n\n React.useEffect(() => {\n if (ref.current && current) {\n scrollColumnIntoView(index, frozenColumnIndex, ref.current, tableRef.current);\n }\n }, [current]);\n\n return <div {...attributes} className={className} ref={ref} />;\n};\n"],"names":["DisplayCell","props","cell","className","column","getValue","index","row","table","tableRef","columnMeta","React","useMemo","columnDef","meta","tableMeta","options","rowIndex","useContext","RowContext","value","memoedProps","align","children","renderer","original","cn","data","debug","debugAll","enableTruncate","frozenColumnIndex","columnFreezing","id","memoedHighlight","search","isHighlightingEnabled","enableSearch","query","length","isCellHighlighted","excludeUnmatchedResults","memoedHighlightCurrent","currentHighlightColumnIndex","undefined","currentRowIndex","currentColumnIndex","highlightedColumnIndexes","MemoedDisplayCell","highlighted","highlightedAsCurrent","memo","customClassName","layoutClassName","content","console","log","role","Highlight","current","attributes","ref","useRef","useEffect","scrollColumnIntoView"],"mappings":"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"}
@@ -22,20 +22,6 @@ function isMenuAvailable(table, header) {
22
22
  const tableMeta = table.options.meta;
23
23
  return !!((_header$column$column = header.column.columnDef.meta) !== null && _header$column$column !== void 0 && _header$column$column.menu) || !!tableMeta.columnFreezing.isEnabled || !!table.options.enableHiding && !!header.column.getCanHide() || isGotoAvailable(table, header);
24
24
  }
25
- function getInitialFrozenIndex(table) {
26
- const tableMeta = table.options.meta;
27
- let index = 0;
28
- if (tableMeta.rowDrag.isEnabled) {
29
- index++;
30
- }
31
- if (table.options.enableRowSelection) {
32
- index++;
33
- }
34
- if (table.options.enableExpanding) {
35
- index++;
36
- }
37
- return index;
38
- }
39
25
  function Menu(props) {
40
26
  const {
41
27
  canFreeze,
@@ -97,7 +83,8 @@ function Menu(props) {
97
83
  if (handleGoto) {
98
84
  menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
99
85
  icon: "move",
100
- onClick: () => setPopover('goto')
86
+ onClick: () => setPopover('goto'),
87
+ shortcut: "g"
101
88
  }, texts.table3.columns.menu.gotoRow, "..."));
102
89
  }
103
90
  if (canHide) {
@@ -109,10 +96,8 @@ function Menu(props) {
109
96
  }, texts.table3.columns.menu.hideColumn));
110
97
  }
111
98
  if (canFreeze) {
112
- const handleClick = () => {
113
- tableMeta.columnFreezing.setFrozenColumnIndex(index);
114
- };
115
- const frozenIndex = index - getInitialFrozenIndex(table);
99
+ const frozenIndex = index - tableMeta.columnFreezing.frozenInternalColumnCount;
100
+ const handleClick = () => tableMeta.columnFreezing.setFrozenColumnIndex(frozenIndex);
116
101
  menuItems.push( /*#__PURE__*/React__default.createElement(Menu$1.Item, {
117
102
  icon: "column-freeze",
118
103
  onClick: handleClick
@@ -1 +1 @@
1
- {"version":3,"file":"Menu.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/header/Menu.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Header as RTHeader, Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../Menu/Menu';\nimport { isInternalColumn } from '../../../util/columns';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Table3ColumnHeaderMenu, TableStrategy } from '../../../types';\nimport { GotoPopover } from './Goto';\n\nexport function isGotoAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>) {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return !!(tableMeta.rowGoto.isEnabled && header.column.getCanSort() && header.column.getIsSorted());\n}\n\nexport function isMenuAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>): boolean {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return (\n !!header.column.columnDef.meta?.menu ||\n !!tableMeta.columnFreezing.isEnabled ||\n (!!table.options.enableHiding && !!header.column.getCanHide()) ||\n isGotoAvailable(table, header)\n );\n}\n\nfunction getInitialFrozenIndex<TType = unknown>(table: RTable<TType>) {\n const tableMeta = table.options.meta as TableMeta<TType>;\n let index = 0;\n\n if (tableMeta.rowDrag.isEnabled) {\n index++;\n }\n\n if (table.options.enableRowSelection) {\n index++;\n }\n\n if (table.options.enableExpanding) {\n index++;\n }\n\n return index;\n}\n\nexport type MenuProps<TType = unknown> = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFreeze: boolean;\n canHide: boolean;\n index: number;\n menu?: Table3ColumnHeaderMenu;\n onGoto?: (query: string) => Promise<number>;\n onHide: (event: unknown) => void;\n scrollToIndex: TableStrategy['scrollToIndex'];\n table: RTable<TType>;\n};\n\nexport function Menu<TType = unknown>(props: MenuProps<TType>) {\n const { canFreeze, canHide, index, menu, onGoto: handleGoto, onHide: handleHide, scrollToIndex, table } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n tableMeta.currentRow.setCurrentRowIndex(index);\n scrollToIndex(index + 2, { align: 'center' });\n } catch {\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end',\n {\n '!flex': !!popoverElement,\n },\n props.className\n );\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (handleGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')}>\n {texts.table3.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"unreconciled\" onClick={handleClick}>\n {texts.table3.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canFreeze) {\n const handleClick = () => {\n tableMeta.columnFreezing.setFrozenColumnIndex(index);\n };\n\n const frozenIndex = index - getInitialFrozenIndex(table);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={handleClick}>\n {frozenIndex === 0\n ? texts.table3.columns.menu.freezeFirstColumn\n : texts.table3.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(frozenIndex + 1))}\n </MenuPrimitive.Item>\n );\n\n if (tableMeta.columnFreezing.frozenColumnIndex !== undefined) {\n const handleClick = () => {\n tableMeta.columnFreezing.setFrozenColumnIndex(undefined);\n };\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={handleClick}>\n {texts.table3.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n }\n\n if (menu) {\n const customMenu = menu({ trigger: undefined });\n const customItems = React.Children.toArray(customMenu.props.children.props.children) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [menu, index, canFreeze, canHide, handleGoto, tableMeta.columnFreezing.frozenColumnIndex]);\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n />\n );\n}\n"],"names":["isGotoAvailable","table","header","isInternalColumn","id","tableMeta","options","meta","rowGoto","isEnabled","column","getCanSort","getIsSorted","isMenuAvailable","columnDef","menu","columnFreezing","enableHiding","getCanHide","getInitialFrozenIndex","index","rowDrag","enableRowSelection","enableExpanding","Menu","props","canFreeze","canHide","onGoto","handleGoto","onHide","handleHide","scrollToIndex","texts","useLocalization","popover","setPopover","React","useState","undefined","popoverElement","handleClosePopover","goto","query","currentRow","setCurrentRowIndex","align","GotoPopover","open","onChange","className","cn","memoedMenuItems","useMemo","menuItems","push","MenuPrimitive","Item","icon","onClick","table3","columns","gotoRow","handleClick","event","setTimeout","hideColumn","setFrozenColumnIndex","frozenIndex","freezeFirstColumn","freezeUptoColumn","replace","String","frozenColumnIndex","unfreezeColumns","customMenu","trigger","customItems","Children","toArray","children","length","Separator","map","item","key","cloneElement","IconButton","menuProps","Content","onClickCapture","preventDefault"],"mappings":"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"}
1
+ {"version":3,"file":"Menu.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/header/Menu.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Header as RTHeader, Table as RTable, TableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../IconButton/IconButton';\nimport { Menu as MenuPrimitive } from '../../../../Menu/Menu';\nimport { isInternalColumn } from '../../../util/columns';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Table3ColumnHeaderMenu, TableStrategy } from '../../../types';\nimport { GotoPopover } from './Goto';\n\nexport function isGotoAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>) {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return !!(tableMeta.rowGoto.isEnabled && header.column.getCanSort() && header.column.getIsSorted());\n}\n\nexport function isMenuAvailable<TType = unknown>(table: RTable<TType>, header: RTHeader<TType, unknown>): boolean {\n if (isInternalColumn(header.id)) {\n return false;\n }\n\n const tableMeta = table.options.meta as TableMeta<TType>;\n\n return (\n !!header.column.columnDef.meta?.menu ||\n !!tableMeta.columnFreezing.isEnabled ||\n (!!table.options.enableHiding && !!header.column.getCanHide()) ||\n isGotoAvailable(table, header)\n );\n}\n\nexport type MenuProps<TType = unknown> = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n canFreeze: boolean;\n canHide: boolean;\n index: number;\n menu?: Table3ColumnHeaderMenu;\n onGoto?: (query: string) => Promise<number>;\n onHide: (event: unknown) => void;\n scrollToIndex: TableStrategy['scrollToIndex'];\n table: RTable<TType>;\n};\n\nexport function Menu<TType = unknown>(props: MenuProps<TType>) {\n const { canFreeze, canHide, index, menu, onGoto: handleGoto, onHide: handleHide, scrollToIndex, table } = props;\n const tableMeta = table.options.meta as TableMeta<TType>;\n const { texts } = useLocalization();\n const [popover, setPopover] = React.useState<string | undefined>(undefined);\n\n let popoverElement;\n\n if (popover) {\n const handleClosePopover = () => setPopover(undefined);\n\n switch (popover) {\n case 'goto': {\n if (handleGoto) {\n const goto = async (query: string) => {\n try {\n const index = await handleGoto(query);\n tableMeta.currentRow.setCurrentRowIndex(index);\n scrollToIndex(index + 2, { align: 'center' });\n } catch {\n //\n } finally {\n handleClosePopover();\n }\n };\n popoverElement = props => <GotoPopover {...props} open onChange={handleClosePopover} onGoto={goto} />;\n }\n }\n }\n }\n\n const className = cn(\n '-my-0.5 -mr-1 -ml-0.5 !h-6 !min-h-[theme(spacing.6)] !w-6 !min-w-[theme(spacing.6)] flex-shrink-0 justify-end',\n {\n '!flex': !!popoverElement,\n },\n props.className\n );\n\n const memoedMenuItems = React.useMemo(() => {\n const menuItems: JSX.Element[] = [];\n\n if (handleGoto) {\n menuItems.push(\n <MenuPrimitive.Item icon=\"move\" onClick={() => setPopover('goto')} shortcut=\"g\">\n {texts.table3.columns.menu.gotoRow}...\n </MenuPrimitive.Item>\n );\n }\n\n if (canHide) {\n // we do this in the next tick, otherwise the menu closes and react throws a \"state update on unmounted component\" error\n const handleClick = event => setTimeout(() => handleHide(event), 1);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"unreconciled\" onClick={handleClick}>\n {texts.table3.columns.menu.hideColumn}\n </MenuPrimitive.Item>\n );\n }\n\n if (canFreeze) {\n const frozenIndex = index - tableMeta.columnFreezing.frozenInternalColumnCount;\n const handleClick = () => tableMeta.columnFreezing.setFrozenColumnIndex(frozenIndex);\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-freeze\" onClick={handleClick}>\n {frozenIndex === 0\n ? texts.table3.columns.menu.freezeFirstColumn\n : texts.table3.columns.menu.freezeUptoColumn.replace('[TOTAL]', String(frozenIndex + 1))}\n </MenuPrimitive.Item>\n );\n\n if (tableMeta.columnFreezing.frozenColumnIndex !== undefined) {\n const handleClick = () => {\n tableMeta.columnFreezing.setFrozenColumnIndex(undefined);\n };\n\n menuItems.push(\n <MenuPrimitive.Item icon=\"column-unfreeze\" onClick={handleClick}>\n {texts.table3.columns.menu.unfreezeColumns}\n </MenuPrimitive.Item>\n );\n }\n }\n\n if (menu) {\n const customMenu = menu({ trigger: undefined });\n const customItems = React.Children.toArray(customMenu.props.children.props.children) as JSX.Element[];\n\n if (customItems.length) {\n if (menuItems.length) {\n menuItems.push(<MenuPrimitive.Separator />);\n }\n\n menuItems.push(...customItems);\n }\n }\n\n return menuItems.map((item, key) => React.cloneElement(item, { key }));\n }, [menu, index, canFreeze, canHide, handleGoto, tableMeta.columnFreezing.frozenColumnIndex]);\n\n return (\n <IconButton\n className={className}\n icon=\"more\"\n menu={\n popoverElement\n ? undefined\n : menuProps => (\n <MenuPrimitive {...menuProps}>\n <MenuPrimitive.Content>{memoedMenuItems}</MenuPrimitive.Content>\n </MenuPrimitive>\n )\n }\n popover={popoverElement}\n onClickCapture={event => event.preventDefault()}\n />\n );\n}\n"],"names":["isGotoAvailable","table","header","isInternalColumn","id","tableMeta","options","meta","rowGoto","isEnabled","column","getCanSort","getIsSorted","isMenuAvailable","columnDef","menu","columnFreezing","enableHiding","getCanHide","Menu","props","canFreeze","canHide","index","onGoto","handleGoto","onHide","handleHide","scrollToIndex","texts","useLocalization","popover","setPopover","React","useState","undefined","popoverElement","handleClosePopover","goto","query","currentRow","setCurrentRowIndex","align","GotoPopover","open","onChange","className","cn","memoedMenuItems","useMemo","menuItems","push","MenuPrimitive","Item","icon","onClick","shortcut","table3","columns","gotoRow","handleClick","event","setTimeout","hideColumn","frozenIndex","frozenInternalColumnCount","setFrozenColumnIndex","freezeFirstColumn","freezeUptoColumn","replace","String","frozenColumnIndex","unfreezeColumns","customMenu","trigger","customItems","Children","toArray","children","length","Separator","map","item","key","cloneElement","IconButton","menuProps","Content","onClickCapture","preventDefault"],"mappings":"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"}
@@ -3,6 +3,7 @@ import cn from 'classnames';
3
3
  import { Tooltip } from '../../../../Tooltip/Tooltip.js';
4
4
  import { useLocalization } from '../../../../Provider/Localization.js';
5
5
  import { Checkbox } from '../../../../Checkbox/Checkbox.js';
6
+ import { Shortcut } from '../../../../Shortcut/Shortcut.js';
6
7
  import { getRadioClassnames } from '../../../../RadioGroup/util.js';
7
8
  import { Header as Header$1 } from '../header/Header.js';
8
9
  import { RowContext } from '../../rows/RowContext.js';
@@ -61,7 +62,12 @@ const Cell = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
61
62
  }
62
63
  tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;
63
64
  };
64
- return /*#__PURE__*/React__default.createElement(DisplayCell, Object.assign({}, context), /*#__PURE__*/React__default.createElement(Checkbox, {
65
+ return /*#__PURE__*/React__default.createElement(DisplayCell, Object.assign({}, context), /*#__PURE__*/React__default.createElement(Tooltip, {
66
+ title: /*#__PURE__*/React__default.createElement(React__default.Fragment, null, title, /*#__PURE__*/React__default.createElement(Shortcut, {
67
+ className: "ml-2",
68
+ keys: "Space"
69
+ }))
70
+ }, /*#__PURE__*/React__default.createElement(Checkbox, {
65
71
  "aria-label": title,
66
72
  className: "!mt-0",
67
73
  checked: isSelected,
@@ -69,7 +75,7 @@ const Cell = /*#__PURE__*/React__default.memo(function MemoedCell(context) {
69
75
  // this is necessary to remove console spam from eslint
70
76
  onChange: () => false,
71
77
  tabIndex: isCurrentRow ? 0 : -1
72
- }));
78
+ })));
73
79
  } else {
74
80
  const className = cn('!mt-0', getRadioClassnames());
75
81
  const handleClick = event => {
@@ -1 +1 @@
1
- {"version":3,"file":"Selection.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/internal/Selection.tsx"],"sourcesContent":["import React from 'react';\nimport { HeaderContext, CellContext, DisplayColumnDef, TableMeta } from '@tanstack/react-table';\nimport cn from 'classnames';\nimport { Checkbox } from '../../../../Checkbox/Checkbox';\nimport { Header as ColumnHeader } from '../header/Header';\nimport { DisplayCell } from '../cell/DisplayCell';\nimport { Tooltip } from '../../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Table3RowDragHandler } from '../../../types';\nimport { RowContext } from '../../rows/RowContext';\nimport { Footer } from '../footer/Footer';\nimport { getRadioClassnames } from '../../../../RadioGroup/util';\n\nexport const COLUMN_ID = '__select';\n\nfunction Header<TType = unknown>(context: HeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n\n if (context.table.options.enableMultiRowSelection) {\n const isAllRowsSelected = context.table.getIsAllRowsSelected();\n const isSomeRowsSelected = context.table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table3.columns.select.deselectAll : texts.table3.columns.select.selectAll;\n\n return (\n <ColumnHeader {...context}>\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !mt-0\"\n key={String(`${isAllRowsSelected}_${isSomeRowsSelected}`)}\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected}\n onChange={context.table.toggleAllRowsSelected}\n tabIndex={-1}\n />\n </Tooltip>\n </ColumnHeader>\n );\n } else {\n return <ColumnHeader {...context}></ColumnHeader>;\n }\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nconst Cell = React.memo(\n function MemoedCell<TType = unknown>(context: CellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const tableMeta = context.table.options.meta as TableMeta<TType>;\n\n const isCurrentRow = tableMeta.currentRow.currentRowIndex === rowIndex;\n const isSelected = context.row.getIsSelected();\n const title = isSelected ? texts.table3.columns.select.deselect : texts.table3.columns.select.select;\n\n if (context.table.options.enableMultiRowSelection) {\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(\n tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0,\n rowIndex\n );\n\n context.table\n .getRowModel()\n .rows.slice(fromIndex, toIndex + 1)\n .forEach(row => row.toggleSelected(true));\n } else {\n context.row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;\n };\n\n return (\n <DisplayCell {...context}>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n tabIndex={isCurrentRow ? 0 : -1}\n />\n </DisplayCell>\n );\n } else {\n const className = cn('!mt-0', getRadioClassnames());\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n context.row.toggleSelected();\n tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;\n };\n\n return (\n <DisplayCell {...context}>\n <button\n className={className}\n aria-checked={isSelected}\n onClick={handleClick}\n role=\"radio\"\n tabIndex={-1}\n type=\"button\">\n {isSelected ? <span className=\"h-2 w-2 rounded-full bg-white\" /> : null}\n </button>\n </DisplayCell>\n );\n }\n },\n function arePropsEqual(oldProps: CellContext<unknown, unknown>, newProps: CellContext<unknown, unknown>) {\n const oldTableMeta = oldProps.table.options.meta as TableMeta<unknown>;\n const newTableMeta = newProps.table.options.meta as TableMeta<unknown>;\n\n // we memo because we don't want the row re-rendering and removing focus from the checkbox\n // we can't default to the standard comparison because we need currentRow off the table meta\n // and we don't really care about re-rendering in any other scenario\n return (\n newTableMeta.currentRow.currentRowIndex === oldTableMeta.currentRow.currentRowIndex &&\n newProps.row.getIsSelected() !== oldProps.row.getIsSelected()\n );\n }\n) as <TType = unknown>(context: CellContext<TType, unknown>) => JSX.Element;\n\nexport function createRowSelectionColumn<TType = unknown>(\n onRowDrag?: Table3RowDragHandler<TType>\n): DisplayColumnDef<TType, unknown> {\n return {\n id: COLUMN_ID,\n header: Header,\n cell: Cell,\n footer: Footer,\n meta: {\n align: 'center',\n className: '!pt-[var(--table3-row-padding)] !justify-end !p-0 !pr-0.5',\n enableOrdering: false,\n enableSearch: false,\n enableTruncate: false,\n header: '',\n headerClassName: 'items-center !justify-end !p-0 !pr-0.5',\n },\n // options\n enableResizing: false,\n size: onRowDrag ? 22 : 32,\n };\n}\n"],"names":["COLUMN_ID","Header","context","texts","useLocalization","table","options","enableMultiRowSelection","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","title","table3","columns","select","deselectAll","selectAll","React","ColumnHeader","Tooltip","Checkbox","className","key","String","checked","indeterminate","onChange","toggleAllRowsSelected","tabIndex","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","Cell","memo","MemoedCell","rowIndex","useContext","RowContext","tableMeta","meta","isCurrentRow","currentRow","currentRowIndex","isSelected","row","getIsSelected","deselect","handleClick","event","stopPropagation","shiftKey","rowSelection","lastSelectedRowIndex","current","getRowModel","rows","slice","forEach","toggleSelected","DisplayCell","onClick","cn","getRadioClassnames","role","type","arePropsEqual","oldProps","newProps","oldTableMeta","newTableMeta","createRowSelectionColumn","onRowDrag","id","header","cell","footer","Footer","align","enableOrdering","enableSearch","enableTruncate","headerClassName","enableResizing","size"],"mappings":"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"}
1
+ {"version":3,"file":"Selection.js","sources":["../../../../../../../../../../src/components/Table3/components/columns/internal/Selection.tsx"],"sourcesContent":["import React from 'react';\nimport { HeaderContext, CellContext, DisplayColumnDef, TableMeta } from '@tanstack/react-table';\nimport cn from 'classnames';\nimport { Checkbox } from '../../../../Checkbox/Checkbox';\nimport { Header as ColumnHeader } from '../header/Header';\nimport { DisplayCell } from '../cell/DisplayCell';\nimport { Tooltip } from '../../../../Tooltip/Tooltip';\nimport { useLocalization } from '../../../../Provider/Localization';\nimport { Table3RowDragHandler } from '../../../types';\nimport { RowContext } from '../../rows/RowContext';\nimport { Footer } from '../footer/Footer';\nimport { getRadioClassnames } from '../../../../RadioGroup/util';\nimport { Shortcut } from '../../../../Shortcut/Shortcut';\n\nexport const COLUMN_ID = '__select';\n\nfunction Header<TType = unknown>(context: HeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n\n if (context.table.options.enableMultiRowSelection) {\n const isAllRowsSelected = context.table.getIsAllRowsSelected();\n const isSomeRowsSelected = context.table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table3.columns.select.deselectAll : texts.table3.columns.select.selectAll;\n\n return (\n <ColumnHeader {...context}>\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !mt-0\"\n key={String(`${isAllRowsSelected}_${isSomeRowsSelected}`)}\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected}\n onChange={context.table.toggleAllRowsSelected}\n tabIndex={-1}\n />\n </Tooltip>\n </ColumnHeader>\n );\n } else {\n return <ColumnHeader {...context}></ColumnHeader>;\n }\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nconst Cell = React.memo(\n function MemoedCell<TType = unknown>(context: CellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const tableMeta = context.table.options.meta as TableMeta<TType>;\n\n const isCurrentRow = tableMeta.currentRow.currentRowIndex === rowIndex;\n const isSelected = context.row.getIsSelected();\n const title = isSelected ? texts.table3.columns.select.deselect : texts.table3.columns.select.select;\n\n if (context.table.options.enableMultiRowSelection) {\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n\n if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(\n tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0,\n rowIndex\n );\n\n context.table\n .getRowModel()\n .rows.slice(fromIndex, toIndex + 1)\n .forEach(row => row.toggleSelected(true));\n } else {\n context.row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;\n };\n\n return (\n <DisplayCell {...context}>\n <Tooltip\n title={\n <>\n {title}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n tabIndex={isCurrentRow ? 0 : -1}\n />\n </Tooltip>\n </DisplayCell>\n );\n } else {\n const className = cn('!mt-0', getRadioClassnames());\n\n const handleClick = (event: React.MouseEvent): void => {\n event.stopPropagation();\n context.row.toggleSelected();\n tableMeta.rowSelection.lastSelectedRowIndex.current = rowIndex;\n };\n\n return (\n <DisplayCell {...context}>\n <button\n className={className}\n aria-checked={isSelected}\n onClick={handleClick}\n role=\"radio\"\n tabIndex={-1}\n type=\"button\">\n {isSelected ? <span className=\"h-2 w-2 rounded-full bg-white\" /> : null}\n </button>\n </DisplayCell>\n );\n }\n },\n function arePropsEqual(oldProps: CellContext<unknown, unknown>, newProps: CellContext<unknown, unknown>) {\n const oldTableMeta = oldProps.table.options.meta as TableMeta<unknown>;\n const newTableMeta = newProps.table.options.meta as TableMeta<unknown>;\n\n // we memo because we don't want the row re-rendering and removing focus from the checkbox\n // we can't default to the standard comparison because we need currentRow off the table meta\n // and we don't really care about re-rendering in any other scenario\n return (\n newTableMeta.currentRow.currentRowIndex === oldTableMeta.currentRow.currentRowIndex &&\n newProps.row.getIsSelected() !== oldProps.row.getIsSelected()\n );\n }\n) as <TType = unknown>(context: CellContext<TType, unknown>) => JSX.Element;\n\nexport function createRowSelectionColumn<TType = unknown>(\n onRowDrag?: Table3RowDragHandler<TType>\n): DisplayColumnDef<TType, unknown> {\n return {\n id: COLUMN_ID,\n header: Header,\n cell: Cell,\n footer: Footer,\n meta: {\n align: 'center',\n className: '!pt-[var(--table3-row-padding)] !justify-end !p-0 !pr-0.5',\n enableOrdering: false,\n enableSearch: false,\n enableTruncate: false,\n header: '',\n headerClassName: 'items-center !justify-end !p-0 !pr-0.5',\n },\n // options\n enableResizing: false,\n size: onRowDrag ? 22 : 32,\n };\n}\n"],"names":["COLUMN_ID","Header","context","texts","useLocalization","table","options","enableMultiRowSelection","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","title","table3","columns","select","deselectAll","selectAll","React","ColumnHeader","Tooltip","Checkbox","className","key","String","checked","indeterminate","onChange","toggleAllRowsSelected","tabIndex","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","Cell","memo","MemoedCell","rowIndex","useContext","RowContext","tableMeta","meta","isCurrentRow","currentRow","currentRowIndex","isSelected","row","getIsSelected","deselect","handleClick","event","stopPropagation","shiftKey","rowSelection","lastSelectedRowIndex","current","getRowModel","rows","slice","forEach","toggleSelected","DisplayCell","Shortcut","keys","onClick","cn","getRadioClassnames","role","type","arePropsEqual","oldProps","newProps","oldTableMeta","newTableMeta","createRowSelectionColumn","onRowDrag","id","header","cell","footer","Footer","align","enableOrdering","enableSearch","enableTruncate","headerClassName","enableResizing","size"],"mappings":"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"}
@@ -9,8 +9,8 @@ import { Group } from '../../../../../Group/Group.js';
9
9
  import { Shortcut } from '../../../../../Shortcut/Shortcut.js';
10
10
  import { isInternalColumn } from '../../../../util/columns.js';
11
11
  import { Table3FilterComparator } from '../../../../types.js';
12
- import { Filter } from './components/Filter.js';
13
12
  import { Placeholder } from './components/Placeholder.js';
13
+ import { Filter } from './components/Filter.js';
14
14
 
15
15
  function sortByHeader(a, b) {
16
16
  var _a$columnDef$meta, _a$columnDef$meta$hea, _a$columnDef$meta$hea2, _b$columnDef$meta;
@@ -74,7 +74,9 @@ function Filters(props) {
74
74
  //
75
75
  const handleApply = () => {
76
76
  table.setColumnFilters(filters.filter(f => {
77
- if (f.value.comparator === Table3FilterComparator.IsEmpty || f.value.comparator === Table3FilterComparator.IsNotEmpty) {
77
+ var _allColumns$find$colu;
78
+ const controlRenderer = (_allColumns$find$colu = allColumns.find(c => c.id === f.id).columnDef.meta) === null || _allColumns$find$colu === void 0 ? void 0 : _allColumns$find$colu.control;
79
+ if (f.value.comparator === Table3FilterComparator.IsEmpty || f.value.comparator === Table3FilterComparator.IsNotEmpty || controlRenderer === 'switch') {
78
80
  return true;
79
81
  }
80
82
  return !!f.value.value;
@@ -1 +1 @@
1
- {"version":3,"file":"Filters.js","sources":["../../../../../../../../../../../src/components/Table3/components/toolbar/Filter/filters/Filters.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Table as RTable, Column as RTColumn } from '@tanstack/react-table';\nimport { Button } from '../../../../../Button/Button';\nimport { Icon } from '../../../../../Icon/Icon';\nimport { Popover } from '../../../../../Popover/Popover';\nimport { Table3FilterValue, Table3FilterComparator, Table3Filter } from '../../../../types';\nimport { Shortcut } from '../../../../../Shortcut/Shortcut';\nimport { useGlobalKeyDown } from '../../../../../../hooks/useGlobalKeyDown';\nimport { useLocalization } from '../../../../../Provider/Localization';\nimport { isInternalColumn } from '../../../../util/columns';\nimport { Placeholder } from './components/Placeholder';\nimport { Filter } from './components/Filter';\nimport { Group } from '../../../../../Group/Group';\n\nfunction sortByHeader<TType = unknown>(a: RTColumn<TType>, b: RTColumn<TType>) {\n return (a.columnDef.meta?.header as string)?.localeCompare?.(b.columnDef.meta?.header as string);\n}\n\nexport type FiltersProps<TType = unknown> = {\n total: number;\n table: RTable<TType>;\n};\n\nexport function Filters<TType = unknown>(props: FiltersProps<TType>) {\n const { total, table } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const allColumns = table\n .getAllLeafColumns()\n .filter(column => !isInternalColumn(column.id))\n .sort(sortByHeader);\n const appliedFilters = table.getState().columnFilters;\n\n useGlobalKeyDown({ key: 'f', meta: true, shift: true }, (event: KeyboardEvent) => {\n event.preventDefault();\n ref.current?.click();\n });\n\n // state, since we \"apply\" filters\n const [filters, setFilters] = React.useState<Table3Filter[]>(table.getState().columnFilters as Table3Filter[]);\n const [placeholderCount, setPlaceholderCount] = React.useState(1);\n\n // filters\n const handleChangeFilter = (currentId: string, filter: { id: string; value: Table3FilterValue }) => {\n setFilters(currentFilters => {\n const nextFilters = [...currentFilters];\n const index = nextFilters.findIndex(f => f.id === currentId);\n nextFilters[index] = filter;\n return nextFilters;\n });\n };\n\n const handleRemoveFilter = (columnId: string) => {\n if (filters.length === 1 && placeholderCount === 0) {\n setPlaceholderCount(count => count + 1);\n }\n\n setFilters(currentFilters => currentFilters.filter(f => f.id !== columnId));\n };\n\n // placeholders\n const handleCreateFilterFromPlaceholder = (columnId: string) => {\n setFilters(currentFilters => [\n ...currentFilters,\n {\n id: columnId,\n value: {\n comparator: Table3FilterComparator.Contains,\n value: undefined,\n },\n },\n ]);\n handleRemovePlaceholder();\n };\n\n const handleCreatePlaceholder = () => {\n setPlaceholderCount(count => count + 1);\n };\n\n const handleRemovePlaceholder = () => {\n setPlaceholderCount(count => count - 1);\n };\n\n //\n const handleApply = () => {\n table.setColumnFilters(\n filters.filter(f => {\n if (\n f.value.comparator === Table3FilterComparator.IsEmpty ||\n f.value.comparator === Table3FilterComparator.IsNotEmpty\n ) {\n return true;\n }\n\n return !!f.value.value;\n })\n );\n };\n\n const handleClear = () => {\n table.resetColumnFilters();\n setFilters([]);\n setPlaceholderCount(1);\n };\n\n return (\n <Button\n aria-label={texts.table3.filters.tooltip}\n className={cn({\n '!wcag-blue-100': appliedFilters.length,\n })}\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content>\n <div className=\"flex w-[40rem] flex-col gap-4\">\n <div className=\"flex h-8\">\n <div className=\"flex w-full items-center gap-2\">\n <h4 className=\"mb-0 inline-flex\">{texts.table3.filters.button}</h4>\n <p className=\"text-grey-700 mb-0 mr-auto mt-px inline-flex\">\n {texts.table3.filters.total\n .replace('[CURRENT]', String(table.getFilteredRowModel().rows.length))\n .replace('[TOTAL]', String(total))}\n </p>\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n {filters.map((filter, index) => (\n <Filter\n key={`filter_${index}`}\n allColumns={allColumns as RTColumn<unknown, unknown>[]}\n filter={filter}\n filters={filters}\n position={index}\n onChange={handleChangeFilter}\n onRemove={handleRemoveFilter}\n />\n ))}\n {[...Array(placeholderCount)].map((_, index) => (\n <Placeholder\n key={`placeholder_${index}`}\n allColumns={allColumns as RTColumn<unknown, unknown>[]}\n filters={filters}\n position={filters.length + index}\n onCreate={handleCreateFilterFromPlaceholder as any}\n onRemove={\n placeholderCount > 1 || filters.length > 0 ? handleRemovePlaceholder : undefined\n }\n />\n ))}\n <div className=\"justify-start\">\n <Button appearance=\"discrete\" onClick={handleCreatePlaceholder}>\n + {texts.table3.filters.buttons.addFilter}\n </Button>\n </div>\n </div>\n <Group className=\"ml-auto\">\n <Popover.Close>\n <Button>Cancel</Button>\n </Popover.Close>\n <Button onClick={handleClear}>Clear</Button>\n <Button appearance=\"primary\" onClick={handleApply}>\n Apply\n </Button>\n </Group>\n </div>\n </Popover.Content>\n </Popover>\n )}\n ref={ref}\n tooltip={\n <>\n {texts.table3.filters.tooltip}\n <Shortcut className=\"ml-2\" keys={{ key: 'f', meta: true, shift: true }} />\n </>\n }>\n <Icon name={appliedFilters.length ? 'filter-solid' : 'filter'} />\n {texts.table3.filters.button} {appliedFilters.length ? `(${appliedFilters.length})` : ''}\n </Button>\n );\n}\n"],"names":["sortByHeader","a","b","columnDef","meta","header","localeCompare","Filters","props","total","table","texts","useLocalization","ref","React","useRef","allColumns","getAllLeafColumns","filter","column","isInternalColumn","id","sort","appliedFilters","getState","columnFilters","useGlobalKeyDown","key","shift","event","preventDefault","current","click","filters","setFilters","useState","placeholderCount","setPlaceholderCount","handleChangeFilter","currentId","currentFilters","nextFilters","index","findIndex","f","handleRemoveFilter","columnId","length","count","handleCreateFilterFromPlaceholder","value","comparator","Table3FilterComparator","Contains","undefined","handleRemovePlaceholder","handleCreatePlaceholder","handleApply","setColumnFilters","IsEmpty","IsNotEmpty","handleClear","resetColumnFilters","Button","table3","tooltip","className","cn","popover","popoverProps","Popover","Content","button","replace","String","getFilteredRowModel","rows","map","Filter","position","onChange","onRemove","Array","_","Placeholder","onCreate","appearance","onClick","buttons","addFilter","Group","Close","Shortcut","keys","Icon","name"],"mappings":"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"}
1
+ {"version":3,"file":"Filters.js","sources":["../../../../../../../../../../../src/components/Table3/components/toolbar/Filter/filters/Filters.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Table as RTable, Column as RTColumn } from '@tanstack/react-table';\nimport { Button } from '../../../../../Button/Button';\nimport { Icon } from '../../../../../Icon/Icon';\nimport { Popover } from '../../../../../Popover/Popover';\nimport { Table3FilterValue, Table3FilterComparator, Table3Filter } from '../../../../types';\nimport { Shortcut } from '../../../../../Shortcut/Shortcut';\nimport { useGlobalKeyDown } from '../../../../../../hooks/useGlobalKeyDown';\nimport { useLocalization } from '../../../../../Provider/Localization';\nimport { isInternalColumn } from '../../../../util/columns';\nimport { Placeholder } from './components/Placeholder';\nimport { Filter } from './components/Filter';\nimport { Group } from '../../../../../Group/Group';\n\nfunction sortByHeader<TType = unknown>(a: RTColumn<TType>, b: RTColumn<TType>) {\n return (a.columnDef.meta?.header as string)?.localeCompare?.(b.columnDef.meta?.header as string);\n}\n\nexport type FiltersProps<TType = unknown> = {\n total: number;\n table: RTable<TType>;\n};\n\nexport function Filters<TType = unknown>(props: FiltersProps<TType>) {\n const { total, table } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const allColumns = table\n .getAllLeafColumns()\n .filter(column => !isInternalColumn(column.id))\n .sort(sortByHeader);\n const appliedFilters = table.getState().columnFilters;\n\n useGlobalKeyDown({ key: 'f', meta: true, shift: true }, (event: KeyboardEvent) => {\n event.preventDefault();\n ref.current?.click();\n });\n\n // state, since we \"apply\" filters\n const [filters, setFilters] = React.useState<Table3Filter[]>(table.getState().columnFilters as Table3Filter[]);\n const [placeholderCount, setPlaceholderCount] = React.useState(1);\n\n // filters\n const handleChangeFilter = (currentId: string, filter: { id: string; value: Table3FilterValue }) => {\n setFilters(currentFilters => {\n const nextFilters = [...currentFilters];\n const index = nextFilters.findIndex(f => f.id === currentId);\n nextFilters[index] = filter;\n return nextFilters;\n });\n };\n\n const handleRemoveFilter = (columnId: string) => {\n if (filters.length === 1 && placeholderCount === 0) {\n setPlaceholderCount(count => count + 1);\n }\n\n setFilters(currentFilters => currentFilters.filter(f => f.id !== columnId));\n };\n\n // placeholders\n const handleCreateFilterFromPlaceholder = (columnId: string) => {\n setFilters(currentFilters => [\n ...currentFilters,\n {\n id: columnId,\n value: {\n comparator: Table3FilterComparator.Contains,\n value: undefined,\n },\n },\n ]);\n handleRemovePlaceholder();\n };\n\n const handleCreatePlaceholder = () => {\n setPlaceholderCount(count => count + 1);\n };\n\n const handleRemovePlaceholder = () => {\n setPlaceholderCount(count => count - 1);\n };\n\n //\n const handleApply = () => {\n table.setColumnFilters(\n filters.filter(f => {\n const controlRenderer = (allColumns.find(c => c.id === f.id) as RTColumn<TType, unknown>).columnDef.meta?.control;\n if (\n f.value.comparator === Table3FilterComparator.IsEmpty ||\n f.value.comparator === Table3FilterComparator.IsNotEmpty ||\n controlRenderer === 'switch'\n ) {\n return true;\n }\n return !!f.value.value;\n })\n );\n };\n\n const handleClear = () => {\n table.resetColumnFilters();\n setFilters([]);\n setPlaceholderCount(1);\n };\n\n return (\n <Button\n aria-label={texts.table3.filters.tooltip}\n className={cn({\n '!wcag-blue-100': appliedFilters.length,\n })}\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content>\n <div className=\"flex w-[40rem] flex-col gap-4\">\n <div className=\"flex h-8\">\n <div className=\"flex w-full items-center gap-2\">\n <h4 className=\"mb-0 inline-flex\">{texts.table3.filters.button}</h4>\n <p className=\"text-grey-700 mb-0 mr-auto mt-px inline-flex\">\n {texts.table3.filters.total\n .replace('[CURRENT]', String(table.getFilteredRowModel().rows.length))\n .replace('[TOTAL]', String(total))}\n </p>\n </div>\n </div>\n <div className=\"flex flex-col gap-2\">\n {filters.map((filter, index) => (\n <Filter\n key={`filter_${index}`}\n allColumns={allColumns as RTColumn<unknown, unknown>[]}\n filter={filter}\n filters={filters}\n position={index}\n onChange={handleChangeFilter}\n onRemove={handleRemoveFilter}\n />\n ))}\n {[...Array(placeholderCount)].map((_, index) => (\n <Placeholder\n key={`placeholder_${index}`}\n allColumns={allColumns as RTColumn<unknown, unknown>[]}\n filters={filters}\n position={filters.length + index}\n onCreate={handleCreateFilterFromPlaceholder as any}\n onRemove={\n placeholderCount > 1 || filters.length > 0 ? handleRemovePlaceholder : undefined\n }\n />\n ))}\n <div className=\"justify-start\">\n <Button appearance=\"discrete\" onClick={handleCreatePlaceholder}>\n + {texts.table3.filters.buttons.addFilter}\n </Button>\n </div>\n </div>\n <Group className=\"ml-auto\">\n <Popover.Close>\n <Button>Cancel</Button>\n </Popover.Close>\n <Button onClick={handleClear}>Clear</Button>\n <Button appearance=\"primary\" onClick={handleApply}>\n Apply\n </Button>\n </Group>\n </div>\n </Popover.Content>\n </Popover>\n )}\n ref={ref}\n tooltip={\n <>\n {texts.table3.filters.tooltip}\n <Shortcut className=\"ml-2\" keys={{ key: 'f', meta: true, shift: true }} />\n </>\n }>\n <Icon name={appliedFilters.length ? 'filter-solid' : 'filter'} />\n {texts.table3.filters.button} {appliedFilters.length ? `(${appliedFilters.length})` : ''}\n </Button>\n );\n}\n"],"names":["sortByHeader","a","b","columnDef","meta","header","localeCompare","Filters","props","total","table","texts","useLocalization","ref","React","useRef","allColumns","getAllLeafColumns","filter","column","isInternalColumn","id","sort","appliedFilters","getState","columnFilters","useGlobalKeyDown","key","shift","event","preventDefault","current","click","filters","setFilters","useState","placeholderCount","setPlaceholderCount","handleChangeFilter","currentId","currentFilters","nextFilters","index","findIndex","f","handleRemoveFilter","columnId","length","count","handleCreateFilterFromPlaceholder","value","comparator","Table3FilterComparator","Contains","undefined","handleRemovePlaceholder","handleCreatePlaceholder","handleApply","setColumnFilters","controlRenderer","find","c","control","IsEmpty","IsNotEmpty","handleClear","resetColumnFilters","Button","table3","tooltip","className","cn","popover","popoverProps","Popover","Content","button","replace","String","getFilteredRowModel","rows","map","Filter","position","onChange","onRemove","Array","_","Placeholder","onCreate","appearance","onClick","buttons","addFilter","Group","Close","Shortcut","keys","Icon","name"],"mappings":"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"}
@@ -65,8 +65,8 @@ function Filter(props) {
65
65
  onChange: handleChangeColumn,
66
66
  value: id
67
67
  }), /*#__PURE__*/React__default.createElement(FilterComparator, {
68
+ column: column,
68
69
  onChange: handleChangeComparator,
69
- validComparators: guessComparatorsBasedOnControl(),
70
70
  value: comparator
71
71
  }), /*#__PURE__*/React__default.createElement(FilterValue, {
72
72
  column: column,
@@ -80,28 +80,6 @@ function Filter(props) {
80
80
  onClick: handleRemove
81
81
  }));
82
82
  }
83
- function guessComparatorsBasedOnControl(instance, control) {
84
- if ( /*#__PURE__*/React__default.isValidElement(instance)) {
85
- const {
86
- props,
87
- type
88
- } = instance;
89
- if (type.displayName === 'Select2') {
90
- if (props.multiple) {
91
- return [Table3FilterComparator.IsOneOf, Table3FilterComparator.IsNoneOf, Table3FilterComparator.IsAllOf];
92
- }
93
- return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo];
94
- }
95
- }
96
- switch (control) {
97
- case 'datepicker':
98
- return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween];
99
- case 'switch':
100
- return [Table3FilterComparator.IsEqualTo];
101
- default:
102
- return [Table3FilterComparator.Contains, Table3FilterComparator.DoesNotContain, Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo, Table3FilterComparator.IsEmpty, Table3FilterComparator.IsNotEmpty, Table3FilterComparator.IsGreaterThan, Table3FilterComparator.IsLessThan, Table3FilterComparator.IsBetween];
103
- }
104
- }
105
83
 
106
- export { Filter, guessComparatorsBasedOnControl };
84
+ export { Filter };
107
85
  //# sourceMappingURL=Filter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filter.js","sources":["../../../../../../../../../../../../src/components/Table3/components/toolbar/Filter/filters/components/Filter.tsx"],"sourcesContent":["import React from 'react';\nimport { Column as RTColumn, ColumnFiltersState } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../IconButton/IconButton';\nimport { Table3ColumnControlRenderer, Table3FilterComparator, Table3Filter } from '../../../../../types';\nimport { useLocalization } from '../../../../../../Provider/Localization';\nimport { FilterColumn } from './FilterColumn';\nimport { FilterComparator } from './FilterComparator';\nimport { FilterValue } from './FilterValue';\n\nexport type FilterProps<TType = unknown> = {\n allColumns: RTColumn<TType, unknown>[];\n filter: Table3Filter;\n filters: ColumnFiltersState;\n position: number;\n onChange: (id: string, value: Table3Filter) => void;\n onRemove: (columnId: string) => void;\n};\n\nexport function Filter<TType = unknown>(props: FilterProps<TType>) {\n const { allColumns, filter, filters, onChange: handleChange, onRemove, position } = props;\n const { texts } = useLocalization();\n const column = allColumns.find(c => c.id === filter.id) as RTColumn<TType, unknown>;\n const {\n id,\n value: { comparator, value },\n } = filter;\n\n const handleChangeColumn = (columnId: string) => {\n handleChange(id, { id: columnId, value: filter.value });\n };\n\n const handleChangeComparator = (comparator: Table3FilterComparator) => {\n let nextValue = filter.value.value;\n\n if (comparator === Table3FilterComparator.IsEmpty || comparator === Table3FilterComparator.IsNotEmpty) {\n nextValue = undefined;\n }\n\n handleChange(id, { id, value: { comparator, value: nextValue } });\n };\n\n const handleChangeValue = (value: any) => {\n handleChange(id, { id, value: { ...filter.value, value } });\n };\n\n const handleRemove = () => onRemove(id);\n\n return (\n <div className=\"flex gap-2\">\n <div className=\"flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right\">\n {position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where}\n </div>\n <FilterColumn allColumns={allColumns} filters={filters} onChange={handleChangeColumn as any} value={id} />\n <FilterComparator\n onChange={handleChangeComparator as any}\n validComparators={guessComparatorsBasedOnControl()}\n value={comparator}\n />\n <FilterValue column={column} comparator={comparator} onChange={handleChangeValue} value={value} />\n <IconButton appearance=\"discrete\" className=\"ml-auto\" icon=\"close\" onClick={handleRemove} />\n </div>\n );\n}\n\nexport function guessComparatorsBasedOnControl<TType = unknown>(\n instance?: JSX.Element,\n control?: Table3ColumnControlRenderer<TType>\n) {\n if (React.isValidElement(instance)) {\n const { props, type } = instance as any;\n\n if (type.displayName === 'Select2') {\n if (props.multiple) {\n return [Table3FilterComparator.IsOneOf, Table3FilterComparator.IsNoneOf, Table3FilterComparator.IsAllOf];\n }\n\n return [Table3FilterComparator.IsEqualTo, Table3FilterComparator.IsNotEqualTo];\n }\n }\n\n switch (control) {\n case 'datepicker':\n return [\n Table3FilterComparator.IsEqualTo,\n Table3FilterComparator.IsNotEqualTo,\n Table3FilterComparator.IsGreaterThan,\n Table3FilterComparator.IsLessThan,\n Table3FilterComparator.IsBetween,\n ];\n\n case 'switch':\n return [Table3FilterComparator.IsEqualTo];\n\n default:\n return [\n Table3FilterComparator.Contains,\n Table3FilterComparator.DoesNotContain,\n Table3FilterComparator.IsEqualTo,\n Table3FilterComparator.IsNotEqualTo,\n Table3FilterComparator.IsEmpty,\n Table3FilterComparator.IsNotEmpty,\n Table3FilterComparator.IsGreaterThan,\n Table3FilterComparator.IsLessThan,\n Table3FilterComparator.IsBetween,\n ];\n }\n}\n"],"names":["Filter","props","allColumns","filter","filters","onChange","handleChange","onRemove","position","texts","useLocalization","column","find","c","id","value","comparator","handleChangeColumn","columnId","handleChangeComparator","nextValue","Table3FilterComparator","IsEmpty","IsNotEmpty","undefined","handleChangeValue","handleRemove","React","className","table3","conditions","and","where","FilterColumn","FilterComparator","validComparators","guessComparatorsBasedOnControl","FilterValue","IconButton","appearance","icon","onClick","instance","control","isValidElement","type","displayName","multiple","IsOneOf","IsNoneOf","IsAllOf","IsEqualTo","IsNotEqualTo","IsGreaterThan","IsLessThan","IsBetween","Contains","DoesNotContain"],"mappings":";;;;;;;;SAkBgBA,MAAM,CAAkBC,KAAyB;EAC7D,MAAM;IAAEC,UAAU;IAAEC,MAAM;IAAEC,OAAO;IAAEC,QAAQ,EAAEC,YAAY;IAAEC,QAAQ;IAAEC;GAAU,GAAGP,KAAK;EACzF,MAAM;IAAEQ;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,MAAM,GAAGT,UAAU,CAACU,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKX,MAAM,CAACW,EAAE,CAA6B;EACnF,MAAM;IACFA,EAAE;IACFC,KAAK,EAAE;MAAEC,UAAU;MAAED;;GACxB,GAAGZ,MAAM;EAEV,MAAMc,kBAAkB,GAAIC,QAAgB;IACxCZ,YAAY,CAACQ,EAAE,EAAE;MAAEA,EAAE,EAAEI,QAAQ;MAAEH,KAAK,EAAEZ,MAAM,CAACY;KAAO,CAAC;GAC1D;EAED,MAAMI,sBAAsB,GAAIH,UAAkC;IAC9D,IAAII,SAAS,GAAGjB,MAAM,CAACY,KAAK,CAACA,KAAK;IAElC,IAAIC,UAAU,KAAKK,sBAAsB,CAACC,OAAO,IAAIN,UAAU,KAAKK,sBAAsB,CAACE,UAAU,EAAE;MACnGH,SAAS,GAAGI,SAAS;;IAGzBlB,YAAY,CAACQ,EAAE,EAAE;MAAEA,EAAE;MAAEC,KAAK,EAAE;QAAEC,UAAU;QAAED,KAAK,EAAEK;;KAAa,CAAC;GACpE;EAED,MAAMK,iBAAiB,GAAIV,KAAU;IACjCT,YAAY,CAACQ,EAAE,EAAE;MAAEA,EAAE;MAAEC,KAAK,EAAE;QAAE,GAAGZ,MAAM,CAACY,KAAK;QAAEA;;KAAS,CAAC;GAC9D;EAED,MAAMW,YAAY,GAAG,MAAMnB,QAAQ,CAACO,EAAE,CAAC;EAEvC,oBACIa;IAAKC,SAAS,EAAC;kBACXD;IAAKC,SAAS,EAAC;KACVpB,QAAQ,GAAG,CAAC,GAAGC,KAAK,CAACoB,MAAM,CAACzB,OAAO,CAAC0B,UAAU,CAACC,GAAG,GAAGtB,KAAK,CAACoB,MAAM,CAACzB,OAAO,CAAC0B,UAAU,CAACE,KAAK,CACzF,eACNL,6BAACM,YAAY;IAAC/B,UAAU,EAAEA,UAAU;IAAEE,OAAO,EAAEA,OAAO;IAAEC,QAAQ,EAAEY,kBAAyB;IAAEF,KAAK,EAAED;IAAM,eAC1Ga,6BAACO,gBAAgB;IACb7B,QAAQ,EAAEc,sBAA6B;IACvCgB,gBAAgB,EAAEC,8BAA8B,EAAE;IAClDrB,KAAK,EAAEC;IACT,eACFW,6BAACU,WAAW;IAAC1B,MAAM,EAAEA,MAAM;IAAEK,UAAU,EAAEA,UAAU;IAAEX,QAAQ,EAAEoB,iBAAiB;IAAEV,KAAK,EAAEA;IAAS,eAClGY,6BAACW,UAAU;IAACC,UAAU,EAAC,UAAU;IAACX,SAAS,EAAC,SAAS;IAACY,IAAI,EAAC,OAAO;IAACC,OAAO,EAAEf;IAAgB,CAC1F;AAEd;SAEgBU,8BAA8B,CAC1CM,QAAsB,EACtBC,OAA4C;EAE5C,kBAAIhB,cAAK,CAACiB,cAAc,CAACF,QAAQ,CAAC,EAAE;IAChC,MAAM;MAAEzC,KAAK;MAAE4C;KAAM,GAAGH,QAAe;IAEvC,IAAIG,IAAI,CAACC,WAAW,KAAK,SAAS,EAAE;MAChC,IAAI7C,KAAK,CAAC8C,QAAQ,EAAE;QAChB,OAAO,CAAC1B,sBAAsB,CAAC2B,OAAO,EAAE3B,sBAAsB,CAAC4B,QAAQ,EAAE5B,sBAAsB,CAAC6B,OAAO,CAAC;;MAG5G,OAAO,CAAC7B,sBAAsB,CAAC8B,SAAS,EAAE9B,sBAAsB,CAAC+B,YAAY,CAAC;;;EAItF,QAAQT,OAAO;IACX,KAAK,YAAY;MACb,OAAO,CACHtB,sBAAsB,CAAC8B,SAAS,EAChC9B,sBAAsB,CAAC+B,YAAY,EACnC/B,sBAAsB,CAACgC,aAAa,EACpChC,sBAAsB,CAACiC,UAAU,EACjCjC,sBAAsB,CAACkC,SAAS,CACnC;IAEL,KAAK,QAAQ;MACT,OAAO,CAAClC,sBAAsB,CAAC8B,SAAS,CAAC;IAE7C;MACI,OAAO,CACH9B,sBAAsB,CAACmC,QAAQ,EAC/BnC,sBAAsB,CAACoC,cAAc,EACrCpC,sBAAsB,CAAC8B,SAAS,EAChC9B,sBAAsB,CAAC+B,YAAY,EACnC/B,sBAAsB,CAACC,OAAO,EAC9BD,sBAAsB,CAACE,UAAU,EACjCF,sBAAsB,CAACgC,aAAa,EACpChC,sBAAsB,CAACiC,UAAU,EACjCjC,sBAAsB,CAACkC,SAAS,CACnC;;AAEb;;;;"}
1
+ {"version":3,"file":"Filter.js","sources":["../../../../../../../../../../../../src/components/Table3/components/toolbar/Filter/filters/components/Filter.tsx"],"sourcesContent":["import React from 'react';\nimport { Column as RTColumn, ColumnFiltersState } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../IconButton/IconButton';\nimport { Table3Filter, Table3FilterComparator } from '../../../../../types';\nimport { useLocalization } from '../../../../../../Provider/Localization';\nimport { FilterColumn } from './FilterColumn';\nimport { FilterComparator } from './FilterComparator';\nimport { FilterValue } from './FilterValue';\n\nexport type FilterProps<TType = unknown> = {\n allColumns: RTColumn<TType, unknown>[];\n filter: Table3Filter;\n filters: ColumnFiltersState;\n position: number;\n onChange: (id: string, value: Table3Filter) => void;\n onRemove: (columnId: string) => void;\n};\n\nexport function Filter<TType = unknown>(props: FilterProps<TType>) {\n const { allColumns, filter, filters, onChange: handleChange, onRemove, position } = props;\n const { texts } = useLocalization();\n const column = allColumns.find(c => c.id === filter.id) as RTColumn<TType, unknown>;\n\n const {\n id,\n value: { comparator, value },\n } = filter;\n\n const handleChangeColumn = (columnId: string) => {\n handleChange(id, { id: columnId, value: filter.value });\n };\n\n const handleChangeComparator = (comparator: Table3FilterComparator) => {\n let nextValue = filter.value.value;\n\n if (comparator === Table3FilterComparator.IsEmpty || comparator === Table3FilterComparator.IsNotEmpty) {\n nextValue = undefined;\n }\n handleChange(id, { id, value: { comparator, value: nextValue } });\n };\n\n const handleChangeValue = (value: any) => {\n handleChange(id, { id, value: { ...filter.value, value } });\n };\n\n const handleRemove = () => onRemove(id);\n\n return (\n <div className=\"flex gap-2\">\n <div className=\"flex w-14 flex-shrink-0 items-center justify-end pr-2 text-right\">\n {position > 0 ? texts.table3.filters.conditions.and : texts.table3.filters.conditions.where}\n </div>\n <FilterColumn allColumns={allColumns} filters={filters} onChange={handleChangeColumn as any} value={id} />\n <FilterComparator column={column} onChange={handleChangeComparator as any} value={comparator} />\n <FilterValue column={column} comparator={comparator} onChange={handleChangeValue} value={value} />\n <IconButton appearance=\"discrete\" className=\"ml-auto\" icon=\"close\" onClick={handleRemove} />\n </div>\n );\n}\n"],"names":["Filter","props","allColumns","filter","filters","onChange","handleChange","onRemove","position","texts","useLocalization","column","find","c","id","value","comparator","handleChangeColumn","columnId","handleChangeComparator","nextValue","Table3FilterComparator","IsEmpty","IsNotEmpty","undefined","handleChangeValue","handleRemove","React","className","table3","conditions","and","where","FilterColumn","FilterComparator","FilterValue","IconButton","appearance","icon","onClick"],"mappings":";;;;;;;;SAkBgBA,MAAM,CAAkBC,KAAyB;EAC7D,MAAM;IAAEC,UAAU;IAAEC,MAAM;IAAEC,OAAO;IAAEC,QAAQ,EAAEC,YAAY;IAAEC,QAAQ;IAAEC;GAAU,GAAGP,KAAK;EACzF,MAAM;IAAEQ;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,MAAM,GAAGT,UAAU,CAACU,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,EAAE,KAAKX,MAAM,CAACW,EAAE,CAA6B;EAEnF,MAAM;IACFA,EAAE;IACFC,KAAK,EAAE;MAAEC,UAAU;MAAED;;GACxB,GAAGZ,MAAM;EAEV,MAAMc,kBAAkB,GAAIC,QAAgB;IACxCZ,YAAY,CAACQ,EAAE,EAAE;MAAEA,EAAE,EAAEI,QAAQ;MAAEH,KAAK,EAAEZ,MAAM,CAACY;KAAO,CAAC;GAC1D;EAED,MAAMI,sBAAsB,GAAIH,UAAkC;IAC9D,IAAII,SAAS,GAAGjB,MAAM,CAACY,KAAK,CAACA,KAAK;IAElC,IAAIC,UAAU,KAAKK,sBAAsB,CAACC,OAAO,IAAIN,UAAU,KAAKK,sBAAsB,CAACE,UAAU,EAAE;MACnGH,SAAS,GAAGI,SAAS;;IAEzBlB,YAAY,CAACQ,EAAE,EAAE;MAAEA,EAAE;MAAEC,KAAK,EAAE;QAAEC,UAAU;QAAED,KAAK,EAAEK;;KAAa,CAAC;GACpE;EAED,MAAMK,iBAAiB,GAAIV,KAAU;IACjCT,YAAY,CAACQ,EAAE,EAAE;MAAEA,EAAE;MAAEC,KAAK,EAAE;QAAE,GAAGZ,MAAM,CAACY,KAAK;QAAEA;;KAAS,CAAC;GAC9D;EAED,MAAMW,YAAY,GAAG,MAAMnB,QAAQ,CAACO,EAAE,CAAC;EAEvC,oBACIa;IAAKC,SAAS,EAAC;kBACXD;IAAKC,SAAS,EAAC;KACVpB,QAAQ,GAAG,CAAC,GAAGC,KAAK,CAACoB,MAAM,CAACzB,OAAO,CAAC0B,UAAU,CAACC,GAAG,GAAGtB,KAAK,CAACoB,MAAM,CAACzB,OAAO,CAAC0B,UAAU,CAACE,KAAK,CACzF,eACNL,6BAACM,YAAY;IAAC/B,UAAU,EAAEA,UAAU;IAAEE,OAAO,EAAEA,OAAO;IAAEC,QAAQ,EAAEY,kBAAyB;IAAEF,KAAK,EAAED;IAAM,eAC1Ga,6BAACO,gBAAgB;IAACvB,MAAM,EAAEA,MAAM;IAAEN,QAAQ,EAAEc,sBAA6B;IAAEJ,KAAK,EAAEC;IAAc,eAChGW,6BAACQ,WAAW;IAACxB,MAAM,EAAEA,MAAM;IAAEK,UAAU,EAAEA,UAAU;IAAEX,QAAQ,EAAEoB,iBAAiB;IAAEV,KAAK,EAAEA;IAAS,eAClGY,6BAACS,UAAU;IAACC,UAAU,EAAC,UAAU;IAACT,SAAS,EAAC,SAAS;IAACU,IAAI,EAAC,OAAO;IAACC,OAAO,EAAEb;IAAgB,CAC1F;AAEd;;;;"}