superdesk-ui-framework 4.0.46 → 4.0.48

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 (563) hide show
  1. package/.eslintrc.js +0 -1
  2. package/.eslintrc.json +2 -5
  3. package/.github/workflows/test.yml +22 -26
  4. package/.prettierignore +3 -0
  5. package/.prettierrc.js +9 -0
  6. package/.travis.yml +4 -4
  7. package/README.md +14 -1
  8. package/app/styles/form-elements/_forms-general.scss +0 -4
  9. package/app-typescript/components/Alert.tsx +12 -16
  10. package/app-typescript/components/Autocomplete.tsx +53 -42
  11. package/app-typescript/components/Badge.tsx +1 -1
  12. package/app-typescript/components/Button.tsx +5 -11
  13. package/app-typescript/components/ButtonGroup.tsx +15 -10
  14. package/app-typescript/components/Carousel.tsx +25 -26
  15. package/app-typescript/components/CheckButtonGroup.tsx +6 -10
  16. package/app-typescript/components/Checkbox.tsx +16 -10
  17. package/app-typescript/components/CheckboxButton.tsx +22 -13
  18. package/app-typescript/components/ContentDivider.tsx +6 -7
  19. package/app-typescript/components/CreateButton.tsx +8 -6
  20. package/app-typescript/components/DatePicker.tsx +59 -55
  21. package/app-typescript/components/DateTimePicker.tsx +175 -117
  22. package/app-typescript/components/Divider.tsx +2 -4
  23. package/app-typescript/components/DonutChart.tsx +11 -6
  24. package/app-typescript/components/DragHandle.tsx +10 -6
  25. package/app-typescript/components/DragHandleDots.tsx +1 -3
  26. package/app-typescript/components/DropZone.tsx +27 -25
  27. package/app-typescript/components/Dropdown.tsx +61 -102
  28. package/app-typescript/components/DropdownFirst.tsx +57 -69
  29. package/app-typescript/components/DurationInput.tsx +64 -54
  30. package/app-typescript/components/Editor/EditorButton.tsx +4 -3
  31. package/app-typescript/components/EmptyState.tsx +10 -14
  32. package/app-typescript/components/Form/FormGroup.tsx +9 -16
  33. package/app-typescript/components/Form/FormItem.tsx +1 -5
  34. package/app-typescript/components/Form/FormLabel.tsx +0 -1
  35. package/app-typescript/components/Form/FormRow.tsx +12 -19
  36. package/app-typescript/components/Form/FormRowNew.tsx +9 -16
  37. package/app-typescript/components/Form/FormText.tsx +1 -5
  38. package/app-typescript/components/Form/InputBase.tsx +12 -11
  39. package/app-typescript/components/Form/InputNew.tsx +11 -12
  40. package/app-typescript/components/Form/InputWrapper.tsx +9 -18
  41. package/app-typescript/components/Form/index.tsx +9 -9
  42. package/app-typescript/components/FormLabel.tsx +1 -5
  43. package/app-typescript/components/GridItem.tsx +38 -69
  44. package/app-typescript/components/GridList.tsx +2 -6
  45. package/app-typescript/components/HeadingText.tsx +4 -5
  46. package/app-typescript/components/IconButton.tsx +4 -10
  47. package/app-typescript/components/IconLabel.tsx +5 -5
  48. package/app-typescript/components/IconPicker.tsx +128 -126
  49. package/app-typescript/components/IllustrationButton.tsx +2 -8
  50. package/app-typescript/components/Input.tsx +2 -2
  51. package/app-typescript/components/Label.tsx +11 -7
  52. package/app-typescript/components/Layouts/AuthorinInnerSideBar.tsx +1 -5
  53. package/app-typescript/components/Layouts/AuthoringContainer.tsx +4 -6
  54. package/app-typescript/components/Layouts/AuthoringFrame.tsx +4 -20
  55. package/app-typescript/components/Layouts/AuthoringFrameContainer.tsx +1 -5
  56. package/app-typescript/components/Layouts/AuthoringFrameLeftBar.tsx +1 -5
  57. package/app-typescript/components/Layouts/AuthoringFrameMain.tsx +1 -5
  58. package/app-typescript/components/Layouts/AuthoringFrameNavBar.tsx +1 -5
  59. package/app-typescript/components/Layouts/AuthoringFrameOverlay.tsx +1 -5
  60. package/app-typescript/components/Layouts/AuthoringFrameRightBar.tsx +1 -5
  61. package/app-typescript/components/Layouts/AuthoringFrameSidePanel.tsx +1 -5
  62. package/app-typescript/components/Layouts/AuthoringFrameSidePanelOverlay.tsx +1 -3
  63. package/app-typescript/components/Layouts/AuthoringInnerBody.tsx +3 -6
  64. package/app-typescript/components/Layouts/AuthoringInnerHeader.tsx +5 -5
  65. package/app-typescript/components/Layouts/AuthoringMain.tsx +3 -4
  66. package/app-typescript/components/Layouts/AuthoringMainContainer.tsx +1 -5
  67. package/app-typescript/components/Layouts/AuthoringMainContent.tsx +1 -5
  68. package/app-typescript/components/Layouts/AuthoringMainToolBar.tsx +1 -6
  69. package/app-typescript/components/Layouts/BottomBarAction.tsx +8 -10
  70. package/app-typescript/components/Layouts/Container.tsx +13 -8
  71. package/app-typescript/components/Layouts/ContentSplitter.tsx +2 -6
  72. package/app-typescript/components/Layouts/CoreLayout.tsx +5 -12
  73. package/app-typescript/components/Layouts/CoreLayoutContainer.tsx +1 -1
  74. package/app-typescript/components/Layouts/CoreLayoutFooter.tsx +1 -5
  75. package/app-typescript/components/Layouts/CoreLayoutMain.tsx +4 -4
  76. package/app-typescript/components/Layouts/CoreLayoutOverlay.tsx +1 -5
  77. package/app-typescript/components/Layouts/CoreLayoutSlideInMenu.tsx +2 -4
  78. package/app-typescript/components/Layouts/CoreLayoutTopMenu.tsx +8 -9
  79. package/app-typescript/components/Layouts/HamburgerButton.tsx +13 -14
  80. package/app-typescript/components/Layouts/HeaderPanel.tsx +1 -5
  81. package/app-typescript/components/Layouts/Layout.tsx +10 -16
  82. package/app-typescript/components/Layouts/LayoutContainer.tsx +2 -7
  83. package/app-typescript/components/Layouts/LeftPanel.tsx +4 -11
  84. package/app-typescript/components/Layouts/MainMenu.tsx +18 -32
  85. package/app-typescript/components/Layouts/MainPanel.tsx +10 -11
  86. package/app-typescript/components/Layouts/NotificationPanel.tsx +20 -29
  87. package/app-typescript/components/Layouts/OverlayPanel.tsx +3 -5
  88. package/app-typescript/components/Layouts/PageLayout.tsx +4 -21
  89. package/app-typescript/components/Layouts/Panel.tsx +45 -81
  90. package/app-typescript/components/Layouts/index.tsx +39 -39
  91. package/app-typescript/components/LeftMenu.tsx +51 -53
  92. package/app-typescript/components/ListItemLoader.tsx +1 -1
  93. package/app-typescript/components/Lists/BoxedList.tsx +16 -41
  94. package/app-typescript/components/Lists/CalendarWeekDayItem.tsx +2 -10
  95. package/app-typescript/components/Lists/ContentList.tsx +68 -62
  96. package/app-typescript/components/Lists/SimpleList.tsx +13 -12
  97. package/app-typescript/components/Lists/TableList.tsx +169 -217
  98. package/app-typescript/components/Lists/index.tsx +2 -2
  99. package/app-typescript/components/Loader.tsx +1 -3
  100. package/app-typescript/components/Menu.tsx +2 -4
  101. package/app-typescript/components/Modal.tsx +21 -21
  102. package/app-typescript/components/MultiSelect.tsx +6 -6
  103. package/app-typescript/components/NavButton.tsx +10 -8
  104. package/app-typescript/components/Navigation/BottomNav.tsx +21 -17
  105. package/app-typescript/components/Navigation/QuickNavBar.tsx +40 -37
  106. package/app-typescript/components/Navigation/SideBarMenu.tsx +21 -17
  107. package/app-typescript/components/Navigation/SideBarTabs.tsx +13 -19
  108. package/app-typescript/components/Navigation/index.tsx +3 -3
  109. package/app-typescript/components/Popover.tsx +19 -21
  110. package/app-typescript/components/PropsList.tsx +2 -4
  111. package/app-typescript/components/RadioButtonGroup.tsx +48 -45
  112. package/app-typescript/components/RadioGroup.tsx +9 -8
  113. package/app-typescript/components/ResizablePanels.tsx +2 -3
  114. package/app-typescript/components/ResizeObserverComponent.tsx +1 -5
  115. package/app-typescript/components/SearchBar.tsx +53 -45
  116. package/app-typescript/components/Select.tsx +6 -8
  117. package/app-typescript/components/SelectGrid.tsx +32 -40
  118. package/app-typescript/components/SelectPreview.tsx +31 -25
  119. package/app-typescript/components/SelectWithTemplate.tsx +10 -11
  120. package/app-typescript/components/ShowPopup.tsx +30 -46
  121. package/app-typescript/components/SidebarMenu.tsx +19 -18
  122. package/app-typescript/components/Skeleton.tsx +12 -11
  123. package/app-typescript/components/SlidingToolbar.tsx +1 -6
  124. package/app-typescript/components/Spinner.tsx +2 -6
  125. package/app-typescript/components/StrechBar.tsx +1 -5
  126. package/app-typescript/components/SubNav.tsx +10 -8
  127. package/app-typescript/components/SvgIconIllustration.tsx +477 -105
  128. package/app-typescript/components/Switch.tsx +14 -12
  129. package/app-typescript/components/SwitchGroup.tsx +10 -10
  130. package/app-typescript/components/TabCustom.tsx +28 -35
  131. package/app-typescript/components/TabList.tsx +13 -10
  132. package/app-typescript/components/Tag.tsx +21 -24
  133. package/app-typescript/components/TagInput.tsx +4 -11
  134. package/app-typescript/components/Text/Heading.tsx +21 -41
  135. package/app-typescript/components/Text/Text.tsx +16 -12
  136. package/app-typescript/components/Text/Time.tsx +14 -10
  137. package/app-typescript/components/ThemeSelector.tsx +15 -14
  138. package/app-typescript/components/TimePicker.tsx +2 -2
  139. package/app-typescript/components/TimePickerV2.tsx +20 -20
  140. package/app-typescript/components/Toast.tsx +11 -7
  141. package/app-typescript/components/ToastMessage.tsx +3 -14
  142. package/app-typescript/components/ToastText.tsx +30 -32
  143. package/app-typescript/components/ToastWrapper.tsx +76 -74
  144. package/app-typescript/components/ToggleBox/CustomHeaderToggleBox.tsx +30 -45
  145. package/app-typescript/components/ToggleBox/SimpleToggleBox.tsx +31 -33
  146. package/app-typescript/components/ToggleBox/index.tsx +3 -7
  147. package/app-typescript/components/Tooltip.tsx +1 -1
  148. package/app-typescript/components/TreeMenu.tsx +72 -81
  149. package/app-typescript/components/TreeSelect/KeyboardNavigation.tsx +1 -5
  150. package/app-typescript/components/TreeSelect/TreeSelect.tsx +221 -238
  151. package/app-typescript/components/TreeSelect/TreeSelectItem.tsx +20 -24
  152. package/app-typescript/components/TreeSelect/TreeSelectPill.tsx +12 -15
  153. package/app-typescript/components/WithPagination.tsx +34 -39
  154. package/app-typescript/components/WithPopover.tsx +0 -1
  155. package/app-typescript/components/WithPortal.tsx +4 -7
  156. package/app-typescript/components/WithSizeObserver.tsx +2 -6
  157. package/app-typescript/components/_Positioner.tsx +26 -26
  158. package/app-typescript/components/avatar/avatar-action-add.tsx +1 -6
  159. package/app-typescript/components/avatar/avatar-group.tsx +49 -68
  160. package/app-typescript/components/avatar/avatar-image.tsx +18 -12
  161. package/app-typescript/components/avatar/avatar-placeholder.tsx +3 -15
  162. package/app-typescript/components/avatar/avatar-text.tsx +1 -4
  163. package/app-typescript/components/avatar/avatar-wrapper.tsx +18 -30
  164. package/app-typescript/components/avatar/avatar.tsx +5 -8
  165. package/app-typescript/components/with-pagination.spec.tsx +8 -27
  166. package/app-typescript/helpers.tsx +2 -2
  167. package/app-typescript/index.ts +111 -100
  168. package/declarations.d.ts +1 -1
  169. package/dist/components/Alerts.tsx +171 -78
  170. package/dist/components/Autocomplete.tsx +187 -78
  171. package/dist/components/Avatar.tsx +52 -112
  172. package/dist/components/Badges.tsx +111 -67
  173. package/dist/components/BigIconFont.tsx +29 -17
  174. package/dist/components/BoxedList.tsx +244 -114
  175. package/dist/components/ButtonGroups.tsx +213 -147
  176. package/dist/components/Buttons.tsx +409 -137
  177. package/dist/components/Card.tsx +6 -7
  178. package/dist/components/Carousel.tsx +126 -39
  179. package/dist/components/Checkboxs.tsx +446 -105
  180. package/dist/components/Container.tsx +95 -48
  181. package/dist/components/ContentDivider.tsx +110 -63
  182. package/dist/components/ContentList.tsx +577 -253
  183. package/dist/components/CreateButton.tsx +71 -21
  184. package/dist/components/DatePicker.tsx +102 -26
  185. package/dist/components/DateTimePicker.tsx +46 -10
  186. package/dist/components/DragHandleDocs.tsx +56 -26
  187. package/dist/components/DropZone.tsx +67 -29
  188. package/dist/components/Dropdowns.tsx +220 -131
  189. package/dist/components/DurationInput.tsx +92 -32
  190. package/dist/components/EmptyStates.tsx +61 -26
  191. package/dist/components/GridItem.tsx +190 -91
  192. package/dist/components/GridList.tsx +37 -17
  193. package/dist/components/Heading.tsx +81 -35
  194. package/dist/components/IconButtons.tsx +125 -32
  195. package/dist/components/IconFont.tsx +24 -12
  196. package/dist/components/IconLabels.tsx +146 -39
  197. package/dist/components/IconPicker.tsx +30 -13
  198. package/dist/components/IllustrationButton.tsx +40 -20
  199. package/dist/components/Index.tsx +128 -114
  200. package/dist/components/Inputs.tsx +153 -51
  201. package/dist/components/Labels.tsx +191 -117
  202. package/dist/components/LeftNavigations.tsx +327 -100
  203. package/dist/components/ListItems.tsx +8 -9
  204. package/dist/components/Loader.tsx +5 -4
  205. package/dist/components/Menu.tsx +48 -26
  206. package/dist/components/Modal.tsx +298 -104
  207. package/dist/components/MultiSelect.tsx +189 -53
  208. package/dist/components/NavButtons.tsx +86 -30
  209. package/dist/components/Panel.tsx +367 -120
  210. package/dist/components/Popover.tsx +37 -17
  211. package/dist/components/QuickNavigationBar.tsx +222 -86
  212. package/dist/components/RadioGroup.tsx +375 -137
  213. package/dist/components/ResizablePanels.tsx +8 -14
  214. package/dist/components/SelectGrid.tsx +79 -38
  215. package/dist/components/SelectWithTemplate.tsx +23 -14
  216. package/dist/components/Selects.tsx +94 -29
  217. package/dist/components/SimpleList.tsx +91 -41
  218. package/dist/components/SubNav.tsx +57 -37
  219. package/dist/components/Switch.tsx +168 -42
  220. package/dist/components/TableList.tsx +220 -66
  221. package/dist/components/Tabs.tsx +149 -64
  222. package/dist/components/TagInputDocs.tsx +73 -17
  223. package/dist/components/Tags.tsx +104 -73
  224. package/dist/components/Text.tsx +108 -58
  225. package/dist/components/TimePicker.tsx +74 -20
  226. package/dist/components/Toasts.tsx +162 -80
  227. package/dist/components/Togglebox.tsx +164 -62
  228. package/dist/components/Tooltips.tsx +27 -15
  229. package/dist/components/TreeMenu.tsx +95 -59
  230. package/dist/components/TreeSelect.tsx +297 -162
  231. package/dist/components/WithPaginationDocs.tsx +15 -16
  232. package/dist/components/WithSizeObserver.tsx +9 -9
  233. package/dist/components/tree-select/TreeSelect.tsx +126 -77
  234. package/dist/components/tree-select/example-1.tsx +8 -12
  235. package/dist/components/tree-select/example-2.tsx +2 -5
  236. package/dist/components/utilities/BorderRadiusUtilities.tsx +28 -13
  237. package/dist/components/utilities/BorderUtilities.tsx +31 -32
  238. package/dist/components/utilities/DisplayUtilities.tsx +4 -5
  239. package/dist/components/utilities/FlexAndGridUtilities.tsx +38 -38
  240. package/dist/components/utilities/ObjectFitUtilities.tsx +4 -6
  241. package/dist/components/utilities/ObjectPositionUtilities.tsx +3 -4
  242. package/dist/components/utilities/OpacityUtilities.tsx +4 -7
  243. package/dist/components/utilities/OverflowUtilities.tsx +4 -5
  244. package/dist/components/utilities/PositionUtilities.tsx +4 -5
  245. package/dist/components/utilities/ShadowUtilities.tsx +15 -16
  246. package/dist/components/utilities/SpacingUtilities.tsx +483 -178
  247. package/dist/components/utilities/TextUtilities.tsx +109 -60
  248. package/dist/design-patterns/Index.tsx +8 -11
  249. package/dist/design-patterns/ThreePaneLayoutPattern.tsx +92 -76
  250. package/dist/examples.bundle.css +1257 -1155
  251. package/dist/examples.bundle.js +6246 -5620
  252. package/dist/playgrounds/dummy-data/items.ts +9 -8
  253. package/dist/playgrounds/react-playgrounds/CoreLayout.tsx +559 -277
  254. package/dist/playgrounds/react-playgrounds/EditorTest.tsx +387 -204
  255. package/dist/playgrounds/react-playgrounds/FirstPlayground.tsx +74 -52
  256. package/dist/playgrounds/react-playgrounds/Index.tsx +11 -11
  257. package/dist/playgrounds/react-playgrounds/Multiedit.tsx +294 -218
  258. package/dist/playgrounds/react-playgrounds/PageLayoutTest.tsx +151 -105
  259. package/dist/playgrounds/react-playgrounds/PersonalProfile.tsx +481 -261
  260. package/dist/playgrounds/react-playgrounds/RundownEditor.tsx +261 -149
  261. package/dist/playgrounds/react-playgrounds/Rundowns.tsx +757 -395
  262. package/dist/playgrounds/react-playgrounds/SamsPlayground.tsx +173 -91
  263. package/dist/playgrounds/react-playgrounds/TestGround.tsx +1364 -818
  264. package/dist/playgrounds/react-playgrounds/UiPlayground.tsx +178 -86
  265. package/dist/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +6 -7
  266. package/dist/playgrounds/react-playgrounds/components/AuthoringContent.tsx +42 -42
  267. package/dist/playgrounds/react-playgrounds/components/ContentSplitter.tsx +5 -8
  268. package/dist/playgrounds/react-playgrounds/components/GraphicButton.tsx +11 -11
  269. package/dist/playgrounds/react-playgrounds/components/GraphicButtonsGroup.tsx +2 -6
  270. package/dist/playgrounds/react-playgrounds/components/HeaderPanel.tsx +1 -5
  271. package/dist/playgrounds/react-playgrounds/components/Index.tsx +19 -21
  272. package/dist/playgrounds/react-playgrounds/components/Layout.tsx +11 -17
  273. package/dist/playgrounds/react-playgrounds/components/LayoutContainer.tsx +1 -1
  274. package/dist/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -12
  275. package/dist/playgrounds/react-playgrounds/components/OverlayPanel.tsx +3 -5
  276. package/dist/playgrounds/react-playgrounds/components/Panel.tsx +6 -7
  277. package/dist/playgrounds/react-playgrounds/components/PanelContent.tsx +1 -5
  278. package/dist/playgrounds/react-playgrounds/components/PanelContentBlock.tsx +1 -6
  279. package/dist/playgrounds/react-playgrounds/components/PanelHeader.tsx +3 -3
  280. package/dist/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -12
  281. package/dist/playgrounds/react-playgrounds/components/SidebarMenu.tsx +23 -14
  282. package/dist/playgrounds/react-playgrounds/components/SubNav.tsx +1 -5
  283. package/dist/playgrounds/react-playgrounds/components/ThemeDropdown.tsx +14 -11
  284. package/dist/playgrounds/react-playgrounds/tsconfig.json +1 -1
  285. package/dist/superdesk-ui.bundle.css +0 -3
  286. package/dist/superdesk-ui.bundle.js +1791 -1865
  287. package/dist/vendor.bundle.js +2 -2
  288. package/examples/css/docs-page.css +1135 -1116
  289. package/examples/css/reset.css +124 -43
  290. package/examples/css/vendor.css +125 -125
  291. package/examples/index.js +138 -139
  292. package/examples/js/doc.js +41 -40
  293. package/examples/js/react.js +82 -48
  294. package/examples/pages/components/Alerts.tsx +171 -78
  295. package/examples/pages/components/Autocomplete.tsx +187 -78
  296. package/examples/pages/components/Avatar.tsx +52 -112
  297. package/examples/pages/components/Badges.tsx +111 -67
  298. package/examples/pages/components/BigIconFont.tsx +29 -17
  299. package/examples/pages/components/BoxedList.tsx +244 -114
  300. package/examples/pages/components/ButtonGroups.tsx +213 -147
  301. package/examples/pages/components/Buttons.tsx +409 -137
  302. package/examples/pages/components/Card.tsx +6 -7
  303. package/examples/pages/components/Carousel.tsx +126 -39
  304. package/examples/pages/components/Checkboxs.tsx +446 -105
  305. package/examples/pages/components/Container.tsx +95 -48
  306. package/examples/pages/components/ContentDivider.tsx +110 -63
  307. package/examples/pages/components/ContentList.tsx +577 -253
  308. package/examples/pages/components/CreateButton.tsx +71 -21
  309. package/examples/pages/components/DatePicker.tsx +102 -26
  310. package/examples/pages/components/DateTimePicker.tsx +46 -10
  311. package/examples/pages/components/DragHandleDocs.tsx +56 -26
  312. package/examples/pages/components/DropZone.tsx +67 -29
  313. package/examples/pages/components/Dropdowns.tsx +220 -131
  314. package/examples/pages/components/DurationInput.tsx +92 -32
  315. package/examples/pages/components/EmptyStates.tsx +61 -26
  316. package/examples/pages/components/GridItem.tsx +190 -91
  317. package/examples/pages/components/GridList.tsx +37 -17
  318. package/examples/pages/components/Heading.tsx +81 -35
  319. package/examples/pages/components/IconButtons.tsx +125 -32
  320. package/examples/pages/components/IconFont.tsx +24 -12
  321. package/examples/pages/components/IconLabels.tsx +146 -39
  322. package/examples/pages/components/IconPicker.tsx +30 -13
  323. package/examples/pages/components/IllustrationButton.tsx +40 -20
  324. package/examples/pages/components/Index.tsx +128 -114
  325. package/examples/pages/components/Inputs.tsx +153 -51
  326. package/examples/pages/components/Labels.tsx +191 -117
  327. package/examples/pages/components/LeftNavigations.tsx +327 -100
  328. package/examples/pages/components/ListItems.tsx +8 -9
  329. package/examples/pages/components/Loader.tsx +5 -4
  330. package/examples/pages/components/Menu.tsx +48 -26
  331. package/examples/pages/components/Modal.tsx +298 -104
  332. package/examples/pages/components/MultiSelect.tsx +189 -53
  333. package/examples/pages/components/NavButtons.tsx +86 -30
  334. package/examples/pages/components/Panel.tsx +367 -120
  335. package/examples/pages/components/Popover.tsx +37 -17
  336. package/examples/pages/components/QuickNavigationBar.tsx +222 -86
  337. package/examples/pages/components/RadioGroup.tsx +375 -137
  338. package/examples/pages/components/ResizablePanels.tsx +8 -14
  339. package/examples/pages/components/SelectGrid.tsx +79 -38
  340. package/examples/pages/components/SelectWithTemplate.tsx +23 -14
  341. package/examples/pages/components/Selects.tsx +94 -29
  342. package/examples/pages/components/SimpleList.tsx +91 -41
  343. package/examples/pages/components/SubNav.tsx +57 -37
  344. package/examples/pages/components/Switch.tsx +168 -42
  345. package/examples/pages/components/TableList.tsx +220 -66
  346. package/examples/pages/components/Tabs.tsx +149 -64
  347. package/examples/pages/components/TagInputDocs.tsx +73 -17
  348. package/examples/pages/components/Tags.tsx +104 -73
  349. package/examples/pages/components/Text.tsx +108 -58
  350. package/examples/pages/components/TimePicker.tsx +74 -20
  351. package/examples/pages/components/Toasts.tsx +162 -80
  352. package/examples/pages/components/Togglebox.tsx +164 -62
  353. package/examples/pages/components/Tooltips.tsx +27 -15
  354. package/examples/pages/components/TreeMenu.tsx +95 -59
  355. package/examples/pages/components/TreeSelect.tsx +297 -162
  356. package/examples/pages/components/WithPaginationDocs.tsx +15 -16
  357. package/examples/pages/components/WithSizeObserver.tsx +9 -9
  358. package/examples/pages/components/tree-select/TreeSelect.tsx +126 -77
  359. package/examples/pages/components/tree-select/example-1.tsx +8 -12
  360. package/examples/pages/components/tree-select/example-2.tsx +2 -5
  361. package/examples/pages/components/utilities/BorderRadiusUtilities.tsx +28 -13
  362. package/examples/pages/components/utilities/BorderUtilities.tsx +31 -32
  363. package/examples/pages/components/utilities/DisplayUtilities.tsx +4 -5
  364. package/examples/pages/components/utilities/FlexAndGridUtilities.tsx +38 -38
  365. package/examples/pages/components/utilities/ObjectFitUtilities.tsx +4 -6
  366. package/examples/pages/components/utilities/ObjectPositionUtilities.tsx +3 -4
  367. package/examples/pages/components/utilities/OpacityUtilities.tsx +4 -7
  368. package/examples/pages/components/utilities/OverflowUtilities.tsx +4 -5
  369. package/examples/pages/components/utilities/PositionUtilities.tsx +4 -5
  370. package/examples/pages/components/utilities/ShadowUtilities.tsx +15 -16
  371. package/examples/pages/components/utilities/SpacingUtilities.tsx +483 -178
  372. package/examples/pages/components/utilities/TextUtilities.tsx +109 -60
  373. package/examples/pages/design-patterns/Index.tsx +8 -11
  374. package/examples/pages/design-patterns/ThreePaneLayoutPattern.tsx +92 -76
  375. package/examples/pages/playgrounds/dummy-data/items.ts +9 -8
  376. package/examples/pages/playgrounds/react-playgrounds/CoreLayout.tsx +559 -277
  377. package/examples/pages/playgrounds/react-playgrounds/EditorTest.tsx +387 -204
  378. package/examples/pages/playgrounds/react-playgrounds/FirstPlayground.tsx +74 -52
  379. package/examples/pages/playgrounds/react-playgrounds/Index.tsx +11 -11
  380. package/examples/pages/playgrounds/react-playgrounds/Multiedit.tsx +294 -218
  381. package/examples/pages/playgrounds/react-playgrounds/PageLayoutTest.tsx +151 -105
  382. package/examples/pages/playgrounds/react-playgrounds/PersonalProfile.tsx +481 -261
  383. package/examples/pages/playgrounds/react-playgrounds/RundownEditor.tsx +261 -149
  384. package/examples/pages/playgrounds/react-playgrounds/Rundowns.tsx +757 -395
  385. package/examples/pages/playgrounds/react-playgrounds/SamsPlayground.tsx +173 -91
  386. package/examples/pages/playgrounds/react-playgrounds/TestGround.tsx +1364 -818
  387. package/examples/pages/playgrounds/react-playgrounds/UiPlayground.tsx +178 -86
  388. package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContainer.tsx +6 -7
  389. package/examples/pages/playgrounds/react-playgrounds/components/AuthoringContent.tsx +42 -42
  390. package/examples/pages/playgrounds/react-playgrounds/components/ContentSplitter.tsx +5 -8
  391. package/examples/pages/playgrounds/react-playgrounds/components/GraphicButton.tsx +11 -11
  392. package/examples/pages/playgrounds/react-playgrounds/components/GraphicButtonsGroup.tsx +2 -6
  393. package/examples/pages/playgrounds/react-playgrounds/components/HeaderPanel.tsx +1 -5
  394. package/examples/pages/playgrounds/react-playgrounds/components/Index.tsx +19 -21
  395. package/examples/pages/playgrounds/react-playgrounds/components/Layout.tsx +11 -17
  396. package/examples/pages/playgrounds/react-playgrounds/components/LayoutContainer.tsx +1 -1
  397. package/examples/pages/playgrounds/react-playgrounds/components/MainPanel.tsx +11 -12
  398. package/examples/pages/playgrounds/react-playgrounds/components/OverlayPanel.tsx +3 -5
  399. package/examples/pages/playgrounds/react-playgrounds/components/Panel.tsx +6 -7
  400. package/examples/pages/playgrounds/react-playgrounds/components/PanelContent.tsx +1 -5
  401. package/examples/pages/playgrounds/react-playgrounds/components/PanelContentBlock.tsx +1 -6
  402. package/examples/pages/playgrounds/react-playgrounds/components/PanelHeader.tsx +3 -3
  403. package/examples/pages/playgrounds/react-playgrounds/components/SearchBar.tsx +16 -12
  404. package/examples/pages/playgrounds/react-playgrounds/components/SidebarMenu.tsx +23 -14
  405. package/examples/pages/playgrounds/react-playgrounds/components/SubNav.tsx +1 -5
  406. package/examples/pages/playgrounds/react-playgrounds/components/ThemeDropdown.tsx +14 -11
  407. package/examples/pages/playgrounds/react-playgrounds/tsconfig.json +1 -1
  408. package/globals.d.ts +1 -1
  409. package/mocha-setup.ts +3 -3
  410. package/package.json +119 -117
  411. package/react/components/Alert.js +6 -9
  412. package/react/components/Autocomplete.js +15 -23
  413. package/react/components/Badge.js +1 -1
  414. package/react/components/Button.js +4 -6
  415. package/react/components/ButtonGroup.js +1 -1
  416. package/react/components/Carousel.js +3 -3
  417. package/react/components/CheckButtonGroup.js +3 -6
  418. package/react/components/CheckboxButton.js +2 -4
  419. package/react/components/ContentDivider.js +1 -1
  420. package/react/components/DatePicker.js +29 -26
  421. package/react/components/DateTimePicker.d.ts +26 -4
  422. package/react/components/DateTimePicker.js +82 -27
  423. package/react/components/Divider.js +1 -1
  424. package/react/components/DonutChart.js +1 -1
  425. package/react/components/DragHandle.js +1 -1
  426. package/react/components/DragHandleDots.js +1 -1
  427. package/react/components/DropZone.js +6 -8
  428. package/react/components/Dropdown.d.ts +1 -1
  429. package/react/components/Dropdown.js +34 -38
  430. package/react/components/DropdownFirst.d.ts +11 -11
  431. package/react/components/DropdownFirst.js +20 -24
  432. package/react/components/DurationInput.js +37 -34
  433. package/react/components/EmptyState.js +5 -5
  434. package/react/components/Form/FormGroup.js +1 -1
  435. package/react/components/Form/FormItem.js +1 -1
  436. package/react/components/Form/FormRow.js +1 -1
  437. package/react/components/Form/FormRowNew.js +3 -3
  438. package/react/components/Form/FormText.js +1 -1
  439. package/react/components/Form/InputNew.js +3 -3
  440. package/react/components/Form/InputWrapper.js +7 -10
  441. package/react/components/GridItem.d.ts +1 -1
  442. package/react/components/GridItem.js +16 -16
  443. package/react/components/GridList.js +1 -1
  444. package/react/components/HeadingText.js +4 -5
  445. package/react/components/IconLabel.js +3 -5
  446. package/react/components/IconPicker.d.ts +1 -1
  447. package/react/components/IconPicker.js +111 -104
  448. package/react/components/IllustrationButton.js +1 -1
  449. package/react/components/Input.js +1 -1
  450. package/react/components/Layouts/AuthorinInnerSideBar.js +1 -1
  451. package/react/components/Layouts/AuthoringContainer.js +1 -1
  452. package/react/components/Layouts/AuthoringFrame.js +4 -4
  453. package/react/components/Layouts/AuthoringFrameContainer.js +1 -1
  454. package/react/components/Layouts/AuthoringFrameLeftBar.js +1 -1
  455. package/react/components/Layouts/AuthoringFrameMain.js +1 -1
  456. package/react/components/Layouts/AuthoringFrameNavBar.js +1 -1
  457. package/react/components/Layouts/AuthoringFrameOverlay.js +1 -1
  458. package/react/components/Layouts/AuthoringFrameRightBar.js +1 -1
  459. package/react/components/Layouts/AuthoringFrameSidePanel.js +1 -1
  460. package/react/components/Layouts/AuthoringFrameSidePanelOverlay.js +1 -1
  461. package/react/components/Layouts/AuthoringMainContainer.js +1 -1
  462. package/react/components/Layouts/AuthoringMainContent.js +1 -1
  463. package/react/components/Layouts/AuthoringMainToolBar.js +1 -1
  464. package/react/components/Layouts/BottomBarAction.js +2 -2
  465. package/react/components/Layouts/ContentSplitter.js +1 -1
  466. package/react/components/Layouts/CoreLayout.js +2 -2
  467. package/react/components/Layouts/CoreLayoutContainer.js +1 -1
  468. package/react/components/Layouts/CoreLayoutFooter.js +1 -1
  469. package/react/components/Layouts/CoreLayoutOverlay.js +1 -1
  470. package/react/components/Layouts/CoreLayoutSlideInMenu.js +2 -2
  471. package/react/components/Layouts/CoreLayoutTopMenu.js +3 -3
  472. package/react/components/Layouts/HamburgerButton.js +1 -1
  473. package/react/components/Layouts/HeaderPanel.js +1 -1
  474. package/react/components/Layouts/Layout.d.ts +1 -1
  475. package/react/components/Layouts/Layout.js +9 -9
  476. package/react/components/Layouts/LayoutContainer.js +1 -1
  477. package/react/components/Layouts/LeftPanel.js +1 -1
  478. package/react/components/Layouts/MainMenu.js +8 -10
  479. package/react/components/Layouts/MainPanel.js +1 -1
  480. package/react/components/Layouts/NotificationPanel.d.ts +1 -1
  481. package/react/components/Layouts/NotificationPanel.js +7 -7
  482. package/react/components/Layouts/OverlayPanel.js +3 -3
  483. package/react/components/Layouts/PageLayout.js +2 -2
  484. package/react/components/Layouts/Panel.d.ts +1 -1
  485. package/react/components/Layouts/Panel.js +12 -18
  486. package/react/components/LeftMenu.d.ts +3 -3
  487. package/react/components/LeftMenu.js +11 -13
  488. package/react/components/Lists/BoxedList.js +6 -6
  489. package/react/components/Lists/CalendarWeekDayItem.js +2 -2
  490. package/react/components/Lists/ContentList.js +24 -26
  491. package/react/components/Lists/TableList.d.ts +1 -1
  492. package/react/components/Lists/TableList.js +59 -79
  493. package/react/components/Loader.js +1 -1
  494. package/react/components/Menu.js +1 -1
  495. package/react/components/Modal.d.ts +1 -1
  496. package/react/components/MultiSelect.d.ts +1 -1
  497. package/react/components/MultiSelect.js +2 -2
  498. package/react/components/NavButton.js +2 -4
  499. package/react/components/Navigation/BottomNav.js +9 -8
  500. package/react/components/Navigation/QuickNavBar.js +17 -20
  501. package/react/components/Navigation/SideBarMenu.js +11 -9
  502. package/react/components/Navigation/SideBarTabs.js +9 -8
  503. package/react/components/Popover.js +1 -1
  504. package/react/components/RadioButtonGroup.js +15 -23
  505. package/react/components/ResizablePanels.js +1 -3
  506. package/react/components/ResizeObserverComponent.js +1 -3
  507. package/react/components/SearchBar.js +14 -16
  508. package/react/components/Select.js +3 -3
  509. package/react/components/SelectGrid.js +15 -20
  510. package/react/components/SelectPreview.js +13 -13
  511. package/react/components/SelectWithTemplate.js +3 -5
  512. package/react/components/ShowPopup.js +7 -10
  513. package/react/components/Skeleton.js +1 -1
  514. package/react/components/SlidingToolbar.js +1 -1
  515. package/react/components/Spinner.js +1 -1
  516. package/react/components/StrechBar.js +1 -1
  517. package/react/components/SubNav.js +1 -1
  518. package/react/components/Switch.js +4 -6
  519. package/react/components/SwitchGroup.js +1 -1
  520. package/react/components/TabCustom.js +6 -4
  521. package/react/components/TabList.js +4 -8
  522. package/react/components/Tag.js +13 -17
  523. package/react/components/TagInput.js +1 -1
  524. package/react/components/Text/Heading.js +6 -6
  525. package/react/components/ThemeSelector.js +1 -1
  526. package/react/components/TimePickerV2.js +17 -17
  527. package/react/components/Toast.js +3 -3
  528. package/react/components/ToastMessage.d.ts +1 -1
  529. package/react/components/ToastMessage.js +1 -1
  530. package/react/components/ToastText.js +5 -8
  531. package/react/components/ToastWrapper.js +3 -5
  532. package/react/components/ToggleBox/CustomHeaderToggleBox.d.ts +1 -1
  533. package/react/components/ToggleBox/CustomHeaderToggleBox.js +7 -7
  534. package/react/components/ToggleBox/SimpleToggleBox.d.ts +1 -1
  535. package/react/components/ToggleBox/SimpleToggleBox.js +5 -5
  536. package/react/components/ToggleBox/index.js +3 -3
  537. package/react/components/TreeMenu.d.ts +1 -1
  538. package/react/components/TreeMenu.js +38 -44
  539. package/react/components/TreeSelect/TreeSelect.d.ts +2 -2
  540. package/react/components/TreeSelect/TreeSelect.js +105 -127
  541. package/react/components/TreeSelect/TreeSelectItem.d.ts +1 -1
  542. package/react/components/TreeSelect/TreeSelectItem.js +10 -13
  543. package/react/components/TreeSelect/TreeSelectPill.d.ts +1 -1
  544. package/react/components/TreeSelect/TreeSelectPill.js +8 -9
  545. package/react/components/WithPagination.js +18 -21
  546. package/react/components/WithPortal.d.ts +1 -1
  547. package/react/components/WithPortal.js +2 -1
  548. package/react/components/WithSizeObserver.js +1 -3
  549. package/react/components/_Positioner.js +11 -11
  550. package/react/components/avatar/avatar-action-add.js +1 -1
  551. package/react/components/avatar/avatar-group.js +11 -14
  552. package/react/components/avatar/avatar-image.js +6 -4
  553. package/react/components/avatar/avatar-placeholder.js +1 -1
  554. package/react/components/avatar/avatar-wrapper.js +2 -4
  555. package/react/components/avatar/avatar.js +4 -3
  556. package/react/helpers.js +2 -2
  557. package/react/index.d.ts +1 -1
  558. package/tasks/webpack.dev.js +1 -1
  559. package/tasks/webpack.js +5 -5
  560. package/tasks/webpack.prod.js +1 -5
  561. package/tsconfig.json +2 -5
  562. package/tslint.json +6 -12
  563. package/webpack.config.js +2 -5
@@ -49,11 +49,7 @@ export class ResizeObserverComponent extends React.PureComponent<IProps, IState>
49
49
  this.el = el;
50
50
  }}
51
51
  >
52
- {
53
- dimensions === 'not-initialized'
54
- ? null
55
- : this.props.children(dimensions)
56
- }
52
+ {dimensions === 'not-initialized' ? null : this.props.children(dimensions)}
57
53
  </div>
58
54
  );
59
55
  }
@@ -40,67 +40,75 @@ export class SearchBar extends React.PureComponent<IProps, IState> {
40
40
  }
41
41
 
42
42
  componentDidMount = () => {
43
- document.addEventListener("mousedown", (event) => {
43
+ document.addEventListener('mousedown', (event) => {
44
44
  if (this.inputRef.current && !this.inputRef.current.contains(event.target)) {
45
45
  this.setState({focused: false});
46
46
  }
47
47
  });
48
- }
48
+ };
49
49
 
50
50
  render() {
51
51
  let classes = classNames('sd-searchbar', {
52
- [`sd-searchbar--${this.state.type}`] : this.props.type,
52
+ [`sd-searchbar--${this.state.type}`]: this.props.type,
53
53
  'sd-searchbar--expanded': this.state.type === 'expanded' || this.props.type === undefined,
54
- 'sd-searchbar--focused' : this.state.focused,
54
+ 'sd-searchbar--focused': this.state.focused,
55
55
  'sd-searchbar--boxed': this.state.boxed,
56
56
  });
57
57
  return (
58
58
  <div className={classes} ref={this.inputRef}>
59
59
  {this.props.children}
60
60
  <label className="sd-searchbar__icon"></label>
61
- <input id="search-input"
62
- ref={(input: any) => (input && this.props.focused) && input.focus()}
63
- className="sd-searchbar__input"
64
- type="text"
65
- placeholder={this.props.placeholder}
66
- value={this.state.inputValue}
67
- onKeyPress={(event) => {
68
- if (event.key === 'Enter') {
69
- if (this.props.onSubmit) {
70
- this.props.onSubmit(this.state.inputValue);
61
+ <input
62
+ id="search-input"
63
+ ref={(input: any) => input && this.props.focused && input.focus()}
64
+ className="sd-searchbar__input"
65
+ type="text"
66
+ placeholder={this.props.placeholder}
67
+ value={this.state.inputValue}
68
+ onKeyPress={(event) => {
69
+ if (event.key === 'Enter') {
70
+ if (this.props.onSubmit) {
71
+ this.props.onSubmit(this.state.inputValue);
72
+ }
73
+ this.setState({keyDown: true});
71
74
  }
72
- this.setState({keyDown: true});
73
- }
74
- }}
75
- onKeyUp={(event) => {
76
- if (event.key === 'Enter') {
77
- this.setState({keyDown: false});
78
- }
79
- }}
80
- onChange={(event) => this.setState({inputValue: event.target.value})}
81
- onFocus={() => this.setState({focused: true})} />
82
- {this.state.inputValue &&
83
- <button className="sd-searchbar__cancel" onClick={() => {
84
- this.setState({inputValue: ''});
85
- setTimeout(() => {
86
- if (this.props.onSubmit) {
87
- this.props.onSubmit(this.state.inputValue);
75
+ }}
76
+ onKeyUp={(event) => {
77
+ if (event.key === 'Enter') {
78
+ this.setState({keyDown: false});
88
79
  }
89
- });
90
- }}>
91
- <Icon name='remove-sign' />
92
- </button>}
93
- {this.state.inputValue &&
94
- <button
95
- id="sd-searchbar__search-btn"
96
- className={`sd-searchbar__search-btn ${this.state.keyDown ? 'sd-searchbar__search-btn--active' : ''}`}
97
- onClick={() => {
98
- if (this.props.onSubmit) {
99
- this.props.onSubmit(this.state.inputValue);
100
- }
101
- }}>
102
- <Icon name='chevron-right-thin' />
103
- </button>}
80
+ }}
81
+ onChange={(event) => this.setState({inputValue: event.target.value})}
82
+ onFocus={() => this.setState({focused: true})}
83
+ />
84
+ {this.state.inputValue && (
85
+ <button
86
+ className="sd-searchbar__cancel"
87
+ onClick={() => {
88
+ this.setState({inputValue: ''});
89
+ setTimeout(() => {
90
+ if (this.props.onSubmit) {
91
+ this.props.onSubmit(this.state.inputValue);
92
+ }
93
+ });
94
+ }}
95
+ >
96
+ <Icon name="remove-sign" />
97
+ </button>
98
+ )}
99
+ {this.state.inputValue && (
100
+ <button
101
+ id="sd-searchbar__search-btn"
102
+ className={`sd-searchbar__search-btn ${this.state.keyDown ? 'sd-searchbar__search-btn--active' : ''}`}
103
+ onClick={() => {
104
+ if (this.props.onSubmit) {
105
+ this.props.onSubmit(this.state.inputValue);
106
+ }
107
+ }}
108
+ >
109
+ <Icon name="chevron-right-thin" />
110
+ </button>
111
+ )}
104
112
  </div>
105
113
  );
106
114
  }
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
- import nextId from "react-id-generator";
3
- import { InputWrapper } from './Form';
2
+ import nextId from 'react-id-generator';
3
+ import {InputWrapper} from './Form';
4
4
  import {IInputWrapper} from './Form/InputWrapper';
5
5
 
6
6
  interface ISelect extends IInputWrapper {
@@ -46,9 +46,9 @@ class Select extends React.Component<ISelect> {
46
46
  tabindex={this.props.tabindex}
47
47
  inputWrapper={this.props.inputWrapper}
48
48
  >
49
- <span className='sd-input__select-caret-wrapper'>
49
+ <span className="sd-input__select-caret-wrapper">
50
50
  <select
51
- className='sd-input__select'
51
+ className="sd-input__select"
52
52
  id={this.htmlId}
53
53
  value={this.props.value}
54
54
  aria-describedby={this.htmlId + 'label'}
@@ -71,10 +71,8 @@ interface IOption {
71
71
 
72
72
  class Option extends React.PureComponent<IOption> {
73
73
  render() {
74
- return (
75
- <option value={this.props.value}>{this.props.children}</option>
76
- );
74
+ return <option value={this.props.value}>{this.props.children}</option>;
77
75
  }
78
76
  }
79
77
 
80
- export { Select, Option };
78
+ export {Select, Option};
@@ -1,7 +1,7 @@
1
- import * as React from 'react';
2
- import nextId from "react-id-generator";
3
- import { OverlayPanel } from '@superdesk/primereact/overlaypanel';
4
- import { Loader } from "./Loader";
1
+ import * as React from 'react';
2
+ import nextId from 'react-id-generator';
3
+ import {OverlayPanel} from '@superdesk/primereact/overlaypanel';
4
+ import {Loader} from './Loader';
5
5
 
6
6
  /**
7
7
  * @ngdoc react
@@ -18,8 +18,8 @@ export interface IItem {
18
18
  interface IProps {
19
19
  getItems(searchString: string | null): Promise<Array<IItem>>;
20
20
  onChange(value: IItem): void;
21
- itemTemplate: React.ComponentType<{ item: IItem | null }>;
22
- triggerTemplate: React.ComponentType<{onClick: (e: React.SyntheticEvent) => void; }>;
21
+ itemTemplate: React.ComponentType<{item: IItem | null}>;
22
+ triggerTemplate: React.ComponentType<{onClick: (e: React.SyntheticEvent) => void}>;
23
23
  label: string;
24
24
  filterPlaceholder?: string;
25
25
  }
@@ -43,7 +43,7 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
43
43
  constructor(props: IProps) {
44
44
  super(props);
45
45
 
46
- this.state = { items: [], loading: true };
46
+ this.state = {items: [], loading: true};
47
47
 
48
48
  this.buttonContainer = React.createRef();
49
49
  this.overlayPanel = React.createRef();
@@ -53,7 +53,7 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
53
53
 
54
54
  componentDidMount() {
55
55
  this.props.getItems(null).then((items) => {
56
- this.setState({ items, loading: false });
56
+ this.setState({items, loading: false});
57
57
  });
58
58
  }
59
59
 
@@ -69,27 +69,29 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
69
69
  }
70
70
 
71
71
  document.addEventListener('keydown', this.handleKeydown);
72
- setTimeout(() => { this.searchInput.current?.focus(); });
72
+ setTimeout(() => {
73
+ this.searchInput.current?.focus();
74
+ });
73
75
  this.loadItems();
74
- }
76
+ };
75
77
 
76
78
  search = (event: React.ChangeEvent<HTMLInputElement>) => {
77
79
  const searchString: string = event.target.value.toLowerCase();
78
80
  this.loadItems(searchString);
79
- }
81
+ };
80
82
 
81
83
  loadItems = (searchString: string | null = null) => {
82
- this.setState({ loading: true });
84
+ this.setState({loading: true});
83
85
  this.props.getItems(searchString).then((items) => {
84
- this.setState({ items, loading: false });
86
+ this.setState({items, loading: false});
85
87
  });
86
- }
88
+ };
87
89
 
88
90
  hidePopupAndRefocus = () => {
89
91
  document.removeEventListener('keydown', this.handleKeydown);
90
92
  this.overlayPanel.current?.hide();
91
93
  this.buttonContainer.current?.querySelector('button')?.focus();
92
- }
94
+ };
93
95
 
94
96
  select = (item: IItem) => {
95
97
  this.props.onChange(item);
@@ -97,34 +99,26 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
97
99
 
98
100
  // trigger component update
99
101
  this.forceUpdate();
100
- }
102
+ };
101
103
 
102
104
  getItemElement = (index: number): HTMLDivElement | null | undefined => {
103
105
  return this.gridContainer.current?.querySelector(`[data-item-index="${index}"]`);
104
- }
106
+ };
105
107
 
106
108
  handleKeydown = (event: KeyboardEvent) => {
107
- const navKeys = [
108
- "Enter",
109
- "ArrowRight",
110
- "ArrowLeft",
111
- "ArrowUp",
112
- "ArrowDown",
113
- "PageDown",
114
- "PageUp",
115
- ];
109
+ const navKeys = ['Enter', 'ArrowRight', 'ArrowLeft', 'ArrowUp', 'ArrowDown', 'PageDown', 'PageUp'];
116
110
  const activeElement = document.activeElement;
117
111
 
118
- if (event.code === "Escape") {
112
+ if (event.code === 'Escape') {
119
113
  event.preventDefault();
120
114
  event.stopPropagation();
121
115
 
122
116
  this.hidePopupAndRefocus();
123
117
  } else if (activeElement === this.searchInput?.current) {
124
- if (event.code === "ArrowDown") {
118
+ if (event.code === 'ArrowDown') {
125
119
  event.preventDefault();
126
120
  this.getItemElement(0)?.focus();
127
- } else if (event.code === "Enter" && this.state.items.length === 1) {
121
+ } else if (event.code === 'Enter' && this.state.items.length === 1) {
128
122
  event.preventDefault();
129
123
  this.select(this.state.items[0]);
130
124
  }
@@ -133,25 +127,25 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
133
127
 
134
128
  event.preventDefault(); // Prevent scrolling, etc.
135
129
 
136
- if (event.code === "Enter") {
130
+ if (event.code === 'Enter') {
137
131
  this.select(this.state.items[itemIndex]);
138
132
  return;
139
- } else if (event.code === "ArrowRight") {
133
+ } else if (event.code === 'ArrowRight') {
140
134
  itemIndex += 1;
141
- } else if (event.code === "ArrowLeft") {
135
+ } else if (event.code === 'ArrowLeft') {
142
136
  itemIndex -= 1;
143
- } else if (event.code === "ArrowDown") {
137
+ } else if (event.code === 'ArrowDown') {
144
138
  itemIndex += GRID_COLS;
145
- } else if (event.code === "ArrowUp") {
139
+ } else if (event.code === 'ArrowUp') {
146
140
  if (itemIndex < GRID_COLS) {
147
141
  this.searchInput?.current?.focus();
148
142
  return;
149
143
  }
150
144
 
151
145
  itemIndex -= GRID_COLS;
152
- } else if (event.code === "PageDown") {
146
+ } else if (event.code === 'PageDown') {
153
147
  itemIndex += PAGE_SIZE;
154
- } else if (event.code === "PageUp") {
148
+ } else if (event.code === 'PageUp') {
155
149
  itemIndex -= PAGE_SIZE;
156
150
  }
157
151
 
@@ -163,7 +157,7 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
163
157
 
164
158
  this.getItemElement(itemIndex)?.focus();
165
159
  }
166
- }
160
+ };
167
161
 
168
162
  render() {
169
163
  const ItemTemplate = this.props.itemTemplate;
@@ -177,9 +171,7 @@ export class SelectGrid extends React.PureComponent<IProps, IState> {
177
171
  aria-label={this.props.label}
178
172
  key={this.props.label}
179
173
  >
180
- <label className="sd-input__label">
181
- {this.props.label}
182
- </label>
174
+ <label className="sd-input__label">{this.props.label}</label>
183
175
  <TriggerTemplate onClick={this.mountPopup} />
184
176
  </div>
185
177
  <OverlayPanel
@@ -4,11 +4,15 @@ import {getTextColor} from '../helpers';
4
4
 
5
5
  interface IProps<T> {
6
6
  items: Array<T>;
7
- kind: {
8
- mode: 'single-select'; getBorderColor?(item: T): string;
9
- } | {
10
- mode: 'multi-select'; getBackgroundColor?(item: T): string;
11
- };
7
+ kind:
8
+ | {
9
+ mode: 'single-select';
10
+ getBorderColor?(item: T): string;
11
+ }
12
+ | {
13
+ mode: 'multi-select';
14
+ getBackgroundColor?(item: T): string;
15
+ };
12
16
  getLabel(item: T): string;
13
17
  valueTemplate?(item: T, Wrapper?: React.ElementType): React.ComponentType<T> | JSX.Element | undefined;
14
18
  }
@@ -19,14 +23,16 @@ export class SelectPreview<T> extends React.Component<IProps<T>> {
19
23
  <div className="tags-preview">
20
24
  <ul className="tags-preview__tag-list">
21
25
  {this.props.items.map((item, i: number) => {
22
- const Wrapper: React.ComponentType<{backgroundColor?: string, borderColor?: string}>
23
- = ({backgroundColor, borderColor, children}) => {
26
+ const Wrapper: React.ComponentType<{backgroundColor?: string; borderColor?: string}> = ({
27
+ backgroundColor,
28
+ borderColor,
29
+ children,
30
+ }) => {
24
31
  let classes = classNames('tags-preview__tag-item', {
25
32
  'tags-preview__tag-item--single-select': this.props.kind.mode === 'single-select',
26
- 'tags-preview__tag-item--border': (
27
- this.props.kind.mode === 'single-select' && this.props.kind.getBorderColor
28
- )
29
- || borderColor,
33
+ 'tags-preview__tag-item--border':
34
+ (this.props.kind.mode === 'single-select' && this.props.kind.getBorderColor) ||
35
+ borderColor,
30
36
  });
31
37
 
32
38
  return (
@@ -37,15 +43,15 @@ export class SelectPreview<T> extends React.Component<IProps<T>> {
37
43
  return {backgroundColor, borderColor};
38
44
  } else {
39
45
  if (
40
- this.props.kind.mode === 'multi-select'
41
- && this.props.kind.getBackgroundColor != null
46
+ this.props.kind.mode === 'multi-select' &&
47
+ this.props.kind.getBackgroundColor != null
42
48
  ) {
43
49
  return {
44
50
  backgroundColor: this.props.kind.getBackgroundColor(item),
45
51
  };
46
52
  } else if (
47
- this.props.kind.mode === 'single-select'
48
- && this.props.kind.getBorderColor != null
53
+ this.props.kind.mode === 'single-select' &&
54
+ this.props.kind.getBorderColor != null
49
55
  ) {
50
56
  return {
51
57
  borderLeftColor: this.props.kind.getBorderColor(item),
@@ -63,12 +69,12 @@ export class SelectPreview<T> extends React.Component<IProps<T>> {
63
69
  return {color: getTextColor(backgroundColor)};
64
70
  } else {
65
71
  if (
66
- this.props.kind.mode === 'multi-select'
67
- && this.props.kind.getBackgroundColor != null
72
+ this.props.kind.mode === 'multi-select' &&
73
+ this.props.kind.getBackgroundColor != null
68
74
  ) {
69
- return {color: getTextColor(
70
- this.props.kind.getBackgroundColor(item),
71
- )};
75
+ return {
76
+ color: getTextColor(this.props.kind.getBackgroundColor(item)),
77
+ };
72
78
  } else {
73
79
  return undefined;
74
80
  }
@@ -83,15 +89,15 @@ export class SelectPreview<T> extends React.Component<IProps<T>> {
83
89
 
84
90
  return (
85
91
  <React.Fragment key={i}>
86
- {this.props.valueTemplate
87
- ? this.props.valueTemplate(item, Wrapper)
88
- : <Wrapper>
92
+ {this.props.valueTemplate ? (
93
+ this.props.valueTemplate(item, Wrapper)
94
+ ) : (
95
+ <Wrapper>
89
96
  <span>{this.props.getLabel(item)}</span>
90
97
  </Wrapper>
91
- }
98
+ )}
92
99
  </React.Fragment>
93
100
  );
94
-
95
101
  })}
96
102
  </ul>
97
103
  </div>
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import {Dropdown} from '@superdesk/primereact/dropdown';
3
- import nextId from "react-id-generator";
4
- import { InputWrapper } from './Form';
3
+ import nextId from 'react-id-generator';
4
+ import {InputWrapper} from './Form';
5
5
  import {IInputWrapper} from './Form/InputWrapper';
6
6
 
7
- interface IProps<T> extends IInputWrapper {
7
+ interface IProps<T> extends IInputWrapper {
8
8
  // Don't forget to cancel unfinished requests every the prop is called.
9
9
  getItems(searchString: string | null): Promise<Array<T>>;
10
10
  value: T;
@@ -82,9 +82,10 @@ export class SelectWithTemplate<T> extends React.Component<IProps<T>, IState<T>>
82
82
  }
83
83
 
84
84
  const optionsInternal = options.map((option) => toInternalStructure(option));
85
- const valueInternal = value == null
86
- ? null
87
- : optionsInternal?.find(({original}) => areEqual(original, value)) ?? toInternalStructure(value);
85
+ const valueInternal =
86
+ value == null
87
+ ? null
88
+ : (optionsInternal?.find(({original}) => areEqual(original, value)) ?? toInternalStructure(value));
88
89
 
89
90
  // This is regarding the placeholder for selected value.
90
91
  // itemTemplate will be used to render it, but a non-empty value
@@ -122,12 +123,10 @@ export class SelectWithTemplate<T> extends React.Component<IProps<T>, IState<T>>
122
123
  showClear={!required}
123
124
  emptyFilterMessage={emptyFilterMessage}
124
125
  itemTemplate={(option) => <ItemTemplate option={option?.original ?? null} />}
125
- valueTemplate={(option) => ValueTemplate != null
126
- ? (
126
+ valueTemplate={(option) =>
127
+ ValueTemplate != null ? (
127
128
  <ValueTemplate option={option?.original ?? null} />
128
-
129
- )
130
- : (
129
+ ) : (
131
130
  <ItemTemplate option={option?.original ?? null} />
132
131
  )
133
132
  }
@@ -1,4 +1,3 @@
1
-
2
1
  import * as React from 'react';
3
2
  import ReactDOM from 'react-dom';
4
3
  import {createPopper, Instance as PopperInstance, Placement, Modifier} from '@popperjs/core';
@@ -34,8 +33,8 @@ export class PopupPositioner extends React.PureComponent<IPropsPopupPositioner>
34
33
  }
35
34
 
36
35
  if (
37
- this.props.getReferenceElement().contains(event.target as Node) !== true
38
- && this.wrapperEl.contains(event.target as Node) !== true
36
+ this.props.getReferenceElement().contains(event.target as Node) !== true &&
37
+ this.wrapperEl.contains(event.target as Node) !== true
39
38
  ) {
40
39
  this.props.onClose();
41
40
  }
@@ -90,17 +89,10 @@ export class PopupPositioner extends React.PureComponent<IPropsPopupPositioner>
90
89
  */
91
90
  setTimeout(() => {
92
91
  if (this.wrapperEl != null) {
93
- this.popper = createPopper(
94
- this.props.getReferenceElement(),
95
- this.wrapperEl,
96
- {
97
- placement: this.props.placement,
98
- modifiers: [
99
- maxSize,
100
- applyMaxSize,
101
- ],
102
- },
103
- );
92
+ this.popper = createPopper(this.props.getReferenceElement(), this.wrapperEl, {
93
+ placement: this.props.placement,
94
+ modifiers: [maxSize, applyMaxSize],
95
+ });
104
96
  }
105
97
  }, 50);
106
98
  }
@@ -121,26 +113,22 @@ export class PopupPositioner extends React.PureComponent<IPropsPopupPositioner>
121
113
  render() {
122
114
  return (
123
115
  <>
124
- {
125
- ReactDOM.createPortal(
126
- (
127
- <div
128
- ref={(el) => {
129
- this.wrapperEl = el;
130
- }}
131
- style={{
132
- position: 'absolute',
133
- left: '-100vw',
134
- display: 'flex',
135
- zIndex: this.zIndex,
136
- }}
137
- >
138
- {this.props.children}
139
- </div>
140
- ),
141
- document.body,
142
- )
143
- }
116
+ {ReactDOM.createPortal(
117
+ <div
118
+ ref={(el) => {
119
+ this.wrapperEl = el;
120
+ }}
121
+ style={{
122
+ position: 'absolute',
123
+ left: '-100vw',
124
+ display: 'flex',
125
+ zIndex: this.zIndex,
126
+ }}
127
+ >
128
+ {this.props.children}
129
+ </div>,
130
+ document.body,
131
+ )}
144
132
  </>
145
133
  );
146
134
  }
@@ -167,18 +155,14 @@ export function showPopup(
167
155
  };
168
156
 
169
157
  ReactDOM.render(
170
- (
171
- <PopupPositioner
172
- getReferenceElement={() => referenceElement}
173
- placement={placement}
174
- onClose={closeFn}
175
- closeOnHoverEnd={closeOnHoverEnd || false}
176
- >
177
- <Component
178
- closePopup={closeFn}
179
- />
180
- </PopupPositioner>
181
- ),
158
+ <PopupPositioner
159
+ getReferenceElement={() => referenceElement}
160
+ placement={placement}
161
+ onClose={closeFn}
162
+ closeOnHoverEnd={closeOnHoverEnd || false}
163
+ >
164
+ <Component closePopup={closeFn} />
165
+ </PopupPositioner>,
182
166
  el,
183
167
  );
184
168
 
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { Icon } from './Icon';
2
+ import {Icon} from './Icon';
3
3
 
4
4
  interface IProps {
5
5
  items: Array<IItem | 'divider'>;
@@ -40,29 +40,30 @@ export class SidebarMenu extends React.PureComponent<IProps, IState> {
40
40
 
41
41
  render() {
42
42
  return (
43
- <div className='sd-sidebar-menu sd-content-wrapper__left-tabs'>
44
- <ul className='authoring-active'>
43
+ <div className="sd-sidebar-menu sd-content-wrapper__left-tabs">
44
+ <ul className="authoring-active">
45
45
  {this.props.items.map((item, index) => {
46
46
  if (item === 'divider') {
47
- return (
48
- <li key={index} className='sd-sidebar-menu__spacer'></li>
49
- );
47
+ return <li key={index} className="sd-sidebar-menu__spacer"></li>;
50
48
  } else {
51
49
  return (
52
- <li key={index} data-sd-tooltip={item['tooltip']} data-flow='right'>
53
- <a className={
54
- 'sd-sidebar-menu__btn'
55
- + (index === this.state.closeIndex ? ' sd-sidebar-menu__btn--closed ' : '')
56
- + (item['active']
57
- ? ' sd-sidebar-menu__btn--active'
58
- : (index === this.state.index ? ' sd-sidebar-menu__btn--active' : '')
59
- )
60
- }
61
- onClick={() => this.handleClick(index)}>
62
- <span className='sd-sidebar-menu__main-icon '>
50
+ <li key={index} data-sd-tooltip={item['tooltip']} data-flow="right">
51
+ <a
52
+ className={
53
+ 'sd-sidebar-menu__btn' +
54
+ (index === this.state.closeIndex ? ' sd-sidebar-menu__btn--closed ' : '') +
55
+ (item['active']
56
+ ? ' sd-sidebar-menu__btn--active'
57
+ : index === this.state.index
58
+ ? ' sd-sidebar-menu__btn--active'
59
+ : '')
60
+ }
61
+ onClick={() => this.handleClick(index)}
62
+ >
63
+ <span className="sd-sidebar-menu__main-icon ">
63
64
  <Icon size={item['size']} name={item['icon']} />
64
65
  </span>
65
- <i className='sd-sidebar-menu__helper-icon big-icon--chevron-left'></i>
66
+ <i className="sd-sidebar-menu__helper-icon big-icon--chevron-left"></i>
66
67
  </a>
67
68
  </li>
68
69
  );