@economic/taco 1.22.8 → 1.23.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Alert/Alert.d.ts +12 -0
- package/dist/components/Alert/Alert.stories.d.ts +36 -0
- package/dist/components/Badge/Badge.d.ts +44 -13
- package/dist/components/BadgeIcon/BadgeIcon.d.ts +19 -0
- package/dist/components/BadgeIcon/BadgeIcon.stories.d.ts +12 -0
- package/dist/components/Button/Button.stories.d.ts +1 -1
- package/dist/components/Datepicker/Datepicker.stories.d.ts +1 -1
- package/dist/components/Select/Select.stories.d.ts +1 -1
- package/dist/components/Select/useSelect.d.ts +1 -1
- package/dist/components/Select2/Select2.d.ts +1 -2
- package/dist/components/Select2/Select2.stories.d.ts +0 -1
- package/dist/components/Select2/components/Context.d.ts +3 -1
- package/dist/components/Select2/components/Create.d.ts +1 -1
- package/dist/components/Select2/components/Edit.d.ts +2 -2
- package/dist/components/Select2/components/Option.d.ts +2 -2
- package/dist/components/Select2/utilities.d.ts +1 -1
- package/dist/components/Table2/components/row/Context.d.ts +3 -1
- package/dist/components/Tag/Tag.d.ts +3 -14
- package/dist/esm/index.css +14 -2
- package/dist/esm/packages/taco/src/components/Accordion/Accordion.js +1 -1
- package/dist/esm/packages/taco/src/components/Alert/Alert.js +49 -0
- package/dist/esm/packages/taco/src/components/Alert/Alert.js.map +1 -0
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js +1 -1
- package/dist/esm/packages/taco/src/components/Badge/Badge.js +28 -8
- package/dist/esm/packages/taco/src/components/Badge/Badge.js.map +1 -1
- package/dist/esm/packages/taco/src/components/BadgeIcon/BadgeIcon.js +30 -0
- package/dist/esm/packages/taco/src/components/BadgeIcon/BadgeIcon.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +1 -1
- package/dist/esm/packages/taco/src/components/Popover/Popover.js +1 -1
- package/dist/esm/packages/taco/src/components/Select/useSelect.js +2 -0
- package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js +12 -3
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +2 -3
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js +2 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js +5 -1
- package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js +7 -5
- package/dist/esm/packages/taco/src/components/Table2/components/ColumnSettingsButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js +5 -2
- package/dist/esm/packages/taco/src/components/Table2/components/row/Context.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js +2 -1
- package/dist/esm/packages/taco/src/components/Table2/components/row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js +4 -3
- package/dist/esm/packages/taco/src/components/Table2/hooks/useColumnDefinitions.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js +2 -2
- package/dist/esm/packages/taco/src/components/Table2/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js +3 -1
- package/dist/esm/packages/taco/src/components/Table2/utilities/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tag/Tag.js +3 -13
- package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useIsFormControl.js +1 -1
- package/dist/esm/packages/taco/src/hooks/useIsFormControl.js.map +1 -1
- package/dist/esm/packages/taco/src/{components/Table2/hooks/useShouldPauseHoverState.js → hooks/useIsHoverStatePaused.js} +3 -3
- package/dist/esm/packages/taco/src/hooks/useIsHoverStatePaused.js.map +1 -0
- package/dist/esm/packages/taco/src/index.js +5 -3
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js +6 -0
- package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/taillwind.js +79 -20
- package/dist/esm/packages/taco/src/utils/taillwind.js.map +1 -1
- package/dist/hooks/useIsHoverStatePaused.d.ts +2 -0
- package/dist/index.css +14 -2
- package/dist/index.d.ts +2 -0
- package/dist/taco.cjs.development.js +370 -211
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/utils/taillwind.d.ts +6 -4
- package/package.json +2 -2
- package/tailwind.config.js +9 -11
- package/types.json +92 -30
- package/dist/components/Badge/Badge.stories.d.ts +0 -15
- package/dist/components/Table2/hooks/useShouldPauseHoverState.d.ts +0 -2
- package/dist/esm/packages/taco/src/components/Table2/hooks/useShouldPauseHoverState.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -12
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { TagColor, TAG_COLORS } from '../../Tag/Tag';\n\nconst AVAILABLE_COLORS = Object.keys(TAG_COLORS);\n\nexport type EditPopoverProps = PopoverProps & {\n color?: TagColor;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps} modal>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn('flex h-6 w-6 cursor-pointer items-center justify-center rounded', TAG_COLORS[availableColor])}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["AVAILABLE_COLORS","Object","keys","TAG_COLORS","EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","handleDelete","error","preventDefault","current","focus","handleCloseAutoFocus","handleInteractOutside","preventKeyDownPropagation","Popover","modal","Content","onCloseAutoFocus","onInteractOutside","onClick","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","onKeyDown","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","map","availableColor","onFocus","asChild"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Edit.js","sources":["../../../../../../../../src/components/Select2/components/Edit.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport * as RadioGroup from '@radix-ui/react-radio-group';\nimport { Button } from '../../Button/Button';\nimport { Input } from '../../Input/Input';\nimport { Popover, PopoverProps } from '../../Popover/Popover';\nimport { Icon } from '../../Icon/Icon';\nimport { Select2OptionValue } from '../types';\nimport { useSelect2Context } from './Context';\nimport { Field } from '../../Field/Field';\nimport { Group } from '../../Group/Group';\nimport { useLocalization } from '../../Provider/Localization';\nimport { Color } from '../../../types';\nimport { AVAILABLE_COLORS, getSubtleColorShadeClasses } from '../../../utils/taillwind';\n\nexport type EditPopoverProps = PopoverProps & {\n color?: Color;\n text: string;\n value: Select2OptionValue;\n};\n\nexport const EditPopover = (props: EditPopoverProps) => {\n const { color: initialColor, text: initialName, value, ...popoverProps } = props;\n const ref = React.useRef<HTMLInputElement>(null);\n const { onDelete, onEdit, searchRef, ref: selectRef } = useSelect2Context();\n const { texts } = useLocalization();\n const [name, setName] = React.useState(initialName);\n const [color, setColor] = React.useState(initialColor);\n const [validationError, setValidationError] = React.useState<Error | undefined>();\n\n const handleInputChange = event => {\n setName(event.target.value);\n setValidationError(undefined);\n };\n\n const handleInputKeyDown = close => async event => {\n event.stopPropagation();\n\n if (event.key === 'Escape') {\n close();\n } else if (event.key === 'Enter') {\n handleSave(close)(event);\n }\n };\n\n const handleDelete = close => async event => {\n event.stopPropagation();\n close();\n\n if (onDelete) {\n await onDelete(value);\n }\n };\n\n const handleSave = close => async event => {\n if (onEdit && (name !== initialName || color !== initialColor)) {\n try {\n await onEdit(value, name, color);\n close();\n } catch (error) {\n event.preventDefault();\n event.stopPropagation();\n setValidationError(error as Error);\n ref.current?.focus();\n }\n } else {\n close();\n }\n };\n\n const handleCloseAutoFocus = event => {\n event.preventDefault();\n setName(initialName);\n setColor(initialColor);\n setValidationError(undefined);\n\n if (searchRef?.current) {\n searchRef.current?.focus();\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleInteractOutside = () => {\n setName(initialName);\n setColor(initialColor);\n };\n\n const preventKeyDownPropagation = event => {\n if (event.key !== 'Escape') {\n event.stopPropagation();\n }\n };\n\n return (\n <Popover {...popoverProps} modal>\n <Popover.Content\n onCloseAutoFocus={handleCloseAutoFocus}\n onInteractOutside={handleInteractOutside}\n onClick={event => event.stopPropagation()}\n placement=\"right\"\n tabIndex={-1}\n className=\"focus:!shadow-none\">\n {({ close }) => (\n <>\n <div className=\"flex w-32 flex-col space-y-2\">\n {onEdit ? (\n <>\n <Field\n className={cn('!min-h-fit', { '!pb-0': !validationError })}\n invalid={!!validationError}\n message={validationError?.message}>\n <Input\n invalid={!!validationError}\n onChange={handleInputChange}\n onKeyDown={handleInputKeyDown(close)}\n ref={ref}\n value={name}\n />\n </Field>\n {initialColor ? (\n <>\n <h5>Colours</h5>\n <Colours\n color={color}\n onChangeColor={setColor}\n onKeyDown={preventKeyDownPropagation}\n />\n </>\n ) : null}\n <Group>\n <Button onClick={close}>{texts.select2.cancel}</Button>\n <Button appearance=\"primary\" onClick={handleSave(close)}>\n {texts.select2.save}\n </Button>\n </Group>\n </>\n ) : null}\n {onEdit && onDelete ? <hr /> : null}\n {onDelete ? (\n <button\n className=\"hover:text-grey-700 flex items-center justify-start gap-1\"\n onClick={handleDelete(close)}\n onKeyDown={preventKeyDownPropagation}>\n <Icon className=\"!h-5 !w-5\" name=\"delete-permanently\" /> {texts.select2.delete}\n </button>\n ) : null}\n </div>\n </>\n )}\n </Popover.Content>\n </Popover>\n );\n};\n\nconst Colours = props => {\n const { color, onChangeColor, onClick, onKeyDown } = props;\n const { texts } = useLocalization();\n\n return (\n <RadioGroup.Root\n aria-label={texts.select2.chooseColor}\n className=\"grid grid-cols-4 gap-2 focus:outline-none\"\n onClick={onClick}\n onKeyDown={onKeyDown}\n onValueChange={color => onChangeColor(color)}\n value={color}>\n {AVAILABLE_COLORS.map((availableColor: string) => (\n <RadioGroup.Item\n aria-label={color}\n className={cn(\n 'flex h-6 w-6 cursor-pointer items-center justify-center rounded',\n getSubtleColorShadeClasses(availableColor as Color)\n )}\n key={availableColor}\n onFocus={() => onChangeColor(availableColor)}\n value={availableColor}>\n <RadioGroup.Indicator asChild>\n <Icon name=\"tick\" className=\"!h-5 !w-5\" />\n </RadioGroup.Indicator>\n </RadioGroup.Item>\n ))}\n </RadioGroup.Root>\n );\n};\n"],"names":["EditPopover","props","color","initialColor","text","initialName","value","popoverProps","ref","React","useRef","onDelete","onEdit","searchRef","selectRef","useSelect2Context","texts","useLocalization","name","setName","useState","setColor","validationError","setValidationError","handleInputChange","event","target","undefined","handleInputKeyDown","close","stopPropagation","key","handleSave","handleDelete","error","preventDefault","current","focus","handleCloseAutoFocus","handleInteractOutside","preventKeyDownPropagation","Popover","modal","Content","onCloseAutoFocus","onInteractOutside","onClick","placement","tabIndex","className","Field","cn","invalid","message","Input","onChange","onKeyDown","Colours","onChangeColor","Group","Button","select2","cancel","appearance","save","Icon","delete","RadioGroup","chooseColor","onValueChange","AVAILABLE_COLORS","map","availableColor","getSubtleColorShadeClasses","onFocus","asChild"],"mappings":"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"}
|
@@ -22,7 +22,6 @@ const Option = /*#__PURE__*/React__default.forwardRef(function Select2Option(pro
|
|
22
22
|
icon,
|
23
23
|
...otherProps
|
24
24
|
} = props;
|
25
|
-
const className = createOptionClassName();
|
26
25
|
const {
|
27
26
|
onDelete,
|
28
27
|
onEdit,
|
@@ -30,9 +29,11 @@ const Option = /*#__PURE__*/React__default.forwardRef(function Select2Option(pro
|
|
30
29
|
multiple,
|
31
30
|
ref: selectRef,
|
32
31
|
setOpen,
|
32
|
+
shouldPauseHoverState,
|
33
33
|
tags,
|
34
34
|
value
|
35
35
|
} = useSelect2Context();
|
36
|
+
const className = createOptionClassName(shouldPauseHoverState);
|
36
37
|
const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;
|
37
38
|
const isTag = tags && !!color;
|
38
39
|
const handleClick = () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Option.js","sources":["../../../../../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon, IconName, IconProps } from '../../Icon/Icon';\nimport { Tag } from '../../Tag/Tag';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport
|
1
|
+
{"version":3,"file":"Option.js","sources":["../../../../../../../../src/components/Select2/components/Option.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon, IconName, IconProps } from '../../Icon/Icon';\nimport { Tag } from '../../Tag/Tag';\nimport { isAriaSelectionKey } from '../../../utils/aria';\nimport * as ListboxPrimitive from '../../../primitives/Listbox2/Listbox2';\nimport { createOptionClassName } from '../utilities';\nimport { useSelect2Context } from './Context';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { EditPopover } from './Edit';\nimport { isMobileDevice } from '../../../utils/device';\nimport { Color } from '../../../types';\n\nexport type Select2OptionProps = Omit<ListboxPrimitive.Listbox2OptionProps, 'children'> & {\n children: string;\n color?: Color;\n description?: string;\n icon?: React.ReactElement<IconProps> | IconName;\n textValue?: string;\n};\n\nexport const Option = React.forwardRef<HTMLDivElement, Select2OptionProps>(function Select2Option(props, ref) {\n const { children, color, description, icon, ...otherProps } = props;\n const {\n onDelete,\n onEdit,\n listboxRef,\n multiple,\n ref: selectRef,\n setOpen,\n shouldPauseHoverState,\n tags,\n value,\n } = useSelect2Context();\n const className = createOptionClassName(shouldPauseHoverState);\n\n const hasValue = Array.isArray(value) ? !!value.length : value !== undefined;\n const isTag = tags && !!color;\n\n const handleClick = () => {\n if (!multiple) {\n setOpen(false);\n } else {\n selectRef.current?.focus();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (isAriaSelectionKey(event)) {\n if (!multiple || event.key === 'Tab') {\n setOpen(false);\n }\n }\n };\n\n const popover =\n onEdit || onDelete\n ? popoverProps => (\n <EditPopover\n {...popoverProps}\n color={props.color}\n key={props.textValue ?? String(props.children)}\n text={props.textValue ?? String(props.children)}\n value={props.value}\n />\n )\n : undefined;\n\n return (\n <ListboxPrimitive.Option {...otherProps} className={className} onClick={handleClick} onKeyDown={handleKeyDown} ref={ref}>\n {hasValue ? (\n <Icon name=\"tick\" className=\"pointer-events-none invisible -mx-0.5 !h-4 !w-4 group-aria-selected:visible\" />\n ) : null}\n\n {isTag ? (\n <Tag className=\"pointer-events-none my-1\" color={color} icon={icon}>\n {children}\n </Tag>\n ) : (\n <>\n {icon ? typeof icon === 'string' ? <Icon name={icon} /> : icon : null}\n <span className=\"flex flex-col\">\n <span>{children}</span>\n {description ? <span className=\"text-grey-700 -mt-1.5 mb-1.5 text-xs\">{description}</span> : null}\n </span>\n </>\n )}\n {popover ? (\n <IconButton\n rounded\n icon=\"ellipsis-vertical\"\n appearance=\"discrete\"\n className={cn('group-aria-current:visible invisible ml-auto -mr-2 focus:!shadow-none group-hover:visible', {\n '!visible': isMobileDevice(window?.navigator),\n })}\n onClick={event => {\n event.stopPropagation();\n listboxRef?.current?.setActiveIndex(event.currentTarget.parentElement as HTMLDivElement);\n }}\n popover={popover}\n tabIndex={-1}\n />\n ) : null}\n </ListboxPrimitive.Option>\n );\n});\n"],"names":["Option","React","forwardRef","Select2Option","props","ref","children","color","description","icon","otherProps","onDelete","onEdit","listboxRef","multiple","selectRef","setOpen","shouldPauseHoverState","tags","value","useSelect2Context","className","createOptionClassName","hasValue","Array","isArray","length","undefined","isTag","handleClick","current","focus","handleKeyDown","event","isAriaSelectionKey","key","popover","popoverProps","EditPopover","textValue","String","text","ListboxPrimitive","onClick","onKeyDown","Icon","name","Tag","IconButton","rounded","appearance","cn","isMobileDevice","window","navigator","stopPropagation","setActiveIndex","currentTarget","parentElement","tabIndex"],"mappings":"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"}
|
@@ -1,4 +1,8 @@
|
|
1
|
-
|
1
|
+
import cn from 'classnames';
|
2
|
+
|
3
|
+
const createOptionClassName = (shouldPauseHoverState = false) => cn('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 aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none', {
|
4
|
+
'hover:wcag-grey-200': !shouldPauseHoverState
|
5
|
+
});
|
2
6
|
const createCollectionClassName = () => 'flex flex-col gap-px';
|
3
7
|
|
4
8
|
export { createCollectionClassName, createOptionClassName };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utilities.js","sources":["../../../../../../../src/components/Select2/utilities.ts"],"sourcesContent":["
|
1
|
+
{"version":3,"file":"utilities.js","sources":["../../../../../../../src/components/Select2/utilities.ts"],"sourcesContent":["import cn from 'classnames';\n\nexport const createOptionClassName = (shouldPauseHoverState = false) =>\n cn(\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 aria-current:wcag-grey-200 aria-disabled:text-black/25 aria-disabled:pointer-events-none',\n\n {\n 'hover:wcag-grey-200': !shouldPauseHoverState,\n }\n );\n\nexport const createCollectionClassName = () => 'flex flex-col gap-px';\n"],"names":["createOptionClassName","shouldPauseHoverState","cn","createCollectionClassName"],"mappings":";;MAEaA,qBAAqB,GAAG,CAACC,qBAAqB,GAAG,KAAK,KAC/DC,EAAE,CACE,+PAA+P,EAE/P;EACI,qBAAqB,EAAE,CAACD;CAC3B;MAGIE,yBAAyB,GAAG,MAAM;;;;"}
|
@@ -212,21 +212,23 @@ const ColumnSettingsButton = ({
|
|
212
212
|
align: "end"
|
213
213
|
}, /*#__PURE__*/React__default.createElement("div", {
|
214
214
|
className: "flex w-60 flex-col gap-2"
|
215
|
-
}, /*#__PURE__*/React__default.createElement(Input, {
|
215
|
+
}, table.options.enableHiding ? /*#__PURE__*/React__default.createElement(Input, {
|
216
216
|
onChange: event => setQuery(event.target.value),
|
217
217
|
placeholder: texts.table2.columnSettings.search,
|
218
218
|
value: query
|
219
|
-
}), /*#__PURE__*/React__default.createElement("div", {
|
219
|
+
}) : null, /*#__PURE__*/React__default.createElement("div", {
|
220
220
|
className: "-ml-4 -mb-2 max-h-64 w-[calc(100%_+_theme(spacing.8))] overflow-auto"
|
221
|
-
}, query ?
|
221
|
+
}, query ? /*#__PURE__*/React__default.createElement("div", {
|
222
|
+
className: "flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2"
|
223
|
+
}, columns.filter(column => {
|
222
224
|
var _column$columnDef$hea2;
|
223
|
-
return (_column$columnDef$hea2 = column.columnDef.header) === null || _column$columnDef$hea2 === void 0 ? void 0 : _column$columnDef$hea2.toString().includes(query);
|
225
|
+
return (_column$columnDef$hea2 = column.columnDef.header) === null || _column$columnDef$hea2 === void 0 ? void 0 : _column$columnDef$hea2.toString().toLowerCase().includes(query.toLowerCase());
|
224
226
|
}).map(column => /*#__PURE__*/React__default.createElement(OrderableColumn, {
|
225
227
|
key: column.id,
|
226
228
|
canBeReordered: false,
|
227
229
|
column: column,
|
228
230
|
isReorderingAllowed: false
|
229
|
-
})) : /*#__PURE__*/React__default.createElement(SortableColumnContainer, {
|
231
|
+
}))) : /*#__PURE__*/React__default.createElement(SortableColumnContainer, {
|
230
232
|
state: state,
|
231
233
|
moveColumn: pinColumn,
|
232
234
|
reorderColumn: reorderColumn,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ColumnSettingsButton.js","sources":["../../../../../../../../src/components/Table2/components/ColumnSettingsButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Column as RTColumn, Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { Icon } from '../../Icon/Icon';\nimport { Input } from '../../Input/Input';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Popover } from '../../Popover/Popover';\nimport * as Sortable from '../../../primitives/Sortable/Sortable';\nimport { COLUMN_ID_FOR_EXPANSION, COLUMN_ID_FOR_SELECTION, isInternalColumn } from '../utilities/columns';\nimport { SortableItemId } from '../../../primitives/Sortable/Sortable';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype OrderableColumnProps = React.HTMLAttributes<HTMLDivElement> & {\n canBeReordered: boolean;\n column: RTColumn<any, any>;\n isReorderingAllowed: boolean;\n};\n\nconst OrderableColumn = React.forwardRef<HTMLDivElement, OrderableColumnProps>((props, ref) => {\n const { canBeReordered, column, isReorderingAllowed, ...attributes } = props;\n\n let icon;\n\n if (canBeReordered) {\n icon = <Icon name=\"drag\" className=\"text-grey-500 hover:text-grey-700 mr-0.5 -ml-2 -mt-px cursor-move\" />;\n } else if (isReorderingAllowed) {\n icon = <span className=\"mr-0.5 inline-flex w-4\" />;\n }\n\n return (\n <div\n {...attributes}\n className=\"hover:bg-grey-100 aria-pressed:bg-grey-200 flex w-full items-center justify-between gap-x-2 rounded py-1 px-2 aria-pressed:z-10\"\n ref={ref}>\n <span className=\"pointer-events-none\">\n {icon}\n {column.columnDef.header ?? column.columnDef.id}\n </span>\n {column.getCanHide() ? <Checkbox checked={column.getIsVisible()} onChange={column.toggleVisibility} /> : null}\n </div>\n );\n});\n\nconst isOrderingAllowed = (table, column) => {\n const meta = table.options.meta as TableMeta<any>;\n\n if (table.options.enablePinning) {\n return true;\n }\n\n return meta.enableColumnReordering ? !column.columnDef.meta?.disableReordering : false;\n};\n\ntype SortableColumnContainerProps = {\n state: PinnedState;\n moveColumn: (column: RTColumn<any, any>) => void;\n reorderColumn: (draggedColumnId: string, targetColumnId: string, pinned: boolean) => void;\n table: RTTable<any>;\n};\n\nconst SortableColumnContainer = ({ state, moveColumn, reorderColumn, table }: SortableColumnContainerProps) => {\n const { texts } = useLocalization();\n const meta = table.options.meta as TableMeta<any>;\n\n const reorder = (activeId: SortableItemId, overId: SortableItemId, listId: string) => {\n const draggedColumn: RTColumn<any, any> = state[listId].find(c => c.id === activeId);\n const targetColumn: RTColumn<any, any> = state[listId].find(c => c.id === overId);\n\n if (draggedColumn && targetColumn) {\n reorderColumn(draggedColumn.id, targetColumn.id, listId === 'pinned');\n }\n };\n\n const move = (activeId: SortableItemId, oldListId: string) => {\n const column = state[oldListId].find(c => c.id === activeId);\n\n if (column) {\n moveColumn(column);\n }\n };\n\n const handleDoubleClick = (id, status) =>\n table.options.enablePinning\n ? event => {\n event.stopPropagation();\n move(id, status);\n }\n : undefined;\n\n const isReorderingAllowed = (meta.enableColumnReordering || table.options.enablePinning) ?? false;\n\n if (!table.options.enablePinning) {\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'other')}\n />\n </Sortable.Item>\n );\n })}\n </Sortable.List>\n </Sortable.Container>\n );\n }\n\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <h5 className=\"mx-4\">{texts.table2.columnSettings.columnsPinned}</h5>\n <Sortable.List id=\"pinned\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.pinned.length ? (\n state.pinned.map(column => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'pinned')}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">\n {texts.table2.columnSettings.columnsPinnedDrop}\n </p>\n )}\n </Sortable.List>\n <h5 className=\"mx-4\">{texts.table2.columnSettings.columnsOther}</h5>\n\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.other.length ? (\n state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'other')}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">\n {texts.table2.columnSettings.columnsOtherDrop}\n </p>\n )}\n </Sortable.List>\n </Sortable.Container>\n );\n};\n\nconst reorder = (draggedColumnId: string, targetColumnId: string, list: RTColumn<any>[] = []): RTColumn<any>[] => {\n const nextColumnOrder = [...list];\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === targetColumnId),\n 0,\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === draggedColumnId),\n 1\n )[0]\n );\n return nextColumnOrder;\n};\n\ntype PinnedState = {\n pinned: RTColumn<any>[];\n other: RTColumn<any>[];\n};\ntype ColumnSettingsButtonProps = {\n table: RTTable<any>;\n};\n\nexport const ColumnSettingsButton = ({ table }: ColumnSettingsButtonProps) => {\n const { texts } = useLocalization();\n const [query, setQuery] = React.useState('');\n const columns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id));\n\n const [state, setState] = React.useState<PinnedState>({\n pinned: columns.filter(column => column.getIsPinned()),\n other: columns.filter(column => !column.getIsPinned()),\n });\n\n const pinColumn = (column: RTColumn<any, any>) => {\n if (state.pinned.find(c => c.id === column.id)) {\n setState(currentState => ({\n pinned: currentState.pinned.filter(c => c.id !== column.id),\n other: [column].concat(...currentState.other),\n }));\n } else {\n setState(currentState => ({\n pinned: currentState.pinned.concat(column),\n other: currentState.other.filter(c => c.id !== column.id),\n }));\n }\n };\n\n const reorderColumn = (draggedColumnId: string, targetColumnId: string, pinned: boolean) => {\n if (pinned) {\n setState(currentState => ({\n ...currentState,\n pinned: reorder(draggedColumnId, targetColumnId, currentState.pinned),\n }));\n } else {\n setState(currentState => ({\n ...currentState,\n other: reorder(draggedColumnId, targetColumnId, currentState.other),\n }));\n }\n };\n\n // probably a more elegant way to do this without local state but had\n // a range of issues using the native apis directly\n React.useEffect(() => {\n const internals: string[] = [];\n\n if (table.options.enableRowSelection) {\n internals.push(COLUMN_ID_FOR_SELECTION);\n }\n\n if (table.options.enableExpanding) {\n internals.push(COLUMN_ID_FOR_EXPANSION);\n }\n\n table.setColumnPinning({ left: internals.concat(...state.pinned.map(c => c.id)) });\n table.setColumnOrder(internals.concat([...state.pinned, ...state.other].map(c => c.id)));\n }, [state]);\n\n return (\n <IconButton\n aria-label={texts.table2.columnSettings.tooltip}\n icon=\"columns\"\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex w-60 flex-col gap-2\">\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder={texts.table2.columnSettings.search}\n value={query}\n />\n <div className=\"-ml-4 -mb-2 max-h-64 w-[calc(100%_+_theme(spacing.8))] overflow-auto\">\n {query ? (\n columns\n .filter(column => column.columnDef.header?.toString().includes(query))\n .map(column => (\n <OrderableColumn\n key={column.id}\n canBeReordered={false}\n column={column}\n isReorderingAllowed={false}\n />\n ))\n ) : (\n <SortableColumnContainer\n state={state}\n moveColumn={pinColumn}\n reorderColumn={reorderColumn}\n table={table}\n />\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover>\n )}\n tooltip={texts.table2.columnSettings.tooltip}\n />\n );\n};\n"],"names":["OrderableColumn","React","forwardRef","props","ref","canBeReordered","column","isReorderingAllowed","attributes","icon","Icon","name","className","columnDef","header","id","getCanHide","Checkbox","checked","getIsVisible","onChange","toggleVisibility","isOrderingAllowed","table","meta","options","enablePinning","enableColumnReordering","disableReordering","SortableColumnContainer","state","moveColumn","reorderColumn","texts","useLocalization","reorder","activeId","overId","listId","draggedColumn","find","c","targetColumn","move","oldListId","handleDoubleClick","status","event","stopPropagation","undefined","Sortable","other","map","key","disabled","asChild","onDoubleClick","table2","columnSettings","columnsPinned","pinned","length","columnsPinnedDrop","columnsOther","columnsOtherDrop","draggedColumnId","targetColumnId","list","nextColumnOrder","splice","findIndex","ColumnSettingsButton","query","setQuery","useState","columns","getAllLeafColumns","filter","isInternalColumn","setState","getIsPinned","pinColumn","currentState","concat","useEffect","internals","enableRowSelection","push","COLUMN_ID_FOR_SELECTION","enableExpanding","COLUMN_ID_FOR_EXPANSION","setColumnPinning","left","setColumnOrder","IconButton","tooltip","popover","popoverProps","Popover","Content","align","Input","target","value","placeholder","search","toString","includes"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ColumnSettingsButton.js","sources":["../../../../../../../../src/components/Table2/components/ColumnSettingsButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Column as RTColumn, Table as RTTable, TableMeta } from '@tanstack/react-table';\nimport { Checkbox } from '../../Checkbox/Checkbox';\nimport { Icon } from '../../Icon/Icon';\nimport { Input } from '../../Input/Input';\nimport { IconButton } from '../../IconButton/IconButton';\nimport { Popover } from '../../Popover/Popover';\nimport * as Sortable from '../../../primitives/Sortable/Sortable';\nimport { COLUMN_ID_FOR_EXPANSION, COLUMN_ID_FOR_SELECTION, isInternalColumn } from '../utilities/columns';\nimport { SortableItemId } from '../../../primitives/Sortable/Sortable';\nimport { useLocalization } from '../../Provider/Localization';\n\ntype OrderableColumnProps = React.HTMLAttributes<HTMLDivElement> & {\n canBeReordered: boolean;\n column: RTColumn<any, any>;\n isReorderingAllowed: boolean;\n};\n\nconst OrderableColumn = React.forwardRef<HTMLDivElement, OrderableColumnProps>((props, ref) => {\n const { canBeReordered, column, isReorderingAllowed, ...attributes } = props;\n\n let icon;\n\n if (canBeReordered) {\n icon = <Icon name=\"drag\" className=\"text-grey-500 hover:text-grey-700 mr-0.5 -ml-2 -mt-px cursor-move\" />;\n } else if (isReorderingAllowed) {\n icon = <span className=\"mr-0.5 inline-flex w-4\" />;\n }\n\n return (\n <div\n {...attributes}\n className=\"hover:bg-grey-100 aria-pressed:bg-grey-200 flex w-full items-center justify-between gap-x-2 rounded py-1 px-2 aria-pressed:z-10\"\n ref={ref}>\n <span className=\"pointer-events-none\">\n {icon}\n {column.columnDef.header ?? column.columnDef.id}\n </span>\n {column.getCanHide() ? <Checkbox checked={column.getIsVisible()} onChange={column.toggleVisibility} /> : null}\n </div>\n );\n});\n\nconst isOrderingAllowed = (table, column) => {\n const meta = table.options.meta as TableMeta<any>;\n\n if (table.options.enablePinning) {\n return true;\n }\n\n return meta.enableColumnReordering ? !column.columnDef.meta?.disableReordering : false;\n};\n\ntype SortableColumnContainerProps = {\n state: PinnedState;\n moveColumn: (column: RTColumn<any, any>) => void;\n reorderColumn: (draggedColumnId: string, targetColumnId: string, pinned: boolean) => void;\n table: RTTable<any>;\n};\n\nconst SortableColumnContainer = ({ state, moveColumn, reorderColumn, table }: SortableColumnContainerProps) => {\n const { texts } = useLocalization();\n const meta = table.options.meta as TableMeta<any>;\n\n const reorder = (activeId: SortableItemId, overId: SortableItemId, listId: string) => {\n const draggedColumn: RTColumn<any, any> = state[listId].find(c => c.id === activeId);\n const targetColumn: RTColumn<any, any> = state[listId].find(c => c.id === overId);\n\n if (draggedColumn && targetColumn) {\n reorderColumn(draggedColumn.id, targetColumn.id, listId === 'pinned');\n }\n };\n\n const move = (activeId: SortableItemId, oldListId: string) => {\n const column = state[oldListId].find(c => c.id === activeId);\n\n if (column) {\n moveColumn(column);\n }\n };\n\n const handleDoubleClick = (id, status) =>\n table.options.enablePinning\n ? event => {\n event.stopPropagation();\n move(id, status);\n }\n : undefined;\n\n const isReorderingAllowed = (meta.enableColumnReordering || table.options.enablePinning) ?? false;\n\n if (!table.options.enablePinning) {\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'other')}\n />\n </Sortable.Item>\n );\n })}\n </Sortable.List>\n </Sortable.Container>\n );\n }\n\n return (\n <Sortable.Container reorder={reorder} move={move}>\n <h5 className=\"mx-4\">{texts.table2.columnSettings.columnsPinned}</h5>\n <Sortable.List id=\"pinned\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.pinned.length ? (\n state.pinned.map(column => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'pinned')}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">\n {texts.table2.columnSettings.columnsPinnedDrop}\n </p>\n )}\n </Sortable.List>\n <h5 className=\"mx-4\">{texts.table2.columnSettings.columnsOther}</h5>\n\n <Sortable.List id=\"other\" className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {state.other.length ? (\n state.other.map((column: RTColumn<any, any>) => {\n const canBeReordered = isOrderingAllowed(table, column);\n\n return (\n <Sortable.Item\n key={column.id}\n disabled={column.columnDef.meta?.disableReordering}\n id={column.id}\n asChild>\n <OrderableColumn\n canBeReordered={canBeReordered}\n column={column}\n isReorderingAllowed={isReorderingAllowed}\n onDoubleClick={handleDoubleClick(column.id, 'other')}\n />\n </Sortable.Item>\n );\n })\n ) : (\n <p className=\"text-grey-500 mb-0 flex h-8 items-center px-2\">\n {texts.table2.columnSettings.columnsOtherDrop}\n </p>\n )}\n </Sortable.List>\n </Sortable.Container>\n );\n};\n\nconst reorder = (draggedColumnId: string, targetColumnId: string, list: RTColumn<any>[] = []): RTColumn<any>[] => {\n const nextColumnOrder = [...list];\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === targetColumnId),\n 0,\n nextColumnOrder.splice(\n nextColumnOrder.findIndex(c => c.id === draggedColumnId),\n 1\n )[0]\n );\n return nextColumnOrder;\n};\n\ntype PinnedState = {\n pinned: RTColumn<any>[];\n other: RTColumn<any>[];\n};\ntype ColumnSettingsButtonProps = {\n table: RTTable<any>;\n};\n\nexport const ColumnSettingsButton = ({ table }: ColumnSettingsButtonProps) => {\n const { texts } = useLocalization();\n const [query, setQuery] = React.useState('');\n const columns = table.getAllLeafColumns().filter(column => !isInternalColumn(column.id));\n\n const [state, setState] = React.useState<PinnedState>({\n pinned: columns.filter(column => column.getIsPinned()),\n other: columns.filter(column => !column.getIsPinned()),\n });\n\n const pinColumn = (column: RTColumn<any, any>) => {\n if (state.pinned.find(c => c.id === column.id)) {\n setState(currentState => ({\n pinned: currentState.pinned.filter(c => c.id !== column.id),\n other: [column].concat(...currentState.other),\n }));\n } else {\n setState(currentState => ({\n pinned: currentState.pinned.concat(column),\n other: currentState.other.filter(c => c.id !== column.id),\n }));\n }\n };\n\n const reorderColumn = (draggedColumnId: string, targetColumnId: string, pinned: boolean) => {\n if (pinned) {\n setState(currentState => ({\n ...currentState,\n pinned: reorder(draggedColumnId, targetColumnId, currentState.pinned),\n }));\n } else {\n setState(currentState => ({\n ...currentState,\n other: reorder(draggedColumnId, targetColumnId, currentState.other),\n }));\n }\n };\n\n // probably a more elegant way to do this without local state but had\n // a range of issues using the native apis directly\n React.useEffect(() => {\n const internals: string[] = [];\n\n if (table.options.enableRowSelection) {\n internals.push(COLUMN_ID_FOR_SELECTION);\n }\n\n if (table.options.enableExpanding) {\n internals.push(COLUMN_ID_FOR_EXPANSION);\n }\n\n table.setColumnPinning({ left: internals.concat(...state.pinned.map(c => c.id)) });\n table.setColumnOrder(internals.concat([...state.pinned, ...state.other].map(c => c.id)));\n }, [state]);\n\n return (\n <IconButton\n aria-label={texts.table2.columnSettings.tooltip}\n icon=\"columns\"\n popover={popoverProps => (\n <Popover {...popoverProps}>\n <Popover.Content align=\"end\">\n <div className=\"flex w-60 flex-col gap-2\">\n {table.options.enableHiding ? (\n <Input\n onChange={event => setQuery(event.target.value)}\n placeholder={texts.table2.columnSettings.search}\n value={query}\n />\n ) : null}\n <div className=\"-ml-4 -mb-2 max-h-64 w-[calc(100%_+_theme(spacing.8))] overflow-auto\">\n {query ? (\n <div className=\"flex min-h-[theme(spacing.8)] flex-col gap-y-px overflow-x-hidden px-2\">\n {columns\n .filter(column =>\n column.columnDef.header?.toString().toLowerCase().includes(query.toLowerCase())\n )\n .map(column => (\n <OrderableColumn\n key={column.id}\n canBeReordered={false}\n column={column}\n isReorderingAllowed={false}\n />\n ))}\n </div>\n ) : (\n <SortableColumnContainer\n state={state}\n moveColumn={pinColumn}\n reorderColumn={reorderColumn}\n table={table}\n />\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover>\n )}\n tooltip={texts.table2.columnSettings.tooltip}\n />\n );\n};\n"],"names":["OrderableColumn","React","forwardRef","props","ref","canBeReordered","column","isReorderingAllowed","attributes","icon","Icon","name","className","columnDef","header","id","getCanHide","Checkbox","checked","getIsVisible","onChange","toggleVisibility","isOrderingAllowed","table","meta","options","enablePinning","enableColumnReordering","disableReordering","SortableColumnContainer","state","moveColumn","reorderColumn","texts","useLocalization","reorder","activeId","overId","listId","draggedColumn","find","c","targetColumn","move","oldListId","handleDoubleClick","status","event","stopPropagation","undefined","Sortable","other","map","key","disabled","asChild","onDoubleClick","table2","columnSettings","columnsPinned","pinned","length","columnsPinnedDrop","columnsOther","columnsOtherDrop","draggedColumnId","targetColumnId","list","nextColumnOrder","splice","findIndex","ColumnSettingsButton","query","setQuery","useState","columns","getAllLeafColumns","filter","isInternalColumn","setState","getIsPinned","pinColumn","currentState","concat","useEffect","internals","enableRowSelection","push","COLUMN_ID_FOR_SELECTION","enableExpanding","COLUMN_ID_FOR_EXPANSION","setColumnPinning","left","setColumnOrder","IconButton","tooltip","popover","popoverProps","Popover","Content","align","enableHiding","Input","target","value","placeholder","search","toString","toLowerCase","includes"],"mappings":";;;;;;;;;;;;;AAkBA,MAAMA,eAAe,gBAAGC,cAAK,CAACC,UAAU,CAAuC,CAACC,KAAK,EAAEC,GAAG;;EACtF,MAAM;IAAEC,cAAc;IAAEC,MAAM;IAAEC,mBAAmB;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAE5E,IAAIM,IAAI;EAER,IAAIJ,cAAc,EAAE;IAChBI,IAAI,gBAAGR,6BAACS,IAAI;MAACC,IAAI,EAAC,MAAM;MAACC,SAAS,EAAC;MAAsE;GAC5G,MAAM,IAAIL,mBAAmB,EAAE;IAC5BE,IAAI,gBAAGR;MAAMW,SAAS,EAAC;MAA2B;;EAGtD,oBACIX,sDACQO,UAAU;IACdI,SAAS,EAAC,iIAAiI;IAC3IR,GAAG,EAAEA;mBACLH;IAAMW,SAAS,EAAC;KACXH,IAAI,2BACJH,MAAM,CAACO,SAAS,CAACC,MAAM,yEAAIR,MAAM,CAACO,SAAS,CAACE,EAAE,CAC5C,EACNT,MAAM,CAACU,UAAU,EAAE,gBAAGf,6BAACgB,QAAQ;IAACC,OAAO,EAAEZ,MAAM,CAACa,YAAY,EAAE;IAAEC,QAAQ,EAAEd,MAAM,CAACe;IAAoB,GAAG,IAAI,CAC3G;AAEd,CAAC,CAAC;AAEF,MAAMC,iBAAiB,GAAG,CAACC,KAAK,EAAEjB,MAAM;;EACpC,MAAMkB,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAAsB;EAEjD,IAAID,KAAK,CAACE,OAAO,CAACC,aAAa,EAAE;IAC7B,OAAO,IAAI;;EAGf,OAAOF,IAAI,CAACG,sBAAsB,GAAG,2BAACrB,MAAM,CAACO,SAAS,CAACW,IAAI,kDAArB,sBAAuBI,iBAAiB,IAAG,KAAK;AAC1F,CAAC;AASD,MAAMC,uBAAuB,GAAG,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC,aAAa;EAAET;CAAqC;;EACtG,MAAM;IAAEU;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMV,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAAsB;EAEjD,MAAMW,OAAO,GAAG,CAACC,QAAwB,EAAEC,MAAsB,EAAEC,MAAc;IAC7E,MAAMC,aAAa,GAAuBT,KAAK,CAACQ,MAAM,CAAC,CAACE,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKqB,QAAQ,CAAC;IACpF,MAAMM,YAAY,GAAuBZ,KAAK,CAACQ,MAAM,CAAC,CAACE,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKsB,MAAM,CAAC;IAEjF,IAAIE,aAAa,IAAIG,YAAY,EAAE;MAC/BV,aAAa,CAACO,aAAa,CAACxB,EAAE,EAAE2B,YAAY,CAAC3B,EAAE,EAAEuB,MAAM,KAAK,QAAQ,CAAC;;GAE5E;EAED,MAAMK,IAAI,GAAG,CAACP,QAAwB,EAAEQ,SAAiB;IACrD,MAAMtC,MAAM,GAAGwB,KAAK,CAACc,SAAS,CAAC,CAACJ,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKqB,QAAQ,CAAC;IAE5D,IAAI9B,MAAM,EAAE;MACRyB,UAAU,CAACzB,MAAM,CAAC;;GAEzB;EAED,MAAMuC,iBAAiB,GAAG,CAAC9B,EAAE,EAAE+B,MAAM,KACjCvB,KAAK,CAACE,OAAO,CAACC,aAAa,GACrBqB,KAAK;IACDA,KAAK,CAACC,eAAe,EAAE;IACvBL,IAAI,CAAC5B,EAAE,EAAE+B,MAAM,CAAC;GACnB,GACDG,SAAS;EAEnB,MAAM1C,mBAAmB,WAAIiB,IAAI,CAACG,sBAAsB,IAAIJ,KAAK,CAACE,OAAO,CAACC,aAAa,uCAAK,KAAK;EAEjG,IAAI,CAACH,KAAK,CAACE,OAAO,CAACC,aAAa,EAAE;IAC9B,oBACIzB,6BAACiD,SAAkB;MAACf,OAAO,EAAEA,OAAO;MAAEQ,IAAI,EAAEA;oBACxC1C,6BAACiD,IAAa;MAACnC,EAAE,EAAC,OAAO;MAACH,SAAS,EAAC;OAC/BkB,KAAK,CAACqB,KAAK,CAACC,GAAG,CAAE9C,MAA0B;;MACxC,MAAMD,cAAc,GAAGiB,iBAAiB,CAACC,KAAK,EAAEjB,MAAM,CAAC;MAEvD,oBACIL,6BAACiD,IAAa;QACVG,GAAG,EAAE/C,MAAM,CAACS,EAAE;QACduC,QAAQ,4BAAEhD,MAAM,CAACO,SAAS,CAACW,IAAI,2DAArB,uBAAuBI,iBAAiB;QAClDb,EAAE,EAAET,MAAM,CAACS,EAAE;QACbwC,OAAO;sBACPtD,6BAACD,eAAe;QACZK,cAAc,EAAEA,cAAc;QAC9BC,MAAM,EAAEA,MAAM;QACdC,mBAAmB,EAAEA,mBAAmB;QACxCiD,aAAa,EAAEX,iBAAiB,CAACvC,MAAM,CAACS,EAAE,EAAE,OAAO;QACrD,CACU;KAEvB,CAAC,CACU,CACC;;EAI7B,oBACId,6BAACiD,SAAkB;IAACf,OAAO,EAAEA,OAAO;IAAEQ,IAAI,EAAEA;kBACxC1C;IAAIW,SAAS,EAAC;KAAQqB,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACC,aAAa,CAAM,eACrE1D,6BAACiD,IAAa;IAACnC,EAAE,EAAC,QAAQ;IAACH,SAAS,EAAC;KAChCkB,KAAK,CAAC8B,MAAM,CAACC,MAAM,GAChB/B,KAAK,CAAC8B,MAAM,CAACR,GAAG,CAAC9C,MAAM;;IACnB,MAAMD,cAAc,GAAGiB,iBAAiB,CAACC,KAAK,EAAEjB,MAAM,CAAC;IAEvD,oBACIL,6BAACiD,IAAa;MACVG,GAAG,EAAE/C,MAAM,CAACS,EAAE;MACduC,QAAQ,4BAAEhD,MAAM,CAACO,SAAS,CAACW,IAAI,2DAArB,uBAAuBI,iBAAiB;MAClDb,EAAE,EAAET,MAAM,CAACS,EAAE;MACbwC,OAAO;oBACPtD,6BAACD,eAAe;MACZK,cAAc,EAAEA,cAAc;MAC9BC,MAAM,EAAEA,MAAM;MACdC,mBAAmB,EAAEA,mBAAmB;MACxCiD,aAAa,EAAEX,iBAAiB,CAACvC,MAAM,CAACS,EAAE,EAAE,QAAQ;MACtD,CACU;GAEvB,CAAC,gBAEFd;IAAGW,SAAS,EAAC;KACRqB,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACI,iBAAiB,CAErD,CACW,eAChB7D;IAAIW,SAAS,EAAC;KAAQqB,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACK,YAAY,CAAM,eAEpE9D,6BAACiD,IAAa;IAACnC,EAAE,EAAC,OAAO;IAACH,SAAS,EAAC;KAC/BkB,KAAK,CAACqB,KAAK,CAACU,MAAM,GACf/B,KAAK,CAACqB,KAAK,CAACC,GAAG,CAAE9C,MAA0B;;IACvC,MAAMD,cAAc,GAAGiB,iBAAiB,CAACC,KAAK,EAAEjB,MAAM,CAAC;IAEvD,oBACIL,6BAACiD,IAAa;MACVG,GAAG,EAAE/C,MAAM,CAACS,EAAE;MACduC,QAAQ,4BAAEhD,MAAM,CAACO,SAAS,CAACW,IAAI,2DAArB,uBAAuBI,iBAAiB;MAClDb,EAAE,EAAET,MAAM,CAACS,EAAE;MACbwC,OAAO;oBACPtD,6BAACD,eAAe;MACZK,cAAc,EAAEA,cAAc;MAC9BC,MAAM,EAAEA,MAAM;MACdC,mBAAmB,EAAEA,mBAAmB;MACxCiD,aAAa,EAAEX,iBAAiB,CAACvC,MAAM,CAACS,EAAE,EAAE,OAAO;MACrD,CACU;GAEvB,CAAC,gBAEFd;IAAGW,SAAS,EAAC;KACRqB,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACM,gBAAgB,CAEpD,CACW,CACC;AAE7B,CAAC;AAED,MAAM7B,OAAO,GAAG,CAAC8B,eAAuB,EAAEC,cAAsB,EAAEC,OAAwB,EAAE;EACxF,MAAMC,eAAe,GAAG,CAAC,GAAGD,IAAI,CAAC;EACjCC,eAAe,CAACC,MAAM,CAClBD,eAAe,CAACE,SAAS,CAAC7B,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKmD,cAAc,CAAC,EACvD,CAAC,EACDE,eAAe,CAACC,MAAM,CAClBD,eAAe,CAACE,SAAS,CAAC7B,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKkD,eAAe,CAAC,EACxD,CAAC,CACJ,CAAC,CAAC,CAAC,CACP;EACD,OAAOG,eAAe;AAC1B,CAAC;MAUYG,oBAAoB,GAAG,CAAC;EAAEhD;CAAkC;EACrE,MAAM;IAAEU;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM,CAACsC,KAAK,EAAEC,QAAQ,CAAC,GAAGxE,cAAK,CAACyE,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAMC,OAAO,GAAGpD,KAAK,CAACqD,iBAAiB,EAAE,CAACC,MAAM,CAACvE,MAAM,IAAI,CAACwE,gBAAgB,CAACxE,MAAM,CAACS,EAAE,CAAC,CAAC;EAExF,MAAM,CAACe,KAAK,EAAEiD,QAAQ,CAAC,GAAG9E,cAAK,CAACyE,QAAQ,CAAc;IAClDd,MAAM,EAAEe,OAAO,CAACE,MAAM,CAACvE,MAAM,IAAIA,MAAM,CAAC0E,WAAW,EAAE,CAAC;IACtD7B,KAAK,EAAEwB,OAAO,CAACE,MAAM,CAACvE,MAAM,IAAI,CAACA,MAAM,CAAC0E,WAAW,EAAE;GACxD,CAAC;EAEF,MAAMC,SAAS,GAAI3E,MAA0B;IACzC,IAAIwB,KAAK,CAAC8B,MAAM,CAACpB,IAAI,CAACC,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKT,MAAM,CAACS,EAAE,CAAC,EAAE;MAC5CgE,QAAQ,CAACG,YAAY,KAAK;QACtBtB,MAAM,EAAEsB,YAAY,CAACtB,MAAM,CAACiB,MAAM,CAACpC,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKT,MAAM,CAACS,EAAE,CAAC;QAC3DoC,KAAK,EAAE,CAAC7C,MAAM,CAAC,CAAC6E,MAAM,CAAC,GAAGD,YAAY,CAAC/B,KAAK;OAC/C,CAAC,CAAC;KACN,MAAM;MACH4B,QAAQ,CAACG,YAAY,KAAK;QACtBtB,MAAM,EAAEsB,YAAY,CAACtB,MAAM,CAACuB,MAAM,CAAC7E,MAAM,CAAC;QAC1C6C,KAAK,EAAE+B,YAAY,CAAC/B,KAAK,CAAC0B,MAAM,CAACpC,CAAC,IAAIA,CAAC,CAAC1B,EAAE,KAAKT,MAAM,CAACS,EAAE;OAC3D,CAAC,CAAC;;GAEV;EAED,MAAMiB,aAAa,GAAG,CAACiC,eAAuB,EAAEC,cAAsB,EAAEN,MAAe;IACnF,IAAIA,MAAM,EAAE;MACRmB,QAAQ,CAACG,YAAY,KAAK;QACtB,GAAGA,YAAY;QACftB,MAAM,EAAEzB,OAAO,CAAC8B,eAAe,EAAEC,cAAc,EAAEgB,YAAY,CAACtB,MAAM;OACvE,CAAC,CAAC;KACN,MAAM;MACHmB,QAAQ,CAACG,YAAY,KAAK;QACtB,GAAGA,YAAY;QACf/B,KAAK,EAAEhB,OAAO,CAAC8B,eAAe,EAAEC,cAAc,EAAEgB,YAAY,CAAC/B,KAAK;OACrE,CAAC,CAAC;;GAEV;;;EAIDlD,cAAK,CAACmF,SAAS,CAAC;IACZ,MAAMC,SAAS,GAAa,EAAE;IAE9B,IAAI9D,KAAK,CAACE,OAAO,CAAC6D,kBAAkB,EAAE;MAClCD,SAAS,CAACE,IAAI,CAACC,uBAAuB,CAAC;;IAG3C,IAAIjE,KAAK,CAACE,OAAO,CAACgE,eAAe,EAAE;MAC/BJ,SAAS,CAACE,IAAI,CAACG,uBAAuB,CAAC;;IAG3CnE,KAAK,CAACoE,gBAAgB,CAAC;MAAEC,IAAI,EAAEP,SAAS,CAACF,MAAM,CAAC,GAAGrD,KAAK,CAAC8B,MAAM,CAACR,GAAG,CAACX,CAAC,IAAIA,CAAC,CAAC1B,EAAE,CAAC;KAAG,CAAC;IAClFQ,KAAK,CAACsE,cAAc,CAACR,SAAS,CAACF,MAAM,CAAC,CAAC,GAAGrD,KAAK,CAAC8B,MAAM,EAAE,GAAG9B,KAAK,CAACqB,KAAK,CAAC,CAACC,GAAG,CAACX,CAAC,IAAIA,CAAC,CAAC1B,EAAE,CAAC,CAAC,CAAC;GAC3F,EAAE,CAACe,KAAK,CAAC,CAAC;EAEX,oBACI7B,6BAAC6F,UAAU;kBACK7D,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACqC,OAAO;IAC/CtF,IAAI,EAAC,SAAS;IACduF,OAAO,EAAEC,YAAY,iBACjBhG,6BAACiG,OAAO,oBAAKD,YAAY,gBACrBhG,6BAACiG,OAAO,CAACC,OAAO;MAACC,KAAK,EAAC;oBACnBnG;MAAKW,SAAS,EAAC;OACVW,KAAK,CAACE,OAAO,CAAC4E,YAAY,gBACvBpG,6BAACqG,KAAK;MACFlF,QAAQ,EAAE2B,KAAK,IAAI0B,QAAQ,CAAC1B,KAAK,CAACwD,MAAM,CAACC,KAAK,CAAC;MAC/CC,WAAW,EAAExE,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACgD,MAAM;MAC/CF,KAAK,EAAEhC;MACT,GACF,IAAI,eACRvE;MAAKW,SAAS,EAAC;OACV4D,KAAK,gBACFvE;MAAKW,SAAS,EAAC;OACV+D,OAAO,CACHE,MAAM,CAACvE,MAAM;MAAA;MAAA,iCACVA,MAAM,CAACO,SAAS,CAACC,MAAM,2DAAvB,uBAAyB6F,QAAQ,EAAE,CAACC,WAAW,EAAE,CAACC,QAAQ,CAACrC,KAAK,CAACoC,WAAW,EAAE,CAAC;MAClF,CACAxD,GAAG,CAAC9C,MAAM,iBACPL,6BAACD,eAAe;MACZqD,GAAG,EAAE/C,MAAM,CAACS,EAAE;MACdV,cAAc,EAAE,KAAK;MACrBC,MAAM,EAAEA,MAAM;MACdC,mBAAmB,EAAE;MAE5B,CAAC,CACJ,gBAENN,6BAAC4B,uBAAuB;MACpBC,KAAK,EAAEA,KAAK;MACZC,UAAU,EAAEkD,SAAS;MACrBjD,aAAa,EAAEA,aAAa;MAC5BT,KAAK,EAAEA;MAEd,CACC,CACJ,CACQ,CAEzB;IACDwE,OAAO,EAAE9D,KAAK,CAACwB,MAAM,CAACC,cAAc,CAACqC;IACvC;AAEV;;;;"}
|
@@ -8,13 +8,15 @@ const RowContext = /*#__PURE__*/React__default.createContext({
|
|
8
8
|
rowMoveReason: {},
|
9
9
|
setRowMoveReason: () => undefined
|
10
10
|
},
|
11
|
+
rowIndex: undefined,
|
11
12
|
isHovered: false,
|
12
13
|
setIsHovered: () => undefined
|
13
14
|
});
|
14
15
|
const RowContextProvider = ({
|
15
16
|
isActiveRow,
|
16
17
|
children,
|
17
|
-
meta
|
18
|
+
meta,
|
19
|
+
rowIndex
|
18
20
|
}) => {
|
19
21
|
// we use non-css hovered state to determine whether to render actions or not, for performance
|
20
22
|
const [isHovered, setIsHovered] = React__default.useState(false);
|
@@ -41,10 +43,11 @@ const RowContextProvider = ({
|
|
41
43
|
rowMoveReason,
|
42
44
|
setRowMoveReason
|
43
45
|
},
|
46
|
+
rowIndex,
|
44
47
|
isHovered,
|
45
48
|
setIsHovered
|
46
49
|
};
|
47
|
-
}, [isActiveRow, isHovered, rowMoveReason, validationErrors]);
|
50
|
+
}, [isActiveRow, isHovered, rowMoveReason, validationErrors, rowIndex]);
|
48
51
|
return /*#__PURE__*/React__default.createElement(RowContext.Provider, {
|
49
52
|
value: context
|
50
53
|
}, children);
|
@@ -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: () => 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":";;
|
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 rowIndex?: number;\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 rowIndex: undefined,\n isHovered: false,\n setIsHovered: () => undefined,\n});\n\nexport const RowContextProvider = ({ isActiveRow, children, meta, rowIndex }) => {\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 rowIndex,\n isHovered,\n setIsHovered,\n };\n }, [isActiveRow, isHovered, rowMoveReason, validationErrors, rowIndex]);\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","rowIndex","isHovered","setIsHovered","RowContextProvider","isActiveRow","children","meta","useState","useEffect","isFocusInsideTable","tableRef","current","contains","document","activeElement","moveToFirstColumn","focussableColumnIndexes","isEditing","context","useMemo","Provider","value","useRowContext","useContext"],"mappings":";;MAmBaA,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,QAAQ,EAAEH,SAAS;EACnBI,SAAS,EAAE,KAAK;EAChBC,YAAY,EAAE,MAAML;CACvB;MAEYM,kBAAkB,GAAG,CAAC;EAAEC,WAAW;EAAEC,QAAQ;EAAEC,IAAI;EAAEN;CAAU;;EAExE,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGX,cAAK,CAACgB,QAAQ,CAAC,KAAK,CAAC;;EAGvD,MAAM,CAACZ,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGL,cAAK,CAACgB,QAAQ,CAAkC,IAAI,CAAC;EACrG,MAAM,CAACT,aAAa,EAAEC,gBAAgB,CAAC,GAAGR,cAAK,CAACgB,QAAQ,CAAyC,EAAE,CAAC;;EAGpGhB,cAAK,CAACiB,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,CAACZ,QAAQ,CAACqB,iBAAiB,CAACT,IAAI,CAACU,uBAAuB,CAAC;;;;GAIpE,EAAE,CAACV,IAAI,CAACZ,QAAQ,CAACuB,SAAS,EAAEX,IAAI,CAACU,uBAAuB,CAAC,CAAC;EAE3D,MAAME,OAAO,GAAG3B,cAAK,CAAC4B,OAAO,CAAC;IAC1B,OAAO;MACH1B,QAAQ,EAAEW,WAAW;MACrBV,QAAQ,EAAE;QACNC,gBAAgB;QAChBC,mBAAmB;QACnBE,aAAa;QACbC;OACH;MACDC,QAAQ;MACRC,SAAS;MACTC;KACH;GACJ,EAAE,CAACE,WAAW,EAAEH,SAAS,EAAEH,aAAa,EAAEH,gBAAgB,EAAEK,QAAQ,CAAC,CAAC;EAEvE,oBAAOT,6BAACD,UAAU,CAAC8B,QAAQ;IAACC,KAAK,EAAEH;KAAUb,QAAQ,CAAuB;AAChF;MAEaiB,aAAa,GAAG,MAAM/B,cAAK,CAACgC,UAAU,CAACjC,UAAU;;;;"}
|
@@ -30,7 +30,8 @@ const Row = props => {
|
|
30
30
|
const isActiveRow = meta.activeRowIndex === props.rowIndex;
|
31
31
|
return /*#__PURE__*/React__default.createElement(RowContextProvider, {
|
32
32
|
isActiveRow: isActiveRow,
|
33
|
-
meta: props.table.options.meta
|
33
|
+
meta: props.table.options.meta,
|
34
|
+
rowIndex: props.rowIndex
|
34
35
|
}, /*#__PURE__*/React__default.createElement(InternalRow, Object.assign({}, props)));
|
35
36
|
};
|
36
37
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Row.js","sources":["../../../../../../../../../src/components/Table2/components/row/Row.tsx"],"sourcesContent":["import React from 'react';\nimport { TableMeta } from '@tanstack/react-table';\nimport { RowContextProvider, useRowContext } from './Context';\n\nconst InternalRow = ({ row, rowIndex, table, ...props }) => {\n const { setIsHovered } = useRowContext();\n\n const meta = table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === rowIndex;\n const isDragging = meta.dragging[row.id];\n\n const attributes = {\n ...props,\n 'aria-current': isActiveRow ? true : undefined,\n 'aria-grabbed': isDragging ? true : undefined,\n 'data-row-index': rowIndex,\n draggable: meta.enableRowDragging ? true : undefined,\n onMouseEnter: () => setIsHovered(true),\n onMouseLeave: () => setIsHovered(false),\n role: 'row',\n };\n\n return <div {...attributes} />;\n};\n\nexport const Row = props => {\n const meta = props.table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === props.rowIndex;\n\n return (\n <RowContextProvider isActiveRow={isActiveRow} meta={props.table.options.meta}>\n <InternalRow {...props} />\n </RowContextProvider>\n );\n};\n"],"names":["InternalRow","row","rowIndex","table","props","setIsHovered","useRowContext","meta","options","isActiveRow","activeRowIndex","isDragging","dragging","id","attributes","undefined","draggable","enableRowDragging","onMouseEnter","onMouseLeave","role","React","Row","RowContextProvider"],"mappings":";;;AAIA,MAAMA,WAAW,GAAG,CAAC;EAAEC,GAAG;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;CAAO;EACnD,MAAM;IAAEC;GAAc,GAAGC,aAAa,EAAE;EAExC,MAAMC,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAACD,IAAsB;EACjD,MAAME,WAAW,GAAGF,IAAI,CAACG,cAAc,KAAKR,QAAQ;EACpD,MAAMS,UAAU,GAAGJ,IAAI,CAACK,QAAQ,CAACX,GAAG,CAACY,EAAE,CAAC;EAExC,MAAMC,UAAU,GAAG;IACf,GAAGV,KAAK;IACR,cAAc,EAAEK,WAAW,GAAG,IAAI,GAAGM,SAAS;IAC9C,cAAc,EAAEJ,UAAU,GAAG,IAAI,GAAGI,SAAS;IAC7C,gBAAgB,EAAEb,QAAQ;IAC1Bc,SAAS,EAAET,IAAI,CAACU,iBAAiB,GAAG,IAAI,GAAGF,SAAS;IACpDG,YAAY,EAAE,MAAMb,YAAY,CAAC,IAAI,CAAC;IACtCc,YAAY,EAAE,MAAMd,YAAY,CAAC,KAAK,CAAC;IACvCe,IAAI,EAAE;GACT;EAED,oBAAOC,sDAASP,UAAU,EAAI;AAClC,CAAC;MAEYQ,GAAG,GAAGlB,KAAK;EACpB,MAAMG,IAAI,GAAGH,KAAK,CAACD,KAAK,CAACK,OAAO,CAACD,IAAsB;EACvD,MAAME,WAAW,GAAGF,IAAI,CAACG,cAAc,KAAKN,KAAK,CAACF,QAAQ;EAE1D,oBACImB,6BAACE,kBAAkB;IAACd,WAAW,EAAEA,WAAW;IAAEF,IAAI,EAAEH,KAAK,CAACD,KAAK,CAACK,OAAO,CAACD;
|
1
|
+
{"version":3,"file":"Row.js","sources":["../../../../../../../../../src/components/Table2/components/row/Row.tsx"],"sourcesContent":["import React from 'react';\nimport { TableMeta } from '@tanstack/react-table';\nimport { RowContextProvider, useRowContext } from './Context';\n\nconst InternalRow = ({ row, rowIndex, table, ...props }) => {\n const { setIsHovered } = useRowContext();\n\n const meta = table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === rowIndex;\n const isDragging = meta.dragging[row.id];\n\n const attributes = {\n ...props,\n 'aria-current': isActiveRow ? true : undefined,\n 'aria-grabbed': isDragging ? true : undefined,\n 'data-row-index': rowIndex,\n draggable: meta.enableRowDragging ? true : undefined,\n onMouseEnter: () => setIsHovered(true),\n onMouseLeave: () => setIsHovered(false),\n role: 'row',\n };\n\n return <div {...attributes} />;\n};\n\nexport const Row = props => {\n const meta = props.table.options.meta as TableMeta<any>;\n const isActiveRow = meta.activeRowIndex === props.rowIndex;\n\n return (\n <RowContextProvider isActiveRow={isActiveRow} meta={props.table.options.meta} rowIndex={props.rowIndex}>\n <InternalRow {...props} />\n </RowContextProvider>\n );\n};\n"],"names":["InternalRow","row","rowIndex","table","props","setIsHovered","useRowContext","meta","options","isActiveRow","activeRowIndex","isDragging","dragging","id","attributes","undefined","draggable","enableRowDragging","onMouseEnter","onMouseLeave","role","React","Row","RowContextProvider"],"mappings":";;;AAIA,MAAMA,WAAW,GAAG,CAAC;EAAEC,GAAG;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;CAAO;EACnD,MAAM;IAAEC;GAAc,GAAGC,aAAa,EAAE;EAExC,MAAMC,IAAI,GAAGJ,KAAK,CAACK,OAAO,CAACD,IAAsB;EACjD,MAAME,WAAW,GAAGF,IAAI,CAACG,cAAc,KAAKR,QAAQ;EACpD,MAAMS,UAAU,GAAGJ,IAAI,CAACK,QAAQ,CAACX,GAAG,CAACY,EAAE,CAAC;EAExC,MAAMC,UAAU,GAAG;IACf,GAAGV,KAAK;IACR,cAAc,EAAEK,WAAW,GAAG,IAAI,GAAGM,SAAS;IAC9C,cAAc,EAAEJ,UAAU,GAAG,IAAI,GAAGI,SAAS;IAC7C,gBAAgB,EAAEb,QAAQ;IAC1Bc,SAAS,EAAET,IAAI,CAACU,iBAAiB,GAAG,IAAI,GAAGF,SAAS;IACpDG,YAAY,EAAE,MAAMb,YAAY,CAAC,IAAI,CAAC;IACtCc,YAAY,EAAE,MAAMd,YAAY,CAAC,KAAK,CAAC;IACvCe,IAAI,EAAE;GACT;EAED,oBAAOC,sDAASP,UAAU,EAAI;AAClC,CAAC;MAEYQ,GAAG,GAAGlB,KAAK;EACpB,MAAMG,IAAI,GAAGH,KAAK,CAACD,KAAK,CAACK,OAAO,CAACD,IAAsB;EACvD,MAAME,WAAW,GAAGF,IAAI,CAACG,cAAc,KAAKN,KAAK,CAACF,QAAQ;EAE1D,oBACImB,6BAACE,kBAAkB;IAACd,WAAW,EAAEA,WAAW;IAAEF,IAAI,EAAEH,KAAK,CAACD,KAAK,CAACK,OAAO,CAACD,IAAI;IAAEL,QAAQ,EAAEE,KAAK,CAACF;kBAC1FmB,6BAACrB,WAAW,oBAAKI,KAAK,EAAI,CACT;AAE7B;;;;"}
|
@@ -43,16 +43,17 @@ function useColumnDefinitions(children, options, tableRef) {
|
|
43
43
|
accessorKey: child.props.accessor,
|
44
44
|
id: child.props.accessor,
|
45
45
|
cell: props => {
|
46
|
-
|
46
|
+
var _value;
|
47
|
+
let value = props.getValue();
|
47
48
|
if (typeof child.props.renderer === 'function') {
|
48
|
-
|
49
|
+
value = child.props.renderer(value, props.row.original);
|
49
50
|
}
|
50
51
|
if (typeof value === 'string' || typeof value === 'number') {
|
51
52
|
return /*#__PURE__*/React__default.createElement("span", {
|
52
53
|
className: "truncate"
|
53
54
|
}, value);
|
54
55
|
}
|
55
|
-
return value !== null &&
|
56
|
+
return (_value = value) !== null && _value !== void 0 ? _value : null;
|
56
57
|
},
|
57
58
|
header: child.props.header,
|
58
59
|
meta: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useColumnDefinitions.js","sources":["../../../../../../../../src/components/Table2/hooks/useColumnDefinitions.tsx"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n ColumnSort,\n ColumnSizingState,\n Row,\n RowData,\n VisibilityState,\n SortingFnOption,\n Table,\n} from '@tanstack/react-table';\nimport {\n CellAlignment,\n ColumnDataType,\n RowDragHandler,\n RowExpansionRenderer,\n Table2Children,\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>, table: Table<TData>) => string);\n control?: Table2ColumnControlRenderer;\n dataType?: ColumnDataType;\n disableReordering?: 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: Table2Children,\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>>[])\n .filter((child: any) => !!child)\n .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 const value = props.getValue();\n\n if (typeof child.props.renderer === 'function') {\n return child.props.renderer(value, props.row.original);\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n return <span className=\"truncate\">{value}</span>;\n }\n\n return value ?? 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 menu: child.props.menu,\n tooltip: child.props.tooltip,\n },\n enableHiding: !child.props.disableHiding,\n // filtering\n enableColumnFilter: !child.props.disableFiltering,\n filterFn:\n 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","filter","child","forEach","isValidElement","props","defaultPinned","enableColumnPinning","push","accessor","defaultWidth","defaultHidden","enableColumnHiding","sort","undefined","id","desc","footer","accessorKey","cell","value","getValue","renderer","row","original","className","header","meta","align","control","dataType","disableReordering","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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"}
|
1
|
+
{"version":3,"file":"useColumnDefinitions.js","sources":["../../../../../../../../src/components/Table2/hooks/useColumnDefinitions.tsx"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n ColumnSort,\n ColumnSizingState,\n Row,\n RowData,\n VisibilityState,\n SortingFnOption,\n Table,\n} from '@tanstack/react-table';\nimport {\n CellAlignment,\n ColumnDataType,\n RowDragHandler,\n RowExpansionRenderer,\n Table2Children,\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>, table: Table<TData>) => string);\n control?: Table2ColumnControlRenderer;\n dataType?: ColumnDataType;\n disableReordering?: 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: Table2Children,\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>>[])\n .filter((child: any) => !!child)\n .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 let value = props.getValue();\n\n if (typeof child.props.renderer === 'function') {\n value = child.props.renderer(value, props.row.original);\n }\n\n if (typeof value === 'string' || typeof value === 'number') {\n return <span className=\"truncate\">{value}</span>;\n }\n\n return value ?? 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 menu: child.props.menu,\n tooltip: child.props.tooltip,\n },\n enableHiding: !child.props.disableHiding,\n // filtering\n enableColumnFilter: !child.props.disableFiltering,\n filterFn:\n 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","filter","child","forEach","isValidElement","props","defaultPinned","enableColumnPinning","push","accessor","defaultWidth","defaultHidden","enableColumnHiding","sort","undefined","id","desc","footer","accessorKey","cell","value","getValue","renderer","row","original","className","header","meta","align","control","dataType","disableReordering","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":";;;;;SA6DgBA,oBAAoB,CAChCC,QAAwB,EACxBC,OAA2C,EAC3CC,QAAyC;EAEzC,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAMC,oBAAoB,GAAGC,cAAK,CAACC,MAAM,EAAU;EACnD,MAAMC,YAAY,GAAGC,kBAAkB,EAAS;EAEhD,OAAOH,cAAK,CAACI,OAAO,CAAC;;;IAEjB,MAAMC,OAAO,GAAU,EAAE;IACzB,MAAMC,oBAAoB,GAAa,EAAE;IACzC,MAAMC,mBAAmB,GAAsB,EAAE;IACjD,MAAMC,uBAAuB,GAAoB,EAAE;IACnD,MAAMC,cAAc,GAAiB,EAAE;IACvC,MAAMC,OAAO,GAA+C,EAAE;IAE7DV,cAAK,CAACW,QAAQ,CAACC,OAAO,CAAClB,QAAQ,CAAoD,CAC/EmB,MAAM,CAAEC,KAAU,IAAK,CAAC,CAACA,KAAK,CAAC,CAC/BC,OAAO,CAACD,KAAK;MACV,kBAAId,cAAK,CAACgB,cAAc,CAACF,KAAK,CAAC,EAAE;QAAA;QAC7B,IAAIA,KAAK,CAACG,KAAK,CAACC,aAAa,IAAIvB,OAAO,CAACwB,mBAAmB,EAAE;UAC1Db,oBAAoB,CAACc,IAAI,CAACN,KAAK,CAACG,KAAK,CAACI,QAAQ,CAAC;;QAGnD,IAAIP,KAAK,CAACG,KAAK,CAACK,YAAY,EAAE;UAC1Bf,mBAAmB,CAACO,KAAK,CAACG,KAAK,CAACI,QAAQ,CAAC,GAAGP,KAAK,CAACG,KAAK,CAACK,YAAY;;QAGxE,IAAIR,KAAK,CAACG,KAAK,CAACM,aAAa,IAAI5B,OAAO,CAAC6B,kBAAkB,EAAE;UACzDhB,uBAAuB,CAACM,KAAK,CAACG,KAAK,CAACI,QAAQ,CAAC,GAAG,KAAK;;QAGzD,IAAIP,KAAK,CAACG,KAAK,CAACQ,IAAI,KAAKC,SAAS,EAAE;UAChCjB,cAAc,CAACW,IAAI,CAAC;YAChBO,EAAE,EAAEb,KAAK,CAACG,KAAK,CAACI,QAAQ;YACxBO,IAAI,EAAEd,KAAK,CAACG,KAAK,CAACQ,IAAI,KAAK;WAC9B,CAAC;;QAGN,IAAIX,KAAK,CAACG,KAAK,CAACY,MAAM,EAAE;UACpBnB,OAAO,CAACI,KAAK,CAACG,KAAK,CAACI,QAAQ,CAAC,GAAGP,KAAK,CAACG,KAAK,CAACY,MAAM;;QAGtDxB,OAAO,CAACe,IAAI,CAAC;UACTU,WAAW,EAAEhB,KAAK,CAACG,KAAK,CAACI,QAAQ;UACjCM,EAAE,EAAEb,KAAK,CAACG,KAAK,CAACI,QAAQ;UACxBU,IAAI,EAAEd,KAAK;;YACP,IAAIe,KAAK,GAAGf,KAAK,CAACgB,QAAQ,EAAE;YAE5B,IAAI,OAAOnB,KAAK,CAACG,KAAK,CAACiB,QAAQ,KAAK,UAAU,EAAE;cAC5CF,KAAK,GAAGlB,KAAK,CAACG,KAAK,CAACiB,QAAQ,CAACF,KAAK,EAAEf,KAAK,CAACkB,GAAG,CAACC,QAAQ,CAAC;;YAG3D,IAAI,OAAOJ,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;cACxD,oBAAOhC;gBAAMqC,SAAS,EAAC;iBAAYL,KAAK,CAAQ;;YAGpD,iBAAOA,KAAK,2CAAI,IAAI;WACvB;UACDM,MAAM,EAAExB,KAAK,CAACG,KAAK,CAACqB,MAAM;UAC1BC,IAAI,EAAE;YACFC,KAAK,EAAE1B,KAAK,CAACG,KAAK,CAACuB,KAAK;YACxBH,SAAS,EAAEvB,KAAK,CAACG,KAAK,CAACoB,SAAS;YAChCI,OAAO,EAAE3B,KAAK,CAACG,KAAK,CAACwB,OAAO;YAC5BC,QAAQ,EAAE5B,KAAK,CAACG,KAAK,CAACyB,QAAQ;YAC9BpB,YAAY,EAAER,KAAK,CAACG,KAAK,CAACK,YAAY;YACtCqB,iBAAiB,EAAE7B,KAAK,CAACG,KAAK,CAAC0B,iBAAiB;YAChDC,IAAI,EAAE9B,KAAK,CAACG,KAAK,CAAC2B,IAAI;YACtBC,OAAO,EAAE/B,KAAK,CAACG,KAAK,CAAC4B;WACxB;UACDC,YAAY,EAAE,CAAChC,KAAK,CAACG,KAAK,CAAC8B,aAAa;;UAExCC,kBAAkB,EAAE,CAAClC,KAAK,CAACG,KAAK,CAACgC,gBAAgB;UACjDC,QAAQ,EACJvD,OAAO,CAACwD,qBAAqB,IAAI,CAACrC,KAAK,CAACG,KAAK,CAACgC,gBAAgB,GAAI,YAAoB,GAAGvB,SAAS;;UAEtG0B,cAAc,EAAE,CAACtC,KAAK,CAACG,KAAK,CAACoC,eAAe;UAC5CC,OAAO,2BAAExC,KAAK,CAACG,KAAK,CAACsC,QAAQ,yEAAIC,eAAe;UAChDC,IAAI,EAAE3C,KAAK,CAACG,KAAK,CAACK,YAAY;;UAE9BoC,aAAa,EAAE,CAAC5C,KAAK,CAACG,KAAK,CAAC0C,cAAc;UAC1CC,SAAS,EAAEC,YAAY,CAAC/C,KAAK,CAACG,KAAK,CAACyB,QAAQ;SAC/C,CAAC;;KAET,CAAC;IAEN,IAAI/C,OAAO,CAACmE,kBAAkB,IAAInE,OAAO,CAACoE,mBAAmB,EAAE;MAC3D1D,OAAO,CAAC2D,OAAO,CAAC9D,YAAY,CAAC+D,OAAO,CAACC,wBAAwB,CAACvE,OAAO,CAACoE,mBAAmB,EAAElE,KAAK,CAAC,CAAC,CAAC;MACnGS,oBAAoB,CAAC0D,OAAO,CAACG,uBAAuB,CAAC;;IAGzD,IAAIxE,OAAO,CAACyE,kBAAkB,EAAE;MAC5B/D,OAAO,CAAC2D,OAAO,CACX9D,YAAY,CAAC+D,OAAO,CAChBI,wBAAwB,CACpB1E,OAAO,CAAC2E,0BAA0B,EAClCvE,oBAAoB,EACpBJ,OAAO,CAAC4E,SAAS,EACjB3E,QAAQ,EACRC,KAAK,CACR,CACJ,CACJ;MACDS,oBAAoB,CAAC0D,OAAO,CAACQ,uBAAuB,CAAC;;IAGzD,IAAI7E,OAAO,CAAC4E,SAAS,EAAE;MACnBlE,OAAO,CAAC2D,OAAO,CAAC9D,YAAY,CAAC+D,OAAO,CAACQ,wBAAwB,CAAC9E,OAAO,CAAC4E,SAAS,EAAE1E,KAAK,CAAC,CAAC,CAAC;MACzFS,oBAAoB,CAAC0D,OAAO,CAACU,uBAAuB,CAAC;;IAGzD,6BAAI/E,OAAO,CAACgF,aAAa,kDAArB,sBAAuBC,MAAM,EAAE;MAC/BvE,OAAO,CAACe,IAAI,CAAClB,YAAY,CAAC+D,OAAO,CAACY,sBAAsB,CAAClF,OAAO,CAACgF,aAAa,EAAE9E,KAAK,CAAC,CAAC,CAAC;;IAG5F,OAAO;MAAEQ,OAAO;MAAEC,oBAAoB;MAAEC,mBAAmB;MAAEC,uBAAuB;MAAEC,cAAc;MAAEC;KAAS;GAClH,EAAE,CAAChB,QAAQ,CAAC,CAAC;AAClB;AAEA,MAAMmE,YAAY,GAAInB,QAAyB;EAC3C,IAAIA,QAAQ,IAAIA,QAAQ,KAAK,SAAS,EAAE;IACpC,OAAOA,QAAQ;;EAGnB,OAAO,MAAM;AACjB,CAAC;;;;"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import React__default from 'react';
|
2
|
+
import { useIsHoverStatePaused } from '../../../hooks/useIsHoverStatePaused.js';
|
2
3
|
import { getSortedRowModel, getFilteredRowModel, useReactTable, getCoreRowModel } from '@tanstack/react-table';
|
3
4
|
import { columnFilterFn, globalFilterFn } from '../utilities/filterFn.js';
|
4
5
|
import { useEditMode } from './useEditMode.js';
|
@@ -8,7 +9,6 @@ import { useRowSelectionListener } from './listeners/useRowSelectionListener.js'
|
|
8
9
|
import { useSettingsStateListener } from './listeners/useSettingsStateListener.js';
|
9
10
|
import { useActiveRow } from './useActiveRow.js';
|
10
11
|
import { useActiveRowStateListener } from './listeners/useActiveRowStateListener.js';
|
11
|
-
import { useShouldPauseHoverState } from './useShouldPauseHoverState.js';
|
12
12
|
|
13
13
|
function useTable(children, props, ref) {
|
14
14
|
var _settings$columnOrder, _ref, _settings$columnPinni, _settings$columnPinni2, _settings$columnSizin, _settings$columnVisib, _settings$rowDensity;
|
@@ -77,7 +77,7 @@ function useTable(children, props, ref) {
|
|
77
77
|
const dataColumnEndOffset = actionsForRow.length ? 1 : 0;
|
78
78
|
// custom
|
79
79
|
const activeRow = useActiveRow(defaultActiveRowIndex);
|
80
|
-
const [shouldPauseHoverState, setShouldPauseHoverState] =
|
80
|
+
const [shouldPauseHoverState, setShouldPauseHoverState] = useIsHoverStatePaused();
|
81
81
|
const editMode = useEditMode(onSave);
|
82
82
|
const [columnOffsets, setColumnOffsets] = React__default.useState({});
|
83
83
|
const [rowDensity, setRowDensity] = React__default.useState((_settings$rowDensity = settings === null || settings === void 0 ? void 0 : settings.rowDensity) !== null && _settings$rowDensity !== void 0 ? _settings$rowDensity : 'normal');
|