@economic/taco 1.21.9 → 1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/components/Select2/Select2.d.ts +1 -1
  2. package/dist/components/Select2/Select2.stories.d.ts +7 -1
  3. package/dist/components/Select2/components/Collection.d.ts +2 -1
  4. package/dist/components/Select2/components/Group.d.ts +9 -2
  5. package/dist/components/Select2/components/Option.d.ts +2 -0
  6. package/dist/components/Select2/hooks/useChildren.d.ts +4 -3
  7. package/dist/components/Table2/hooks/useColumnDefinitions.d.ts +2 -1
  8. package/dist/components/Table2/types.d.ts +2 -1
  9. package/dist/components/Table2/utilities/columns.d.ts +2 -2
  10. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +1 -3
  11. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Select2/Select2.js +6 -6
  13. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js.map +1 -1
  15. package/dist/esm/packages/taco/src/components/Select2/components/Group.js +10 -3
  16. package/dist/esm/packages/taco/src/components/Select2/components/Group.js.map +1 -1
  17. package/dist/esm/packages/taco/src/components/Select2/components/Option.js +7 -2
  18. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  19. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +1 -1
  20. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  21. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +29 -11
  22. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
  23. package/dist/esm/packages/taco/src/components/Select2/utilities.js +1 -1
  24. package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
  25. package/dist/esm/packages/taco/src/components/Table2/Table2.js +2 -1
  26. package/dist/esm/packages/taco/src/components/Table2/Table2.js.map +1 -1
  27. package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js +3 -3
  28. package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js.map +1 -1
  29. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +2 -2
  30. package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +1 -1
  31. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +1 -0
  32. package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +1 -1
  33. package/dist/esm/packages/taco/src/components/Table2/types.js.map +1 -1
  34. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +11 -6
  35. package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
  36. package/dist/taco.cjs.development.js +73 -38
  37. package/dist/taco.cjs.development.js.map +1 -1
  38. package/dist/taco.cjs.production.min.js +1 -1
  39. package/dist/taco.cjs.production.min.js.map +1 -1
  40. package/package.json +2 -2
  41. package/types.json +42 -15
@@ -1 +1 @@
1
- {"version":3,"file":"Trigger.js","sources":["../../../../../../../../src/components/Select2/components/Trigger.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Tag } from '../../Tag/Tag';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Icon } from '../../Icon/Icon';\nimport { Badge } from '../../Badge/Badge';\nimport { getInputClasses } from '../../Input/util';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { getIndexOfFirstChildOverflowingParent } from '../../../utils/dom';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\n\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\n const { multiple, value } = useSelect2Context();\n\n if (Array.isArray(value) || multiple) {\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\n return <Multiple {...props} ref={ref} values={values} />;\n }\n\n return <Single {...props} ref={ref} value={value} />;\n});\n\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\n const { children, onClick, tabIndex = 0, ...otherProps } = props;\n const { disabled, highlighted, invalid, open, readOnly } = useSelect2Context();\n\n const className = cn(\n 'cursor-pointer !px-1.5',\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly }).replace('w-full', ''),\n { 'w-full': !props.className?.includes('w-') },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n return (\n <button\n {...otherProps}\n aria-invalid={invalid ? true : undefined}\n aria-readonly={readOnly ? true : undefined}\n className={className}\n disabled={disabled}\n onClick={handleClick}\n ref={ref}\n role=\"combobox\"\n tabIndex={disabled || readOnly ? -1 : tabIndex}\n type=\"button\">\n {children}\n <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"pointer-events-none -mr-1 ml-auto\" />\n </button>\n );\n});\n\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue };\n\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\n const { children, value, ...buttonProps } = props;\n const { disabled, readOnly, tags } = useSelect2Context();\n const contentClassName = cn('truncate items-center gap-1');\n\n const currentValue = children.find(matchesValue(value));\n\n let output;\n\n if (currentValue) {\n if (tags) {\n output = (\n <Tag\n className=\"truncate\"\n color={currentValue.props.color}\n disabled={disabled}\n icon={currentValue.props.icon}\n readOnly={readOnly}>\n {currentValue.props.children}\n </Tag>\n );\n } else {\n output = (\n <>\n {currentValue.props.icon ? (\n typeof currentValue.props.icon === 'string' ? (\n <Icon name={currentValue.props.icon} />\n ) : (\n currentValue.props.icon\n )\n ) : null}\n {currentValue.props.children}\n </>\n );\n }\n }\n\n return (\n <Button {...buttonProps} ref={ref}>\n <div className={contentClassName}>{output}</div>\n </Button>\n );\n});\n\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\n values?: Select2OptionValue[];\n};\n\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\n const { children, values = [], ...buttonProps } = props;\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const buttonRef = useMergedRef<HTMLButtonElement>(ref);\n\n const valuesAsChildren = values.map(value =>\n children.find(c => c.props.value === value)\n ) as React.ReactElement<Select2OptionProps>[];\n\n let content;\n let { className } = buttonProps;\n\n if (open) {\n className = cn('!absolute z-20', buttonProps.className);\n content = (\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\">\n <div className=\"flex flex-wrap gap-1\">\n {valuesAsChildren.map(child => (\n <Tag\n key={child.props.value}\n className=\"truncate\"\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.icon}\n onDelete={event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(child.props.value);\n }\n }}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n ))}\n </div>\n </ScrollArea>\n );\n } else {\n content = <MultipleValue key={String(open)} valuesAsChildren={valuesAsChildren} />;\n }\n\n return (\n <div\n className={cn('relative inline-flex flex-grow', { 'h-8': open })}\n style={{ width: open ? buttonRef.current?.offsetWidth : undefined }}>\n <Button {...buttonProps} className={className} ref={buttonRef}>\n {content}\n </Button>\n </div>\n );\n});\n\nconst MultipleValue = ({ valuesAsChildren }) => {\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const [contentRef, setContentRef] = React.useState<HTMLDivElement | null>(null);\n const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;\n\n const createClickHandler = tagValue => event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(tagValue);\n }\n };\n\n return (\n <div className=\"relative flex items-center gap-1 overflow-hidden\">\n <div className=\"flex gap-1 truncate\" ref={el => setContentRef(el)}>\n {valuesAsChildren.map((child, index) => {\n const tag = (\n <Tag\n key={child.props.value}\n className={cn('cursor-pointer', {\n truncate: index === boundaryIndex,\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\n })}\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.icon}\n onDelete={open ? createClickHandler(child.props.value) : undefined}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n );\n\n if (index === boundaryIndex) {\n return (\n <Tooltip key={child.props.value} title={String(child.props.children)}>\n {tag}\n </Tooltip>\n );\n }\n\n return tag;\n })}\n </div>\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\n <Tooltip\n title={valuesAsChildren\n .slice(boundaryIndex + 1)\n .map(child => (child ? String(child.props.children) : ''))\n .join(', ')}>\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\n </Tooltip>\n ) : null}\n </div>\n );\n};\n\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\n if (Array.isArray(value)) {\n return value.includes(child.props.value);\n }\n\n return child.props.value === value;\n};\n"],"names":["Trigger","React","forwardRef","Select2Trigger","props","ref","multiple","value","useSelect2Context","Array","isArray","values","undefined","Multiple","Single","Button","Select2TriggerButton","children","onClick","tabIndex","otherProps","disabled","highlighted","invalid","open","readOnly","className","cn","getInputClasses","replace","includes","handleClick","event","preventDefault","role","type","Icon","name","Select2TriggerSingle","buttonProps","tags","contentClassName","currentValue","find","matchesValue","output","Tag","color","icon","Select2TriggerMultiple","setValue","buttonRef","useMergedRef","valuesAsChildren","map","c","content","ScrollArea","child","key","onDelete","stopPropagation","MultipleValue","String","style","width","current","offsetWidth","contentRef","setContentRef","useState","boundaryIndex","getIndexOfFirstChildOverflowingParent","createClickHandler","tagValue","el","index","tag","truncate","hidden","Tooltip","title","length","slice","join","Badge"],"mappings":"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"}
1
+ {"version":3,"file":"Trigger.js","sources":["../../../../../../../../src/components/Select2/components/Trigger.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Tag } from '../../Tag/Tag';\nimport { Tooltip } from '../../Tooltip/Tooltip';\nimport { Icon } from '../../Icon/Icon';\nimport { Badge } from '../../Badge/Badge';\nimport { getInputClasses } from '../../Input/util';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Select2OptionProps } from './Option';\nimport { getIndexOfFirstChildOverflowingParent } from '../../../utils/dom';\nimport { ScrollArea } from '../../ScrollArea/ScrollArea';\nimport { useMergedRef } from '../../../hooks/useMergedRef';\n\ntype Select2TriggerProps = Omit<React.HTMLAttributes<HTMLButtonElement>, 'children' | 'defaultValue' | 'onChange' | 'value'> & {\n children: React.ReactElement<Select2OptionProps>[];\n};\n\nexport const Trigger = React.forwardRef<HTMLButtonElement, Select2TriggerProps>(function Select2Trigger(props, ref) {\n const { multiple, value } = useSelect2Context();\n\n if (Array.isArray(value) || multiple) {\n const values = Array.isArray(value) ? value : value !== undefined ? [value] : undefined;\n return <Multiple {...props} ref={ref} values={values} />;\n }\n\n return <Single {...props} ref={ref} value={value} />;\n});\n\ntype ButtonProps = React.HTMLAttributes<HTMLButtonElement> &\n Omit<Select2TriggerProps, 'children' | 'open' | 'setValue' | 'value'>;\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(function Select2TriggerButton(props, ref) {\n const { children, onClick, tabIndex = 0, ...otherProps } = props;\n const { disabled, highlighted, invalid, open, readOnly } = useSelect2Context();\n\n const className = cn(\n 'cursor-pointer !px-1.5',\n getInputClasses({ ...props, disabled, highlighted, invalid, readOnly }).replace('w-full', ''),\n { 'w-full': !props.className?.includes('w-') },\n props.className\n );\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (disabled || readOnly) {\n event.preventDefault();\n return;\n }\n\n if (typeof onClick === 'function') {\n onClick(event);\n }\n };\n\n return (\n <button\n {...otherProps}\n aria-invalid={invalid ? true : undefined}\n aria-readonly={readOnly ? true : undefined}\n className={className}\n disabled={disabled}\n onClick={handleClick}\n ref={ref}\n role=\"combobox\"\n tabIndex={disabled || readOnly ? -1 : tabIndex}\n type=\"button\">\n {children}\n <Icon name={open ? 'chevron-up' : 'chevron-down'} className=\"pointer-events-none -mr-1 ml-auto\" />\n </button>\n );\n});\n\ntype SingleProps = Omit<Select2TriggerProps, 'value'> & { value?: Select2OptionValue };\n\nconst Single = React.forwardRef<HTMLButtonElement, SingleProps>(function Select2TriggerSingle(props, ref) {\n const { children, value, ...buttonProps } = props;\n const { disabled, readOnly, tags } = useSelect2Context();\n const contentClassName = cn('truncate items-center gap-1');\n\n const currentValue = children.find(matchesValue(value));\n\n let output;\n\n if (currentValue) {\n if (tags) {\n output = (\n <Tag\n className=\"truncate\"\n color={currentValue.props.color}\n disabled={disabled}\n icon={currentValue.props.icon}\n readOnly={readOnly}>\n {currentValue.props.children}\n </Tag>\n );\n } else {\n output = (\n <>\n {currentValue.props.icon ? (\n typeof currentValue.props.icon === 'string' ? (\n <Icon name={currentValue.props.icon} />\n ) : (\n currentValue.props.icon\n )\n ) : null}\n {currentValue.props.children}\n </>\n );\n }\n }\n\n return (\n <Button {...buttonProps} ref={ref}>\n <div className={contentClassName}>{output}</div>\n </Button>\n );\n});\n\ntype MultipleProps = Omit<Select2TriggerProps, 'value'> & {\n values?: Select2OptionValue[];\n};\n\nconst Multiple = React.forwardRef<HTMLButtonElement, MultipleProps>(function Select2TriggerMultiple(props, ref) {\n const { children, values = [], ...buttonProps } = props;\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const buttonRef = useMergedRef<HTMLButtonElement>(ref);\n\n const valuesAsChildren = values\n .map(value => children.find(c => c.props.value === value))\n .filter(c => !!c) as React.ReactElement<Select2OptionProps>[];\n\n let content;\n let { className } = buttonProps;\n\n if (open) {\n className = cn('!absolute z-20', buttonProps.className);\n content = (\n <ScrollArea className=\"my-1 flex max-h-[5.5rem] flex-col\">\n <div className=\"flex flex-wrap gap-1\">\n {valuesAsChildren.map(child => (\n <Tag\n key={child.props.value}\n className=\"truncate\"\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.icon}\n onDelete={event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(child.props.value);\n }\n }}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n ))}\n </div>\n </ScrollArea>\n );\n } else {\n content = <MultipleValue key={String(open)} valuesAsChildren={valuesAsChildren} />;\n }\n\n return (\n <div\n className={cn('relative inline-flex flex-grow', { 'h-8': open })}\n style={{ width: open ? buttonRef.current?.offsetWidth : undefined }}>\n <Button {...buttonProps} className={className} ref={buttonRef}>\n {content}\n </Button>\n </div>\n );\n});\n\nconst MultipleValue = ({ valuesAsChildren }) => {\n const { disabled, open, readOnly, setValue, tags } = useSelect2Context();\n const [contentRef, setContentRef] = React.useState<HTMLDivElement | null>(null);\n const boundaryIndex = contentRef ? getIndexOfFirstChildOverflowingParent(contentRef, 30) : undefined;\n\n const createClickHandler = tagValue => event => {\n event?.stopPropagation();\n event?.preventDefault();\n\n if (!disabled && !readOnly) {\n setValue(tagValue);\n }\n };\n\n return (\n <div className=\"relative flex items-center gap-1 overflow-hidden\">\n <div className=\"flex gap-1 truncate\" ref={el => setContentRef(el)}>\n {valuesAsChildren.map((child, index) => {\n const tag = (\n <Tag\n key={child.props.value}\n className={cn('cursor-pointer', {\n truncate: index === boundaryIndex,\n hidden: boundaryIndex !== undefined && boundaryIndex !== null ? index > boundaryIndex : false,\n })}\n color={tags ? child.props.color : undefined}\n disabled={disabled}\n icon={child.props.icon}\n onDelete={open ? createClickHandler(child.props.value) : undefined}\n readOnly={readOnly}>\n {child.props.children}\n </Tag>\n );\n\n if (index === boundaryIndex) {\n return (\n <Tooltip key={child.props.value} title={String(child.props.children)}>\n {tag}\n </Tooltip>\n );\n }\n\n return tag;\n })}\n </div>\n {boundaryIndex !== undefined && boundaryIndex !== null && boundaryIndex < valuesAsChildren.length - 1 ? (\n <Tooltip\n title={valuesAsChildren\n .slice(boundaryIndex + 1)\n .map(child => (child ? String(child.props.children) : ''))\n .join(', ')}>\n <Badge className=\"flex-shrink-0\">+{valuesAsChildren.length - (boundaryIndex + 1)}</Badge>\n </Tooltip>\n ) : null}\n </div>\n );\n};\n\nconst matchesValue = (value: undefined | any | any[]) => (child: React.ReactElement<any>) => {\n if (Array.isArray(value)) {\n return value.includes(child.props.value);\n }\n\n return child.props.value === value;\n};\n"],"names":["Trigger","React","forwardRef","Select2Trigger","props","ref","multiple","value","useSelect2Context","Array","isArray","values","undefined","Multiple","Single","Button","Select2TriggerButton","children","onClick","tabIndex","otherProps","disabled","highlighted","invalid","open","readOnly","className","cn","getInputClasses","replace","includes","handleClick","event","preventDefault","role","type","Icon","name","Select2TriggerSingle","buttonProps","tags","contentClassName","currentValue","find","matchesValue","output","Tag","color","icon","Select2TriggerMultiple","setValue","buttonRef","useMergedRef","valuesAsChildren","map","c","filter","content","ScrollArea","child","key","onDelete","stopPropagation","MultipleValue","String","style","width","current","offsetWidth","contentRef","setContentRef","useState","boundaryIndex","getIndexOfFirstChildOverflowingParent","createClickHandler","tagValue","el","index","tag","truncate","hidden","Tooltip","title","length","slice","join","Badge"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import React__default from 'react';
2
2
  import { Option } from '../components/Option.js';
3
3
 
4
+ const isGroup = child => !!child.props.heading;
4
5
  const useChildren = ({
5
6
  children: initialChildren,
6
7
  emptyValue,
@@ -10,9 +11,15 @@ const useChildren = ({
10
11
  value
11
12
  }) => {
12
13
  const [searchQuery, setSearchQuery] = React__default.useState('');
14
+ // flatten children that might be inside groups
13
15
  // support empty value - probably a more elegant way to achieve this
14
- const allChildren = React__default.useMemo(() => {
15
- const initial = initialChildren || [];
16
+ const flattenedChildren = React__default.useMemo(() => {
17
+ const initial = (initialChildren === null || initialChildren === void 0 ? void 0 : initialChildren.map(child => {
18
+ if (isGroup(child)) {
19
+ return child.props.children;
20
+ }
21
+ return child;
22
+ }).flatMap(c => c)) || [];
16
23
  if (emptyValue !== undefined && !multiple) {
17
24
  return [/*#__PURE__*/React__default.createElement(Option, {
18
25
  key: "__empty",
@@ -25,8 +32,8 @@ const useChildren = ({
25
32
  // set an initial value if none is set, we have to trigger state updates for controlled components
26
33
  React__default.useEffect(() => {
27
34
  if (!multiple && emptyValue === undefined && value === undefined) {
28
- var _allChildren$;
29
- setValue(allChildren === null || allChildren === void 0 ? void 0 : (_allChildren$ = allChildren[0]) === null || _allChildren$ === void 0 ? void 0 : _allChildren$.props.value);
35
+ var _flattenedChildren$;
36
+ setValue(flattenedChildren === null || flattenedChildren === void 0 ? void 0 : (_flattenedChildren$ = flattenedChildren[0]) === null || _flattenedChildren$ === void 0 ? void 0 : _flattenedChildren$.props.value);
30
37
  }
31
38
  }, []);
32
39
  React__default.useEffect(() => {
@@ -36,20 +43,31 @@ const useChildren = ({
36
43
  }, [open]);
37
44
  // apply filtering
38
45
  const filteredChildren = React__default.useMemo(() => {
39
- return allChildren.filter(child => {
40
- if (child.props.textValue) {
41
- return child.props.textValue.toLowerCase().includes(searchQuery.toLowerCase());
46
+ return initialChildren.map(child => {
47
+ if (isGroup(child)) {
48
+ const filteredGroupChildren = child.props.children.filter(groupChild => filterOption(groupChild, searchQuery));
49
+ return filteredGroupChildren.length ? /*#__PURE__*/React__default.cloneElement(child, {}, filteredGroupChildren) : null;
42
50
  }
43
- return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());
44
- });
45
- }, [allChildren, searchQuery]);
51
+ return filterOption(child, searchQuery) ? child : null;
52
+ }).filter(child => !!child);
53
+ }, [flattenedChildren, searchQuery]);
46
54
  return {
47
- allChildren,
55
+ flattenedChildren,
48
56
  filteredChildren,
49
57
  searchQuery,
50
58
  setSearchQuery
51
59
  };
52
60
  };
61
+ const filterOption = (child, searchQuery) => {
62
+ var _child$props$textValu, _child$props$descript;
63
+ if ((_child$props$textValu = child.props.textValue) !== null && _child$props$textValu !== void 0 && _child$props$textValu.toLowerCase().includes(searchQuery.toLowerCase())) {
64
+ return true;
65
+ }
66
+ if ((_child$props$descript = child.props.description) !== null && _child$props$descript !== void 0 && _child$props$descript.toLowerCase().includes(searchQuery.toLowerCase())) {
67
+ return true;
68
+ }
69
+ return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());
70
+ };
53
71
 
54
72
  export { useChildren };
55
73
  //# sourceMappingURL=useChildren.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useChildren.js","sources":["../../../../../../../../src/components/Select2/hooks/useChildren.tsx"],"sourcesContent":["import React from 'react';\nimport { Option, Select2OptionProps } from '../components/Option';\nimport { Select2OptionValue, Select2Value } from '../types';\n\nexport type useChildrenArgs = {\n children: React.ReactElement<Select2OptionProps>[];\n emptyValue?: Select2OptionValue;\n multiple?: boolean;\n open?: boolean;\n setValue: (nextValue: Select2OptionValue) => void;\n value?: Select2Value;\n};\nexport const useChildren = ({ children: initialChildren, emptyValue, multiple, open, setValue, value }: useChildrenArgs) => {\n const [searchQuery, setSearchQuery] = React.useState<string>('');\n\n // support empty value - probably a more elegant way to achieve this\n const allChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\n const initial = initialChildren || [];\n if (emptyValue !== undefined && !multiple) {\n return [<Option key=\"__empty\" children=\"\" value={emptyValue} />, ...initial];\n }\n\n return initial;\n }, [initialChildren, emptyValue]);\n\n // set an initial value if none is set, we have to trigger state updates for controlled components\n React.useEffect(() => {\n if (!multiple && emptyValue === undefined && value === undefined) {\n setValue(allChildren?.[0]?.props.value);\n }\n }, []);\n\n React.useEffect(() => {\n if (!open) {\n setSearchQuery('');\n }\n }, [open]);\n\n // apply filtering\n const filteredChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\n return allChildren.filter(child => {\n if (child.props.textValue) {\n return child.props.textValue.toLowerCase().includes(searchQuery.toLowerCase());\n }\n\n return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());\n });\n }, [allChildren, searchQuery]);\n\n return {\n allChildren,\n filteredChildren,\n searchQuery,\n setSearchQuery,\n };\n};\n"],"names":["useChildren","children","initialChildren","emptyValue","multiple","open","setValue","value","searchQuery","setSearchQuery","React","useState","allChildren","useMemo","initial","undefined","Option","key","useEffect","props","filteredChildren","filter","child","textValue","toLowerCase","includes","String"],"mappings":";;;MAYaA,WAAW,GAAG,CAAC;EAAEC,QAAQ,EAAEC,eAAe;EAAEC,UAAU;EAAEC,QAAQ;EAAEC,IAAI;EAAEC,QAAQ;EAAEC;CAAwB;EACnH,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAK,CAACC,QAAQ,CAAS,EAAE,CAAC;;EAGhE,MAAMC,WAAW,GAA6CF,cAAK,CAACG,OAAO,CAAC;IACxE,MAAMC,OAAO,GAAGZ,eAAe,IAAI,EAAE;IACrC,IAAIC,UAAU,KAAKY,SAAS,IAAI,CAACX,QAAQ,EAAE;MACvC,OAAO,cAACM,6BAACM,MAAM;QAACC,GAAG,EAAC,SAAS;QAAChB,QAAQ,EAAC,EAAE;QAACM,KAAK,EAAEJ;QAAc,EAAE,GAAGW,OAAO,CAAC;;IAGhF,OAAOA,OAAO;GACjB,EAAE,CAACZ,eAAe,EAAEC,UAAU,CAAC,CAAC;;EAGjCO,cAAK,CAACQ,SAAS,CAAC;IACZ,IAAI,CAACd,QAAQ,IAAID,UAAU,KAAKY,SAAS,IAAIR,KAAK,KAAKQ,SAAS,EAAE;MAAA;MAC9DT,QAAQ,CAACM,WAAW,aAAXA,WAAW,wCAAXA,WAAW,CAAG,CAAC,CAAC,kDAAhB,cAAkBO,KAAK,CAACZ,KAAK,CAAC;;GAE9C,EAAE,EAAE,CAAC;EAENG,cAAK,CAACQ,SAAS,CAAC;IACZ,IAAI,CAACb,IAAI,EAAE;MACPI,cAAc,CAAC,EAAE,CAAC;;GAEzB,EAAE,CAACJ,IAAI,CAAC,CAAC;;EAGV,MAAMe,gBAAgB,GAA6CV,cAAK,CAACG,OAAO,CAAC;IAC7E,OAAOD,WAAW,CAACS,MAAM,CAACC,KAAK;MAC3B,IAAIA,KAAK,CAACH,KAAK,CAACI,SAAS,EAAE;QACvB,OAAOD,KAAK,CAACH,KAAK,CAACI,SAAS,CAACC,WAAW,EAAE,CAACC,QAAQ,CAACjB,WAAW,CAACgB,WAAW,EAAE,CAAC;;MAGlF,OAAOE,MAAM,CAACJ,KAAK,CAACH,KAAK,CAAClB,QAAQ,CAAC,CAACuB,WAAW,EAAE,CAACC,QAAQ,CAACjB,WAAW,CAACgB,WAAW,EAAE,CAAC;KACxF,CAAC;GACL,EAAE,CAACZ,WAAW,EAAEJ,WAAW,CAAC,CAAC;EAE9B,OAAO;IACHI,WAAW;IACXQ,gBAAgB;IAChBZ,WAAW;IACXC;GACH;AACL;;;;"}
1
+ {"version":3,"file":"useChildren.js","sources":["../../../../../../../../src/components/Select2/hooks/useChildren.tsx"],"sourcesContent":["import React from 'react';\nimport { Option, Select2OptionProps } from '../components/Option';\nimport { Select2GroupProps } from '../Select2';\nimport { Select2OptionValue, Select2Value } from '../types';\n\nconst isGroup = (child: React.ReactElement) => !!child.props.heading;\n\nexport type useChildrenArgs = {\n children: Array<React.ReactElement<Select2OptionProps> | React.ReactElement<Select2GroupProps>>;\n emptyValue?: Select2OptionValue;\n multiple?: boolean;\n open?: boolean;\n setValue: (nextValue: Select2OptionValue) => void;\n value?: Select2Value;\n};\nexport const useChildren = ({ children: initialChildren, emptyValue, multiple, open, setValue, value }: useChildrenArgs) => {\n const [searchQuery, setSearchQuery] = React.useState<string>('');\n\n // flatten children that might be inside groups\n // support empty value - probably a more elegant way to achieve this\n const flattenedChildren: React.ReactElement<Select2OptionProps>[] = React.useMemo(() => {\n const initial: Array<React.ReactElement<Select2OptionProps> | React.ReactElement<Select2GroupProps>> =\n initialChildren\n ?.map(child => {\n if (isGroup(child)) {\n return (child as React.ReactElement<Select2GroupProps>).props.children;\n }\n return child;\n })\n .flatMap(c => c) || [];\n\n if (emptyValue !== undefined && !multiple) {\n return [<Option key=\"__empty\" children=\"\" value={emptyValue} />, ...initial];\n }\n\n return initial;\n }, [initialChildren, emptyValue]);\n\n // set an initial value if none is set, we have to trigger state updates for controlled components\n React.useEffect(() => {\n if (!multiple && emptyValue === undefined && value === undefined) {\n setValue(flattenedChildren?.[0]?.props.value);\n }\n }, []);\n\n React.useEffect(() => {\n if (!open) {\n setSearchQuery('');\n }\n }, [open]);\n\n // apply filtering\n const filteredChildren = React.useMemo(() => {\n return initialChildren\n .map(child => {\n if (isGroup(child)) {\n const filteredGroupChildren = (child as React.ReactElement<Select2GroupProps>).props.children.filter(\n groupChild => filterOption(groupChild as React.ReactElement<Select2OptionProps>, searchQuery)\n );\n return filteredGroupChildren.length\n ? React.cloneElement(child as React.ReactElement<Select2OptionProps>, {}, filteredGroupChildren)\n : null;\n }\n\n return filterOption(child as React.ReactElement<Select2OptionProps>, searchQuery) ? child : null;\n })\n .filter(child => !!child) as Array<React.ReactElement<Select2OptionProps> | React.ReactElement<Select2GroupProps>>;\n }, [flattenedChildren, searchQuery]);\n\n return {\n flattenedChildren,\n filteredChildren,\n searchQuery,\n setSearchQuery,\n };\n};\n\nconst filterOption = (child: React.ReactElement<Select2OptionProps>, searchQuery: string) => {\n if (child.props.textValue?.toLowerCase().includes(searchQuery.toLowerCase())) {\n return true;\n }\n\n if (child.props.description?.toLowerCase().includes(searchQuery.toLowerCase())) {\n return true;\n }\n\n return String(child.props.children).toLowerCase().includes(searchQuery.toLowerCase());\n};\n"],"names":["isGroup","child","props","heading","useChildren","children","initialChildren","emptyValue","multiple","open","setValue","value","searchQuery","setSearchQuery","React","useState","flattenedChildren","useMemo","initial","map","flatMap","c","undefined","Option","key","useEffect","filteredChildren","filteredGroupChildren","filter","groupChild","filterOption","length","cloneElement","textValue","toLowerCase","includes","description","String"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- const createOptionClassName = () => 'group mb-px flex h-8 w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white hover:wcag-grey-200 aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none';
1
+ const createOptionClassName = () => 'group mb-px flex w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white hover:wcag-grey-200 aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none';
2
2
  const createCollectionClassName = () => 'flex flex-col gap-px';
3
3
 
4
4
  export { createCollectionClassName, createOptionClassName };
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sources":["../../../../../../../src/components/Select2/utilities.ts"],"sourcesContent":["export const createOptionClassName = () =>\n 'group mb-px flex h-8 w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white hover:wcag-grey-200 aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none';\n\nexport const createCollectionClassName = () => 'flex flex-col gap-px';\n"],"names":["createOptionClassName","createCollectionClassName"],"mappings":"MAAaA,qBAAqB,GAAG,MACjC;MAESC,yBAAyB,GAAG,MAAM;;;;"}
1
+ {"version":3,"file":"utilities.js","sources":["../../../../../../../src/components/Select2/utilities.ts"],"sourcesContent":["export const createOptionClassName = () =>\n 'group mb-px flex w-full text-sm flex-shrink-0 font-normal cursor-pointer items-center rounded bg-white px-2 leading-8 text-black aria-hidden:hidden gap-1.5 bg-white hover:wcag-grey-200 aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none';\n\nexport const createCollectionClassName = () => 'flex flex-col gap-px';\n"],"names":["createOptionClassName","createCollectionClassName"],"mappings":"MAAaA,qBAAqB,GAAG,MACjC;MAESC,yBAAyB,GAAG,MAAM;;;;"}
@@ -330,6 +330,7 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
330
330
  },
331
331
  className: "col-span-full"
332
332
  }) : null, virtualiser.virtualItems.map(virtualRow => {
333
+ var _expandedRowRenderer;
333
334
  const row = rows[virtualRow.index];
334
335
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, {
335
336
  key: row.id
@@ -353,7 +354,7 @@ const Table2 = /*#__PURE__*/React__default.forwardRef(function Table2(props, ref
353
354
  }))), row.getIsExpanded() && expandedRowRenderer ? /*#__PURE__*/React__default.createElement(ExpandedRow, {
354
355
  index: virtualRow.index,
355
356
  setSize: setExpandedRowSizes
356
- }, expandedRowRenderer(row.original)) : null);
357
+ }, (_expandedRowRenderer = expandedRowRenderer(row.original)) === null || _expandedRowRenderer === void 0 ? void 0 : _expandedRowRenderer()) : null);
357
358
  }), virtualiserOffsets.bottom ? /*#__PURE__*/React__default.createElement("div", {
358
359
  style: {
359
360
  height: virtualiserOffsets.bottom
@@ -1 +1 @@
1
- {"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps, Table2ToolbarProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { useSeparatedChildren } from './hooks/useSeparatedChildren';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { ShortcutsGuideButton } from './components/ShortcutsGuideButton';\nimport { EditModeButton } from './components/EditModeButton';\n\nexport type Table2Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n columnsOther: string;\n columnsOtherDrop: string;\n columnsPinned: string;\n columnsPinnedDrop: string;\n search: string;\n tooltip: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n tooltip: string;\n total: string;\n };\n rowDensity: {\n tooltip: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nfunction Toolbar(props: Table2ToolbarProps) {\n const className = cn('flex-grow', props.className);\n return <div {...props} className={className} />;\n}\nToolbar.displayName = 'Table2Toolbar';\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n Toolbar: React.FunctionComponent<Table2ToolbarProps>;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<HTMLDivElement> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<HTMLDivElement>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<HTMLDivElement>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n\n // react-table\n const [columns, toolbar] = useSeparatedChildren(props.children);\n const { rows, table, footers } = useTable(columns, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n virtualiser.scrollToIndex(nextIndex - 1);\n });\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault();\n\n if (event.key === 'a') {\n if (table.options.enableRowSelection) {\n table.toggleAllRowsSelected();\n }\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n if (\n event.currentTarget.scrollHeight - event.currentTarget.scrollTop - event.currentTarget.clientHeight < 600 &&\n !loadingRef.current\n ) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.shouldPauseHoverState) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setShouldPauseHoverState(false);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enablePinning || table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = !!toolbar || hasInternalToolbar;\n\n const hasFooters = React.useMemo(() => {\n const summaryIds = Object.keys(footers);\n const visibleIds = Object.keys(columnVisibility).filter(c => !columnVisibility[c]);\n return summaryIds.length && summaryIds.some(v => !visibleIds.includes(v));\n }, [footers, columnVisibility]);\n\n return (\n <div className=\"-m-0.5 flex h-full w-[calc(100%_+_0.25rem)] flex-col gap-4 overflow-hidden p-0.5\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbar}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n <ShortcutsGuideButton table={table} />\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row className=\"group/row contents\" row={row} rowIndex={virtualRow.index} table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n {hasFooters ? (\n <div role=\"rowgroup\" className=\"contents\" data-taco=\"table2-footer\">\n {table.getFooterGroups().map(footerGroup => (\n <div key={footerGroup.id} role=\"row\" className=\"contents\">\n {footerGroup.headers.map((footer, cellIndex) => (\n <Footer key={footer.id} footer={footer} index={cellIndex} scrolled={scrolled} table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\nTable2.Toolbar = Toolbar;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionProps, Table2Settings, Table2ToolbarProps } from './types';\n"],"names":["Column","_","displayName","Toolbar","props","className","cn","React","Table2","forwardRef","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","columns","toolbar","useSeparatedChildren","children","rows","table","footers","useTable","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","resetFocussableColumnIndexes","editMode","isEditing","clearTimeout","current","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","setShouldPauseHoverState","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollTop","clientHeight","isAllRowsSelected","getIsAllRowsSelected","handleMouseLeave","shouldPauseHoverState","enableSettingsButton","enablePinning","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","hasFooters","useMemo","summaryIds","Object","keys","visibleIds","filter","c","some","v","includes","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","ShortcutsGuideButton","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","map","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary"],"mappings":"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"}
1
+ {"version":3,"file":"Table2.js","sources":["../../../../../../../src/components/Table2/Table2.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Row as TRow, TableMeta } from '@tanstack/react-table';\nimport { useMergedRef } from '../../hooks/useMergedRef';\nimport { Cell } from './components/column/Cell';\nimport { Header } from './components/column/Header';\nimport { Footer } from './components/column/Footer';\nimport { Table2Props, Table2ColumnProps, Table2ToolbarProps } from './types';\nimport { useTable } from './hooks/useTable';\nimport { useVirtualiser } from './hooks/useVirtualiser';\nimport { Group } from '../Group/Group';\nimport { useGridTemplate } from './hooks/useGridTemplate';\nimport { RowDensityButton } from './components/RowDensityButton';\nimport { ColumnSettingsButton } from './components/ColumnSettingsButton';\nimport { ExpandedRow } from './components/row/ExpandedRow';\nimport { useSeparatedChildren } from './hooks/useSeparatedChildren';\nimport { BatchActionsMenu } from './components/BatchActionsMenu';\nimport { Row } from './components/row/Row';\nimport { FiltersButton } from './components/filters/FiltersButton';\nimport { Search } from './components/Search';\nimport { ShortcutsGuideButton } from './components/ShortcutsGuideButton';\nimport { EditModeButton } from './components/EditModeButton';\n\nexport type Table2Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n columnsOther: string;\n columnsOtherDrop: string;\n columnsPinned: string;\n columnsPinnedDrop: string;\n search: string;\n tooltip: string;\n };\n editing: {\n button: string;\n tooltip: string;\n tooltipDisabled: string;\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n tooltip: string;\n total: string;\n };\n rowDensity: {\n tooltip: string;\n };\n search: {\n placeholder: string;\n };\n shortcuts: {\n tooltip: string;\n search: string;\n filter: string;\n previousRow: string;\n nextRow: string;\n editCell: string;\n previousColumn: string;\n nextColumn: string;\n rowClick: string;\n selectRow: string;\n selectAllRows: string;\n expandRow: string;\n collapseRow: string;\n };\n};\n\nfunction Column<TType = any>(_: Table2ColumnProps<TType>) {\n return null;\n}\nColumn.displayName = 'Table2Column';\n\nfunction Toolbar(props: Table2ToolbarProps) {\n const className = cn('flex-grow', props.className);\n return <div {...props} className={className} />;\n}\nToolbar.displayName = 'Table2Toolbar';\n\nexport type ForwardedTable2WithStatics = React.ForwardRefExoticComponent<Table2Props<any>> & {\n Column: <TType>(props: Table2ColumnProps<TType>) => JSX.Element | null;\n Toolbar: React.FunctionComponent<Table2ToolbarProps>;\n} & (<TType>(props: Table2Props<TType> & { ref?: React.Ref<HTMLDivElement> }) => JSX.Element);\n\nconst Table2 = React.forwardRef(function Table2<TType = any>(props: Table2Props<TType>, ref: React.Ref<HTMLDivElement>) {\n // dom\n const {\n emptyState: EmptyState,\n expandedRowRenderer,\n length = props.data.length,\n loadMore,\n onRowClick,\n _experimentalActionsForTable,\n _experimentalActionsForTableSummary,\n } = props;\n const tableRef = useMergedRef<HTMLDivElement>(ref);\n const timeoutIdRef = React.useRef<NodeJS.Timeout>();\n\n // react-table\n const [columns, toolbar] = useSeparatedChildren(props.children);\n const { rows, table, footers } = useTable(columns, props, tableRef);\n const meta = table.options.meta as TableMeta<TType>;\n\n const { columnVisibility, columnOrder, globalFilter } = table.getState();\n\n // If column visibility or order changes then we turn off the edit mode so that control indexes gets computed\n // when user turns on the editing mode again. This is a temporary solution to make sure the keyboard navigation\n // still keeps working on changes in column visibility, order, or both\n React.useEffect(() => {\n meta.resetFocussableColumnIndexes();\n }, [columnVisibility, columnOrder]);\n\n React.useEffect(() => {\n // Whenever edit mode is turned off we reset the focussableColumnIndexes ref to an empty array so that\n // we don't have stale values, in case column visibility or ordering changes\n if (!meta.editMode.isEditing) {\n meta.resetFocussableColumnIndexes();\n }\n }, [meta.editMode.isEditing]);\n\n React.useEffect(() => {\n return () => clearTimeout(timeoutIdRef.current);\n }, []);\n\n // virtualiser\n const { virtualiser, virtualiserOffsets, setExpandedRowSizes } = useVirtualiser({ rows, table }, tableRef);\n\n // css grid\n const gridTemplateColumns = useGridTemplate(table);\n\n // handlers\n const editButtonRef = React.useRef(null);\n\n // support grid like keyboard navigation between cells\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (document.activeElement === tableRef.current) {\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(0);\n virtualiser.scrollToOffset(0);\n } else {\n meta.moveToPreviousRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n virtualiser.scrollToIndex(nextIndex - 1);\n });\n }\n\n return;\n } else if (event.key === 'ArrowDown') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n meta.setActiveRowIndex(rows.length - 1);\n virtualiser.scrollToOffset(virtualiser.totalSize + 1);\n } else {\n meta.moveToNextRow(rows, nextIndex => {\n meta.setShouldPauseHoverState(true);\n\n // the virtualiser doesn't always scroll right to the bottom for the last row\n if (nextIndex === rows.length - 1) {\n tableRef.current?.scrollTo(0, tableRef.current.scrollHeight);\n } else {\n virtualiser.scrollToIndex(nextIndex + 2);\n }\n });\n }\n\n return;\n }\n\n const canToggleRowExpansion = table.options.enableExpanding;\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta.activeRowIndex]?.toggleExpanded(false);\n }\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n\n if (event.ctrlKey || event.metaKey) {\n if (canToggleRowExpansion) {\n rows[meta?.activeRowIndex]?.toggleExpanded(true);\n }\n }\n\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n\n if (onRowClick) {\n onRowClick(rows[meta?.activeRowIndex].original);\n }\n\n return;\n }\n\n if (event.key === ' ') {\n event.preventDefault();\n\n if (table.options.enableRowSelection) {\n rows[meta.activeRowIndex]?.toggleSelected();\n }\n\n return;\n }\n\n if (event.ctrlKey || event.metaKey) {\n event.preventDefault();\n\n if (event.key === 'a') {\n if (table.options.enableRowSelection) {\n table.toggleAllRowsSelected();\n }\n }\n\n return;\n }\n }\n };\n\n let handleBlur;\n\n if (meta.editMode.isEditing) {\n handleBlur = (event: React.FocusEvent) => {\n let elementGainingFocus = event.relatedTarget;\n\n if (elementGainingFocus === undefined) {\n return;\n }\n\n // we might be focusing on a select or a popover that was triggered from inside the table\n // so see if the element gaining focus is inside a portal and look up its controller\n const portalId = elementGainingFocus?.closest('[data-radix-popper-content-wrapper] > :first-child')?.id;\n\n if (portalId) {\n elementGainingFocus = event.currentTarget.querySelector(`[aria-controls=\"${portalId}\"]`) ?? event.relatedTarget;\n }\n\n if (!event.currentTarget?.contains(elementGainingFocus) && elementGainingFocus !== editButtonRef.current) {\n // When we call manually blur on control component while navigating to the next cell, then when this\n // handler is run, the related target is not the next control component and active element is null,\n // that's why we explictly need to check what's the next focussed element in order to figure out whether\n // we should disabled the sorting or not.\n timeoutIdRef.current = setTimeout(() => {\n const parentRow = event.target.closest('[role=\"row\"]');\n const isNewFocussedElementInSameRow = parentRow?.contains(document.activeElement);\n\n // When we manually call blur on control component and focus another component then\n // we have to make sure we\n if (meta.shouldPauseSortingAndFiltering && !isNewFocussedElementInSameRow) {\n // if client side - unpause sorting\n meta.setShouldPauseSortingAndFiltering(false);\n }\n });\n }\n };\n }\n\n // TODO: this can probably be extracted into a hook\n // we only show the pinned shadow on display columns when scrolling is active\n const [scrolled, setScrolled] = React.useState(false);\n\n // extract - infinite loading\n const loadingRef = React.useRef(false);\n\n const handleScroll = async (event: React.MouseEvent<HTMLDivElement>) => {\n if (event.currentTarget.scrollLeft > 0 && !scrolled) {\n setScrolled(true);\n } else if (event.currentTarget.scrollLeft === 0 && scrolled) {\n setScrolled(false);\n } else if (typeof loadMore === 'function') {\n if (\n event.currentTarget.scrollHeight - event.currentTarget.scrollTop - event.currentTarget.clientHeight < 600 &&\n !loadingRef.current\n ) {\n try {\n const isAllRowsSelected = table.getIsAllRowsSelected();\n loadingRef.current = true;\n await loadMore();\n\n if (isAllRowsSelected) {\n table.toggleAllRowsSelected(true);\n }\n } finally {\n loadingRef.current = false;\n }\n }\n }\n };\n\n let handleMouseLeave;\n\n if (meta.shouldPauseHoverState) {\n // sometimes the row's onMouseLeave doesn't trigger, this adds some extra redundancy\n handleMouseLeave = () => meta.setShouldPauseHoverState(false);\n }\n\n const className = cn(\n 'bg-white border border-grey-300 focus:yt-focus focus:border-blue-500 grid auto-rows-max overflow-auto relative rounded group',\n props.className\n );\n\n const enableSettingsButton = table.options.enablePinning || table.options.enableHiding || meta.enableColumnReordering;\n const hasInternalToolbar =\n enableSettingsButton ||\n meta.editMode.enableEditMode ||\n table.options.enableColumnFilters ||\n meta.enableRowDensity ||\n table.options.enableGlobalFilter;\n const hasToolbar = !!toolbar || hasInternalToolbar;\n\n const hasFooters = React.useMemo(() => {\n const summaryIds = Object.keys(footers);\n const visibleIds = Object.keys(columnVisibility).filter(c => !columnVisibility[c]);\n return summaryIds.length && summaryIds.some(v => !visibleIds.includes(v));\n }, [footers, columnVisibility]);\n\n return (\n <div className=\"-m-0.5 flex h-full w-[calc(100%_+_0.25rem)] flex-col gap-4 overflow-hidden p-0.5\">\n {hasToolbar ? (\n <div className=\"flex flex-wrap gap-2\">\n {toolbar}\n {hasInternalToolbar ? (\n <Group className=\"ml-auto flex-shrink-0 print:hidden\">\n {meta.editMode.enableEditMode ? (\n <EditModeButton\n ref={editButtonRef}\n table={table}\n tableRef={tableRef}\n scrollToIndex={virtualiser.scrollToIndex}\n />\n ) : null}\n {table.options.enableColumnFilters ? <FiltersButton length={length} table={table} /> : null}\n {meta.enableRowDensity ? <RowDensityButton table={table} /> : null}\n {enableSettingsButton ? <ColumnSettingsButton table={table} /> : null}\n {table.options.enableGlobalFilter ? (\n <Search\n disabled={meta.shouldDisableTableActions}\n onSearch={table.setGlobalFilter}\n value={globalFilter}\n />\n ) : null}\n </Group>\n ) : null}\n <ShortcutsGuideButton table={table} />\n </div>\n ) : null}\n <div\n className={className}\n data-taco=\"table2\"\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onScroll={handleScroll}\n ref={tableRef}\n role=\"table\"\n style={{\n gridTemplateColumns,\n gridTemplateRows: rows.length ? undefined : '40px',\n // create a new stacking context so our internal z-indexes don't effect external components\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n opacity: 0.999,\n }}\n tabIndex={0}>\n <div className=\"contents\" data-taco=\"table2-header\" role=\"rowgroup\">\n {table.getHeaderGroups().map(headerGroup => (\n <div className=\"contents\" key={headerGroup.id} role=\"row\">\n {headerGroup.headers.map((header, columnIndex) => (\n <Header\n key={header.id}\n header={header}\n index={columnIndex}\n isLastColumn={columnIndex === headerGroup.headers.length - 1}\n scrolled={scrolled}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </div>\n ))}\n </div>\n {rows.length ? (\n <div className=\"contents\" data-taco=\"table2-body\" role=\"rowgroup\">\n {virtualiserOffsets.top ? (\n <div style={{ height: virtualiserOffsets.top }} className=\"col-span-full\" />\n ) : null}\n {virtualiser.virtualItems.map(virtualRow => {\n const row = rows[virtualRow.index];\n\n return (\n <React.Fragment key={row.id}>\n <Row className=\"group/row contents\" row={row} rowIndex={virtualRow.index} table={table}>\n {row.getVisibleCells().map((cell, columnIndex) => (\n <Cell\n cell={cell}\n key={`${cell.id}_${cell.getValue()}`}\n index={columnIndex}\n isLastRow={virtualRow.index === rows.length - 1}\n rows={rows}\n rowIndex={virtualRow.index}\n scrolled={scrolled}\n scrollToIndex={virtualiser.scrollToIndex}\n scrollToOffset={virtualiser.scrollToOffset}\n table={table}\n tableRef={tableRef}\n />\n ))}\n </Row>\n {row.getIsExpanded() && expandedRowRenderer ? (\n <ExpandedRow index={virtualRow.index} setSize={setExpandedRowSizes}>\n {expandedRowRenderer(row.original)?.()}\n </ExpandedRow>\n ) : null}\n </React.Fragment>\n );\n })}\n {virtualiserOffsets.bottom ? (\n <div style={{ height: virtualiserOffsets.bottom }} className=\"col-span-full\" />\n ) : null}\n </div>\n ) : (\n <div className=\"col-span-full min-h-[theme(spacing.8)]\">{EmptyState ? <EmptyState /> : null}</div>\n )}\n {hasFooters ? (\n <div role=\"rowgroup\" className=\"contents\" data-taco=\"table2-footer\">\n {table.getFooterGroups().map(footerGroup => (\n <div key={footerGroup.id} role=\"row\" className=\"contents\">\n {footerGroup.headers.map((footer, cellIndex) => (\n <Footer key={footer.id} footer={footer} index={cellIndex} scrolled={scrolled} table={table}>\n {footers[footer.id]\n ? footers[footer.id](rows.map((row: TRow<TType>) => row.original[footer.id]))\n : null}\n </Footer>\n ))}\n </div>\n ))}\n </div>\n ) : null}\n </div>\n {!!_experimentalActionsForTable &&\n table.options.enableRowSelection &&\n (table.getIsSomeRowsSelected() || table.getIsAllRowsSelected()) ? (\n <BatchActionsMenu<TType>\n className=\"fixed-center-x bottom-0 z-50 mb-4 print:hidden\"\n actionsForTable={_experimentalActionsForTable}\n summary={_experimentalActionsForTableSummary}\n table={table}\n />\n ) : null}\n </div>\n );\n}) as ForwardedTable2WithStatics;\n\nTable2.Column = Column;\nTable2.Toolbar = Toolbar;\n\nexport { Table2 };\nexport type { Table2Props };\nexport type { Table2ColumnProps, Table2ActionProps, Table2RowActionProps, Table2Settings, Table2ToolbarProps } from './types';\n"],"names":["Column","_","displayName","Toolbar","props","className","cn","React","Table2","forwardRef","ref","emptyState","EmptyState","expandedRowRenderer","length","data","loadMore","onRowClick","_experimentalActionsForTable","_experimentalActionsForTableSummary","tableRef","useMergedRef","timeoutIdRef","useRef","columns","toolbar","useSeparatedChildren","children","rows","table","footers","useTable","meta","options","columnVisibility","columnOrder","globalFilter","getState","useEffect","resetFocussableColumnIndexes","editMode","isEditing","clearTimeout","current","virtualiser","virtualiserOffsets","setExpandedRowSizes","useVirtualiser","gridTemplateColumns","useGridTemplate","editButtonRef","handleKeyDown","event","document","activeElement","key","preventDefault","ctrlKey","metaKey","setActiveRowIndex","scrollToOffset","moveToPreviousRow","nextIndex","setShouldPauseHoverState","scrollToIndex","totalSize","moveToNextRow","scrollTo","scrollHeight","canToggleRowExpansion","enableExpanding","activeRowIndex","toggleExpanded","original","enableRowSelection","toggleSelected","toggleAllRowsSelected","handleBlur","elementGainingFocus","relatedTarget","undefined","portalId","closest","id","currentTarget","querySelector","contains","setTimeout","parentRow","target","isNewFocussedElementInSameRow","shouldPauseSortingAndFiltering","setShouldPauseSortingAndFiltering","scrolled","setScrolled","useState","loadingRef","handleScroll","scrollLeft","scrollTop","clientHeight","isAllRowsSelected","getIsAllRowsSelected","handleMouseLeave","shouldPauseHoverState","enableSettingsButton","enablePinning","enableHiding","enableColumnReordering","hasInternalToolbar","enableEditMode","enableColumnFilters","enableRowDensity","enableGlobalFilter","hasToolbar","hasFooters","useMemo","summaryIds","Object","keys","visibleIds","filter","c","some","v","includes","Group","EditModeButton","FiltersButton","RowDensityButton","ColumnSettingsButton","Search","disabled","shouldDisableTableActions","onSearch","setGlobalFilter","value","ShortcutsGuideButton","onBlur","onKeyDown","onMouseLeave","onScroll","role","style","gridTemplateRows","opacity","tabIndex","getHeaderGroups","map","headerGroup","headers","header","columnIndex","Header","index","isLastColumn","top","height","virtualItems","virtualRow","row","Fragment","Row","rowIndex","getVisibleCells","cell","Cell","getValue","isLastRow","getIsExpanded","ExpandedRow","setSize","bottom","getFooterGroups","footerGroup","footer","cellIndex","Footer","getIsSomeRowsSelected","BatchActionsMenu","actionsForTable","summary"],"mappings":"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"}
@@ -4,12 +4,12 @@ const RowContext = /*#__PURE__*/React__default.createContext({
4
4
  isActive: false,
5
5
  editMode: {
6
6
  validationErrors: null,
7
- setValidationErrors: () => {},
7
+ setValidationErrors: () => undefined,
8
8
  rowMoveReason: {},
9
- setRowMoveReason: () => {}
9
+ setRowMoveReason: () => undefined
10
10
  },
11
11
  isHovered: false,
12
- setIsHovered: () => {}
12
+ setIsHovered: () => undefined
13
13
  });
14
14
  const RowContextProvider = ({
15
15
  isActiveRow,
@@ -1 +1 @@
1
- {"version":3,"file":"Context.js","sources":["../../../../../../../../../src/components/Table2/components/row/Context.tsx"],"sourcesContent":["import React from 'react';\nimport { SaveHandlerErrorResponse } from '../../types';\nimport { IndicatorReason } from '../column/Indicator';\n\ntype RowContextValue = {\n // we store this here because the \"real\" row index comes from the virtualiser,\n // and that isn't accessible in some places we need it - like the row actions column\n isActive: boolean;\n editMode: {\n validationErrors: SaveHandlerErrorResponse;\n setValidationErrors: React.Dispatch<React.SetStateAction<SaveHandlerErrorResponse>>;\n rowMoveReason: Record<string, IndicatorReason | null>;\n setRowMoveReason: React.Dispatch<React.SetStateAction<Record<string, IndicatorReason | null>>>;\n };\n isHovered: boolean;\n setIsHovered: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const RowContext = React.createContext<RowContextValue>({\n isActive: false,\n editMode: {\n validationErrors: null,\n setValidationErrors: () => {},\n rowMoveReason: {},\n setRowMoveReason: () => {},\n },\n isHovered: false,\n setIsHovered: () => {},\n});\n\nexport const RowContextProvider = ({ isActiveRow, children, meta }) => {\n // we use non-css hovered state to determine whether to render actions or not, for performance\n const [isHovered, setIsHovered] = React.useState(false);\n\n // editing specific functionality\n const [validationErrors, setValidationErrors] = React.useState<SaveHandlerErrorResponse | null>(null);\n const [rowMoveReason, setRowMoveReason] = React.useState<Record<string, IndicatorReason | null>>({});\n\n // This effect aims to focus the first focussable cell when edit mode is turned on.\n React.useEffect(() => {\n const isFocusInsideTable = meta.tableRef.current?.contains(document.activeElement);\n\n // If the foucs is outside the table i.e., table action popups, search etc., then don't focus the first cell.\n if (isActiveRow && isFocusInsideTable) {\n meta.editMode.moveToFirstColumn(meta.focussableColumnIndexes);\n }\n // We are intentionally not adding activeRow to the depency variable so that everytime active row is changed,\n // first focussable cell is not focussed.\n }, [meta.editMode.isEditing, meta.focussableColumnIndexes]);\n\n const context = React.useMemo(() => {\n return {\n isActive: isActiveRow,\n editMode: {\n validationErrors,\n setValidationErrors,\n rowMoveReason,\n setRowMoveReason,\n },\n isHovered,\n setIsHovered,\n };\n }, [isActiveRow, isHovered, rowMoveReason, validationErrors]);\n\n return <RowContext.Provider value={context}>{children}</RowContext.Provider>;\n};\n\nexport const useRowContext = () => React.useContext(RowContext);\n"],"names":["RowContext","React","createContext","isActive","editMode","validationErrors","setValidationErrors","rowMoveReason","setRowMoveReason","isHovered","setIsHovered","RowContextProvider","isActiveRow","children","meta","useState","useEffect","isFocusInsideTable","tableRef","current","contains","document","activeElement","moveToFirstColumn","focussableColumnIndexes","isEditing","context","useMemo","Provider","value","useRowContext","useContext"],"mappings":";;MAkBaA,UAAU,gBAAGC,cAAK,CAACC,aAAa,CAAkB;EAC3DC,QAAQ,EAAE,KAAK;EACfC,QAAQ,EAAE;IACNC,gBAAgB,EAAE,IAAI;IACtBC,mBAAmB,EAAE,QAAQ;IAC7BC,aAAa,EAAE,EAAE;IACjBC,gBAAgB,EAAE;GACrB;EACDC,SAAS,EAAE,KAAK;EAChBC,YAAY,EAAE;CACjB;MAEYC,kBAAkB,GAAG,CAAC;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;CAAM;;EAE9D,MAAM,CAACL,SAAS,EAAEC,YAAY,CAAC,GAAGT,cAAK,CAACc,QAAQ,CAAC,KAAK,CAAC;;EAGvD,MAAM,CAACV,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGL,cAAK,CAACc,QAAQ,CAAkC,IAAI,CAAC;EACrG,MAAM,CAACR,aAAa,EAAEC,gBAAgB,CAAC,GAAGP,cAAK,CAACc,QAAQ,CAAyC,EAAE,CAAC;;EAGpGd,cAAK,CAACe,SAAS,CAAC;;IACZ,MAAMC,kBAAkB,4BAAGH,IAAI,CAACI,QAAQ,CAACC,OAAO,0DAArB,sBAAuBC,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC;;IAGlF,IAAIV,WAAW,IAAIK,kBAAkB,EAAE;MACnCH,IAAI,CAACV,QAAQ,CAACmB,iBAAiB,CAACT,IAAI,CAACU,uBAAuB,CAAC;;;;GAIpE,EAAE,CAACV,IAAI,CAACV,QAAQ,CAACqB,SAAS,EAAEX,IAAI,CAACU,uBAAuB,CAAC,CAAC;EAE3D,MAAME,OAAO,GAAGzB,cAAK,CAAC0B,OAAO,CAAC;IAC1B,OAAO;MACHxB,QAAQ,EAAES,WAAW;MACrBR,QAAQ,EAAE;QACNC,gBAAgB;QAChBC,mBAAmB;QACnBC,aAAa;QACbC;OACH;MACDC,SAAS;MACTC;KACH;GACJ,EAAE,CAACE,WAAW,EAAEH,SAAS,EAAEF,aAAa,EAAEF,gBAAgB,CAAC,CAAC;EAE7D,oBAAOJ,6BAACD,UAAU,CAAC4B,QAAQ;IAACC,KAAK,EAAEH;KAAUb,QAAQ,CAAuB;AAChF;MAEaiB,aAAa,GAAG,MAAM7B,cAAK,CAAC8B,UAAU,CAAC/B,UAAU;;;;"}
1
+ {"version":3,"file":"Context.js","sources":["../../../../../../../../../src/components/Table2/components/row/Context.tsx"],"sourcesContent":["import React from 'react';\nimport { SaveHandlerErrorResponse } from '../../types';\nimport { IndicatorReason } from '../column/Indicator';\n\ntype RowContextValue = {\n // we store this here because the \"real\" row index comes from the virtualiser,\n // and that isn't accessible in some places we need it - like the row actions column\n isActive: boolean;\n editMode: {\n validationErrors: SaveHandlerErrorResponse;\n setValidationErrors: React.Dispatch<React.SetStateAction<SaveHandlerErrorResponse>>;\n rowMoveReason: Record<string, IndicatorReason | null>;\n setRowMoveReason: React.Dispatch<React.SetStateAction<Record<string, IndicatorReason | null>>>;\n };\n isHovered: boolean;\n setIsHovered: React.Dispatch<React.SetStateAction<boolean>>;\n};\n\nexport const RowContext = React.createContext<RowContextValue>({\n isActive: false,\n editMode: {\n validationErrors: null,\n setValidationErrors: () => undefined,\n rowMoveReason: {},\n setRowMoveReason: () => undefined,\n },\n isHovered: false,\n setIsHovered: () => undefined,\n});\n\nexport const RowContextProvider = ({ isActiveRow, children, meta }) => {\n // we use non-css hovered state to determine whether to render actions or not, for performance\n const [isHovered, setIsHovered] = React.useState(false);\n\n // editing specific functionality\n const [validationErrors, setValidationErrors] = React.useState<SaveHandlerErrorResponse | null>(null);\n const [rowMoveReason, setRowMoveReason] = React.useState<Record<string, IndicatorReason | null>>({});\n\n // This effect aims to focus the first focussable cell when edit mode is turned on.\n React.useEffect(() => {\n const isFocusInsideTable = meta.tableRef.current?.contains(document.activeElement);\n\n // If the foucs is outside the table i.e., table action popups, search etc., then don't focus the first cell.\n if (isActiveRow && isFocusInsideTable) {\n meta.editMode.moveToFirstColumn(meta.focussableColumnIndexes);\n }\n // We are intentionally not adding activeRow to the depency variable so that everytime active row is changed,\n // first focussable cell is not focussed.\n }, [meta.editMode.isEditing, meta.focussableColumnIndexes]);\n\n const context = React.useMemo(() => {\n return {\n isActive: isActiveRow,\n editMode: {\n validationErrors,\n setValidationErrors,\n rowMoveReason,\n setRowMoveReason,\n },\n isHovered,\n setIsHovered,\n };\n }, [isActiveRow, isHovered, rowMoveReason, validationErrors]);\n\n return <RowContext.Provider value={context}>{children}</RowContext.Provider>;\n};\n\nexport const useRowContext = () => React.useContext(RowContext);\n"],"names":["RowContext","React","createContext","isActive","editMode","validationErrors","setValidationErrors","undefined","rowMoveReason","setRowMoveReason","isHovered","setIsHovered","RowContextProvider","isActiveRow","children","meta","useState","useEffect","isFocusInsideTable","tableRef","current","contains","document","activeElement","moveToFirstColumn","focussableColumnIndexes","isEditing","context","useMemo","Provider","value","useRowContext","useContext"],"mappings":";;MAkBaA,UAAU,gBAAGC,cAAK,CAACC,aAAa,CAAkB;EAC3DC,QAAQ,EAAE,KAAK;EACfC,QAAQ,EAAE;IACNC,gBAAgB,EAAE,IAAI;IACtBC,mBAAmB,EAAE,MAAMC,SAAS;IACpCC,aAAa,EAAE,EAAE;IACjBC,gBAAgB,EAAE,MAAMF;GAC3B;EACDG,SAAS,EAAE,KAAK;EAChBC,YAAY,EAAE,MAAMJ;CACvB;MAEYK,kBAAkB,GAAG,CAAC;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;CAAM;;EAE9D,MAAM,CAACL,SAAS,EAAEC,YAAY,CAAC,GAAGV,cAAK,CAACe,QAAQ,CAAC,KAAK,CAAC;;EAGvD,MAAM,CAACX,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGL,cAAK,CAACe,QAAQ,CAAkC,IAAI,CAAC;EACrG,MAAM,CAACR,aAAa,EAAEC,gBAAgB,CAAC,GAAGR,cAAK,CAACe,QAAQ,CAAyC,EAAE,CAAC;;EAGpGf,cAAK,CAACgB,SAAS,CAAC;;IACZ,MAAMC,kBAAkB,4BAAGH,IAAI,CAACI,QAAQ,CAACC,OAAO,0DAArB,sBAAuBC,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC;;IAGlF,IAAIV,WAAW,IAAIK,kBAAkB,EAAE;MACnCH,IAAI,CAACX,QAAQ,CAACoB,iBAAiB,CAACT,IAAI,CAACU,uBAAuB,CAAC;;;;GAIpE,EAAE,CAACV,IAAI,CAACX,QAAQ,CAACsB,SAAS,EAAEX,IAAI,CAACU,uBAAuB,CAAC,CAAC;EAE3D,MAAME,OAAO,GAAG1B,cAAK,CAAC2B,OAAO,CAAC;IAC1B,OAAO;MACHzB,QAAQ,EAAEU,WAAW;MACrBT,QAAQ,EAAE;QACNC,gBAAgB;QAChBC,mBAAmB;QACnBE,aAAa;QACbC;OACH;MACDC,SAAS;MACTC;KACH;GACJ,EAAE,CAACE,WAAW,EAAEH,SAAS,EAAEF,aAAa,EAAEH,gBAAgB,CAAC,CAAC;EAE7D,oBAAOJ,6BAACD,UAAU,CAAC6B,QAAQ;IAACC,KAAK,EAAEH;KAAUb,QAAQ,CAAuB;AAChF;MAEaiB,aAAa,GAAG,MAAM9B,cAAK,CAAC+B,UAAU,CAAChC,UAAU;;;;"}
@@ -77,8 +77,8 @@ function useColumnDefinitions(children, options, tableRef) {
77
77
  });
78
78
  }
79
79
  });
80
- if (options.enableRowExpansion) {
81
- columns.unshift(columnHelper.display(createRowExpansionColumn(texts)));
80
+ if (options.enableRowExpansion && options.expandedRowRenderer) {
81
+ columns.unshift(columnHelper.display(createRowExpansionColumn(options.expandedRowRenderer, texts)));
82
82
  defaultColumnPinning.unshift(COLUMN_ID_FOR_EXPANSION);
83
83
  }
84
84
  if (options.enableRowSelection) {
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnDefinitions.js","sources":["../../../../../../../../src/components/Table2/hooks/useColumnDefinitions.ts"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n ColumnSort,\n ColumnSizingState,\n Row,\n RowData,\n VisibilityState,\n SortingFnOption,\n} from '@tanstack/react-table';\nimport {\n CellAlignment,\n ColumnDataType,\n RowDragHandler,\n Table2ColumnControlRenderer,\n Table2ColumnFooterRenderer,\n Table2ColumnHeaderMenu,\n Table2ColumnProps,\n Table2RowActionProps,\n} from '../types';\nimport {\n COLUMN_ID_FOR_DRAGGABLE,\n COLUMN_ID_FOR_EXPANSION,\n COLUMN_ID_FOR_SELECTION,\n createRowActionsColumn,\n createRowDraggableColumn,\n createRowExpansionColumn,\n createRowSelectionColumn,\n MIN_COLUMN_SIZE,\n} from '../utilities/columns';\nimport { useLocalization } from '../../Provider/Localization';\n\ndeclare module '@tanstack/table-core' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CellAlignment;\n className?: string | ((row: Row<TData>) => string);\n control?: Table2ColumnControlRenderer;\n dataType?: ColumnDataType;\n disableReordering?: boolean;\n disableTruncation?: boolean;\n defaultWidth?: number;\n headerClassName?: string;\n menu?: Table2ColumnHeaderMenu;\n tooltip?: string;\n }\n}\n\ntype useColumnDefinitionsOptions<TType> = {\n actionsForRow: Table2RowActionProps<TType>[];\n enableColumnFiltering: boolean;\n enableColumnHiding: boolean;\n enableColumnPinning: boolean;\n enableRowExpansion: boolean;\n enableRowSelection: boolean;\n enableMultipleRowSelection: boolean;\n onRowDrag?: RowDragHandler<TType>;\n};\n\nexport function useColumnDefinitions<TType = any>(\n children: React.ReactElement<Table2ColumnProps<TType>>[],\n options: useColumnDefinitionsOptions<TType>,\n tableRef: React.RefObject<HTMLDivElement>\n) {\n const { texts } = useLocalization();\n const lastSelectedRowIndex = React.useRef<number>();\n const columnHelper = createColumnHelper<TType>();\n\n return React.useMemo(() => {\n // cannot be typed correctly until https://github.com/TanStack/table/discussions/4530 is resolved\n const columns: any[] = [];\n const defaultColumnPinning: string[] = [];\n const defaultColumnSizing: ColumnSizingState = {};\n const defaultColumnVisibility: VisibilityState = {};\n const defaultSorting: ColumnSort[] = [];\n const footers: Record<string, Table2ColumnFooterRenderer> = {};\n\n (React.Children.toArray(children) as React.ReactElement<Table2ColumnProps<TType>>[]).forEach(child => {\n if (React.isValidElement(child)) {\n if (child.props.defaultPinned && options.enableColumnPinning) {\n defaultColumnPinning.push(child.props.accessor);\n }\n\n if (child.props.defaultWidth) {\n defaultColumnSizing[child.props.accessor] = child.props.defaultWidth;\n }\n\n if (child.props.defaultHidden && options.enableColumnHiding) {\n defaultColumnVisibility[child.props.accessor] = false;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id: child.props.accessor,\n desc: child.props.sort === 'desc',\n });\n }\n\n if (child.props.footer) {\n footers[child.props.accessor] = child.props.footer;\n }\n\n columns.push({\n accessorKey: child.props.accessor,\n id: child.props.accessor,\n cell: props => {\n if (typeof child.props.renderer === 'function') {\n return child.props.renderer(props.getValue(), props.row.original);\n }\n\n // If value is undefined then return null because cell is a react component, and undefined is not\n // a valid child value.\n return props.getValue() ?? null;\n },\n header: child.props.header,\n meta: {\n align: child.props.align,\n className: child.props.className,\n control: child.props.control,\n dataType: child.props.dataType,\n defaultWidth: child.props.defaultWidth,\n disableReordering: child.props.disableReordering,\n disableTruncation: child.props.disableTruncation,\n menu: child.props.menu,\n tooltip: child.props.tooltip,\n },\n enableHiding: !child.props.disableHiding,\n // filtering\n enableColumnFilter: !child.props.disableFiltering,\n filterFn: options.enableColumnFiltering && !child.props.disableFiltering ? ('tacoFilter' as any) : undefined,\n // sizing\n enableResizing: !child.props.disableResizing,\n minSize: child.props.minWidth ?? MIN_COLUMN_SIZE,\n size: child.props.defaultWidth,\n // sorting\n enableSorting: !child.props.disableSorting,\n sortingFn: getSortingFn(child.props.dataType),\n });\n }\n });\n\n if (options.enableRowExpansion) {\n columns.unshift(columnHelper.display(createRowExpansionColumn(texts)));\n defaultColumnPinning.unshift(COLUMN_ID_FOR_EXPANSION);\n }\n\n if (options.enableRowSelection) {\n columns.unshift(\n columnHelper.display(\n createRowSelectionColumn(\n options.enableMultipleRowSelection,\n lastSelectedRowIndex,\n options.onRowDrag,\n tableRef,\n texts\n )\n )\n );\n defaultColumnPinning.unshift(COLUMN_ID_FOR_SELECTION);\n }\n\n if (options.onRowDrag) {\n columns.unshift(columnHelper.display(createRowDraggableColumn(options.onRowDrag, texts)));\n defaultColumnPinning.unshift(COLUMN_ID_FOR_DRAGGABLE);\n }\n\n if (options.actionsForRow?.length) {\n columns.push(columnHelper.display(createRowActionsColumn(options.actionsForRow, texts)));\n }\n\n return { columns, defaultColumnPinning, defaultColumnSizing, defaultColumnVisibility, defaultSorting, footers };\n }, [children]);\n}\n\nconst getSortingFn = (dataType?: ColumnDataType): SortingFnOption<any> => {\n if (dataType && dataType !== 'boolean') {\n return dataType;\n }\n\n return 'auto';\n};\n"],"names":["useColumnDefinitions","children","options","tableRef","texts","useLocalization","lastSelectedRowIndex","React","useRef","columnHelper","createColumnHelper","useMemo","columns","defaultColumnPinning","defaultColumnSizing","defaultColumnVisibility","defaultSorting","footers","Children","toArray","forEach","child","isValidElement","props","defaultPinned","enableColumnPinning","push","accessor","defaultWidth","defaultHidden","enableColumnHiding","sort","undefined","id","desc","footer","accessorKey","cell","renderer","getValue","row","original","header","meta","align","className","control","dataType","disableReordering","disableTruncation","menu","tooltip","enableHiding","disableHiding","enableColumnFilter","disableFiltering","filterFn","enableColumnFiltering","enableResizing","disableResizing","minSize","minWidth","MIN_COLUMN_SIZE","size","enableSorting","disableSorting","sortingFn","getSortingFn","enableRowExpansion","unshift","display","createRowExpansionColumn","COLUMN_ID_FOR_EXPANSION","enableRowSelection","createRowSelectionColumn","enableMultipleRowSelection","onRowDrag","COLUMN_ID_FOR_SELECTION","createRowDraggableColumn","COLUMN_ID_FOR_DRAGGABLE","actionsForRow","length","createRowActionsColumn"],"mappings":"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"}
1
+ {"version":3,"file":"useColumnDefinitions.js","sources":["../../../../../../../../src/components/Table2/hooks/useColumnDefinitions.ts"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n ColumnSort,\n ColumnSizingState,\n Row,\n RowData,\n VisibilityState,\n SortingFnOption,\n} from '@tanstack/react-table';\nimport {\n CellAlignment,\n ColumnDataType,\n RowDragHandler,\n RowExpansionRenderer,\n Table2ColumnControlRenderer,\n Table2ColumnFooterRenderer,\n Table2ColumnHeaderMenu,\n Table2ColumnProps,\n Table2RowActionProps,\n} from '../types';\nimport {\n COLUMN_ID_FOR_DRAGGABLE,\n COLUMN_ID_FOR_EXPANSION,\n COLUMN_ID_FOR_SELECTION,\n createRowActionsColumn,\n createRowDraggableColumn,\n createRowExpansionColumn,\n createRowSelectionColumn,\n MIN_COLUMN_SIZE,\n} from '../utilities/columns';\nimport { useLocalization } from '../../Provider/Localization';\n\ndeclare module '@tanstack/table-core' {\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: CellAlignment;\n className?: string | ((row: Row<TData>) => string);\n control?: Table2ColumnControlRenderer;\n dataType?: ColumnDataType;\n disableReordering?: boolean;\n disableTruncation?: boolean;\n defaultWidth?: number;\n headerClassName?: string;\n menu?: Table2ColumnHeaderMenu;\n tooltip?: string;\n }\n}\n\ntype useColumnDefinitionsOptions<TType> = {\n actionsForRow: Table2RowActionProps<TType>[];\n enableColumnFiltering: boolean;\n enableColumnHiding: boolean;\n enableColumnPinning: boolean;\n enableRowExpansion: boolean;\n enableRowSelection: boolean;\n enableMultipleRowSelection: boolean;\n expandedRowRenderer?: RowExpansionRenderer<TType>;\n onRowDrag?: RowDragHandler<TType>;\n};\n\nexport function useColumnDefinitions<TType = any>(\n children: React.ReactElement<Table2ColumnProps<TType>>[],\n options: useColumnDefinitionsOptions<TType>,\n tableRef: React.RefObject<HTMLDivElement>\n) {\n const { texts } = useLocalization();\n const lastSelectedRowIndex = React.useRef<number>();\n const columnHelper = createColumnHelper<TType>();\n\n return React.useMemo(() => {\n // cannot be typed correctly until https://github.com/TanStack/table/discussions/4530 is resolved\n const columns: any[] = [];\n const defaultColumnPinning: string[] = [];\n const defaultColumnSizing: ColumnSizingState = {};\n const defaultColumnVisibility: VisibilityState = {};\n const defaultSorting: ColumnSort[] = [];\n const footers: Record<string, Table2ColumnFooterRenderer> = {};\n\n (React.Children.toArray(children) as React.ReactElement<Table2ColumnProps<TType>>[]).forEach(child => {\n if (React.isValidElement(child)) {\n if (child.props.defaultPinned && options.enableColumnPinning) {\n defaultColumnPinning.push(child.props.accessor);\n }\n\n if (child.props.defaultWidth) {\n defaultColumnSizing[child.props.accessor] = child.props.defaultWidth;\n }\n\n if (child.props.defaultHidden && options.enableColumnHiding) {\n defaultColumnVisibility[child.props.accessor] = false;\n }\n\n if (child.props.sort !== undefined) {\n defaultSorting.push({\n id: child.props.accessor,\n desc: child.props.sort === 'desc',\n });\n }\n\n if (child.props.footer) {\n footers[child.props.accessor] = child.props.footer;\n }\n\n columns.push({\n accessorKey: child.props.accessor,\n id: child.props.accessor,\n cell: props => {\n if (typeof child.props.renderer === 'function') {\n return child.props.renderer(props.getValue(), props.row.original);\n }\n\n // If value is undefined then return null because cell is a react component, and undefined is not\n // a valid child value.\n return props.getValue() ?? null;\n },\n header: child.props.header,\n meta: {\n align: child.props.align,\n className: child.props.className,\n control: child.props.control,\n dataType: child.props.dataType,\n defaultWidth: child.props.defaultWidth,\n disableReordering: child.props.disableReordering,\n disableTruncation: child.props.disableTruncation,\n menu: child.props.menu,\n tooltip: child.props.tooltip,\n },\n enableHiding: !child.props.disableHiding,\n // filtering\n enableColumnFilter: !child.props.disableFiltering,\n filterFn: options.enableColumnFiltering && !child.props.disableFiltering ? ('tacoFilter' as any) : undefined,\n // sizing\n enableResizing: !child.props.disableResizing,\n minSize: child.props.minWidth ?? MIN_COLUMN_SIZE,\n size: child.props.defaultWidth,\n // sorting\n enableSorting: !child.props.disableSorting,\n sortingFn: getSortingFn(child.props.dataType),\n });\n }\n });\n\n if (options.enableRowExpansion && options.expandedRowRenderer) {\n columns.unshift(columnHelper.display(createRowExpansionColumn(options.expandedRowRenderer, texts)));\n defaultColumnPinning.unshift(COLUMN_ID_FOR_EXPANSION);\n }\n\n if (options.enableRowSelection) {\n columns.unshift(\n columnHelper.display(\n createRowSelectionColumn(\n options.enableMultipleRowSelection,\n lastSelectedRowIndex,\n options.onRowDrag,\n tableRef,\n texts\n )\n )\n );\n defaultColumnPinning.unshift(COLUMN_ID_FOR_SELECTION);\n }\n\n if (options.onRowDrag) {\n columns.unshift(columnHelper.display(createRowDraggableColumn(options.onRowDrag, texts)));\n defaultColumnPinning.unshift(COLUMN_ID_FOR_DRAGGABLE);\n }\n\n if (options.actionsForRow?.length) {\n columns.push(columnHelper.display(createRowActionsColumn(options.actionsForRow, texts)));\n }\n\n return { columns, defaultColumnPinning, defaultColumnSizing, defaultColumnVisibility, defaultSorting, footers };\n }, [children]);\n}\n\nconst getSortingFn = (dataType?: ColumnDataType): SortingFnOption<any> => {\n if (dataType && dataType !== 'boolean') {\n return dataType;\n }\n\n return 'auto';\n};\n"],"names":["useColumnDefinitions","children","options","tableRef","texts","useLocalization","lastSelectedRowIndex","React","useRef","columnHelper","createColumnHelper","useMemo","columns","defaultColumnPinning","defaultColumnSizing","defaultColumnVisibility","defaultSorting","footers","Children","toArray","forEach","child","isValidElement","props","defaultPinned","enableColumnPinning","push","accessor","defaultWidth","defaultHidden","enableColumnHiding","sort","undefined","id","desc","footer","accessorKey","cell","renderer","getValue","row","original","header","meta","align","className","control","dataType","disableReordering","disableTruncation","menu","tooltip","enableHiding","disableHiding","enableColumnFilter","disableFiltering","filterFn","enableColumnFiltering","enableResizing","disableResizing","minSize","minWidth","MIN_COLUMN_SIZE","size","enableSorting","disableSorting","sortingFn","getSortingFn","enableRowExpansion","expandedRowRenderer","unshift","display","createRowExpansionColumn","COLUMN_ID_FOR_EXPANSION","enableRowSelection","createRowSelectionColumn","enableMultipleRowSelection","onRowDrag","COLUMN_ID_FOR_SELECTION","createRowDraggableColumn","COLUMN_ID_FOR_DRAGGABLE","actionsForRow","length","createRowActionsColumn"],"mappings":"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"}
@@ -58,6 +58,7 @@ function useTable(children, props, ref) {
58
58
  enableRowExpansion,
59
59
  enableRowSelection,
60
60
  enableMultipleRowSelection,
61
+ expandedRowRenderer,
61
62
  onRowDrag
62
63
  }, ref);
63
64
  const lastSortedOrFilteredRows = React__default.useRef(null);