@economic/taco 2.2.0 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import cn from 'classnames';
3
3
  import { useMergedRef } from '../../hooks/useMergedRef.js';
4
+ import { isEventTriggeredOnInteractiveElement } from '../../utils/keyboard.js';
4
5
  import { FocusScope } from '@react-aria/focus';
5
6
  import { flexRender } from '@tanstack/react-table';
6
7
  import { useCssGrid } from './hooks/useCssGrid.js';
@@ -43,6 +44,9 @@ const Table = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
43
44
  const tableMeta = table.options.meta;
44
45
  const state = table.getState();
45
46
  const handleKeyDown = event => {
47
+ if (isEventTriggeredOnInteractiveElement(event.target)) {
48
+ return;
49
+ }
46
50
  tableMeta.hoverState.handleKeyDown(event);
47
51
  tableMeta.currentRow.handleKeyDown(event, table.getRowModel().rows.length, scrollToIndex);
48
52
  tableMeta.rowClick.handleKeyDown(event, table);
@@ -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';\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 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 Table3SearchHandler,\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","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 // 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 Table3SearchHandler,\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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"}
@@ -142,7 +142,7 @@ function Menu(props) {
142
142
  return menuItems.map((item, key) => /*#__PURE__*/React__default.cloneElement(item, {
143
143
  key
144
144
  }));
145
- }, [menu, index, canFreeze, canHide, tableMeta.columnFreezing.frozenColumnIndex]);
145
+ }, [menu, index, canFreeze, canHide, handleGoto, tableMeta.columnFreezing.frozenColumnIndex]);
146
146
  return /*#__PURE__*/React__default.createElement(IconButton, {
147
147
  className: className,
148
148
  icon: "more",
@@ -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, 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\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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"}
@@ -74,9 +74,10 @@ function useParentStylesheets(iframeWindow) {
74
74
  });
75
75
  // Add all link tags that are stylesheets, to the iframe head, so that we include the taco and client styles
76
76
  linkStylesheets.forEach(linkStylesheet => {
77
+ var _linkStylesheet$getAt;
77
78
  const linkTag = iframeDocument.createElement('link');
78
79
  linkTag.setAttribute('rel', 'stylesheet');
79
- linkTag.innerHTML = linkStylesheet.innerHTML;
80
+ linkTag.setAttribute('href', (_linkStylesheet$getAt = linkStylesheet.getAttribute('href')) !== null && _linkStylesheet$getAt !== void 0 ? _linkStylesheet$getAt : '');
80
81
  iframeDocument.head.appendChild(linkTag);
81
82
  });
82
83
  setReady(true);
@@ -1 +1 @@
1
- {"version":3,"file":"useParentStylesheets.js","sources":["../../../../../../../../../../../src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.ts"],"sourcesContent":["import React from 'react';\n\nconst PRINT_STYLES = `\n@page {\n margin: 16px;\n}\n\n@media print {\n html, body, #root {\n overflow: auto !important;\n height: auto !important;\n width: auto !important;\n }\n\n [role=\"table\"] {\n border-width: 0 !important;\n overflow-y: hidden !important;\n }\n\n [role=\"table\"] [role=\"columnheader\"] {\n border-bottom-width: 1px !important;\n }\n\n /*\n * Summary row cells\n */\n [role=\"table\"] [role=\"rowgroup\"]:last-child [role=\"cell\"] {\n border-width: 0 !important;\n }\n\n [role=\"table\"] a {\n color: rgb(28 28 28);\n }\n\n [data-taco=\"alert\"],\n [data-taco=\"banner\"],\n [data-taco=\"hanger\"],\n [data-taco=\"toast\"],\n [data-taco=\"table3-toolbar\"],\n [data-taco=\"tooltip\"],\n /*\n * Tour components\n */\n [id^=\"react-joyride\"]\n {\n display: none !important;\n }\n}\n`;\n\nexport function useParentStylesheets(iframeWindow: Window | null | undefined) {\n const [ready, setReady] = React.useState(false);\n\n React.useEffect(() => {\n if (!iframeWindow) {\n return;\n }\n\n const parentDocument = iframeWindow.parent.document;\n const iframeDocument = iframeWindow.document;\n\n // add our custom print styles\n const customPrintStyles = iframeDocument.createElement('style');\n\n if (customPrintStyles) {\n customPrintStyles.innerHTML = PRINT_STYLES;\n iframeDocument.head.appendChild(customPrintStyles);\n }\n\n // Get style tags from the parent\n const parentStylesheets = Array.from(\n parentDocument.querySelectorAll('style:not([data-taco=\"table3-column-freezing-styles\"])')\n );\n // Get linked stylesheets from the parent\n const linkStylesheets = Array.from(parentDocument.querySelectorAll('[rel=\"stylesheet\"]'));\n\n // We want to add tailwind styles specifically but there is no guarenteed way to know which style tag has\n // tailwind styles, so we add all the styles present in the parent frame\n parentStylesheets.forEach(parentStyle => {\n const styleTag = iframeDocument.createElement('style');\n\n styleTag.innerHTML = parentStyle.innerHTML;\n iframeDocument.head.appendChild(styleTag);\n });\n\n // Add all link tags that are stylesheets, to the iframe head, so that we include the taco and client styles\n linkStylesheets.forEach(linkStylesheet => {\n const linkTag = iframeDocument.createElement('link');\n\n linkTag.setAttribute('rel', 'stylesheet');\n\n linkTag.innerHTML = linkStylesheet.innerHTML;\n iframeDocument.head.appendChild(linkTag);\n });\n\n setReady(true);\n }, [iframeWindow]);\n\n return ready;\n}\n"],"names":["PRINT_STYLES","useParentStylesheets","iframeWindow","ready","setReady","React","useState","useEffect","parentDocument","parent","document","iframeDocument","customPrintStyles","createElement","innerHTML","head","appendChild","parentStylesheets","Array","from","querySelectorAll","linkStylesheets","forEach","parentStyle","styleTag","linkStylesheet","linkTag","setAttribute"],"mappings":";;AAEA,MAAMA,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CjB;SAEeC,oBAAoB,CAACC,YAAuC;EACxE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EAE/CD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAI,CAACL,YAAY,EAAE;MACf;;IAGJ,MAAMM,cAAc,GAAGN,YAAY,CAACO,MAAM,CAACC,QAAQ;IACnD,MAAMC,cAAc,GAAGT,YAAY,CAACQ,QAAQ;;IAG5C,MAAME,iBAAiB,GAAGD,cAAc,CAACE,aAAa,CAAC,OAAO,CAAC;IAE/D,IAAID,iBAAiB,EAAE;MACnBA,iBAAiB,CAACE,SAAS,GAAGd,YAAY;MAC1CW,cAAc,CAACI,IAAI,CAACC,WAAW,CAACJ,iBAAiB,CAAC;;;IAItD,MAAMK,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAChCX,cAAc,CAACY,gBAAgB,CAAC,wDAAwD,CAAC,CAC5F;;IAED,MAAMC,eAAe,GAAGH,KAAK,CAACC,IAAI,CAACX,cAAc,CAACY,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;;;IAIzFH,iBAAiB,CAACK,OAAO,CAACC,WAAW;MACjC,MAAMC,QAAQ,GAAGb,cAAc,CAACE,aAAa,CAAC,OAAO,CAAC;MAEtDW,QAAQ,CAACV,SAAS,GAAGS,WAAW,CAACT,SAAS;MAC1CH,cAAc,CAACI,IAAI,CAACC,WAAW,CAACQ,QAAQ,CAAC;KAC5C,CAAC;;IAGFH,eAAe,CAACC,OAAO,CAACG,cAAc;MAClC,MAAMC,OAAO,GAAGf,cAAc,CAACE,aAAa,CAAC,MAAM,CAAC;MAEpDa,OAAO,CAACC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC;MAEzCD,OAAO,CAACZ,SAAS,GAAGW,cAAc,CAACX,SAAS;MAC5CH,cAAc,CAACI,IAAI,CAACC,WAAW,CAACU,OAAO,CAAC;KAC3C,CAAC;IAEFtB,QAAQ,CAAC,IAAI,CAAC;GACjB,EAAE,CAACF,YAAY,CAAC,CAAC;EAElB,OAAOC,KAAK;AAChB;;;;"}
1
+ {"version":3,"file":"useParentStylesheets.js","sources":["../../../../../../../../../../../src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.ts"],"sourcesContent":["import React from 'react';\n\nconst PRINT_STYLES = `\n@page {\n margin: 16px;\n}\n\n@media print {\n html, body, #root {\n overflow: auto !important;\n height: auto !important;\n width: auto !important;\n }\n\n [role=\"table\"] {\n border-width: 0 !important;\n overflow-y: hidden !important;\n }\n\n [role=\"table\"] [role=\"columnheader\"] {\n border-bottom-width: 1px !important;\n }\n\n /*\n * Summary row cells\n */\n [role=\"table\"] [role=\"rowgroup\"]:last-child [role=\"cell\"] {\n border-width: 0 !important;\n }\n\n [role=\"table\"] a {\n color: rgb(28 28 28);\n }\n\n [data-taco=\"alert\"],\n [data-taco=\"banner\"],\n [data-taco=\"hanger\"],\n [data-taco=\"toast\"],\n [data-taco=\"table3-toolbar\"],\n [data-taco=\"tooltip\"],\n /*\n * Tour components\n */\n [id^=\"react-joyride\"]\n {\n display: none !important;\n }\n}\n`;\n\nexport function useParentStylesheets(iframeWindow: Window | null | undefined) {\n const [ready, setReady] = React.useState(false);\n\n React.useEffect(() => {\n if (!iframeWindow) {\n return;\n }\n\n const parentDocument = iframeWindow.parent.document;\n const iframeDocument = iframeWindow.document;\n\n // add our custom print styles\n const customPrintStyles = iframeDocument.createElement('style');\n\n if (customPrintStyles) {\n customPrintStyles.innerHTML = PRINT_STYLES;\n iframeDocument.head.appendChild(customPrintStyles);\n }\n\n // Get style tags from the parent\n const parentStylesheets = Array.from(\n parentDocument.querySelectorAll('style:not([data-taco=\"table3-column-freezing-styles\"])')\n );\n // Get linked stylesheets from the parent\n const linkStylesheets = Array.from(parentDocument.querySelectorAll('[rel=\"stylesheet\"]'));\n\n // We want to add tailwind styles specifically but there is no guarenteed way to know which style tag has\n // tailwind styles, so we add all the styles present in the parent frame\n parentStylesheets.forEach(parentStyle => {\n const styleTag = iframeDocument.createElement('style');\n\n styleTag.innerHTML = parentStyle.innerHTML;\n iframeDocument.head.appendChild(styleTag);\n });\n\n // Add all link tags that are stylesheets, to the iframe head, so that we include the taco and client styles\n linkStylesheets.forEach(linkStylesheet => {\n const linkTag = iframeDocument.createElement('link');\n\n linkTag.setAttribute('rel', 'stylesheet');\n linkTag.setAttribute('href', linkStylesheet.getAttribute('href') ?? '');\n\n iframeDocument.head.appendChild(linkTag);\n });\n\n setReady(true);\n }, [iframeWindow]);\n\n return ready;\n}\n"],"names":["PRINT_STYLES","useParentStylesheets","iframeWindow","ready","setReady","React","useState","useEffect","parentDocument","parent","document","iframeDocument","customPrintStyles","createElement","innerHTML","head","appendChild","parentStylesheets","Array","from","querySelectorAll","linkStylesheets","forEach","parentStyle","styleTag","linkStylesheet","linkTag","setAttribute","getAttribute"],"mappings":";;AAEA,MAAMA,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8CjB;SAEeC,oBAAoB,CAACC,YAAuC;EACxE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EAE/CD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAI,CAACL,YAAY,EAAE;MACf;;IAGJ,MAAMM,cAAc,GAAGN,YAAY,CAACO,MAAM,CAACC,QAAQ;IACnD,MAAMC,cAAc,GAAGT,YAAY,CAACQ,QAAQ;;IAG5C,MAAME,iBAAiB,GAAGD,cAAc,CAACE,aAAa,CAAC,OAAO,CAAC;IAE/D,IAAID,iBAAiB,EAAE;MACnBA,iBAAiB,CAACE,SAAS,GAAGd,YAAY;MAC1CW,cAAc,CAACI,IAAI,CAACC,WAAW,CAACJ,iBAAiB,CAAC;;;IAItD,MAAMK,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAChCX,cAAc,CAACY,gBAAgB,CAAC,wDAAwD,CAAC,CAC5F;;IAED,MAAMC,eAAe,GAAGH,KAAK,CAACC,IAAI,CAACX,cAAc,CAACY,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;;;IAIzFH,iBAAiB,CAACK,OAAO,CAACC,WAAW;MACjC,MAAMC,QAAQ,GAAGb,cAAc,CAACE,aAAa,CAAC,OAAO,CAAC;MAEtDW,QAAQ,CAACV,SAAS,GAAGS,WAAW,CAACT,SAAS;MAC1CH,cAAc,CAACI,IAAI,CAACC,WAAW,CAACQ,QAAQ,CAAC;KAC5C,CAAC;;IAGFH,eAAe,CAACC,OAAO,CAACG,cAAc;;MAClC,MAAMC,OAAO,GAAGf,cAAc,CAACE,aAAa,CAAC,MAAM,CAAC;MAEpDa,OAAO,CAACC,YAAY,CAAC,KAAK,EAAE,YAAY,CAAC;MACzCD,OAAO,CAACC,YAAY,CAAC,MAAM,2BAAEF,cAAc,CAACG,YAAY,CAAC,MAAM,CAAC,yEAAI,EAAE,CAAC;MAEvEjB,cAAc,CAACI,IAAI,CAACC,WAAW,CAACU,OAAO,CAAC;KAC3C,CAAC;IAEFtB,QAAQ,CAAC,IAAI,CAAC;GACjB,EAAE,CAACF,YAAY,CAAC,CAAC;EAElB,OAAOC,KAAK;AAChB;;;;"}
@@ -9,7 +9,7 @@ export { Accordion } from './components/Accordion/Accordion.js';
9
9
  export { VisuallyHidden } from './components/VisuallyHidden/VisuallyHidden.js';
10
10
  export { Badge } from './components/Badge/Badge.js';
11
11
  export { useMergedRef } from './hooks/useMergedRef.js';
12
- export { createShortcutKeyDownHandler, isMacOs } from './utils/keyboard.js';
12
+ export { createShortcutKeyDownHandler, isEventTriggeredOnInteractiveElement, isMacOs } from './utils/keyboard.js';
13
13
  export { Tooltip } from './components/Tooltip/Tooltip.js';
14
14
  export { Base, IconButton } from './components/IconButton/IconButton.js';
15
15
  export { LocalizationContext, LocalizationProvider, defaultLocalisationTexts, defaultLocalizationContext, useLocalization } from './components/Provider/Localization.js';
@@ -1,4 +1,7 @@
1
- const WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];
1
+ const WHITELISTED_ELEMENTS = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'];
2
+ function isEventTriggeredOnInteractiveElement(eventTarget) {
3
+ return WHITELISTED_ELEMENTS.includes(eventTarget.tagName);
4
+ }
2
5
  function createShortcutKeyDownHandler(key, handler) {
3
6
  return function (event) {
4
7
  const keyOptions = typeof key === 'string' ? {
@@ -6,7 +9,7 @@ function createShortcutKeyDownHandler(key, handler) {
6
9
  meta: false,
7
10
  shift: false
8
11
  } : key;
9
- if (event.target !== event.currentTarget && WHITELISTED_ELEMENTS.includes(event.target.tagName)) {
12
+ if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target)) {
10
13
  return;
11
14
  }
12
15
  if (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
@@ -31,5 +34,5 @@ const isMacOs = () => {
31
34
  return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
32
35
  };
33
36
 
34
- export { createShortcutKeyDownHandler, isMacOs };
37
+ export { createShortcutKeyDownHandler, isEventTriggeredOnInteractiveElement, isMacOs };
35
38
  //# sourceMappingURL=keyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nconst WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (event.target !== event.currentTarget && WHITELISTED_ELEMENTS.includes((event.target as HTMLElement).tagName)) {\n return;\n }\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return;\n }\n\n const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();\n\n if (condition) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["WHITELISTED_ELEMENTS","createShortcutKeyDownHandler","key","handler","event","keyOptions","meta","shift","target","currentTarget","includes","tagName","isMacOs","metaKey","ctrlKey","shiftKey","condition","toLowerCase","stopPropagation","stopImmediatePropagation","window","navigator","userAgent"],"mappings":"AAIA,MAAMA,oBAAoB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;SAE5CC,4BAA4B,CACxCC,GAAmC,EACnCC,OAAgE;EAEhE,OAAO,UAAUC,KAA6C;IAC1D,MAAMC,UAAU,GAA0B,OAAOH,GAAG,KAAK,QAAQ,GAAG;MAAEA,GAAG;MAAEI,IAAI,EAAE,KAAK;MAAEC,KAAK,EAAE;KAAO,GAAGL,GAAG;IAE5G,IAAIE,KAAK,CAACI,MAAM,KAAKJ,KAAK,CAACK,aAAa,IAAIT,oBAAoB,CAACU,QAAQ,CAAEN,KAAK,CAACI,MAAsB,CAACG,OAAO,CAAC,EAAE;MAC9G;;IAGJ,IACKN,UAAU,CAACC,IAAI,KAAKM,OAAO,EAAE,GAAG,CAACR,KAAK,CAACS,OAAO,GAAG,CAACT,KAAK,CAACU,OAAO,CAAC,IAChE,CAACT,UAAU,CAACC,IAAI,KAAKM,OAAO,EAAE,GAAGR,KAAK,CAACS,OAAO,GAAGT,KAAK,CAACU,OAAO,CAAE,EACnE;MACE;;IAGJ,IAAKT,UAAU,CAACE,KAAK,IAAI,CAACH,KAAK,CAACW,QAAQ,IAAMV,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIH,KAAK,CAACW,QAAS,EAAE;MACzF;;IAGJ,MAAMC,SAAS,GAAGZ,KAAK,CAACF,GAAG,CAACe,WAAW,EAAE,KAAKZ,UAAU,CAACH,GAAG,CAACe,WAAW,EAAE;IAE1E,IAAID,SAAS,EAAE;MAAA;;MAEXZ,KAAK,CAACc,eAAe,EAAE;;MAEtB,yBAAAd,KAAuB,CAACe,wBAAwB,0DAAhD,2BAAAf,KAAuB,CAA6B;MACrDD,OAAO,CAACC,KAAK,CAAC;;GAErB;AACL;MAEaQ,OAAO,GAAG;EAAA;EAAA,kBAAMQ,MAAM,4CAAN,QAAQC,SAAS,CAACC,SAAS,CAACZ,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
1
+ {"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nconst WHITELISTED_ELEMENTS = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'];\n\nexport function isEventTriggeredOnInteractiveElement(eventTarget: EventTarget | null) {\n return WHITELISTED_ELEMENTS.includes((eventTarget as HTMLElement).tagName);\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target as HTMLElement)) {\n return;\n }\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return;\n }\n\n const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();\n\n if (condition) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["WHITELISTED_ELEMENTS","isEventTriggeredOnInteractiveElement","eventTarget","includes","tagName","createShortcutKeyDownHandler","key","handler","event","keyOptions","meta","shift","target","currentTarget","isMacOs","metaKey","ctrlKey","shiftKey","condition","toLowerCase","stopPropagation","stopImmediatePropagation","window","navigator","userAgent"],"mappings":"AAIA,MAAMA,oBAAoB,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;SAE3DC,oCAAoC,CAACC,WAA+B;EAChF,OAAOF,oBAAoB,CAACG,QAAQ,CAAED,WAA2B,CAACE,OAAO,CAAC;AAC9E;SAEgBC,4BAA4B,CACxCC,GAAmC,EACnCC,OAAgE;EAEhE,OAAO,UAAUC,KAA6C;IAC1D,MAAMC,UAAU,GAA0B,OAAOH,GAAG,KAAK,QAAQ,GAAG;MAAEA,GAAG;MAAEI,IAAI,EAAE,KAAK;MAAEC,KAAK,EAAE;KAAO,GAAGL,GAAG;IAE5G,IAAIE,KAAK,CAACI,MAAM,KAAKJ,KAAK,CAACK,aAAa,IAAIZ,oCAAoC,CAACO,KAAK,CAACI,MAAqB,CAAC,EAAE;MAC3G;;IAGJ,IACKH,UAAU,CAACC,IAAI,KAAKI,OAAO,EAAE,GAAG,CAACN,KAAK,CAACO,OAAO,GAAG,CAACP,KAAK,CAACQ,OAAO,CAAC,IAChE,CAACP,UAAU,CAACC,IAAI,KAAKI,OAAO,EAAE,GAAGN,KAAK,CAACO,OAAO,GAAGP,KAAK,CAACQ,OAAO,CAAE,EACnE;MACE;;IAGJ,IAAKP,UAAU,CAACE,KAAK,IAAI,CAACH,KAAK,CAACS,QAAQ,IAAMR,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIH,KAAK,CAACS,QAAS,EAAE;MACzF;;IAGJ,MAAMC,SAAS,GAAGV,KAAK,CAACF,GAAG,CAACa,WAAW,EAAE,KAAKV,UAAU,CAACH,GAAG,CAACa,WAAW,EAAE;IAE1E,IAAID,SAAS,EAAE;MAAA;;MAEXV,KAAK,CAACY,eAAe,EAAE;;MAEtB,yBAAAZ,KAAuB,CAACa,wBAAwB,0DAAhD,2BAAAb,KAAuB,CAA6B;MACrDD,OAAO,CAACC,KAAK,CAAC;;GAErB;AACL;MAEaM,OAAO,GAAG;EAAA;EAAA,kBAAMQ,MAAM,4CAAN,QAAQC,SAAS,CAACC,SAAS,CAACrB,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
@@ -3707,7 +3707,10 @@ const useMergedRef = ref => {
3707
3707
  return internalRef;
3708
3708
  };
3709
3709
 
3710
- const WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];
3710
+ const WHITELISTED_ELEMENTS = ['A', 'BUTTON', 'INPUT', 'TEXTAREA', 'SELECT'];
3711
+ function isEventTriggeredOnInteractiveElement(eventTarget) {
3712
+ return WHITELISTED_ELEMENTS.includes(eventTarget.tagName);
3713
+ }
3711
3714
  function createShortcutKeyDownHandler(key, handler) {
3712
3715
  return function (event) {
3713
3716
  const keyOptions = typeof key === 'string' ? {
@@ -3715,7 +3718,7 @@ function createShortcutKeyDownHandler(key, handler) {
3715
3718
  meta: false,
3716
3719
  shift: false
3717
3720
  } : key;
3718
- if (event.target !== event.currentTarget && WHITELISTED_ELEMENTS.includes(event.target.tagName)) {
3721
+ if (event.target !== event.currentTarget && isEventTriggeredOnInteractiveElement(event.target)) {
3719
3722
  return;
3720
3723
  }
3721
3724
  if (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
@@ -15810,7 +15813,7 @@ function Menu$3(props) {
15810
15813
  return menuItems.map((item, key) => /*#__PURE__*/React__default.cloneElement(item, {
15811
15814
  key
15812
15815
  }));
15813
- }, [menu, index, canFreeze, canHide, tableMeta.columnFreezing.frozenColumnIndex]);
15816
+ }, [menu, index, canFreeze, canHide, handleGoto, tableMeta.columnFreezing.frozenColumnIndex]);
15814
15817
  return /*#__PURE__*/React__default.createElement(IconButton, {
15815
15818
  className: className,
15816
15819
  icon: "more",
@@ -19454,9 +19457,10 @@ function useParentStylesheets(iframeWindow) {
19454
19457
  });
19455
19458
  // Add all link tags that are stylesheets, to the iframe head, so that we include the taco and client styles
19456
19459
  linkStylesheets.forEach(linkStylesheet => {
19460
+ var _linkStylesheet$getAt;
19457
19461
  const linkTag = iframeDocument.createElement('link');
19458
19462
  linkTag.setAttribute('rel', 'stylesheet');
19459
- linkTag.innerHTML = linkStylesheet.innerHTML;
19463
+ linkTag.setAttribute('href', (_linkStylesheet$getAt = linkStylesheet.getAttribute('href')) !== null && _linkStylesheet$getAt !== void 0 ? _linkStylesheet$getAt : '');
19460
19464
  iframeDocument.head.appendChild(linkTag);
19461
19465
  });
19462
19466
  setReady(true);
@@ -20123,6 +20127,9 @@ const Table$1 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
20123
20127
  const tableMeta = table.options.meta;
20124
20128
  const state = table.getState();
20125
20129
  const handleKeyDown = event => {
20130
+ if (isEventTriggeredOnInteractiveElement(event.target)) {
20131
+ return;
20132
+ }
20126
20133
  tableMeta.hoverState.handleKeyDown(event);
20127
20134
  tableMeta.currentRow.handleKeyDown(event, table.getRowModel().rows.length, scrollToIndex);
20128
20135
  tableMeta.rowClick.handleKeyDown(event, table);
@@ -21293,6 +21300,7 @@ exports.getParentRowIndexPath = getParentRowIndexPath;
21293
21300
  exports.getRadioGroupItemValueAsString = getRadioGroupItemValueAsString;
21294
21301
  exports.icons = icons;
21295
21302
  exports.insertChildTableRow = insertChildTableRow;
21303
+ exports.isEventTriggeredOnInteractiveElement = isEventTriggeredOnInteractiveElement;
21296
21304
  exports.isMacOs = isMacOs;
21297
21305
  exports.isWeakEqual = isWeakEqual;
21298
21306
  exports.mergeRefs = mergeRefs;