@openedx/paragon 22.13.0 → 22.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/dist/Alert/_variables.scss +2 -1
  2. package/dist/Annotation/index.js.map +1 -1
  3. package/dist/Annotation/index.scss +6 -5
  4. package/dist/Avatar/index.js.map +1 -1
  5. package/dist/AvatarButton/index.js.map +1 -1
  6. package/dist/Breadcrumb/index.js.map +1 -1
  7. package/dist/Bubble/index.js +1 -0
  8. package/dist/Bubble/index.js.map +1 -1
  9. package/dist/Bubble/index.scss +3 -2
  10. package/dist/Button/deprecated/index.js.map +1 -1
  11. package/dist/Button/index.scss +19 -18
  12. package/dist/Card/CardCarousel/CardCarouselHeader.js +2 -2
  13. package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
  14. package/dist/Card/CardFooter.js.map +1 -1
  15. package/dist/Card/CardHeader.js +1 -1
  16. package/dist/Card/CardHeader.js.map +1 -1
  17. package/dist/Card/CardImageCap.js.map +1 -1
  18. package/dist/Card/CardStatus.js.map +1 -1
  19. package/dist/Card/_variables.scss +3 -2
  20. package/dist/Card/index.js.map +1 -1
  21. package/dist/Card/index.scss +10 -9
  22. package/dist/Chip/ChipIcon.d.ts +1 -1
  23. package/dist/Chip/index.js +1 -0
  24. package/dist/Chip/index.js.map +1 -1
  25. package/dist/ChipCarousel/index.js.map +1 -1
  26. package/dist/Collapsible/index.js.map +1 -1
  27. package/dist/ColorPicker/index.js +1 -1
  28. package/dist/ColorPicker/index.js.map +1 -1
  29. package/dist/ColorPicker/index.scss +2 -1
  30. package/dist/DataTable/CollapsibleButtonGroup.js +2 -2
  31. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  32. package/dist/DataTable/DropdownFilters.js +1 -1
  33. package/dist/DataTable/DropdownFilters.js.map +1 -1
  34. package/dist/DataTable/TableRow.js.map +1 -1
  35. package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
  36. package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
  37. package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
  38. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  39. package/dist/DataTable/index.scss +14 -13
  40. package/dist/DataTable/utils/getVisibleColumns.js +1 -1
  41. package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
  42. package/dist/Dropdown/_variables.scss +2 -1
  43. package/dist/Dropdown/deprecated/DropdownMenu.js +15 -19
  44. package/dist/Dropdown/deprecated/DropdownMenu.js.map +1 -1
  45. package/dist/Dropdown/deprecated/index.js +1 -1
  46. package/dist/Dropdown/deprecated/index.js.map +1 -1
  47. package/dist/Dropdown/index.js.map +1 -1
  48. package/dist/Dropzone/DefaultContent.js.map +1 -1
  49. package/dist/Dropzone/UploadProgress.js.map +1 -1
  50. package/dist/Dropzone/index.scss +3 -2
  51. package/dist/Fieldset/index.js.map +1 -1
  52. package/dist/Form/FormAutosuggest.js +1 -1
  53. package/dist/Form/FormAutosuggest.js.map +1 -1
  54. package/dist/Form/FormControl.js.map +1 -1
  55. package/dist/Form/FormControlDecorator.js.map +1 -1
  56. package/dist/Form/FormGroupContext.d.ts +1 -1
  57. package/dist/Form/FormGroupContext.js.map +1 -1
  58. package/dist/Form/FormText.js.map +1 -1
  59. package/dist/Form/_index.scss +9 -7
  60. package/dist/Form/_variables.scss +4 -2
  61. package/dist/Form/fieldUtils.js.map +1 -1
  62. package/dist/Hyperlink/index.js +1 -0
  63. package/dist/Hyperlink/index.js.map +1 -1
  64. package/dist/Hyperlink/index.scss +3 -1
  65. package/dist/Icon/index.js.map +1 -1
  66. package/dist/IconButton/index.d.ts +13 -8
  67. package/dist/IconButton/index.js.map +1 -1
  68. package/dist/IconButtonToggle/index.js.map +1 -1
  69. package/dist/IconButtonToggle/index.scss +3 -1
  70. package/dist/Input/index.js.map +1 -1
  71. package/dist/InputSelect/index.js.map +1 -1
  72. package/dist/Layout/index.js.map +1 -1
  73. package/dist/ListBox/index.js.map +1 -1
  74. package/dist/ListBoxOption/index.js.map +1 -1
  75. package/dist/Menu/SelectMenu.js +1 -1
  76. package/dist/Menu/SelectMenu.js.map +1 -1
  77. package/dist/Menu/index.js +1 -1
  78. package/dist/Menu/index.js.map +1 -1
  79. package/dist/Modal/ModalContext.d.ts +1 -1
  80. package/dist/Modal/ModalDialog.d.ts +1 -1
  81. package/dist/Modal/ModalDialog.js.map +1 -1
  82. package/dist/Modal/ModalDialogBody.js +1 -1
  83. package/dist/Modal/ModalDialogBody.js.map +1 -1
  84. package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
  85. package/dist/Modal/ModalLayer.d.ts +3 -3
  86. package/dist/Modal/ModalLayer.js.map +1 -1
  87. package/dist/Modal/ModalPopup.js.map +1 -1
  88. package/dist/Modal/_ModalDialog.scss +3 -1
  89. package/dist/Modal/index.js +3 -1
  90. package/dist/Modal/index.js.map +1 -1
  91. package/dist/Modal/index.scss +3 -5
  92. package/dist/Nav/_mixins.scss +3 -1
  93. package/dist/Overlay/index.d.ts +2 -2
  94. package/dist/PageBanner/index.js.map +1 -1
  95. package/dist/PageBanner/index.scss +2 -1
  96. package/dist/Pagination/PaginationContext.js.map +1 -1
  97. package/dist/Pagination/index.js.map +1 -1
  98. package/dist/Popover/_variables.scss +2 -1
  99. package/dist/Popover/index.js.map +1 -1
  100. package/dist/ProductTour/Checkpoint.scss +9 -8
  101. package/dist/ProductTour/index.js +1 -1
  102. package/dist/ProductTour/index.js.map +1 -1
  103. package/dist/ProgressBar/index.js.map +1 -1
  104. package/dist/Scrollable/index.js +1 -1
  105. package/dist/Scrollable/index.js.map +1 -1
  106. package/dist/SearchField/SearchFieldAdvanced.js.map +1 -1
  107. package/dist/SearchField/index.scss +2 -1
  108. package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
  109. package/dist/Sheet/index.js.map +1 -1
  110. package/dist/Stack/index.js.map +1 -1
  111. package/dist/StatefulButton/index.js.map +1 -1
  112. package/dist/StatusAlert/index.js.map +1 -1
  113. package/dist/Stepper/StepperHeader.js +1 -1
  114. package/dist/Stepper/StepperHeader.js.map +1 -1
  115. package/dist/Stepper/StepperHeaderStep.js.map +1 -1
  116. package/dist/Sticky/index.js.map +1 -1
  117. package/dist/Table/_variables.scss +2 -1
  118. package/dist/Tabs/deprecated/index.js.map +1 -1
  119. package/dist/Tabs/index.js +1 -1
  120. package/dist/Tabs/index.js.map +1 -1
  121. package/dist/Toast/ToastContainer.scss +1 -1
  122. package/dist/Toast/index.scss +2 -2
  123. package/dist/Truncate/index.js +1 -1
  124. package/dist/Truncate/index.js.map +1 -1
  125. package/dist/ValidationFormGroup/index.js.map +1 -1
  126. package/dist/asInput/index.js.map +1 -1
  127. package/dist/hooks/{useArrowKeyNavigation.js → useArrowKeyNavigationHook.js} +5 -1
  128. package/dist/hooks/useArrowKeyNavigationHook.js.map +1 -0
  129. package/dist/hooks/{useIndexOfLastVisibleChild.js → useIndexOfLastVisibleChildHook.js} +5 -1
  130. package/dist/hooks/useIndexOfLastVisibleChildHook.js.map +1 -0
  131. package/dist/hooks/{useIsVisible.js → useIsVisibleHook.js} +1 -1
  132. package/dist/hooks/useIsVisibleHook.js.map +1 -0
  133. package/dist/hooks/{useToggle.js → useToggleHook.js} +5 -1
  134. package/dist/hooks/useToggleHook.js.map +1 -0
  135. package/dist/hooks/{useWindowSize.js → useWindowSizeHook.js} +1 -1
  136. package/dist/hooks/useWindowSizeHook.js.map +1 -0
  137. package/dist/index.d.ts +5 -5
  138. package/dist/index.js +5 -5
  139. package/dist/paragon.css +1 -45
  140. package/dist/utils/newId.js.map +1 -1
  141. package/dist/withDeprecatedProps.js.map +1 -1
  142. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/CHANGELOG.md +50 -0
  143. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/LICENSE +7 -0
  144. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/README.md +37 -0
  145. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.d.ts +20 -0
  146. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js +79 -0
  147. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/dist/index.js.map +1 -0
  148. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/package.json +40 -0
  149. package/icons/node_modules/@svgr/babel-plugin-add-jsx-attribute/tsconfig.json +4 -0
  150. package/icons/package.json +1 -1
  151. package/package.json +12 -19
  152. package/scss/core/_exports.module.scss +7 -6
  153. package/scss/core/_functions.scss +9 -7
  154. package/scss/core/_typography.scss +2 -1
  155. package/scss/core/_utilities.scss +2 -1
  156. package/scss/core/_variables.scss +98 -95
  157. package/src/Alert/_variables.scss +2 -1
  158. package/src/Annotation/index.scss +6 -5
  159. package/src/Breadcrumb/Breadcrumb.test.jsx +3 -2
  160. package/src/Bubble/index.scss +3 -2
  161. package/src/Bubble/index.tsx +1 -0
  162. package/src/Button/deprecated/Button.test.jsx +6 -4
  163. package/src/Button/index.scss +19 -18
  164. package/src/Card/CardCarousel/tests/CardCarouselControls.test.jsx +6 -4
  165. package/src/Card/_variables.scss +3 -2
  166. package/src/Card/index.scss +10 -9
  167. package/src/Chip/index.tsx +1 -0
  168. package/src/Collapsible/Collapsible.test.jsx +15 -7
  169. package/src/ColorPicker/ColorPicker.test.jsx +9 -16
  170. package/src/ColorPicker/index.jsx +1 -1
  171. package/src/ColorPicker/index.scss +2 -1
  172. package/src/DataTable/CollapsibleButtonGroup.jsx +2 -2
  173. package/src/DataTable/DropdownFilters.jsx +1 -1
  174. package/src/DataTable/dataviews.mdx +1 -8
  175. package/src/DataTable/index.scss +14 -13
  176. package/src/DataTable/selection/tests/ControlledSelectHeader.test.jsx +6 -4
  177. package/src/DataTable/tests/BulkActions.test.jsx +2 -4
  178. package/src/DataTable/tests/DataViewToggle.test.jsx +3 -7
  179. package/src/DataTable/tests/DropdownFilters.test.jsx +1 -1
  180. package/src/DataTable/tests/TableActions.test.jsx +1 -1
  181. package/src/Dropdown/_variables.scss +2 -1
  182. package/src/Dropdown/deprecated/Dropdown.test.jsx +43 -27
  183. package/src/Dropzone/README.md +3 -3
  184. package/src/Dropzone/index.scss +3 -2
  185. package/src/Dropzone/tests/__snapshots__/Dropzone.test.jsx.snap +10 -1
  186. package/src/Form/FormAutosuggest.jsx +1 -1
  187. package/src/Form/FormGroupContext.tsx +1 -1
  188. package/src/Form/_index.scss +9 -7
  189. package/src/Form/_variables.scss +4 -2
  190. package/src/Form/tests/FormAutosuggest.test.jsx +76 -57
  191. package/src/Form/tests/FormCheckboxSet.test.jsx +3 -2
  192. package/src/Form/tests/FormControl.test.jsx +9 -6
  193. package/src/Form/tests/FormRadioSet.test.jsx +3 -2
  194. package/src/Hyperlink/index.scss +3 -1
  195. package/src/Hyperlink/index.tsx +1 -0
  196. package/src/IconButtonToggle/IconButtonToggle.test.jsx +3 -2
  197. package/src/IconButtonToggle/index.scss +3 -1
  198. package/src/ListBox/ListBox.test.jsx +8 -4
  199. package/src/Menu/Menu.test.jsx +15 -10
  200. package/src/Menu/SelectMenu.jsx +1 -1
  201. package/src/Menu/index.jsx +1 -1
  202. package/src/Modal/ModalDialogBody.jsx +1 -1
  203. package/src/Modal/_ModalDialog.scss +3 -1
  204. package/src/Modal/index.jsx +2 -0
  205. package/src/Modal/index.scss +3 -5
  206. package/src/Modal/tests/ModalLayer.test.tsx +3 -2
  207. package/src/Nav/_mixins.scss +3 -1
  208. package/src/OverflowScroll/data/tests/useOverflowScroll.test.jsx +1 -2
  209. package/src/OverflowScroll/data/tests/useOverflowScrollActions.test.jsx +1 -1
  210. package/src/OverflowScroll/data/tests/useOverflowScrollElementAttributes.test.jsx +1 -1
  211. package/src/OverflowScroll/data/tests/useOverflowScrollEventListeners.test.jsx +1 -2
  212. package/src/PageBanner/index.scss +2 -1
  213. package/src/Pagination/Pagination.test.jsx +36 -28
  214. package/src/Popover/_variables.scss +2 -1
  215. package/src/ProductTour/Checkpoint.scss +9 -8
  216. package/src/ProductTour/Checkpoint.test.jsx +3 -2
  217. package/src/ProductTour/ProductTour.test.jsx +11 -24
  218. package/src/ProductTour/index.jsx +1 -1
  219. package/src/Scrollable/Scrollable.test.jsx +2 -2
  220. package/src/Scrollable/index.jsx +1 -1
  221. package/src/SearchField/index.scss +2 -1
  222. package/src/SelectableBox/tests/SelectableBox.test.jsx +3 -2
  223. package/src/StatusAlert/StatusAlert.test.jsx +6 -2
  224. package/src/Stepper/StepperHeader.jsx +1 -1
  225. package/src/Stepper/tests/Stepper.test.jsx +1 -1
  226. package/src/Table/_variables.scss +2 -1
  227. package/src/Tabs/Tabs.test.jsx +1 -1
  228. package/src/Tabs/deprecated/Tabs.test.jsx +6 -4
  229. package/src/Tabs/index.jsx +1 -1
  230. package/src/Toast/ToastContainer.scss +1 -1
  231. package/src/Toast/index.scss +2 -2
  232. package/src/Truncate/index.jsx +1 -1
  233. package/src/hooks/tests/useToggle.test.tsx +1 -1
  234. package/src/hooks/{useArrowKeyNavigation.tsx → useArrowKeyNavigationHook.tsx} +4 -0
  235. package/src/hooks/{useIndexOfLastVisibleChild.tsx → useIndexOfLastVisibleChildHook.tsx} +4 -0
  236. package/src/hooks/{useToggle.tsx → useToggleHook.tsx} +4 -0
  237. package/src/index.d.ts +5 -5
  238. package/src/index.js +5 -5
  239. package/dist/hooks/useArrowKeyNavigation.js.map +0 -1
  240. package/dist/hooks/useIndexOfLastVisibleChild.js.map +0 -1
  241. package/dist/hooks/useIsVisible.js.map +0 -1
  242. package/dist/hooks/useToggle.js.map +0 -1
  243. package/dist/hooks/useWindowSize.js.map +0 -1
  244. package/src/DataTable/tests/utils.js +0 -9
  245. /package/dist/hooks/{useArrowKeyNavigation.d.ts → useArrowKeyNavigationHook.d.ts} +0 -0
  246. /package/dist/hooks/{useIndexOfLastVisibleChild.d.ts → useIndexOfLastVisibleChildHook.d.ts} +0 -0
  247. /package/dist/hooks/{useIsVisible.d.ts → useIsVisibleHook.d.ts} +0 -0
  248. /package/dist/hooks/{useToggle.d.ts → useToggleHook.d.ts} +0 -0
  249. /package/dist/hooks/{useWindowSize.d.ts → useWindowSizeHook.d.ts} +0 -0
  250. /package/src/hooks/{useIsVisible.tsx → useIsVisibleHook.tsx} +0 -0
  251. /package/src/hooks/{useWindowSize.tsx → useWindowSizeHook.tsx} +0 -0
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  @import "variables";
2
3
  @import "~bootstrap/scss/card";
3
4
 
@@ -51,19 +52,19 @@ a.pgn__card {
51
52
 
52
53
  .pgn__card-carousel {
53
54
  .pgn__card-carousel-title {
54
- margin-bottom: map-get($spacers, 2);
55
+ margin-bottom: map.get($spacers, 2);
55
56
  }
56
57
 
57
58
  .pgn__card-carousel-subtitle {
58
59
  font-size: $font-size-sm;
59
- margin-bottom: map-get($spacers, 2);
60
+ margin-bottom: map.get($spacers, 2);
60
61
  }
61
62
 
62
63
  .pgn__card-carousel-header {
63
64
  display: flex;
64
65
  align-items: center;
65
66
  justify-content: space-between;
66
- margin-bottom: map-get($spacers, 1);
67
+ margin-bottom: map.get($spacers, 1);
67
68
  }
68
69
  }
69
70
 
@@ -118,7 +119,7 @@ a.pgn__card {
118
119
  .pgn__card-header-content {
119
120
  display: flex;
120
121
  flex-direction: column;
121
- margin-top: map_get($spacers, 4\.5);
122
+ margin-top: map.get($spacers, 4\.5);
122
123
  overflow: auto;
123
124
  text-align: start;
124
125
  width: 100%;
@@ -146,7 +147,7 @@ a.pgn__card {
146
147
 
147
148
  %header-subtitle {
148
149
  color: $gray-700;
149
- margin-top: map_get($spacers, 1);
150
+ margin-top: map.get($spacers, 1);
150
151
  }
151
152
 
152
153
  .pgn__card-header-subtitle,
@@ -173,7 +174,7 @@ a.pgn__card {
173
174
  width: 100%;
174
175
 
175
176
  .react-loading-skeleton {
176
- margin-top: map-get($spacers, 4);
177
+ margin-top: map.get($spacers, 4);
177
178
  }
178
179
  }
179
180
  }
@@ -357,7 +358,7 @@ a.pgn__card {
357
358
  object-position: center center;
358
359
  border-radius: $card-logo-border-radius;
359
360
  box-shadow: $level-1-box-shadow;
360
- padding: map_get($spacers, 2);
361
+ padding: map.get($spacers, 2);
361
362
  background-color: $white;
362
363
  display: none;
363
364
 
@@ -391,7 +392,7 @@ a.pgn__card {
391
392
  }
392
393
 
393
394
  .pgn__card-status__actions {
394
- margin-top: map-get($spacers, 3);
395
+ margin-top: map.get($spacers, 3);
395
396
  }
396
397
 
397
398
  .pgn__card-status__heading {
@@ -485,7 +486,7 @@ a.pgn__card {
485
486
  }
486
487
  }
487
488
 
488
- @media (max-width: map-get($grid-breakpoints, "sm")) {
489
+ @media (max-width: map.get($grid-breakpoints, "sm")) {
489
490
  .pgn__card-footer {
490
491
  &.horizontal > :not(:last-child) {
491
492
  margin-inline-end: 0;
@@ -13,7 +13,7 @@ export type ChipIconProps = {
13
13
  onClick?: undefined;
14
14
  alt?: undefined;
15
15
  });
16
- declare function ChipIcon({ className, src, onClick, alt, variant, disabled, }: ChipIconProps): React.JSX.Element;
16
+ declare function ChipIcon({ className, src, onClick, alt, variant, disabled, }: ChipIconProps): import("react/jsx-runtime").JSX.Element;
17
17
  declare namespace ChipIcon {
18
18
  var propTypes: {
19
19
  className: PropTypes.Validator<string>;
@@ -62,6 +62,7 @@ const Chip = /*#__PURE__*/React.forwardRef((_ref, ref) => {
62
62
  });
63
63
  Chip.propTypes = {
64
64
  /** Specifies the content of the `Chip`. */
65
+ // @ts-ignore
65
66
  children: PropTypes.node.isRequired,
66
67
  /** Specifies an additional `className` to add to the base element. */
67
68
  className: PropTypes.string,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","classNames","requiredWhen","STYLE_VARIANTS","ChipIcon","CHIP_PGN_CLASS","Chip","forwardRef","_ref","ref","children","className","variant","iconBefore","iconBeforeAlt","iconAfter","iconAfterAlt","onIconBeforeClick","onIconAfterClick","disabled","isSelected","onClick","props","hasInteractiveIcons","isChipInteractive","interactionProps","onKeyPress","tabIndex","role","createElement","selected","interactive","src","alt","propTypes","node","isRequired","string","oneOf","bool","func","elementType","defaultProps","undefined","LIGHT"],"sources":["../../src/Chip/index.tsx"],"sourcesContent":["import React, { ForwardedRef, KeyboardEventHandler, MouseEventHandler } from 'react';\nimport PropTypes, { type Requireable } from 'prop-types';\nimport classNames from 'classnames';\n// @ts-ignore\nimport { requiredWhen } from '../utils/propTypes';\nimport { STYLE_VARIANTS } from './constants';\nimport ChipIcon from './ChipIcon';\n\nexport const CHIP_PGN_CLASS = 'pgn__chip';\n\nexport interface IChip {\n children: React.ReactNode,\n onClick?: KeyboardEventHandler & MouseEventHandler,\n className?: string,\n variant?: typeof STYLE_VARIANTS[keyof typeof STYLE_VARIANTS],\n iconBefore?: React.ComponentType,\n iconBeforeAlt?: string,\n iconAfter?: React.ComponentType,\n iconAfterAlt?: string,\n onIconBeforeClick?: KeyboardEventHandler & MouseEventHandler,\n onIconAfterClick?: KeyboardEventHandler & MouseEventHandler,\n disabled?: boolean,\n isSelected?: boolean,\n}\n\nconst Chip = React.forwardRef(({\n children,\n className,\n variant,\n iconBefore,\n iconBeforeAlt,\n iconAfter,\n iconAfterAlt,\n onIconBeforeClick,\n onIconAfterClick,\n disabled,\n isSelected,\n onClick,\n ...props\n}: IChip, ref: ForwardedRef<HTMLDivElement>) => {\n const hasInteractiveIcons = !!(onIconBeforeClick || onIconAfterClick);\n const isChipInteractive = !hasInteractiveIcons && !!onClick;\n\n const interactionProps = isChipInteractive ? {\n onClick,\n onKeyPress: onClick,\n tabIndex: 0,\n role: 'button',\n } : {};\n\n return (\n <div\n className={classNames(\n CHIP_PGN_CLASS,\n `pgn__chip-${variant}`,\n className,\n { disabled, selected: isSelected, interactive: isChipInteractive },\n )}\n ref={ref}\n {...interactionProps}\n {...props}\n >\n {iconBefore && (\n <ChipIcon\n className={`${CHIP_PGN_CLASS}__icon-before`}\n src={iconBefore}\n onClick={onIconBeforeClick}\n alt={iconBeforeAlt}\n variant={variant}\n disabled={disabled}\n />\n )}\n <div\n className={classNames(`${CHIP_PGN_CLASS}__label`, {\n 'p-before': iconBefore,\n 'p-after': iconAfter,\n })}\n >\n {children}\n </div>\n {iconAfter && (\n <ChipIcon\n className={`${CHIP_PGN_CLASS}__icon-after`}\n src={iconAfter}\n onClick={onIconAfterClick}\n alt={iconAfterAlt}\n variant={variant}\n disabled={disabled}\n />\n )}\n </div>\n );\n});\n\nChip.propTypes = {\n /** Specifies the content of the `Chip`. */\n children: PropTypes.node.isRequired,\n /** Specifies an additional `className` to add to the base element. */\n className: PropTypes.string,\n /** The `Chip` style variant to use. */\n variant: PropTypes.oneOf(['light', 'dark']),\n /** Disables the `Chip`. */\n disabled: PropTypes.bool,\n /** Click handler for the whole Chip, has effect only when Chip does not have any interactive icons. */\n onClick: PropTypes.func,\n /**\n * An icon component to render before the content.\n * Example import of a Paragon icon component:\n *\n * `import { Check } from '@openedx/paragon/icons';`\n */\n iconBefore: PropTypes.elementType as Requireable<React.ComponentType>,\n /** Specifies icon alt text. */\n iconBeforeAlt: requiredWhen(PropTypes.string, ['iconBefore', 'onIconBeforeClick']),\n /** A click handler for the `Chip` icon before. */\n onIconBeforeClick: PropTypes.func,\n /**\n * An icon component to render before after the content.\n * Example import of a Paragon icon component:\n *\n * `import { Check } from '@openedx/paragon/icons';`\n */\n iconAfter: PropTypes.elementType as Requireable<React.ComponentType>,\n /** Specifies icon alt text. */\n iconAfterAlt: requiredWhen(PropTypes.string, ['iconAfter', 'onIconAfterClick']),\n /** A click handler for the `Chip` icon after. */\n onIconAfterClick: PropTypes.func,\n /** Indicates if `Chip` has been selected. */\n isSelected: PropTypes.bool,\n};\n\nChip.defaultProps = {\n className: undefined,\n variant: STYLE_VARIANTS.LIGHT,\n disabled: false,\n onClick: undefined,\n iconBefore: undefined,\n iconAfter: undefined,\n onIconBeforeClick: undefined,\n onIconAfterClick: undefined,\n isSelected: false,\n iconAfterAlt: undefined,\n iconBeforeAlt: undefined,\n};\n\nexport default Chip;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","classNames","requiredWhen","STYLE_VARIANTS","ChipIcon","CHIP_PGN_CLASS","Chip","forwardRef","_ref","ref","children","className","variant","iconBefore","iconBeforeAlt","iconAfter","iconAfterAlt","onIconBeforeClick","onIconAfterClick","disabled","isSelected","onClick","props","hasInteractiveIcons","isChipInteractive","interactionProps","onKeyPress","tabIndex","role","createElement","selected","interactive","src","alt","propTypes","node","isRequired","string","oneOf","bool","func","elementType","defaultProps","undefined","LIGHT"],"sources":["../../src/Chip/index.tsx"],"sourcesContent":["import React, { ForwardedRef, KeyboardEventHandler, MouseEventHandler } from 'react';\nimport PropTypes, { type Requireable } from 'prop-types';\nimport classNames from 'classnames';\n// @ts-ignore\nimport { requiredWhen } from '../utils/propTypes';\nimport { STYLE_VARIANTS } from './constants';\nimport ChipIcon from './ChipIcon';\n\nexport const CHIP_PGN_CLASS = 'pgn__chip';\n\nexport interface IChip {\n children: React.ReactNode,\n onClick?: KeyboardEventHandler & MouseEventHandler,\n className?: string,\n variant?: typeof STYLE_VARIANTS[keyof typeof STYLE_VARIANTS],\n iconBefore?: React.ComponentType,\n iconBeforeAlt?: string,\n iconAfter?: React.ComponentType,\n iconAfterAlt?: string,\n onIconBeforeClick?: KeyboardEventHandler & MouseEventHandler,\n onIconAfterClick?: KeyboardEventHandler & MouseEventHandler,\n disabled?: boolean,\n isSelected?: boolean,\n}\n\nconst Chip = React.forwardRef(({\n children,\n className,\n variant,\n iconBefore,\n iconBeforeAlt,\n iconAfter,\n iconAfterAlt,\n onIconBeforeClick,\n onIconAfterClick,\n disabled,\n isSelected,\n onClick,\n ...props\n}: IChip, ref: ForwardedRef<HTMLDivElement>) => {\n const hasInteractiveIcons = !!(onIconBeforeClick || onIconAfterClick);\n const isChipInteractive = !hasInteractiveIcons && !!onClick;\n\n const interactionProps = isChipInteractive ? {\n onClick,\n onKeyPress: onClick,\n tabIndex: 0,\n role: 'button',\n } : {};\n\n return (\n <div\n className={classNames(\n CHIP_PGN_CLASS,\n `pgn__chip-${variant}`,\n className,\n { disabled, selected: isSelected, interactive: isChipInteractive },\n )}\n ref={ref}\n {...interactionProps}\n {...props}\n >\n {iconBefore && (\n <ChipIcon\n className={`${CHIP_PGN_CLASS}__icon-before`}\n src={iconBefore}\n onClick={onIconBeforeClick}\n alt={iconBeforeAlt}\n variant={variant}\n disabled={disabled}\n />\n )}\n <div\n className={classNames(`${CHIP_PGN_CLASS}__label`, {\n 'p-before': iconBefore,\n 'p-after': iconAfter,\n })}\n >\n {children}\n </div>\n {iconAfter && (\n <ChipIcon\n className={`${CHIP_PGN_CLASS}__icon-after`}\n src={iconAfter}\n onClick={onIconAfterClick}\n alt={iconAfterAlt}\n variant={variant}\n disabled={disabled}\n />\n )}\n </div>\n );\n});\n\nChip.propTypes = {\n /** Specifies the content of the `Chip`. */\n // @ts-ignore\n children: PropTypes.node.isRequired,\n /** Specifies an additional `className` to add to the base element. */\n className: PropTypes.string,\n /** The `Chip` style variant to use. */\n variant: PropTypes.oneOf(['light', 'dark']),\n /** Disables the `Chip`. */\n disabled: PropTypes.bool,\n /** Click handler for the whole Chip, has effect only when Chip does not have any interactive icons. */\n onClick: PropTypes.func,\n /**\n * An icon component to render before the content.\n * Example import of a Paragon icon component:\n *\n * `import { Check } from '@openedx/paragon/icons';`\n */\n iconBefore: PropTypes.elementType as Requireable<React.ComponentType>,\n /** Specifies icon alt text. */\n iconBeforeAlt: requiredWhen(PropTypes.string, ['iconBefore', 'onIconBeforeClick']),\n /** A click handler for the `Chip` icon before. */\n onIconBeforeClick: PropTypes.func,\n /**\n * An icon component to render before after the content.\n * Example import of a Paragon icon component:\n *\n * `import { Check } from '@openedx/paragon/icons';`\n */\n iconAfter: PropTypes.elementType as Requireable<React.ComponentType>,\n /** Specifies icon alt text. */\n iconAfterAlt: requiredWhen(PropTypes.string, ['iconAfter', 'onIconAfterClick']),\n /** A click handler for the `Chip` icon after. */\n onIconAfterClick: PropTypes.func,\n /** Indicates if `Chip` has been selected. */\n isSelected: PropTypes.bool,\n};\n\nChip.defaultProps = {\n className: undefined,\n variant: STYLE_VARIANTS.LIGHT,\n disabled: false,\n onClick: undefined,\n iconBefore: undefined,\n iconAfter: undefined,\n onIconBeforeClick: undefined,\n onIconAfterClick: undefined,\n isSelected: false,\n iconAfterAlt: undefined,\n iconBeforeAlt: undefined,\n};\n\nexport default Chip;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","useIntl","classNames","OverflowScroll","OverflowScrollContext","IconButton","Icon","ArrowForward","ArrowBack","messages","Chip","ChipCarousel","forwardRef","_ref","ref","className","items","ariaLabel","disableOpacityMasks","onScrollPrevious","onScrollNext","canScrollHorizontal","offset","offsetType","gap","props","intl","createElement","hasInteractiveChildren","disableScroll","Consumer","_ref2","setOverflowRef","isScrolledToStart","isScrolledToEnd","scrollToPrevious","scrollToNext","Fragment","size","src","iconAs","alt","formatMessage","onClick","Items","map","item","id","children","key","propTypes","string","isRequired","arrayOf","element","bool","func","oneOfType","number","oneOf","defaultProps","undefined"],"sources":["../../src/ChipCarousel/index.tsx"],"sourcesContent":["import React, { ForwardedRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport classNames from 'classnames';\n// @ts-ignore\nimport { OverflowScroll, OverflowScrollContext } from '../OverflowScroll';\nimport IconButton from '../IconButton';\nimport Icon from '../Icon';\n// @ts-ignore\nimport { ArrowForward, ArrowBack } from '../../icons';\n// @ts-ignore\nimport messages from './messages';\nimport Chip from '../Chip';\n\nexport interface OverflowScrollContextProps {\n setOverflowRef: () => void,\n isScrolledToStart: boolean,\n isScrolledToEnd: boolean,\n scrollToPrevious: () => void,\n scrollToNext: () => void,\n}\n\nexport interface ChipCarouselProps {\n className?: string;\n items: Array<React.ReactElement>;\n ariaLabel: string;\n disableOpacityMasks?: boolean;\n onScrollPrevious?: () => void;\n onScrollNext?: () => void;\n canScrollHorizontal?: boolean;\n offset?: number | string;\n offsetType?: 'percentage' | 'fixed';\n gap?: number;\n}\n\nconst ChipCarousel = React.forwardRef(({\n className,\n items,\n ariaLabel,\n disableOpacityMasks,\n onScrollPrevious,\n onScrollNext,\n canScrollHorizontal = false,\n offset = 120,\n offsetType = 'fixed',\n gap,\n ...props\n}: ChipCarouselProps, ref: ForwardedRef<HTMLDivElement>) => {\n const intl = useIntl();\n\n return (\n <div\n className={classNames('pgn__chip-carousel', className, gap ? `pgn__chip-carousel-gap__${gap}` : '')}\n {...props}\n ref={ref}\n >\n <OverflowScroll\n ariaLabel={ariaLabel}\n hasInteractiveChildren\n disableScroll={!canScrollHorizontal}\n disableOpacityMasks={disableOpacityMasks}\n onScrollPrevious={onScrollPrevious}\n onScrollNext={onScrollNext}\n offset={offset}\n offsetType={offsetType}\n >\n <OverflowScrollContext.Consumer>\n {({\n setOverflowRef,\n isScrolledToStart,\n isScrolledToEnd,\n scrollToPrevious,\n scrollToNext,\n }: OverflowScrollContextProps) => (\n <>\n <>\n {!isScrolledToStart && (\n <IconButton\n size=\"sm\"\n className=\"pgn__chip-carousel__left-control\"\n src={ArrowBack}\n iconAs={Icon}\n alt={intl.formatMessage(messages.scrollToPrevious)}\n onClick={scrollToPrevious}\n />\n )}\n {!isScrolledToEnd && (\n <IconButton\n size=\"sm\"\n className=\"pgn__chip-carousel__right-control\"\n src={ArrowForward}\n iconAs={Icon}\n alt={intl.formatMessage(messages.scrollToNext)}\n onClick={scrollToNext}\n />\n )}\n </>\n <div ref={setOverflowRef} className=\"d-flex\">\n <OverflowScroll.Items>\n {items?.map((item, id) => {\n const { children } = item?.props || {};\n if (!children) {\n return null;\n }\n // eslint-disable-next-line react/no-array-index-key\n return React.createElement(Chip, { ...item.props, key: id });\n })}\n </OverflowScroll.Items>\n </div>\n </>\n )}\n </OverflowScrollContext.Consumer>\n </OverflowScroll>\n </div>\n );\n});\n\nChipCarousel.propTypes = {\n /** Text describing the ChipCarousel for screen readers. */\n ariaLabel: PropTypes.string.isRequired,\n /** Specifies class name for the ChipCarousel. */\n className: PropTypes.string,\n /** Specifies array of `Chip` elements to be rendered inside the carousel. */\n // @ts-ignore\n items: PropTypes.arrayOf(PropTypes.element).isRequired,\n /** Whether the default opacity masks should be shown at the start/end, if applicable. */\n disableOpacityMasks: PropTypes.bool,\n /** Callback function for when the user scrolls to the previous element. */\n onScrollPrevious: PropTypes.func,\n /** Callback function for when the user scrolls to the next element. */\n onScrollNext: PropTypes.func,\n /** Whether users can scroll within the overflow container. */\n canScrollHorizontal: PropTypes.bool,\n /** A value specifying the distance the scroll should move. */\n offset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Type of offset value (percentage or fixed). */\n offsetType: PropTypes.oneOf(['percentage', 'fixed']),\n /**\n * Specifies inner space between children blocks.\n *\n * Valid values are based on `the spacing classes`:\n * `0, 0.5, ... 6`.\n */\n gap: PropTypes.number,\n};\n\nChipCarousel.defaultProps = {\n className: undefined,\n disableOpacityMasks: undefined,\n onScrollPrevious: undefined,\n onScrollNext: undefined,\n canScrollHorizontal: false,\n offset: 120,\n offsetType: 'fixed',\n gap: 3,\n};\n\nexport default ChipCarousel;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAwB,OAAO;AAC3C,OAAOC,SAAS,MAAM,YAAY;AAClC,SAASC,OAAO,QAAQ,YAAY;AACpC,OAAOC,UAAU,MAAM,YAAY;AACnC;AACA,SAASC,cAAc,EAAEC,qBAAqB,QAAQ,mBAAmB;AACzE,OAAOC,UAAU,MAAM,eAAe;AACtC,OAAOC,IAAI,MAAM,SAAS;AAC1B;AACA,SAASC,YAAY,EAAEC,SAAS,QAAQ,aAAa;AACrD;AACA,OAAOC,QAAQ,MAAM,YAAY;AACjC,OAAOC,IAAI,MAAM,SAAS;AAuB1B,MAAMC,YAAY,gBAAGZ,KAAK,CAACa,UAAU,CAAC,CAAAC,IAAA,EAYhBC,GAAiC,KAAK;EAAA,IAZrB;IACrCC,SAAS;IACTC,KAAK;IACLC,SAAS;IACTC,mBAAmB;IACnBC,gBAAgB;IAChBC,YAAY;IACZC,mBAAmB,GAAG,KAAK;IAC3BC,MAAM,GAAG,GAAG;IACZC,UAAU,GAAG,OAAO;IACpBC,GAAG;IACH,GAAGC;EACc,CAAC,GAAAZ,IAAA;EAClB,MAAMa,IAAI,GAAGzB,OAAO,CAAC,CAAC;EAEtB,oBACEF,KAAA,CAAA4B,aAAA;IACEZ,SAAS,EAAEb,UAAU,CAAC,oBAAoB,EAAEa,SAAS,EAAES,GAAG,GAAI,2BAA0BA,GAAI,EAAC,GAAG,EAAE,CAAE;IAAA,GAChGC,KAAK;IACTX,GAAG,EAAEA;EAAI,gBAETf,KAAA,CAAA4B,aAAA,CAACxB,cAAc;IACbc,SAAS,EAAEA,SAAU;IACrBW,sBAAsB;IACtBC,aAAa,EAAE,CAACR,mBAAoB;IACpCH,mBAAmB,EAAEA,mBAAoB;IACzCC,gBAAgB,EAAEA,gBAAiB;IACnCC,YAAY,EAAEA,YAAa;IAC3BE,MAAM,EAAEA,MAAO;IACfC,UAAU,EAAEA;EAAW,gBAEvBxB,KAAA,CAAA4B,aAAA,CAACvB,qBAAqB,CAAC0B,QAAQ,QAC5BC,KAAA;IAAA,IAAC;MACAC,cAAc;MACdC,iBAAiB;MACjBC,eAAe;MACfC,gBAAgB;MAChBC;IAC0B,CAAC,GAAAL,KAAA;IAAA,oBAC3BhC,KAAA,CAAA4B,aAAA,CAAA5B,KAAA,CAAAsC,QAAA,qBACEtC,KAAA,CAAA4B,aAAA,CAAA5B,KAAA,CAAAsC,QAAA,QACG,CAACJ,iBAAiB,iBACjBlC,KAAA,CAAA4B,aAAA,CAACtB,UAAU;MACTiC,IAAI,EAAC,IAAI;MACTvB,SAAS,EAAC,kCAAkC;MAC5CwB,GAAG,EAAE/B,SAAU;MACfgC,MAAM,EAAElC,IAAK;MACbmC,GAAG,EAAEf,IAAI,CAACgB,aAAa,CAACjC,QAAQ,CAAC0B,gBAAgB,CAAE;MACnDQ,OAAO,EAAER;IAAiB,CAC3B,CACF,EACA,CAACD,eAAe,iBACfnC,KAAA,CAAA4B,aAAA,CAACtB,UAAU;MACTiC,IAAI,EAAC,IAAI;MACTvB,SAAS,EAAC,mCAAmC;MAC7CwB,GAAG,EAAEhC,YAAa;MAClBiC,MAAM,EAAElC,IAAK;MACbmC,GAAG,EAAEf,IAAI,CAACgB,aAAa,CAACjC,QAAQ,CAAC2B,YAAY,CAAE;MAC/CO,OAAO,EAAEP;IAAa,CACvB,CAEH,CAAC,eACHrC,KAAA,CAAA4B,aAAA;MAAKb,GAAG,EAAEkB,cAAe;MAACjB,SAAS,EAAC;IAAQ,gBAC1ChB,KAAA,CAAA4B,aAAA,CAACxB,cAAc,CAACyC,KAAK,QAClB5B,KAAK,EAAE6B,GAAG,CAAC,CAACC,IAAI,EAAEC,EAAE,KAAK;MACxB,MAAM;QAAEC;MAAS,CAAC,GAAGF,IAAI,EAAErB,KAAK,IAAI,CAAC,CAAC;MACtC,IAAI,CAACuB,QAAQ,EAAE;QACb,OAAO,IAAI;MACb;MACA;MACA,oBAAOjD,KAAK,CAAC4B,aAAa,CAACjB,IAAI,EAAE;QAAE,GAAGoC,IAAI,CAACrB,KAAK;QAAEwB,GAAG,EAAEF;MAAG,CAAC,CAAC;IAC9D,CAAC,CACmB,CACnB,CACL,CAAC;EAAA,CAEyB,CAClB,CACb,CAAC;AAEV,CAAC,CAAC;AAEFpC,YAAY,CAACuC,SAAS,GAAG;EACvB;EACAjC,SAAS,EAAEjB,SAAS,CAACmD,MAAM,CAACC,UAAU;EACtC;EACArC,SAAS,EAAEf,SAAS,CAACmD,MAAM;EAC3B;EACA;EACAnC,KAAK,EAAEhB,SAAS,CAACqD,OAAO,CAACrD,SAAS,CAACsD,OAAO,CAAC,CAACF,UAAU;EACtD;EACAlC,mBAAmB,EAAElB,SAAS,CAACuD,IAAI;EACnC;EACApC,gBAAgB,EAAEnB,SAAS,CAACwD,IAAI;EAChC;EACApC,YAAY,EAAEpB,SAAS,CAACwD,IAAI;EAC5B;EACAnC,mBAAmB,EAAErB,SAAS,CAACuD,IAAI;EACnC;EACAjC,MAAM,EAAEtB,SAAS,CAACyD,SAAS,CAAC,CAACzD,SAAS,CAAC0D,MAAM,EAAE1D,SAAS,CAACmD,MAAM,CAAC,CAAC;EACjE;EACA5B,UAAU,EAAEvB,SAAS,CAAC2D,KAAK,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;EACpD;AACF;AACA;AACA;AACA;AACA;EACEnC,GAAG,EAAExB,SAAS,CAAC0D;AACjB,CAAC;AAED/C,YAAY,CAACiD,YAAY,GAAG;EAC1B7C,SAAS,EAAE8C,SAAS;EACpB3C,mBAAmB,EAAE2C,SAAS;EAC9B1C,gBAAgB,EAAE0C,SAAS;EAC3BzC,YAAY,EAAEyC,SAAS;EACvBxC,mBAAmB,EAAE,KAAK;EAC1BC,MAAM,EAAE,GAAG;EACXC,UAAU,EAAE,OAAO;EACnBC,GAAG,EAAE;AACP,CAAC;AAED,eAAeb,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","useIntl","classNames","OverflowScroll","OverflowScrollContext","IconButton","Icon","ArrowForward","ArrowBack","messages","Chip","ChipCarousel","forwardRef","_ref","ref","className","items","ariaLabel","disableOpacityMasks","onScrollPrevious","onScrollNext","canScrollHorizontal","offset","offsetType","gap","props","intl","createElement","hasInteractiveChildren","disableScroll","Consumer","_ref2","setOverflowRef","isScrolledToStart","isScrolledToEnd","scrollToPrevious","scrollToNext","Fragment","size","src","iconAs","alt","formatMessage","onClick","Items","map","item","id","children","key","propTypes","string","isRequired","arrayOf","element","bool","func","oneOfType","number","oneOf","defaultProps","undefined"],"sources":["../../src/ChipCarousel/index.tsx"],"sourcesContent":["import React, { ForwardedRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useIntl } from 'react-intl';\nimport classNames from 'classnames';\n// @ts-ignore\nimport { OverflowScroll, OverflowScrollContext } from '../OverflowScroll';\nimport IconButton from '../IconButton';\nimport Icon from '../Icon';\n// @ts-ignore\nimport { ArrowForward, ArrowBack } from '../../icons';\n// @ts-ignore\nimport messages from './messages';\nimport Chip from '../Chip';\n\nexport interface OverflowScrollContextProps {\n setOverflowRef: () => void,\n isScrolledToStart: boolean,\n isScrolledToEnd: boolean,\n scrollToPrevious: () => void,\n scrollToNext: () => void,\n}\n\nexport interface ChipCarouselProps {\n className?: string;\n items: Array<React.ReactElement>;\n ariaLabel: string;\n disableOpacityMasks?: boolean;\n onScrollPrevious?: () => void;\n onScrollNext?: () => void;\n canScrollHorizontal?: boolean;\n offset?: number | string;\n offsetType?: 'percentage' | 'fixed';\n gap?: number;\n}\n\nconst ChipCarousel = React.forwardRef(({\n className,\n items,\n ariaLabel,\n disableOpacityMasks,\n onScrollPrevious,\n onScrollNext,\n canScrollHorizontal = false,\n offset = 120,\n offsetType = 'fixed',\n gap,\n ...props\n}: ChipCarouselProps, ref: ForwardedRef<HTMLDivElement>) => {\n const intl = useIntl();\n\n return (\n <div\n className={classNames('pgn__chip-carousel', className, gap ? `pgn__chip-carousel-gap__${gap}` : '')}\n {...props}\n ref={ref}\n >\n <OverflowScroll\n ariaLabel={ariaLabel}\n hasInteractiveChildren\n disableScroll={!canScrollHorizontal}\n disableOpacityMasks={disableOpacityMasks}\n onScrollPrevious={onScrollPrevious}\n onScrollNext={onScrollNext}\n offset={offset}\n offsetType={offsetType}\n >\n <OverflowScrollContext.Consumer>\n {({\n setOverflowRef,\n isScrolledToStart,\n isScrolledToEnd,\n scrollToPrevious,\n scrollToNext,\n }: OverflowScrollContextProps) => (\n <>\n <>\n {!isScrolledToStart && (\n <IconButton\n size=\"sm\"\n className=\"pgn__chip-carousel__left-control\"\n src={ArrowBack}\n iconAs={Icon}\n alt={intl.formatMessage(messages.scrollToPrevious)}\n onClick={scrollToPrevious}\n />\n )}\n {!isScrolledToEnd && (\n <IconButton\n size=\"sm\"\n className=\"pgn__chip-carousel__right-control\"\n src={ArrowForward}\n iconAs={Icon}\n alt={intl.formatMessage(messages.scrollToNext)}\n onClick={scrollToNext}\n />\n )}\n </>\n <div ref={setOverflowRef} className=\"d-flex\">\n <OverflowScroll.Items>\n {items?.map((item, id) => {\n const { children } = item?.props || {};\n if (!children) {\n return null;\n }\n // eslint-disable-next-line react/no-array-index-key\n return React.createElement(Chip, { ...item.props, key: id });\n })}\n </OverflowScroll.Items>\n </div>\n </>\n )}\n </OverflowScrollContext.Consumer>\n </OverflowScroll>\n </div>\n );\n});\n\nChipCarousel.propTypes = {\n /** Text describing the ChipCarousel for screen readers. */\n ariaLabel: PropTypes.string.isRequired,\n /** Specifies class name for the ChipCarousel. */\n className: PropTypes.string,\n /** Specifies array of `Chip` elements to be rendered inside the carousel. */\n // @ts-ignore\n items: PropTypes.arrayOf(PropTypes.element).isRequired,\n /** Whether the default opacity masks should be shown at the start/end, if applicable. */\n disableOpacityMasks: PropTypes.bool,\n /** Callback function for when the user scrolls to the previous element. */\n onScrollPrevious: PropTypes.func,\n /** Callback function for when the user scrolls to the next element. */\n onScrollNext: PropTypes.func,\n /** Whether users can scroll within the overflow container. */\n canScrollHorizontal: PropTypes.bool,\n /** A value specifying the distance the scroll should move. */\n offset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /** Type of offset value (percentage or fixed). */\n offsetType: PropTypes.oneOf(['percentage', 'fixed']),\n /**\n * Specifies inner space between children blocks.\n *\n * Valid values are based on `the spacing classes`:\n * `0, 0.5, ... 6`.\n */\n gap: PropTypes.number,\n};\n\nChipCarousel.defaultProps = {\n className: undefined,\n disableOpacityMasks: undefined,\n onScrollPrevious: undefined,\n onScrollNext: undefined,\n canScrollHorizontal: false,\n offset: 120,\n offsetType: 'fixed',\n gap: 3,\n};\n\nexport default ChipCarousel;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","classNames","PropTypes","ExpandLess","ExpandMore","CollapsibleAdvanced","CollapsibleContext","CollapsibleBody","CollapsibleTrigger","CollapsibleVisible","Icon","styleIcons","basic","iconWhenClosed","createElement","src","iconWhenOpen","Collapsible","forwardRef","props","ref","children","className","title","styling","other","icons","titleElement","isValidElement","Advanced","Trigger","Visible","whenClosed","whenOpen","Body","propTypes","node","isRequired","string","defaultOpen","bool","element","onClose","func","onOpen","onToggle","open","oneOf","unmountOnExit","defaultProps","undefined","Context"],"sources":["../../src/Collapsible/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ExpandLess, ExpandMore } from '../../icons';\nimport CollapsibleAdvanced, { CollapsibleContext } from './CollapsibleAdvanced';\nimport CollapsibleBody from './CollapsibleBody';\nimport CollapsibleTrigger from './CollapsibleTrigger';\nimport CollapsibleVisible from './CollapsibleVisible';\nimport Icon from '../Icon';\n\nconst styleIcons = {\n basic: {\n iconWhenClosed: <Icon src={ExpandMore} />,\n iconWhenOpen: <Icon src={ExpandLess} />,\n },\n // card and card-lg use the defaults specified in defaultProps\n};\n\nconst Collapsible = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n title,\n styling,\n iconWhenClosed,\n iconWhenOpen,\n ...other\n } = props;\n\n const icons = { iconWhenClosed, iconWhenOpen, ...styleIcons[styling] };\n const titleElement = React.isValidElement(title) ? title : <span>{title}</span>;\n\n return (\n <Collapsible.Advanced\n {...other}\n className={classNames(className, `collapsible-${styling}`)}\n ref={ref}\n >\n <Collapsible.Trigger className=\"collapsible-trigger\">\n {titleElement}\n <span className=\"collapsible-icon\">\n <Collapsible.Visible whenClosed>{icons.iconWhenClosed}</Collapsible.Visible>\n <Collapsible.Visible whenOpen>{icons.iconWhenOpen}</Collapsible.Visible>\n </span>\n </Collapsible.Trigger>\n\n <Collapsible.Body className=\"collapsible-body\">{children}</Collapsible.Body>\n </Collapsible.Advanced>\n );\n});\n\nCollapsible.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies whether the `Collapsible` should be initially open. */\n defaultOpen: PropTypes.bool,\n /** Specifies icon to show when `Collapsible` is closed. */\n iconWhenClosed: PropTypes.element,\n /** Specifies icon to show when `Collapsible` is open. */\n iconWhenOpen: PropTypes.element,\n /** Callback fired when `Collapsible` closes. */\n onClose: PropTypes.func,\n /** Callback fired when `Collapsible` opens. */\n onOpen: PropTypes.func,\n /** Callback fired when `Collapsible's` state is toggled. */\n onToggle: PropTypes.func,\n /** Specifies whether `Collapsible` is open. */\n open: PropTypes.bool,\n /** Specifies style variant. */\n styling: PropTypes.oneOf(['basic', 'card', 'card-lg']),\n /** Specifies title. */\n title: PropTypes.node.isRequired,\n /** Unmount the component (remove it from the DOM) when it is collapsed */\n unmountOnExit: PropTypes.bool,\n};\n\nCollapsible.defaultProps = {\n className: undefined,\n defaultOpen: false,\n iconWhenClosed: <Icon src={ExpandMore} />,\n iconWhenOpen: <Icon src={ExpandLess} />,\n onClose: undefined,\n onOpen: undefined,\n onToggle: undefined,\n open: undefined,\n styling: 'card',\n unmountOnExit: true,\n};\n\nCollapsible.Advanced = CollapsibleAdvanced;\nCollapsible.Body = CollapsibleBody;\nCollapsible.Trigger = CollapsibleTrigger;\nCollapsible.Visible = CollapsibleVisible;\nCollapsible.Context = CollapsibleContext;\n\nexport default Collapsible;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","classNames","PropTypes","ExpandLess","ExpandMore","CollapsibleAdvanced","CollapsibleContext","CollapsibleBody","CollapsibleTrigger","CollapsibleVisible","Icon","styleIcons","basic","iconWhenClosed","createElement","src","iconWhenOpen","Collapsible","forwardRef","props","ref","children","className","title","styling","other","icons","titleElement","isValidElement","Advanced","Trigger","Visible","whenClosed","whenOpen","Body","propTypes","node","isRequired","string","defaultOpen","bool","element","onClose","func","onOpen","onToggle","open","oneOf","unmountOnExit","defaultProps","undefined","Context"],"sources":["../../src/Collapsible/index.jsx"],"sourcesContent":["import React from 'react';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\n\nimport { ExpandLess, ExpandMore } from '../../icons';\nimport CollapsibleAdvanced, { CollapsibleContext } from './CollapsibleAdvanced';\nimport CollapsibleBody from './CollapsibleBody';\nimport CollapsibleTrigger from './CollapsibleTrigger';\nimport CollapsibleVisible from './CollapsibleVisible';\nimport Icon from '../Icon';\n\nconst styleIcons = {\n basic: {\n iconWhenClosed: <Icon src={ExpandMore} />,\n iconWhenOpen: <Icon src={ExpandLess} />,\n },\n // card and card-lg use the defaults specified in defaultProps\n};\n\nconst Collapsible = React.forwardRef((props, ref) => {\n const {\n children,\n className,\n title,\n styling,\n iconWhenClosed,\n iconWhenOpen,\n ...other\n } = props;\n\n const icons = { iconWhenClosed, iconWhenOpen, ...styleIcons[styling] };\n const titleElement = React.isValidElement(title) ? title : <span>{title}</span>;\n\n return (\n <Collapsible.Advanced\n {...other}\n className={classNames(className, `collapsible-${styling}`)}\n ref={ref}\n >\n <Collapsible.Trigger className=\"collapsible-trigger\">\n {titleElement}\n <span className=\"collapsible-icon\">\n <Collapsible.Visible whenClosed>{icons.iconWhenClosed}</Collapsible.Visible>\n <Collapsible.Visible whenOpen>{icons.iconWhenOpen}</Collapsible.Visible>\n </span>\n </Collapsible.Trigger>\n\n <Collapsible.Body className=\"collapsible-body\">{children}</Collapsible.Body>\n </Collapsible.Advanced>\n );\n});\n\nCollapsible.propTypes = {\n /** Specifies contents of the component. */\n children: PropTypes.node.isRequired,\n /** Specifies class name to append to the base element. */\n className: PropTypes.string,\n /** Specifies whether the `Collapsible` should be initially open. */\n defaultOpen: PropTypes.bool,\n /** Specifies icon to show when `Collapsible` is closed. */\n iconWhenClosed: PropTypes.element,\n /** Specifies icon to show when `Collapsible` is open. */\n iconWhenOpen: PropTypes.element,\n /** Callback fired when `Collapsible` closes. */\n onClose: PropTypes.func,\n /** Callback fired when `Collapsible` opens. */\n onOpen: PropTypes.func,\n /** Callback fired when `Collapsible's` state is toggled. */\n onToggle: PropTypes.func,\n /** Specifies whether `Collapsible` is open. */\n open: PropTypes.bool,\n /** Specifies style variant. */\n styling: PropTypes.oneOf(['basic', 'card', 'card-lg']),\n /** Specifies title. */\n title: PropTypes.node.isRequired,\n /** Unmount the component (remove it from the DOM) when it is collapsed */\n unmountOnExit: PropTypes.bool,\n};\n\nCollapsible.defaultProps = {\n className: undefined,\n defaultOpen: false,\n iconWhenClosed: <Icon src={ExpandMore} />,\n iconWhenOpen: <Icon src={ExpandLess} />,\n onClose: undefined,\n onOpen: undefined,\n onToggle: undefined,\n open: undefined,\n styling: 'card',\n unmountOnExit: true,\n};\n\nCollapsible.Advanced = CollapsibleAdvanced;\nCollapsible.Body = CollapsibleBody;\nCollapsible.Trigger = CollapsibleTrigger;\nCollapsible.Visible = CollapsibleVisible;\nCollapsible.Context = CollapsibleContext;\n\nexport default Collapsible;\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ import Form from '../Form';
7
7
  import ModalPopup from '../Modal/ModalPopup';
8
8
  import { OverlayTrigger } from '../Overlay';
9
9
  import Tooltip from '../Tooltip';
10
- import useToggle from '../hooks/useToggle';
10
+ import useToggle from '../hooks/useToggleHook';
11
11
  function ColorPicker(_ref) {
12
12
  let {
13
13
  color,
@@ -1 +1 @@
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","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":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,cAAc,QAAQ,gBAAgB;AAE/C,OAAOC,MAAM,MAAM,WAAW;AAC9B,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,UAAU,MAAM,qBAAqB;AAC5C,SAASC,cAAc,QAAQ,YAAY;AAC3C,OAAOC,OAAO,MAAM,YAAY;AAChC,OAAOC,SAAS,MAAM,oBAAoB;AAE1C,SAASC,WAAWA,CAAAC,IAAA,EAEjB;EAAA,IAFkB;IACnBC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAEC;EAC9B,CAAC,GAAAJ,IAAA;EACC,MAAM,CAACK,MAAM,EAAEC,IAAI,EAAEC,KAAK,CAAC,GAAGT,SAAS,CAAC,KAAK,CAAC;EAC9C,MAAM,CAACU,MAAM,EAAEC,SAAS,CAAC,GAAGpB,KAAK,CAACqB,QAAQ,CAAC,IAAI,CAAC;EAEhD,MAAMC,YAAY,GAAIC,eAAe,IAAK;IACxC,MAAMC,QAAQ,GAAG,oCAAoC;IACrD,OAAOA,QAAQ,CAACC,IAAI,CAACF,eAAe,CAAC;EACvC,CAAC;EAED,MAAMG,oBAAoB,GAAIC,WAAW,IAAK;IAC5C,IAAI,CAACA,WAAW,CAACC,UAAU,CAAC,GAAG,CAAC,EAAE;MAChC,OAAQ,IAAGD,WAAY,EAAC,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACtC;IAEA,OAAOF,WAAW,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;EAChC,CAAC;EAED,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG/B,KAAK,CAACqB,QAAQ,CAAC,MAAOT,KAAK,KAAK,EAAE,IAAIU,YAAY,CAACI,oBAAoB,CAACd,KAAK,CAAC,CAAE,CAAC;EAEjH,MAAM,CAACoB,cAAc,EAAEC,iBAAiB,CAAC,GAAGjC,KAAK,CAACqB,QAAQ,CAAC,MAAM;IAC/D,IAAIT,KAAK,KAAK,EAAE,EAAE;MAChB,OAAO,EAAE;IACX;IAEA,OAAOc,oBAAoB,CAACd,KAAK,CAAC;EACpC,CAAC,CAAC;EACF,MAAM,CAACsB,cAAc,EAAEC,iBAAiB,CAAC,GAAGnC,KAAK,CAACqB,QAAQ,CAAC,MAAM;IAC/D,MAAMe,cAAc,GAAGV,oBAAoB,CAACd,KAAK,CAAC;IAClD,IAAIU,YAAY,CAACc,cAAc,CAAC,EAAE;MAChC,OAAOA,cAAc;IACvB;IAEA,OAAO,MAAM;EACf,CAAC,CAAC;EAEF,MAAMC,iBAAiB,GAAIC,QAAQ,IAAK;IACtC,IAAIA,QAAQ,KAAK,EAAE,EAAE;MACnBP,WAAW,CAAC,IAAI,CAAC;MACjBlB,QAAQ,CAAC,EAAE,CAAC;MACZoB,iBAAiB,CAAC,EAAE,CAAC;MACrBE,iBAAiB,CAAC,MAAM,CAAC;MACzB;IACF;IAEA,MAAMC,cAAc,GAAGV,oBAAoB,CAACY,QAAQ,CAAC;IAErD,IAAIhB,YAAY,CAACc,cAAc,CAAC,EAAE;MAChCL,WAAW,CAAC,IAAI,CAAC;MACjBlB,QAAQ,CAACuB,cAAc,CAAC;MACxBH,iBAAiB,CAACG,cAAc,CAAC;MACjCD,iBAAiB,CAACC,cAAc,CAAC;MACjC;IACF;IAEAL,WAAW,CAAC,KAAK,CAAC;IAClBE,iBAAiB,CAACG,cAAc,CAAC;;IAEjC;IACAvB,QAAQ,CAACuB,cAAc,CAAC;EAC1B,CAAC;EAED,oBACEpC,KAAA,CAAAuC,aAAA,CAAAvC,KAAA,CAAAwC,QAAA,qBACExC,KAAA,CAAAuC,aAAA;IAAMzB,SAAS,EAAC;EAAQ,gBACtBd,KAAA,CAAAuC,aAAA,CAAChC,cAAc;IACbkC,SAAS,EAAC,KAAK;IACfC,OAAO,eAAE1C,KAAA,CAAAuC,aAAA,CAAC/B,OAAO;MAACmC,EAAE,EAAC;IAAsB,GAAC,cAAqB;EAAE,gBAEnE3C,KAAA,CAAAuC,aAAA,CAACnC,MAAM;IACLwC,GAAG,EAAExB,SAAU;IACfN,SAAS,EAAEZ,UAAU,CACnBY,SAAS,EACT,mBAAmB,EAClB,qBAAoBC,IAAK,EAC5B,CAAE;IACF8B,KAAK,EAAE;MACL,IAAIjC,KAAK,IAAIkB,QAAQ,GAAG;QAAEgB,UAAU,EAAG,GAAElC,KAAM;MAAE,CAAC,GAAG,CAAC,CAAC;IACzD,CAAE;IACFmC,OAAO,EAAE9B;EAAK,CACf,CACa,CACZ,CAAC,eACPjB,KAAA,CAAAuC,aAAA,CAACjC,UAAU;IACT0C,WAAW,EAAE7B,MAAO;IACpBH,MAAM,EAAEA,MAAO;IACf6B,KAAK,EAAE;MAAEC,UAAU,EAAE;IAAQ,CAAE;IAC/BG,OAAO,EAAE/B;EAAM,gBAEflB,KAAA,CAAAuC,aAAA;IACEzB,SAAS,EAAC,iCAAiC;IAC3C+B,KAAK,EAAE;MAAEK,SAAS,EAAE;IAAQ;EAAE,gBAE9BlD,KAAA,CAAAuC,aAAA,CAACpC,cAAc;IAACS,KAAK,EAAEsB,cAAe;IAACiB,QAAQ,EAAEd;EAAkB,CAAE,CAAC,eACtErC,KAAA,CAAAuC,aAAA,CAAClC,IAAI,CAAC+C,KAAK;IAACtC,SAAS,EAAC,eAAe;IAACC,IAAI,EAAC;EAAI,gBAC7Cf,KAAA,CAAAuC,aAAA,2BACEvC,KAAA,CAAAuC,aAAA,CAAClC,IAAI,CAACgD,KAAK;IAACvC,SAAS,EAAC;EAAgB,GAAC,KAAe,CAAC,eACvDd,KAAA,CAAAuC,aAAA,CAAClC,IAAI,CAACiD,OAAO;IACXxC,SAAS,EAAC,gBAAgB;IAC1ByC,SAAS,EAAE,CAACzB,QAAS;IACrB0B,KAAK,EAAExB,cAAe;IACtBmB,QAAQ,EAAGM,CAAC,IAAKpB,iBAAiB,CAACoB,CAAC,CAACtC,MAAM,CAACqC,KAAK,CAAE;IACnD,eAAY,WAAW;IACvBE,UAAU,EAAC;EAAO,CACnB,CACE,CAAC,EACL,CAAC5B,QAAQ,iBACR9B,KAAA,CAAAuC,aAAA,CAAClC,IAAI,CAACiD,OAAO,CAACK,QAAQ;IACpB7C,SAAS,EAAC,kBAAkB;IAC5B8C,IAAI,EAAC;EAAS,GACf,uCAEsB,CAEf,CACT,CACK,CACZ,CAAC;AAEP;AAEAlD,WAAW,CAACmD,YAAY,GAAG;EACzBjD,KAAK,EAAE,EAAE;EACTE,SAAS,EAAEgD,SAAS;EACpB/C,IAAI,EAAE;AACR,CAAC;AAEDL,WAAW,CAACqD,SAAS,GAAG;EACtB;EACAnD,KAAK,EAAEX,SAAS,CAAC+D,MAAM;EACvB;EACAnD,QAAQ,EAAEZ,SAAS,CAACgE,IAAI,CAACC,UAAU;EACnC;EACApD,SAAS,EAAEb,SAAS,CAAC+D,MAAM;EAC3B;EACAjD,IAAI,EAAEd,SAAS,CAACkE,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC;AACpC,CAAC;AAED,eAAezD,WAAW","ignoreList":[]}
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","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/useToggleHook';\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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","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ @use "sass:map";
1
2
  @import "variables";
2
3
 
3
4
  .pgn__color-picker {
@@ -55,7 +56,7 @@
55
56
  }
56
57
 
57
58
  .pgn__hex-field {
58
- @media (min-width: map-get($grid-breakpoints, "sm")) {
59
+ @media (min-width: map.get($grid-breakpoints, "sm")) {
59
60
  margin-inline-end: 0;
60
61
  }
61
62
  }
@@ -1,8 +1,8 @@
1
1
  import React, { useContext, useMemo, useState } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { MoreVert } from '../../icons';
4
- import useToggle from '../hooks/useToggle';
5
- import useWindowSize from '../hooks/useWindowSize';
4
+ import useToggle from '../hooks/useToggleHook';
5
+ import useWindowSize from '../hooks/useWindowSizeHook';
6
6
  import DataTableContext from './DataTableContext';
7
7
  import Icon from '../Icon';
8
8
  import IconButton from '../IconButton';
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsibleButtonGroup.js","names":["React","useContext","useMemo","useState","PropTypes","MoreVert","useToggle","useWindowSize","DataTableContext","Icon","IconButton","breakpoints","ModalPopup","Stack","Button","ACTION_OVERFLOW_BUTTON_TEXT","SMALL_SCREEN_ACTION_OVERFLOW_BUTTON_TEXT","CollapsibleButtonGroup","_ref","className","actions","rest","isOverflowMenuOpen","openOverflowMenu","closeOverflowMenu","overflowMenuTarget","setOverflowMenuTarget","controlledTableSelections","isEntireTableSelected","selectedFlatRows","rows","width","selectedRows","visibleActions","dropdownActions","small","minWidth","firstTwoActions","splice","extraActions","slice","reverse","cloneAction","action","index","cloneElement","component","key","as","args","createElement","length","Fragment","variant","iconAs","src","alt","id","ref","onClick","positionRef","onClose","placement","isOpen","gap","map","defaultProps","propTypes","string","arrayOf","shape","oneOfType","element","elementType","isRequired"],"sources":["../../src/DataTable/CollapsibleButtonGroup.jsx"],"sourcesContent":["import React, { useContext, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MoreVert } from '../../icons';\nimport useToggle from '../hooks/useToggle';\nimport useWindowSize from '../hooks/useWindowSize';\nimport DataTableContext from './DataTableContext';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\nimport breakpoints from '../utils/breakpoints';\nimport ModalPopup from '../Modal/ModalPopup';\nimport Stack from '../Stack';\nimport Button from '../Button';\n\nexport const ACTION_OVERFLOW_BUTTON_TEXT = 'More actions';\nexport const SMALL_SCREEN_ACTION_OVERFLOW_BUTTON_TEXT = 'Actions';\n\nfunction CollapsibleButtonGroup({\n className,\n actions,\n ...rest\n}) {\n const [isOverflowMenuOpen, openOverflowMenu, closeOverflowMenu] = useToggle(false);\n const [overflowMenuTarget, setOverflowMenuTarget] = useState(null);\n const {\n controlledTableSelections: [{ isEntireTableSelected }],\n selectedFlatRows,\n rows,\n } = useContext(DataTableContext);\n const { width } = useWindowSize();\n const selectedRows = selectedFlatRows || rows;\n\n const [visibleActions, dropdownActions] = useMemo(() => {\n if (width < breakpoints.small.minWidth) {\n // On a small screen, all actions will be in the overflow menu\n return [[], [...actions]];\n }\n // The first two actions will be displayed as buttons, the rest will go in an overflow menu\n const firstTwoActions = [...actions].splice(0, 2);\n const extraActions = [...actions].slice(2);\n\n /* Reversing the array because to the user it makes sense to put the primary button first,\n but we want it on the right */\n return [firstTwoActions.reverse(), extraActions];\n }, [actions, width]);\n\n if (!isEntireTableSelected && !selectedRows) {\n return null;\n }\n\n const cloneAction = (action, index) => React.cloneElement(\n action.component,\n {\n // eslint-disable-next-line react/no-array-index-key\n key: `${action}${index}`,\n as: Button, // for backwards compatibility this is needed\n ...action.args,\n },\n );\n\n return (\n <div className={className} {...rest}>\n {dropdownActions.length > 0 && (\n <>\n <IconButton\n variant=\"secondary\"\n iconAs={Icon}\n src={MoreVert}\n alt={width > breakpoints.small.minWidth\n ? ACTION_OVERFLOW_BUTTON_TEXT : SMALL_SCREEN_ACTION_OVERFLOW_BUTTON_TEXT}\n id=\"actions-dropdown\"\n ref={setOverflowMenuTarget}\n onClick={openOverflowMenu}\n />\n <ModalPopup\n positionRef={overflowMenuTarget}\n onClose={closeOverflowMenu}\n placement=\"bottom-end\"\n isOpen={isOverflowMenuOpen}\n >\n <div className=\"pgn__datatable__overflow-actions-menu\">\n <Stack gap={2}>\n {dropdownActions.map(cloneAction)}\n </Stack>\n </div>\n </ModalPopup>\n </>\n )}\n <div className=\"pgn__datatable__visible-actions\">\n {visibleActions.map(cloneAction)}\n </div>\n </div>\n );\n}\n\nCollapsibleButtonGroup.defaultProps = {\n className: null,\n};\n\nCollapsibleButtonGroup.propTypes = {\n /** Class names for the div wrapping the button components */\n className: PropTypes.string,\n /** Array of action objects, containing a component and their callback args */\n actions: PropTypes.arrayOf(PropTypes.shape({\n component: PropTypes.oneOfType([PropTypes.element, PropTypes.elementType]).isRequired,\n args: PropTypes.shape({}),\n })).isRequired,\n};\n\nexport default CollapsibleButtonGroup;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CollapsibleButtonGroup.js","names":["React","useContext","useMemo","useState","PropTypes","MoreVert","useToggle","useWindowSize","DataTableContext","Icon","IconButton","breakpoints","ModalPopup","Stack","Button","ACTION_OVERFLOW_BUTTON_TEXT","SMALL_SCREEN_ACTION_OVERFLOW_BUTTON_TEXT","CollapsibleButtonGroup","_ref","className","actions","rest","isOverflowMenuOpen","openOverflowMenu","closeOverflowMenu","overflowMenuTarget","setOverflowMenuTarget","controlledTableSelections","isEntireTableSelected","selectedFlatRows","rows","width","selectedRows","visibleActions","dropdownActions","small","minWidth","firstTwoActions","splice","extraActions","slice","reverse","cloneAction","action","index","cloneElement","component","key","as","args","createElement","length","Fragment","variant","iconAs","src","alt","id","ref","onClick","positionRef","onClose","placement","isOpen","gap","map","defaultProps","propTypes","string","arrayOf","shape","oneOfType","element","elementType","isRequired"],"sources":["../../src/DataTable/CollapsibleButtonGroup.jsx"],"sourcesContent":["import React, { useContext, useMemo, useState } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { MoreVert } from '../../icons';\nimport useToggle from '../hooks/useToggleHook';\nimport useWindowSize from '../hooks/useWindowSizeHook';\nimport DataTableContext from './DataTableContext';\nimport Icon from '../Icon';\nimport IconButton from '../IconButton';\nimport breakpoints from '../utils/breakpoints';\nimport ModalPopup from '../Modal/ModalPopup';\nimport Stack from '../Stack';\nimport Button from '../Button';\n\nexport const ACTION_OVERFLOW_BUTTON_TEXT = 'More actions';\nexport const SMALL_SCREEN_ACTION_OVERFLOW_BUTTON_TEXT = 'Actions';\n\nfunction CollapsibleButtonGroup({\n className,\n actions,\n ...rest\n}) {\n const [isOverflowMenuOpen, openOverflowMenu, closeOverflowMenu] = useToggle(false);\n const [overflowMenuTarget, setOverflowMenuTarget] = useState(null);\n const {\n controlledTableSelections: [{ isEntireTableSelected }],\n selectedFlatRows,\n rows,\n } = useContext(DataTableContext);\n const { width } = useWindowSize();\n const selectedRows = selectedFlatRows || rows;\n\n const [visibleActions, dropdownActions] = useMemo(() => {\n if (width < breakpoints.small.minWidth) {\n // On a small screen, all actions will be in the overflow menu\n return [[], [...actions]];\n }\n // The first two actions will be displayed as buttons, the rest will go in an overflow menu\n const firstTwoActions = [...actions].splice(0, 2);\n const extraActions = [...actions].slice(2);\n\n /* Reversing the array because to the user it makes sense to put the primary button first,\n but we want it on the right */\n return [firstTwoActions.reverse(), extraActions];\n }, [actions, width]);\n\n if (!isEntireTableSelected && !selectedRows) {\n return null;\n }\n\n const cloneAction = (action, index) => React.cloneElement(\n action.component,\n {\n // eslint-disable-next-line react/no-array-index-key\n key: `${action}${index}`,\n as: Button, // for backwards compatibility this is needed\n ...action.args,\n },\n );\n\n return (\n <div className={className} {...rest}>\n {dropdownActions.length > 0 && (\n <>\n <IconButton\n variant=\"secondary\"\n iconAs={Icon}\n src={MoreVert}\n alt={width > breakpoints.small.minWidth\n ? ACTION_OVERFLOW_BUTTON_TEXT : SMALL_SCREEN_ACTION_OVERFLOW_BUTTON_TEXT}\n id=\"actions-dropdown\"\n ref={setOverflowMenuTarget}\n onClick={openOverflowMenu}\n />\n <ModalPopup\n positionRef={overflowMenuTarget}\n onClose={closeOverflowMenu}\n placement=\"bottom-end\"\n isOpen={isOverflowMenuOpen}\n >\n <div className=\"pgn__datatable__overflow-actions-menu\">\n <Stack gap={2}>\n {dropdownActions.map(cloneAction)}\n </Stack>\n </div>\n </ModalPopup>\n </>\n )}\n <div className=\"pgn__datatable__visible-actions\">\n {visibleActions.map(cloneAction)}\n </div>\n </div>\n );\n}\n\nCollapsibleButtonGroup.defaultProps = {\n className: null,\n};\n\nCollapsibleButtonGroup.propTypes = {\n /** Class names for the div wrapping the button components */\n className: PropTypes.string,\n /** Array of action objects, containing a component and their callback args */\n actions: PropTypes.arrayOf(PropTypes.shape({\n component: PropTypes.oneOfType([PropTypes.element, PropTypes.elementType]).isRequired,\n args: PropTypes.shape({}),\n })).isRequired,\n};\n\nexport default CollapsibleButtonGroup;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import React, { useContext, useMemo } from 'react';
2
2
  import DataTableContext from './DataTableContext';
3
3
  import { DropdownButton } from '../Dropdown';
4
- import useWindowSize from '../hooks/useWindowSize';
4
+ import useWindowSize from '../hooks/useWindowSizeHook';
5
5
  import breakpoints from '../utils/breakpoints';
6
6
 
7
7
  /** The first filter will be as an input, additional filters will be available in a dropdown. */
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFilters.js","names":["React","useContext","useMemo","DataTableContext","DropdownButton","useWindowSize","breakpoints","DropdownFilters","width","columns","numBreakoutFilters","breakoutFilters","otherFilters","availableFilters","filter","column","canFilter","small","minWidth","numberOfBreakoutFilters","boFilters","slice","dropdownFilters","createElement","className","length","map","key","Header","render","variant","id","title"],"sources":["../../src/DataTable/DropdownFilters.jsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react';\nimport DataTableContext from './DataTableContext';\nimport { DropdownButton } from '../Dropdown';\nimport useWindowSize from '../hooks/useWindowSize';\nimport breakpoints from '../utils/breakpoints';\n\n/** The first filter will be as an input, additional filters will be available in a dropdown. */\nfunction DropdownFilters() {\n const { width } = useWindowSize();\n const { columns, numBreakoutFilters } = useContext(DataTableContext);\n\n const [breakoutFilters, otherFilters] = useMemo(() => {\n if (!columns) {\n return [[], []];\n }\n const availableFilters = columns.filter((column) => column.canFilter);\n if (width < breakpoints.small.minWidth) {\n return [[], availableFilters];\n }\n\n const numberOfBreakoutFilters = numBreakoutFilters || 1;\n const boFilters = availableFilters.slice(0, numberOfBreakoutFilters);\n const dropdownFilters = availableFilters.slice(numberOfBreakoutFilters);\n\n return [boFilters, dropdownFilters];\n }, [columns, width, numBreakoutFilters]);\n\n return (\n <div className=\"pgn__data-table-filters\">\n {breakoutFilters.length > 0 && breakoutFilters.map((column) => (\n <div className=\"pgn__data-table-filters-breakout-filter\" key={column.Header}>\n {column.render('Filter')}\n </div>\n ))}\n {otherFilters.length > 0 && (\n <DropdownButton variant=\"outline-primary\" id=\"table-filters-dropdown\" title=\"Filters\">\n {otherFilters.map((column) => (\n <div\n key={column.Header}\n className=\"pgn__data-table-filters-dropdown-item\"\n >\n {column.render('Filter')}\n </div>\n ))}\n </DropdownButton>\n )}\n </div>\n );\n}\n\nexport default DropdownFilters;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,aAAa,MAAM,wBAAwB;AAClD,OAAOC,WAAW,MAAM,sBAAsB;;AAE9C;AACA,SAASC,eAAeA,CAAA,EAAG;EACzB,MAAM;IAAEC;EAAM,CAAC,GAAGH,aAAa,CAAC,CAAC;EACjC,MAAM;IAAEI,OAAO;IAAEC;EAAmB,CAAC,GAAGT,UAAU,CAACE,gBAAgB,CAAC;EAEpE,MAAM,CAACQ,eAAe,EAAEC,YAAY,CAAC,GAAGV,OAAO,CAAC,MAAM;IACpD,IAAI,CAACO,OAAO,EAAE;MACZ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;IACjB;IACA,MAAMI,gBAAgB,GAAGJ,OAAO,CAACK,MAAM,CAAEC,MAAM,IAAKA,MAAM,CAACC,SAAS,CAAC;IACrE,IAAIR,KAAK,GAAGF,WAAW,CAACW,KAAK,CAACC,QAAQ,EAAE;MACtC,OAAO,CAAC,EAAE,EAAEL,gBAAgB,CAAC;IAC/B;IAEA,MAAMM,uBAAuB,GAAGT,kBAAkB,IAAI,CAAC;IACvD,MAAMU,SAAS,GAAGP,gBAAgB,CAACQ,KAAK,CAAC,CAAC,EAAEF,uBAAuB,CAAC;IACpE,MAAMG,eAAe,GAAGT,gBAAgB,CAACQ,KAAK,CAACF,uBAAuB,CAAC;IAEvE,OAAO,CAACC,SAAS,EAAEE,eAAe,CAAC;EACrC,CAAC,EAAE,CAACb,OAAO,EAAED,KAAK,EAAEE,kBAAkB,CAAC,CAAC;EAExC,oBACEV,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC;EAAyB,GACrCb,eAAe,CAACc,MAAM,GAAG,CAAC,IAAId,eAAe,CAACe,GAAG,CAAEX,MAAM,iBACxDf,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC,yCAAyC;IAACG,GAAG,EAAEZ,MAAM,CAACa;EAAO,GACzEb,MAAM,CAACc,MAAM,CAAC,QAAQ,CACpB,CACN,CAAC,EACDjB,YAAY,CAACa,MAAM,GAAG,CAAC,iBACtBzB,KAAA,CAAAuB,aAAA,CAACnB,cAAc;IAAC0B,OAAO,EAAC,iBAAiB;IAACC,EAAE,EAAC,wBAAwB;IAACC,KAAK,EAAC;EAAS,GAClFpB,YAAY,CAACc,GAAG,CAAEX,MAAM,iBACvBf,KAAA,CAAAuB,aAAA;IACEI,GAAG,EAAEZ,MAAM,CAACa,MAAO;IACnBJ,SAAS,EAAC;EAAuC,GAEhDT,MAAM,CAACc,MAAM,CAAC,QAAQ,CACpB,CACN,CACa,CAEf,CAAC;AAEV;AAEA,eAAetB,eAAe","ignoreList":[]}
1
+ {"version":3,"file":"DropdownFilters.js","names":["React","useContext","useMemo","DataTableContext","DropdownButton","useWindowSize","breakpoints","DropdownFilters","width","columns","numBreakoutFilters","breakoutFilters","otherFilters","availableFilters","filter","column","canFilter","small","minWidth","numberOfBreakoutFilters","boFilters","slice","dropdownFilters","createElement","className","length","map","key","Header","render","variant","id","title"],"sources":["../../src/DataTable/DropdownFilters.jsx"],"sourcesContent":["import React, { useContext, useMemo } from 'react';\nimport DataTableContext from './DataTableContext';\nimport { DropdownButton } from '../Dropdown';\nimport useWindowSize from '../hooks/useWindowSizeHook';\nimport breakpoints from '../utils/breakpoints';\n\n/** The first filter will be as an input, additional filters will be available in a dropdown. */\nfunction DropdownFilters() {\n const { width } = useWindowSize();\n const { columns, numBreakoutFilters } = useContext(DataTableContext);\n\n const [breakoutFilters, otherFilters] = useMemo(() => {\n if (!columns) {\n return [[], []];\n }\n const availableFilters = columns.filter((column) => column.canFilter);\n if (width < breakpoints.small.minWidth) {\n return [[], availableFilters];\n }\n\n const numberOfBreakoutFilters = numBreakoutFilters || 1;\n const boFilters = availableFilters.slice(0, numberOfBreakoutFilters);\n const dropdownFilters = availableFilters.slice(numberOfBreakoutFilters);\n\n return [boFilters, dropdownFilters];\n }, [columns, width, numBreakoutFilters]);\n\n return (\n <div className=\"pgn__data-table-filters\">\n {breakoutFilters.length > 0 && breakoutFilters.map((column) => (\n <div className=\"pgn__data-table-filters-breakout-filter\" key={column.Header}>\n {column.render('Filter')}\n </div>\n ))}\n {otherFilters.length > 0 && (\n <DropdownButton variant=\"outline-primary\" id=\"table-filters-dropdown\" title=\"Filters\">\n {otherFilters.map((column) => (\n <div\n key={column.Header}\n className=\"pgn__data-table-filters-dropdown-item\"\n >\n {column.render('Filter')}\n </div>\n ))}\n </DropdownButton>\n )}\n </div>\n );\n}\n\nexport default DropdownFilters;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAClD,OAAOC,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,cAAc,QAAQ,aAAa;AAC5C,OAAOC,aAAa,MAAM,4BAA4B;AACtD,OAAOC,WAAW,MAAM,sBAAsB;;AAE9C;AACA,SAASC,eAAeA,CAAA,EAAG;EACzB,MAAM;IAAEC;EAAM,CAAC,GAAGH,aAAa,CAAC,CAAC;EACjC,MAAM;IAAEI,OAAO;IAAEC;EAAmB,CAAC,GAAGT,UAAU,CAACE,gBAAgB,CAAC;EAEpE,MAAM,CAACQ,eAAe,EAAEC,YAAY,CAAC,GAAGV,OAAO,CAAC,MAAM;IACpD,IAAI,CAACO,OAAO,EAAE;MACZ,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;IACjB;IACA,MAAMI,gBAAgB,GAAGJ,OAAO,CAACK,MAAM,CAAEC,MAAM,IAAKA,MAAM,CAACC,SAAS,CAAC;IACrE,IAAIR,KAAK,GAAGF,WAAW,CAACW,KAAK,CAACC,QAAQ,EAAE;MACtC,OAAO,CAAC,EAAE,EAAEL,gBAAgB,CAAC;IAC/B;IAEA,MAAMM,uBAAuB,GAAGT,kBAAkB,IAAI,CAAC;IACvD,MAAMU,SAAS,GAAGP,gBAAgB,CAACQ,KAAK,CAAC,CAAC,EAAEF,uBAAuB,CAAC;IACpE,MAAMG,eAAe,GAAGT,gBAAgB,CAACQ,KAAK,CAACF,uBAAuB,CAAC;IAEvE,OAAO,CAACC,SAAS,EAAEE,eAAe,CAAC;EACrC,CAAC,EAAE,CAACb,OAAO,EAAED,KAAK,EAAEE,kBAAkB,CAAC,CAAC;EAExC,oBACEV,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC;EAAyB,GACrCb,eAAe,CAACc,MAAM,GAAG,CAAC,IAAId,eAAe,CAACe,GAAG,CAAEX,MAAM,iBACxDf,KAAA,CAAAuB,aAAA;IAAKC,SAAS,EAAC,yCAAyC;IAACG,GAAG,EAAEZ,MAAM,CAACa;EAAO,GACzEb,MAAM,CAACc,MAAM,CAAC,QAAQ,CACpB,CACN,CAAC,EACDjB,YAAY,CAACa,MAAM,GAAG,CAAC,iBACtBzB,KAAA,CAAAuB,aAAA,CAACnB,cAAc;IAAC0B,OAAO,EAAC,iBAAiB;IAACC,EAAE,EAAC,wBAAwB;IAACC,KAAK,EAAC;EAAS,GAClFpB,YAAY,CAACc,GAAG,CAAEX,MAAM,iBACvBf,KAAA,CAAAuB,aAAA;IACEI,GAAG,EAAEZ,MAAM,CAACa,MAAO;IACnBJ,SAAS,EAAC;EAAuC,GAEhDT,MAAM,CAACc,MAAM,CAAC,QAAQ,CACpB,CACN,CACa,CAEf,CAAC;AAEV;AAEA,eAAetB,eAAe","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","names":["React","useContext","PropTypes","classNames","TableCell","DataTableContext","TableRow","_ref","row","getRowProps","cells","id","isSelected","isExpanded","renderRowSubComponent","visibleColumns","createElement","Fragment","className","map","cell","key","column","Header","colSpan","length","propTypes","shape","func","isRequired","arrayOf","string","bool"],"sources":["../../src/DataTable/TableRow.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport TableCell from './TableCell';\nimport DataTableContext from './DataTableContext';\n\nfunction TableRow({ row }) {\n const {\n getRowProps, cells, id, isSelected, isExpanded,\n } = row;\n const { renderRowSubComponent, visibleColumns } = useContext(DataTableContext);\n\n return (\n <>\n <tr {...getRowProps({\n className: classNames({\n 'pgn__data-table-row': true,\n 'is-selected': isSelected,\n }),\n })}\n >\n {cells.map(cell => <TableCell {...cell} key={`${cell.column.Header}${id}`} />)}\n </tr>\n {isExpanded && renderRowSubComponent ? (\n <tr>\n <td colSpan={visibleColumns.length}>\n {renderRowSubComponent({ row })}\n </td>\n </tr>\n ) : null}\n </>\n );\n}\n\nTableRow.propTypes = {\n /** Row data that is received from `react-table` API. */\n row: PropTypes.shape({\n /** props to include on the tr tag (must include id) */\n getRowProps: PropTypes.func.isRequired,\n /** cells in the row */\n cells: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n /** row id */\n id: PropTypes.string.isRequired,\n /** indicates if row has been selected */\n isSelected: PropTypes.bool,\n /** Indicates if row has been expanded. */\n isExpanded: PropTypes.bool,\n }).isRequired,\n};\n\nexport default TableRow;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,SAAS,MAAM,aAAa;AACnC,OAAOC,gBAAgB,MAAM,oBAAoB;AAEjD,SAASC,QAAQA,CAAAC,IAAA,EAAU;EAAA,IAAT;IAAEC;EAAI,CAAC,GAAAD,IAAA;EACvB,MAAM;IACJE,WAAW;IAAEC,KAAK;IAAEC,EAAE;IAAEC,UAAU;IAAEC;EACtC,CAAC,GAAGL,GAAG;EACP,MAAM;IAAEM,qBAAqB;IAAEC;EAAe,CAAC,GAAGd,UAAU,CAACI,gBAAgB,CAAC;EAE9E,oBACEL,KAAA,CAAAgB,aAAA,CAAAhB,KAAA,CAAAiB,QAAA,qBACEjB,KAAA,CAAAgB,aAAA;IAAA,GAAQP,WAAW,CAAC;MAClBS,SAAS,EAAEf,UAAU,CAAC;QACpB,qBAAqB,EAAE,IAAI;QAC3B,aAAa,EAAES;MACjB,CAAC;IACH,CAAC;EAAC,GAECF,KAAK,CAACS,GAAG,CAACC,IAAI,iBAAIpB,KAAA,CAAAgB,aAAA,CAACZ,SAAS;IAAA,GAAKgB,IAAI;IAAEC,GAAG,EAAG,GAAED,IAAI,CAACE,MAAM,CAACC,MAAO,GAAEZ,EAAG;EAAE,CAAE,CAAC,CAC3E,CAAC,EACJE,UAAU,IAAIC,qBAAqB,gBAClCd,KAAA,CAAAgB,aAAA,0BACEhB,KAAA,CAAAgB,aAAA;IAAIQ,OAAO,EAAET,cAAc,CAACU;EAAO,GAChCX,qBAAqB,CAAC;IAAEN;EAAI,CAAC,CAC5B,CACF,CAAC,GACH,IACJ,CAAC;AAEP;AAEAF,QAAQ,CAACoB,SAAS,GAAG;EACnB;EACAlB,GAAG,EAAEN,SAAS,CAACyB,KAAK,CAAC;IACnB;IACAlB,WAAW,EAAEP,SAAS,CAAC0B,IAAI,CAACC,UAAU;IACtC;IACAnB,KAAK,EAAER,SAAS,CAAC4B,OAAO,CAAC5B,SAAS,CAACyB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,UAAU;IACxD;IACAlB,EAAE,EAAET,SAAS,CAAC6B,MAAM,CAACF,UAAU;IAC/B;IACAjB,UAAU,EAAEV,SAAS,CAAC8B,IAAI;IAC1B;IACAnB,UAAU,EAAEX,SAAS,CAAC8B;EACxB,CAAC,CAAC,CAACH;AACL,CAAC;AAED,eAAevB,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"TableRow.js","names":["React","useContext","PropTypes","classNames","TableCell","DataTableContext","TableRow","_ref","row","getRowProps","cells","id","isSelected","isExpanded","renderRowSubComponent","visibleColumns","createElement","Fragment","className","map","cell","key","column","Header","colSpan","length","propTypes","shape","func","isRequired","arrayOf","string","bool"],"sources":["../../src/DataTable/TableRow.jsx"],"sourcesContent":["import React, { useContext } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nimport TableCell from './TableCell';\nimport DataTableContext from './DataTableContext';\n\nfunction TableRow({ row }) {\n const {\n getRowProps, cells, id, isSelected, isExpanded,\n } = row;\n const { renderRowSubComponent, visibleColumns } = useContext(DataTableContext);\n\n return (\n <>\n <tr {...getRowProps({\n className: classNames({\n 'pgn__data-table-row': true,\n 'is-selected': isSelected,\n }),\n })}\n >\n {cells.map(cell => <TableCell {...cell} key={`${cell.column.Header}${id}`} />)}\n </tr>\n {isExpanded && renderRowSubComponent ? (\n <tr>\n <td colSpan={visibleColumns.length}>\n {renderRowSubComponent({ row })}\n </td>\n </tr>\n ) : null}\n </>\n );\n}\n\nTableRow.propTypes = {\n /** Row data that is received from `react-table` API. */\n row: PropTypes.shape({\n /** props to include on the tr tag (must include id) */\n getRowProps: PropTypes.func.isRequired,\n /** cells in the row */\n cells: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n /** row id */\n id: PropTypes.string.isRequired,\n /** indicates if row has been selected */\n isSelected: PropTypes.bool,\n /** Indicates if row has been expanded. */\n isExpanded: PropTypes.bool,\n }).isRequired,\n};\n\nexport default TableRow;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAEnC,OAAOC,SAAS,MAAM,aAAa;AACnC,OAAOC,gBAAgB,MAAM,oBAAoB;AAEjD,SAASC,QAAQA,CAAAC,IAAA,EAAU;EAAA,IAAT;IAAEC;EAAI,CAAC,GAAAD,IAAA;EACvB,MAAM;IACJE,WAAW;IAAEC,KAAK;IAAEC,EAAE;IAAEC,UAAU;IAAEC;EACtC,CAAC,GAAGL,GAAG;EACP,MAAM;IAAEM,qBAAqB;IAAEC;EAAe,CAAC,GAAGd,UAAU,CAACI,gBAAgB,CAAC;EAE9E,oBACEL,KAAA,CAAAgB,aAAA,CAAAhB,KAAA,CAAAiB,QAAA,qBACEjB,KAAA,CAAAgB,aAAA;IAAA,GAAQP,WAAW,CAAC;MAClBS,SAAS,EAAEf,UAAU,CAAC;QACpB,qBAAqB,EAAE,IAAI;QAC3B,aAAa,EAAES;MACjB,CAAC;IACH,CAAC;EAAC,GAECF,KAAK,CAACS,GAAG,CAACC,IAAI,iBAAIpB,KAAA,CAAAgB,aAAA,CAACZ,SAAS;IAAA,GAAKgB,IAAI;IAAEC,GAAG,EAAE,GAAGD,IAAI,CAACE,MAAM,CAACC,MAAM,GAAGZ,EAAE;EAAG,CAAE,CAAC,CAC3E,CAAC,EACJE,UAAU,IAAIC,qBAAqB,gBAClCd,KAAA,CAAAgB,aAAA,0BACEhB,KAAA,CAAAgB,aAAA;IAAIQ,OAAO,EAAET,cAAc,CAACU;EAAO,GAChCX,qBAAqB,CAAC;IAAEN;EAAI,CAAC,CAC5B,CACF,CAAC,GACH,IACJ,CAAC;AAEP;AAEAF,QAAQ,CAACoB,SAAS,GAAG;EACnB;EACAlB,GAAG,EAAEN,SAAS,CAACyB,KAAK,CAAC;IACnB;IACAlB,WAAW,EAAEP,SAAS,CAAC0B,IAAI,CAACC,UAAU;IACtC;IACAnB,KAAK,EAAER,SAAS,CAAC4B,OAAO,CAAC5B,SAAS,CAACyB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,UAAU;IACxD;IACAlB,EAAE,EAAET,SAAS,CAAC6B,MAAM,CAACF,UAAU;IAC/B;IACAjB,UAAU,EAAEV,SAAS,CAAC8B,IAAI;IAC1B;IACAnB,UAAU,EAAEX,SAAS,CAAC8B;EACxB,CAAC,CAAC,CAACH;AACL,CAAC;AAED,eAAevB,QAAQ","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxFilter.js","names":["React","useRef","useMemo","PropTypes","Form","FormLabel","Badge","Stack","newId","CheckboxFilter","_ref","column","filterValue","setFilter","Header","filterChoices","getHeaderProps","ariaLabel","key","checkedBoxes","changeCheckbox","value","includes","newCheckedBoxes","filter","val","push","headerBasedId","createElement","Group","role","current","id","className","CheckboxSet","name","map","_ref2","number","Checkbox","checked","onChange","direction","gap","undefined","variant","propTypes","shape","func","isRequired","oneOfType","elementType","node","arrayOf","string"],"sources":["../../../src/DataTable/filters/CheckboxFilter.jsx"],"sourcesContent":["import React, { useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Form, { FormLabel } from '../../Form';\nimport Badge from '../../Badge';\nimport Stack from '../../Stack';\nimport { newId } from '../../utils';\n\nfunction CheckboxFilter({\n column: {\n filterValue, setFilter, Header, filterChoices, getHeaderProps,\n },\n}) {\n // creates a unique label that does not change on re-render in case there are multiple checkbox filters in the dom\n const ariaLabel = useRef(newId(`checkbox-filter-label-${getHeaderProps().key}-`));\n\n const checkedBoxes = filterValue || [];\n const changeCheckbox = (value) => {\n if (checkedBoxes.includes(value)) {\n const newCheckedBoxes = checkedBoxes.filter((val) => val !== value);\n return setFilter(newCheckedBoxes);\n }\n checkedBoxes.push(value);\n return setFilter(checkedBoxes);\n };\n const headerBasedId = useMemo(() => `checkbox-filter-check-${getHeaderProps().key}-`, [getHeaderProps]);\n\n return (\n <Form.Group role=\"group\" aria-labelledby={ariaLabel.current}>\n <FormLabel id={ariaLabel.current} className=\"pgn__checkbox-filter-label\">{Header}</FormLabel>\n <Form.CheckboxSet name={Header}>\n {filterChoices.map(({ name, number, value }) => (\n <Form.Checkbox\n key={`${headerBasedId}${name}`}\n value={name}\n checked={checkedBoxes.includes(value)}\n onChange={() => changeCheckbox(value)}\n aria-label={name}\n >\n <Stack direction=\"horizontal\" gap={2}>\n {name} {number !== undefined && <Badge variant=\"light\">{number}</Badge>}\n </Stack>\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n </Form.Group>\n );\n}\n\nCheckboxFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `filterChoices`: Specifies array of choices.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n *\n * `filterValue`: Value for the filter input.\n */\n column: PropTypes.shape({\n setFilter: PropTypes.func.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n number: PropTypes.number,\n })).isRequired,\n getHeaderProps: PropTypes.func.isRequired,\n filterValue: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n};\n\nexport default CheckboxFilter;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"CheckboxFilter.js","names":["React","useRef","useMemo","PropTypes","Form","FormLabel","Badge","Stack","newId","CheckboxFilter","_ref","column","filterValue","setFilter","Header","filterChoices","getHeaderProps","ariaLabel","key","checkedBoxes","changeCheckbox","value","includes","newCheckedBoxes","filter","val","push","headerBasedId","createElement","Group","role","current","id","className","CheckboxSet","name","map","_ref2","number","Checkbox","checked","onChange","direction","gap","undefined","variant","propTypes","shape","func","isRequired","oneOfType","elementType","node","arrayOf","string"],"sources":["../../../src/DataTable/filters/CheckboxFilter.jsx"],"sourcesContent":["import React, { useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport Form, { FormLabel } from '../../Form';\nimport Badge from '../../Badge';\nimport Stack from '../../Stack';\nimport { newId } from '../../utils';\n\nfunction CheckboxFilter({\n column: {\n filterValue, setFilter, Header, filterChoices, getHeaderProps,\n },\n}) {\n // creates a unique label that does not change on re-render in case there are multiple checkbox filters in the dom\n const ariaLabel = useRef(newId(`checkbox-filter-label-${getHeaderProps().key}-`));\n\n const checkedBoxes = filterValue || [];\n const changeCheckbox = (value) => {\n if (checkedBoxes.includes(value)) {\n const newCheckedBoxes = checkedBoxes.filter((val) => val !== value);\n return setFilter(newCheckedBoxes);\n }\n checkedBoxes.push(value);\n return setFilter(checkedBoxes);\n };\n const headerBasedId = useMemo(() => `checkbox-filter-check-${getHeaderProps().key}-`, [getHeaderProps]);\n\n return (\n <Form.Group role=\"group\" aria-labelledby={ariaLabel.current}>\n <FormLabel id={ariaLabel.current} className=\"pgn__checkbox-filter-label\">{Header}</FormLabel>\n <Form.CheckboxSet name={Header}>\n {filterChoices.map(({ name, number, value }) => (\n <Form.Checkbox\n key={`${headerBasedId}${name}`}\n value={name}\n checked={checkedBoxes.includes(value)}\n onChange={() => changeCheckbox(value)}\n aria-label={name}\n >\n <Stack direction=\"horizontal\" gap={2}>\n {name} {number !== undefined && <Badge variant=\"light\">{number}</Badge>}\n </Stack>\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n </Form.Group>\n );\n}\n\nCheckboxFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `filterChoices`: Specifies array of choices.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n *\n * `filterValue`: Value for the filter input.\n */\n column: PropTypes.shape({\n setFilter: PropTypes.func.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n number: PropTypes.number,\n })).isRequired,\n getHeaderProps: PropTypes.func.isRequired,\n filterValue: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n};\n\nexport default CheckboxFilter;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownFilter.js","names":["React","useRef","PropTypes","Form","newId","DEFAULT_VALUE","DropdownFilter","_ref","column","setFilter","Header","filterChoices","getHeaderProps","ariaLabel","key","onChange","e","target","value","undefined","createElement","Group","Label","id","current","className","Control","as","default","map","_ref2","name","number","propTypes","shape","func","isRequired","oneOfType","elementType","node","arrayOf","string"],"sources":["../../../src/DataTable/filters/DropdownFilter.jsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Form from '../../Form';\nimport { newId } from '../../utils';\n\nconst DEFAULT_VALUE = '';\n\nfunction DropdownFilter({\n column: {\n setFilter, Header, filterChoices, getHeaderProps,\n },\n}) {\n // creates a unique label that does not change on re-render in case there are multiple checkbox filters in the dom\n const ariaLabel = useRef(newId(`dropdown-filter-label-${getHeaderProps().key}-`));\n const onChange = (e) => {\n if (e.target.value === DEFAULT_VALUE) {\n // setting undefined resets the filter\n return setFilter(undefined);\n }\n return setFilter(e.target.value);\n };\n\n return (\n <Form.Group>\n <Form.Label id={ariaLabel.current} className=\"sr-only\">{Header}</Form.Label>\n <Form.Control\n as=\"select\"\n default={DEFAULT_VALUE}\n onChange={onChange}\n aria-labelledby={ariaLabel.current}\n >\n <option value={DEFAULT_VALUE}>{Header}</option>\n {filterChoices.map(({ name, number, value }) => (<option key={value} value={value}>{name} {number && `(${number})`}</option>))}\n </Form.Control>\n </Form.Group>\n );\n}\n\nDropdownFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `filterChoices`: Specifies array of choices.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n */\n column: PropTypes.shape({\n setFilter: PropTypes.func.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n number: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n })).isRequired,\n getHeaderProps: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default DropdownFilter;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,YAAY;AAC7B,SAASC,KAAK,QAAQ,aAAa;AAEnC,MAAMC,aAAa,GAAG,EAAE;AAExB,SAASC,cAAcA,CAAAC,IAAA,EAIpB;EAAA,IAJqB;IACtBC,MAAM,EAAE;MACNC,SAAS;MAAEC,MAAM;MAAEC,aAAa;MAAEC;IACpC;EACF,CAAC,GAAAL,IAAA;EACC;EACA,MAAMM,SAAS,GAAGZ,MAAM,CAACG,KAAK,CAAE,yBAAwBQ,cAAc,CAAC,CAAC,CAACE,GAAI,GAAE,CAAC,CAAC;EACjF,MAAMC,QAAQ,GAAIC,CAAC,IAAK;IACtB,IAAIA,CAAC,CAACC,MAAM,CAACC,KAAK,KAAKb,aAAa,EAAE;MACpC;MACA,OAAOI,SAAS,CAACU,SAAS,CAAC;IAC7B;IACA,OAAOV,SAAS,CAACO,CAAC,CAACC,MAAM,CAACC,KAAK,CAAC;EAClC,CAAC;EAED,oBACElB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACkB,KAAK,qBACTrB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACmB,KAAK;IAACC,EAAE,EAAEV,SAAS,CAACW,OAAQ;IAACC,SAAS,EAAC;EAAS,GAAEf,MAAmB,CAAC,eAC5EV,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACuB,OAAO;IACXC,EAAE,EAAC,QAAQ;IACXC,OAAO,EAAEvB,aAAc;IACvBU,QAAQ,EAAEA,QAAS;IACnB,mBAAiBF,SAAS,CAACW;EAAQ,gBAEnCxB,KAAA,CAAAoB,aAAA;IAAQF,KAAK,EAAEb;EAAc,GAAEK,MAAe,CAAC,EAC9CC,aAAa,CAACkB,GAAG,CAACC,KAAA;IAAA,IAAC;MAAEC,IAAI;MAAEC,MAAM;MAAEd;IAAM,CAAC,GAAAY,KAAA;IAAA,oBAAM9B,KAAA,CAAAoB,aAAA;MAAQN,GAAG,EAAEI,KAAM;MAACA,KAAK,EAAEA;IAAM,GAAEa,IAAI,EAAC,GAAC,EAACC,MAAM,IAAK,IAAGA,MAAO,GAAW,CAAC;EAAA,CAAC,CACjH,CACJ,CAAC;AAEjB;AAEA1B,cAAc,CAAC2B,SAAS,GAAG;EACzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEzB,MAAM,EAAEN,SAAS,CAACgC,KAAK,CAAC;IACtBzB,SAAS,EAAEP,SAAS,CAACiC,IAAI,CAACC,UAAU;IACpC1B,MAAM,EAAER,SAAS,CAACmC,SAAS,CAAC,CAACnC,SAAS,CAACoC,WAAW,EAAEpC,SAAS,CAACqC,IAAI,CAAC,CAAC,CAACH,UAAU;IAC/EzB,aAAa,EAAET,SAAS,CAACsC,OAAO,CAACtC,SAAS,CAACgC,KAAK,CAAC;MAC/CH,IAAI,EAAE7B,SAAS,CAACuC,MAAM,CAACL,UAAU;MACjCJ,MAAM,EAAE9B,SAAS,CAAC8B,MAAM;MACxBd,KAAK,EAAEhB,SAAS,CAACmC,SAAS,CAAC,CAACnC,SAAS,CAACuC,MAAM,EAAEvC,SAAS,CAAC8B,MAAM,CAAC,CAAC,CAACI;IACnE,CAAC,CAAC,CAAC,CAACA,UAAU;IACdxB,cAAc,EAAEV,SAAS,CAACiC,IAAI,CAACC;EACjC,CAAC,CAAC,CAACA;AACL,CAAC;AAED,eAAe9B,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"DropdownFilter.js","names":["React","useRef","PropTypes","Form","newId","DEFAULT_VALUE","DropdownFilter","_ref","column","setFilter","Header","filterChoices","getHeaderProps","ariaLabel","key","onChange","e","target","value","undefined","createElement","Group","Label","id","current","className","Control","as","default","map","_ref2","name","number","propTypes","shape","func","isRequired","oneOfType","elementType","node","arrayOf","string"],"sources":["../../../src/DataTable/filters/DropdownFilter.jsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Form from '../../Form';\nimport { newId } from '../../utils';\n\nconst DEFAULT_VALUE = '';\n\nfunction DropdownFilter({\n column: {\n setFilter, Header, filterChoices, getHeaderProps,\n },\n}) {\n // creates a unique label that does not change on re-render in case there are multiple checkbox filters in the dom\n const ariaLabel = useRef(newId(`dropdown-filter-label-${getHeaderProps().key}-`));\n const onChange = (e) => {\n if (e.target.value === DEFAULT_VALUE) {\n // setting undefined resets the filter\n return setFilter(undefined);\n }\n return setFilter(e.target.value);\n };\n\n return (\n <Form.Group>\n <Form.Label id={ariaLabel.current} className=\"sr-only\">{Header}</Form.Label>\n <Form.Control\n as=\"select\"\n default={DEFAULT_VALUE}\n onChange={onChange}\n aria-labelledby={ariaLabel.current}\n >\n <option value={DEFAULT_VALUE}>{Header}</option>\n {filterChoices.map(({ name, number, value }) => (<option key={value} value={value}>{name} {number && `(${number})`}</option>))}\n </Form.Control>\n </Form.Group>\n );\n}\n\nDropdownFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `filterChoices`: Specifies array of choices.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n */\n column: PropTypes.shape({\n setFilter: PropTypes.func.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n number: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n })).isRequired,\n getHeaderProps: PropTypes.func.isRequired,\n }).isRequired,\n};\n\nexport default DropdownFilter;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,YAAY;AAC7B,SAASC,KAAK,QAAQ,aAAa;AAEnC,MAAMC,aAAa,GAAG,EAAE;AAExB,SAASC,cAAcA,CAAAC,IAAA,EAIpB;EAAA,IAJqB;IACtBC,MAAM,EAAE;MACNC,SAAS;MAAEC,MAAM;MAAEC,aAAa;MAAEC;IACpC;EACF,CAAC,GAAAL,IAAA;EACC;EACA,MAAMM,SAAS,GAAGZ,MAAM,CAACG,KAAK,CAAC,yBAAyBQ,cAAc,CAAC,CAAC,CAACE,GAAG,GAAG,CAAC,CAAC;EACjF,MAAMC,QAAQ,GAAIC,CAAC,IAAK;IACtB,IAAIA,CAAC,CAACC,MAAM,CAACC,KAAK,KAAKb,aAAa,EAAE;MACpC;MACA,OAAOI,SAAS,CAACU,SAAS,CAAC;IAC7B;IACA,OAAOV,SAAS,CAACO,CAAC,CAACC,MAAM,CAACC,KAAK,CAAC;EAClC,CAAC;EAED,oBACElB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACkB,KAAK,qBACTrB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACmB,KAAK;IAACC,EAAE,EAAEV,SAAS,CAACW,OAAQ;IAACC,SAAS,EAAC;EAAS,GAAEf,MAAmB,CAAC,eAC5EV,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACuB,OAAO;IACXC,EAAE,EAAC,QAAQ;IACXC,OAAO,EAAEvB,aAAc;IACvBU,QAAQ,EAAEA,QAAS;IACnB,mBAAiBF,SAAS,CAACW;EAAQ,gBAEnCxB,KAAA,CAAAoB,aAAA;IAAQF,KAAK,EAAEb;EAAc,GAAEK,MAAe,CAAC,EAC9CC,aAAa,CAACkB,GAAG,CAACC,KAAA;IAAA,IAAC;MAAEC,IAAI;MAAEC,MAAM;MAAEd;IAAM,CAAC,GAAAY,KAAA;IAAA,oBAAM9B,KAAA,CAAAoB,aAAA;MAAQN,GAAG,EAAEI,KAAM;MAACA,KAAK,EAAEA;IAAM,GAAEa,IAAI,EAAC,GAAC,EAACC,MAAM,IAAI,IAAIA,MAAM,GAAY,CAAC;EAAA,CAAC,CACjH,CACJ,CAAC;AAEjB;AAEA1B,cAAc,CAAC2B,SAAS,GAAG;EACzB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEzB,MAAM,EAAEN,SAAS,CAACgC,KAAK,CAAC;IACtBzB,SAAS,EAAEP,SAAS,CAACiC,IAAI,CAACC,UAAU;IACpC1B,MAAM,EAAER,SAAS,CAACmC,SAAS,CAAC,CAACnC,SAAS,CAACoC,WAAW,EAAEpC,SAAS,CAACqC,IAAI,CAAC,CAAC,CAACH,UAAU;IAC/EzB,aAAa,EAAET,SAAS,CAACsC,OAAO,CAACtC,SAAS,CAACgC,KAAK,CAAC;MAC/CH,IAAI,EAAE7B,SAAS,CAACuC,MAAM,CAACL,UAAU;MACjCJ,MAAM,EAAE9B,SAAS,CAAC8B,MAAM;MACxBd,KAAK,EAAEhB,SAAS,CAACmC,SAAS,CAAC,CAACnC,SAAS,CAACuC,MAAM,EAAEvC,SAAS,CAAC8B,MAAM,CAAC,CAAC,CAACI;IACnE,CAAC,CAAC,CAAC,CAACA,UAAU;IACdxB,cAAc,EAAEV,SAAS,CAACiC,IAAI,CAACC;EACjC,CAAC,CAAC,CAACA;AACL,CAAC;AAED,eAAe9B,cAAc","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectDropdownFilter.js","names":["React","useRef","PropTypes","Badge","Stack","DropdownButton","newId","Form","MultiSelectDropdownFilter","_ref","column","setFilter","Header","filterChoices","getHeaderProps","filterValue","ariaLabel","key","checkedBoxes","changeCheckbox","value","includes","newCheckedBoxes","filter","val","push","createElement","variant","id","current","title","CheckboxSet","className","name","map","_ref2","number","Checkbox","checked","onChange","direction","gap","propTypes","shape","func","isRequired","oneOfType","elementType","node","arrayOf","string"],"sources":["../../../src/DataTable/filters/MultiSelectDropdownFilter.jsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Badge from '../../Badge';\nimport Stack from '../../Stack';\nimport { DropdownButton } from '../../Dropdown';\nimport { newId } from '../../utils';\nimport Form from '../../Form';\n\nfunction MultiSelectDropdownFilter({\n column: {\n setFilter, Header, filterChoices, getHeaderProps, filterValue,\n },\n}) {\n // creates a unique label that does not change on re-render in case there are multiple checkbox filters in the dom\n const ariaLabel = useRef(newId(`multi-dropdown-filter-label-${getHeaderProps().key}-`));\n const checkedBoxes = filterValue || [];\n const changeCheckbox = (value) => {\n if (checkedBoxes.includes(value)) {\n const newCheckedBoxes = checkedBoxes.filter((val) => val !== value);\n return setFilter(newCheckedBoxes);\n }\n checkedBoxes.push(value);\n return setFilter(checkedBoxes);\n };\n\n return (\n <DropdownButton variant=\"outline-primary\" id={ariaLabel.current} title={Header}>\n <Form.CheckboxSet\n className=\"pgn__dropdown-filter-checkbox-group\"\n name={Header}\n aria-label={Header}\n >\n {filterChoices.map(({ name, number, value }) => (\n <Form.Checkbox\n key={name}\n value={name}\n checked={checkedBoxes.includes(value)}\n onChange={() => changeCheckbox(value)}\n aria-label={name}\n >\n <Stack direction=\"horizontal\" gap={2}>\n {name} {number && <Badge variant=\"light\">{number}</Badge>}\n </Stack>\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n </DropdownButton>\n );\n}\n\nMultiSelectDropdownFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `filterChoices`: Specifies array of choices.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n *\n * `filterValue`: Value for the filter input.\n */\n column: PropTypes.shape({\n /** Function to set the filter value */\n setFilter: PropTypes.func.isRequired,\n /** Column header used for labels and placeholders */\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n /** Names and values for the select options */\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n number: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n })).isRequired,\n /** Generates a key unique to the column being filtered */\n getHeaderProps: PropTypes.func.isRequired,\n filterValue: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n};\n\nexport default MultiSelectDropdownFilter;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MultiSelectDropdownFilter.js","names":["React","useRef","PropTypes","Badge","Stack","DropdownButton","newId","Form","MultiSelectDropdownFilter","_ref","column","setFilter","Header","filterChoices","getHeaderProps","filterValue","ariaLabel","key","checkedBoxes","changeCheckbox","value","includes","newCheckedBoxes","filter","val","push","createElement","variant","id","current","title","CheckboxSet","className","name","map","_ref2","number","Checkbox","checked","onChange","direction","gap","propTypes","shape","func","isRequired","oneOfType","elementType","node","arrayOf","string"],"sources":["../../../src/DataTable/filters/MultiSelectDropdownFilter.jsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Badge from '../../Badge';\nimport Stack from '../../Stack';\nimport { DropdownButton } from '../../Dropdown';\nimport { newId } from '../../utils';\nimport Form from '../../Form';\n\nfunction MultiSelectDropdownFilter({\n column: {\n setFilter, Header, filterChoices, getHeaderProps, filterValue,\n },\n}) {\n // creates a unique label that does not change on re-render in case there are multiple checkbox filters in the dom\n const ariaLabel = useRef(newId(`multi-dropdown-filter-label-${getHeaderProps().key}-`));\n const checkedBoxes = filterValue || [];\n const changeCheckbox = (value) => {\n if (checkedBoxes.includes(value)) {\n const newCheckedBoxes = checkedBoxes.filter((val) => val !== value);\n return setFilter(newCheckedBoxes);\n }\n checkedBoxes.push(value);\n return setFilter(checkedBoxes);\n };\n\n return (\n <DropdownButton variant=\"outline-primary\" id={ariaLabel.current} title={Header}>\n <Form.CheckboxSet\n className=\"pgn__dropdown-filter-checkbox-group\"\n name={Header}\n aria-label={Header}\n >\n {filterChoices.map(({ name, number, value }) => (\n <Form.Checkbox\n key={name}\n value={name}\n checked={checkedBoxes.includes(value)}\n onChange={() => changeCheckbox(value)}\n aria-label={name}\n >\n <Stack direction=\"horizontal\" gap={2}>\n {name} {number && <Badge variant=\"light\">{number}</Badge>}\n </Stack>\n </Form.Checkbox>\n ))}\n </Form.CheckboxSet>\n </DropdownButton>\n );\n}\n\nMultiSelectDropdownFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `filterChoices`: Specifies array of choices.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n *\n * `filterValue`: Value for the filter input.\n */\n column: PropTypes.shape({\n /** Function to set the filter value */\n setFilter: PropTypes.func.isRequired,\n /** Column header used for labels and placeholders */\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n /** Names and values for the select options */\n filterChoices: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n number: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n })).isRequired,\n /** Generates a key unique to the column being filtered */\n getHeaderProps: PropTypes.func.isRequired,\n filterValue: PropTypes.arrayOf(PropTypes.string),\n }).isRequired,\n};\n\nexport default MultiSelectDropdownFilter;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"TextFilter.js","names":["React","useRef","PropTypes","Form","newId","formatHeaderForLabel","header","toLowerCase","TextFilter","_ref","column","filterValue","setFilter","Header","getHeaderProps","ariaLabel","key","formattedHeader","inputText","isValidElement","createElement","Group","controlId","current","Label","className","Control","value","type","onChange","e","target","undefined","placeholder","propTypes","shape","func","isRequired","oneOfType","elementType","node","string"],"sources":["../../../src/DataTable/filters/TextFilter.jsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Form from '../../Form';\nimport { newId } from '../../utils';\n\nconst formatHeaderForLabel = (header) => {\n if (typeof header === 'function') {\n return header();\n }\n if (typeof header === 'string') {\n return header.toLowerCase();\n }\n return header;\n};\n\nfunction TextFilter({\n column: {\n filterValue, setFilter, Header, getHeaderProps,\n },\n}) {\n const ariaLabel = useRef(newId(`text-filter-label-${getHeaderProps().key}-`));\n const formattedHeader = formatHeaderForLabel(Header);\n const inputText = React.isValidElement(formattedHeader) ? formattedHeader : `Search ${formattedHeader}`;\n return (\n <Form.Group controlId={ariaLabel.current}>\n <Form.Label className=\"sr-only\">{inputText}</Form.Label>\n <Form.Control\n value={filterValue || ''}\n type=\"text\"\n onChange={e => {\n setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\n }}\n placeholder={inputText}\n />\n </Form.Group>\n );\n}\n\nTextFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n *\n * `filterValue`: Value for the filter input.\n */\n column: PropTypes.shape({\n setFilter: PropTypes.func.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n getHeaderProps: PropTypes.func.isRequired,\n filterValue: PropTypes.string,\n }).isRequired,\n};\n\nexport default TextFilter;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,YAAY;AAC7B,SAASC,KAAK,QAAQ,aAAa;AAEnC,MAAMC,oBAAoB,GAAIC,MAAM,IAAK;EACvC,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;IAChC,OAAOA,MAAM,CAAC,CAAC;EACjB;EACA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM,CAACC,WAAW,CAAC,CAAC;EAC7B;EACA,OAAOD,MAAM;AACf,CAAC;AAED,SAASE,UAAUA,CAAAC,IAAA,EAIhB;EAAA,IAJiB;IAClBC,MAAM,EAAE;MACNC,WAAW;MAAEC,SAAS;MAAEC,MAAM;MAAEC;IAClC;EACF,CAAC,GAAAL,IAAA;EACC,MAAMM,SAAS,GAAGd,MAAM,CAACG,KAAK,CAAE,qBAAoBU,cAAc,CAAC,CAAC,CAACE,GAAI,GAAE,CAAC,CAAC;EAC7E,MAAMC,eAAe,GAAGZ,oBAAoB,CAACQ,MAAM,CAAC;EACpD,MAAMK,SAAS,GAAG,aAAAlB,KAAK,CAACmB,cAAc,CAACF,eAAe,CAAC,GAAGA,eAAe,GAAI,UAASA,eAAgB,EAAC;EACvG,oBACEjB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACkB,KAAK;IAACC,SAAS,EAAEP,SAAS,CAACQ;EAAQ,gBACvCvB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACqB,KAAK;IAACC,SAAS,EAAC;EAAS,GAAEP,SAAsB,CAAC,eACxDlB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACuB,OAAO;IACXC,KAAK,EAAEhB,WAAW,IAAI,EAAG;IACzBiB,IAAI,EAAC,MAAM;IACXC,QAAQ,EAAEC,CAAC,IAAI;MACblB,SAAS,CAACkB,CAAC,CAACC,MAAM,CAACJ,KAAK,IAAIK,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAE;IACFC,WAAW,EAAEf;EAAU,CACxB,CACS,CAAC;AAEjB;AAEAV,UAAU,CAAC0B,SAAS,GAAG;EACrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACExB,MAAM,EAAER,SAAS,CAACiC,KAAK,CAAC;IACtBvB,SAAS,EAAEV,SAAS,CAACkC,IAAI,CAACC,UAAU;IACpCxB,MAAM,EAAEX,SAAS,CAACoC,SAAS,CAAC,CAACpC,SAAS,CAACqC,WAAW,EAAErC,SAAS,CAACsC,IAAI,CAAC,CAAC,CAACH,UAAU;IAC/EvB,cAAc,EAAEZ,SAAS,CAACkC,IAAI,CAACC,UAAU;IACzC1B,WAAW,EAAET,SAAS,CAACuC;EACzB,CAAC,CAAC,CAACJ;AACL,CAAC;AAED,eAAe7B,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"TextFilter.js","names":["React","useRef","PropTypes","Form","newId","formatHeaderForLabel","header","toLowerCase","TextFilter","_ref","column","filterValue","setFilter","Header","getHeaderProps","ariaLabel","key","formattedHeader","inputText","isValidElement","createElement","Group","controlId","current","Label","className","Control","value","type","onChange","e","target","undefined","placeholder","propTypes","shape","func","isRequired","oneOfType","elementType","node","string"],"sources":["../../../src/DataTable/filters/TextFilter.jsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport Form from '../../Form';\nimport { newId } from '../../utils';\n\nconst formatHeaderForLabel = (header) => {\n if (typeof header === 'function') {\n return header();\n }\n if (typeof header === 'string') {\n return header.toLowerCase();\n }\n return header;\n};\n\nfunction TextFilter({\n column: {\n filterValue, setFilter, Header, getHeaderProps,\n },\n}) {\n const ariaLabel = useRef(newId(`text-filter-label-${getHeaderProps().key}-`));\n const formattedHeader = formatHeaderForLabel(Header);\n const inputText = React.isValidElement(formattedHeader) ? formattedHeader : `Search ${formattedHeader}`;\n return (\n <Form.Group controlId={ariaLabel.current}>\n <Form.Label className=\"sr-only\">{inputText}</Form.Label>\n <Form.Control\n value={filterValue || ''}\n type=\"text\"\n onChange={e => {\n setFilter(e.target.value || undefined); // Set undefined to remove the filter entirely\n }}\n placeholder={inputText}\n />\n </Form.Group>\n );\n}\n\nTextFilter.propTypes = {\n /**\n * Specifies a column object.\n *\n * `setFilter`: Function to set the filter value.\n *\n * `Header`: Column header used for labels and placeholders.\n *\n * `getHeaderProps`: Generates a key unique to the column being filtered.\n *\n * `filterValue`: Value for the filter input.\n */\n column: PropTypes.shape({\n setFilter: PropTypes.func.isRequired,\n Header: PropTypes.oneOfType([PropTypes.elementType, PropTypes.node]).isRequired,\n getHeaderProps: PropTypes.func.isRequired,\n filterValue: PropTypes.string,\n }).isRequired,\n};\n\nexport default TextFilter;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,IAAI,MAAM,YAAY;AAC7B,SAASC,KAAK,QAAQ,aAAa;AAEnC,MAAMC,oBAAoB,GAAIC,MAAM,IAAK;EACvC,IAAI,OAAOA,MAAM,KAAK,UAAU,EAAE;IAChC,OAAOA,MAAM,CAAC,CAAC;EACjB;EACA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;IAC9B,OAAOA,MAAM,CAACC,WAAW,CAAC,CAAC;EAC7B;EACA,OAAOD,MAAM;AACf,CAAC;AAED,SAASE,UAAUA,CAAAC,IAAA,EAIhB;EAAA,IAJiB;IAClBC,MAAM,EAAE;MACNC,WAAW;MAAEC,SAAS;MAAEC,MAAM;MAAEC;IAClC;EACF,CAAC,GAAAL,IAAA;EACC,MAAMM,SAAS,GAAGd,MAAM,CAACG,KAAK,CAAC,qBAAqBU,cAAc,CAAC,CAAC,CAACE,GAAG,GAAG,CAAC,CAAC;EAC7E,MAAMC,eAAe,GAAGZ,oBAAoB,CAACQ,MAAM,CAAC;EACpD,MAAMK,SAAS,GAAG,aAAAlB,KAAK,CAACmB,cAAc,CAACF,eAAe,CAAC,GAAGA,eAAe,GAAG,UAAUA,eAAe,EAAE;EACvG,oBACEjB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACkB,KAAK;IAACC,SAAS,EAAEP,SAAS,CAACQ;EAAQ,gBACvCvB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACqB,KAAK;IAACC,SAAS,EAAC;EAAS,GAAEP,SAAsB,CAAC,eACxDlB,KAAA,CAAAoB,aAAA,CAACjB,IAAI,CAACuB,OAAO;IACXC,KAAK,EAAEhB,WAAW,IAAI,EAAG;IACzBiB,IAAI,EAAC,MAAM;IACXC,QAAQ,EAAEC,CAAC,IAAI;MACblB,SAAS,CAACkB,CAAC,CAACC,MAAM,CAACJ,KAAK,IAAIK,SAAS,CAAC,CAAC,CAAC;IAC1C,CAAE;IACFC,WAAW,EAAEf;EAAU,CACxB,CACS,CAAC;AAEjB;AAEAV,UAAU,CAAC0B,SAAS,GAAG;EACrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACExB,MAAM,EAAER,SAAS,CAACiC,KAAK,CAAC;IACtBvB,SAAS,EAAEV,SAAS,CAACkC,IAAI,CAACC,UAAU;IACpCxB,MAAM,EAAEX,SAAS,CAACoC,SAAS,CAAC,CAACpC,SAAS,CAACqC,WAAW,EAAErC,SAAS,CAACsC,IAAI,CAAC,CAAC,CAACH,UAAU;IAC/EvB,cAAc,EAAEZ,SAAS,CAACkC,IAAI,CAACC,UAAU;IACzC1B,WAAW,EAAET,SAAS,CAACuC;EACzB,CAAC,CAAC,CAACJ;AACL,CAAC;AAED,eAAe7B,UAAU","ignoreList":[]}