@openedx/paragon 22.0.0-alpha.23 → 22.0.0-alpha.24

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 (135) hide show
  1. package/dist/Button/index.js +2 -2
  2. package/dist/Button/index.js.map +1 -1
  3. package/dist/Button/index.scss +3 -3
  4. package/dist/ColorPicker/index.js +48 -18
  5. package/dist/ColorPicker/index.js.map +1 -1
  6. package/dist/Container/index.js +6 -2
  7. package/dist/Container/index.js.map +1 -1
  8. package/dist/DataTable/index.js +2 -1
  9. package/dist/DataTable/index.js.map +1 -1
  10. package/dist/DataTable/selection/BaseSelectionStatus.js +3 -2
  11. package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
  12. package/dist/Dropdown/index.js.map +1 -1
  13. package/dist/Dropzone/index.js +2 -3
  14. package/dist/Dropzone/index.js.map +1 -1
  15. package/dist/Form/FormAutosuggest.js +9 -4
  16. package/dist/Form/FormAutosuggest.js.map +1 -1
  17. package/dist/Form/FormSwitch.js +3 -0
  18. package/dist/Form/FormSwitch.js.map +1 -1
  19. package/dist/Hyperlink/index.js +7 -6
  20. package/dist/Hyperlink/index.js.map +1 -1
  21. package/dist/Icon/index.js +18 -11
  22. package/dist/Icon/index.js.map +1 -1
  23. package/dist/IconButton/index.js +1 -1
  24. package/dist/IconButton/index.js.map +1 -1
  25. package/dist/Layout/index.js.map +1 -1
  26. package/dist/Menu/MenuItem.js +2 -2
  27. package/dist/Menu/MenuItem.js.map +1 -1
  28. package/dist/Modal/ModalDialog.js +3 -0
  29. package/dist/Modal/ModalDialog.js.map +1 -1
  30. package/dist/Popover/index.js +8 -8
  31. package/dist/Popover/index.js.map +1 -1
  32. package/dist/ProductTour/Checkpoint.js +10 -8
  33. package/dist/ProductTour/Checkpoint.js.map +1 -1
  34. package/dist/ProductTour/messages.js +16 -0
  35. package/dist/SearchField/SearchFieldAdvanced.js +12 -7
  36. package/dist/SearchField/SearchFieldAdvanced.js.map +1 -1
  37. package/dist/SearchField/SearchFieldLabel.js +3 -3
  38. package/dist/SearchField/SearchFieldLabel.js.map +1 -1
  39. package/dist/SearchField/index.js +0 -1
  40. package/dist/SearchField/index.js.map +1 -1
  41. package/dist/Tabs/index.js +13 -13
  42. package/dist/Tabs/index.js.map +1 -1
  43. package/dist/core.css +8 -6
  44. package/dist/core.css.map +1 -1
  45. package/dist/core.min.css +1 -1
  46. package/dist/hooks/useIndexOfLastVisibleChild.js +33 -38
  47. package/dist/hooks/useIndexOfLastVisibleChild.js.map +1 -1
  48. package/dist/i18n/messages/ar.json +2 -1
  49. package/dist/i18n/messages/ca.json +2 -1
  50. package/dist/i18n/messages/es_419.json +2 -1
  51. package/dist/i18n/messages/es_AR.json +2 -1
  52. package/dist/i18n/messages/es_ES.json +2 -1
  53. package/dist/i18n/messages/fr.json +2 -1
  54. package/dist/i18n/messages/he.json +2 -1
  55. package/dist/i18n/messages/id.json +2 -1
  56. package/dist/i18n/messages/it_IT.json +2 -1
  57. package/dist/i18n/messages/ko_KR.json +2 -1
  58. package/dist/i18n/messages/pl.json +2 -1
  59. package/dist/i18n/messages/pt_BR.json +2 -1
  60. package/dist/i18n/messages/pt_PT.json +2 -1
  61. package/dist/i18n/messages/ru.json +2 -1
  62. package/dist/i18n/messages/th.json +2 -1
  63. package/dist/i18n/messages/tr_TR.json +2 -1
  64. package/dist/i18n/messages/uk.json +2 -1
  65. package/dist/i18n/messages/zh_CN.json +2 -1
  66. package/dist/light.css +11 -11
  67. package/dist/light.css.map +1 -1
  68. package/dist/light.min.css +1 -1
  69. package/icons/es5/RightSidebarFilled.js +15 -0
  70. package/icons/es5/RightSidebarOutlined.js +15 -0
  71. package/icons/es5/index.js +2 -0
  72. package/icons/jsx/RightSidebarFilled.jsx +19 -0
  73. package/icons/jsx/RightSidebarOutlined.jsx +19 -0
  74. package/icons/jsx/index.jsx +2 -0
  75. package/icons/svg/right_sidebar_filled.svg +3 -0
  76. package/icons/svg/right_sidebar_outlined.svg +3 -0
  77. package/package.json +3 -3
  78. package/src/Button/README.md +94 -68
  79. package/src/Button/index.jsx +2 -2
  80. package/src/Button/index.scss +3 -3
  81. package/src/ColorPicker/ColorPicker.test.jsx +24 -2
  82. package/src/ColorPicker/index.jsx +56 -16
  83. package/src/Container/index.jsx +4 -0
  84. package/src/DataTable/README.md +3 -3
  85. package/src/DataTable/index.jsx +2 -1
  86. package/src/DataTable/selection/BaseSelectionStatus.jsx +2 -2
  87. package/src/DataTable/tablefilters.mdx +3 -3
  88. package/src/DataTable/tests/DataTable.test.jsx +31 -0
  89. package/src/Dropdown/index.jsx +4 -0
  90. package/src/Dropzone/index.jsx +2 -3
  91. package/src/Form/FormAutosuggest.jsx +11 -5
  92. package/src/Form/FormSwitch.jsx +3 -0
  93. package/src/Form/form-autosuggest.mdx +80 -72
  94. package/src/Form/tests/FormAutosuggest.test.jsx +21 -0
  95. package/src/Hyperlink/index.jsx +7 -6
  96. package/src/Icon/index.jsx +18 -11
  97. package/src/IconButton/index.jsx +1 -1
  98. package/src/Layout/index.jsx +1 -4
  99. package/src/Menu/MenuItem.jsx +2 -2
  100. package/src/Modal/ModalDialog.jsx +3 -0
  101. package/src/Overlay/README.md +1 -1
  102. package/src/Popover/README.md +0 -1
  103. package/src/Popover/index.jsx +11 -11
  104. package/src/ProductTour/Checkpoint.jsx +9 -6
  105. package/src/ProductTour/messages.js +16 -0
  106. package/src/SearchField/SearchFieldAdvanced.jsx +12 -7
  107. package/src/SearchField/SearchFieldLabel.jsx +3 -3
  108. package/src/SearchField/index.jsx +0 -1
  109. package/src/SelectableBox/tests/SelectableBoxSet.test.jsx +1 -1
  110. package/src/Tabs/index.jsx +19 -13
  111. package/src/hooks/tests/useIndexOfLastVisibleChild.test.jsx +3 -3
  112. package/src/hooks/useIndexOfLastVisibleChild.jsx +36 -38
  113. package/src/hooks/useIndexOfLastVisibleChild.mdx +3 -3
  114. package/src/i18n/messages/ar.json +2 -1
  115. package/src/i18n/messages/ca.json +2 -1
  116. package/src/i18n/messages/es_419.json +2 -1
  117. package/src/i18n/messages/es_AR.json +2 -1
  118. package/src/i18n/messages/es_ES.json +2 -1
  119. package/src/i18n/messages/fr.json +2 -1
  120. package/src/i18n/messages/he.json +2 -1
  121. package/src/i18n/messages/id.json +2 -1
  122. package/src/i18n/messages/it_IT.json +2 -1
  123. package/src/i18n/messages/ko_KR.json +2 -1
  124. package/src/i18n/messages/pl.json +2 -1
  125. package/src/i18n/messages/pt_BR.json +2 -1
  126. package/src/i18n/messages/pt_PT.json +2 -1
  127. package/src/i18n/messages/ru.json +2 -1
  128. package/src/i18n/messages/th.json +2 -1
  129. package/src/i18n/messages/tr_TR.json +2 -1
  130. package/src/i18n/messages/uk.json +2 -1
  131. package/src/i18n/messages/zh_CN.json +2 -1
  132. package/styles/css/core/variables.css +5 -3
  133. package/styles/css/themes/light/variables.css +11 -11
  134. package/tokens/src/core/components/Button/core.json +8 -4
  135. package/tokens/src/themes/light/alias/color.json +10 -10
@@ -60,10 +60,10 @@ Button.propTypes = _objectSpread(_objectSpread({}, Button.propTypes), {}, {
60
60
  variant: PropTypes.string,
61
61
  /** An icon component to render.
62
62
  * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';` */
63
- iconBefore: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
63
+ iconBefore: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),
64
64
  /** An icon component to render.
65
65
  * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';` */
66
- iconAfter: PropTypes.oneOfType([PropTypes.func, PropTypes.node])
66
+ iconAfter: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node])
67
67
  });
68
68
  Button.defaultProps = _objectSpread(_objectSpread({}, Button.defaultProps), {}, {
69
69
  children: undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseButton","BaseButtonGroup","BaseButtonToolbar","Icon","Button","forwardRef","_ref","ref","children","iconAfter","iconBefore","props","_objectWithoutProperties","_excluded","createElement","_extends","className","size","src","propTypes","_objectSpread","string","disabled","bool","node","isRequired","onClick","func","onKeyDown","type","variant","oneOfType","defaultProps","undefined","ButtonGroup","ButtonToolbar","as","elementType","role","oneOf","toggle","vertical","bsPrefix"],"sources":["../../src/Button/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseButton from 'react-bootstrap/Button';\nimport BaseButtonGroup from 'react-bootstrap/ButtonGroup';\nimport BaseButtonToolbar from 'react-bootstrap/ButtonToolbar';\n\nimport Icon from '../Icon';\n\nconst Button = React.forwardRef(({\n children,\n iconAfter,\n iconBefore,\n ...props\n}, ref) => (\n <BaseButton\n {...props}\n className={classNames(props.className)}\n ref={ref}\n >\n {iconBefore && <Icon className=\"btn-icon-before\" size={props.size} src={iconBefore} />}\n {children}\n {iconAfter && <Icon className=\"btn-icon-after\" size={props.size} src={iconAfter} />}\n </BaseButton>\n));\n\nButton.propTypes = {\n ...Button.propTypes,\n /** Specifies class name to apply to the button */\n className: PropTypes.string,\n /** Disables the Button, preventing mouse events, even if the underlying component is an `<a>` element */\n disabled: PropTypes.bool,\n /** Specifies the text that is displayed within the button. */\n children: PropTypes.node.isRequired,\n /** A function that would specify what the button should do when the `onClick` event is triggered.\n * For example, the button could launch a `Modal`. The default is an empty function. */\n onClick: PropTypes.func,\n /** A function that would specify what the button should do when the `onKeyDown` event is triggered.\n * For example, this could handle using the `Escape` key to trigger the button's action.\n * The default is an empty function. */\n onKeyDown: PropTypes.func,\n /** Used to set the `type` attribute on the `button` tag. The default type is `button`. */\n type: PropTypes.string,\n /** Specifies variant to use.\n * Can be on of the base variants: `primary`, `secondary`, `success`, `danger`, `warning`, `info`, `dark`,\n * `light`, `link`\n *\n * as well as one of the customized variants (= base variant prefixed with `inverse-`, `outline-`\n * or `inverse-outline-`)\n * */\n variant: PropTypes.string,\n /** An icon component to render.\n * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';` */\n iconBefore: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n /** An icon component to render.\n * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';` */\n iconAfter: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n};\n\nButton.defaultProps = {\n ...Button.defaultProps,\n children: undefined,\n className: undefined,\n iconBefore: undefined,\n iconAfter: undefined,\n disabled: false,\n};\n\nfunction ButtonGroup(props) {\n return <BaseButtonGroup {...props} />;\n}\nfunction ButtonToolbar(props) {\n return <BaseButtonToolbar {...props} />;\n}\n\nButtonGroup.propTypes = {\n /** Specifies element type for this component. */\n as: PropTypes.elementType,\n /** An ARIA role describing the button group. */\n role: PropTypes.string,\n /** Specifies the size for all Buttons in the group. */\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n /** Display as a button toggle group. */\n toggle: PropTypes.bool,\n /** Specifies if the set of Buttons should appear vertically stacked. */\n vertical: PropTypes.bool,\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nButtonGroup.defaultProps = {\n as: 'div',\n role: 'group',\n toggle: false,\n vertical: false,\n bsPrefix: 'btn-group',\n size: 'md',\n};\n\nButtonToolbar.propTypes = {\n /** An ARIA role describing the button group. */\n role: PropTypes.string,\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nButtonToolbar.defaultProps = {\n role: 'toolbar',\n bsPrefix: 'btn-toolbar',\n};\n\nexport default Button;\nexport { ButtonGroup, ButtonToolbar };\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","BaseButton","BaseButtonGroup","BaseButtonToolbar","Icon","Button","forwardRef","_ref","ref","children","iconAfter","iconBefore","props","_objectWithoutProperties","_excluded","createElement","_extends","className","size","src","propTypes","_objectSpread","string","disabled","bool","node","isRequired","onClick","func","onKeyDown","type","variant","oneOfType","elementType","defaultProps","undefined","ButtonGroup","ButtonToolbar","as","role","oneOf","toggle","vertical","bsPrefix"],"sources":["../../src/Button/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport BaseButton from 'react-bootstrap/Button';\nimport BaseButtonGroup from 'react-bootstrap/ButtonGroup';\nimport BaseButtonToolbar from 'react-bootstrap/ButtonToolbar';\n\nimport Icon from '../Icon';\n\nconst Button = React.forwardRef(({\n children,\n iconAfter,\n iconBefore,\n ...props\n}, ref) => (\n <BaseButton\n {...props}\n className={classNames(props.className)}\n ref={ref}\n >\n {iconBefore && <Icon className=\"btn-icon-before\" size={props.size} src={iconBefore} />}\n {children}\n {iconAfter && <Icon className=\"btn-icon-after\" size={props.size} src={iconAfter} />}\n </BaseButton>\n));\n\nButton.propTypes = {\n ...Button.propTypes,\n /** Specifies class name to apply to the button */\n className: PropTypes.string,\n /** Disables the Button, preventing mouse events, even if the underlying component is an `<a>` element */\n disabled: PropTypes.bool,\n /** Specifies the text that is displayed within the button. */\n children: PropTypes.node.isRequired,\n /** A function that would specify what the button should do when the `onClick` event is triggered.\n * For example, the button could launch a `Modal`. The default is an empty function. */\n onClick: PropTypes.func,\n /** A function that would specify what the button should do when the `onKeyDown` event is triggered.\n * For example, this could handle using the `Escape` key to trigger the button's action.\n * The default is an empty function. */\n onKeyDown: PropTypes.func,\n /** Used to set the `type` attribute on the `button` tag. The default type is `button`. */\n type: PropTypes.string,\n /** Specifies variant to use.\n * Can be on of the base variants: `primary`, `secondary`, `success`, `danger`, `warning`, `info`, `dark`,\n * `light`, `link`\n *\n * as well as one of the customized variants (= base variant prefixed with `inverse-`, `outline-`\n * or `inverse-outline-`)\n * */\n variant: PropTypes.string,\n /** An icon component to render.\n * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';` */\n iconBefore: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n /** An icon component to render.\n * Example import of a Paragon icon component: `import { Check } from '@edx/paragon/icons';` */\n iconAfter: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n};\n\nButton.defaultProps = {\n ...Button.defaultProps,\n children: undefined,\n className: undefined,\n iconBefore: undefined,\n iconAfter: undefined,\n disabled: false,\n};\n\nfunction ButtonGroup(props) {\n return <BaseButtonGroup {...props} />;\n}\nfunction ButtonToolbar(props) {\n return <BaseButtonToolbar {...props} />;\n}\n\nButtonGroup.propTypes = {\n /** Specifies element type for this component. */\n as: PropTypes.elementType,\n /** An ARIA role describing the button group. */\n role: PropTypes.string,\n /** Specifies the size for all Buttons in the group. */\n size: PropTypes.oneOf(['sm', 'md', 'lg']),\n /** Display as a button toggle group. */\n toggle: PropTypes.bool,\n /** Specifies if the set of Buttons should appear vertically stacked. */\n vertical: PropTypes.bool,\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nButtonGroup.defaultProps = {\n as: 'div',\n role: 'group',\n toggle: false,\n vertical: false,\n bsPrefix: 'btn-group',\n size: 'md',\n};\n\nButtonToolbar.propTypes = {\n /** An ARIA role describing the button group. */\n role: PropTypes.string,\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nButtonToolbar.defaultProps = {\n role: 'toolbar',\n bsPrefix: 'btn-toolbar',\n};\n\nexport default Button;\nexport { ButtonGroup, ButtonToolbar };\n"],"mappings":"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"}
@@ -41,15 +41,15 @@
41
41
  bottom: calc(var(--pgn-spacing-btn-focus-distance-to-border) * -1);
42
42
  left: calc(var(--pgn-spacing-btn-focus-distance-to-border) * -1);
43
43
  border: solid var(--pgn-size-btn-focus-width) var(--pgn-btn-focus-outline-color, var(--pgn-color-body-base));
44
- border-radius: var(--pgn-size-btn-focus-border-radius);
44
+ border-radius: var(--pgn-size-btn-focus-border-radius-base);
45
45
  }
46
46
 
47
47
  &.btn-lg::before {
48
- border-radius: var(--pgn-size-btn-focus-border-radius);
48
+ border-radius: var(--pgn-size-btn-focus-border-radius-lg);
49
49
  }
50
50
 
51
51
  &.btn-sm::before {
52
- border-radius: var(--pgn-size-btn-focus-border-radius);
52
+ border-radius: var(--pgn-size-btn-focus-border-radius-sm);
53
53
  }
54
54
 
55
55
  &:active,
@@ -3,7 +3,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
3
3
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
4
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
5
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
- import React, { useCallback, useEffect } from 'react';
6
+ import React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import classNames from 'classnames';
9
9
  import { HexColorPicker } from 'react-colorful';
@@ -22,23 +22,52 @@ function ColorPicker(_ref) {
22
22
  } = _ref;
23
23
  const [isOpen, open, close] = useToggle(false);
24
24
  const [target, setTarget] = React.useState(null);
25
- const [hexValid, setHexValid] = React.useState(true);
26
- const validateHex = useCallback(input => {
25
+ const colorIsValid = colorToValidate => {
27
26
  const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
28
- if (input.length > 1 && !input.startsWith('#')) {
29
- setColor(`#${input}`);
30
- } else {
31
- setColor(input);
27
+ return hexRegex.test(colorToValidate);
28
+ };
29
+ const formatHexColorString = colorString => {
30
+ if (!colorString.startsWith('#')) {
31
+ return `#${colorString}`.slice(0, 7);
32
32
  }
33
- if (input === '' || hexRegex.test(input) === true) {
33
+ return colorString.slice(0, 7);
34
+ };
35
+ const [hexValid, setHexValid] = React.useState(() => color === '' || colorIsValid(formatHexColorString(color)));
36
+ const [hexColorString, setHexColorString] = React.useState(() => {
37
+ if (color === '') {
38
+ return '';
39
+ }
40
+ return formatHexColorString(color);
41
+ });
42
+ const [colorToDisplay, setColorToDisplay] = React.useState(() => {
43
+ const formattedColor = formatHexColorString(color);
44
+ if (colorIsValid(formattedColor)) {
45
+ return formattedColor;
46
+ }
47
+ return '#fff';
48
+ });
49
+ const setValidatedColor = newColor => {
50
+ if (newColor === '') {
51
+ setHexValid(true);
52
+ setColor('');
53
+ setHexColorString('');
54
+ setColorToDisplay('#fff');
55
+ return;
56
+ }
57
+ const formattedColor = formatHexColorString(newColor);
58
+ if (colorIsValid(formattedColor)) {
34
59
  setHexValid(true);
35
- } else {
36
- setHexValid(false);
60
+ setColor(formattedColor);
61
+ setHexColorString(formattedColor);
62
+ setColorToDisplay(formattedColor);
63
+ return;
37
64
  }
38
- }, [setColor]);
65
+ setHexValid(false);
66
+ setHexColorString(formattedColor);
39
67
 
40
- // this is needed for when a user changes the color through the sliders
41
- useEffect(() => validateHex(color), [validateHex, color]);
68
+ // ensure the picker value stays in sync with the textbox
69
+ setColor(formattedColor);
70
+ };
42
71
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
43
72
  className: "d-flex"
44
73
  }, /*#__PURE__*/React.createElement(OverlayTrigger, {
@@ -66,8 +95,8 @@ function ColorPicker(_ref) {
66
95
  textAlign: 'start'
67
96
  }
68
97
  }, /*#__PURE__*/React.createElement(HexColorPicker, {
69
- color: color || '',
70
- onChange: setColor
98
+ color: colorToDisplay,
99
+ onChange: setValidatedColor
71
100
  }), /*#__PURE__*/React.createElement(Form.Group, {
72
101
  className: "pgn__hex-form",
73
102
  size: "sm"
@@ -76,9 +105,10 @@ function ColorPicker(_ref) {
76
105
  }, "Hex"), /*#__PURE__*/React.createElement(Form.Control, {
77
106
  className: "pgn__hex-field",
78
107
  isInvalid: !hexValid,
79
- value: color,
80
- onChange: e => validateHex(e.target.value),
81
- "data-testid": "hex-input"
108
+ value: hexColorString,
109
+ onChange: e => setValidatedColor(e.target.value),
110
+ "data-testid": "hex-input",
111
+ spellCheck: "false"
82
112
  })), !hexValid && /*#__PURE__*/React.createElement(Form.Control.Feedback, {
83
113
  className: "pgn__color-error",
84
114
  type: "invalid"
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","PropTypes","classNames","HexColorPicker","Button","Form","ModalPopup","OverlayTrigger","Tooltip","useToggle","ColorPicker","_ref","color","setColor","className","size","isOpen","open","close","target","setTarget","useState","hexValid","setHexValid","validateHex","input","hexRegex","length","startsWith","test","createElement","Fragment","placement","overlay","id","ref","style","_objectSpread","background","onClick","positionRef","onClose","textAlign","onChange","Group","Label","Control","isInvalid","value","e","Feedback","type","defaultProps","undefined","propTypes","string","func","isRequired","oneOf"],"sources":["../../src/ColorPicker/index.jsx"],"sourcesContent":["import React, { useCallback, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { HexColorPicker } from 'react-colorful';\n\nimport Button from '../Button';\nimport Form from '../Form';\nimport ModalPopup from '../Modal/ModalPopup';\nimport { OverlayTrigger } from '../Overlay';\nimport Tooltip from '../Tooltip';\nimport useToggle from '../hooks/useToggle';\n\nfunction ColorPicker({\n color, setColor, className, size,\n}) {\n const [isOpen, open, close] = useToggle(false);\n const [target, setTarget] = React.useState(null);\n const [hexValid, setHexValid] = React.useState(true);\n\n const validateHex = useCallback((input) => {\n const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n if (input.length > 1 && !input.startsWith('#')) {\n setColor(`#${input}`);\n } else {\n setColor(input);\n }\n if (input === '' || hexRegex.test(input) === true) {\n setHexValid(true);\n } else {\n setHexValid(false);\n }\n }, [setColor]);\n\n // this is needed for when a user changes the color through the sliders\n useEffect(() => validateHex(color), [validateHex, color]);\n\n return (\n <>\n <span className=\"d-flex\">\n <OverlayTrigger\n placement=\"top\"\n overlay={<Tooltip id=\"color-picker-tooltip\">Color picker</Tooltip>}\n >\n <Button\n ref={setTarget}\n className={classNames(\n className,\n 'pgn__color-picker',\n `pgn__color-picker-${size}`,\n )}\n style={{\n ...(color && hexValid ? { background: `${color}` } : {}),\n }}\n onClick={open}\n />\n </OverlayTrigger>\n </span>\n <ModalPopup\n positionRef={target}\n isOpen={isOpen}\n style={{ background: 'black' }}\n onClose={close}\n >\n <div\n className=\"pgn__color-modal rounded shadow\"\n style={{ textAlign: 'start' }}\n >\n <HexColorPicker color={color || ''} onChange={setColor} />\n <Form.Group className=\"pgn__hex-form\" size=\"sm\">\n <div>\n <Form.Label className=\"pgn__hex-label\">Hex</Form.Label>\n <Form.Control\n className=\"pgn__hex-field\"\n isInvalid={!hexValid}\n value={color}\n onChange={(e) => validateHex(e.target.value)}\n data-testid=\"hex-input\"\n />\n </div>\n {!hexValid && (\n <Form.Control.Feedback\n className=\"pgn__color-error\"\n type=\"invalid\"\n >\n Colors must be in hexadecimal format.\n </Form.Control.Feedback>\n )}\n </Form.Group>\n </div>\n </ModalPopup>\n </>\n );\n}\n\nColorPicker.defaultProps = {\n color: '',\n className: undefined,\n size: 'md',\n};\n\nColorPicker.propTypes = {\n /** A default hex code to preset the picker to display. */\n color: PropTypes.string,\n /** Passing setState function allows parent to alter the color. */\n setColor: PropTypes.func.isRequired,\n /** A class name to append to the base element. */\n className: PropTypes.string,\n /** Size of the color picker */\n size: PropTypes.oneOf(['sm', 'md']),\n};\n\nexport default ColorPicker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","HexColorPicker","Button","Form","ModalPopup","OverlayTrigger","Tooltip","useToggle","ColorPicker","_ref","color","setColor","className","size","isOpen","open","close","target","setTarget","useState","colorIsValid","colorToValidate","hexRegex","test","formatHexColorString","colorString","startsWith","slice","hexValid","setHexValid","hexColorString","setHexColorString","colorToDisplay","setColorToDisplay","formattedColor","setValidatedColor","newColor","createElement","Fragment","placement","overlay","id","ref","style","_objectSpread","background","onClick","positionRef","onClose","textAlign","onChange","Group","Label","Control","isInvalid","value","e","spellCheck","Feedback","type","defaultProps","undefined","propTypes","string","func","isRequired","oneOf"],"sources":["../../src/ColorPicker/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { HexColorPicker } from 'react-colorful';\n\nimport Button from '../Button';\nimport Form from '../Form';\nimport ModalPopup from '../Modal/ModalPopup';\nimport { OverlayTrigger } from '../Overlay';\nimport Tooltip from '../Tooltip';\nimport useToggle from '../hooks/useToggle';\n\nfunction ColorPicker({\n color, setColor, className, size,\n}) {\n const [isOpen, open, close] = useToggle(false);\n const [target, setTarget] = React.useState(null);\n\n const colorIsValid = (colorToValidate) => {\n const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n return hexRegex.test(colorToValidate);\n };\n\n const formatHexColorString = (colorString) => {\n if (!colorString.startsWith('#')) {\n return `#${colorString}`.slice(0, 7);\n }\n\n return colorString.slice(0, 7);\n };\n\n const [hexValid, setHexValid] = React.useState(() => (color === '' || colorIsValid(formatHexColorString(color))));\n\n const [hexColorString, setHexColorString] = React.useState(() => {\n if (color === '') {\n return '';\n }\n\n return formatHexColorString(color);\n });\n const [colorToDisplay, setColorToDisplay] = React.useState(() => {\n const formattedColor = formatHexColorString(color);\n if (colorIsValid(formattedColor)) {\n return formattedColor;\n }\n\n return '#fff';\n });\n\n const setValidatedColor = (newColor) => {\n if (newColor === '') {\n setHexValid(true);\n setColor('');\n setHexColorString('');\n setColorToDisplay('#fff');\n return;\n }\n\n const formattedColor = formatHexColorString(newColor);\n\n if (colorIsValid(formattedColor)) {\n setHexValid(true);\n setColor(formattedColor);\n setHexColorString(formattedColor);\n setColorToDisplay(formattedColor);\n return;\n }\n\n setHexValid(false);\n setHexColorString(formattedColor);\n\n // ensure the picker value stays in sync with the textbox\n setColor(formattedColor);\n };\n\n return (\n <>\n <span className=\"d-flex\">\n <OverlayTrigger\n placement=\"top\"\n overlay={<Tooltip id=\"color-picker-tooltip\">Color picker</Tooltip>}\n >\n <Button\n ref={setTarget}\n className={classNames(\n className,\n 'pgn__color-picker',\n `pgn__color-picker-${size}`,\n )}\n style={{\n ...(color && hexValid ? { background: `${color}` } : {}),\n }}\n onClick={open}\n />\n </OverlayTrigger>\n </span>\n <ModalPopup\n positionRef={target}\n isOpen={isOpen}\n style={{ background: 'black' }}\n onClose={close}\n >\n <div\n className=\"pgn__color-modal rounded shadow\"\n style={{ textAlign: 'start' }}\n >\n <HexColorPicker color={colorToDisplay} onChange={setValidatedColor} />\n <Form.Group className=\"pgn__hex-form\" size=\"sm\">\n <div>\n <Form.Label className=\"pgn__hex-label\">Hex</Form.Label>\n <Form.Control\n className=\"pgn__hex-field\"\n isInvalid={!hexValid}\n value={hexColorString}\n onChange={(e) => setValidatedColor(e.target.value)}\n data-testid=\"hex-input\"\n spellCheck=\"false\"\n />\n </div>\n {!hexValid && (\n <Form.Control.Feedback\n className=\"pgn__color-error\"\n type=\"invalid\"\n >\n Colors must be in hexadecimal format.\n </Form.Control.Feedback>\n )}\n </Form.Group>\n </div>\n </ModalPopup>\n </>\n );\n}\n\nColorPicker.defaultProps = {\n color: '',\n className: undefined,\n size: 'md',\n};\n\nColorPicker.propTypes = {\n /** A default hex code to preset the picker to display. */\n color: PropTypes.string,\n /** Passing setState function allows parent to alter the color. */\n setColor: PropTypes.func.isRequired,\n /** A class name to append to the base element. */\n className: PropTypes.string,\n /** Size of the color picker */\n size: PropTypes.oneOf(['sm', 'md']),\n};\n\nexport default ColorPicker;\n"],"mappings":"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"}
@@ -32,17 +32,21 @@ const Container = /*#__PURE__*/forwardRef((_ref, ref) => {
32
32
  Container.propTypes = _objectSpread(_objectSpread({}, RBContainer.propTypes), {}, {
33
33
  /** Override the base element */
34
34
  as: PropTypes.elementType,
35
+ /** Specifies the contents of the container */
35
36
  children: PropTypes.node,
36
37
  /** Fill all available space at any breakpoint */
37
38
  fluid: PropTypes.bool,
38
39
  /** Set the maximum width for the container */
39
- size: PropTypes.oneOf(Object.keys(SIZE_CLASS_NAMES))
40
+ size: PropTypes.oneOf(Object.keys(SIZE_CLASS_NAMES)),
41
+ /** Overrides underlying component base CSS class name */
42
+ bsPrefix: PropTypes.string
40
43
  });
41
44
  Container.defaultProps = {
42
45
  as: 'div',
43
46
  children: undefined,
44
47
  fluid: true,
45
- size: undefined
48
+ size: undefined,
49
+ bsPrefix: 'container'
46
50
  };
47
51
  export default Container;
48
52
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","forwardRef","classNames","RBContainer","PropTypes","SIZE_CLASS_NAMES","xs","sm","md","lg","xl","Container","_ref","ref","size","children","props","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","_objectSpread","as","elementType","node","fluid","bool","oneOf","Object","keys","defaultProps","undefined"],"sources":["../../src/Container/index.jsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport RBContainer from 'react-bootstrap/Container';\nimport PropTypes from 'prop-types';\n\nconst SIZE_CLASS_NAMES = {\n xs: 'container-mw-xs',\n sm: 'container-mw-sm',\n md: 'container-mw-md',\n lg: 'container-mw-lg',\n xl: 'container-mw-xl',\n};\n\nconst Container = forwardRef(({ size, children, ...props }, ref) => (\n <RBContainer\n {...props}\n ref={ref}\n className={classNames(\n props.className,\n SIZE_CLASS_NAMES[size],\n )}\n >\n {children}\n </RBContainer>\n));\n\nContainer.propTypes = {\n ...RBContainer.propTypes,\n /** Override the base element */\n as: PropTypes.elementType,\n children: PropTypes.node,\n /** Fill all available space at any breakpoint */\n fluid: PropTypes.bool,\n /** Set the maximum width for the container */\n size: PropTypes.oneOf(Object.keys(SIZE_CLASS_NAMES)),\n};\n\nContainer.defaultProps = {\n as: 'div',\n children: undefined,\n fluid: true,\n size: undefined,\n};\n\nexport default Container;\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,SAAS,MAAM,YAAY;AAElC,MAAMC,gBAAgB,GAAG;EACvBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,SAAS,gBAAGV,UAAU,CAAC,CAAAW,IAAA,EAA+BC,GAAG;EAAA,IAAjC;MAAEC,IAAI;MAAEC;IAAmB,CAAC,GAAAH,IAAA;IAAPI,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAAA,oBACtDlB,KAAA,CAAAmB,aAAA,CAAChB,WAAW,EAAAiB,QAAA,KACNJ,KAAK;IACTH,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEnB,UAAU,CACnBc,KAAK,CAACK,SAAS,EACfhB,gBAAgB,CAACS,IAAI,CACvB;EAAE,IAEDC,QACU,CAAC;AAAA,CACf,CAAC;AAEFJ,SAAS,CAACW,SAAS,GAAAC,aAAA,CAAAA,aAAA,KACdpB,WAAW,CAACmB,SAAS;EACxB;EACAE,EAAE,EAAEpB,SAAS,CAACqB,WAAW;EACzBV,QAAQ,EAAEX,SAAS,CAACsB,IAAI;EACxB;EACAC,KAAK,EAAEvB,SAAS,CAACwB,IAAI;EACrB;EACAd,IAAI,EAAEV,SAAS,CAACyB,KAAK,CAACC,MAAM,CAACC,IAAI,CAAC1B,gBAAgB,CAAC;AAAC,EACrD;AAEDM,SAAS,CAACqB,YAAY,GAAG;EACvBR,EAAE,EAAE,KAAK;EACTT,QAAQ,EAAEkB,SAAS;EACnBN,KAAK,EAAE,IAAI;EACXb,IAAI,EAAEmB;AACR,CAAC;AAED,eAAetB,SAAS"}
1
+ {"version":3,"file":"index.js","names":["React","forwardRef","classNames","RBContainer","PropTypes","SIZE_CLASS_NAMES","xs","sm","md","lg","xl","Container","_ref","ref","size","children","props","_objectWithoutProperties","_excluded","createElement","_extends","className","propTypes","_objectSpread","as","elementType","node","fluid","bool","oneOf","Object","keys","bsPrefix","string","defaultProps","undefined"],"sources":["../../src/Container/index.jsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport classNames from 'classnames';\nimport RBContainer from 'react-bootstrap/Container';\nimport PropTypes from 'prop-types';\n\nconst SIZE_CLASS_NAMES = {\n xs: 'container-mw-xs',\n sm: 'container-mw-sm',\n md: 'container-mw-md',\n lg: 'container-mw-lg',\n xl: 'container-mw-xl',\n};\n\nconst Container = forwardRef(({ size, children, ...props }, ref) => (\n <RBContainer\n {...props}\n ref={ref}\n className={classNames(\n props.className,\n SIZE_CLASS_NAMES[size],\n )}\n >\n {children}\n </RBContainer>\n));\n\nContainer.propTypes = {\n ...RBContainer.propTypes,\n /** Override the base element */\n as: PropTypes.elementType,\n /** Specifies the contents of the container */\n children: PropTypes.node,\n /** Fill all available space at any breakpoint */\n fluid: PropTypes.bool,\n /** Set the maximum width for the container */\n size: PropTypes.oneOf(Object.keys(SIZE_CLASS_NAMES)),\n /** Overrides underlying component base CSS class name */\n bsPrefix: PropTypes.string,\n};\n\nContainer.defaultProps = {\n as: 'div',\n children: undefined,\n fluid: true,\n size: undefined,\n bsPrefix: 'container',\n};\n\nexport default Container;\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,WAAW,MAAM,2BAA2B;AACnD,OAAOC,SAAS,MAAM,YAAY;AAElC,MAAMC,gBAAgB,GAAG;EACvBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE,iBAAiB;EACrBC,EAAE,EAAE;AACN,CAAC;AAED,MAAMC,SAAS,gBAAGV,UAAU,CAAC,CAAAW,IAAA,EAA+BC,GAAG;EAAA,IAAjC;MAAEC,IAAI;MAAEC;IAAmB,CAAC,GAAAH,IAAA;IAAPI,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAAA,oBACtDlB,KAAA,CAAAmB,aAAA,CAAChB,WAAW,EAAAiB,QAAA,KACNJ,KAAK;IACTH,GAAG,EAAEA,GAAI;IACTQ,SAAS,EAAEnB,UAAU,CACnBc,KAAK,CAACK,SAAS,EACfhB,gBAAgB,CAACS,IAAI,CACvB;EAAE,IAEDC,QACU,CAAC;AAAA,CACf,CAAC;AAEFJ,SAAS,CAACW,SAAS,GAAAC,aAAA,CAAAA,aAAA,KACdpB,WAAW,CAACmB,SAAS;EACxB;EACAE,EAAE,EAAEpB,SAAS,CAACqB,WAAW;EACzB;EACAV,QAAQ,EAAEX,SAAS,CAACsB,IAAI;EACxB;EACAC,KAAK,EAAEvB,SAAS,CAACwB,IAAI;EACrB;EACAd,IAAI,EAAEV,SAAS,CAACyB,KAAK,CAACC,MAAM,CAACC,IAAI,CAAC1B,gBAAgB,CAAC,CAAC;EACpD;EACA2B,QAAQ,EAAE5B,SAAS,CAAC6B;AAAM,EAC3B;AAEDtB,SAAS,CAACuB,YAAY,GAAG;EACvBV,EAAE,EAAE,KAAK;EACTT,QAAQ,EAAEoB,SAAS;EACnBR,KAAK,EAAE,IAAI;EACXb,IAAI,EAAEqB,SAAS;EACfH,QAAQ,EAAE;AACZ,CAAC;AAED,eAAerB,SAAS"}
@@ -197,6 +197,7 @@ function DataTable(_ref) {
197
197
  }, [tableStateSelectedRowIds, onSelectedRowsChanged]);
198
198
  const selectionActions = useSelectionActions(instance, controlledTableSelections);
199
199
  const enhancedInstance = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, instance), {}, {
200
+ manualFilters,
200
201
  itemCount,
201
202
  numBreakoutFilters,
202
203
  bulkActions,
@@ -322,7 +323,7 @@ DataTable.propTypes = {
322
323
  /** Function that will fetch table data. Called when page size, page index or filters change.
323
324
  * Meant to be used with manual filters and pagination */
324
325
  fetchData: PropTypes.func,
325
- /** Initial state passed to react-table's documentation https://react-table.tanstack.com/docs/api/useTable */
326
+ /** Initial state passed to react-table's documentation https://github.com/TanStack/table/blob/v7/docs/src/pages/docs/api/useTable.md */
326
327
  initialState: PropTypes.shape({
327
328
  pageSize: requiredWhen(PropTypes.number, 'isPaginated'),
328
329
  pageIndex: requiredWhen(PropTypes.number, 'isPaginated'),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useEffect","useMemo","useReducer","PropTypes","useTable","useMountedLayoutEffect","classNames","Table","getVisibleColumns","requiredWhen","requiredWhenNot","getTableArgs","TableControlBar","EmptyTableContent","TableFooter","BulkActions","DropdownFilters","FilterStatus","RowStatus","SelectionStatus","ControlledSelectionStatus","SmartStatus","TableFilters","TableHeaderCell","TableCell","TableHeaderRow","TablePagination","TablePaginationMinimal","DataTableContext","TableActions","ControlledSelect","ControlledSelectHeader","DataTableLayout","ExpandAll","ExpandRow","useSelectionActions","selectionsReducer","initialState","initialSelectionsState","DataTable","_ref","columns","data","defaultColumnValues","additionalColumns","isSelectable","isPaginated","manualPagination","pageCount","itemCount","isFilterable","manualFilters","fetchData","isSortable","manualSortBy","isExpandable","renderRowSubComponent","bulkActions","tableActions","numBreakoutFilters","initialTableOptions","EmptyTableComponent","manualSelectColumn","showFiltersInSidebar","dataViewToggleOptions","disableElevation","isLoading","children","onSelectedRowsChanged","maxSelectedRows","onMaxSelectedRows","props","_objectWithoutProperties","_excluded","defaultColumn","tableOptions","updatedTableOptions","_objectSpread","stateReducer","newState","action","previousState","type","value","selectedRowIds","rowIndex","parseInt","id","selectedRowsOrdered","newSelectedRowsOrdered","filter","item","selections","selectionsDispatch","tableArgs","push","hooks","visibleColumns","selectionProps","selectedRows","length","selectedRowsById","forEach","row","useControlledState","state","selectedFlatRows","controlledTableSelections","instance","pageSize","tableStatePageSize","pageIndex","tableStatePageIndex","sortBy","tableStateSortBy","filters","tableStateFilters","tableStateSelectedRowIds","selectionActions","enhancedInstance","createElement","Provider","className","Fragment","content","defaultProps","undefined","SelectionStatusComponent","FilterStatusComponent","RowStatusComponent","isDataViewToggleEnabled","onDataViewToggle","defaultActiveStateValue","togglePlacement","propTypes","arrayOf","shape","Header","oneOfType","elementType","node","isRequired","accessor","string","Cell","Filter","filterChoices","name","number","bool","disableSortBy","func","buttonText","handleClick","variant","disabled","element","oneOf","EmptyTable"],"sources":["../../src/DataTable/index.jsx"],"sourcesContent":["import React, {\n useEffect, useMemo, useReducer,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useTable, useMountedLayoutEffect } from 'react-table';\n\nimport classNames from 'classnames';\nimport Table from './Table';\nimport getVisibleColumns from './utils/getVisibleColumns';\nimport { requiredWhen, requiredWhenNot } from '../utils/propTypes';\nimport getTableArgs from './utils/getTableArgs';\nimport TableControlBar from './TableControlBar';\nimport EmptyTableContent from './EmptyTable';\nimport TableFooter from './TableFooter';\nimport BulkActions from './BulkActions';\nimport DropdownFilters from './DropdownFilters';\nimport FilterStatus from './FilterStatus';\nimport RowStatus from './RowStatus';\nimport SelectionStatus from './selection/SelectionStatus';\nimport ControlledSelectionStatus from './selection/ControlledSelectionStatus';\nimport SmartStatus from './SmartStatus';\nimport TableFilters from './TableFilters';\nimport TableHeaderCell from './TableHeaderCell';\nimport TableCell from './TableCell';\nimport TableHeaderRow from './TableHeaderRow';\nimport TablePagination from './TablePagination';\nimport TablePaginationMinimal from './TablePaginationMinimal';\nimport DataTableContext from './DataTableContext';\nimport TableActions from './TableActions';\nimport ControlledSelect from './selection/ControlledSelect';\nimport ControlledSelectHeader from './selection/ControlledSelectHeader';\nimport DataTableLayout from './DataTableLayout';\nimport ExpandAll from './ExpandAll';\nimport ExpandRow from './ExpandRow';\n\nimport { useSelectionActions } from './hooks';\nimport selectionsReducer, { initialState as initialSelectionsState } from './selection/data/reducer';\n\nfunction DataTable({\n columns, data, defaultColumnValues, additionalColumns, isSelectable,\n isPaginated, manualPagination, pageCount, itemCount,\n isFilterable, manualFilters, fetchData, initialState,\n isSortable, manualSortBy,\n isExpandable, renderRowSubComponent,\n bulkActions, tableActions, numBreakoutFilters,\n initialTableOptions,\n EmptyTableComponent,\n manualSelectColumn,\n showFiltersInSidebar,\n dataViewToggleOptions,\n disableElevation,\n isLoading,\n children,\n onSelectedRowsChanged,\n maxSelectedRows,\n onMaxSelectedRows,\n ...props\n}) {\n const defaultColumn = useMemo(\n () => (defaultColumnValues),\n [defaultColumnValues],\n );\n const tableOptions = useMemo(() => {\n const updatedTableOptions = {\n stateReducer: (newState, action, previousState) => {\n switch (action.type) {\n // Note: we override the `toggleAllRowsSelected` action\n // from react-table because it only clears the selections on the\n // currently visible page; it does not clear the `selectedRowIds`\n // as we would expect for selections on different pages. Instead, we\n // force `selectedRowIds` to be cleared when `toggleAllRowsSelected(false)`\n // is called.\n case 'toggleAllRowsSelected': {\n if (action.value) {\n return newState;\n }\n return {\n ...newState,\n selectedRowIds: {},\n };\n }\n /* Note: We override the `toggleRowSelected` action from react-table\n because we need to preserve the order of the selected rows.\n While `selectedRowIds` is an object that contains the selected rows as key-value pairs,\n it does not maintain the order of selection. Therefore, we have added the `selectedRowsOrdered` property\n to keep track of the order in which the rows were selected.\n */\n case 'toggleRowSelected': {\n const rowIndex = parseInt(action.id, 10);\n const { selectedRowsOrdered = [] } = previousState;\n\n let newSelectedRowsOrdered;\n if (action.value) {\n newSelectedRowsOrdered = [...selectedRowsOrdered, rowIndex];\n } else {\n newSelectedRowsOrdered = selectedRowsOrdered.filter((item) => item !== rowIndex);\n }\n\n return {\n ...newState,\n selectedRowsOrdered: newSelectedRowsOrdered,\n };\n }\n default:\n return newState;\n }\n },\n ...initialTableOptions,\n };\n return {\n columns,\n data,\n defaultColumn,\n manualFilters,\n manualPagination,\n manualSortBy,\n initialState,\n ...updatedTableOptions,\n };\n }, [initialTableOptions, columns, data, defaultColumn, manualFilters, manualPagination, manualSortBy, initialState]);\n\n const [selections, selectionsDispatch] = useReducer(selectionsReducer, initialSelectionsState);\n\n if (isPaginated && manualPagination) {\n // pageCount is required when pagination is manual, if it's not there passing -1 as per react-table docs\n tableOptions.pageCount = pageCount || -1;\n }\n\n // NB: Table args *must* be in a particular order\n const tableArgs = getTableArgs({\n tableOptions, isFilterable, isSelectable, isPaginated, isSortable, isExpandable,\n });\n // adds selection column and action columns as necessary\n tableArgs.push(hooks => {\n hooks.visibleColumns.push(\n visibleColumns => getVisibleColumns(isSelectable, visibleColumns, additionalColumns, manualSelectColumn),\n );\n });\n\n // Pass any controlled selections from context to the appropriate ``useTable`` arguments to maintain\n // correct selection states on rows, both from a data perspective and in the UI.\n const selectionProps = {};\n const { selectedRows } = selections;\n if (selectedRows.length > 0) {\n const selectedRowsById = {};\n selectedRows.forEach((row) => {\n selectedRowsById[row.id] = true;\n });\n tableArgs.push(hooks => {\n hooks.useControlledState.push(\n (state) => ({ ...state, selectedRowIds: selectedRowsById }),\n );\n });\n selectionProps.selectedFlatRows = selectedRows;\n }\n const controlledTableSelections = [selections, selectionsDispatch];\n\n // Use the state and functions returned from useTable to build your UI\n const instance = useTable(...tableArgs);\n\n const {\n pageSize: tableStatePageSize,\n pageIndex: tableStatePageIndex,\n sortBy: tableStateSortBy,\n filters: tableStateFilters,\n selectedRowIds: tableStateSelectedRowIds,\n } = instance.state;\n\n useEffect(() => {\n if (fetchData) {\n fetchData({\n pageSize: tableStatePageSize,\n pageIndex: tableStatePageIndex,\n sortBy: tableStateSortBy,\n filters: tableStateFilters,\n });\n }\n }, [fetchData, tableStatePageSize, tableStatePageIndex, tableStateSortBy, tableStateFilters]);\n\n useMountedLayoutEffect(() => {\n if (onSelectedRowsChanged) {\n onSelectedRowsChanged(tableStateSelectedRowIds);\n }\n }, [tableStateSelectedRowIds, onSelectedRowsChanged]);\n\n const selectionActions = useSelectionActions(instance, controlledTableSelections);\n\n const enhancedInstance = {\n ...instance,\n itemCount,\n numBreakoutFilters,\n bulkActions,\n tableActions,\n controlledTableSelections,\n showFiltersInSidebar,\n dataViewToggleOptions,\n renderRowSubComponent,\n disableElevation,\n isLoading,\n isSelectable,\n isPaginated,\n manualSelectColumn,\n maxSelectedRows,\n onMaxSelectedRows,\n ...selectionProps,\n ...selectionActions,\n ...props,\n };\n\n return (\n <DataTableContext.Provider value={enhancedInstance}>\n <DataTableLayout>\n <div className={classNames('pgn__data-table-wrapper', {\n 'hide-shadow': !!disableElevation,\n })}\n >\n {children || (\n <>\n <TableControlBar />\n <Table />\n <EmptyTableComponent content=\"No results found\" />\n <TableFooter />\n </>\n )}\n </div>\n </DataTableLayout>\n </DataTableContext.Provider>\n );\n}\n\nDataTable.defaultProps = {\n additionalColumns: [],\n defaultColumnValues: {},\n isFilterable: false,\n isPaginated: false,\n isSelectable: false,\n isSortable: false,\n manualFilters: false,\n manualPagination: false,\n manualSortBy: false,\n fetchData: null,\n initialState: {},\n initialTableOptions: {},\n EmptyTableComponent: EmptyTableContent,\n children: null,\n bulkActions: [],\n tableActions: [],\n numBreakoutFilters: 1,\n manualSelectColumn: undefined,\n SelectionStatusComponent: SelectionStatus,\n FilterStatusComponent: FilterStatus,\n RowStatusComponent: RowStatus,\n showFiltersInSidebar: false,\n dataViewToggleOptions: {\n isDataViewToggleEnabled: false,\n onDataViewToggle: () => {},\n defaultActiveStateValue: 'card',\n togglePlacement: 'left',\n },\n disableElevation: false,\n renderRowSubComponent: undefined,\n isExpandable: false,\n isLoading: false,\n onSelectedRowsChanged: undefined,\n maxSelectedRows: undefined,\n onMaxSelectedRows: undefined,\n};\n\nDataTable.propTypes = {\n /** Definition of table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** User visible column name */\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n /** String used to access the correct cell data for this column */\n accessor: requiredWhenNot(PropTypes.string, 'Cell'),\n /** Specifies a function that receives `row` as argument and returns cell content */\n Cell: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n /** Specifies filter component */\n Filter: PropTypes.elementType,\n /** Specifies filter type */\n filter: PropTypes.string,\n /** Specifies filter choices */\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n number: PropTypes.number,\n value: PropTypes.string,\n })),\n })).isRequired,\n /** Data to be displayed in the table */\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n /** table rows can be selected */\n isSelectable: PropTypes.bool,\n /** Alternate column for selecting rows. See react table useSort docs for more information */\n manualSelectColumn: PropTypes.shape({\n id: PropTypes.string.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n Cell: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n disableSortBy: PropTypes.bool.isRequired,\n }),\n /** Table columns can be sorted */\n isSortable: PropTypes.bool,\n /** Indicates that sorting will be done via backend API. A fetchData function must be provided */\n manualSortBy: PropTypes.bool,\n /** Paginate the table */\n isPaginated: PropTypes.bool,\n /** Indicates that pagination will be done manually. A fetchData function must be provided */\n manualPagination: PropTypes.bool,\n // eslint-disable-next-line react/require-default-props\n pageCount: requiredWhen(PropTypes.number, 'manualPagination'),\n /** Table rows can be filtered, using a default filter in the default column values, or in the column definition */\n isFilterable: PropTypes.bool,\n /** Indicates that filtering will be done via a backend API. A fetchData function must be provided */\n manualFilters: PropTypes.bool,\n\n /** defaults that will be set on each column. Will be overridden by individual column values */\n defaultColumnValues: PropTypes.shape({\n /** A default filter component for the column */\n Filter: PropTypes.elementType,\n }),\n /** Actions or other additional non-data columns can be added here */\n additionalColumns: PropTypes.arrayOf(PropTypes.shape({\n /** id must be unique from other columns ids */\n id: PropTypes.string.isRequired,\n /** column header that will be displayed to the user */\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n /** Component that renders in the added column. It will receive the row as a prop */\n Cell: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n })),\n /** Function that will fetch table data. Called when page size, page index or filters change.\n * Meant to be used with manual filters and pagination */\n fetchData: PropTypes.func,\n /** Initial state passed to react-table's documentation https://react-table.tanstack.com/docs/api/useTable */\n initialState: PropTypes.shape({\n pageSize: requiredWhen(PropTypes.number, 'isPaginated'),\n pageIndex: requiredWhen(PropTypes.number, 'isPaginated'),\n filters: requiredWhen(PropTypes.arrayOf(PropTypes.shape()), 'manualFilters'),\n sortBy: requiredWhen(PropTypes.arrayOf(PropTypes.shape()), 'manualSortBy'),\n selectedRowIds: PropTypes.shape(),\n selectedRowsOrdered: PropTypes.arrayOf(PropTypes.number),\n }),\n /** Table options passed to react-table's useTable hook. Will override some options passed in to DataTable, such\n as: data, columns, defaultColumn, manualFilters, manualPagination, manualSortBy, and initialState */\n initialTableOptions: PropTypes.shape({}),\n /** Actions to be performed on the table. Called with the table instance. Not displayed if rows are selected. */\n itemCount: PropTypes.number.isRequired,\n /** Actions to be performed on selected rows of the table. Called with the selected rows.\n * Only displayed if rows are selected. */\n bulkActions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n /** Bulk action button text */\n buttonText: PropTypes.string.isRequired,\n /** handleClick will be passed the selected rows */\n handleClick: PropTypes.func.isRequired,\n /** classnames for button class */\n className: PropTypes.string,\n /** optional button variant; only relevant for the first two buttons */\n variant: PropTypes.string,\n /** disables button */\n disabled: PropTypes.bool,\n }),\n /** function passed selected items, should return action object */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n ),\n /** Function for rendering custom components */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n /** Function for rendering custom components, called with the table instance */\n tableActions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n /** Bulk action button text */\n buttonText: PropTypes.string.isRequired,\n /** handleClick will be passed the selected rows */\n handleClick: PropTypes.func.isRequired,\n /** classnames for button class */\n className: PropTypes.string,\n /** optional button variant; only relevant for the first two buttons */\n variant: PropTypes.string,\n /** disables button */\n disabled: PropTypes.bool,\n }),\n /** function passed table instance, should return action object */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n ),\n /** Function for rendering custom components */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n /** Number between one and four filters that can be shown on the top row. */\n numBreakoutFilters: PropTypes.oneOf([1, 2, 3, 4]),\n /** Component to be displayed when the table is empty */\n EmptyTableComponent: PropTypes.elementType,\n /** Component to be displayed for row status, ie, 10 of 20 rows. Displayed by default in the TableControlBar */\n RowStatusComponent: PropTypes.elementType,\n /** Component to be displayed for selection status. Displayed when there are selected rows and no active filters */\n SelectionStatusComponent: PropTypes.elementType,\n /** Component to be displayed for filter status. Displayed when there are active filters. */\n FilterStatusComponent: PropTypes.elementType,\n /** If children are not provided a table with control bar and footer will be rendered */\n children: PropTypes.node,\n /** If true filters will be shown on sidebar instead */\n showFiltersInSidebar: PropTypes.bool,\n /** options for data view toggle */\n dataViewToggleOptions: PropTypes.shape({\n /** Whether to show a toggle button group which allows view switching between card and table views */\n isDataViewToggleEnabled: PropTypes.bool,\n /** Callback invoked when the toggle buttons are clicked, with value of selected button passed in */\n onDataViewToggle: PropTypes.func,\n /** default value for toggle active state */\n defaultActiveStateValue: PropTypes.string,\n /** placement of toggle 'bottom' will push it to the bottom row in\n * actions section. Only 'left' and 'bottom' are supported */\n togglePlacement: PropTypes.string,\n }),\n /** Remove the default box shadow on the component */\n disableElevation: PropTypes.bool,\n /** A function that will render contents of expanded row, accepts `row` as a prop. */\n renderRowSubComponent: PropTypes.func,\n /** Indicates whether table supports expandable rows. */\n isExpandable: PropTypes.bool,\n /** Indicates whether the table should show loading states. */\n isLoading: PropTypes.bool,\n /** Callback function called when row selections change. */\n onSelectedRowsChanged: PropTypes.func,\n /** Indicates the max of rows selectable in the table. Requires isSelectable prop */\n maxSelectedRows: PropTypes.number,\n /** Callback after selected max rows. Requires isSelectable and maxSelectedRows props */\n onMaxSelectedRows: PropTypes.func,\n};\n\nDataTable.BulkActions = BulkActions;\nDataTable.EmptyTable = EmptyTableContent;\nDataTable.DropdownFilters = DropdownFilters;\nDataTable.FilterStatus = FilterStatus;\nDataTable.RowStatus = RowStatus;\nDataTable.SelectionStatus = SelectionStatus;\nDataTable.SmartStatus = SmartStatus;\nDataTable.Table = Table;\nDataTable.TableCell = TableCell;\nDataTable.TableControlBar = TableControlBar;\nDataTable.TableFilters = TableFilters;\nDataTable.TableFooter = TableFooter;\nDataTable.TableHeaderCell = TableHeaderCell;\nDataTable.TableHeaderRow = TableHeaderRow;\nDataTable.TablePagination = TablePagination;\nDataTable.TablePaginationMinimal = TablePaginationMinimal;\nDataTable.TableActions = TableActions;\nDataTable.ControlledSelectionStatus = ControlledSelectionStatus;\nDataTable.ControlledSelect = ControlledSelect;\nDataTable.ControlledSelectHeader = ControlledSelectHeader;\nDataTable.ExpandAll = ExpandAll;\nDataTable.ExpandRow = ExpandRow;\n\nexport default DataTable;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","useEffect","useMemo","useReducer","PropTypes","useTable","useMountedLayoutEffect","classNames","Table","getVisibleColumns","requiredWhen","requiredWhenNot","getTableArgs","TableControlBar","EmptyTableContent","TableFooter","BulkActions","DropdownFilters","FilterStatus","RowStatus","SelectionStatus","ControlledSelectionStatus","SmartStatus","TableFilters","TableHeaderCell","TableCell","TableHeaderRow","TablePagination","TablePaginationMinimal","DataTableContext","TableActions","ControlledSelect","ControlledSelectHeader","DataTableLayout","ExpandAll","ExpandRow","useSelectionActions","selectionsReducer","initialState","initialSelectionsState","DataTable","_ref","columns","data","defaultColumnValues","additionalColumns","isSelectable","isPaginated","manualPagination","pageCount","itemCount","isFilterable","manualFilters","fetchData","isSortable","manualSortBy","isExpandable","renderRowSubComponent","bulkActions","tableActions","numBreakoutFilters","initialTableOptions","EmptyTableComponent","manualSelectColumn","showFiltersInSidebar","dataViewToggleOptions","disableElevation","isLoading","children","onSelectedRowsChanged","maxSelectedRows","onMaxSelectedRows","props","_objectWithoutProperties","_excluded","defaultColumn","tableOptions","updatedTableOptions","_objectSpread","stateReducer","newState","action","previousState","type","value","selectedRowIds","rowIndex","parseInt","id","selectedRowsOrdered","newSelectedRowsOrdered","filter","item","selections","selectionsDispatch","tableArgs","push","hooks","visibleColumns","selectionProps","selectedRows","length","selectedRowsById","forEach","row","useControlledState","state","selectedFlatRows","controlledTableSelections","instance","pageSize","tableStatePageSize","pageIndex","tableStatePageIndex","sortBy","tableStateSortBy","filters","tableStateFilters","tableStateSelectedRowIds","selectionActions","enhancedInstance","createElement","Provider","className","Fragment","content","defaultProps","undefined","SelectionStatusComponent","FilterStatusComponent","RowStatusComponent","isDataViewToggleEnabled","onDataViewToggle","defaultActiveStateValue","togglePlacement","propTypes","arrayOf","shape","Header","oneOfType","elementType","node","isRequired","accessor","string","Cell","Filter","filterChoices","name","number","bool","disableSortBy","func","buttonText","handleClick","variant","disabled","element","oneOf","EmptyTable"],"sources":["../../src/DataTable/index.jsx"],"sourcesContent":["import React, {\n useEffect, useMemo, useReducer,\n} from 'react';\nimport PropTypes from 'prop-types';\nimport { useTable, useMountedLayoutEffect } from 'react-table';\n\nimport classNames from 'classnames';\nimport Table from './Table';\nimport getVisibleColumns from './utils/getVisibleColumns';\nimport { requiredWhen, requiredWhenNot } from '../utils/propTypes';\nimport getTableArgs from './utils/getTableArgs';\nimport TableControlBar from './TableControlBar';\nimport EmptyTableContent from './EmptyTable';\nimport TableFooter from './TableFooter';\nimport BulkActions from './BulkActions';\nimport DropdownFilters from './DropdownFilters';\nimport FilterStatus from './FilterStatus';\nimport RowStatus from './RowStatus';\nimport SelectionStatus from './selection/SelectionStatus';\nimport ControlledSelectionStatus from './selection/ControlledSelectionStatus';\nimport SmartStatus from './SmartStatus';\nimport TableFilters from './TableFilters';\nimport TableHeaderCell from './TableHeaderCell';\nimport TableCell from './TableCell';\nimport TableHeaderRow from './TableHeaderRow';\nimport TablePagination from './TablePagination';\nimport TablePaginationMinimal from './TablePaginationMinimal';\nimport DataTableContext from './DataTableContext';\nimport TableActions from './TableActions';\nimport ControlledSelect from './selection/ControlledSelect';\nimport ControlledSelectHeader from './selection/ControlledSelectHeader';\nimport DataTableLayout from './DataTableLayout';\nimport ExpandAll from './ExpandAll';\nimport ExpandRow from './ExpandRow';\n\nimport { useSelectionActions } from './hooks';\nimport selectionsReducer, { initialState as initialSelectionsState } from './selection/data/reducer';\n\nfunction DataTable({\n columns, data, defaultColumnValues, additionalColumns, isSelectable,\n isPaginated, manualPagination, pageCount, itemCount,\n isFilterable, manualFilters, fetchData, initialState,\n isSortable, manualSortBy,\n isExpandable, renderRowSubComponent,\n bulkActions, tableActions, numBreakoutFilters,\n initialTableOptions,\n EmptyTableComponent,\n manualSelectColumn,\n showFiltersInSidebar,\n dataViewToggleOptions,\n disableElevation,\n isLoading,\n children,\n onSelectedRowsChanged,\n maxSelectedRows,\n onMaxSelectedRows,\n ...props\n}) {\n const defaultColumn = useMemo(\n () => (defaultColumnValues),\n [defaultColumnValues],\n );\n const tableOptions = useMemo(() => {\n const updatedTableOptions = {\n stateReducer: (newState, action, previousState) => {\n switch (action.type) {\n // Note: we override the `toggleAllRowsSelected` action\n // from react-table because it only clears the selections on the\n // currently visible page; it does not clear the `selectedRowIds`\n // as we would expect for selections on different pages. Instead, we\n // force `selectedRowIds` to be cleared when `toggleAllRowsSelected(false)`\n // is called.\n case 'toggleAllRowsSelected': {\n if (action.value) {\n return newState;\n }\n return {\n ...newState,\n selectedRowIds: {},\n };\n }\n /* Note: We override the `toggleRowSelected` action from react-table\n because we need to preserve the order of the selected rows.\n While `selectedRowIds` is an object that contains the selected rows as key-value pairs,\n it does not maintain the order of selection. Therefore, we have added the `selectedRowsOrdered` property\n to keep track of the order in which the rows were selected.\n */\n case 'toggleRowSelected': {\n const rowIndex = parseInt(action.id, 10);\n const { selectedRowsOrdered = [] } = previousState;\n\n let newSelectedRowsOrdered;\n if (action.value) {\n newSelectedRowsOrdered = [...selectedRowsOrdered, rowIndex];\n } else {\n newSelectedRowsOrdered = selectedRowsOrdered.filter((item) => item !== rowIndex);\n }\n\n return {\n ...newState,\n selectedRowsOrdered: newSelectedRowsOrdered,\n };\n }\n default:\n return newState;\n }\n },\n ...initialTableOptions,\n };\n return {\n columns,\n data,\n defaultColumn,\n manualFilters,\n manualPagination,\n manualSortBy,\n initialState,\n ...updatedTableOptions,\n };\n }, [initialTableOptions, columns, data, defaultColumn, manualFilters, manualPagination, manualSortBy, initialState]);\n\n const [selections, selectionsDispatch] = useReducer(selectionsReducer, initialSelectionsState);\n\n if (isPaginated && manualPagination) {\n // pageCount is required when pagination is manual, if it's not there passing -1 as per react-table docs\n tableOptions.pageCount = pageCount || -1;\n }\n\n // NB: Table args *must* be in a particular order\n const tableArgs = getTableArgs({\n tableOptions, isFilterable, isSelectable, isPaginated, isSortable, isExpandable,\n });\n // adds selection column and action columns as necessary\n tableArgs.push(hooks => {\n hooks.visibleColumns.push(\n visibleColumns => getVisibleColumns(isSelectable, visibleColumns, additionalColumns, manualSelectColumn),\n );\n });\n\n // Pass any controlled selections from context to the appropriate ``useTable`` arguments to maintain\n // correct selection states on rows, both from a data perspective and in the UI.\n const selectionProps = {};\n const { selectedRows } = selections;\n if (selectedRows.length > 0) {\n const selectedRowsById = {};\n selectedRows.forEach((row) => {\n selectedRowsById[row.id] = true;\n });\n tableArgs.push(hooks => {\n hooks.useControlledState.push(\n (state) => ({ ...state, selectedRowIds: selectedRowsById }),\n );\n });\n selectionProps.selectedFlatRows = selectedRows;\n }\n const controlledTableSelections = [selections, selectionsDispatch];\n\n // Use the state and functions returned from useTable to build your UI\n const instance = useTable(...tableArgs);\n\n const {\n pageSize: tableStatePageSize,\n pageIndex: tableStatePageIndex,\n sortBy: tableStateSortBy,\n filters: tableStateFilters,\n selectedRowIds: tableStateSelectedRowIds,\n } = instance.state;\n\n useEffect(() => {\n if (fetchData) {\n fetchData({\n pageSize: tableStatePageSize,\n pageIndex: tableStatePageIndex,\n sortBy: tableStateSortBy,\n filters: tableStateFilters,\n });\n }\n }, [fetchData, tableStatePageSize, tableStatePageIndex, tableStateSortBy, tableStateFilters]);\n\n useMountedLayoutEffect(() => {\n if (onSelectedRowsChanged) {\n onSelectedRowsChanged(tableStateSelectedRowIds);\n }\n }, [tableStateSelectedRowIds, onSelectedRowsChanged]);\n\n const selectionActions = useSelectionActions(instance, controlledTableSelections);\n\n const enhancedInstance = {\n ...instance,\n manualFilters,\n itemCount,\n numBreakoutFilters,\n bulkActions,\n tableActions,\n controlledTableSelections,\n showFiltersInSidebar,\n dataViewToggleOptions,\n renderRowSubComponent,\n disableElevation,\n isLoading,\n isSelectable,\n isPaginated,\n manualSelectColumn,\n maxSelectedRows,\n onMaxSelectedRows,\n ...selectionProps,\n ...selectionActions,\n ...props,\n };\n\n return (\n <DataTableContext.Provider value={enhancedInstance}>\n <DataTableLayout>\n <div className={classNames('pgn__data-table-wrapper', {\n 'hide-shadow': !!disableElevation,\n })}\n >\n {children || (\n <>\n <TableControlBar />\n <Table />\n <EmptyTableComponent content=\"No results found\" />\n <TableFooter />\n </>\n )}\n </div>\n </DataTableLayout>\n </DataTableContext.Provider>\n );\n}\n\nDataTable.defaultProps = {\n additionalColumns: [],\n defaultColumnValues: {},\n isFilterable: false,\n isPaginated: false,\n isSelectable: false,\n isSortable: false,\n manualFilters: false,\n manualPagination: false,\n manualSortBy: false,\n fetchData: null,\n initialState: {},\n initialTableOptions: {},\n EmptyTableComponent: EmptyTableContent,\n children: null,\n bulkActions: [],\n tableActions: [],\n numBreakoutFilters: 1,\n manualSelectColumn: undefined,\n SelectionStatusComponent: SelectionStatus,\n FilterStatusComponent: FilterStatus,\n RowStatusComponent: RowStatus,\n showFiltersInSidebar: false,\n dataViewToggleOptions: {\n isDataViewToggleEnabled: false,\n onDataViewToggle: () => {},\n defaultActiveStateValue: 'card',\n togglePlacement: 'left',\n },\n disableElevation: false,\n renderRowSubComponent: undefined,\n isExpandable: false,\n isLoading: false,\n onSelectedRowsChanged: undefined,\n maxSelectedRows: undefined,\n onMaxSelectedRows: undefined,\n};\n\nDataTable.propTypes = {\n /** Definition of table columns */\n columns: PropTypes.arrayOf(PropTypes.shape({\n /** User visible column name */\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n /** String used to access the correct cell data for this column */\n accessor: requiredWhenNot(PropTypes.string, 'Cell'),\n /** Specifies a function that receives `row` as argument and returns cell content */\n Cell: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n /** Specifies filter component */\n Filter: PropTypes.elementType,\n /** Specifies filter type */\n filter: PropTypes.string,\n /** Specifies filter choices */\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string,\n number: PropTypes.number,\n value: PropTypes.string,\n })),\n })).isRequired,\n /** Data to be displayed in the table */\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n /** table rows can be selected */\n isSelectable: PropTypes.bool,\n /** Alternate column for selecting rows. See react table useSort docs for more information */\n manualSelectColumn: PropTypes.shape({\n id: PropTypes.string.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n Cell: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n disableSortBy: PropTypes.bool.isRequired,\n }),\n /** Table columns can be sorted */\n isSortable: PropTypes.bool,\n /** Indicates that sorting will be done via backend API. A fetchData function must be provided */\n manualSortBy: PropTypes.bool,\n /** Paginate the table */\n isPaginated: PropTypes.bool,\n /** Indicates that pagination will be done manually. A fetchData function must be provided */\n manualPagination: PropTypes.bool,\n // eslint-disable-next-line react/require-default-props\n pageCount: requiredWhen(PropTypes.number, 'manualPagination'),\n /** Table rows can be filtered, using a default filter in the default column values, or in the column definition */\n isFilterable: PropTypes.bool,\n /** Indicates that filtering will be done via a backend API. A fetchData function must be provided */\n manualFilters: PropTypes.bool,\n\n /** defaults that will be set on each column. Will be overridden by individual column values */\n defaultColumnValues: PropTypes.shape({\n /** A default filter component for the column */\n Filter: PropTypes.elementType,\n }),\n /** Actions or other additional non-data columns can be added here */\n additionalColumns: PropTypes.arrayOf(PropTypes.shape({\n /** id must be unique from other columns ids */\n id: PropTypes.string.isRequired,\n /** column header that will be displayed to the user */\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n /** Component that renders in the added column. It will receive the row as a prop */\n Cell: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]),\n })),\n /** Function that will fetch table data. Called when page size, page index or filters change.\n * Meant to be used with manual filters and pagination */\n fetchData: PropTypes.func,\n /** Initial state passed to react-table's documentation https://github.com/TanStack/table/blob/v7/docs/src/pages/docs/api/useTable.md */\n initialState: PropTypes.shape({\n pageSize: requiredWhen(PropTypes.number, 'isPaginated'),\n pageIndex: requiredWhen(PropTypes.number, 'isPaginated'),\n filters: requiredWhen(PropTypes.arrayOf(PropTypes.shape()), 'manualFilters'),\n sortBy: requiredWhen(PropTypes.arrayOf(PropTypes.shape()), 'manualSortBy'),\n selectedRowIds: PropTypes.shape(),\n selectedRowsOrdered: PropTypes.arrayOf(PropTypes.number),\n }),\n /** Table options passed to react-table's useTable hook. Will override some options passed in to DataTable, such\n as: data, columns, defaultColumn, manualFilters, manualPagination, manualSortBy, and initialState */\n initialTableOptions: PropTypes.shape({}),\n /** Actions to be performed on the table. Called with the table instance. Not displayed if rows are selected. */\n itemCount: PropTypes.number.isRequired,\n /** Actions to be performed on selected rows of the table. Called with the selected rows.\n * Only displayed if rows are selected. */\n bulkActions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n /** Bulk action button text */\n buttonText: PropTypes.string.isRequired,\n /** handleClick will be passed the selected rows */\n handleClick: PropTypes.func.isRequired,\n /** classnames for button class */\n className: PropTypes.string,\n /** optional button variant; only relevant for the first two buttons */\n variant: PropTypes.string,\n /** disables button */\n disabled: PropTypes.bool,\n }),\n /** function passed selected items, should return action object */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n ),\n /** Function for rendering custom components */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n /** Function for rendering custom components, called with the table instance */\n tableActions: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n /** Bulk action button text */\n buttonText: PropTypes.string.isRequired,\n /** handleClick will be passed the selected rows */\n handleClick: PropTypes.func.isRequired,\n /** classnames for button class */\n className: PropTypes.string,\n /** optional button variant; only relevant for the first two buttons */\n variant: PropTypes.string,\n /** disables button */\n disabled: PropTypes.bool,\n }),\n /** function passed table instance, should return action object */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n ),\n /** Function for rendering custom components */\n PropTypes.func,\n /** A custom component representing an action */\n PropTypes.element,\n ]),\n /** Number between one and four filters that can be shown on the top row. */\n numBreakoutFilters: PropTypes.oneOf([1, 2, 3, 4]),\n /** Component to be displayed when the table is empty */\n EmptyTableComponent: PropTypes.elementType,\n /** Component to be displayed for row status, ie, 10 of 20 rows. Displayed by default in the TableControlBar */\n RowStatusComponent: PropTypes.elementType,\n /** Component to be displayed for selection status. Displayed when there are selected rows and no active filters */\n SelectionStatusComponent: PropTypes.elementType,\n /** Component to be displayed for filter status. Displayed when there are active filters. */\n FilterStatusComponent: PropTypes.elementType,\n /** If children are not provided a table with control bar and footer will be rendered */\n children: PropTypes.node,\n /** If true filters will be shown on sidebar instead */\n showFiltersInSidebar: PropTypes.bool,\n /** options for data view toggle */\n dataViewToggleOptions: PropTypes.shape({\n /** Whether to show a toggle button group which allows view switching between card and table views */\n isDataViewToggleEnabled: PropTypes.bool,\n /** Callback invoked when the toggle buttons are clicked, with value of selected button passed in */\n onDataViewToggle: PropTypes.func,\n /** default value for toggle active state */\n defaultActiveStateValue: PropTypes.string,\n /** placement of toggle 'bottom' will push it to the bottom row in\n * actions section. Only 'left' and 'bottom' are supported */\n togglePlacement: PropTypes.string,\n }),\n /** Remove the default box shadow on the component */\n disableElevation: PropTypes.bool,\n /** A function that will render contents of expanded row, accepts `row` as a prop. */\n renderRowSubComponent: PropTypes.func,\n /** Indicates whether table supports expandable rows. */\n isExpandable: PropTypes.bool,\n /** Indicates whether the table should show loading states. */\n isLoading: PropTypes.bool,\n /** Callback function called when row selections change. */\n onSelectedRowsChanged: PropTypes.func,\n /** Indicates the max of rows selectable in the table. Requires isSelectable prop */\n maxSelectedRows: PropTypes.number,\n /** Callback after selected max rows. Requires isSelectable and maxSelectedRows props */\n onMaxSelectedRows: PropTypes.func,\n};\n\nDataTable.BulkActions = BulkActions;\nDataTable.EmptyTable = EmptyTableContent;\nDataTable.DropdownFilters = DropdownFilters;\nDataTable.FilterStatus = FilterStatus;\nDataTable.RowStatus = RowStatus;\nDataTable.SelectionStatus = SelectionStatus;\nDataTable.SmartStatus = SmartStatus;\nDataTable.Table = Table;\nDataTable.TableCell = TableCell;\nDataTable.TableControlBar = TableControlBar;\nDataTable.TableFilters = TableFilters;\nDataTable.TableFooter = TableFooter;\nDataTable.TableHeaderCell = TableHeaderCell;\nDataTable.TableHeaderRow = TableHeaderRow;\nDataTable.TablePagination = TablePagination;\nDataTable.TablePaginationMinimal = TablePaginationMinimal;\nDataTable.TableActions = TableActions;\nDataTable.ControlledSelectionStatus = ControlledSelectionStatus;\nDataTable.ControlledSelect = ControlledSelect;\nDataTable.ControlledSelectHeader = ControlledSelectHeader;\nDataTable.ExpandAll = ExpandAll;\nDataTable.ExpandRow = ExpandRow;\n\nexport default DataTable;\n"],"mappings":"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"}
@@ -22,11 +22,12 @@ function BaseSelectionStatus(_ref) {
22
22
  isPaginated,
23
23
  state,
24
24
  isSelectable,
25
- maxSelectedRows
25
+ maxSelectedRows,
26
+ manualFilters
26
27
  } = useContext(DataTableContext);
27
28
  const hasAppliedFilters = state?.filters?.length > 0;
28
29
  const isAllRowsSelected = numSelectedRows === itemCount;
29
- const filteredItems = filteredRows?.length || itemCount;
30
+ const filteredItems = manualFilters ? itemCount : filteredRows?.length || itemCount;
30
31
  const hasMaxSelectedRows = isSelectable && maxSelectedRows;
31
32
  const intlAllSelectedText = allSelectedText || /*#__PURE__*/React.createElement(FormattedMessage, {
32
33
  id: "pgn.DataTable.BaseSelectionStatus.allSelectedText",
@@ -1 +1 @@
1
- {"version":3,"file":"BaseSelectionStatus.js","names":["React","useContext","PropTypes","FormattedMessage","Button","DataTableContext","SELECT_ALL_TEST_ID","CLEAR_SELECTION_TEST_ID","BaseSelectionStatus","_ref","className","clearSelectionText","numSelectedRows","numSelectedRowsOnPage","onSelectAll","onClear","selectAllText","allSelectedText","selectedText","itemCount","filteredRows","isPaginated","state","isSelectable","maxSelectedRows","hasAppliedFilters","filters","length","isAllRowsSelected","filteredItems","hasMaxSelectedRows","intlAllSelectedText","createElement","id","defaultMessage","description","values","defaultSelectedText","intlSelectedText","variant","size","onClick","defaultProps","undefined","propTypes","string","oneOfType","element","number","isRequired","func"],"sources":["../../../src/DataTable/selection/BaseSelectionStatus.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '../../Button';\nimport DataTableContext from '../DataTableContext';\nimport {\n SELECT_ALL_TEST_ID,\n CLEAR_SELECTION_TEST_ID,\n} from './data/constants';\n\nfunction BaseSelectionStatus({\n className,\n clearSelectionText,\n numSelectedRows,\n numSelectedRowsOnPage,\n onSelectAll,\n onClear,\n selectAllText,\n allSelectedText,\n selectedText,\n}) {\n const {\n itemCount, filteredRows, isPaginated, state,\n isSelectable, maxSelectedRows,\n } = useContext(DataTableContext);\n const hasAppliedFilters = state?.filters?.length > 0;\n const isAllRowsSelected = numSelectedRows === itemCount;\n const filteredItems = filteredRows?.length || itemCount;\n const hasMaxSelectedRows = isSelectable && maxSelectedRows;\n\n const intlAllSelectedText = allSelectedText || (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.allSelectedText\"\n defaultMessage=\"All {numSelectedRows} selected\"\n description=\"Text for all selected label\"\n values={{ numSelectedRows }}\n />\n );\n\n const defaultSelectedText = isPaginated || hasAppliedFilters ? (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.selectedTextPaginated\"\n defaultMessage=\"{numSelectedRows} selected ({numSelectedRowsOnPage} shown below)\"\n description=\"Text for selected label when table is paginated\"\n values={{ numSelectedRows, numSelectedRowsOnPage }}\n />\n ) : (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.selectedText\"\n defaultMessage=\"{numSelectedRows} selected\"\n description=\"Text for selected label\"\n values={{ numSelectedRows }}\n />\n );\n\n const intlSelectedText = selectedText || defaultSelectedText;\n\n return (\n <div className={className} data-testid=\"selection-status-component\">\n <span data-testid=\"selection-status\">\n {isAllRowsSelected ? intlAllSelectedText : intlSelectedText}\n </span>\n {!isAllRowsSelected && !hasMaxSelectedRows && (\n <Button\n data-testid={SELECT_ALL_TEST_ID}\n variant=\"link\"\n size=\"inline\"\n onClick={onSelectAll}\n >\n {selectAllText || (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.selectAllText\"\n defaultMessage=\"Select all {itemCount}\"\n description=\"A label for select all button.\"\n values={{ itemCount: filteredItems }}\n />\n )}\n </Button>\n )}\n {numSelectedRows > 0 && (\n <Button\n data-testid={CLEAR_SELECTION_TEST_ID}\n variant=\"link\"\n size=\"inline\"\n onClick={onClear}\n >\n {clearSelectionText || (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.clearSelectionText\"\n defaultMessage=\"Clear selection\"\n description=\"A label of clear all selection button.\"\n />\n )}\n </Button>\n )}\n </div>\n );\n}\n\nBaseSelectionStatus.defaultProps = {\n className: undefined,\n selectAllText: undefined,\n allSelectedText: undefined,\n selectedText: undefined,\n clearSelectionText: undefined,\n};\n\nBaseSelectionStatus.propTypes = {\n /** A class name to append to the base element */\n className: PropTypes.string,\n /** A text that appears on the `Clear selection` button, defaults to 'Clear selection' */\n clearSelectionText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** Count of selected rows in the table. */\n numSelectedRows: PropTypes.number.isRequired,\n /** Count of selected rows on the current page */\n numSelectedRowsOnPage: PropTypes.number.isRequired,\n /** A handler for 'Select all' button. */\n onSelectAll: PropTypes.func.isRequired,\n /** A handler for 'Clear selection' button. */\n onClear: PropTypes.func.isRequired,\n /** A text that appears on the `Select all` button, defaults to 'Select All {itemCount}' */\n selectAllText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** A text that appears when all items have been selected, defaults to 'All {numSelectedRows} selected' */\n allSelectedText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** A text that appears when some items have been selected, defaults to '{numSelectedRows} selected' */\n selectedText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nexport default BaseSelectionStatus;\n"],"mappings":"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"}
1
+ {"version":3,"file":"BaseSelectionStatus.js","names":["React","useContext","PropTypes","FormattedMessage","Button","DataTableContext","SELECT_ALL_TEST_ID","CLEAR_SELECTION_TEST_ID","BaseSelectionStatus","_ref","className","clearSelectionText","numSelectedRows","numSelectedRowsOnPage","onSelectAll","onClear","selectAllText","allSelectedText","selectedText","itemCount","filteredRows","isPaginated","state","isSelectable","maxSelectedRows","manualFilters","hasAppliedFilters","filters","length","isAllRowsSelected","filteredItems","hasMaxSelectedRows","intlAllSelectedText","createElement","id","defaultMessage","description","values","defaultSelectedText","intlSelectedText","variant","size","onClick","defaultProps","undefined","propTypes","string","oneOfType","element","number","isRequired","func"],"sources":["../../../src/DataTable/selection/BaseSelectionStatus.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport Button from '../../Button';\nimport DataTableContext from '../DataTableContext';\nimport {\n SELECT_ALL_TEST_ID,\n CLEAR_SELECTION_TEST_ID,\n} from './data/constants';\n\nfunction BaseSelectionStatus({\n className,\n clearSelectionText,\n numSelectedRows,\n numSelectedRowsOnPage,\n onSelectAll,\n onClear,\n selectAllText,\n allSelectedText,\n selectedText,\n}) {\n const {\n itemCount, filteredRows, isPaginated, state,\n isSelectable, maxSelectedRows, manualFilters,\n } = useContext(DataTableContext);\n const hasAppliedFilters = state?.filters?.length > 0;\n const isAllRowsSelected = numSelectedRows === itemCount;\n const filteredItems = manualFilters ? itemCount : (filteredRows?.length || itemCount);\n const hasMaxSelectedRows = isSelectable && maxSelectedRows;\n\n const intlAllSelectedText = allSelectedText || (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.allSelectedText\"\n defaultMessage=\"All {numSelectedRows} selected\"\n description=\"Text for all selected label\"\n values={{ numSelectedRows }}\n />\n );\n\n const defaultSelectedText = isPaginated || hasAppliedFilters ? (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.selectedTextPaginated\"\n defaultMessage=\"{numSelectedRows} selected ({numSelectedRowsOnPage} shown below)\"\n description=\"Text for selected label when table is paginated\"\n values={{ numSelectedRows, numSelectedRowsOnPage }}\n />\n ) : (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.selectedText\"\n defaultMessage=\"{numSelectedRows} selected\"\n description=\"Text for selected label\"\n values={{ numSelectedRows }}\n />\n );\n\n const intlSelectedText = selectedText || defaultSelectedText;\n\n return (\n <div className={className} data-testid=\"selection-status-component\">\n <span data-testid=\"selection-status\">\n {isAllRowsSelected ? intlAllSelectedText : intlSelectedText}\n </span>\n {!isAllRowsSelected && !hasMaxSelectedRows && (\n <Button\n data-testid={SELECT_ALL_TEST_ID}\n variant=\"link\"\n size=\"inline\"\n onClick={onSelectAll}\n >\n {selectAllText || (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.selectAllText\"\n defaultMessage=\"Select all {itemCount}\"\n description=\"A label for select all button.\"\n values={{ itemCount: filteredItems }}\n />\n )}\n </Button>\n )}\n {numSelectedRows > 0 && (\n <Button\n data-testid={CLEAR_SELECTION_TEST_ID}\n variant=\"link\"\n size=\"inline\"\n onClick={onClear}\n >\n {clearSelectionText || (\n <FormattedMessage\n id=\"pgn.DataTable.BaseSelectionStatus.clearSelectionText\"\n defaultMessage=\"Clear selection\"\n description=\"A label of clear all selection button.\"\n />\n )}\n </Button>\n )}\n </div>\n );\n}\n\nBaseSelectionStatus.defaultProps = {\n className: undefined,\n selectAllText: undefined,\n allSelectedText: undefined,\n selectedText: undefined,\n clearSelectionText: undefined,\n};\n\nBaseSelectionStatus.propTypes = {\n /** A class name to append to the base element */\n className: PropTypes.string,\n /** A text that appears on the `Clear selection` button, defaults to 'Clear selection' */\n clearSelectionText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** Count of selected rows in the table. */\n numSelectedRows: PropTypes.number.isRequired,\n /** Count of selected rows on the current page */\n numSelectedRowsOnPage: PropTypes.number.isRequired,\n /** A handler for 'Select all' button. */\n onSelectAll: PropTypes.func.isRequired,\n /** A handler for 'Clear selection' button. */\n onClear: PropTypes.func.isRequired,\n /** A text that appears on the `Select all` button, defaults to 'Select All {itemCount}' */\n selectAllText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** A text that appears when all items have been selected, defaults to 'All {numSelectedRows} selected' */\n allSelectedText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /** A text that appears when some items have been selected, defaults to '{numSelectedRows} selected' */\n selectedText: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n};\n\nexport default BaseSelectionStatus;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,gBAAgB,QAAQ,YAAY;AAE7C,OAAOC,MAAM,MAAM,cAAc;AACjC,OAAOC,gBAAgB,MAAM,qBAAqB;AAClD,SACEC,kBAAkB,EAClBC,uBAAuB,QAClB,kBAAkB;AAEzB,SAASC,mBAAmBA,CAAAC,IAAA,EAUzB;EAAA,IAV0B;IAC3BC,SAAS;IACTC,kBAAkB;IAClBC,eAAe;IACfC,qBAAqB;IACrBC,WAAW;IACXC,OAAO;IACPC,aAAa;IACbC,eAAe;IACfC;EACF,CAAC,GAAAT,IAAA;EACC,MAAM;IACJU,SAAS;IAAEC,YAAY;IAAEC,WAAW;IAAEC,KAAK;IAC3CC,YAAY;IAAEC,eAAe;IAAEC;EACjC,CAAC,GAAGxB,UAAU,CAACI,gBAAgB,CAAC;EAChC,MAAMqB,iBAAiB,GAAGJ,KAAK,EAAEK,OAAO,EAAEC,MAAM,GAAG,CAAC;EACpD,MAAMC,iBAAiB,GAAGjB,eAAe,KAAKO,SAAS;EACvD,MAAMW,aAAa,GAAGL,aAAa,GAAGN,SAAS,GAAIC,YAAY,EAAEQ,MAAM,IAAIT,SAAU;EACrF,MAAMY,kBAAkB,GAAGR,YAAY,IAAIC,eAAe;EAE1D,MAAMQ,mBAAmB,GAAGf,eAAe,iBACzCjB,KAAA,CAAAiC,aAAA,CAAC9B,gBAAgB;IACf+B,EAAE,EAAC,mDAAmD;IACtDC,cAAc,EAAC,gCAAgC;IAC/CC,WAAW,EAAC,6BAA6B;IACzCC,MAAM,EAAE;MAAEzB;IAAgB;EAAE,CAC7B,CACF;EAED,MAAM0B,mBAAmB,GAAGjB,WAAW,IAAIK,iBAAiB,gBAC1D1B,KAAA,CAAAiC,aAAA,CAAC9B,gBAAgB;IACf+B,EAAE,EAAC,yDAAyD;IAC5DC,cAAc,EAAC,kEAAkE;IACjFC,WAAW,EAAC,iDAAiD;IAC7DC,MAAM,EAAE;MAAEzB,eAAe;MAAEC;IAAsB;EAAE,CACpD,CAAC,gBAEFb,KAAA,CAAAiC,aAAA,CAAC9B,gBAAgB;IACf+B,EAAE,EAAC,gDAAgD;IACnDC,cAAc,EAAC,4BAA4B;IAC3CC,WAAW,EAAC,yBAAyB;IACrCC,MAAM,EAAE;MAAEzB;IAAgB;EAAE,CAC7B,CACF;EAED,MAAM2B,gBAAgB,GAAGrB,YAAY,IAAIoB,mBAAmB;EAE5D,oBACEtC,KAAA,CAAAiC,aAAA;IAAKvB,SAAS,EAAEA,SAAU;IAAC,eAAY;EAA4B,gBACjEV,KAAA,CAAAiC,aAAA;IAAM,eAAY;EAAkB,GACjCJ,iBAAiB,GAAGG,mBAAmB,GAAGO,gBACvC,CAAC,EACN,CAACV,iBAAiB,IAAI,CAACE,kBAAkB,iBACxC/B,KAAA,CAAAiC,aAAA,CAAC7B,MAAM;IACL,eAAaE,kBAAmB;IAChCkC,OAAO,EAAC,MAAM;IACdC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAE5B;EAAY,GAEpBE,aAAa,iBACZhB,KAAA,CAAAiC,aAAA,CAAC9B,gBAAgB;IACf+B,EAAE,EAAC,iDAAiD;IACpDC,cAAc,EAAC,wBAAwB;IACvCC,WAAW,EAAC,gCAAgC;IAC5CC,MAAM,EAAE;MAAElB,SAAS,EAAEW;IAAc;EAAE,CACtC,CAEG,CACT,EACAlB,eAAe,GAAG,CAAC,iBAClBZ,KAAA,CAAAiC,aAAA,CAAC7B,MAAM;IACL,eAAaG,uBAAwB;IACrCiC,OAAO,EAAC,MAAM;IACdC,IAAI,EAAC,QAAQ;IACbC,OAAO,EAAE3B;EAAQ,GAEhBJ,kBAAkB,iBACjBX,KAAA,CAAAiC,aAAA,CAAC9B,gBAAgB;IACf+B,EAAE,EAAC,sDAAsD;IACzDC,cAAc,EAAC,iBAAiB;IAChCC,WAAW,EAAC;EAAwC,CACrD,CAEG,CAEP,CAAC;AAEV;AAEA5B,mBAAmB,CAACmC,YAAY,GAAG;EACjCjC,SAAS,EAAEkC,SAAS;EACpB5B,aAAa,EAAE4B,SAAS;EACxB3B,eAAe,EAAE2B,SAAS;EAC1B1B,YAAY,EAAE0B,SAAS;EACvBjC,kBAAkB,EAAEiC;AACtB,CAAC;AAEDpC,mBAAmB,CAACqC,SAAS,GAAG;EAC9B;EACAnC,SAAS,EAAER,SAAS,CAAC4C,MAAM;EAC3B;EACAnC,kBAAkB,EAAET,SAAS,CAAC6C,SAAS,CAAC,CAAC7C,SAAS,CAAC4C,MAAM,EAAE5C,SAAS,CAAC8C,OAAO,CAAC,CAAC;EAC9E;EACApC,eAAe,EAAEV,SAAS,CAAC+C,MAAM,CAACC,UAAU;EAC5C;EACArC,qBAAqB,EAAEX,SAAS,CAAC+C,MAAM,CAACC,UAAU;EAClD;EACApC,WAAW,EAAEZ,SAAS,CAACiD,IAAI,CAACD,UAAU;EACtC;EACAnC,OAAO,EAAEb,SAAS,CAACiD,IAAI,CAACD,UAAU;EAClC;EACAlC,aAAa,EAAEd,SAAS,CAAC6C,SAAS,CAAC,CAAC7C,SAAS,CAAC4C,MAAM,EAAE5C,SAAS,CAAC8C,OAAO,CAAC,CAAC;EACzE;EACA/B,eAAe,EAAEf,SAAS,CAAC6C,SAAS,CAAC,CAAC7C,SAAS,CAAC4C,MAAM,EAAE5C,SAAS,CAAC8C,OAAO,CAAC,CAAC;EAC3E;EACA9B,YAAY,EAAEhB,SAAS,CAAC6C,SAAS,CAAC,CAAC7C,SAAS,CAAC4C,MAAM,EAAE5C,SAAS,CAAC8C,OAAO,CAAC;AACzE,CAAC;AAED,eAAexC,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","classNames","PropTypes","BaseDropdown","DropdownMenu","BaseDropdownItem","BaseDropdownToggle","Button","IconButton","Dropdown","forwardRef","_ref","ref","show","autoClose","onToggle","variant","className","rest","_objectWithoutProperties","_excluded","internalShow","setInternalShow","useState","isClosingPermitted","source","handleToggle","isOpen","event","metadata","_objectSpread","currentTarget","document","key","createElement","_extends","propTypes","oneOfType","string","bool","func","oneOf","defaultProps","undefined","DropdownToggle","_ref2","as","bsPrefix","otherProps","_excluded2","prefix","elementType","id","number","isRequired","Item","DropdownItem","_ref3","_excluded3","Toggle","Menu","Header","Divider","default","DropdownButton","SplitButton"],"sources":["../../src/Dropdown/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport BaseDropdown from 'react-bootstrap/Dropdown';\nimport DropdownMenu from 'react-bootstrap/DropdownMenu';\nimport BaseDropdownItem from 'react-bootstrap/DropdownItem';\nimport BaseDropdownToggle from 'react-bootstrap/DropdownToggle';\nimport Button from '../Button';\nimport IconButton from '../IconButton';\n\nconst Dropdown = React.forwardRef(\n // eslint-disable-next-line prefer-arrow-callback\n function Dropdown({\n show,\n autoClose,\n onToggle,\n variant,\n className,\n ...rest\n }, ref) {\n const [internalShow, setInternalShow] = React.useState(show);\n const isClosingPermitted = (source) => {\n // autoClose=false only permits close on button click\n if (autoClose === false) {\n return source === 'click';\n }\n // autoClose=inside doesn't permit close on rootClose\n if (autoClose === 'inside') {\n return source !== 'rootClose';\n }\n // autoClose=outside doesn't permit close on select\n if (autoClose === 'outside') {\n return source !== 'select';\n }\n return true;\n };\n\n const handleToggle = (isOpen, event, metadata) => {\n if (isOpen) {\n setInternalShow(true);\n onToggle?.(isOpen, event, metadata);\n return;\n }\n let { source } = { ...metadata };\n\n if (event.currentTarget === document && (source !== 'keydown' || event.key === 'Escape')) {\n source = 'rootClose';\n }\n if (isClosingPermitted(source)) {\n setInternalShow(false);\n onToggle?.(isOpen, event, metadata);\n }\n };\n\n return (\n <BaseDropdown\n className={classNames(\n 'pgn__dropdown',\n `pgn__dropdown-${variant}`,\n className,\n )}\n data-testid=\"dropdown\"\n onToggle={handleToggle}\n ref={ref}\n show={internalShow}\n {...rest}\n />\n );\n },\n);\nDropdown.propTypes = {\n autoClose: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n className: PropTypes.string,\n onToggle: PropTypes.func,\n show: PropTypes.bool,\n variant: PropTypes.oneOf(['light', 'dark']),\n};\nDropdown.defaultProps = {\n autoClose: true,\n className: '',\n onToggle: undefined,\n show: false,\n variant: 'light',\n};\n\nconst DropdownToggle = React.forwardRef(\n // eslint-disable-next-line prefer-arrow-callback\n function DropdownToggle({\n as,\n bsPrefix,\n ...otherProps\n }, ref) {\n // hide arrow from the toggle if it is rendered as IconButton\n // because it hinders the positioning of IconButton\n const prefix = as === IconButton ? 'pgn__dropdown-toggle-iconbutton' : bsPrefix;\n return <BaseDropdownToggle {...otherProps} as={as} bsPrefix={prefix} ref={ref} />;\n },\n);\n\nDropdownToggle.propTypes = {\n /** Specifies the base element. */\n as: PropTypes.elementType,\n /** Overrides underlying component base CSS class name. */\n bsPrefix: PropTypes.string,\n /** An html id attribute, necessary for assistive technologies, such as screen readers. */\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nDropdownToggle.defaultProps = {\n as: Button,\n bsPrefix: 'dropdown-toggle',\n};\n\nDropdown.Item = React.forwardRef(\n // eslint-disable-next-line prefer-arrow-callback\n function DropdownItem({ className, ...otherProps }, ref) {\n return (\n <BaseDropdownItem\n className={classNames(className, 'pgn__dropdown-item')}\n ref={ref}\n {...otherProps}\n />\n );\n },\n);\nDropdown.Item.propTypes = {\n className: PropTypes.string,\n};\nDropdown.Item.defaultProps = {\n className: undefined,\n};\n\nDropdown.Toggle = DropdownToggle;\nDropdown.Menu = DropdownMenu;\nDropdown.Header = BaseDropdown.Header;\nDropdown.Divider = BaseDropdown.Divider;\n\nexport default Dropdown;\nexport { DropdownToggle };\nexport { default as DropdownButton } from 'react-bootstrap/DropdownButton';\nexport { default as SplitButton } from 'react-bootstrap/SplitButton';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","classNames","PropTypes","BaseDropdown","DropdownMenu","BaseDropdownItem","BaseDropdownToggle","Button","IconButton","Dropdown","forwardRef","_ref","ref","show","autoClose","onToggle","variant","className","rest","_objectWithoutProperties","_excluded","internalShow","setInternalShow","useState","isClosingPermitted","source","handleToggle","isOpen","event","metadata","_objectSpread","currentTarget","document","key","createElement","_extends","propTypes","oneOfType","string","bool","func","oneOf","defaultProps","undefined","DropdownToggle","_ref2","as","bsPrefix","otherProps","_excluded2","prefix","elementType","id","number","isRequired","Item","DropdownItem","_ref3","_excluded3","Toggle","Menu","Header","Divider","default","DropdownButton","SplitButton"],"sources":["../../src/Dropdown/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport BaseDropdown from 'react-bootstrap/Dropdown';\nimport DropdownMenu from 'react-bootstrap/DropdownMenu';\nimport BaseDropdownItem from 'react-bootstrap/DropdownItem';\nimport BaseDropdownToggle from 'react-bootstrap/DropdownToggle';\nimport Button from '../Button';\nimport IconButton from '../IconButton';\n\nconst Dropdown = React.forwardRef(\n // eslint-disable-next-line prefer-arrow-callback\n function Dropdown({\n show,\n autoClose,\n onToggle,\n variant,\n className,\n ...rest\n }, ref) {\n const [internalShow, setInternalShow] = React.useState(show);\n const isClosingPermitted = (source) => {\n // autoClose=false only permits close on button click\n if (autoClose === false) {\n return source === 'click';\n }\n // autoClose=inside doesn't permit close on rootClose\n if (autoClose === 'inside') {\n return source !== 'rootClose';\n }\n // autoClose=outside doesn't permit close on select\n if (autoClose === 'outside') {\n return source !== 'select';\n }\n return true;\n };\n\n const handleToggle = (isOpen, event, metadata) => {\n if (isOpen) {\n setInternalShow(true);\n onToggle?.(isOpen, event, metadata);\n return;\n }\n let { source } = { ...metadata };\n\n if (event.currentTarget === document && (source !== 'keydown' || event.key === 'Escape')) {\n source = 'rootClose';\n }\n if (isClosingPermitted(source)) {\n setInternalShow(false);\n onToggle?.(isOpen, event, metadata);\n }\n };\n\n return (\n <BaseDropdown\n className={classNames(\n 'pgn__dropdown',\n `pgn__dropdown-${variant}`,\n className,\n )}\n data-testid=\"dropdown\"\n onToggle={handleToggle}\n ref={ref}\n show={internalShow}\n {...rest}\n />\n );\n },\n);\n\nDropdown.propTypes = {\n autoClose: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.bool,\n ]),\n className: PropTypes.string,\n onToggle: PropTypes.func,\n show: PropTypes.bool,\n variant: PropTypes.oneOf(['light', 'dark']),\n};\n\nDropdown.defaultProps = {\n autoClose: true,\n className: '',\n onToggle: undefined,\n show: false,\n variant: 'light',\n};\n\nconst DropdownToggle = React.forwardRef(\n // eslint-disable-next-line prefer-arrow-callback\n function DropdownToggle({\n as,\n bsPrefix,\n ...otherProps\n }, ref) {\n // hide arrow from the toggle if it is rendered as IconButton\n // because it hinders the positioning of IconButton\n const prefix = as === IconButton ? 'pgn__dropdown-toggle-iconbutton' : bsPrefix;\n return <BaseDropdownToggle {...otherProps} as={as} bsPrefix={prefix} ref={ref} />;\n },\n);\n\nDropdownToggle.propTypes = {\n /** Specifies the base element. */\n as: PropTypes.elementType,\n /** Overrides underlying component base CSS class name. */\n bsPrefix: PropTypes.string,\n /** An html id attribute, necessary for assistive technologies, such as screen readers. */\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n};\n\nDropdownToggle.defaultProps = {\n as: Button,\n bsPrefix: 'dropdown-toggle',\n};\n\nDropdown.Item = React.forwardRef(\n // eslint-disable-next-line prefer-arrow-callback\n function DropdownItem({ className, ...otherProps }, ref) {\n return (\n <BaseDropdownItem\n className={classNames(className, 'pgn__dropdown-item')}\n ref={ref}\n {...otherProps}\n />\n );\n },\n);\n\nDropdown.Item.propTypes = {\n className: PropTypes.string,\n};\n\nDropdown.Item.defaultProps = {\n className: undefined,\n};\n\nDropdown.Toggle = DropdownToggle;\nDropdown.Menu = DropdownMenu;\nDropdown.Header = BaseDropdown.Header;\nDropdown.Divider = BaseDropdown.Divider;\n\nexport default Dropdown;\nexport { DropdownToggle };\nexport { default as DropdownButton } from 'react-bootstrap/DropdownButton';\nexport { default as SplitButton } from 'react-bootstrap/SplitButton';\n"],"mappings":"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"}
@@ -177,8 +177,7 @@ function Dropzone(_ref) {
177
177
  return /*#__PURE__*/React.createElement("div", _extends({
178
178
  "data-testid": "dropzone-container"
179
179
  }, getRootProps({
180
- className: classNames('pgn__dropzone', {
181
- className,
180
+ className: classNames('pgn__dropzone', className, {
182
181
  'pgn__dropzone-validation-error': isMultipleDragged || errors.length > 0 || isDragReject,
183
182
  'pgn__dropzone-active': isDragActive && !isDragReject
184
183
  })
@@ -262,7 +261,7 @@ Dropzone.propTypes = {
262
261
  */
263
262
  validator: PropTypes.func,
264
263
  /** A component to display initial state of the `Dropzone`. */
265
- inputComponent: PropTypes.oneOfType([PropTypes.func, PropTypes.node])
264
+ inputComponent: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node])
266
265
  };
267
266
  export default Dropzone;
268
267
  //# sourceMappingURL=index.js.map