@openedx/paragon 21.12.1 → 21.12.3

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 (416) hide show
  1. package/dist/ActionRow/index.js +7 -8
  2. package/dist/ActionRow/index.js.map +1 -1
  3. package/dist/Alert/index.js +33 -25
  4. package/dist/Alert/index.js.map +1 -1
  5. package/dist/Annotation/index.js +7 -9
  6. package/dist/Annotation/index.js.map +1 -1
  7. package/dist/Avatar/index.js +5 -7
  8. package/dist/Avatar/index.js.map +1 -1
  9. package/dist/AvatarButton/index.js +10 -12
  10. package/dist/AvatarButton/index.js.map +1 -1
  11. package/dist/Badge/index.js +6 -4
  12. package/dist/Badge/index.js.map +1 -1
  13. package/dist/Breadcrumb/BreadcrumbLink.js +11 -14
  14. package/dist/Breadcrumb/BreadcrumbLink.js.map +1 -1
  15. package/dist/Breadcrumb/index.js +29 -29
  16. package/dist/Breadcrumb/index.js.map +1 -1
  17. package/dist/Bubble/index.js +11 -13
  18. package/dist/Bubble/index.js.map +1 -1
  19. package/dist/Button/deprecated/index.js +87 -66
  20. package/dist/Button/deprecated/index.js.map +1 -1
  21. package/dist/Button/index.js +10 -11
  22. package/dist/Button/index.js.map +1 -1
  23. package/dist/Card/CardBody.js +4 -6
  24. package/dist/Card/CardBody.js.map +1 -1
  25. package/dist/Card/CardCarousel/CardCarousel.js +11 -13
  26. package/dist/Card/CardCarousel/CardCarousel.js.map +1 -1
  27. package/dist/Card/CardCarousel/CardCarouselControls.js +6 -7
  28. package/dist/Card/CardCarousel/CardCarouselControls.js.map +1 -1
  29. package/dist/Card/CardCarousel/CardCarouselHeader.js +9 -12
  30. package/dist/Card/CardCarousel/CardCarouselHeader.js.map +1 -1
  31. package/dist/Card/CardCarousel/CardCarouselItems.js +6 -9
  32. package/dist/Card/CardCarousel/CardCarouselItems.js.map +1 -1
  33. package/dist/Card/CardCarousel/CardCarouselProvider.js +27 -28
  34. package/dist/Card/CardCarousel/CardCarouselProvider.js.map +1 -1
  35. package/dist/Card/CardCarousel/CardCarouselSubtitle.js +4 -6
  36. package/dist/Card/CardCarousel/CardCarouselSubtitle.js.map +1 -1
  37. package/dist/Card/CardCarousel/CardCarouselTitle.js +4 -6
  38. package/dist/Card/CardCarousel/CardCarouselTitle.js.map +1 -1
  39. package/dist/Card/CardContext.js +8 -10
  40. package/dist/Card/CardContext.js.map +1 -1
  41. package/dist/Card/CardDeck.js +19 -17
  42. package/dist/Card/CardDeck.js.map +1 -1
  43. package/dist/Card/CardDivider.js +3 -5
  44. package/dist/Card/CardDivider.js.map +1 -1
  45. package/dist/Card/CardFooter.js +15 -18
  46. package/dist/Card/CardFooter.js.map +1 -1
  47. package/dist/Card/CardGrid.js +13 -11
  48. package/dist/Card/CardGrid.js.map +1 -1
  49. package/dist/Card/CardHeader.js +17 -22
  50. package/dist/Card/CardHeader.js.map +1 -1
  51. package/dist/Card/CardImageCap.js +48 -33
  52. package/dist/Card/CardImageCap.js.map +1 -1
  53. package/dist/Card/CardSection.js +11 -14
  54. package/dist/Card/CardSection.js.map +1 -1
  55. package/dist/Card/CardStatus.js +11 -14
  56. package/dist/Card/CardStatus.js.map +1 -1
  57. package/dist/Card/index.js +18 -20
  58. package/dist/Card/index.js.map +1 -1
  59. package/dist/Carousel/index.js +17 -11
  60. package/dist/Carousel/index.js.map +1 -1
  61. package/dist/CheckBox/index.js +66 -36
  62. package/dist/CheckBox/index.js.map +1 -1
  63. package/dist/Chip/index.js +14 -16
  64. package/dist/Chip/index.js.map +1 -1
  65. package/dist/ChipCarousel/index.js +29 -30
  66. package/dist/ChipCarousel/index.js.map +1 -1
  67. package/dist/Collapsible/CollapsibleAdvanced.js +82 -62
  68. package/dist/Collapsible/CollapsibleAdvanced.js.map +1 -1
  69. package/dist/Collapsible/CollapsibleBody.js +13 -15
  70. package/dist/Collapsible/CollapsibleBody.js.map +1 -1
  71. package/dist/Collapsible/CollapsibleTrigger.js +18 -20
  72. package/dist/Collapsible/CollapsibleTrigger.js.map +1 -1
  73. package/dist/Collapsible/CollapsibleVisible.js +6 -9
  74. package/dist/Collapsible/CollapsibleVisible.js.map +1 -1
  75. package/dist/Collapsible/index.js +17 -18
  76. package/dist/Collapsible/index.js.map +1 -1
  77. package/dist/ColorPicker/index.js +58 -33
  78. package/dist/ColorPicker/index.js.map +1 -1
  79. package/dist/Container/index.js +8 -9
  80. package/dist/Container/index.js.map +1 -1
  81. package/dist/DataTable/ActionDisplay.js +8 -9
  82. package/dist/DataTable/ActionDisplay.js.map +1 -1
  83. package/dist/DataTable/BulkActions.js +23 -20
  84. package/dist/DataTable/BulkActions.js.map +1 -1
  85. package/dist/DataTable/CardView.js +46 -43
  86. package/dist/DataTable/CardView.js.map +1 -1
  87. package/dist/DataTable/CollapsibleButtonGroup.js +57 -39
  88. package/dist/DataTable/CollapsibleButtonGroup.js.map +1 -1
  89. package/dist/DataTable/DataTableContext.js +1 -1
  90. package/dist/DataTable/DataTableContext.js.map +1 -1
  91. package/dist/DataTable/DataTableLayout.js +6 -9
  92. package/dist/DataTable/DataTableLayout.js.map +1 -1
  93. package/dist/DataTable/DataViewToggle.js +25 -20
  94. package/dist/DataTable/DataViewToggle.js.map +1 -1
  95. package/dist/DataTable/DropdownFilters.js +41 -28
  96. package/dist/DataTable/DropdownFilters.js.map +1 -1
  97. package/dist/DataTable/EmptyTable.js +6 -9
  98. package/dist/DataTable/EmptyTable.js.map +1 -1
  99. package/dist/DataTable/ExpandAll.js +2 -4
  100. package/dist/DataTable/ExpandAll.js.map +1 -1
  101. package/dist/DataTable/ExpandRow.js +2 -4
  102. package/dist/DataTable/ExpandRow.js.map +1 -1
  103. package/dist/DataTable/FilterStatus.js +18 -17
  104. package/dist/DataTable/FilterStatus.js.map +1 -1
  105. package/dist/DataTable/RowStatus.js +15 -18
  106. package/dist/DataTable/RowStatus.js.map +1 -1
  107. package/dist/DataTable/SidebarFilters.js +16 -13
  108. package/dist/DataTable/SidebarFilters.js.map +1 -1
  109. package/dist/DataTable/SmartStatus.js +14 -16
  110. package/dist/DataTable/SmartStatus.js.map +1 -1
  111. package/dist/DataTable/Table.js +17 -19
  112. package/dist/DataTable/Table.js.map +1 -1
  113. package/dist/DataTable/TableActions.js +11 -13
  114. package/dist/DataTable/TableActions.js.map +1 -1
  115. package/dist/DataTable/TableCell.js +6 -10
  116. package/dist/DataTable/TableCell.js.map +1 -1
  117. package/dist/DataTable/TableControlBar.js +7 -12
  118. package/dist/DataTable/TableControlBar.js.map +1 -1
  119. package/dist/DataTable/TableFilters.js +14 -12
  120. package/dist/DataTable/TableFilters.js.map +1 -1
  121. package/dist/DataTable/TableFooter.js +5 -8
  122. package/dist/DataTable/TableFooter.js.map +1 -1
  123. package/dist/DataTable/TableHeaderCell.js +11 -15
  124. package/dist/DataTable/TableHeaderCell.js.map +1 -1
  125. package/dist/DataTable/TableHeaderRow.js +6 -4
  126. package/dist/DataTable/TableHeaderRow.js.map +1 -1
  127. package/dist/DataTable/TablePagination.js +8 -7
  128. package/dist/DataTable/TablePagination.js.map +1 -1
  129. package/dist/DataTable/TablePaginationMinimal.js +9 -8
  130. package/dist/DataTable/TablePaginationMinimal.js.map +1 -1
  131. package/dist/DataTable/TableRow.js +15 -18
  132. package/dist/DataTable/TableRow.js.map +1 -1
  133. package/dist/DataTable/_variables.scss +1 -1
  134. package/dist/DataTable/filters/CheckboxFilter.js +23 -22
  135. package/dist/DataTable/filters/CheckboxFilter.js.map +1 -1
  136. package/dist/DataTable/filters/DropdownFilter.js +14 -19
  137. package/dist/DataTable/filters/DropdownFilter.js.map +1 -1
  138. package/dist/DataTable/filters/MultiSelectDropdownFilter.js +19 -20
  139. package/dist/DataTable/filters/MultiSelectDropdownFilter.js.map +1 -1
  140. package/dist/DataTable/filters/TextFilter.js +10 -13
  141. package/dist/DataTable/filters/TextFilter.js.map +1 -1
  142. package/dist/DataTable/hooks.js +29 -25
  143. package/dist/DataTable/hooks.js.map +1 -1
  144. package/dist/DataTable/index.js +120 -104
  145. package/dist/DataTable/index.js.map +1 -1
  146. package/dist/DataTable/selection/BaseSelectionStatus.js +29 -31
  147. package/dist/DataTable/selection/BaseSelectionStatus.js.map +1 -1
  148. package/dist/DataTable/selection/ControlledSelect.js +13 -9
  149. package/dist/DataTable/selection/ControlledSelect.js.map +1 -1
  150. package/dist/DataTable/selection/ControlledSelectHeader.js +19 -15
  151. package/dist/DataTable/selection/ControlledSelectHeader.js.map +1 -1
  152. package/dist/DataTable/selection/ControlledSelectionStatus.js +34 -24
  153. package/dist/DataTable/selection/ControlledSelectionStatus.js.map +1 -1
  154. package/dist/DataTable/selection/SelectionStatus.js +23 -23
  155. package/dist/DataTable/selection/SelectionStatus.js.map +1 -1
  156. package/dist/DataTable/utils/getVisibleColumns.js +36 -44
  157. package/dist/DataTable/utils/getVisibleColumns.js.map +1 -1
  158. package/dist/Dropdown/deprecated/DropdownButton.js +9 -13
  159. package/dist/Dropdown/deprecated/DropdownButton.js.map +1 -1
  160. package/dist/Dropdown/deprecated/DropdownItem.js +7 -8
  161. package/dist/Dropdown/deprecated/DropdownItem.js.map +1 -1
  162. package/dist/Dropdown/deprecated/DropdownMenu.js +8 -12
  163. package/dist/Dropdown/deprecated/DropdownMenu.js.map +1 -1
  164. package/dist/Dropdown/deprecated/index.js +136 -103
  165. package/dist/Dropdown/deprecated/index.js.map +1 -1
  166. package/dist/Dropdown/index.js +32 -29
  167. package/dist/Dropdown/index.js.map +1 -1
  168. package/dist/Dropzone/DefaultContent.js +13 -13
  169. package/dist/Dropzone/DefaultContent.js.map +1 -1
  170. package/dist/Dropzone/DragError.js +1 -3
  171. package/dist/Dropzone/DragError.js.map +1 -1
  172. package/dist/Dropzone/GenericError.js +7 -7
  173. package/dist/Dropzone/GenericError.js.map +1 -1
  174. package/dist/Dropzone/UploadProgress.js +6 -8
  175. package/dist/Dropzone/UploadProgress.js.map +1 -1
  176. package/dist/Dropzone/index.js +145 -86
  177. package/dist/Dropzone/index.js.map +1 -1
  178. package/dist/Fieldset/index.js +82 -57
  179. package/dist/Fieldset/index.js.map +1 -1
  180. package/dist/Form/FormAutosuggest.js +137 -95
  181. package/dist/Form/FormAutosuggest.js.map +1 -1
  182. package/dist/Form/FormAutosuggestOption.js +4 -6
  183. package/dist/Form/FormAutosuggestOption.js.map +1 -1
  184. package/dist/Form/FormCheckbox.js +35 -42
  185. package/dist/Form/FormCheckbox.js.map +1 -1
  186. package/dist/Form/FormCheckboxSet.js +13 -16
  187. package/dist/Form/FormCheckboxSet.js.map +1 -1
  188. package/dist/Form/FormCheckboxSetContext.js +39 -34
  189. package/dist/Form/FormCheckboxSetContext.js.map +1 -1
  190. package/dist/Form/FormControl.js +41 -35
  191. package/dist/Form/FormControl.js.map +1 -1
  192. package/dist/Form/FormControlDecorator.js +3 -5
  193. package/dist/Form/FormControlDecorator.js.map +1 -1
  194. package/dist/Form/FormControlDecoratorGroup.js +8 -10
  195. package/dist/Form/FormControlDecoratorGroup.js.map +1 -1
  196. package/dist/Form/FormControlFeedback.js +12 -15
  197. package/dist/Form/FormControlFeedback.js.map +1 -1
  198. package/dist/Form/FormControlFloatingLabel.js +3 -6
  199. package/dist/Form/FormControlFloatingLabel.js.map +1 -1
  200. package/dist/Form/FormControlSet.js +8 -9
  201. package/dist/Form/FormControlSet.js.map +1 -1
  202. package/dist/Form/FormGroup.js +11 -12
  203. package/dist/Form/FormGroup.js.map +1 -1
  204. package/dist/Form/FormGroupContext.js +64 -39
  205. package/dist/Form/FormGroupContext.js.map +1 -1
  206. package/dist/Form/FormLabel.js +15 -17
  207. package/dist/Form/FormLabel.js.map +1 -1
  208. package/dist/Form/FormRadio.js +19 -22
  209. package/dist/Form/FormRadio.js.map +1 -1
  210. package/dist/Form/FormRadioSet.js +13 -16
  211. package/dist/Form/FormRadioSet.js.map +1 -1
  212. package/dist/Form/FormRadioSetContext.js +39 -34
  213. package/dist/Form/FormRadioSetContext.js.map +1 -1
  214. package/dist/Form/FormSwitch.js +16 -20
  215. package/dist/Form/FormSwitch.js.map +1 -1
  216. package/dist/Form/FormText.js +20 -29
  217. package/dist/Form/FormText.js.map +1 -1
  218. package/dist/Form/useCheckboxSetValues.js +46 -23
  219. package/dist/Form/useCheckboxSetValues.js.map +1 -1
  220. package/dist/Hyperlink/index.js +25 -25
  221. package/dist/Hyperlink/index.js.map +1 -1
  222. package/dist/Hyperlink/index.scss +2 -2
  223. package/dist/Icon/index.js +21 -20
  224. package/dist/Icon/index.js.map +1 -1
  225. package/dist/IconButton/index.js +30 -32
  226. package/dist/IconButton/index.js.map +1 -1
  227. package/dist/IconButtonToggle/index.js +16 -16
  228. package/dist/IconButtonToggle/index.js.map +1 -1
  229. package/dist/Input/index.js +122 -92
  230. package/dist/Input/index.js.map +1 -1
  231. package/dist/InputSelect/index.js +78 -51
  232. package/dist/InputSelect/index.js.map +1 -1
  233. package/dist/InputText/index.js +11 -9
  234. package/dist/InputText/index.js.map +1 -1
  235. package/dist/Layout/index.js +33 -29
  236. package/dist/Layout/index.js.map +1 -1
  237. package/dist/ListBox/index.js +112 -80
  238. package/dist/ListBox/index.js.map +1 -1
  239. package/dist/ListBoxOption/index.js +68 -45
  240. package/dist/ListBoxOption/index.js.map +1 -1
  241. package/dist/MailtoLink/index.js +37 -34
  242. package/dist/MailtoLink/index.js.map +1 -1
  243. package/dist/Menu/MenuItem.js +13 -14
  244. package/dist/Menu/MenuItem.js.map +1 -1
  245. package/dist/Menu/SelectMenu.js +68 -44
  246. package/dist/Menu/SelectMenu.js.map +1 -1
  247. package/dist/Menu/index.js +10 -11
  248. package/dist/Menu/index.js.map +1 -1
  249. package/dist/Modal/AlertModal.js +5 -7
  250. package/dist/Modal/AlertModal.js.map +1 -1
  251. package/dist/Modal/FullscreenModal.js +6 -8
  252. package/dist/Modal/FullscreenModal.js.map +1 -1
  253. package/dist/Modal/MarketingModal.js +8 -10
  254. package/dist/Modal/MarketingModal.js.map +1 -1
  255. package/dist/Modal/ModalCloseButton.js +13 -15
  256. package/dist/Modal/ModalCloseButton.js.map +1 -1
  257. package/dist/Modal/ModalContext.js +13 -13
  258. package/dist/Modal/ModalContext.js.map +1 -1
  259. package/dist/Modal/ModalDialog.js +22 -23
  260. package/dist/Modal/ModalDialog.js.map +1 -1
  261. package/dist/Modal/ModalDialogBody.js +22 -11
  262. package/dist/Modal/ModalDialogBody.js.map +1 -1
  263. package/dist/Modal/ModalDialogFooter.js +6 -7
  264. package/dist/Modal/ModalDialogFooter.js.map +1 -1
  265. package/dist/Modal/ModalDialogHeader.js +6 -7
  266. package/dist/Modal/ModalDialogHeader.js.map +1 -1
  267. package/dist/Modal/ModalDialogHero.js +6 -7
  268. package/dist/Modal/ModalDialogHero.js.map +1 -1
  269. package/dist/Modal/ModalDialogHeroBackground.js +8 -9
  270. package/dist/Modal/ModalDialogHeroBackground.js.map +1 -1
  271. package/dist/Modal/ModalDialogHeroContent.js +6 -7
  272. package/dist/Modal/ModalDialogHeroContent.js.map +1 -1
  273. package/dist/Modal/ModalDialogTitle.js +6 -7
  274. package/dist/Modal/ModalDialogTitle.js.map +1 -1
  275. package/dist/Modal/ModalLayer.js +11 -17
  276. package/dist/Modal/ModalLayer.js.map +1 -1
  277. package/dist/Modal/ModalPopup.js +17 -17
  278. package/dist/Modal/ModalPopup.js.map +1 -1
  279. package/dist/Modal/PopperElement.js +25 -18
  280. package/dist/Modal/PopperElement.js.map +1 -1
  281. package/dist/Modal/Portal.js +40 -18
  282. package/dist/Modal/Portal.js.map +1 -1
  283. package/dist/Modal/StandardModal.js +6 -8
  284. package/dist/Modal/StandardModal.js.map +1 -1
  285. package/dist/Modal/index.js +215 -187
  286. package/dist/Modal/index.js.map +1 -1
  287. package/dist/Nav/index.js +3 -2
  288. package/dist/Nav/index.js.map +1 -1
  289. package/dist/Navbar/index.js +7 -6
  290. package/dist/Navbar/index.js.map +1 -1
  291. package/dist/OverflowScroll/OverflowScroll.js +45 -37
  292. package/dist/OverflowScroll/OverflowScroll.js.map +1 -1
  293. package/dist/OverflowScroll/OverflowScrollContext.js +1 -1
  294. package/dist/OverflowScroll/OverflowScrollContext.js.map +1 -1
  295. package/dist/OverflowScroll/OverflowScrollItems.js +2 -4
  296. package/dist/OverflowScroll/OverflowScrollItems.js.map +1 -1
  297. package/dist/Overlay/index.js +4 -4
  298. package/dist/Overlay/index.js.map +1 -1
  299. package/dist/PageBanner/index.js +11 -13
  300. package/dist/PageBanner/index.js.map +1 -1
  301. package/dist/Pagination/index.js +331 -296
  302. package/dist/Pagination/index.js.map +1 -1
  303. package/dist/Pagination/index.scss +1 -0
  304. package/dist/Popover/index.js +11 -14
  305. package/dist/Popover/index.js.map +1 -1
  306. package/dist/ProductTour/Checkpoint.js +29 -22
  307. package/dist/ProductTour/Checkpoint.js.map +1 -1
  308. package/dist/ProductTour/CheckpointActionRow.js +18 -16
  309. package/dist/ProductTour/CheckpointActionRow.js.map +1 -1
  310. package/dist/ProductTour/CheckpointBody.js +2 -4
  311. package/dist/ProductTour/CheckpointBody.js.map +1 -1
  312. package/dist/ProductTour/CheckpointBreadcrumbs.js +16 -16
  313. package/dist/ProductTour/CheckpointBreadcrumbs.js.map +1 -1
  314. package/dist/ProductTour/CheckpointTitle.js +2 -4
  315. package/dist/ProductTour/CheckpointTitle.js.map +1 -1
  316. package/dist/ProductTour/index.js +66 -47
  317. package/dist/ProductTour/index.js.map +1 -1
  318. package/dist/ProgressBar/index.js +37 -35
  319. package/dist/ProgressBar/index.js.map +1 -1
  320. package/dist/RadioButtonGroup/index.js +133 -102
  321. package/dist/RadioButtonGroup/index.js.map +1 -1
  322. package/dist/Scrollable/index.js +30 -15
  323. package/dist/Scrollable/index.js.map +1 -1
  324. package/dist/SearchField/SearchFieldAdvanced.js +54 -44
  325. package/dist/SearchField/SearchFieldAdvanced.js.map +1 -1
  326. package/dist/SearchField/SearchFieldClearButton.js +7 -8
  327. package/dist/SearchField/SearchFieldClearButton.js.map +1 -1
  328. package/dist/SearchField/SearchFieldInput.js +8 -9
  329. package/dist/SearchField/SearchFieldInput.js.map +1 -1
  330. package/dist/SearchField/SearchFieldLabel.js +5 -8
  331. package/dist/SearchField/SearchFieldLabel.js.map +1 -1
  332. package/dist/SearchField/SearchFieldSubmitButton.js +12 -15
  333. package/dist/SearchField/SearchFieldSubmitButton.js.map +1 -1
  334. package/dist/SearchField/index.js +22 -22
  335. package/dist/SearchField/index.js.map +1 -1
  336. package/dist/SelectableBox/SelectableBoxSet.js +25 -26
  337. package/dist/SelectableBox/SelectableBoxSet.js.map +1 -1
  338. package/dist/SelectableBox/index.js +42 -38
  339. package/dist/SelectableBox/index.js.map +1 -1
  340. package/dist/Sheet/SheetContainer.js +38 -16
  341. package/dist/Sheet/SheetContainer.js.map +1 -1
  342. package/dist/Sheet/index.js +65 -43
  343. package/dist/Sheet/index.js.map +1 -1
  344. package/dist/Spinner/index.js +8 -9
  345. package/dist/Spinner/index.js.map +1 -1
  346. package/dist/Stack/index.js +9 -11
  347. package/dist/Stack/index.js.map +1 -1
  348. package/dist/StatefulButton/index.js +15 -17
  349. package/dist/StatefulButton/index.js.map +1 -1
  350. package/dist/StatusAlert/index.js +120 -82
  351. package/dist/StatusAlert/index.js.map +1 -1
  352. package/dist/Stepper/Stepper.js +2 -4
  353. package/dist/Stepper/Stepper.js.map +1 -1
  354. package/dist/Stepper/StepperActionRow.js +7 -10
  355. package/dist/Stepper/StepperActionRow.js.map +1 -1
  356. package/dist/Stepper/StepperContext.js +64 -32
  357. package/dist/Stepper/StepperContext.js.map +1 -1
  358. package/dist/Stepper/StepperHeader.js +23 -30
  359. package/dist/Stepper/StepperHeader.js.map +1 -1
  360. package/dist/Stepper/StepperHeaderStep.js +14 -17
  361. package/dist/Stepper/StepperHeaderStep.js.map +1 -1
  362. package/dist/Stepper/StepperStep.js +23 -24
  363. package/dist/Stepper/StepperStep.js.map +1 -1
  364. package/dist/Sticky/index.js +30 -22
  365. package/dist/Sticky/index.js.map +1 -1
  366. package/dist/Table/index.js +178 -109
  367. package/dist/Table/index.js.map +1 -1
  368. package/dist/Tabs/deprecated/index.js +99 -66
  369. package/dist/Tabs/deprecated/index.js.map +1 -1
  370. package/dist/Tabs/index.js +65 -49
  371. package/dist/Tabs/index.js.map +1 -1
  372. package/dist/TextArea/index.js +10 -8
  373. package/dist/TextArea/index.js.map +1 -1
  374. package/dist/Toast/ToastContainer.js +38 -16
  375. package/dist/Toast/ToastContainer.js.map +1 -1
  376. package/dist/Toast/index.js +33 -18
  377. package/dist/Toast/index.js.map +1 -1
  378. package/dist/Tooltip/index.js +8 -9
  379. package/dist/Tooltip/index.js.map +1 -1
  380. package/dist/TransitionReplace/DemoTransitionReplace.js +12 -3
  381. package/dist/TransitionReplace/DemoTransitionReplace.js.map +1 -1
  382. package/dist/TransitionReplace/index.js +136 -100
  383. package/dist/TransitionReplace/index.js.map +1 -1
  384. package/dist/Truncate/index.js +30 -24
  385. package/dist/Truncate/index.js.map +1 -1
  386. package/dist/ValidationFormGroup/index.js +38 -37
  387. package/dist/ValidationFormGroup/index.js.map +1 -1
  388. package/dist/ValidationMessage/index.js +76 -51
  389. package/dist/ValidationMessage/index.js.map +1 -1
  390. package/dist/asInput/index.js +251 -202
  391. package/dist/asInput/index.js.map +1 -1
  392. package/dist/hooks/useArrowKeyNavigation.js +46 -43
  393. package/dist/hooks/useArrowKeyNavigation.js.map +1 -1
  394. package/dist/hooks/useIndexOfLastVisibleChild.js +40 -26
  395. package/dist/hooks/useIndexOfLastVisibleChild.js.map +1 -1
  396. package/dist/hooks/useIsVisible.js +20 -13
  397. package/dist/hooks/useIsVisible.js.map +1 -1
  398. package/dist/hooks/useToggle.js +18 -11
  399. package/dist/hooks/useToggle.js.map +1 -1
  400. package/dist/hooks/useWindowSize.js +17 -6
  401. package/dist/hooks/useWindowSize.js.map +1 -1
  402. package/dist/paragon.css +1 -1
  403. package/dist/withDeprecatedProps.js +79 -58
  404. package/dist/withDeprecatedProps.js.map +1 -1
  405. package/package.json +1 -5
  406. package/src/Button/index.jsx +2 -2
  407. package/src/DataTable/_variables.scss +1 -1
  408. package/src/Dropzone/index.jsx +1 -1
  409. package/src/Hyperlink/index.scss +2 -2
  410. package/src/Icon/index.jsx +1 -1
  411. package/src/IconButton/__snapshots__/IconButton.test.jsx.snap +12 -10
  412. package/src/IconButton/index.jsx +1 -1
  413. package/src/Menu/MenuItem.jsx +2 -2
  414. package/src/Overlay/README.md +1 -1
  415. package/src/Overlay/index.jsx +1 -1
  416. package/src/Pagination/index.scss +1 -0
@@ -1,3 +1,22 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
7
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
8
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
10
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
12
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
13
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
14
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
15
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
16
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
17
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
18
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
19
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
1
20
  /* eslint-disable max-len */
2
21
  import React from 'react';
3
22
  import classNames from 'classnames';
@@ -5,112 +24,146 @@ import isRequiredIf from 'react-proptype-conditional-require';
5
24
  import PropTypes from 'prop-types';
6
25
  import Button from '../Button';
7
26
  import withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';
8
- class Table extends React.Component {
9
- constructor(props) {
10
- super(props);
11
- this.state = {
12
- sortedColumn: props.tableSortable ? this.props.defaultSortedColumn : '',
13
- sortDirection: props.tableSortable ? this.props.defaultSortDirection : ''
27
+ var Table = /*#__PURE__*/function (_React$Component) {
28
+ _inherits(Table, _React$Component);
29
+ var _super = _createSuper(Table);
30
+ function Table(props) {
31
+ var _this;
32
+ _classCallCheck(this, Table);
33
+ _this = _super.call(this, props);
34
+ _this.state = {
35
+ sortedColumn: props.tableSortable ? _this.props.defaultSortedColumn : '',
36
+ sortDirection: props.tableSortable ? _this.props.defaultSortDirection : ''
14
37
  };
15
- this.onSortClick = this.onSortClick.bind(this);
38
+ _this.onSortClick = _this.onSortClick.bind(_assertThisInitialized(_this));
39
+ return _this;
16
40
  }
17
- onSortClick(columnKey) {
18
- let newDirection = 'desc';
19
- if (this.state.sortedColumn === columnKey) {
20
- newDirection = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
41
+ _createClass(Table, [{
42
+ key: "onSortClick",
43
+ value: function onSortClick(columnKey) {
44
+ var newDirection = 'desc';
45
+ if (this.state.sortedColumn === columnKey) {
46
+ newDirection = this.state.sortDirection === 'desc' ? 'asc' : 'desc';
47
+ }
48
+ this.setState({
49
+ sortedColumn: columnKey,
50
+ sortDirection: newDirection
51
+ });
52
+ var currentlySortedColumn = this.props.columns.find(function (column) {
53
+ return columnKey === column.key;
54
+ });
55
+ currentlySortedColumn.onSort(newDirection);
21
56
  }
22
- this.setState({
23
- sortedColumn: columnKey,
24
- sortDirection: newDirection
25
- });
26
- const currentlySortedColumn = this.props.columns.find(column => columnKey === column.key);
27
- currentlySortedColumn.onSort(newDirection);
28
- }
29
- getCaption() {
30
- return this.props.caption && /*#__PURE__*/React.createElement("caption", null, this.props.caption);
31
- }
32
- getSortButtonScreenReaderText(columnKey) {
33
- let text;
34
- if (this.state.sortedColumn === columnKey) {
35
- text = this.props.sortButtonsScreenReaderText[this.state.sortDirection];
36
- } else {
37
- text = this.props.sortButtonsScreenReaderText.defaultText;
57
+ }, {
58
+ key: "getCaption",
59
+ value: function getCaption() {
60
+ return this.props.caption && /*#__PURE__*/React.createElement("caption", null, this.props.caption);
38
61
  }
39
- return text;
40
- }
41
- getSortIcon(sortDirection) {
42
- const sortIconClassName = ['fa-sort', sortDirection].filter(n => n).join('-');
43
- return /*#__PURE__*/React.createElement("span", {
44
- className: classNames('fa', sortIconClassName),
45
- "aria-hidden": true
46
- });
47
- }
48
- getTableHeading(column) {
49
- let heading;
50
- if (this.props.tableSortable && column.columnSortable) {
51
- heading = /*#__PURE__*/React.createElement(Button, {
52
- variant: "header",
53
- onClick: () => this.onSortClick(column.key)
54
- }, /*#__PURE__*/React.createElement("span", null, column.label, /*#__PURE__*/React.createElement("span", {
55
- className: classNames('sr-only'),
56
- "data-testid": "table-heading-sr"
57
- }, ' ', this.getSortButtonScreenReaderText(column.key)), ' ', this.getSortIcon(column.key === this.state.sortedColumn ? this.state.sortDirection : '')));
58
- } else if (column.hideHeader) {
59
- heading = /*#__PURE__*/React.createElement("span", {
60
- className: classNames('sr-only'),
61
- "data-testid": "table-heading-sr"
62
- }, column.label);
63
- } else {
64
- heading = column.label;
62
+ }, {
63
+ key: "getSortButtonScreenReaderText",
64
+ value: function getSortButtonScreenReaderText(columnKey) {
65
+ var text;
66
+ if (this.state.sortedColumn === columnKey) {
67
+ text = this.props.sortButtonsScreenReaderText[this.state.sortDirection];
68
+ } else {
69
+ text = this.props.sortButtonsScreenReaderText.defaultText;
70
+ }
71
+ return text;
65
72
  }
66
- return heading;
67
- }
68
- getHeadings() {
69
- return /*#__PURE__*/React.createElement("thead", {
70
- className: classNames(...this.props.headingClassName, {
71
- 'd-inline': this.props.hasFixedColumnWidths
72
- })
73
- }, /*#__PURE__*/React.createElement("tr", {
74
- className: classNames({
75
- 'd-flex': this.props.hasFixedColumnWidths
76
- })
77
- }, this.props.columns.map(col => /*#__PURE__*/React.createElement("th", {
78
- className: classNames({
79
- sortable: this.props.tableSortable && col.columnSortable
80
- }, this.props.hasFixedColumnWidths ? col.width : null),
81
- key: col.key,
82
- scope: "col"
83
- }, this.getTableHeading(col)))));
84
- }
85
- getBody() {
86
- return /*#__PURE__*/React.createElement("tbody", {
87
- className: classNames({
88
- 'd-inline': this.props.hasFixedColumnWidths
89
- })
90
- }, this.props.data.map((row, i) => /*#__PURE__*/React.createElement("tr", {
91
- // eslint-disable-next-line react/no-array-index-key
92
- key: i,
93
- className: classNames({
94
- 'd-flex': this.props.hasFixedColumnWidths
95
- })
96
- }, this.props.columns.map(_ref => {
97
- let {
98
- key,
99
- width
100
- } = _ref;
101
- return /*#__PURE__*/React.createElement(key === this.props.rowHeaderColumnKey ? 'th' : 'td', {
102
- key,
103
- className: classNames(this.props.hasFixedColumnWidths ? width : null),
104
- scope: key === this.props.rowHeaderColumnKey ? 'row' : null
105
- }, row[key]);
106
- }))));
107
- }
108
- render() {
109
- return /*#__PURE__*/React.createElement("table", {
110
- className: classNames('table', this.props.className)
111
- }, this.getCaption(), this.getHeadings(), this.getBody());
112
- }
113
- }
73
+ }, {
74
+ key: "getSortIcon",
75
+ value: function getSortIcon(sortDirection) {
76
+ var sortIconClassName = ['fa-sort', sortDirection].filter(function (n) {
77
+ return n;
78
+ }).join('-');
79
+ return /*#__PURE__*/React.createElement("span", {
80
+ className: classNames('fa', sortIconClassName),
81
+ "aria-hidden": true
82
+ });
83
+ }
84
+ }, {
85
+ key: "getTableHeading",
86
+ value: function getTableHeading(column) {
87
+ var _this2 = this;
88
+ var heading;
89
+ if (this.props.tableSortable && column.columnSortable) {
90
+ heading = /*#__PURE__*/React.createElement(Button, {
91
+ variant: "header",
92
+ onClick: function onClick() {
93
+ return _this2.onSortClick(column.key);
94
+ }
95
+ }, /*#__PURE__*/React.createElement("span", null, column.label, /*#__PURE__*/React.createElement("span", {
96
+ className: classNames('sr-only'),
97
+ "data-testid": "table-heading-sr"
98
+ }, ' ', this.getSortButtonScreenReaderText(column.key)), ' ', this.getSortIcon(column.key === this.state.sortedColumn ? this.state.sortDirection : '')));
99
+ } else if (column.hideHeader) {
100
+ heading = /*#__PURE__*/React.createElement("span", {
101
+ className: classNames('sr-only'),
102
+ "data-testid": "table-heading-sr"
103
+ }, column.label);
104
+ } else {
105
+ heading = column.label;
106
+ }
107
+ return heading;
108
+ }
109
+ }, {
110
+ key: "getHeadings",
111
+ value: function getHeadings() {
112
+ var _this3 = this;
113
+ return /*#__PURE__*/React.createElement("thead", {
114
+ className: classNames.apply(void 0, _toConsumableArray(this.props.headingClassName).concat([{
115
+ 'd-inline': this.props.hasFixedColumnWidths
116
+ }]))
117
+ }, /*#__PURE__*/React.createElement("tr", {
118
+ className: classNames({
119
+ 'd-flex': this.props.hasFixedColumnWidths
120
+ })
121
+ }, this.props.columns.map(function (col) {
122
+ return /*#__PURE__*/React.createElement("th", {
123
+ className: classNames({
124
+ sortable: _this3.props.tableSortable && col.columnSortable
125
+ }, _this3.props.hasFixedColumnWidths ? col.width : null),
126
+ key: col.key,
127
+ scope: "col"
128
+ }, _this3.getTableHeading(col));
129
+ })));
130
+ }
131
+ }, {
132
+ key: "getBody",
133
+ value: function getBody() {
134
+ var _this4 = this;
135
+ return /*#__PURE__*/React.createElement("tbody", {
136
+ className: classNames({
137
+ 'd-inline': this.props.hasFixedColumnWidths
138
+ })
139
+ }, this.props.data.map(function (row, i) {
140
+ return /*#__PURE__*/React.createElement("tr", {
141
+ // eslint-disable-next-line react/no-array-index-key
142
+ key: i,
143
+ className: classNames({
144
+ 'd-flex': _this4.props.hasFixedColumnWidths
145
+ })
146
+ }, _this4.props.columns.map(function (_ref) {
147
+ var key = _ref.key,
148
+ width = _ref.width;
149
+ return /*#__PURE__*/React.createElement(key === _this4.props.rowHeaderColumnKey ? 'th' : 'td', {
150
+ key: key,
151
+ className: classNames(_this4.props.hasFixedColumnWidths ? width : null),
152
+ scope: key === _this4.props.rowHeaderColumnKey ? 'row' : null
153
+ }, row[key]);
154
+ }));
155
+ }));
156
+ }
157
+ }, {
158
+ key: "render",
159
+ value: function render() {
160
+ return /*#__PURE__*/React.createElement("table", {
161
+ className: classNames('table', this.props.className)
162
+ }, this.getCaption(), this.getHeadings(), this.getBody());
163
+ }
164
+ }]);
165
+ return Table;
166
+ }(React.Component);
114
167
  Table.propTypes = {
115
168
  caption: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
116
169
  className: PropTypes.string,
@@ -134,10 +187,16 @@ Table.propTypes = {
134
187
  columns: PropTypes.arrayOf(PropTypes.shape({
135
188
  key: PropTypes.string.isRequired,
136
189
  label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired,
137
- columnSortable: isRequiredIf(PropTypes.bool, props => props.tableSortable),
138
- onSort: isRequiredIf(PropTypes.func, props => props.columnSortable),
190
+ columnSortable: isRequiredIf(PropTypes.bool, function (props) {
191
+ return props.tableSortable;
192
+ }),
193
+ onSort: isRequiredIf(PropTypes.func, function (props) {
194
+ return props.columnSortable;
195
+ }),
139
196
  hideHeader: PropTypes.bool,
140
- width: isRequiredIf(PropTypes.string, props => props.hasFixedColumnWidths)
197
+ width: isRequiredIf(PropTypes.string, function (props) {
198
+ return props.hasFixedColumnWidths;
199
+ })
141
200
  })).isRequired,
142
201
  /** Specifies Bootstrap class names to apply to the table heading. Options are detailed in [Bootstrap's docs](https://getbootstrap.com/docs/4.0/content/tables/#table-head-options).
143
202
  */
@@ -149,10 +208,14 @@ Table.propTypes = {
149
208
  hasFixedColumnWidths: PropTypes.bool,
150
209
  /* eslint-disable react/require-default-props */
151
210
  /** Specifies the key of the column that is sorted by default. It is only required if `tableSortable` is set to `true`. */
152
- defaultSortedColumn: isRequiredIf(PropTypes.string, props => props.tableSortable),
211
+ defaultSortedColumn: isRequiredIf(PropTypes.string, function (props) {
212
+ return props.tableSortable;
213
+ }),
153
214
  /* eslint-disable react/require-default-props */
154
215
  /** Specifies the direction the `defaultSortedColumn` is sorted in by default; it will typically be either 'asc' or 'desc'. It is only required if `tableSortable` is set to `true`. */
155
- defaultSortDirection: isRequiredIf(PropTypes.string, props => props.tableSortable),
216
+ defaultSortDirection: isRequiredIf(PropTypes.string, function (props) {
217
+ return props.tableSortable;
218
+ }),
156
219
  /** Specifies the screen reader only text that accompanies the sort buttons for sortable columns. It takes the form of an object containing the following keys:
157
220
  1. `asc`: (string) specifies the screen reader only text for sort buttons in the ascending state.
158
221
  2. `desc`: (string) specifies the screen reader only text for sort buttons in the descending state.
@@ -170,7 +233,9 @@ Table.propTypes = {
170
233
  asc: PropTypes.string,
171
234
  desc: PropTypes.string,
172
235
  defaultText: PropTypes.string
173
- }), props => props.tableSortable),
236
+ }), function (props) {
237
+ return props.tableSortable;
238
+ }),
174
239
  /** Specifies the key for the column that should act as a row header. Rather than rendering as `<td>` elements,
175
240
  cells in this column will render as `<th scope="row">` */
176
241
  rowHeaderColumnKey: PropTypes.string
@@ -190,8 +255,12 @@ Table.defaultProps = {
190
255
  export default withDeprecatedProps(Table, 'TableDeprecated', {
191
256
  className: {
192
257
  deprType: DeprTypes.FORMAT,
193
- expect: value => typeof value === 'string',
194
- transform: value => Array.isArray(value) ? value.join(' ') : value,
258
+ expect: function expect(value) {
259
+ return typeof value === 'string';
260
+ },
261
+ transform: function transform(value) {
262
+ return Array.isArray(value) ? value.join(' ') : value;
263
+ },
195
264
  message: 'It should be a string.'
196
265
  }
197
266
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","classNames","isRequiredIf","PropTypes","Button","withDeprecatedProps","DeprTypes","Table","Component","constructor","props","state","sortedColumn","tableSortable","defaultSortedColumn","sortDirection","defaultSortDirection","onSortClick","bind","columnKey","newDirection","setState","currentlySortedColumn","columns","find","column","key","onSort","getCaption","caption","createElement","getSortButtonScreenReaderText","text","sortButtonsScreenReaderText","defaultText","getSortIcon","sortIconClassName","filter","n","join","className","getTableHeading","heading","columnSortable","variant","onClick","label","hideHeader","getHeadings","headingClassName","hasFixedColumnWidths","map","col","sortable","width","scope","getBody","data","row","i","_ref","rowHeaderColumnKey","render","propTypes","oneOfType","string","element","arrayOf","shape","isRequired","bool","func","asc","desc","defaultProps","undefined","deprType","FORMAT","expect","value","transform","Array","isArray","message"],"sources":["../../src/Table/index.jsx"],"sourcesContent":["/* eslint-disable max-len */\nimport React from 'react';\nimport classNames from 'classnames';\nimport isRequiredIf from 'react-proptype-conditional-require';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nclass Table extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n sortedColumn: props.tableSortable ? this.props.defaultSortedColumn : '',\n sortDirection: props.tableSortable ? this.props.defaultSortDirection : '',\n };\n\n this.onSortClick = this.onSortClick.bind(this);\n }\n\n onSortClick(columnKey) {\n let newDirection = 'desc';\n\n if (this.state.sortedColumn === columnKey) {\n newDirection = (this.state.sortDirection === 'desc' ? 'asc' : 'desc');\n }\n\n this.setState({\n sortedColumn: columnKey,\n sortDirection: newDirection,\n });\n\n const currentlySortedColumn = this.props.columns.find(column => (columnKey === column.key));\n currentlySortedColumn.onSort(newDirection);\n }\n\n getCaption() {\n return this.props.caption && (\n <caption>{this.props.caption}</caption>\n );\n }\n\n getSortButtonScreenReaderText(columnKey) {\n let text;\n\n if (this.state.sortedColumn === columnKey) {\n text = this.props.sortButtonsScreenReaderText[this.state.sortDirection];\n } else {\n text = this.props.sortButtonsScreenReaderText.defaultText;\n }\n\n return text;\n }\n\n getSortIcon(sortDirection) {\n const sortIconClassName = ['fa-sort', sortDirection].filter(n => n).join('-');\n\n return (\n <span\n className={classNames('fa', sortIconClassName)}\n aria-hidden\n />\n );\n }\n\n getTableHeading(column) {\n let heading;\n if (this.props.tableSortable && column.columnSortable) {\n heading = (\n <Button\n variant=\"header\"\n onClick={() => this.onSortClick(column.key)}\n >\n <span>\n {column.label}\n <span className={classNames('sr-only')} data-testid=\"table-heading-sr\">\n {' '}\n {this.getSortButtonScreenReaderText(column.key)}\n </span>\n {' '}\n {this.getSortIcon(column.key === this.state.sortedColumn ? this.state.sortDirection : '')}\n </span>\n </Button>\n );\n } else if (column.hideHeader) {\n heading = (<span className={classNames('sr-only')} data-testid=\"table-heading-sr\">{column.label}</span>);\n } else {\n heading = column.label;\n }\n\n return heading;\n }\n\n getHeadings() {\n return (\n <thead\n className={classNames(\n ...this.props.headingClassName,\n { 'd-inline': this.props.hasFixedColumnWidths },\n )}\n >\n <tr className={classNames({ 'd-flex': this.props.hasFixedColumnWidths })}>\n {this.props.columns.map(col => (\n <th\n className={classNames(\n { sortable: this.props.tableSortable && col.columnSortable },\n this.props.hasFixedColumnWidths ? col.width : null,\n )}\n key={col.key}\n scope=\"col\"\n >\n {this.getTableHeading(col)}\n </th>\n ))}\n </tr>\n </thead>\n );\n }\n\n getBody() {\n return (\n <tbody className={classNames({ 'd-inline': this.props.hasFixedColumnWidths })}>\n {this.props.data.map((row, i) => (\n <tr\n // eslint-disable-next-line react/no-array-index-key\n key={i}\n className={classNames({ 'd-flex': this.props.hasFixedColumnWidths })}\n >\n {this.props.columns.map(({ key, width }) => (\n React.createElement(\n (key === this.props.rowHeaderColumnKey) ? 'th' : 'td',\n {\n key,\n className: classNames(this.props.hasFixedColumnWidths ? width : null),\n scope: (key === this.props.rowHeaderColumnKey) ? 'row' : null,\n },\n row[key],\n )\n ))}\n </tr>\n ))}\n </tbody>\n );\n }\n\n render() {\n return (\n <table className={classNames(\n 'table',\n this.props.className,\n )}\n >\n {this.getCaption()}\n {this.getHeadings()}\n {this.getBody()}\n </table>\n );\n }\n}\n\nTable.propTypes = {\n caption: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /** specifies the order and contents of the table's columns and provides display strings for each column's heading. It is composed of an ordered array of objects. Each object contains the following keys:\n\n1. `label` (string or element; required) contains the display string for each column's heading.\n2. `key` (string; required) maps that label to its corresponding datum for each row in `data`, to ensure table data are displayed in their appropriate columns.\n3. `columnSortable` (boolean; optional) specifies at the column-level whether the column is sortable. If `columnSortable` is `true`, a sort button will be rendered in the column table heading. It is only required if `tableSortable` is set to `true`.\n4. `onSort` (function; conditionally required) specifies what function is called when a sortable column is clicked. It is only required if the column's `columnSortable` is set to `true`.\n5. `hideHeader` (boolean; optional) specifies at the column-level whether the column label is visible. A column that is sortable cannot have its label be hidden.\n6. `width` (string; conditionally required) only if `hasFixedColumnWidths` is set to `true`, the `<td>` elements' `class` attributes will be set to this value. This allows restricting columns to specific widths. See [Bootstrap's grid documentation](https://getbootstrap.com/docs/4.0/layout/grid/) for `col` class names that can be used.\n\nThe order of objects in `columns` specifies the order of the columns in the table. */\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n /** specifies the order and contents of the table's columns and provides display strings for each column's heading. It is composed of an ordered array of objects. Each object contains the following keys:\n\n1. `label` (string or element; required) contains the display string for each column's heading.\n2. `key` (string; required) maps that label to its corresponding datum for each row in `data`, to ensure table data are displayed in their appropriate columns.\n3. `columnSortable` (boolean; optional) specifies at the column-level whether the column is sortable. If `columnSortable` is `true`, a sort button will be rendered in the column table heading. It is only required if `tableSortable` is set to `true`.\n4. `onSort` (function; conditionally required) specifies what function is called when a sortable column is clicked. It is only required if the column's `columnSortable` is set to `true`.\n5. `hideHeader` (boolean; optional) specifies at the column-level whether the column label is visible. A column that is sortable cannot have its label be hidden.\n6. `width` (string; conditionally required) only if `hasFixedColumnWidths` is set to `true`, the `<td>` elements' `class` attributes will be set to this value. This allows restricting columns to specific widths. See [Bootstrap's grid documentation](https://getbootstrap.com/docs/4.0/layout/grid/) for `col` class names that can be used.\n\nThe order of objects in `columns` specifies the order of the columns in the table. */\n columns: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string.isRequired,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n columnSortable: isRequiredIf(PropTypes.bool, props => props.tableSortable),\n onSort: isRequiredIf(PropTypes.func, props => props.columnSortable),\n hideHeader: PropTypes.bool,\n width: isRequiredIf(PropTypes.string, props => props.hasFixedColumnWidths),\n })).isRequired,\n /** Specifies Bootstrap class names to apply to the table heading. Options are detailed in [Bootstrap's docs](https://getbootstrap.com/docs/4.0/content/tables/#table-head-options).\n */\n headingClassName: PropTypes.arrayOf(PropTypes.string),\n /** Specifies whether the table is sortable. This setting supercedes column-level sortability, so if it is `false`, no sortable components will be rendered. */\n tableSortable: PropTypes.bool,\n /** Specifies whether the table's columns have fixed widths. Every element in `columns` must define a `width` if this is `true`.\n */\n hasFixedColumnWidths: PropTypes.bool,\n /* eslint-disable react/require-default-props */\n /** Specifies the key of the column that is sorted by default. It is only required if `tableSortable` is set to `true`. */\n defaultSortedColumn: isRequiredIf(PropTypes.string, props => props.tableSortable),\n /* eslint-disable react/require-default-props */\n /** Specifies the direction the `defaultSortedColumn` is sorted in by default; it will typically be either 'asc' or 'desc'. It is only required if `tableSortable` is set to `true`. */\n defaultSortDirection: isRequiredIf(PropTypes.string, props => props.tableSortable),\n /** Specifies the screen reader only text that accompanies the sort buttons for sortable columns. It takes the form of an object containing the following keys:\n\n1. `asc`: (string) specifies the screen reader only text for sort buttons in the ascending state.\n2. `desc`: (string) specifies the screen reader only text for sort buttons in the descending state.\n3. `defaultText`: (string) specifies the screen reader only text for sort buttons that are not engaged.\n\nIt is only required if `tableSortable` is set to `true`.\n\nDefault:\n\n```javascript\n{\n asc: 'sort ascending',\n desc: 'sort descending',\n defaultText: 'click to sort',\n}\n``` */\n sortButtonsScreenReaderText: isRequiredIf(\n PropTypes.shape({\n asc: PropTypes.string,\n desc: PropTypes.string,\n defaultText: PropTypes.string,\n }),\n props => props.tableSortable,\n ),\n /** Specifies the key for the column that should act as a row header. Rather than rendering as `<td>` elements,\ncells in this column will render as `<th scope=\"row\">` */\n rowHeaderColumnKey: PropTypes.string,\n};\n\nTable.defaultProps = {\n caption: null,\n className: undefined,\n headingClassName: [],\n tableSortable: false,\n hasFixedColumnWidths: false,\n sortButtonsScreenReaderText: {\n asc: 'sort ascending',\n desc: 'sort descending',\n defaultText: 'click to sort',\n },\n};\n\nexport default withDeprecatedProps(Table, 'TableDeprecated', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","classNames","isRequiredIf","PropTypes","Button","withDeprecatedProps","DeprTypes","Table","_React$Component","_inherits","_super","_createSuper","props","_this","_classCallCheck","call","state","sortedColumn","tableSortable","defaultSortedColumn","sortDirection","defaultSortDirection","onSortClick","bind","_assertThisInitialized","_createClass","key","value","columnKey","newDirection","setState","currentlySortedColumn","columns","find","column","onSort","getCaption","caption","createElement","getSortButtonScreenReaderText","text","sortButtonsScreenReaderText","defaultText","getSortIcon","sortIconClassName","filter","n","join","className","getTableHeading","_this2","heading","columnSortable","variant","onClick","label","hideHeader","getHeadings","_this3","apply","_toConsumableArray","headingClassName","concat","hasFixedColumnWidths","map","col","sortable","width","scope","getBody","_this4","data","row","i","_ref","rowHeaderColumnKey","render","Component","propTypes","oneOfType","string","element","arrayOf","shape","isRequired","bool","func","asc","desc","defaultProps","undefined","deprType","FORMAT","expect","transform","Array","isArray","message"],"sources":["../../src/Table/index.jsx"],"sourcesContent":["/* eslint-disable max-len */\nimport React from 'react';\nimport classNames from 'classnames';\nimport isRequiredIf from 'react-proptype-conditional-require';\nimport PropTypes from 'prop-types';\n\nimport Button from '../Button';\nimport withDeprecatedProps, { DeprTypes } from '../withDeprecatedProps';\n\nclass Table extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n sortedColumn: props.tableSortable ? this.props.defaultSortedColumn : '',\n sortDirection: props.tableSortable ? this.props.defaultSortDirection : '',\n };\n\n this.onSortClick = this.onSortClick.bind(this);\n }\n\n onSortClick(columnKey) {\n let newDirection = 'desc';\n\n if (this.state.sortedColumn === columnKey) {\n newDirection = (this.state.sortDirection === 'desc' ? 'asc' : 'desc');\n }\n\n this.setState({\n sortedColumn: columnKey,\n sortDirection: newDirection,\n });\n\n const currentlySortedColumn = this.props.columns.find(column => (columnKey === column.key));\n currentlySortedColumn.onSort(newDirection);\n }\n\n getCaption() {\n return this.props.caption && (\n <caption>{this.props.caption}</caption>\n );\n }\n\n getSortButtonScreenReaderText(columnKey) {\n let text;\n\n if (this.state.sortedColumn === columnKey) {\n text = this.props.sortButtonsScreenReaderText[this.state.sortDirection];\n } else {\n text = this.props.sortButtonsScreenReaderText.defaultText;\n }\n\n return text;\n }\n\n getSortIcon(sortDirection) {\n const sortIconClassName = ['fa-sort', sortDirection].filter(n => n).join('-');\n\n return (\n <span\n className={classNames('fa', sortIconClassName)}\n aria-hidden\n />\n );\n }\n\n getTableHeading(column) {\n let heading;\n if (this.props.tableSortable && column.columnSortable) {\n heading = (\n <Button\n variant=\"header\"\n onClick={() => this.onSortClick(column.key)}\n >\n <span>\n {column.label}\n <span className={classNames('sr-only')} data-testid=\"table-heading-sr\">\n {' '}\n {this.getSortButtonScreenReaderText(column.key)}\n </span>\n {' '}\n {this.getSortIcon(column.key === this.state.sortedColumn ? this.state.sortDirection : '')}\n </span>\n </Button>\n );\n } else if (column.hideHeader) {\n heading = (<span className={classNames('sr-only')} data-testid=\"table-heading-sr\">{column.label}</span>);\n } else {\n heading = column.label;\n }\n\n return heading;\n }\n\n getHeadings() {\n return (\n <thead\n className={classNames(\n ...this.props.headingClassName,\n { 'd-inline': this.props.hasFixedColumnWidths },\n )}\n >\n <tr className={classNames({ 'd-flex': this.props.hasFixedColumnWidths })}>\n {this.props.columns.map(col => (\n <th\n className={classNames(\n { sortable: this.props.tableSortable && col.columnSortable },\n this.props.hasFixedColumnWidths ? col.width : null,\n )}\n key={col.key}\n scope=\"col\"\n >\n {this.getTableHeading(col)}\n </th>\n ))}\n </tr>\n </thead>\n );\n }\n\n getBody() {\n return (\n <tbody className={classNames({ 'd-inline': this.props.hasFixedColumnWidths })}>\n {this.props.data.map((row, i) => (\n <tr\n // eslint-disable-next-line react/no-array-index-key\n key={i}\n className={classNames({ 'd-flex': this.props.hasFixedColumnWidths })}\n >\n {this.props.columns.map(({ key, width }) => (\n React.createElement(\n (key === this.props.rowHeaderColumnKey) ? 'th' : 'td',\n {\n key,\n className: classNames(this.props.hasFixedColumnWidths ? width : null),\n scope: (key === this.props.rowHeaderColumnKey) ? 'row' : null,\n },\n row[key],\n )\n ))}\n </tr>\n ))}\n </tbody>\n );\n }\n\n render() {\n return (\n <table className={classNames(\n 'table',\n this.props.className,\n )}\n >\n {this.getCaption()}\n {this.getHeadings()}\n {this.getBody()}\n </table>\n );\n }\n}\n\nTable.propTypes = {\n caption: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]),\n className: PropTypes.string,\n /** specifies the order and contents of the table's columns and provides display strings for each column's heading. It is composed of an ordered array of objects. Each object contains the following keys:\n\n1. `label` (string or element; required) contains the display string for each column's heading.\n2. `key` (string; required) maps that label to its corresponding datum for each row in `data`, to ensure table data are displayed in their appropriate columns.\n3. `columnSortable` (boolean; optional) specifies at the column-level whether the column is sortable. If `columnSortable` is `true`, a sort button will be rendered in the column table heading. It is only required if `tableSortable` is set to `true`.\n4. `onSort` (function; conditionally required) specifies what function is called when a sortable column is clicked. It is only required if the column's `columnSortable` is set to `true`.\n5. `hideHeader` (boolean; optional) specifies at the column-level whether the column label is visible. A column that is sortable cannot have its label be hidden.\n6. `width` (string; conditionally required) only if `hasFixedColumnWidths` is set to `true`, the `<td>` elements' `class` attributes will be set to this value. This allows restricting columns to specific widths. See [Bootstrap's grid documentation](https://getbootstrap.com/docs/4.0/layout/grid/) for `col` class names that can be used.\n\nThe order of objects in `columns` specifies the order of the columns in the table. */\n data: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n /** specifies the order and contents of the table's columns and provides display strings for each column's heading. It is composed of an ordered array of objects. Each object contains the following keys:\n\n1. `label` (string or element; required) contains the display string for each column's heading.\n2. `key` (string; required) maps that label to its corresponding datum for each row in `data`, to ensure table data are displayed in their appropriate columns.\n3. `columnSortable` (boolean; optional) specifies at the column-level whether the column is sortable. If `columnSortable` is `true`, a sort button will be rendered in the column table heading. It is only required if `tableSortable` is set to `true`.\n4. `onSort` (function; conditionally required) specifies what function is called when a sortable column is clicked. It is only required if the column's `columnSortable` is set to `true`.\n5. `hideHeader` (boolean; optional) specifies at the column-level whether the column label is visible. A column that is sortable cannot have its label be hidden.\n6. `width` (string; conditionally required) only if `hasFixedColumnWidths` is set to `true`, the `<td>` elements' `class` attributes will be set to this value. This allows restricting columns to specific widths. See [Bootstrap's grid documentation](https://getbootstrap.com/docs/4.0/layout/grid/) for `col` class names that can be used.\n\nThe order of objects in `columns` specifies the order of the columns in the table. */\n columns: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string.isRequired,\n label: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.element,\n ]).isRequired,\n columnSortable: isRequiredIf(PropTypes.bool, props => props.tableSortable),\n onSort: isRequiredIf(PropTypes.func, props => props.columnSortable),\n hideHeader: PropTypes.bool,\n width: isRequiredIf(PropTypes.string, props => props.hasFixedColumnWidths),\n })).isRequired,\n /** Specifies Bootstrap class names to apply to the table heading. Options are detailed in [Bootstrap's docs](https://getbootstrap.com/docs/4.0/content/tables/#table-head-options).\n */\n headingClassName: PropTypes.arrayOf(PropTypes.string),\n /** Specifies whether the table is sortable. This setting supercedes column-level sortability, so if it is `false`, no sortable components will be rendered. */\n tableSortable: PropTypes.bool,\n /** Specifies whether the table's columns have fixed widths. Every element in `columns` must define a `width` if this is `true`.\n */\n hasFixedColumnWidths: PropTypes.bool,\n /* eslint-disable react/require-default-props */\n /** Specifies the key of the column that is sorted by default. It is only required if `tableSortable` is set to `true`. */\n defaultSortedColumn: isRequiredIf(PropTypes.string, props => props.tableSortable),\n /* eslint-disable react/require-default-props */\n /** Specifies the direction the `defaultSortedColumn` is sorted in by default; it will typically be either 'asc' or 'desc'. It is only required if `tableSortable` is set to `true`. */\n defaultSortDirection: isRequiredIf(PropTypes.string, props => props.tableSortable),\n /** Specifies the screen reader only text that accompanies the sort buttons for sortable columns. It takes the form of an object containing the following keys:\n\n1. `asc`: (string) specifies the screen reader only text for sort buttons in the ascending state.\n2. `desc`: (string) specifies the screen reader only text for sort buttons in the descending state.\n3. `defaultText`: (string) specifies the screen reader only text for sort buttons that are not engaged.\n\nIt is only required if `tableSortable` is set to `true`.\n\nDefault:\n\n```javascript\n{\n asc: 'sort ascending',\n desc: 'sort descending',\n defaultText: 'click to sort',\n}\n``` */\n sortButtonsScreenReaderText: isRequiredIf(\n PropTypes.shape({\n asc: PropTypes.string,\n desc: PropTypes.string,\n defaultText: PropTypes.string,\n }),\n props => props.tableSortable,\n ),\n /** Specifies the key for the column that should act as a row header. Rather than rendering as `<td>` elements,\ncells in this column will render as `<th scope=\"row\">` */\n rowHeaderColumnKey: PropTypes.string,\n};\n\nTable.defaultProps = {\n caption: null,\n className: undefined,\n headingClassName: [],\n tableSortable: false,\n hasFixedColumnWidths: false,\n sortButtonsScreenReaderText: {\n asc: 'sort ascending',\n desc: 'sort descending',\n defaultText: 'click to sort',\n },\n};\n\nexport default withDeprecatedProps(Table, 'TableDeprecated', {\n className: {\n deprType: DeprTypes.FORMAT,\n expect: value => typeof value === 'string',\n transform: value => (Array.isArray(value) ? value.join(' ') : value),\n message: 'It should be a string.',\n },\n});\n"],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
2
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
+ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
8
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
9
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
11
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
1
14
  // TODO: @jaebradley fix these eslint errors
2
15
  /* eslint-disable jsx-a11y/click-events-have-key-events */
3
16
  /* eslint-disable jsx-a11y/anchor-is-valid */
@@ -6,79 +19,99 @@ import React from 'react';
6
19
  import classNames from 'classnames';
7
20
  import PropTypes from 'prop-types';
8
21
  import newId from '../../utils/newId';
9
- class Tabs extends React.Component {
10
- constructor(props) {
11
- super(props);
12
- this.toggle = this.toggle.bind(this);
13
- this.state = {
22
+ var Tabs = /*#__PURE__*/function (_React$Component) {
23
+ _inherits(Tabs, _React$Component);
24
+ var _super = _createSuper(Tabs);
25
+ function Tabs(props) {
26
+ var _this;
27
+ _classCallCheck(this, Tabs);
28
+ _this = _super.call(this, props);
29
+ _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));
30
+ _this.state = {
14
31
  activeTab: 0,
15
32
  uuid: newId('tabInterface')
16
33
  };
34
+ return _this;
17
35
  }
18
- toggle(tab) {
19
- if (this.state.activeTab !== tab) {
20
- this.setState({
21
- activeTab: tab
36
+ _createClass(Tabs, [{
37
+ key: "toggle",
38
+ value: function toggle(tab) {
39
+ if (this.state.activeTab !== tab) {
40
+ this.setState({
41
+ activeTab: tab
42
+ });
43
+ }
44
+ }
45
+ }, {
46
+ key: "genLabelId",
47
+ value: function genLabelId(index) {
48
+ return "tab-label-".concat(this.state.uuid, "-").concat(index);
49
+ }
50
+ }, {
51
+ key: "genPanelId",
52
+ value: function genPanelId(index) {
53
+ return "tab-panel-".concat(this.state.uuid, "-").concat(index);
54
+ }
55
+ }, {
56
+ key: "buildLabels",
57
+ value: function buildLabels() {
58
+ var _this2 = this;
59
+ return this.props.labels.map(function (label, i) {
60
+ var selected = _this2.state.activeTab === i;
61
+ var labelId = _this2.genLabelId(i);
62
+ return /*#__PURE__*/React.createElement("li", {
63
+ key: labelId
64
+ }, /*#__PURE__*/React.createElement("button", {
65
+ role: "tab",
66
+ "aria-selected": selected,
67
+ "aria-controls": _this2.genPanelId(i),
68
+ id: labelId,
69
+ onClick: function onClick() {
70
+ _this2.toggle(i);
71
+ },
72
+ className: classNames('nav-link nav-item', {
73
+ active: selected
74
+ })
75
+ }, label));
22
76
  });
23
77
  }
24
- }
25
- genLabelId(index) {
26
- return `tab-label-${this.state.uuid}-${index}`;
27
- }
28
- genPanelId(index) {
29
- return `tab-panel-${this.state.uuid}-${index}`;
30
- }
31
- buildLabels() {
32
- return this.props.labels.map((label, i) => {
33
- const selected = this.state.activeTab === i;
34
- const labelId = this.genLabelId(i);
35
- return /*#__PURE__*/React.createElement("li", {
36
- key: labelId
37
- }, /*#__PURE__*/React.createElement("button", {
38
- role: "tab",
39
- "aria-selected": selected,
40
- "aria-controls": this.genPanelId(i),
41
- id: labelId,
42
- onClick: () => {
43
- this.toggle(i);
44
- },
45
- className: classNames('nav-link nav-item', {
46
- active: selected
47
- })
48
- }, label));
49
- });
50
- }
51
- buildPanels() {
52
- return this.props.children.map((panel, i) => {
53
- const selected = this.state.activeTab === i;
54
- const panelId = this.genPanelId(i);
78
+ }, {
79
+ key: "buildPanels",
80
+ value: function buildPanels() {
81
+ var _this3 = this;
82
+ return this.props.children.map(function (panel, i) {
83
+ var selected = _this3.state.activeTab === i;
84
+ var panelId = _this3.genPanelId(i);
85
+ return /*#__PURE__*/React.createElement("div", {
86
+ "aria-hidden": !selected,
87
+ "aria-labelledby": _this3.genLabelId(i),
88
+ className: classNames('tab-pane', {
89
+ active: selected
90
+ }),
91
+ id: panelId,
92
+ key: panelId,
93
+ role: "tabpanel"
94
+ }, panel);
95
+ });
96
+ }
97
+ }, {
98
+ key: "render",
99
+ value: function render() {
100
+ var labels = this.buildLabels();
101
+ var panels = this.buildPanels();
55
102
  return /*#__PURE__*/React.createElement("div", {
56
- "aria-hidden": !selected,
57
- "aria-labelledby": this.genLabelId(i),
58
- className: classNames('tab-pane', {
59
- active: selected
60
- }),
61
- id: panelId,
62
- key: panelId,
63
- role: "tabpanel"
64
- }, panel);
65
- });
66
- }
67
- render() {
68
- const labels = this.buildLabels();
69
- const panels = this.buildPanels();
70
- return /*#__PURE__*/React.createElement("div", {
71
- className: "tabs"
72
- }, /*#__PURE__*/React.createElement("ul", {
73
- role: "tablist",
74
- className: classNames(['nav', 'nav-tabs'])
75
- }, labels), /*#__PURE__*/React.createElement("div", {
76
- role: "tabpanel",
77
- className: "tab-content"
78
- }, panels));
79
- }
80
- }
81
- // TODO: custom validator that ensures labels and panels are the same length
103
+ className: "tabs"
104
+ }, /*#__PURE__*/React.createElement("ul", {
105
+ role: "tablist",
106
+ className: classNames(['nav', 'nav-tabs'])
107
+ }, labels), /*#__PURE__*/React.createElement("div", {
108
+ role: "tabpanel",
109
+ className: "tab-content"
110
+ }, panels));
111
+ }
112
+ }]);
113
+ return Tabs;
114
+ }(React.Component); // TODO: custom validator that ensures labels and panels are the same length
82
115
  Tabs.propTypes = {
83
116
  /** specifies the list of elements that will be displayed within each of the tabbed views. It is the content relevant to each label. Children should not be passed as Props, but should instead be nested between the opening and closing `<Tabs> </Tabs>` tags. */
84
117
  labels: PropTypes.arrayOf(PropTypes.node).isRequired,