@muraldevkit/ui-toolkit 4.71.0 → 4.72.0

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 (73) hide show
  1. package/dist/cjs/components/button/MrlButton/MrlButton.js +8 -1
  2. package/dist/cjs/components/button/MrlButton/MrlButton.js.map +1 -1
  3. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js +1 -4
  4. package/dist/cjs/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  5. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js +0 -1
  6. package/dist/cjs/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  7. package/dist/cjs/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
  8. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js +1 -4
  9. package/dist/cjs/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  10. package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +1 -3
  11. package/dist/cjs/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
  12. package/dist/cjs/components/tooltip/constants.js.map +1 -1
  13. package/dist/cjs/contexts/MrlAnalyticsContext/MrlAnalyticsContext.js +61 -0
  14. package/dist/cjs/contexts/MrlAnalyticsContext/MrlAnalyticsContext.js.map +1 -0
  15. package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js +68 -0
  16. package/dist/cjs/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -0
  17. package/dist/cjs/index.js +6 -0
  18. package/dist/cjs/index.js.map +1 -1
  19. package/dist/cjs/version.js +6 -0
  20. package/dist/cjs/version.js.map +1 -0
  21. package/dist/components/button/MrlButton/MrlButton.d.ts +5 -0
  22. package/dist/components/button/MrlIconButton/MrlIconButton.d.ts +1 -3
  23. package/dist/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +0 -1
  24. package/dist/components/tooltip/MrlTooltip/MrlTooltip.d.ts +1 -3
  25. package/dist/components/tooltip/MrlTooltipContent/MrlTooltipContent.d.ts +1 -3
  26. package/dist/components/tooltip/constants.d.ts +0 -1
  27. package/dist/contexts/MrlAnalyticsContext/MrlAnalyticsContext.d.ts +25 -0
  28. package/dist/contexts/MrlAnalyticsContext/index.d.ts +2 -0
  29. package/dist/contexts/MrlAnalyticsContext/types.d.ts +22 -0
  30. package/dist/contexts/index.d.ts +1 -0
  31. package/dist/esm/components/button/MrlButton/MrlButton.js +8 -1
  32. package/dist/esm/components/button/MrlButton/MrlButton.js.map +1 -1
  33. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js +1 -4
  34. package/dist/esm/components/button/MrlIconButton/MrlIconButton.js.map +1 -1
  35. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js +0 -1
  36. package/dist/esm/components/table/MrlSmartTable/MrlSmartTable.js.map +1 -1
  37. package/dist/esm/components/toolbar/MrlToolbarButton/MrlToolbarButton.js.map +1 -1
  38. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js +1 -4
  39. package/dist/esm/components/tooltip/MrlTooltip/MrlTooltip.js.map +1 -1
  40. package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js +1 -3
  41. package/dist/esm/components/tooltip/MrlTooltipContent/MrlTooltipContent.js.map +1 -1
  42. package/dist/esm/components/tooltip/constants.js.map +1 -1
  43. package/dist/esm/contexts/MrlAnalyticsContext/MrlAnalyticsContext.js +39 -0
  44. package/dist/esm/contexts/MrlAnalyticsContext/MrlAnalyticsContext.js.map +1 -0
  45. package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js +45 -0
  46. package/dist/esm/hooks/useMrlAnalytics/useMrlAnalytics.js.map +1 -0
  47. package/dist/esm/index.js +2 -0
  48. package/dist/esm/index.js.map +1 -1
  49. package/dist/esm/version.js +4 -0
  50. package/dist/esm/version.js.map +1 -0
  51. package/dist/hooks/index.d.ts +1 -0
  52. package/dist/hooks/useMrlAnalytics/index.d.ts +1 -0
  53. package/dist/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +21 -0
  54. package/dist/hooks/useMrlAnalytics/useMrlAnalyticsDemo.d.ts +8 -0
  55. package/dist/styles/MrlTooltipContent/variables.scss +0 -4
  56. package/dist/styles.css +1 -1
  57. package/dist/types/components/button/MrlButton/MrlButton.d.ts +5 -0
  58. package/dist/types/components/button/MrlIconButton/MrlIconButton.d.ts +1 -3
  59. package/dist/types/components/toolbar/MrlToolbarButton/MrlToolbarButton.d.ts +0 -1
  60. package/dist/types/components/tooltip/MrlTooltip/MrlTooltip.d.ts +1 -3
  61. package/dist/types/components/tooltip/MrlTooltipContent/MrlTooltipContent.d.ts +1 -3
  62. package/dist/types/components/tooltip/constants.d.ts +0 -1
  63. package/dist/types/contexts/MrlAnalyticsContext/MrlAnalyticsContext.d.ts +25 -0
  64. package/dist/types/contexts/MrlAnalyticsContext/index.d.ts +2 -0
  65. package/dist/types/contexts/MrlAnalyticsContext/types.d.ts +22 -0
  66. package/dist/types/contexts/index.d.ts +1 -0
  67. package/dist/types/hooks/index.d.ts +1 -0
  68. package/dist/types/hooks/useMrlAnalytics/index.d.ts +1 -0
  69. package/dist/types/hooks/useMrlAnalytics/useMrlAnalytics.d.ts +21 -0
  70. package/dist/types/hooks/useMrlAnalytics/useMrlAnalyticsDemo.d.ts +8 -0
  71. package/dist/types/version.d.ts +1 -0
  72. package/dist/version.d.ts +1 -0
  73. package/package.json +2 -1
@@ -9,7 +9,7 @@ import { setAttributes, getUniqueId } from '../../../utils/setAttributes/setAttr
9
9
  import { MrlTooltip } from '../../tooltip/MrlTooltip/MrlTooltip.js';
10
10
  import { MrlSpinner } from '../../loader/MrlSpinner/MrlSpinner.js';
11
11
 
12
- var _excluded = ["aria-label", "attrs", "badge", "className", "disableEvents", "disableTooltipHover", "icon", "kind", "loading", "loadingText", "onClick", "onKeyUp", "onMouseUp", "position", "toggleAria", "toggleStyle", "text", "tipAnchor", "tooltipKind", "size", "state", "wrapperClassName", "controlledState"];
12
+ var _excluded = ["aria-label", "attrs", "badge", "className", "disableEvents", "disableTooltipHover", "icon", "kind", "loading", "loadingText", "onClick", "onKeyUp", "onMouseUp", "position", "toggleAria", "toggleStyle", "text", "tipAnchor", "size", "state", "wrapperClassName", "controlledState"];
13
13
  var MrlIconButton = /*#__PURE__*/React.forwardRef(function MrlIconButton(_ref, ref) {
14
14
  var ariaLabel = _ref['aria-label'],
15
15
  _ref$attrs = _ref.attrs,
@@ -38,8 +38,6 @@ var MrlIconButton = /*#__PURE__*/React.forwardRef(function MrlIconButton(_ref, r
38
38
  text = _ref.text,
39
39
  _ref$tipAnchor = _ref.tipAnchor,
40
40
  tipAnchor = _ref$tipAnchor === void 0 ? MrlTooltipDefaults.anchor : _ref$tipAnchor,
41
- _ref$tooltipKind = _ref.tooltipKind,
42
- tooltipKind = _ref$tooltipKind === void 0 ? 'default' : _ref$tooltipKind,
43
41
  _ref$size = _ref.size,
44
42
  size = _ref$size === void 0 ? buttonDefaults.size : _ref$size,
45
43
  _ref$state = _ref.state,
@@ -133,7 +131,6 @@ var MrlIconButton = /*#__PURE__*/React.forwardRef(function MrlIconButton(_ref, r
133
131
  return /*#__PURE__*/React.createElement(MrlTooltip, {
134
132
  anchor: tipAnchor,
135
133
  dataQa: tooltipQa,
136
- kind: tooltipKind,
137
134
  position: position,
138
135
  text: text,
139
136
  tooltipClass: classnames('mrlIconButton-wrapper', wrapperClassName),
@@ -1 +1 @@
1
- {"version":3,"file":"MrlIconButton.js","sources":["../../../../../src/components/button/MrlIconButton/MrlIconButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport {\n\tbuttonDefaults,\n\tMrlButtonKind,\n\tMrlButtonSize,\n\tMrlGhostIconButtonSize,\n\tToggleAria\n} from '../constants';\nimport { _isDisabled, _isSelected, _isToggleButton, _spinnerProps } from '../helpers';\nimport { AttrsObject, MrlComponentProps, setAttributes, getUniqueId } from '../../../utils';\nimport {\n\tMrlTooltipAnchor,\n\tMrlTooltipDefaults,\n\tMrlTooltipPosition,\n\tMrlTooltipVariant\n} from '../../tooltip/constants';\nimport { MrlButtonState, MrlSpinner, MrlTooltip, ToggleStyle } from '../../';\nimport { spinnerDefaults } from '../../loader/constants';\nimport './MrlIconButton.scss';\n\nexport interface MrlIconButtonProps\n\textends Omit<MrlComponentProps, 'style'>,\n\t\tReact.ComponentProps<'button'> {\n\t/**\n\t * Applies additional HTML attributes to the button element.\n\t * @deprecated\n\t */\n\tattrs?: AttrsObject;\n\t/**\n\t * Allow developers to add badge to buttons.\n\t */\n\tbadge?: React.ReactElement;\n\t/** Additional class to add to the button */\n\tclassName?: string;\n\t/**\n\t * Allows developers the ability to disable built in event listeners so they can manage user\n\t * interactions from the application.\n\t */\n\tdisableEvents?: boolean;\n\n\t/** Whether to disable the tooltip hover action that keeps it open */\n\tdisableTooltipHover?: boolean;\n\n\t/**\n\t * The icon that will be rendered.\n\t */\n\ticon: React.ReactElement;\n\t/**\n\t * Changes the visual emphasis of the button.\n\t *\n\t * Note: size=\"xsmall\" should ONLY be used with a kind of `ghost` or `ghost-inverse`.\n\t */\n\tkind?: MrlButtonKind;\n\t/**\n\t * Displays a spinner in the button to indicate some action is in progress.\n\t */\n\tloading?: boolean;\n\t/**\n\t * Text for the spinner when the button is in a loading state.\n\t */\n\tloadingText?: string;\n\n\t/**\n\t * onClick event for the button.\n\t */\n\tonClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\n\t/**\n\t * onKeyDown event for the button.\n\t */\n\tonKeyUp?: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n\n\t/**\n\t * onMouseUp event for the button.\n\t */\n\tonMouseUp?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\n\t/**\n\t * The placement of the tooltip in relation to the button.\n\t */\n\tposition?: MrlTooltipPosition;\n\t/**\n\t * Changes the size of the button so it can scale with its surrounding context.\n\t *\n\t * Note: size=\"xsmall\" should ONLY be used with a kind of `ghost` or `ghost-inverse`.\n\t */\n\tsize?: MrlButtonSize | MrlGhostIconButtonSize;\n\t/**\n\t * Changes the state of the button based on user permissions or actions.\n\t *\n\t * Note: The Basic Button does not fully support state=\"disabled\", use\n\t * the 'disabled' prop instead. Since it does not support state=\"disabled\",\n\t * it also doesn't not support state=\"selected-disabled\".\n\t */\n\tstate?: MrlButtonState;\n\t/**\n\t * The textual label describing the button's purpose/action.\n\t * Icon buttons require a text label to ensure accessibility.\n\t */\n\ttext: string;\n\t/**\n\t * The arrow position of the tooltip in relation to the button.\n\t */\n\ttipAnchor?: MrlTooltipAnchor;\n\n\t/**\n\t * Determines which aria setup to use for various toggle/selected styles.\n\t * pressed - use for an traditional “toggle button”\n\t * selected - use for tabs and custom select options\n\t * expanded - use for menus, panels, and popovers\n\t * checked - use for custom [radiobutton](https://www.w3.org/WAI/ARIA/apg/patterns/radiobutton/#wai-aria-roles-states-and-properties-16)\n\t * \t\tor [checkbox](https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/#wai-aria-roles-states-and-properties-5) inputs\n\t */\n\ttoggleAria?: ToggleAria;\n\t/**\n\t * Selected state variant when the button is a Toggle Button. The visual styles\n\t * are also impacted by the \"kind\" prop. Toggle buttons are only supported\n\t * when \"kind\" is set to either \"ghost\" or \"ghost-inverse\". Setting this prop\n\t * informs the component that this is a toggle button and to add that functionality\n\t */\n\ttoggleStyle?: ToggleStyle;\n\n\t/** tooltip varient kind */\n\ttooltipKind?: MrlTooltipVariant;\n\n\t/**\n\t * An optional class name to add to the tooltip wrapper.\n\t */\n\twrapperClassName?: string;\n\n\t/**\n\t * Controlled state that overrides the internal state management.\n\t * When provided, this takes precedence over the `state` prop and allows\n\t * the parent component to fully control the icon button's state.\n\t */\n\tcontrolledState?: MrlButtonState;\n}\n\nexport const MrlIconButton = React.forwardRef<HTMLButtonElement, MrlIconButtonProps>(\n\tfunction MrlIconButton(\n\t\t{\n\t\t\t['aria-label']: ariaLabel,\n\t\t\tattrs = {},\n\t\t\tbadge,\n\t\t\tclassName,\n\t\t\tdisableEvents = false,\n\t\t\tdisableTooltipHover = false,\n\t\t\ticon,\n\t\t\t// We intentionally deviate from the basic button for icon-buttons since the vast\n\t\t\t// majority of icon buttons are ghost buttons. The proptype remains\n\t\t\t// consistent with the basic button however to keep our code DRY.\n\t\t\tkind = 'ghost',\n\t\t\tloading = false,\n\t\t\tloadingText = spinnerDefaults.text,\n\t\t\tonClick,\n\t\t\tonKeyUp,\n\t\t\tonMouseUp,\n\t\t\tposition = MrlTooltipDefaults.position,\n\t\t\ttoggleAria = buttonDefaults.toggleAria,\n\t\t\ttoggleStyle,\n\t\t\ttext,\n\t\t\ttipAnchor = MrlTooltipDefaults.anchor,\n\t\t\ttooltipKind = 'default',\n\t\t\tsize = buttonDefaults.size,\n\t\t\tstate = buttonDefaults.state,\n\t\t\twrapperClassName,\n\t\t\tcontrolledState,\n\t\t\t...remainingProps\n\t\t}: MrlIconButtonProps,\n\t\tref\n\t) {\n\t\t/**\n\t\t * Determine the effective button state.\n\t\t * Uses controlledState if provided (controlled mode),\n\t\t * otherwise falls back to the state prop (uncontrolled mode).\n\t\t * This allows the component to work in both controlled and uncontrolled scenarios.\n\t\t */\n\t\tconst effectiveButtonState = controlledState ?? state;\n\n\t\tconst [isSelected, setIsSelected] = React.useState(() => _isSelected(effectiveButtonState));\n\n\t\tconst buttonRef = React.useRef<HTMLButtonElement>(null);\n\t\tReact.useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n\t\t\tref,\n\t\t\t() => buttonRef.current\n\t\t);\n\n\t\t/**\n\t\t * MrlIconButton could behave as a toggle button if toggleStyle is 'default' or 'secondary'\n\t\t */\n\t\tconst isToggleButton = toggleStyle && _isToggleButton(toggleStyle);\n\n\t\t/**\n\t\t * We need to watch the value of state to keep in sync\n\t\t * the value of state passed as props and the internal\n\t\t * isSelected piece of state.\n\t\t */\n\t\tReact.useEffect(() => {\n\t\t\t// allows consumers to set the 'selected' or 'selected-disabled' state from a parent component.\n\t\t\tsetIsSelected(_isSelected(effectiveButtonState));\n\t\t}, [effectiveButtonState]);\n\n\t\t/**\n\t\t * Handle onClick events\n\t\t * @param {React.MouseEvent<HTMLButtonElement>} e - mouse event\n\t\t */\n\t\tfunction handleOnClick(e: React.MouseEvent<HTMLButtonElement>) {\n\t\t\te.stopPropagation();\n\n\t\t\tif (_isDisabled(effectiveButtonState, loading) || disableEvents) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isToggleButton && !controlledState) {\n\t\t\t\tsetIsSelected((prevIsSelected) => !prevIsSelected);\n\t\t\t}\n\n\t\t\tif (onClick && typeof onClick === 'function') {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t}\n\n\t\tconst classNames = classnames(\n\t\t\t'mrlIconButton',\n\t\t\t`mrlIconButton--${size}`,\n\t\t\t`mrlIconButton--${kind}`,\n\t\t\tisToggleButton && toggleStyle && `toggleStyle--${toggleStyle}`,\n\t\t\tattrs.class || attrs.className,\n\t\t\tclassName\n\t\t);\n\n\t\tdelete attrs.class;\n\t\tdelete attrs.className;\n\n\t\tconst getAriaLabel = (): string => {\n\t\t\t// Set loading text if loading\n\t\t\tif (loading) return `${loadingText} ${text}`;\n\n\t\t\t// Only set aria-label if we have actual content\n\t\t\tconst hasAriaLabel = ariaLabel && ariaLabel.trim() !== '';\n\n\t\t\t// If we have a custom ariaLabel, override the default text\n\t\t\tif (hasAriaLabel) return ariaLabel;\n\n\t\t\t// Fallback to icon button text\n\t\t\treturn text;\n\t\t};\n\n\t\tconst ariaLabelValue = getAriaLabel();\n\n\t\tconst attributes = setAttributes(attrs, {\n\t\t\t'aria-disabled': _isDisabled(effectiveButtonState, loading),\n\t\t\t'aria-label': ariaLabelValue,\n\t\t\t...(isToggleButton && { [`aria-${toggleAria}`]: isSelected || false }),\n\t\t\ttype: 'button'\n\t\t});\n\n\t\t// MrlSvg should always have size=\"auto\"\n\t\tconst iconWithSizeAuto = React.useMemo(\n\t\t\t() =>\n\t\t\t\tReact.cloneElement(icon, {\n\t\t\t\t\tsize: 'auto'\n\t\t\t\t}),\n\t\t\t[icon]\n\t\t);\n\n\t\tconst spinnerProps = _spinnerProps(kind, size);\n\t\tconst spinner = <MrlSpinner kind={spinnerProps.kind} size={spinnerProps.size} />;\n\n\t\tconst dataQaProp = (remainingProps as { 'data-qa'?: string })['data-qa'];\n\t\tconst tooltipQa = dataQaProp ? `${dataQaProp}-tooltip` : getUniqueId('tooltip');\n\t\tconst tooltipContentClass =\n\t\t\tsize === 'xsmall' || size === 'small' ? `mrlIconButton--${size}-wrapper` : undefined;\n\n\t\treturn (\n\t\t\t<MrlTooltip\n\t\t\t\tanchor={tipAnchor}\n\t\t\t\tdataQa={tooltipQa}\n\t\t\t\tkind={tooltipKind}\n\t\t\t\tposition={position}\n\t\t\t\ttext={text}\n\t\t\t\ttooltipClass={classnames('mrlIconButton-wrapper', wrapperClassName)}\n\t\t\t\ttooltipContentClass={tooltipContentClass}\n\t\t\t\tdisableTooltipHover={disableTooltipHover}\n\t\t\t\tsrAnnouncement={false}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\t{...attributes}\n\t\t\t\t\t{...remainingProps}\n\t\t\t\t\tclassName={classNames}\n\t\t\t\t\tref={buttonRef}\n\t\t\t\t\tonClick={handleOnClick}\n\t\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\t\tonMouseUp={onMouseUp}\n\t\t\t\t>\n\t\t\t\t\t{loading ? spinner : iconWithSizeAuto}\n\t\t\t\t\t{badge}\n\t\t\t\t</button>\n\t\t\t</MrlTooltip>\n\t\t);\n\t}\n);\n"],"names":["MrlIconButton","React","forwardRef","_ref","ref","ariaLabel","_ref$attrs","attrs","badge","className","_ref$disableEvents","disableEvents","_ref$disableTooltipHo","disableTooltipHover","icon","_ref$kind","kind","_ref$loading","loading","_ref$loadingText","loadingText","spinnerDefaults","text","onClick","onKeyUp","onMouseUp","_ref$position","position","MrlTooltipDefaults","_ref$toggleAria","toggleAria","buttonDefaults","toggleStyle","_ref$tipAnchor","tipAnchor","anchor","_ref$tooltipKind","tooltipKind","_ref$size","size","_ref$state","state","wrapperClassName","controlledState","remainingProps","_objectWithoutProperties","_excluded","effectiveButtonState","_React$useState","useState","_isSelected","_React$useState2","_slicedToArray","isSelected","setIsSelected","buttonRef","useRef","useImperativeHandle","current","isToggleButton","_isToggleButton","useEffect","handleOnClick","e","stopPropagation","_isDisabled","prevIsSelected","classNames","classnames","concat","class","getAriaLabel","hasAriaLabel","trim","ariaLabelValue","attributes","setAttributes","_objectSpread","type","iconWithSizeAuto","useMemo","cloneElement","spinnerProps","_spinnerProps","spinner","createElement","MrlSpinner","dataQaProp","tooltipQa","getUniqueId","tooltipContentClass","undefined","MrlTooltip","dataQa","tooltipClass","srAnnouncement","_extends"],"mappings":"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"}
1
+ {"version":3,"file":"MrlIconButton.js","sources":["../../../../../src/components/button/MrlIconButton/MrlIconButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport {\n\tbuttonDefaults,\n\tMrlButtonKind,\n\tMrlButtonSize,\n\tMrlGhostIconButtonSize,\n\tToggleAria\n} from '../constants';\nimport { _isDisabled, _isSelected, _isToggleButton, _spinnerProps } from '../helpers';\nimport { AttrsObject, MrlComponentProps, setAttributes, getUniqueId } from '../../../utils';\nimport { MrlTooltipAnchor, MrlTooltipDefaults, MrlTooltipPosition } from '../../tooltip/constants';\nimport { MrlButtonState, MrlSpinner, MrlTooltip, ToggleStyle } from '../../';\nimport { spinnerDefaults } from '../../loader/constants';\nimport './MrlIconButton.scss';\n\nexport interface MrlIconButtonProps\n\textends Omit<MrlComponentProps, 'style'>,\n\t\tReact.ComponentProps<'button'> {\n\t/**\n\t * Applies additional HTML attributes to the button element.\n\t * @deprecated\n\t */\n\tattrs?: AttrsObject;\n\t/**\n\t * Allow developers to add badge to buttons.\n\t */\n\tbadge?: React.ReactElement;\n\t/** Additional class to add to the button */\n\tclassName?: string;\n\t/**\n\t * Allows developers the ability to disable built in event listeners so they can manage user\n\t * interactions from the application.\n\t */\n\tdisableEvents?: boolean;\n\n\t/** Whether to disable the tooltip hover action that keeps it open */\n\tdisableTooltipHover?: boolean;\n\n\t/**\n\t * The icon that will be rendered.\n\t */\n\ticon: React.ReactElement;\n\t/**\n\t * Changes the visual emphasis of the button.\n\t *\n\t * Note: size=\"xsmall\" should ONLY be used with a kind of `ghost` or `ghost-inverse`.\n\t */\n\tkind?: MrlButtonKind;\n\t/**\n\t * Displays a spinner in the button to indicate some action is in progress.\n\t */\n\tloading?: boolean;\n\t/**\n\t * Text for the spinner when the button is in a loading state.\n\t */\n\tloadingText?: string;\n\n\t/**\n\t * onClick event for the button.\n\t */\n\tonClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\n\t/**\n\t * onKeyDown event for the button.\n\t */\n\tonKeyUp?: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n\n\t/**\n\t * onMouseUp event for the button.\n\t */\n\tonMouseUp?: (e: React.MouseEvent<HTMLButtonElement>) => void;\n\n\t/**\n\t * The placement of the tooltip in relation to the button.\n\t */\n\tposition?: MrlTooltipPosition;\n\t/**\n\t * Changes the size of the button so it can scale with its surrounding context.\n\t *\n\t * Note: size=\"xsmall\" should ONLY be used with a kind of `ghost` or `ghost-inverse`.\n\t */\n\tsize?: MrlButtonSize | MrlGhostIconButtonSize;\n\t/**\n\t * Changes the state of the button based on user permissions or actions.\n\t *\n\t * Note: The Basic Button does not fully support state=\"disabled\", use\n\t * the 'disabled' prop instead. Since it does not support state=\"disabled\",\n\t * it also doesn't not support state=\"selected-disabled\".\n\t */\n\tstate?: MrlButtonState;\n\t/**\n\t * The textual label describing the button's purpose/action.\n\t * Icon buttons require a text label to ensure accessibility.\n\t */\n\ttext: string;\n\t/**\n\t * The arrow position of the tooltip in relation to the button.\n\t */\n\ttipAnchor?: MrlTooltipAnchor;\n\n\t/**\n\t * Determines which aria setup to use for various toggle/selected styles.\n\t * pressed - use for an traditional “toggle button”\n\t * selected - use for tabs and custom select options\n\t * expanded - use for menus, panels, and popovers\n\t * checked - use for custom [radiobutton](https://www.w3.org/WAI/ARIA/apg/patterns/radiobutton/#wai-aria-roles-states-and-properties-16)\n\t * \t\tor [checkbox](https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/#wai-aria-roles-states-and-properties-5) inputs\n\t */\n\ttoggleAria?: ToggleAria;\n\t/**\n\t * Selected state variant when the button is a Toggle Button. The visual styles\n\t * are also impacted by the \"kind\" prop. Toggle buttons are only supported\n\t * when \"kind\" is set to either \"ghost\" or \"ghost-inverse\". Setting this prop\n\t * informs the component that this is a toggle button and to add that functionality\n\t */\n\ttoggleStyle?: ToggleStyle;\n\n\t/**\n\t * An optional class name to add to the tooltip wrapper.\n\t */\n\twrapperClassName?: string;\n\n\t/**\n\t * Controlled state that overrides the internal state management.\n\t * When provided, this takes precedence over the `state` prop and allows\n\t * the parent component to fully control the icon button's state.\n\t */\n\tcontrolledState?: MrlButtonState;\n}\n\nexport const MrlIconButton = React.forwardRef<HTMLButtonElement, MrlIconButtonProps>(\n\tfunction MrlIconButton(\n\t\t{\n\t\t\t['aria-label']: ariaLabel,\n\t\t\tattrs = {},\n\t\t\tbadge,\n\t\t\tclassName,\n\t\t\tdisableEvents = false,\n\t\t\tdisableTooltipHover = false,\n\t\t\ticon,\n\t\t\t// We intentionally deviate from the basic button for icon-buttons since the vast\n\t\t\t// majority of icon buttons are ghost buttons. The proptype remains\n\t\t\t// consistent with the basic button however to keep our code DRY.\n\t\t\tkind = 'ghost',\n\t\t\tloading = false,\n\t\t\tloadingText = spinnerDefaults.text,\n\t\t\tonClick,\n\t\t\tonKeyUp,\n\t\t\tonMouseUp,\n\t\t\tposition = MrlTooltipDefaults.position,\n\t\t\ttoggleAria = buttonDefaults.toggleAria,\n\t\t\ttoggleStyle,\n\t\t\ttext,\n\t\t\ttipAnchor = MrlTooltipDefaults.anchor,\n\t\t\tsize = buttonDefaults.size,\n\t\t\tstate = buttonDefaults.state,\n\t\t\twrapperClassName,\n\t\t\tcontrolledState,\n\t\t\t...remainingProps\n\t\t}: MrlIconButtonProps,\n\t\tref\n\t) {\n\t\t/**\n\t\t * Determine the effective button state.\n\t\t * Uses controlledState if provided (controlled mode),\n\t\t * otherwise falls back to the state prop (uncontrolled mode).\n\t\t * This allows the component to work in both controlled and uncontrolled scenarios.\n\t\t */\n\t\tconst effectiveButtonState = controlledState ?? state;\n\n\t\tconst [isSelected, setIsSelected] = React.useState(() => _isSelected(effectiveButtonState));\n\n\t\tconst buttonRef = React.useRef<HTMLButtonElement>(null);\n\t\tReact.useImperativeHandle<HTMLButtonElement | null, HTMLButtonElement | null>(\n\t\t\tref,\n\t\t\t() => buttonRef.current\n\t\t);\n\n\t\t/**\n\t\t * MrlIconButton could behave as a toggle button if toggleStyle is 'default' or 'secondary'\n\t\t */\n\t\tconst isToggleButton = toggleStyle && _isToggleButton(toggleStyle);\n\n\t\t/**\n\t\t * We need to watch the value of state to keep in sync\n\t\t * the value of state passed as props and the internal\n\t\t * isSelected piece of state.\n\t\t */\n\t\tReact.useEffect(() => {\n\t\t\t// allows consumers to set the 'selected' or 'selected-disabled' state from a parent component.\n\t\t\tsetIsSelected(_isSelected(effectiveButtonState));\n\t\t}, [effectiveButtonState]);\n\n\t\t/**\n\t\t * Handle onClick events\n\t\t * @param {React.MouseEvent<HTMLButtonElement>} e - mouse event\n\t\t */\n\t\tfunction handleOnClick(e: React.MouseEvent<HTMLButtonElement>) {\n\t\t\te.stopPropagation();\n\n\t\t\tif (_isDisabled(effectiveButtonState, loading) || disableEvents) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isToggleButton && !controlledState) {\n\t\t\t\tsetIsSelected((prevIsSelected) => !prevIsSelected);\n\t\t\t}\n\n\t\t\tif (onClick && typeof onClick === 'function') {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t}\n\n\t\tconst classNames = classnames(\n\t\t\t'mrlIconButton',\n\t\t\t`mrlIconButton--${size}`,\n\t\t\t`mrlIconButton--${kind}`,\n\t\t\tisToggleButton && toggleStyle && `toggleStyle--${toggleStyle}`,\n\t\t\tattrs.class || attrs.className,\n\t\t\tclassName\n\t\t);\n\n\t\tdelete attrs.class;\n\t\tdelete attrs.className;\n\n\t\tconst getAriaLabel = (): string => {\n\t\t\t// Set loading text if loading\n\t\t\tif (loading) return `${loadingText} ${text}`;\n\n\t\t\t// Only set aria-label if we have actual content\n\t\t\tconst hasAriaLabel = ariaLabel && ariaLabel.trim() !== '';\n\n\t\t\t// If we have a custom ariaLabel, override the default text\n\t\t\tif (hasAriaLabel) return ariaLabel;\n\n\t\t\t// Fallback to icon button text\n\t\t\treturn text;\n\t\t};\n\n\t\tconst ariaLabelValue = getAriaLabel();\n\n\t\tconst attributes = setAttributes(attrs, {\n\t\t\t'aria-disabled': _isDisabled(effectiveButtonState, loading),\n\t\t\t'aria-label': ariaLabelValue,\n\t\t\t...(isToggleButton && { [`aria-${toggleAria}`]: isSelected || false }),\n\t\t\ttype: 'button'\n\t\t});\n\n\t\t// MrlSvg should always have size=\"auto\"\n\t\tconst iconWithSizeAuto = React.useMemo(\n\t\t\t() =>\n\t\t\t\tReact.cloneElement(icon, {\n\t\t\t\t\tsize: 'auto'\n\t\t\t\t}),\n\t\t\t[icon]\n\t\t);\n\n\t\tconst spinnerProps = _spinnerProps(kind, size);\n\t\tconst spinner = <MrlSpinner kind={spinnerProps.kind} size={spinnerProps.size} />;\n\n\t\tconst dataQaProp = (remainingProps as { 'data-qa'?: string })['data-qa'];\n\t\tconst tooltipQa = dataQaProp ? `${dataQaProp}-tooltip` : getUniqueId('tooltip');\n\t\tconst tooltipContentClass =\n\t\t\tsize === 'xsmall' || size === 'small' ? `mrlIconButton--${size}-wrapper` : undefined;\n\n\t\treturn (\n\t\t\t<MrlTooltip\n\t\t\t\tanchor={tipAnchor}\n\t\t\t\tdataQa={tooltipQa}\n\t\t\t\tposition={position}\n\t\t\t\ttext={text}\n\t\t\t\ttooltipClass={classnames('mrlIconButton-wrapper', wrapperClassName)}\n\t\t\t\ttooltipContentClass={tooltipContentClass}\n\t\t\t\tdisableTooltipHover={disableTooltipHover}\n\t\t\t\tsrAnnouncement={false}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\t{...attributes}\n\t\t\t\t\t{...remainingProps}\n\t\t\t\t\tclassName={classNames}\n\t\t\t\t\tref={buttonRef}\n\t\t\t\t\tonClick={handleOnClick}\n\t\t\t\t\tonKeyUp={onKeyUp}\n\t\t\t\t\tonMouseUp={onMouseUp}\n\t\t\t\t>\n\t\t\t\t\t{loading ? spinner : iconWithSizeAuto}\n\t\t\t\t\t{badge}\n\t\t\t\t</button>\n\t\t\t</MrlTooltip>\n\t\t);\n\t}\n);\n"],"names":["MrlIconButton","React","forwardRef","_ref","ref","ariaLabel","_ref$attrs","attrs","badge","className","_ref$disableEvents","disableEvents","_ref$disableTooltipHo","disableTooltipHover","icon","_ref$kind","kind","_ref$loading","loading","_ref$loadingText","loadingText","spinnerDefaults","text","onClick","onKeyUp","onMouseUp","_ref$position","position","MrlTooltipDefaults","_ref$toggleAria","toggleAria","buttonDefaults","toggleStyle","_ref$tipAnchor","tipAnchor","anchor","_ref$size","size","_ref$state","state","wrapperClassName","controlledState","remainingProps","_objectWithoutProperties","_excluded","effectiveButtonState","_React$useState","useState","_isSelected","_React$useState2","_slicedToArray","isSelected","setIsSelected","buttonRef","useRef","useImperativeHandle","current","isToggleButton","_isToggleButton","useEffect","handleOnClick","e","stopPropagation","_isDisabled","prevIsSelected","classNames","classnames","concat","class","getAriaLabel","hasAriaLabel","trim","ariaLabelValue","attributes","setAttributes","_objectSpread","type","iconWithSizeAuto","useMemo","cloneElement","spinnerProps","_spinnerProps","spinner","createElement","MrlSpinner","dataQaProp","tooltipQa","getUniqueId","tooltipContentClass","undefined","MrlTooltip","dataQa","tooltipClass","srAnnouncement","_extends"],"mappings":"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"}
@@ -91,7 +91,6 @@ var DefaultColumnContent = _ref2 => {
91
91
  var memoizedTooltip = React.useMemo(() => /*#__PURE__*/React.createElement(MrlTooltip, {
92
92
  anchor: "center",
93
93
  dataQa: "".concat(dataQa, "-tooltip"),
94
- kind: "default",
95
94
  position: "bottom",
96
95
  text: tooltip || ''
97
96
  }, /*#__PURE__*/React.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"file":"MrlSmartTable.js","sources":["../../../../../src/components/table/MrlSmartTable/MrlSmartTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n\tMrlCheckboxStandalone,\n\tMrlLiveRegion,\n\tMrlSvg,\n\tMrlTable,\n\tMrlTableBody,\n\tMrlTableCell,\n\tMrlTableColumn,\n\tMrlTableHeader,\n\tMrlTableRow,\n\tMrlTooltip\n} from '../../';\nimport { MrlTableProps } from '../MrlTable';\nimport { MrlTableEmptyState } from '../MrlTableEmptyState';\nimport {\n\tMrlSortDirection,\n\tMrlTableCellHorizontalAlign,\n\tMrlTableColumnId,\n\tMrlTableColumnSortDescriptor,\n\tMrlTableItemId,\n\tMrlTableSelectionMode\n} from '../constants';\nimport { getUniqueId } from '../../../utils';\nimport {\n\tkeyFor,\n\tnextSortDirection,\n\tsortAlphabeticallyAsCoercedStrings,\n\tsortIcon,\n\tsortText\n} from '../utils';\nimport { info } from '@muraldevkit/ds-icons';\n\nimport styles from './MrlSmartTable.module.scss';\nimport { getScrollableContainer } from '../../../utils/getScrollableContainer/getScrollableContainer';\nimport { hasHorizontalScroll } from '../../../utils/hasHorizontalScroll/hasHorizontalScroll';\nimport { MemoizedDefaultCellContent } from './components/DefaultCellContent';\n\nconst ROW_HEIGHT_PX = 48;\n\nconst sortItems = (\n\tcolumns: MrlSmartTableColumn[],\n\titems: MrlTableItem[],\n\tsortDescriptor: MrlTableColumnSortDescriptor\n): MrlTableItem[] => {\n\tconst sortColumn = columns.find((col) => col.id === sortDescriptor.column);\n\tif (!sortColumn) {\n\t\tconsole.error(`No column found for sort descriptor key: ${sortDescriptor.column}`);\n\t\treturn items;\n\t}\n\n\tconst { sortByRowContext, sortBy } = sortColumn;\n\n\tif (sortByRowContext) {\n\t\treturn [...items].sort((a, b) => sortByRowContext(a, b) * sortDescriptor.direction);\n\t}\n\n\tconst sortComparator = sortBy || sortAlphabeticallyAsCoercedStrings;\n\n\treturn [...items].sort((a, b) => {\n\t\tconst aSortValue = a[sortColumn.id];\n\t\tconst bSortValue = b[sortColumn.id];\n\t\treturn sortComparator(aSortValue, bSortValue) * sortDescriptor.direction;\n\t});\n};\n\nfunction EmptyStateWrapper({\n\tchildren,\n\tvisibleColumnCount\n}: {\n\tchildren: React.ReactNode;\n\tvisibleColumnCount: number;\n}): JSX.Element {\n\treturn (\n\t\t<tr role=\"row\">\n\t\t\t<td role=\"gridcell\" colSpan={visibleColumnCount}>\n\t\t\t\t{children}\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n\ninterface VisuallyHiddenAccessibleButtonProps extends React.HTMLProps<HTMLButtonElement> {\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nconst VisuallyHiddenAccessibleButton = (props: VisuallyHiddenAccessibleButtonProps) => {\n\tconst { horizontalAlign, ...rest } = props;\n\n\treturn (\n\t\t<button\n\t\t\t{...rest}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(styles['MrlSmartTable--accessible-visually-hidden-button'], {\n\t\t\t\t[styles['align-right']]: horizontalAlign === 'right'\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport interface MrlSmartColumnRendererProps {\n\t/**\n\t * The column being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * A function to change current sort descriptor.\n\t */\n\thandleSortClick: ({\n\t\tcolumn,\n\t\tdirection,\n\t\tname\n\t}: {\n\t\tcolumn: MrlSmartTableColumn['id'];\n\t\tdirection: MrlSortDirection;\n\t\tname: string;\n\t}) => void;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\t/**\n\t * The current sort descriptor.\n\t */\n\tsortDescriptor?: MrlTableColumnSortDescriptor;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nexport interface MrlSmartCellRendererProps {\n\t/**\n\t * The item for the cell being rendered.\n\t */\n\titem: MrlTableItem;\n\t/**\n\t * The column for the cell being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n}\n\nconst DefaultColumnContent = ({\n\tcolumn,\n\tdataQaPrefix,\n\ttableElementId,\n\thandleSortClick,\n\tsortDescriptor,\n\thasScrollShadowLeft,\n\thasScrollShadowRight\n}: MrlSmartColumnRendererProps) => {\n\tconst { allowsSorting, horizontalAlign, id, name, sticky, tooltip } = column;\n\tconst elementId = keyFor(tableElementId, 'column', id);\n\tconst dataQa = keyFor(dataQaPrefix, 'column', id);\n\tconst columnProps = {\n\t\t'data-qa': dataQa,\n\t\thasScrollShadowLeft,\n\t\thasScrollShadowRight,\n\t\thorizontalAlign,\n\t\tid: elementId,\n\t\tscope: 'col',\n\t\tsticky\n\t};\n\n\tconst memoizedTooltip = React.useMemo(\n\t\t() => (\n\t\t\t<MrlTooltip\n\t\t\t\tanchor=\"center\"\n\t\t\t\tdataQa={`${dataQa}-tooltip`}\n\t\t\t\tkind=\"default\"\n\t\t\t\tposition=\"bottom\"\n\t\t\t\ttext={tooltip || ''}\n\t\t\t>\n\t\t\t\t{/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n\t\t\t\t<span data-qa={`${dataQa}-tooltip-trigger`} tabIndex={0}>\n\t\t\t\t\t<MrlSvg className=\"MrlTableColumn--tooltip\" svg={info} size=\"small\" />\n\t\t\t\t</span>\n\t\t\t</MrlTooltip>\n\t\t),\n\t\t[dataQa, tooltip]\n\t);\n\n\tconst tooltipContent = tooltip ? memoizedTooltip : undefined;\n\n\tif (!allowsSorting) {\n\t\treturn (\n\t\t\t<MrlTableColumn {...columnProps}>\n\t\t\t\t{name}\n\t\t\t\t{tooltipContent}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t}\n\n\tconst currentDirection = sortDescriptor?.column === id ? sortDescriptor.direction : undefined;\n\tconst nextDirection = nextSortDirection(currentDirection);\n\tconst onSortClick = () => {\n\t\thandleSortClick({ column: id, direction: nextDirection, name: name });\n\t};\n\n\treturn (\n\t\t<MrlTableColumn onClick={onSortClick} {...columnProps}>\n\t\t\t<VisuallyHiddenAccessibleButton\n\t\t\t\taria-label={`Sort ${sortText(nextDirection)} by ${name}`}\n\t\t\t\thorizontalAlign={horizontalAlign}\n\t\t\t\tonClick={onSortClick}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(styles['allowsSorting'], {\n\t\t\t\t\t\t[styles['align-right']]: horizontalAlign === 'right',\n\t\t\t\t\t\t[styles['noSortSelected']]: horizontalAlign === 'right' && !currentDirection\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{name}\n\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t{currentDirection ? (\n\t\t\t\t\t\t<MrlSvg\n\t\t\t\t\t\t\tclassName=\"MrlTableColumn--sort-indicator\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tsvg={sortIcon(currentDirection)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\thorizontalAlign !== 'right' && <span className={styles['empty-icon-space']}></span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</VisuallyHiddenAccessibleButton>\n\t\t</MrlTableColumn>\n\t);\n};\n\nexport interface MrlTableItem extends Record<string, unknown> {\n\t/**\n\t * A unique identifier for the row item.\n\t */\n\tid: MrlTableItemId;\n\t/**\n\t * This makes the row item not selectable.\n\t */\n\tisSelectable?: boolean;\n\t/**\n\t * This makes the row item visually disabled.\n\t */\n\tisDisabled?: boolean;\n\t/**\n\t * A ref to the table row element\n\t * The ref is an object where the key is the item id and the value is the table row element\n\t */\n\trowRef?: React.MutableRefObject<Record<MrlTableItemId, HTMLTableRowElement>>;\n}\n\nexport type MrlTableColumnSticky = 'left' | 'right';\n\nexport interface MrlSmartTableColumn {\n\t/**\n\t * The key used to retrieve the cell value from the item object,\n\t * e.g. `item[key]`.\n\t */\n\tid: MrlTableColumnId;\n\t/**\n\t * The display name of the column.\n\t */\n\tname: string;\n\t/**\n\t * The horizontal alignment of the column content.\n\t * If not provided, the default alignment is left.\n\t */\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n\t/**\n\t * A component used to override rendering for each column cell. The\n\t * component is expected to render a MrlTableColumn.\n\t */\n\trenderColumn?: (props: MrlSmartColumnRendererProps) => JSX.Element;\n\t/**\n\t * A component used to override rendering for each row cell. The\n\t * component is expected to render a MrlTableCell.\n\t */\n\trenderCell?: (props: MrlSmartCellRendererProps) => JSX.Element;\n\t/**\n\t * Whether the column allows sorting.\n\t */\n\tallowsSorting?: boolean;\n\t/**\n\t * A sort comparator function for the column.\n\t *\n\t * @default sortAlphabeticallyAsCoercedStrings\n\t */\n\tsortBy?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * A sort comparator function for the column that receives the entire\n\t * row context. Will override the `sortBy` function (if provided).\n\t *\n\t * @param aValue\n\t * @param bValue\n\t * @returns number\n\t */\n\tsortByRowContext?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * Whether the column is sticky\n\t * the sticky effect will only work on the first or last column.\n\t * Set to 'left' for the first column and 'right' for the last column\n\t *\n\t * @example The container of the table will need overflow:scroll/auto\n\t * and the width will need to be constrained in order for\n\t * the columns to be 'sticky'\n\t */\n\tsticky?: MrlTableColumnSticky;\n\t/**\n\t * A tooltip to display on the column header.\n\t */\n\ttooltip?: string;\n}\n\n/**\n * A set of item ids.\n */\nexport type MrlTableSelection = Set<MrlTableItemId>;\n\nexport interface MrlSmartTableSelectionOptions {\n\t/**\n\t * The type of selection that is allowed in the collection.\n\t *\n\t * @default none\n\t */\n\tmode: MrlTableSelectionMode;\n\t/**\n\t * The currently selected keys in the collection (controlled).\n\t */\n\tselectedKeys: MrlTableSelection;\n\t/**\n\t * Handler that is called when the selection changes.\n\t */\n\tonSelectionChange: (keys: MrlTableSelection) => void;\n}\n\nexport interface MrlTableColumnSortOptions {\n\t/**\n\t * The column to sort by.\n\t */\n\tsortColumn: MrlSmartTableColumn;\n\t/**\n\t * The details of the sort.\n\t */\n\tsortDescriptor: MrlTableColumnSortDescriptor;\n}\n\nexport interface MrlSmartTableProps\n\textends Partial<\n\t\tPick<MrlTableProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-details'>\n\t> {\n\t/**\n\t * A list of table columns.\n\t */\n\tcolumns: MrlSmartTableColumn[];\n\t/**\n\t * A list of items to populate the table.\n\t */\n\titems: MrlTableItem[];\n\t/**\n\t * When provided, enables and controls table selection.\n\t */\n\tselectionOptions?: MrlSmartTableSelectionOptions;\n\t/**\n\t * A prefix applied to each data-qa element within the table.\n\t *\n\t * @default \"mrl-smart-table\"\n\t */\n\tdataQaPrefix?: string;\n\t/**\n\t * Text to be displayed when there are no rows in the table.\n\t * Will be ignored if `emptyState` is provided.\n\t *\n\t * @default \"There's no data available to be displayed in this table.\"\n\t */\n\temptyStateText?: string;\n\t/**\n\t * Provides content to display when there are no rows in the table.\n\t *\n\t * @default MrlTableEmptyState\n\t */\n\temptyState?: JSX.Element;\n\t/**\n\t * An element id (and if not provided, a unique value decorated\n\t * to prevent conflict with aria controls will be generated).\n\t *\n\t * @default ${id}-mrl-smart-table\n\t */\n\tid?: string;\n\t/**\n\t * A function to override the default sort items when a sort descriptor is set.\n\t */\n\tcustomSortItems?: ({ sortColumn, sortDescriptor }: MrlTableColumnSortOptions) => void;\n\t/**\n\t * Provides information on how the table should be sorted on initialization.\n\t */\n\tdefaultSortDescriptor?: MrlTableColumnSortDescriptor;\n\t/**\n\t * Enables row virtualization using @tanstack/react-virtual. The table must live\n\t * inside a container with a fixed height and vertical scroll for virtualization\n\t * to function correctly.\n\t *\n\t * @default false\n\t */\n\tenableVirtualization?: boolean;\n}\n\n/**\n * MrlSmartTable Component\n *\n * @param {MrlSmartTableProps} props - MrlSmartTable component props\n * @returns a table\n */\nexport function MrlSmartTable(props: MrlSmartTableProps): JSX.Element {\n\tconst {\n\t\tcolumns,\n\t\tdataQaPrefix = 'mrl-smart-table',\n\t\temptyStateText,\n\t\temptyState = <MrlTableEmptyState text={emptyStateText} />,\n\t\tid,\n\t\titems,\n\t\tselectionOptions,\n\t\tdefaultSortDescriptor,\n\t\tcustomSortItems,\n\t\tenableVirtualization = false,\n\t\t...ariaProps\n\t} = props;\n\tconst idRef = React.useRef<string>(id || getUniqueId('mrl-smart-table'));\n\tconst tableRef = React.useRef<HTMLTableElement>(null);\n\tconst [scrollContainer, setScrollContainer] = React.useState<HTMLElement | null>(null);\n\tconst tableElementId = idRef.current;\n\tconst [srContent, setSrContent] = React.useState<string>('');\n\tconst [scrollShadowLeft, setScrollShadowLeft] = React.useState<boolean>(false);\n\tconst [scrollShadowRight, setScrollShadowRight] = React.useState<boolean>(false);\n\n\tconst hasStickyLeftColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'left'),\n\t\t[columns]\n\t);\n\n\tconst hasStickyRightColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'right'),\n\t\t[columns]\n\t);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current) return;\n\t\tconst container = getScrollableContainer(tableRef.current);\n\t\tsetScrollContainer(container);\n\t}, []);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current || !scrollContainer) return;\n\t\tif (!hasStickyLeftColumn && !hasStickyRightColumn) return;\n\n\t\tfunction scrollHandler() {\n\t\t\tif (!tableRef.current || !scrollContainer) return;\n\t\t\tconst { hasScrollLeft, hasScrollRight } = hasHorizontalScroll(scrollContainer);\n\t\t\tsetScrollShadowLeft(hasScrollLeft);\n\t\t\tsetScrollShadowRight(hasScrollRight);\n\t\t}\n\t\tconst debouncedScrollHandler = debounce(scrollHandler, 25);\n\n\t\tconst observer = new ResizeObserver(scrollHandler);\n\t\tobserver.observe(tableRef.current);\n\n\t\tdocument.addEventListener('scroll', debouncedScrollHandler, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('scroll', debouncedScrollHandler, true);\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [hasStickyLeftColumn, hasStickyRightColumn, scrollContainer]);\n\n\tconst visibleColumnCount = columns.length + (selectionOptions ? 1 : 0);\n\tconst [sortDescriptor, setSortDescriptor] = React.useState<\n\t\tMrlTableColumnSortDescriptor | undefined\n\t>(defaultSortDescriptor);\n\n\tconst handleSortClick = (sortDescriptor: MrlTableColumnSortDescriptor) => {\n\t\tconst { direction, name, column } = sortDescriptor;\n\n\t\tif (customSortItems) {\n\t\t\tconst sortColumn = columns.find((col) => col.id === column);\n\t\t\tif (!sortColumn) {\n\t\t\t\tconsole.error(`No column found for sort descriptor key: ${column}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcustomSortItems({ sortColumn, sortDescriptor });\n\t\t}\n\t\tsetSortDescriptor(sortDescriptor);\n\n\t\tconst announcement = `Now sorting ${sortText(direction)} by ${name}`;\n\t\tsetSrContent(announcement);\n\t};\n\n\tconst memoizedItems = React.useMemo(() => {\n\t\t// sort items if sort descriptor is set and custom sort items functions is not provided\n\t\treturn !customSortItems && sortDescriptor ? sortItems(columns, items, sortDescriptor) : items;\n\t}, [columns, customSortItems, items, sortDescriptor]);\n\n\tconst rowVirtualizer = useVirtualizer({\n\t\tcount: memoizedItems.length,\n\t\tenabled: enableVirtualization,\n\t\testimateSize: () => ROW_HEIGHT_PX,\n\t\tgetItemKey: React.useCallback(\n\t\t\t(index: number) => {\n\t\t\t\treturn keyFor(tableElementId, 'row', memoizedItems[index].id);\n\t\t\t},\n\t\t\t[tableElementId, memoizedItems]\n\t\t),\n\t\tgetScrollElement: () => scrollContainer,\n\t\toverscan: 6,\n\t\tuseAnimationFrameWithResizeObserver: true\n\t});\n\n\tlet tableHeaderSelectionColumn: JSX.Element | undefined;\n\tlet rowItemSelectionCell: ((item: MrlTableItem) => JSX.Element) | undefined;\n\n\tif (selectionOptions) {\n\t\tconst { mode, onSelectionChange, selectedKeys } = selectionOptions;\n\t\tconst isAnySelected = memoizedItems.length > 0 && selectedKeys.size > 0;\n\t\tconst isAllSelected = isAnySelected && selectedKeys.size === memoizedItems.length;\n\n\t\tconst selectionColumnStickyValue = hasStickyLeftColumn ? 'left' : undefined;\n\t\tconst selectNone = () => onSelectionChange(new Set());\n\t\tconst selectAll = () =>\n\t\t\tonSelectionChange(\n\t\t\t\tnew Set(memoizedItems.filter((item) => item.isSelectable !== false).map((item) => item.id))\n\t\t\t);\n\t\tconst selectOne = (itemId: MrlTableItemId) => onSelectionChange(new Set([itemId]));\n\t\tconst selectAdd = (itemId: MrlTableItemId) =>\n\t\t\tonSelectionChange(new Set([...selectedKeys, itemId]));\n\t\tconst selectRemove = (itemId: MrlTableItemId) => {\n\t\t\tconst keys = new Set(selectedKeys);\n\t\t\tkeys.delete(itemId);\n\t\t\tonSelectionChange(keys);\n\t\t};\n\n\t\tconst onSelectAllClick = (): void => (isAnySelected ? selectNone() : selectAll());\n\t\tconst onSelectClick = (itemId: MrlTableItemId): void => {\n\t\t\tif (mode === 'multiple') {\n\t\t\t\tselectedKeys.has(itemId) ? selectRemove(itemId) : selectAdd(itemId);\n\t\t\t} else if (mode === 'single') {\n\t\t\t\tselectedKeys.has(itemId) ? selectNone() : selectOne(itemId);\n\t\t\t}\n\t\t};\n\n\t\ttableHeaderSelectionColumn = (\n\t\t\t<MrlTableColumn\n\t\t\t\tid={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection')}\n\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tscope=\"col\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t>\n\t\t\t\t{selectionOptions.mode === 'multiple' && (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': 'Select all rows',\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'column', 'selection-select-all-checkbox'),\n\t\t\t\t\t\t\tonChange: onSelectAllClick\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tselected={isAllSelected ? 'checked' : isAnySelected ? 'indeterminate' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t\trowItemSelectionCell = ({ id, isSelectable = true }: MrlTableItem) => (\n\t\t\t<MrlTableCell\n\t\t\t\tid={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row-cell', 'selection', id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t>\n\t\t\t\t{isSelectable ? (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': `Select row with id: ${id}`,\n\t\t\t\t\t\t\t'data-qa': keyFor(dataQaPrefix, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tonChange: () => onSelectClick(id)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox')}\n\t\t\t\t\t\tselected={selectionOptions.selectedKeys.has(id) ? 'checked' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t) : undefined}\n\t\t\t</MrlTableCell>\n\t\t);\n\t}\n\n\tconst tableHeaderContent = (\n\t\t<>\n\t\t\t{tableHeaderSelectionColumn}\n\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\tconst { id, renderColumn } = column;\n\t\t\t\tconst ColumnContent = renderColumn ? renderColumn : DefaultColumnContent;\n\t\t\t\treturn (\n\t\t\t\t\t<ColumnContent\n\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', id)}\n\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\thandleSortClick={handleSortClick}\n\t\t\t\t\t\tsortDescriptor={sortDescriptor}\n\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n\n\tlet tableBodyContent: React.JSX.Element | React.JSX.Element[];\n\n\tif (enableVirtualization) {\n\t\tconst virtualRows = rowVirtualizer.getVirtualItems();\n\t\tconst paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n\t\tconst paddingBottom =\n\t\t\tvirtualRows.length > 0\n\t\t\t\t? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end\n\t\t\t\t: 0;\n\n\t\ttableBodyContent = (\n\t\t\t<>\n\t\t\t\t{paddingTop > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingTop }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t\t{virtualRows.map((virtualRow) => {\n\t\t\t\t\tconst item = memoizedItems[virtualRow.index];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MrlTableRow\n\t\t\t\t\t\t\tclassName={classNames({\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\t\t\t\titemId={item.id}\n\t\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\t\t\t\tkey={virtualRow.key}\n\t\t\t\t\t\t\tstyle={{ height: virtualRow.size }}\n\t\t\t\t\t\t\tref={item.rowRef}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\t\t\t\tconst CellContent = column.renderCell\n\t\t\t\t\t\t\t\t\t? column.renderCell\n\t\t\t\t\t\t\t\t\t: MemoizedDefaultCellContent;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</MrlTableRow>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{paddingBottom > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingBottom }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t} else {\n\t\ttableBodyContent = memoizedItems.map((item) => (\n\t\t\t<MrlTableRow\n\t\t\t\tclassName={classNames({\n\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t})}\n\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\titemId={item.id}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\tref={item.rowRef}\n\t\t\t>\n\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\tconst CellContent = column.renderCell ? column.renderCell : MemoizedDefaultCellContent;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</MrlTableRow>\n\t\t));\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MrlTable data-qa={dataQaPrefix} id={tableElementId} ref={tableRef} {...ariaProps}>\n\t\t\t\t<MrlTableHeader\n\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'header')}\n\t\t\t\t\tid={keyFor(tableElementId, 'header')}\n\t\t\t\t>\n\t\t\t\t\t{tableHeaderContent}\n\t\t\t\t</MrlTableHeader>\n\t\t\t\t<MrlTableBody data-qa={keyFor(dataQaPrefix, 'body')} id={keyFor(tableElementId, 'body')}>\n\t\t\t\t\t{memoizedItems.length === 0 ? (\n\t\t\t\t\t\t<EmptyStateWrapper visibleColumnCount={visibleColumnCount}>\n\t\t\t\t\t\t\t{emptyState}\n\t\t\t\t\t\t</EmptyStateWrapper>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttableBodyContent\n\t\t\t\t\t)}\n\t\t\t\t</MrlTableBody>\n\t\t\t</MrlTable>\n\t\t\t<MrlLiveRegion\n\t\t\t\tariaLive=\"assertive\"\n\t\t\t\tvisible={false}\n\t\t\t\tsrContent={srContent}\n\t\t\t\tshouldClearContent={true}\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"names":["ROW_HEIGHT_PX","sortItems","columns","items","sortDescriptor","sortColumn","find","col","id","column","console","error","concat","sortByRowContext","sortBy","sort","a","b","direction","sortComparator","sortAlphabeticallyAsCoercedStrings","aSortValue","bSortValue","EmptyStateWrapper","_ref","children","visibleColumnCount","React","createElement","role","colSpan","VisuallyHiddenAccessibleButton","props","horizontalAlign","rest","_objectWithoutProperties","_excluded","_extends","type","className","classNames","styles","DefaultColumnContent","_ref2","dataQaPrefix","tableElementId","handleSortClick","hasScrollShadowLeft","hasScrollShadowRight","allowsSorting","name","sticky","tooltip","elementId","keyFor","dataQa","columnProps","scope","memoizedTooltip","useMemo","MrlTooltip","anchor","kind","position","text","tabIndex","MrlSvg","svg","info","size","tooltipContent","undefined","MrlTableColumn","currentDirection","nextDirection","nextSortDirection","onSortClick","onClick","sortText","sortIcon","MrlSmartTable","_props$dataQaPrefix","emptyStateText","_props$emptyState","emptyState","MrlTableEmptyState","selectionOptions","defaultSortDescriptor","customSortItems","_props$enableVirtuali","enableVirtualization","ariaProps","_excluded2","idRef","useRef","getUniqueId","tableRef","_React$useState","useState","_React$useState2","_slicedToArray","scrollContainer","setScrollContainer","current","_React$useState3","_React$useState4","srContent","setSrContent","_React$useState5","_React$useState6","scrollShadowLeft","setScrollShadowLeft","_React$useState7","_React$useState8","scrollShadowRight","setScrollShadowRight","hasStickyLeftColumn","some","hasStickyRightColumn","useLayoutEffect","container","getScrollableContainer","scrollHandler","_hasHorizontalScroll","hasHorizontalScroll","hasScrollLeft","hasScrollRight","debouncedScrollHandler","debounce","observer","ResizeObserver","observe","document","addEventListener","removeEventListener","disconnect","length","_React$useState9","_React$useState0","setSortDescriptor","announcement","memoizedItems","rowVirtualizer","useVirtualizer","count","enabled","estimateSize","getItemKey","useCallback","index","getScrollElement","overscan","useAnimationFrameWithResizeObserver","tableHeaderSelectionColumn","rowItemSelectionCell","mode","onSelectionChange","selectedKeys","isAnySelected","isAllSelected","selectionColumnStickyValue","selectNone","Set","selectAll","filter","item","isSelectable","map","selectOne","itemId","selectAdd","selectRemove","keys","delete","onSelectAllClick","onSelectClick","has","key","MrlCheckboxStandalone","attrs","onChange","selected","_ref3","_ref3$isSelectable","MrlTableCell","tableHeaderContent","Fragment","renderColumn","ColumnContent","tableBodyContent","virtualRows","getVirtualItems","paddingTop","start","paddingBottom","getTotalSize","end","style","height","virtualRow","_rowItemSelectionCell","MrlTableRow","isDisabled","ref","rowRef","CellContent","renderCell","MemoizedDefaultCellContent","_rowItemSelectionCell2","MrlTable","MrlTableHeader","MrlTableBody","MrlLiveRegion","ariaLive","visible","shouldClearContent"],"mappings":"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"}
1
+ {"version":3,"file":"MrlSmartTable.js","sources":["../../../../../src/components/table/MrlSmartTable/MrlSmartTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { useVirtualizer } from '@tanstack/react-virtual';\nimport {\n\tMrlCheckboxStandalone,\n\tMrlLiveRegion,\n\tMrlSvg,\n\tMrlTable,\n\tMrlTableBody,\n\tMrlTableCell,\n\tMrlTableColumn,\n\tMrlTableHeader,\n\tMrlTableRow,\n\tMrlTooltip\n} from '../../';\nimport { MrlTableProps } from '../MrlTable';\nimport { MrlTableEmptyState } from '../MrlTableEmptyState';\nimport {\n\tMrlSortDirection,\n\tMrlTableCellHorizontalAlign,\n\tMrlTableColumnId,\n\tMrlTableColumnSortDescriptor,\n\tMrlTableItemId,\n\tMrlTableSelectionMode\n} from '../constants';\nimport { getUniqueId } from '../../../utils';\nimport {\n\tkeyFor,\n\tnextSortDirection,\n\tsortAlphabeticallyAsCoercedStrings,\n\tsortIcon,\n\tsortText\n} from '../utils';\nimport { info } from '@muraldevkit/ds-icons';\n\nimport styles from './MrlSmartTable.module.scss';\nimport { getScrollableContainer } from '../../../utils/getScrollableContainer/getScrollableContainer';\nimport { hasHorizontalScroll } from '../../../utils/hasHorizontalScroll/hasHorizontalScroll';\nimport { MemoizedDefaultCellContent } from './components/DefaultCellContent';\n\nconst ROW_HEIGHT_PX = 48;\n\nconst sortItems = (\n\tcolumns: MrlSmartTableColumn[],\n\titems: MrlTableItem[],\n\tsortDescriptor: MrlTableColumnSortDescriptor\n): MrlTableItem[] => {\n\tconst sortColumn = columns.find((col) => col.id === sortDescriptor.column);\n\tif (!sortColumn) {\n\t\tconsole.error(`No column found for sort descriptor key: ${sortDescriptor.column}`);\n\t\treturn items;\n\t}\n\n\tconst { sortByRowContext, sortBy } = sortColumn;\n\n\tif (sortByRowContext) {\n\t\treturn [...items].sort((a, b) => sortByRowContext(a, b) * sortDescriptor.direction);\n\t}\n\n\tconst sortComparator = sortBy || sortAlphabeticallyAsCoercedStrings;\n\n\treturn [...items].sort((a, b) => {\n\t\tconst aSortValue = a[sortColumn.id];\n\t\tconst bSortValue = b[sortColumn.id];\n\t\treturn sortComparator(aSortValue, bSortValue) * sortDescriptor.direction;\n\t});\n};\n\nfunction EmptyStateWrapper({\n\tchildren,\n\tvisibleColumnCount\n}: {\n\tchildren: React.ReactNode;\n\tvisibleColumnCount: number;\n}): JSX.Element {\n\treturn (\n\t\t<tr role=\"row\">\n\t\t\t<td role=\"gridcell\" colSpan={visibleColumnCount}>\n\t\t\t\t{children}\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n\ninterface VisuallyHiddenAccessibleButtonProps extends React.HTMLProps<HTMLButtonElement> {\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nconst VisuallyHiddenAccessibleButton = (props: VisuallyHiddenAccessibleButtonProps) => {\n\tconst { horizontalAlign, ...rest } = props;\n\n\treturn (\n\t\t<button\n\t\t\t{...rest}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(styles['MrlSmartTable--accessible-visually-hidden-button'], {\n\t\t\t\t[styles['align-right']]: horizontalAlign === 'right'\n\t\t\t})}\n\t\t/>\n\t);\n};\n\nexport interface MrlSmartColumnRendererProps {\n\t/**\n\t * The column being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * A function to change current sort descriptor.\n\t */\n\thandleSortClick: ({\n\t\tcolumn,\n\t\tdirection,\n\t\tname\n\t}: {\n\t\tcolumn: MrlSmartTableColumn['id'];\n\t\tdirection: MrlSortDirection;\n\t\tname: string;\n\t}) => void;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\t/**\n\t * The current sort descriptor.\n\t */\n\tsortDescriptor?: MrlTableColumnSortDescriptor;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n}\n\nexport interface MrlSmartCellRendererProps {\n\t/**\n\t * The item for the cell being rendered.\n\t */\n\titem: MrlTableItem;\n\t/**\n\t * The column for the cell being rendered.\n\t */\n\tcolumn: MrlSmartTableColumn;\n\t/**\n\t * The element id of the table.\n\t */\n\ttableElementId: string;\n\t/**\n\t * The data-qa prefix of the table.\n\t */\n\tdataQaPrefix: string;\n\thasScrollShadowLeft: boolean;\n\thasScrollShadowRight: boolean;\n}\n\nconst DefaultColumnContent = ({\n\tcolumn,\n\tdataQaPrefix,\n\ttableElementId,\n\thandleSortClick,\n\tsortDescriptor,\n\thasScrollShadowLeft,\n\thasScrollShadowRight\n}: MrlSmartColumnRendererProps) => {\n\tconst { allowsSorting, horizontalAlign, id, name, sticky, tooltip } = column;\n\tconst elementId = keyFor(tableElementId, 'column', id);\n\tconst dataQa = keyFor(dataQaPrefix, 'column', id);\n\tconst columnProps = {\n\t\t'data-qa': dataQa,\n\t\thasScrollShadowLeft,\n\t\thasScrollShadowRight,\n\t\thorizontalAlign,\n\t\tid: elementId,\n\t\tscope: 'col',\n\t\tsticky\n\t};\n\n\tconst memoizedTooltip = React.useMemo(\n\t\t() => (\n\t\t\t<MrlTooltip\n\t\t\t\tanchor=\"center\"\n\t\t\t\tdataQa={`${dataQa}-tooltip`}\n\t\t\t\tposition=\"bottom\"\n\t\t\t\ttext={tooltip || ''}\n\t\t\t>\n\t\t\t\t{/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */}\n\t\t\t\t<span data-qa={`${dataQa}-tooltip-trigger`} tabIndex={0}>\n\t\t\t\t\t<MrlSvg className=\"MrlTableColumn--tooltip\" svg={info} size=\"small\" />\n\t\t\t\t</span>\n\t\t\t</MrlTooltip>\n\t\t),\n\t\t[dataQa, tooltip]\n\t);\n\n\tconst tooltipContent = tooltip ? memoizedTooltip : undefined;\n\n\tif (!allowsSorting) {\n\t\treturn (\n\t\t\t<MrlTableColumn {...columnProps}>\n\t\t\t\t{name}\n\t\t\t\t{tooltipContent}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t}\n\n\tconst currentDirection = sortDescriptor?.column === id ? sortDescriptor.direction : undefined;\n\tconst nextDirection = nextSortDirection(currentDirection);\n\tconst onSortClick = () => {\n\t\thandleSortClick({ column: id, direction: nextDirection, name: name });\n\t};\n\n\treturn (\n\t\t<MrlTableColumn onClick={onSortClick} {...columnProps}>\n\t\t\t<VisuallyHiddenAccessibleButton\n\t\t\t\taria-label={`Sort ${sortText(nextDirection)} by ${name}`}\n\t\t\t\thorizontalAlign={horizontalAlign}\n\t\t\t\tonClick={onSortClick}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclassName={classNames(styles['allowsSorting'], {\n\t\t\t\t\t\t[styles['align-right']]: horizontalAlign === 'right',\n\t\t\t\t\t\t[styles['noSortSelected']]: horizontalAlign === 'right' && !currentDirection\n\t\t\t\t\t})}\n\t\t\t\t>\n\t\t\t\t\t{name}\n\t\t\t\t\t{tooltipContent}\n\t\t\t\t\t{currentDirection ? (\n\t\t\t\t\t\t<MrlSvg\n\t\t\t\t\t\t\tclassName=\"MrlTableColumn--sort-indicator\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tsvg={sortIcon(currentDirection)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\thorizontalAlign !== 'right' && <span className={styles['empty-icon-space']}></span>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</VisuallyHiddenAccessibleButton>\n\t\t</MrlTableColumn>\n\t);\n};\n\nexport interface MrlTableItem extends Record<string, unknown> {\n\t/**\n\t * A unique identifier for the row item.\n\t */\n\tid: MrlTableItemId;\n\t/**\n\t * This makes the row item not selectable.\n\t */\n\tisSelectable?: boolean;\n\t/**\n\t * This makes the row item visually disabled.\n\t */\n\tisDisabled?: boolean;\n\t/**\n\t * A ref to the table row element\n\t * The ref is an object where the key is the item id and the value is the table row element\n\t */\n\trowRef?: React.MutableRefObject<Record<MrlTableItemId, HTMLTableRowElement>>;\n}\n\nexport type MrlTableColumnSticky = 'left' | 'right';\n\nexport interface MrlSmartTableColumn {\n\t/**\n\t * The key used to retrieve the cell value from the item object,\n\t * e.g. `item[key]`.\n\t */\n\tid: MrlTableColumnId;\n\t/**\n\t * The display name of the column.\n\t */\n\tname: string;\n\t/**\n\t * The horizontal alignment of the column content.\n\t * If not provided, the default alignment is left.\n\t */\n\thorizontalAlign?: MrlTableCellHorizontalAlign;\n\t/**\n\t * A component used to override rendering for each column cell. The\n\t * component is expected to render a MrlTableColumn.\n\t */\n\trenderColumn?: (props: MrlSmartColumnRendererProps) => JSX.Element;\n\t/**\n\t * A component used to override rendering for each row cell. The\n\t * component is expected to render a MrlTableCell.\n\t */\n\trenderCell?: (props: MrlSmartCellRendererProps) => JSX.Element;\n\t/**\n\t * Whether the column allows sorting.\n\t */\n\tallowsSorting?: boolean;\n\t/**\n\t * A sort comparator function for the column.\n\t *\n\t * @default sortAlphabeticallyAsCoercedStrings\n\t */\n\tsortBy?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * A sort comparator function for the column that receives the entire\n\t * row context. Will override the `sortBy` function (if provided).\n\t *\n\t * @param aValue\n\t * @param bValue\n\t * @returns number\n\t */\n\tsortByRowContext?: (aValue: unknown, bValue: unknown) => number;\n\t/**\n\t * Whether the column is sticky\n\t * the sticky effect will only work on the first or last column.\n\t * Set to 'left' for the first column and 'right' for the last column\n\t *\n\t * @example The container of the table will need overflow:scroll/auto\n\t * and the width will need to be constrained in order for\n\t * the columns to be 'sticky'\n\t */\n\tsticky?: MrlTableColumnSticky;\n\t/**\n\t * A tooltip to display on the column header.\n\t */\n\ttooltip?: string;\n}\n\n/**\n * A set of item ids.\n */\nexport type MrlTableSelection = Set<MrlTableItemId>;\n\nexport interface MrlSmartTableSelectionOptions {\n\t/**\n\t * The type of selection that is allowed in the collection.\n\t *\n\t * @default none\n\t */\n\tmode: MrlTableSelectionMode;\n\t/**\n\t * The currently selected keys in the collection (controlled).\n\t */\n\tselectedKeys: MrlTableSelection;\n\t/**\n\t * Handler that is called when the selection changes.\n\t */\n\tonSelectionChange: (keys: MrlTableSelection) => void;\n}\n\nexport interface MrlTableColumnSortOptions {\n\t/**\n\t * The column to sort by.\n\t */\n\tsortColumn: MrlSmartTableColumn;\n\t/**\n\t * The details of the sort.\n\t */\n\tsortDescriptor: MrlTableColumnSortDescriptor;\n}\n\nexport interface MrlSmartTableProps\n\textends Partial<\n\t\tPick<MrlTableProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby' | 'aria-details'>\n\t> {\n\t/**\n\t * A list of table columns.\n\t */\n\tcolumns: MrlSmartTableColumn[];\n\t/**\n\t * A list of items to populate the table.\n\t */\n\titems: MrlTableItem[];\n\t/**\n\t * When provided, enables and controls table selection.\n\t */\n\tselectionOptions?: MrlSmartTableSelectionOptions;\n\t/**\n\t * A prefix applied to each data-qa element within the table.\n\t *\n\t * @default \"mrl-smart-table\"\n\t */\n\tdataQaPrefix?: string;\n\t/**\n\t * Text to be displayed when there are no rows in the table.\n\t * Will be ignored if `emptyState` is provided.\n\t *\n\t * @default \"There's no data available to be displayed in this table.\"\n\t */\n\temptyStateText?: string;\n\t/**\n\t * Provides content to display when there are no rows in the table.\n\t *\n\t * @default MrlTableEmptyState\n\t */\n\temptyState?: JSX.Element;\n\t/**\n\t * An element id (and if not provided, a unique value decorated\n\t * to prevent conflict with aria controls will be generated).\n\t *\n\t * @default ${id}-mrl-smart-table\n\t */\n\tid?: string;\n\t/**\n\t * A function to override the default sort items when a sort descriptor is set.\n\t */\n\tcustomSortItems?: ({ sortColumn, sortDescriptor }: MrlTableColumnSortOptions) => void;\n\t/**\n\t * Provides information on how the table should be sorted on initialization.\n\t */\n\tdefaultSortDescriptor?: MrlTableColumnSortDescriptor;\n\t/**\n\t * Enables row virtualization using @tanstack/react-virtual. The table must live\n\t * inside a container with a fixed height and vertical scroll for virtualization\n\t * to function correctly.\n\t *\n\t * @default false\n\t */\n\tenableVirtualization?: boolean;\n}\n\n/**\n * MrlSmartTable Component\n *\n * @param {MrlSmartTableProps} props - MrlSmartTable component props\n * @returns a table\n */\nexport function MrlSmartTable(props: MrlSmartTableProps): JSX.Element {\n\tconst {\n\t\tcolumns,\n\t\tdataQaPrefix = 'mrl-smart-table',\n\t\temptyStateText,\n\t\temptyState = <MrlTableEmptyState text={emptyStateText} />,\n\t\tid,\n\t\titems,\n\t\tselectionOptions,\n\t\tdefaultSortDescriptor,\n\t\tcustomSortItems,\n\t\tenableVirtualization = false,\n\t\t...ariaProps\n\t} = props;\n\tconst idRef = React.useRef<string>(id || getUniqueId('mrl-smart-table'));\n\tconst tableRef = React.useRef<HTMLTableElement>(null);\n\tconst [scrollContainer, setScrollContainer] = React.useState<HTMLElement | null>(null);\n\tconst tableElementId = idRef.current;\n\tconst [srContent, setSrContent] = React.useState<string>('');\n\tconst [scrollShadowLeft, setScrollShadowLeft] = React.useState<boolean>(false);\n\tconst [scrollShadowRight, setScrollShadowRight] = React.useState<boolean>(false);\n\n\tconst hasStickyLeftColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'left'),\n\t\t[columns]\n\t);\n\n\tconst hasStickyRightColumn = React.useMemo(\n\t\t() => columns.some((col) => col.sticky === 'right'),\n\t\t[columns]\n\t);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current) return;\n\t\tconst container = getScrollableContainer(tableRef.current);\n\t\tsetScrollContainer(container);\n\t}, []);\n\n\tReact.useLayoutEffect(() => {\n\t\tif (!tableRef.current || !scrollContainer) return;\n\t\tif (!hasStickyLeftColumn && !hasStickyRightColumn) return;\n\n\t\tfunction scrollHandler() {\n\t\t\tif (!tableRef.current || !scrollContainer) return;\n\t\t\tconst { hasScrollLeft, hasScrollRight } = hasHorizontalScroll(scrollContainer);\n\t\t\tsetScrollShadowLeft(hasScrollLeft);\n\t\t\tsetScrollShadowRight(hasScrollRight);\n\t\t}\n\t\tconst debouncedScrollHandler = debounce(scrollHandler, 25);\n\n\t\tconst observer = new ResizeObserver(scrollHandler);\n\t\tobserver.observe(tableRef.current);\n\n\t\tdocument.addEventListener('scroll', debouncedScrollHandler, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('scroll', debouncedScrollHandler, true);\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [hasStickyLeftColumn, hasStickyRightColumn, scrollContainer]);\n\n\tconst visibleColumnCount = columns.length + (selectionOptions ? 1 : 0);\n\tconst [sortDescriptor, setSortDescriptor] = React.useState<\n\t\tMrlTableColumnSortDescriptor | undefined\n\t>(defaultSortDescriptor);\n\n\tconst handleSortClick = (sortDescriptor: MrlTableColumnSortDescriptor) => {\n\t\tconst { direction, name, column } = sortDescriptor;\n\n\t\tif (customSortItems) {\n\t\t\tconst sortColumn = columns.find((col) => col.id === column);\n\t\t\tif (!sortColumn) {\n\t\t\t\tconsole.error(`No column found for sort descriptor key: ${column}`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcustomSortItems({ sortColumn, sortDescriptor });\n\t\t}\n\t\tsetSortDescriptor(sortDescriptor);\n\n\t\tconst announcement = `Now sorting ${sortText(direction)} by ${name}`;\n\t\tsetSrContent(announcement);\n\t};\n\n\tconst memoizedItems = React.useMemo(() => {\n\t\t// sort items if sort descriptor is set and custom sort items functions is not provided\n\t\treturn !customSortItems && sortDescriptor ? sortItems(columns, items, sortDescriptor) : items;\n\t}, [columns, customSortItems, items, sortDescriptor]);\n\n\tconst rowVirtualizer = useVirtualizer({\n\t\tcount: memoizedItems.length,\n\t\tenabled: enableVirtualization,\n\t\testimateSize: () => ROW_HEIGHT_PX,\n\t\tgetItemKey: React.useCallback(\n\t\t\t(index: number) => {\n\t\t\t\treturn keyFor(tableElementId, 'row', memoizedItems[index].id);\n\t\t\t},\n\t\t\t[tableElementId, memoizedItems]\n\t\t),\n\t\tgetScrollElement: () => scrollContainer,\n\t\toverscan: 6,\n\t\tuseAnimationFrameWithResizeObserver: true\n\t});\n\n\tlet tableHeaderSelectionColumn: JSX.Element | undefined;\n\tlet rowItemSelectionCell: ((item: MrlTableItem) => JSX.Element) | undefined;\n\n\tif (selectionOptions) {\n\t\tconst { mode, onSelectionChange, selectedKeys } = selectionOptions;\n\t\tconst isAnySelected = memoizedItems.length > 0 && selectedKeys.size > 0;\n\t\tconst isAllSelected = isAnySelected && selectedKeys.size === memoizedItems.length;\n\n\t\tconst selectionColumnStickyValue = hasStickyLeftColumn ? 'left' : undefined;\n\t\tconst selectNone = () => onSelectionChange(new Set());\n\t\tconst selectAll = () =>\n\t\t\tonSelectionChange(\n\t\t\t\tnew Set(memoizedItems.filter((item) => item.isSelectable !== false).map((item) => item.id))\n\t\t\t);\n\t\tconst selectOne = (itemId: MrlTableItemId) => onSelectionChange(new Set([itemId]));\n\t\tconst selectAdd = (itemId: MrlTableItemId) =>\n\t\t\tonSelectionChange(new Set([...selectedKeys, itemId]));\n\t\tconst selectRemove = (itemId: MrlTableItemId) => {\n\t\t\tconst keys = new Set(selectedKeys);\n\t\t\tkeys.delete(itemId);\n\t\t\tonSelectionChange(keys);\n\t\t};\n\n\t\tconst onSelectAllClick = (): void => (isAnySelected ? selectNone() : selectAll());\n\t\tconst onSelectClick = (itemId: MrlTableItemId): void => {\n\t\t\tif (mode === 'multiple') {\n\t\t\t\tselectedKeys.has(itemId) ? selectRemove(itemId) : selectAdd(itemId);\n\t\t\t} else if (mode === 'single') {\n\t\t\t\tselectedKeys.has(itemId) ? selectNone() : selectOne(itemId);\n\t\t\t}\n\t\t};\n\n\t\ttableHeaderSelectionColumn = (\n\t\t\t<MrlTableColumn\n\t\t\t\tid={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection')}\n\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection')}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tscope=\"col\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t>\n\t\t\t\t{selectionOptions.mode === 'multiple' && (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': 'Select all rows',\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'column', 'selection-select-all-checkbox'),\n\t\t\t\t\t\t\tonChange: onSelectAllClick\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', 'selection-select-all-checkbox')}\n\t\t\t\t\t\tselected={isAllSelected ? 'checked' : isAnySelected ? 'indeterminate' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</MrlTableColumn>\n\t\t);\n\t\trowItemSelectionCell = ({ id, isSelectable = true }: MrlTableItem) => (\n\t\t\t<MrlTableCell\n\t\t\t\tid={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row-cell', 'selection', id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id)}\n\t\t\t\tclassName=\"selection\"\n\t\t\t\tsticky={selectionColumnStickyValue}\n\t\t\t>\n\t\t\t\t{isSelectable ? (\n\t\t\t\t\t<MrlCheckboxStandalone\n\t\t\t\t\t\tattrs={{\n\t\t\t\t\t\t\t'aria-label': `Select row with id: ${id}`,\n\t\t\t\t\t\t\t'data-qa': keyFor(dataQaPrefix, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tid: keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox'),\n\t\t\t\t\t\t\tonChange: () => onSelectClick(id)\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', 'selection', id, 'checkbox')}\n\t\t\t\t\t\tselected={selectionOptions.selectedKeys.has(id) ? 'checked' : 'default'}\n\t\t\t\t\t/>\n\t\t\t\t) : undefined}\n\t\t\t</MrlTableCell>\n\t\t);\n\t}\n\n\tconst tableHeaderContent = (\n\t\t<>\n\t\t\t{tableHeaderSelectionColumn}\n\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\tconst { id, renderColumn } = column;\n\t\t\t\tconst ColumnContent = renderColumn ? renderColumn : DefaultColumnContent;\n\t\t\t\treturn (\n\t\t\t\t\t<ColumnContent\n\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\tkey={keyFor(tableElementId, 'column', id)}\n\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\thandleSortClick={handleSortClick}\n\t\t\t\t\t\tsortDescriptor={sortDescriptor}\n\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t})}\n\t\t</>\n\t);\n\n\tlet tableBodyContent: React.JSX.Element | React.JSX.Element[];\n\n\tif (enableVirtualization) {\n\t\tconst virtualRows = rowVirtualizer.getVirtualItems();\n\t\tconst paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n\t\tconst paddingBottom =\n\t\t\tvirtualRows.length > 0\n\t\t\t\t? rowVirtualizer.getTotalSize() - virtualRows[virtualRows.length - 1].end\n\t\t\t\t: 0;\n\n\t\ttableBodyContent = (\n\t\t\t<>\n\t\t\t\t{paddingTop > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingTop }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t\t{virtualRows.map((virtualRow) => {\n\t\t\t\t\tconst item = memoizedItems[virtualRow.index];\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<MrlTableRow\n\t\t\t\t\t\t\tclassName={classNames({\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\t\t\t\titemId={item.id}\n\t\t\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\t\t\t\tkey={virtualRow.key}\n\t\t\t\t\t\t\tstyle={{ height: virtualRow.size }}\n\t\t\t\t\t\t\tref={item.rowRef}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\t\t\t\tconst CellContent = column.renderCell\n\t\t\t\t\t\t\t\t\t? column.renderCell\n\t\t\t\t\t\t\t\t\t: MemoizedDefaultCellContent;\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t</MrlTableRow>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t\t{paddingBottom > 0 && (\n\t\t\t\t\t<tr aria-hidden>\n\t\t\t\t\t\t<td colSpan={visibleColumnCount} style={{ height: paddingBottom }} />\n\t\t\t\t\t</tr>\n\t\t\t\t)}\n\t\t\t</>\n\t\t);\n\t} else {\n\t\ttableBodyContent = memoizedItems.map((item) => (\n\t\t\t<MrlTableRow\n\t\t\t\tclassName={classNames({\n\t\t\t\t\t[styles['MrlTableRow--selected']]: selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t'MrlTableRow--selected': selectionOptions?.selectedKeys.has(item.id),\n\t\t\t\t\t[styles['MrlTableRow--disabled']]: item.isDisabled\n\t\t\t\t})}\n\t\t\t\tid={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\titemId={item.id}\n\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'row', item.id)}\n\t\t\t\tkey={keyFor(tableElementId, 'row', item.id)}\n\t\t\t\tref={item.rowRef}\n\t\t\t>\n\t\t\t\t{rowItemSelectionCell?.(item)}\n\t\t\t\t{columns.map((column: MrlSmartTableColumn) => {\n\t\t\t\t\tconst CellContent = column.renderCell ? column.renderCell : MemoizedDefaultCellContent;\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CellContent\n\t\t\t\t\t\t\tcolumn={column}\n\t\t\t\t\t\t\tdataQaPrefix={dataQaPrefix}\n\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\tkey={keyFor(tableElementId, 'row-cell', item.id, column.id)}\n\t\t\t\t\t\t\ttableElementId={tableElementId}\n\t\t\t\t\t\t\thasScrollShadowLeft={scrollShadowLeft}\n\t\t\t\t\t\t\thasScrollShadowRight={scrollShadowRight}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</MrlTableRow>\n\t\t));\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<MrlTable data-qa={dataQaPrefix} id={tableElementId} ref={tableRef} {...ariaProps}>\n\t\t\t\t<MrlTableHeader\n\t\t\t\t\tdata-qa={keyFor(dataQaPrefix, 'header')}\n\t\t\t\t\tid={keyFor(tableElementId, 'header')}\n\t\t\t\t>\n\t\t\t\t\t{tableHeaderContent}\n\t\t\t\t</MrlTableHeader>\n\t\t\t\t<MrlTableBody data-qa={keyFor(dataQaPrefix, 'body')} id={keyFor(tableElementId, 'body')}>\n\t\t\t\t\t{memoizedItems.length === 0 ? (\n\t\t\t\t\t\t<EmptyStateWrapper visibleColumnCount={visibleColumnCount}>\n\t\t\t\t\t\t\t{emptyState}\n\t\t\t\t\t\t</EmptyStateWrapper>\n\t\t\t\t\t) : (\n\t\t\t\t\t\ttableBodyContent\n\t\t\t\t\t)}\n\t\t\t\t</MrlTableBody>\n\t\t\t</MrlTable>\n\t\t\t<MrlLiveRegion\n\t\t\t\tariaLive=\"assertive\"\n\t\t\t\tvisible={false}\n\t\t\t\tsrContent={srContent}\n\t\t\t\tshouldClearContent={true}\n\t\t\t/>\n\t\t</>\n\t);\n}\n"],"names":["ROW_HEIGHT_PX","sortItems","columns","items","sortDescriptor","sortColumn","find","col","id","column","console","error","concat","sortByRowContext","sortBy","sort","a","b","direction","sortComparator","sortAlphabeticallyAsCoercedStrings","aSortValue","bSortValue","EmptyStateWrapper","_ref","children","visibleColumnCount","React","createElement","role","colSpan","VisuallyHiddenAccessibleButton","props","horizontalAlign","rest","_objectWithoutProperties","_excluded","_extends","type","className","classNames","styles","DefaultColumnContent","_ref2","dataQaPrefix","tableElementId","handleSortClick","hasScrollShadowLeft","hasScrollShadowRight","allowsSorting","name","sticky","tooltip","elementId","keyFor","dataQa","columnProps","scope","memoizedTooltip","useMemo","MrlTooltip","anchor","position","text","tabIndex","MrlSvg","svg","info","size","tooltipContent","undefined","MrlTableColumn","currentDirection","nextDirection","nextSortDirection","onSortClick","onClick","sortText","sortIcon","MrlSmartTable","_props$dataQaPrefix","emptyStateText","_props$emptyState","emptyState","MrlTableEmptyState","selectionOptions","defaultSortDescriptor","customSortItems","_props$enableVirtuali","enableVirtualization","ariaProps","_excluded2","idRef","useRef","getUniqueId","tableRef","_React$useState","useState","_React$useState2","_slicedToArray","scrollContainer","setScrollContainer","current","_React$useState3","_React$useState4","srContent","setSrContent","_React$useState5","_React$useState6","scrollShadowLeft","setScrollShadowLeft","_React$useState7","_React$useState8","scrollShadowRight","setScrollShadowRight","hasStickyLeftColumn","some","hasStickyRightColumn","useLayoutEffect","container","getScrollableContainer","scrollHandler","_hasHorizontalScroll","hasHorizontalScroll","hasScrollLeft","hasScrollRight","debouncedScrollHandler","debounce","observer","ResizeObserver","observe","document","addEventListener","removeEventListener","disconnect","length","_React$useState9","_React$useState0","setSortDescriptor","announcement","memoizedItems","rowVirtualizer","useVirtualizer","count","enabled","estimateSize","getItemKey","useCallback","index","getScrollElement","overscan","useAnimationFrameWithResizeObserver","tableHeaderSelectionColumn","rowItemSelectionCell","mode","onSelectionChange","selectedKeys","isAnySelected","isAllSelected","selectionColumnStickyValue","selectNone","Set","selectAll","filter","item","isSelectable","map","selectOne","itemId","selectAdd","selectRemove","keys","delete","onSelectAllClick","onSelectClick","has","key","MrlCheckboxStandalone","attrs","onChange","selected","_ref3","_ref3$isSelectable","MrlTableCell","tableHeaderContent","Fragment","renderColumn","ColumnContent","tableBodyContent","virtualRows","getVirtualItems","paddingTop","start","paddingBottom","getTotalSize","end","style","height","virtualRow","_rowItemSelectionCell","MrlTableRow","isDisabled","ref","rowRef","CellContent","renderCell","MemoizedDefaultCellContent","_rowItemSelectionCell2","MrlTable","MrlTableHeader","MrlTableBody","MrlLiveRegion","ariaLive","visible","shouldClearContent"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MrlToolbarButton.js","sources":["../../../../../src/components/toolbar/MrlToolbarButton/MrlToolbarButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MrlIconButton, MrlIconButtonProps, MrlMenuItem, MrlMenuItemProps } from '../../../';\n\nimport styles from './MrlToolbarButton.module.scss';\nimport classnames from 'classnames';\n\n/**\n * Props for the MrlToolbarButton component.\n */\nexport interface MrlToolbarButtonProps {\n\t/** Additional class to add to the Toolbar button */\n\tclassName?: string;\n\t/**\n\t * The icon that will be rendered.\n\t */\n\ticon: React.ReactElement;\n\tincludeInRoving?: boolean;\n\t/**\n\t * A prop used to set a toolbar button to never move into the menu.\n\t */\n\tlockedInToolbar?: boolean;\n\t/**\n\t * onClick event for the button.\n\t */\n\tonClick?: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n\t/**\n\t * Props used to control the display of the button in the menu.\n\t */\n\tmenuItemProps?: Omit<MrlMenuItemProps, 'onClick'>;\n\tqa?: string;\n\t/**\n\t * A prop used to render the item in the menu instead of the toolbar.\n\t */\n\trenderInMenu?: boolean;\n\ttext: string;\n\t/**\n\t * Props used to control the display of the button in the toolbar.\n\t */\n\ttoolbarButtonProps?: {\n\t\tbadge?: MrlIconButtonProps['badge'];\n\t\tdisableEvents?: MrlIconButtonProps['disableEvents'];\n\t\tkind?: MrlIconButtonProps['kind'];\n\t\tloading?: MrlIconButtonProps['loading'];\n\t\tloadingText?: MrlIconButtonProps['loadingText'];\n\t\tonKeyUp?: MrlIconButtonProps['onKeyUp'];\n\t\tonMouseUp?: MrlIconButtonProps['onMouseUp'];\n\t\tposition?: MrlIconButtonProps['position'];\n\t\tsize?: MrlIconButtonProps['size'];\n\t\tstate?: MrlIconButtonProps['state'];\n\t\ttipAnchor?: MrlIconButtonProps['tipAnchor'];\n\t\ttoggleAria?: MrlIconButtonProps['toggleAria'];\n\t\ttoggleStyle?: MrlIconButtonProps['toggleStyle'];\n\t\ttooltipKind?: MrlIconButtonProps['tooltipKind'];\n\t};\n}\n\n/**\n * MrlToolbarButton component.\n * @param props The MrlToolbarButton component properties.\n * @returns The MrlToolbarButton component.\n */\nexport const MrlToolbarButton = React.forwardRef<HTMLButtonElement, MrlToolbarButtonProps>(\n\tfunction MrlToolbarButton(props, ref): JSX.Element {\n\t\tconst {\n\t\t\tclassName,\n\t\t\ticon,\n\t\t\tincludeInRoving = false,\n\t\t\tmenuItemProps,\n\t\t\tonClick,\n\t\t\tqa,\n\t\t\trenderInMenu,\n\t\t\ttext,\n\t\t\ttoolbarButtonProps = {\n\t\t\t\tposition: 'bottom',\n\t\t\t\tsize: 'small',\n\t\t\t\tstate: 'default'\n\t\t\t},\n\t\t\t...rest\n\t\t} = props;\n\t\tconst classes = classnames('MrlToolbarButton', className);\n\n\t\tif (renderInMenu) {\n\t\t\treturn (\n\t\t\t\t<MrlMenuItem {...menuItemProps} className={classes} data-qa={qa} onClick={onClick}>\n\t\t\t\t\t<span className={styles.MrlToolbarButtonIcon}>{icon}</span>\n\t\t\t\t\t{text}\n\t\t\t\t</MrlMenuItem>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MrlIconButton\n\t\t\t\t{...rest}\n\t\t\t\t{...toolbarButtonProps}\n\t\t\t\tclassName={classes}\n\t\t\t\tdata-qa={qa}\n\t\t\t\tdata-roving={includeInRoving ? 'true' : undefined}\n\t\t\t\ticon={icon}\n\t\t\t\tonClick={onClick}\n\t\t\t\tref={ref}\n\t\t\t\ttext={text}\n\t\t\t/>\n\t\t);\n\t}\n);\n"],"names":["MrlToolbarButton","React","forwardRef","props","ref","className","icon","_props$includeInRovin","includeInRoving","menuItemProps","onClick","qa","renderInMenu","text","_props$toolbarButtonP","toolbarButtonProps","position","size","state","rest","_objectWithoutProperties","_excluded","classes","classnames","createElement","MrlMenuItem","_extends","styles","MrlToolbarButtonIcon","MrlIconButton","undefined"],"mappings":";;;;;;;;;AAMA;AACA;AACA;;AAgDA;AACA;AACA;AACA;AACA;AACO,IAAMA,gBAAgB,gBAAGC,KAAK,CAACC,UAAU,CAC/C,SAASF,gBAAgBA,CAACG,KAAK,EAAEC,GAAG,EAAe;AAClD,EAAA,IACCC,SAAS,GAcNF,KAAK,CAdRE,SAAS;IACTC,IAAI,GAaDH,KAAK,CAbRG,IAAI;IAAAC,qBAAA,GAaDJ,KAAK,CAZRK,eAAe;AAAfA,IAAAA,eAAe,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IACvBE,aAAa,GAWVN,KAAK,CAXRM,aAAa;IACbC,OAAO,GAUJP,KAAK,CAVRO,OAAO;IACPC,EAAE,GASCR,KAAK,CATRQ,EAAE;IACFC,YAAY,GAQTT,KAAK,CARRS,YAAY;IACZC,IAAI,GAODV,KAAK,CAPRU,IAAI;IAAAC,qBAAA,GAODX,KAAK,CANRY,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,KAAA,MAAA,GAAG;AACpBE,MAAAA,QAAQ,EAAE,QAAQ;AAClBC,MAAAA,IAAI,EAAE,OAAO;AACbC,MAAAA,KAAK,EAAE;AACR,KAAC,GAAAJ,qBAAA;AACEK,IAAAA,IAAI,GAAAC,wBAAA,CACJjB,KAAK,EAAAkB,SAAA,CAAA;AACT,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAAC,kBAAkB,EAAElB,SAAS,CAAC;AAEzD,EAAA,IAAIO,YAAY,EAAE;IACjB,oBACCX,KAAA,CAAAuB,aAAA,CAACC,WAAW,EAAAC,QAAA,KAAKjB,aAAa,EAAA;AAAEJ,MAAAA,SAAS,EAAEiB,OAAQ;AAAC,MAAA,SAAA,EAASX,EAAG;AAACD,MAAAA,OAAO,EAAEA;KAAQ,CAAA,eACjFT,KAAA,CAAAuB,aAAA,CAAA,MAAA,EAAA;MAAMnB,SAAS,EAAEsB,MAAM,CAACC;AAAqB,KAAA,EAAEtB,IAAW,CAAC,EAC1DO,IACW,CAAC;AAEhB,EAAA;EAEA,oBACCZ,KAAA,CAAAuB,aAAA,CAACK,aAAa,EAAAH,QAAA,CAAA,EAAA,EACTP,IAAI,EACJJ,kBAAkB,EAAA;AACtBV,IAAAA,SAAS,EAAEiB,OAAQ;AACnB,IAAA,SAAA,EAASX,EAAG;AACZ,IAAA,aAAA,EAAaH,eAAe,GAAG,MAAM,GAAGsB,SAAU;AAClDxB,IAAAA,IAAI,EAAEA,IAAK;AACXI,IAAAA,OAAO,EAAEA,OAAQ;AACjBN,IAAAA,GAAG,EAAEA,GAAI;AACTS,IAAAA,IAAI,EAAEA;AAAK,GAAA,CACX,CAAC;AAEJ,CACD;;;;"}
1
+ {"version":3,"file":"MrlToolbarButton.js","sources":["../../../../../src/components/toolbar/MrlToolbarButton/MrlToolbarButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport { MrlIconButton, MrlIconButtonProps, MrlMenuItem, MrlMenuItemProps } from '../../../';\n\nimport styles from './MrlToolbarButton.module.scss';\nimport classnames from 'classnames';\n\n/**\n * Props for the MrlToolbarButton component.\n */\nexport interface MrlToolbarButtonProps {\n\t/** Additional class to add to the Toolbar button */\n\tclassName?: string;\n\t/**\n\t * The icon that will be rendered.\n\t */\n\ticon: React.ReactElement;\n\tincludeInRoving?: boolean;\n\t/**\n\t * A prop used to set a toolbar button to never move into the menu.\n\t */\n\tlockedInToolbar?: boolean;\n\t/**\n\t * onClick event for the button.\n\t */\n\tonClick?: (e?: React.MouseEvent<HTMLButtonElement>) => void;\n\t/**\n\t * Props used to control the display of the button in the menu.\n\t */\n\tmenuItemProps?: Omit<MrlMenuItemProps, 'onClick'>;\n\tqa?: string;\n\t/**\n\t * A prop used to render the item in the menu instead of the toolbar.\n\t */\n\trenderInMenu?: boolean;\n\ttext: string;\n\t/**\n\t * Props used to control the display of the button in the toolbar.\n\t */\n\ttoolbarButtonProps?: {\n\t\tbadge?: MrlIconButtonProps['badge'];\n\t\tdisableEvents?: MrlIconButtonProps['disableEvents'];\n\t\tkind?: MrlIconButtonProps['kind'];\n\t\tloading?: MrlIconButtonProps['loading'];\n\t\tloadingText?: MrlIconButtonProps['loadingText'];\n\t\tonKeyUp?: MrlIconButtonProps['onKeyUp'];\n\t\tonMouseUp?: MrlIconButtonProps['onMouseUp'];\n\t\tposition?: MrlIconButtonProps['position'];\n\t\tsize?: MrlIconButtonProps['size'];\n\t\tstate?: MrlIconButtonProps['state'];\n\t\ttipAnchor?: MrlIconButtonProps['tipAnchor'];\n\t\ttoggleAria?: MrlIconButtonProps['toggleAria'];\n\t\ttoggleStyle?: MrlIconButtonProps['toggleStyle'];\n\t};\n}\n\n/**\n * MrlToolbarButton component.\n * @param props The MrlToolbarButton component properties.\n * @returns The MrlToolbarButton component.\n */\nexport const MrlToolbarButton = React.forwardRef<HTMLButtonElement, MrlToolbarButtonProps>(\n\tfunction MrlToolbarButton(props, ref): JSX.Element {\n\t\tconst {\n\t\t\tclassName,\n\t\t\ticon,\n\t\t\tincludeInRoving = false,\n\t\t\tmenuItemProps,\n\t\t\tonClick,\n\t\t\tqa,\n\t\t\trenderInMenu,\n\t\t\ttext,\n\t\t\ttoolbarButtonProps = {\n\t\t\t\tposition: 'bottom',\n\t\t\t\tsize: 'small',\n\t\t\t\tstate: 'default'\n\t\t\t},\n\t\t\t...rest\n\t\t} = props;\n\t\tconst classes = classnames('MrlToolbarButton', className);\n\n\t\tif (renderInMenu) {\n\t\t\treturn (\n\t\t\t\t<MrlMenuItem {...menuItemProps} className={classes} data-qa={qa} onClick={onClick}>\n\t\t\t\t\t<span className={styles.MrlToolbarButtonIcon}>{icon}</span>\n\t\t\t\t\t{text}\n\t\t\t\t</MrlMenuItem>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MrlIconButton\n\t\t\t\t{...rest}\n\t\t\t\t{...toolbarButtonProps}\n\t\t\t\tclassName={classes}\n\t\t\t\tdata-qa={qa}\n\t\t\t\tdata-roving={includeInRoving ? 'true' : undefined}\n\t\t\t\ticon={icon}\n\t\t\t\tonClick={onClick}\n\t\t\t\tref={ref}\n\t\t\t\ttext={text}\n\t\t\t/>\n\t\t);\n\t}\n);\n"],"names":["MrlToolbarButton","React","forwardRef","props","ref","className","icon","_props$includeInRovin","includeInRoving","menuItemProps","onClick","qa","renderInMenu","text","_props$toolbarButtonP","toolbarButtonProps","position","size","state","rest","_objectWithoutProperties","_excluded","classes","classnames","createElement","MrlMenuItem","_extends","styles","MrlToolbarButtonIcon","MrlIconButton","undefined"],"mappings":";;;;;;;;;AAMA;AACA;AACA;;AA+CA;AACA;AACA;AACA;AACA;AACO,IAAMA,gBAAgB,gBAAGC,KAAK,CAACC,UAAU,CAC/C,SAASF,gBAAgBA,CAACG,KAAK,EAAEC,GAAG,EAAe;AAClD,EAAA,IACCC,SAAS,GAcNF,KAAK,CAdRE,SAAS;IACTC,IAAI,GAaDH,KAAK,CAbRG,IAAI;IAAAC,qBAAA,GAaDJ,KAAK,CAZRK,eAAe;AAAfA,IAAAA,eAAe,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;IACvBE,aAAa,GAWVN,KAAK,CAXRM,aAAa;IACbC,OAAO,GAUJP,KAAK,CAVRO,OAAO;IACPC,EAAE,GASCR,KAAK,CATRQ,EAAE;IACFC,YAAY,GAQTT,KAAK,CARRS,YAAY;IACZC,IAAI,GAODV,KAAK,CAPRU,IAAI;IAAAC,qBAAA,GAODX,KAAK,CANRY,kBAAkB;IAAlBA,kBAAkB,GAAAD,qBAAA,KAAA,MAAA,GAAG;AACpBE,MAAAA,QAAQ,EAAE,QAAQ;AAClBC,MAAAA,IAAI,EAAE,OAAO;AACbC,MAAAA,KAAK,EAAE;AACR,KAAC,GAAAJ,qBAAA;AACEK,IAAAA,IAAI,GAAAC,wBAAA,CACJjB,KAAK,EAAAkB,SAAA,CAAA;AACT,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAAC,kBAAkB,EAAElB,SAAS,CAAC;AAEzD,EAAA,IAAIO,YAAY,EAAE;IACjB,oBACCX,KAAA,CAAAuB,aAAA,CAACC,WAAW,EAAAC,QAAA,KAAKjB,aAAa,EAAA;AAAEJ,MAAAA,SAAS,EAAEiB,OAAQ;AAAC,MAAA,SAAA,EAASX,EAAG;AAACD,MAAAA,OAAO,EAAEA;KAAQ,CAAA,eACjFT,KAAA,CAAAuB,aAAA,CAAA,MAAA,EAAA;MAAMnB,SAAS,EAAEsB,MAAM,CAACC;AAAqB,KAAA,EAAEtB,IAAW,CAAC,EAC1DO,IACW,CAAC;AAEhB,EAAA;EAEA,oBACCZ,KAAA,CAAAuB,aAAA,CAACK,aAAa,EAAAH,QAAA,CAAA,EAAA,EACTP,IAAI,EACJJ,kBAAkB,EAAA;AACtBV,IAAAA,SAAS,EAAEiB,OAAQ;AACnB,IAAA,SAAA,EAASX,EAAG;AACZ,IAAA,aAAA,EAAaH,eAAe,GAAG,MAAM,GAAGsB,SAAU;AAClDxB,IAAAA,IAAI,EAAEA,IAAK;AACXI,IAAAA,OAAO,EAAEA,OAAQ;AACjBN,IAAAA,GAAG,EAAEA,GAAI;AACTS,IAAAA,IAAI,EAAEA;AAAK,GAAA,CACX,CAAC;AAEJ,CACD;;;;"}
@@ -10,7 +10,7 @@ import { PORTAL_LAYERS } from '../../../utils/layers/index.js';
10
10
  import { getUniqueId } from '../../../utils/setAttributes/setAttributes.js';
11
11
  import { MrlPortal } from '../../portal/MrlPortal.js';
12
12
 
13
- var _excluded = ["children", "clickToClose", "disableTooltipHover", "display", "text", "attrs", "dataQa", "kind", "position", "anchor", "srAnnouncement", "tooltipClass", "tooltipContentClass"],
13
+ var _excluded = ["children", "clickToClose", "disableTooltipHover", "display", "text", "attrs", "dataQa", "position", "anchor", "srAnnouncement", "tooltipClass", "tooltipContentClass"],
14
14
  _excluded2 = ["className", "onBlur", "onFocus", "onKeyDown", "onMouseOver", "onMouseOut", "onMouseUp", "children"];
15
15
  /**
16
16
  * MrlTooltip Component
@@ -32,8 +32,6 @@ var MrlTooltip = /*#__PURE__*/React.memo(props => {
32
32
  _props$attrs = props.attrs,
33
33
  attrs = _props$attrs === void 0 ? {} : _props$attrs,
34
34
  dataQa = props.dataQa,
35
- _props$kind = props.kind,
36
- kind = _props$kind === void 0 ? 'default' : _props$kind,
37
35
  _props$position = props.position,
38
36
  position = _props$position === void 0 ? MrlTooltipDefaults.position || 'top' : _props$position,
39
37
  _props$anchor = props.anchor,
@@ -207,7 +205,6 @@ var MrlTooltip = /*#__PURE__*/React.memo(props => {
207
205
  attrs: attrs,
208
206
  anchor: anchor,
209
207
  dataQa: dataQa,
210
- kind: kind,
211
208
  id: id,
212
209
  position: position,
213
210
  text: text,
@@ -1 +1 @@
1
- {"version":3,"file":"MrlTooltip.js","sources":["../../../../../src/components/tooltip/MrlTooltip/MrlTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { AttrsObject, getUniqueId } from '../../../utils';\nimport {\n\tMrlTooltipAnchor,\n\tMrlTooltipDefaults,\n\tMrlTooltipPosition,\n\tMrlTooltipState,\n\tMrlTooltipVariant\n} from '../constants';\nimport { MrlTooltipContent } from '../MrlTooltipContent/MrlTooltipContent';\nimport { curryHandlers } from '../utils';\nimport classNames from 'classnames';\nimport { MrlPortal } from '../../portal';\nimport '../../../styles/shared/a11y-helpers/a11y.global.scss';\nimport { useTooltipPosition } from '../useTooltipPosition';\nimport { useTransition, animated } from '@react-spring/web';\nimport { PORTAL_LAYERS } from '../../../utils/layers';\n\ninterface MrlTooltipProps {\n\t/** The arrow position of the tooltip in relation to its trigger's content */\n\tanchor?: MrlTooltipAnchor;\n\n\t/**\n\t * Attributes that are applied to the component during the initial render.\n\t *\n\t * Example usage: html attributes, custom data attributes (data-qa), aria\n\t * @deprecated please use props for component instead\n\t */\n\tattrs?: AttrsObject;\n\n\t/**\n\t * Children to be rendered within the tooltip. The first child is used as the trigger.\n\t *\n\t * Warning: The tooltip is only setup to work with a single trigger. If multiple children\n\t * are passed in the component will not have event handling for the additional child elements.\n\t */\n\tchildren: React.ReactElement;\n\n\t/** Whether the tooltip should close when clicked */\n\tclickToClose?: boolean;\n\n\t/** The data-qa attribute for the tooltip */\n\tdataQa?: string;\n\n\t/** The state value to determine if the tooltip should be displayed */\n\tdisplay?: MrlTooltipState;\n\n\t/** Whether to disable the tooltip hover action that keeps it open */\n\tdisableTooltipHover?: boolean;\n\n\t/** The kind of tooltip to be rendered */\n\tkind?: MrlTooltipVariant;\n\n\t/** The placement of the tooltip in relation to its trigger */\n\tposition?: MrlTooltipPosition;\n\n\t/** Whether to announce the tooltip content to screen readers */\n\tsrAnnouncement?: boolean;\n\n\t/** The textual label of tooltip */\n\ttext: string;\n\n\t/** A custom class selector to be applied to the tooltip wrapper */\n\ttooltipClass?: string;\n\n\t/** A class to be applied ot the tooltip content */\n\ttooltipContentClass?: string;\n\n\t/** A custom render function to render the tooltip content */\n\tcustomRender?: (text?: string) => React.ReactNode;\n}\n\n/**\n * MrlTooltip Component\n *\n * This component is not displayed when rendering this component if the primary pointing device can’t hover. Examples include touchscreens and screens that use a basic drawing stylus.\n * Pointing devices that can hover, but for which doing so is inconvenient and not part of the normal way they are used, also match this criteria. For example, a touchscreen where a long press is treated as hovering.\n * @param {MrlTooltipProps} props - The props of the component\n * @returns {HTMLElement} a configured Tooltip component\n */\nexport const MrlTooltip = React.memo((props: MrlTooltipProps): React.ReactElement => {\n\tconst {\n\t\tchildren,\n\t\tclickToClose = true,\n\t\tdisableTooltipHover = false,\n\t\tdisplay: defaultDisplay = 'hide',\n\t\ttext,\n\t\tattrs = {},\n\t\tdataQa,\n\t\tkind = 'default',\n\t\tposition = MrlTooltipDefaults.position || 'top',\n\t\tanchor = MrlTooltipDefaults.anchor,\n\t\tsrAnnouncement = true,\n\t\ttooltipClass,\n\t\ttooltipContentClass,\n\t\t...rest\n\t} = props;\n\n\tconst [interaction, setInteraction] = React.useState('mouse');\n\n\tconst triggerRef = React.useRef<HTMLElement | null>(null);\n\n\tconst tooltipRef = React.useRef<HTMLDivElement>(null);\n\n\t/**\n\t * State value to determine if the tooltip should be displayed\n\t */\n\tconst [display, setDisplay] = React.useState<MrlTooltipState>(defaultDisplay);\n\n\t/**\n\t * State value to determine if the tooltip should be displayed\n\t */\n\tconst [id, setId] = React.useState<string>('');\n\n\t/**\n\t * Event handler to show tooltip when the trigger is focused\n\t */\n\tconst handleShowTooltip = React.useCallback(() => {\n\t\tsetDisplay('show');\n\t}, []);\n\n\tconst handleFocus = React.useCallback(() => {\n\t\tif (interaction === 'keyboard') {\n\t\t\thandleShowTooltip();\n\t\t}\n\t}, [interaction, handleShowTooltip]);\n\n\t/**\n\t * Event handler to hide the tooltip on mouseout\n\t */\n\tconst handleHideTooltip = (): void => {\n\t\tsetDisplay('hide');\n\t};\n\n\t/**\n\t * Event handler to hide the tooltip when a user presses escape\n\t * @param {React.KeyboardEvent} e Keyboard event\n\t */\n\tconst handleKeyDown = (e: React.KeyboardEvent): void => {\n\t\tif (e.key === 'Escape' || e.key === 'Enter' || e.key === ' ') {\n\t\t\thandleHideTooltip();\n\t\t}\n\t};\n\n\tconst handleSetKeyboardInteraction = (e: KeyboardEvent) => {\n\t\tif (e.key === 'Tab' || e.key === 'Enter' || e.key === ' ') {\n\t\t\tsetInteraction('keyboard');\n\t\t}\n\t};\n\n\tconst handlesetMouseInteraction = () => setInteraction('mouse');\n\n\t/**\n\t * Setup of the initial component attributes and events\n\t */\n\tReact.useEffect(() => {\n\t\tif (id === '') setId(getUniqueId('mrl-tooltip'));\n\t}, [id]);\n\n\tReact.useEffect(() => {\n\t\tsetDisplay(defaultDisplay);\n\t}, [defaultDisplay]);\n\n\t/**\n\t * Setting the triggerRef to the trigger element\n\t *\n\t * We need to use 'querySelector' because we cannot pass a ref to the child object. There are\n\t * some situations where the child component may not accept a ref, for example: a react router\n\t * link is passed as a child. In older versions of react router you could not pass a ref to the\n\t * component so this causes an issue.\n\t */\n\tReact.useEffect(() => {\n\t\tconst trigger = document.querySelector(`[data-tooltip-id=\"${id}\"]`);\n\t\ttriggerRef.current = trigger as HTMLElement;\n\t}, [id]);\n\n\tReact.useEffect(() => {\n\t\tconst currentTooltipRef = tooltipRef.current;\n\n\t\tdocument.addEventListener('keydown', handleSetKeyboardInteraction);\n\t\tdocument.addEventListener('mousedown', handlesetMouseInteraction);\n\n\t\tif (!disableTooltipHover && currentTooltipRef) {\n\t\t\tcurrentTooltipRef.addEventListener('mouseover', handleShowTooltip);\n\t\t\tcurrentTooltipRef.addEventListener('mouseout', handleHideTooltip);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (!disableTooltipHover && currentTooltipRef) {\n\t\t\t\tcurrentTooltipRef.removeEventListener('mouseover', handleShowTooltip);\n\t\t\t\tcurrentTooltipRef.removeEventListener('mouseout', handleHideTooltip);\n\t\t\t}\n\n\t\t\tdocument.removeEventListener('keydown', handleSetKeyboardInteraction);\n\t\t\tdocument.removeEventListener('mousedown', handlesetMouseInteraction);\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [handleShowTooltip, tooltipRef.current]);\n\n\tconst positionStyles = useTooltipPosition(\n\t\ttriggerRef,\n\t\ttooltipRef,\n\t\t{\n\t\t\talign: anchor,\n\t\t\tposition: position\n\t\t},\n\t\tdisplay === 'show',\n\t\t-1\n\t);\n\n\tconst inlineStyles = {\n\t\tmenu: {\n\t\t\tleft: positionStyles.left,\n\t\t\tposition: 'fixed' as const,\n\t\t\ttop: positionStyles.top\n\t\t}\n\t};\n\n\tconst transitions = useTransition(display === 'show', {\n\t\tconfig: { duration: display === 'show' ? 150 : 25 },\n\t\tenter: { opacity: 1 },\n\t\tfrom: { opacity: 0 },\n\t\tleave: { opacity: 0 }\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{React.Children.map(children, (child, index) => {\n\t\t\t\tif (index === 0 && React.isValidElement(child)) {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\tonBlur,\n\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\tonKeyDown,\n\t\t\t\t\t\tonMouseOver,\n\t\t\t\t\t\tonMouseOut,\n\t\t\t\t\t\tonMouseUp,\n\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t...otherProps\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t} = (child as any).props;\n\n\t\t\t\t\treturn React.cloneElement(child as React.ReactElement, {\n\t\t\t\t\t\t'aria-describedby': display === 'show' && srAnnouncement ? id : undefined,\n\t\t\t\t\t\tclassName: classNames(\n\t\t\t\t\t\t\ttooltipClass,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t'mrl-tooltip-trigger',\n\t\t\t\t\t\t\tdisplay === 'show' && 'mrl-tooltip-trigger--active'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tonBlur: curryHandlers(onBlur, handleHideTooltip),\n\t\t\t\t\t\t...(clickToClose && !disableTooltipHover\n\t\t\t\t\t\t\t? { onMouseUp: curryHandlers(onMouseUp, handleHideTooltip) }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tonFocus: curryHandlers(onFocus, handleFocus),\n\t\t\t\t\t\tonKeyDown: curryHandlers(onKeyDown, handleKeyDown),\n\t\t\t\t\t\tonMouseOut: curryHandlers(onMouseOut, handleHideTooltip),\n\t\t\t\t\t\tonMouseOver: curryHandlers(onMouseOver, handleShowTooltip),\n\t\t\t\t\t\t...otherProps,\n\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t['data-tooltip-id']: id\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn child;\n\t\t\t})}\n\t\t\t<MrlPortal\n\t\t\t\tid={PORTAL_LAYERS.TOOLTIP.name}\n\t\t\t\tlayer={PORTAL_LAYERS.TOOLTIP}\n\t\t\t\tclassName={PORTAL_LAYERS.TOOLTIP.name}\n\t\t\t\tdata-qa={PORTAL_LAYERS.TOOLTIP.name}\n\t\t\t>\n\t\t\t\t{transitions(\n\t\t\t\t\t(style, item) =>\n\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t<animated.div ref={tooltipRef} style={{ ...inlineStyles.menu, ...style }}>\n\t\t\t\t\t\t\t\t<MrlTooltipContent\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t\tattrs={attrs}\n\t\t\t\t\t\t\t\t\tanchor={anchor}\n\t\t\t\t\t\t\t\t\tdataQa={dataQa}\n\t\t\t\t\t\t\t\t\tkind={kind}\n\t\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\t\tposition={position}\n\t\t\t\t\t\t\t\t\ttext={text}\n\t\t\t\t\t\t\t\t\ttooltipContentClass={tooltipContentClass}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</animated.div>\n\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</MrlPortal>\n\t\t</>\n\t);\n});\n\nMrlTooltip.displayName = 'MrlTooltip';\n"],"names":["MrlTooltip","React","memo","props","children","_props$clickToClose","clickToClose","_props$disableTooltip","disableTooltipHover","_props$display","display","defaultDisplay","text","_props$attrs","attrs","dataQa","_props$kind","kind","_props$position","position","MrlTooltipDefaults","_props$anchor","anchor","_props$srAnnouncement","srAnnouncement","tooltipClass","tooltipContentClass","rest","_objectWithoutProperties","_excluded","_React$useState","useState","_React$useState2","_slicedToArray","interaction","setInteraction","triggerRef","useRef","tooltipRef","_React$useState3","_React$useState4","setDisplay","_React$useState5","_React$useState6","id","setId","handleShowTooltip","useCallback","handleFocus","handleHideTooltip","handleKeyDown","e","key","handleSetKeyboardInteraction","handlesetMouseInteraction","useEffect","getUniqueId","trigger","document","querySelector","concat","current","currentTooltipRef","addEventListener","removeEventListener","positionStyles","useTooltipPosition","align","inlineStyles","menu","left","top","transitions","useTransition","config","duration","enter","opacity","from","leave","createElement","Fragment","Children","map","child","index","isValidElement","_props","className","onBlur","onFocus","onKeyDown","onMouseOver","onMouseOut","onMouseUp","otherProps","_excluded2","cloneElement","_objectSpread","undefined","classNames","curryHandlers","MrlPortal","PORTAL_LAYERS","TOOLTIP","name","layer","style","item","animated","div","ref","MrlTooltipContent","_extends","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"MrlTooltip.js","sources":["../../../../../src/components/tooltip/MrlTooltip/MrlTooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport { AttrsObject, getUniqueId } from '../../../utils';\nimport {\n\tMrlTooltipAnchor,\n\tMrlTooltipDefaults,\n\tMrlTooltipPosition,\n\tMrlTooltipState\n} from '../constants';\nimport { MrlTooltipContent } from '../MrlTooltipContent/MrlTooltipContent';\nimport { curryHandlers } from '../utils';\nimport classNames from 'classnames';\nimport { MrlPortal } from '../../portal';\nimport '../../../styles/shared/a11y-helpers/a11y.global.scss';\nimport { useTooltipPosition } from '../useTooltipPosition';\nimport { useTransition, animated } from '@react-spring/web';\nimport { PORTAL_LAYERS } from '../../../utils/layers';\n\ninterface MrlTooltipProps {\n\t/** The arrow position of the tooltip in relation to its trigger's content */\n\tanchor?: MrlTooltipAnchor;\n\n\t/**\n\t * Attributes that are applied to the component during the initial render.\n\t *\n\t * Example usage: html attributes, custom data attributes (data-qa), aria\n\t * @deprecated please use props for component instead\n\t */\n\tattrs?: AttrsObject;\n\n\t/**\n\t * Children to be rendered within the tooltip. The first child is used as the trigger.\n\t *\n\t * Warning: The tooltip is only setup to work with a single trigger. If multiple children\n\t * are passed in the component will not have event handling for the additional child elements.\n\t */\n\tchildren: React.ReactElement;\n\n\t/** Whether the tooltip should close when clicked */\n\tclickToClose?: boolean;\n\n\t/** The data-qa attribute for the tooltip */\n\tdataQa?: string;\n\n\t/** The state value to determine if the tooltip should be displayed */\n\tdisplay?: MrlTooltipState;\n\n\t/** Whether to disable the tooltip hover action that keeps it open */\n\tdisableTooltipHover?: boolean;\n\n\t/** The placement of the tooltip in relation to its trigger */\n\tposition?: MrlTooltipPosition;\n\n\t/** Whether to announce the tooltip content to screen readers */\n\tsrAnnouncement?: boolean;\n\n\t/** The textual label of tooltip */\n\ttext: string;\n\n\t/** A custom class selector to be applied to the tooltip wrapper */\n\ttooltipClass?: string;\n\n\t/** A class to be applied ot the tooltip content */\n\ttooltipContentClass?: string;\n\n\t/** A custom render function to render the tooltip content */\n\tcustomRender?: (text?: string) => React.ReactNode;\n}\n\n/**\n * MrlTooltip Component\n *\n * This component is not displayed when rendering this component if the primary pointing device can’t hover. Examples include touchscreens and screens that use a basic drawing stylus.\n * Pointing devices that can hover, but for which doing so is inconvenient and not part of the normal way they are used, also match this criteria. For example, a touchscreen where a long press is treated as hovering.\n * @param {MrlTooltipProps} props - The props of the component\n * @returns {HTMLElement} a configured Tooltip component\n */\nexport const MrlTooltip = React.memo((props: MrlTooltipProps): React.ReactElement => {\n\tconst {\n\t\tchildren,\n\t\tclickToClose = true,\n\t\tdisableTooltipHover = false,\n\t\tdisplay: defaultDisplay = 'hide',\n\t\ttext,\n\t\tattrs = {},\n\t\tdataQa,\n\t\tposition = MrlTooltipDefaults.position || 'top',\n\t\tanchor = MrlTooltipDefaults.anchor,\n\t\tsrAnnouncement = true,\n\t\ttooltipClass,\n\t\ttooltipContentClass,\n\t\t...rest\n\t} = props;\n\n\tconst [interaction, setInteraction] = React.useState('mouse');\n\n\tconst triggerRef = React.useRef<HTMLElement | null>(null);\n\n\tconst tooltipRef = React.useRef<HTMLDivElement>(null);\n\n\t/**\n\t * State value to determine if the tooltip should be displayed\n\t */\n\tconst [display, setDisplay] = React.useState<MrlTooltipState>(defaultDisplay);\n\n\t/**\n\t * State value to determine if the tooltip should be displayed\n\t */\n\tconst [id, setId] = React.useState<string>('');\n\n\t/**\n\t * Event handler to show tooltip when the trigger is focused\n\t */\n\tconst handleShowTooltip = React.useCallback(() => {\n\t\tsetDisplay('show');\n\t}, []);\n\n\tconst handleFocus = React.useCallback(() => {\n\t\tif (interaction === 'keyboard') {\n\t\t\thandleShowTooltip();\n\t\t}\n\t}, [interaction, handleShowTooltip]);\n\n\t/**\n\t * Event handler to hide the tooltip on mouseout\n\t */\n\tconst handleHideTooltip = (): void => {\n\t\tsetDisplay('hide');\n\t};\n\n\t/**\n\t * Event handler to hide the tooltip when a user presses escape\n\t * @param {React.KeyboardEvent} e Keyboard event\n\t */\n\tconst handleKeyDown = (e: React.KeyboardEvent): void => {\n\t\tif (e.key === 'Escape' || e.key === 'Enter' || e.key === ' ') {\n\t\t\thandleHideTooltip();\n\t\t}\n\t};\n\n\tconst handleSetKeyboardInteraction = (e: KeyboardEvent) => {\n\t\tif (e.key === 'Tab' || e.key === 'Enter' || e.key === ' ') {\n\t\t\tsetInteraction('keyboard');\n\t\t}\n\t};\n\n\tconst handlesetMouseInteraction = () => setInteraction('mouse');\n\n\t/**\n\t * Setup of the initial component attributes and events\n\t */\n\tReact.useEffect(() => {\n\t\tif (id === '') setId(getUniqueId('mrl-tooltip'));\n\t}, [id]);\n\n\tReact.useEffect(() => {\n\t\tsetDisplay(defaultDisplay);\n\t}, [defaultDisplay]);\n\n\t/**\n\t * Setting the triggerRef to the trigger element\n\t *\n\t * We need to use 'querySelector' because we cannot pass a ref to the child object. There are\n\t * some situations where the child component may not accept a ref, for example: a react router\n\t * link is passed as a child. In older versions of react router you could not pass a ref to the\n\t * component so this causes an issue.\n\t */\n\tReact.useEffect(() => {\n\t\tconst trigger = document.querySelector(`[data-tooltip-id=\"${id}\"]`);\n\t\ttriggerRef.current = trigger as HTMLElement;\n\t}, [id]);\n\n\tReact.useEffect(() => {\n\t\tconst currentTooltipRef = tooltipRef.current;\n\n\t\tdocument.addEventListener('keydown', handleSetKeyboardInteraction);\n\t\tdocument.addEventListener('mousedown', handlesetMouseInteraction);\n\n\t\tif (!disableTooltipHover && currentTooltipRef) {\n\t\t\tcurrentTooltipRef.addEventListener('mouseover', handleShowTooltip);\n\t\t\tcurrentTooltipRef.addEventListener('mouseout', handleHideTooltip);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (!disableTooltipHover && currentTooltipRef) {\n\t\t\t\tcurrentTooltipRef.removeEventListener('mouseover', handleShowTooltip);\n\t\t\t\tcurrentTooltipRef.removeEventListener('mouseout', handleHideTooltip);\n\t\t\t}\n\n\t\t\tdocument.removeEventListener('keydown', handleSetKeyboardInteraction);\n\t\t\tdocument.removeEventListener('mousedown', handlesetMouseInteraction);\n\t\t};\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [handleShowTooltip, tooltipRef.current]);\n\n\tconst positionStyles = useTooltipPosition(\n\t\ttriggerRef,\n\t\ttooltipRef,\n\t\t{\n\t\t\talign: anchor,\n\t\t\tposition: position\n\t\t},\n\t\tdisplay === 'show',\n\t\t-1\n\t);\n\n\tconst inlineStyles = {\n\t\tmenu: {\n\t\t\tleft: positionStyles.left,\n\t\t\tposition: 'fixed' as const,\n\t\t\ttop: positionStyles.top\n\t\t}\n\t};\n\n\tconst transitions = useTransition(display === 'show', {\n\t\tconfig: { duration: display === 'show' ? 150 : 25 },\n\t\tenter: { opacity: 1 },\n\t\tfrom: { opacity: 0 },\n\t\tleave: { opacity: 0 }\n\t});\n\n\treturn (\n\t\t<>\n\t\t\t{React.Children.map(children, (child, index) => {\n\t\t\t\tif (index === 0 && React.isValidElement(child)) {\n\t\t\t\t\tconst {\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\tonBlur,\n\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\tonKeyDown,\n\t\t\t\t\t\tonMouseOver,\n\t\t\t\t\t\tonMouseOut,\n\t\t\t\t\t\tonMouseUp,\n\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t...otherProps\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t} = (child as any).props;\n\n\t\t\t\t\treturn React.cloneElement(child as React.ReactElement, {\n\t\t\t\t\t\t'aria-describedby': display === 'show' && srAnnouncement ? id : undefined,\n\t\t\t\t\t\tclassName: classNames(\n\t\t\t\t\t\t\ttooltipClass,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\t'mrl-tooltip-trigger',\n\t\t\t\t\t\t\tdisplay === 'show' && 'mrl-tooltip-trigger--active'\n\t\t\t\t\t\t),\n\t\t\t\t\t\tonBlur: curryHandlers(onBlur, handleHideTooltip),\n\t\t\t\t\t\t...(clickToClose && !disableTooltipHover\n\t\t\t\t\t\t\t? { onMouseUp: curryHandlers(onMouseUp, handleHideTooltip) }\n\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\tonFocus: curryHandlers(onFocus, handleFocus),\n\t\t\t\t\t\tonKeyDown: curryHandlers(onKeyDown, handleKeyDown),\n\t\t\t\t\t\tonMouseOut: curryHandlers(onMouseOut, handleHideTooltip),\n\t\t\t\t\t\tonMouseOver: curryHandlers(onMouseOver, handleShowTooltip),\n\t\t\t\t\t\t...otherProps,\n\t\t\t\t\t\tchildren,\n\t\t\t\t\t\t['data-tooltip-id']: id\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn child;\n\t\t\t})}\n\t\t\t<MrlPortal\n\t\t\t\tid={PORTAL_LAYERS.TOOLTIP.name}\n\t\t\t\tlayer={PORTAL_LAYERS.TOOLTIP}\n\t\t\t\tclassName={PORTAL_LAYERS.TOOLTIP.name}\n\t\t\t\tdata-qa={PORTAL_LAYERS.TOOLTIP.name}\n\t\t\t>\n\t\t\t\t{transitions(\n\t\t\t\t\t(style, item) =>\n\t\t\t\t\t\titem && (\n\t\t\t\t\t\t\t<animated.div ref={tooltipRef} style={{ ...inlineStyles.menu, ...style }}>\n\t\t\t\t\t\t\t\t<MrlTooltipContent\n\t\t\t\t\t\t\t\t\t{...rest}\n\t\t\t\t\t\t\t\t\tattrs={attrs}\n\t\t\t\t\t\t\t\t\tanchor={anchor}\n\t\t\t\t\t\t\t\t\tdataQa={dataQa}\n\t\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\t\tposition={position}\n\t\t\t\t\t\t\t\t\ttext={text}\n\t\t\t\t\t\t\t\t\ttooltipContentClass={tooltipContentClass}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</animated.div>\n\t\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t</MrlPortal>\n\t\t</>\n\t);\n});\n\nMrlTooltip.displayName = 'MrlTooltip';\n"],"names":["MrlTooltip","React","memo","props","children","_props$clickToClose","clickToClose","_props$disableTooltip","disableTooltipHover","_props$display","display","defaultDisplay","text","_props$attrs","attrs","dataQa","_props$position","position","MrlTooltipDefaults","_props$anchor","anchor","_props$srAnnouncement","srAnnouncement","tooltipClass","tooltipContentClass","rest","_objectWithoutProperties","_excluded","_React$useState","useState","_React$useState2","_slicedToArray","interaction","setInteraction","triggerRef","useRef","tooltipRef","_React$useState3","_React$useState4","setDisplay","_React$useState5","_React$useState6","id","setId","handleShowTooltip","useCallback","handleFocus","handleHideTooltip","handleKeyDown","e","key","handleSetKeyboardInteraction","handlesetMouseInteraction","useEffect","getUniqueId","trigger","document","querySelector","concat","current","currentTooltipRef","addEventListener","removeEventListener","positionStyles","useTooltipPosition","align","inlineStyles","menu","left","top","transitions","useTransition","config","duration","enter","opacity","from","leave","createElement","Fragment","Children","map","child","index","isValidElement","_props","className","onBlur","onFocus","onKeyDown","onMouseOver","onMouseOut","onMouseUp","otherProps","_excluded2","cloneElement","_objectSpread","undefined","classNames","curryHandlers","MrlPortal","PORTAL_LAYERS","TOOLTIP","name","layer","style","item","animated","div","ref","MrlTooltipContent","_extends","displayName"],"mappings":"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"}
@@ -4,7 +4,7 @@ import classnames from 'classnames';
4
4
  import { MrlTooltipDefaults } from '../constants.js';
5
5
  import { setAttributes, setClasses } from '../../../utils/setAttributes/setAttributes.js';
6
6
 
7
- var _excluded = ["anchor", "attrs", "dataQa", "id", "kind", "position", "text", "tooltipContentClass", "customRender"];
7
+ var _excluded = ["anchor", "attrs", "dataQa", "id", "position", "text", "tooltipContentClass", "customRender"];
8
8
  /**
9
9
  * MrlTooltipContent Component
10
10
  *
@@ -18,7 +18,6 @@ var MrlTooltipContent = props => {
18
18
  attrs = props.attrs,
19
19
  dataQa = props.dataQa,
20
20
  id = props.id,
21
- kind = props.kind,
22
21
  position = props.position,
23
22
  text = props.text,
24
23
  tooltipContentClass = props.tooltipContentClass,
@@ -29,7 +28,6 @@ var MrlTooltipContent = props => {
29
28
  var tooltipClasses = classnames('mrl-tooltip-content', {
30
29
  ["".concat(classes)]: classes !== undefined,
31
30
  'has-custom-render': typeof customRender === 'function',
32
- 'mrl-tooltip-content--inverse': kind === 'inverse',
33
31
  ["".concat(tooltipContentClass)]: tooltipContentClass !== undefined
34
32
  });
35
33
  return /*#__PURE__*/React.createElement("div", _extends({}, rest, {
@@ -1 +1 @@
1
- {"version":3,"file":"MrlTooltipContent.js","sources":["../../../../../src/components/tooltip/MrlTooltipContent/MrlTooltipContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { AttrsObject, setAttributes, setClasses } from '../../../utils';\nimport {\n\tMrlTooltipAnchor,\n\tMrlTooltipDefaults,\n\tMrlTooltipPosition,\n\tMrlTooltipVariant\n} from '../constants';\nimport './MrlTooltipContent.global.scss';\n\ninterface MrlTooltipContentProps {\n\t/**\n\t * The arrow position of the tooltip in relation to its trigger's content.\n\t * Note, if the content is shorter than the width of the trigger, always use\n\t * \"center\" to ensure the arrow does not become misaligned.\n\t */\n\tanchor: MrlTooltipAnchor;\n\n\t/**\n\t * Attributes that are applied to the component during the initial render.\n\t *\n\t * Example usage: html attributes, custom data attributes (data-qa), aria\n\t * @deprecated please use props for component instead\n\t */\n\tattrs: AttrsObject;\n\n\t/** dataQa attribute for tooltip */\n\tdataQa?: string;\n\n\t/** The kind of tooltip to be rendered */\n\tkind: MrlTooltipVariant;\n\n\t/** The id of the tooltip used for aria-describedby in the parent component */\n\tid?: string;\n\n\t/** The placement of the tooltip in relation to its trigger */\n\tposition: MrlTooltipPosition;\n\n\t/** The tooltip content to display */\n\ttext: string;\n\n\t/** A class to be applied ot the tooltip content */\n\ttooltipContentClass?: string;\n\n\t/** A custom render function to render the tooltip content */\n\tcustomRender?: (text?: string) => React.ReactNode;\n}\n\n/**\n * MrlTooltipContent Component\n *\n * The tooltip content is the text that is displayed when the user hovers over the trigger.\n * IMPORTANT: This component is not intended to be used directly, it should always be a child of MrlTooltip.\n * @param {MrlTooltipContentProps} props - the props of the tooltip content\n * @returns {HTMLElement} a configured Tooltip Content component\n */\nexport const MrlTooltipContent = (props: MrlTooltipContentProps): React.ReactElement => {\n\tconst {\n\t\tanchor,\n\t\tattrs,\n\t\tdataQa,\n\t\tid,\n\t\tkind,\n\t\tposition,\n\t\ttext,\n\t\ttooltipContentClass,\n\t\tcustomRender,\n\t\t...rest\n\t} = props;\n\n\tconst attributes = setAttributes(attrs, MrlTooltipDefaults.attrs);\n\tconst classes = setClasses(attrs, {});\n\tconst tooltipClasses = classnames('mrl-tooltip-content', {\n\t\t[`${classes}`]: classes !== undefined,\n\t\t'has-custom-render': typeof customRender === 'function',\n\t\t'mrl-tooltip-content--inverse': kind === 'inverse',\n\t\t[`${tooltipContentClass}`]: tooltipContentClass !== undefined\n\t});\n\n\treturn (\n\t\t<div\n\t\t\t{...rest}\n\t\t\tdata-anchor={anchor}\n\t\t\tdata-position={position}\n\t\t\tdata-qa={dataQa}\n\t\t\tid={id}\n\t\t\trole=\"tooltip\"\n\t\t\t{...attributes}\n\t\t\tclassName={tooltipClasses}\n\t\t>\n\t\t\t{customRender && typeof customRender === 'function' ? customRender(text) : text}\n\t\t\t<div className=\"mrl-tooltip-content__hover\" />\n\t\t</div>\n\t);\n};\n"],"names":["MrlTooltipContent","props","anchor","attrs","dataQa","id","kind","position","text","tooltipContentClass","customRender","rest","_objectWithoutProperties","_excluded","attributes","setAttributes","MrlTooltipDefaults","classes","setClasses","tooltipClasses","classnames","concat","undefined","React","createElement","_extends","role","className"],"mappings":";;;;;;;AAiDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,iBAAiB,GAAIC,KAA6B,IAAyB;AACvF,EAAA,IACCC,MAAM,GAUHD,KAAK,CAVRC,MAAM;IACNC,KAAK,GASFF,KAAK,CATRE,KAAK;IACLC,MAAM,GAQHH,KAAK,CARRG,MAAM;IACNC,EAAE,GAOCJ,KAAK,CAPRI,EAAE;IACFC,IAAI,GAMDL,KAAK,CANRK,IAAI;IACJC,QAAQ,GAKLN,KAAK,CALRM,QAAQ;IACRC,IAAI,GAIDP,KAAK,CAJRO,IAAI;IACJC,mBAAmB,GAGhBR,KAAK,CAHRQ,mBAAmB;IACnBC,YAAY,GAETT,KAAK,CAFRS,YAAY;AACTC,IAAAA,IAAI,GAAAC,wBAAA,CACJX,KAAK,EAAAY,SAAA,CAAA;EAET,IAAMC,UAAU,GAAGC,aAAa,CAACZ,KAAK,EAAEa,kBAAkB,CAACb,KAAK,CAAC;EACjE,IAAMc,OAAO,GAAGC,UAAU,CAACf,KAAK,EAAE,EAAE,CAAC;AACrC,EAAA,IAAMgB,cAAc,GAAGC,UAAU,CAAC,qBAAqB,EAAE;AACxD,IAAA,CAAA,EAAA,CAAAC,MAAA,CAAIJ,OAAO,CAAA,GAAKA,OAAO,KAAKK,SAAS;AACrC,IAAA,mBAAmB,EAAE,OAAOZ,YAAY,KAAK,UAAU;IACvD,8BAA8B,EAAEJ,IAAI,KAAK,SAAS;AAClD,IAAA,CAAA,EAAA,CAAAe,MAAA,CAAIZ,mBAAmB,CAAA,GAAKA,mBAAmB,KAAKa;AACrD,GAAC,CAAC;AAEF,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,KACKd,IAAI,EAAA;AACR,IAAA,aAAA,EAAaT,MAAO;AACpB,IAAA,eAAA,EAAeK,QAAS;AACxB,IAAA,SAAA,EAASH,MAAO;AAChBC,IAAAA,EAAE,EAAEA,EAAG;AACPqB,IAAAA,IAAI,EAAC;AAAS,GAAA,EACVZ,UAAU,EAAA;AACda,IAAAA,SAAS,EAAER;AAAe,GAAA,CAAA,EAEzBT,YAAY,IAAI,OAAOA,YAAY,KAAK,UAAU,GAAGA,YAAY,CAACF,IAAI,CAAC,GAAGA,IAAI,eAC/Ee,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKG,IAAAA,SAAS,EAAC;AAA4B,GAAE,CACzC,CAAC;AAER;;;;"}
1
+ {"version":3,"file":"MrlTooltipContent.js","sources":["../../../../../src/components/tooltip/MrlTooltipContent/MrlTooltipContent.tsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport { AttrsObject, setAttributes, setClasses } from '../../../utils';\nimport { MrlTooltipAnchor, MrlTooltipDefaults, MrlTooltipPosition } from '../constants';\nimport './MrlTooltipContent.global.scss';\n\ninterface MrlTooltipContentProps {\n\t/**\n\t * The arrow position of the tooltip in relation to its trigger's content.\n\t * Note, if the content is shorter than the width of the trigger, always use\n\t * \"center\" to ensure the arrow does not become misaligned.\n\t */\n\tanchor: MrlTooltipAnchor;\n\n\t/**\n\t * Attributes that are applied to the component during the initial render.\n\t *\n\t * Example usage: html attributes, custom data attributes (data-qa), aria\n\t * @deprecated please use props for component instead\n\t */\n\tattrs: AttrsObject;\n\n\t/** dataQa attribute for tooltip */\n\tdataQa?: string;\n\n\t/** The id of the tooltip used for aria-describedby in the parent component */\n\tid?: string;\n\n\t/** The placement of the tooltip in relation to its trigger */\n\tposition: MrlTooltipPosition;\n\n\t/** The tooltip content to display */\n\ttext: string;\n\n\t/** A class to be applied ot the tooltip content */\n\ttooltipContentClass?: string;\n\n\t/** A custom render function to render the tooltip content */\n\tcustomRender?: (text?: string) => React.ReactNode;\n}\n\n/**\n * MrlTooltipContent Component\n *\n * The tooltip content is the text that is displayed when the user hovers over the trigger.\n * IMPORTANT: This component is not intended to be used directly, it should always be a child of MrlTooltip.\n * @param {MrlTooltipContentProps} props - the props of the tooltip content\n * @returns {HTMLElement} a configured Tooltip Content component\n */\nexport const MrlTooltipContent = (props: MrlTooltipContentProps): React.ReactElement => {\n\tconst { anchor, attrs, dataQa, id, position, text, tooltipContentClass, customRender, ...rest } =\n\t\tprops;\n\n\tconst attributes = setAttributes(attrs, MrlTooltipDefaults.attrs);\n\tconst classes = setClasses(attrs, {});\n\tconst tooltipClasses = classnames('mrl-tooltip-content', {\n\t\t[`${classes}`]: classes !== undefined,\n\t\t'has-custom-render': typeof customRender === 'function',\n\t\t[`${tooltipContentClass}`]: tooltipContentClass !== undefined\n\t});\n\n\treturn (\n\t\t<div\n\t\t\t{...rest}\n\t\t\tdata-anchor={anchor}\n\t\t\tdata-position={position}\n\t\t\tdata-qa={dataQa}\n\t\t\tid={id}\n\t\t\trole=\"tooltip\"\n\t\t\t{...attributes}\n\t\t\tclassName={tooltipClasses}\n\t\t>\n\t\t\t{customRender && typeof customRender === 'function' ? customRender(text) : text}\n\t\t\t<div className=\"mrl-tooltip-content__hover\" />\n\t\t</div>\n\t);\n};\n"],"names":["MrlTooltipContent","props","anchor","attrs","dataQa","id","position","text","tooltipContentClass","customRender","rest","_objectWithoutProperties","_excluded","attributes","setAttributes","MrlTooltipDefaults","classes","setClasses","tooltipClasses","classnames","concat","undefined","React","createElement","_extends","role","className"],"mappings":";;;;;;;AAyCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,iBAAiB,GAAIC,KAA6B,IAAyB;AACvF,EAAA,IAAQC,MAAM,GACbD,KAAK,CADEC,MAAM;IAAEC,KAAK,GACpBF,KAAK,CADUE,KAAK;IAAEC,MAAM,GAC5BH,KAAK,CADiBG,MAAM;IAAEC,EAAE,GAChCJ,KAAK,CADyBI,EAAE;IAAEC,QAAQ,GAC1CL,KAAK,CAD6BK,QAAQ;IAAEC,IAAI,GAChDN,KAAK,CADuCM,IAAI;IAAEC,mBAAmB,GACrEP,KAAK,CAD6CO,mBAAmB;IAAEC,YAAY,GACnFR,KAAK,CADkEQ,YAAY;AAAKC,IAAAA,IAAI,GAAAC,wBAAA,CAC5FV,KAAK,EAAAW,SAAA,CAAA;EAEN,IAAMC,UAAU,GAAGC,aAAa,CAACX,KAAK,EAAEY,kBAAkB,CAACZ,KAAK,CAAC;EACjE,IAAMa,OAAO,GAAGC,UAAU,CAACd,KAAK,EAAE,EAAE,CAAC;AACrC,EAAA,IAAMe,cAAc,GAAGC,UAAU,CAAC,qBAAqB,EAAE;AACxD,IAAA,CAAA,EAAA,CAAAC,MAAA,CAAIJ,OAAO,CAAA,GAAKA,OAAO,KAAKK,SAAS;AACrC,IAAA,mBAAmB,EAAE,OAAOZ,YAAY,KAAK,UAAU;AACvD,IAAA,CAAA,EAAA,CAAAW,MAAA,CAAIZ,mBAAmB,CAAA,GAAKA,mBAAmB,KAAKa;AACrD,GAAC,CAAC;AAEF,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,KACKd,IAAI,EAAA;AACR,IAAA,aAAA,EAAaR,MAAO;AACpB,IAAA,eAAA,EAAeI,QAAS;AACxB,IAAA,SAAA,EAASF,MAAO;AAChBC,IAAAA,EAAE,EAAEA,EAAG;AACPoB,IAAAA,IAAI,EAAC;AAAS,GAAA,EACVZ,UAAU,EAAA;AACda,IAAAA,SAAS,EAAER;AAAe,GAAA,CAAA,EAEzBT,YAAY,IAAI,OAAOA,YAAY,KAAK,UAAU,GAAGA,YAAY,CAACF,IAAI,CAAC,GAAGA,IAAI,eAC/Ee,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKG,IAAAA,SAAS,EAAC;AAA4B,GAAE,CACzC,CAAC;AAER;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/components/tooltip/constants.ts"],"sourcesContent":["import { AttrsObject } from '../../utils';\n\n/**\n * Defines all the values allowed for tooltip props.\n * Used for Storybook and testing\n */\nexport const allowedMrlTooltipValues = {\n\tanchors: ['start', 'center', 'end'] as const,\n\tpositions: ['top', 'bottom', 'left', 'right'] as const,\n\tstate: ['show', 'hide'] as const\n};\n\nexport type MrlTooltipPosition = (typeof allowedMrlTooltipValues.positions)[number];\nexport type MrlTooltipAnchor = (typeof allowedMrlTooltipValues.anchors)[number];\nexport type MrlTooltipState = (typeof allowedMrlTooltipValues.state)[number];\n\nexport interface MrlTooltipDefaults {\n\tanchor: MrlTooltipAnchor;\n\tattrs: AttrsObject;\n\tposition: MrlTooltipPosition;\n\tstate: MrlTooltipState;\n}\n\n/**\n * Default values for props on the Tooltip component;\n * Shared between the component and Storybook\n */\nexport const MrlTooltipDefaults: MrlTooltipDefaults = {\n\tanchor: 'center',\n\tattrs: {},\n\tposition: 'right',\n\tstate: 'hide'\n};\n\nexport type MrlTooltipVariant = 'default' | 'inverse';\n\nexport type TooltipAlignment = 'start' | 'end' | 'center';\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n"],"names":["allowedMrlTooltipValues","anchors","positions","state","MrlTooltipDefaults","anchor","attrs","position"],"mappings":"AAEA;AACA;AACA;AACA;AACO,IAAMA,uBAAuB,GAAG;AACtCC,EAAAA,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAU;EAC5CC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU;AACtDC,EAAAA,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM;AACvB;AAaA;AACA;AACA;AACA;AACO,IAAMC,kBAAsC,GAAG;AACrDC,EAAAA,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,EAAE;AACTC,EAAAA,QAAQ,EAAE,OAAO;AACjBJ,EAAAA,KAAK,EAAE;AACR;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/components/tooltip/constants.ts"],"sourcesContent":["import { AttrsObject } from '../../utils';\n\n/**\n * Defines all the values allowed for tooltip props.\n * Used for Storybook and testing\n */\nexport const allowedMrlTooltipValues = {\n\tanchors: ['start', 'center', 'end'] as const,\n\tpositions: ['top', 'bottom', 'left', 'right'] as const,\n\tstate: ['show', 'hide'] as const\n};\n\nexport type MrlTooltipPosition = (typeof allowedMrlTooltipValues.positions)[number];\nexport type MrlTooltipAnchor = (typeof allowedMrlTooltipValues.anchors)[number];\nexport type MrlTooltipState = (typeof allowedMrlTooltipValues.state)[number];\n\nexport interface MrlTooltipDefaults {\n\tanchor: MrlTooltipAnchor;\n\tattrs: AttrsObject;\n\tposition: MrlTooltipPosition;\n\tstate: MrlTooltipState;\n}\n\n/**\n * Default values for props on the Tooltip component;\n * Shared between the component and Storybook\n */\nexport const MrlTooltipDefaults: MrlTooltipDefaults = {\n\tanchor: 'center',\n\tattrs: {},\n\tposition: 'right',\n\tstate: 'hide'\n};\n\nexport type TooltipAlignment = 'start' | 'end' | 'center';\nexport type TooltipPosition = 'top' | 'bottom' | 'left' | 'right';\n"],"names":["allowedMrlTooltipValues","anchors","positions","state","MrlTooltipDefaults","anchor","attrs","position"],"mappings":"AAEA;AACA;AACA;AACA;AACO,IAAMA,uBAAuB,GAAG;AACtCC,EAAAA,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAU;EAC5CC,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAU;AACtDC,EAAAA,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM;AACvB;AAaA;AACA;AACA;AACA;AACO,IAAMC,kBAAsC,GAAG;AACrDC,EAAAA,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,EAAE;AACTC,EAAAA,QAAQ,EAAE,OAAO;AACjBJ,EAAAA,KAAK,EAAE;AACR;;;;"}