@webiny/app-admin 0.0.0-mt-1

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 (357) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +21 -0
  3. package/assets/icons/add-18px.svg +3 -0
  4. package/assets/icons/arrow_drop_down-24px.svg +4 -0
  5. package/assets/icons/attach_file_black_24dp.svg +1 -0
  6. package/assets/icons/baseline-menu-24px.svg +4 -0
  7. package/assets/icons/baseline-notification_important-24px.svg +4 -0
  8. package/assets/icons/baseline-security-24px.svg +4 -0
  9. package/assets/icons/filter-24px.svg +8 -0
  10. package/assets/icons/github-brands.svg +1 -0
  11. package/assets/icons/highlight-24px.svg +1 -0
  12. package/assets/icons/icon-community.svg +16 -0
  13. package/assets/icons/icon-documentation.svg +16 -0
  14. package/assets/icons/info.svg +1 -0
  15. package/assets/icons/insert_drive_file-24px.svg +1 -0
  16. package/assets/icons/insert_photo-24px.svg +1 -0
  17. package/assets/icons/label-24px.svg +1 -0
  18. package/assets/icons/round-account_circle-24px.svg +1 -0
  19. package/assets/icons/round-add-24px.svg +16 -0
  20. package/assets/icons/round-arrow_drop_down-24px.svg +1 -0
  21. package/assets/icons/round-chevron_right-24px.svg +12 -0
  22. package/assets/icons/round-feedback-24px.svg +54 -0
  23. package/assets/icons/round-help-24px.svg +1 -0
  24. package/assets/icons/round-invert_colors-24px.svg +52 -0
  25. package/assets/icons/round-keyboard_arrow_down-24px.svg +16 -0
  26. package/assets/icons/round-keyboard_arrow_up-24px.svg +16 -0
  27. package/assets/icons/round-lock_open-24px.svg +60 -0
  28. package/assets/icons/round-more_vert-24px.svg +12 -0
  29. package/assets/icons/round-open_in_new-24px.svg +44 -0
  30. package/assets/icons/round-settings-24px.svg +4 -0
  31. package/assets/icons/search-24px.svg +20 -0
  32. package/assets/icons/slack-logo.svg +1 -0
  33. package/assets/icons/today-24px.svg +1 -0
  34. package/assets/icons/touch_app.svg +1 -0
  35. package/assets/images/arr.png +0 -0
  36. package/assets/images/arr_2.png +0 -0
  37. package/assets/images/header_bg.jpg +0 -0
  38. package/assets/images/icons.png +0 -0
  39. package/assets/images/icons_retina.png +0 -0
  40. package/assets/images/logo.png +0 -0
  41. package/assets/images/logo_orange.png +0 -0
  42. package/assets/images/public/bg-login.png +0 -0
  43. package/assets/images/public/favicon.ico +0 -0
  44. package/assets/images/public/logo_orange.png +0 -0
  45. package/assets/images/public/preloader_2.png +0 -0
  46. package/assets/images/swich.png +0 -0
  47. package/assets/images/table_img.jpg +0 -0
  48. package/assets/images/webiny-logo.svg +20 -0
  49. package/assets/images/webiny-orange-logo.svg +20 -0
  50. package/components/AdminLayout.d.ts +7 -0
  51. package/components/AdminLayout.js +35 -0
  52. package/components/AppInstaller/Sidebar.d.ts +7 -0
  53. package/components/AppInstaller/Sidebar.js +158 -0
  54. package/components/AppInstaller/assets/sign-in-divider.svg +19 -0
  55. package/components/AppInstaller/index.d.ts +5 -0
  56. package/components/AppInstaller/index.js +134 -0
  57. package/components/AppInstaller/styled.d.ts +7 -0
  58. package/components/AppInstaller/styled.js +73 -0
  59. package/components/AppInstaller/useInstaller.d.ts +11 -0
  60. package/components/AppInstaller/useInstaller.js +279 -0
  61. package/components/EmptyView.d.ts +8 -0
  62. package/components/EmptyView.js +56 -0
  63. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +5 -0
  64. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +35 -0
  65. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +5 -0
  66. package/components/FileManager/BottomInfoBar/UploadStatus.js +47 -0
  67. package/components/FileManager/BottomInfoBar.d.ts +3 -0
  68. package/components/FileManager/BottomInfoBar.js +42 -0
  69. package/components/FileManager/DropFilesHere.d.ts +8 -0
  70. package/components/FileManager/DropFilesHere.js +58 -0
  71. package/components/FileManager/File.d.ts +18 -0
  72. package/components/FileManager/File.js +129 -0
  73. package/components/FileManager/FileDetails/Name.d.ts +6 -0
  74. package/components/FileManager/FileDetails/Name.js +113 -0
  75. package/components/FileManager/FileDetails/Tags.d.ts +6 -0
  76. package/components/FileManager/FileDetails/Tags.js +241 -0
  77. package/components/FileManager/FileDetails.d.ts +23 -0
  78. package/components/FileManager/FileDetails.js +392 -0
  79. package/components/FileManager/FileManagerContext.d.ts +23 -0
  80. package/components/FileManager/FileManagerContext.js +174 -0
  81. package/components/FileManager/FileManagerView.d.ts +23 -0
  82. package/components/FileManager/FileManagerView.js +632 -0
  83. package/components/FileManager/LeftSidebar.d.ts +8 -0
  84. package/components/FileManager/LeftSidebar.js +95 -0
  85. package/components/FileManager/NoPermissionView.d.ts +3 -0
  86. package/components/FileManager/NoPermissionView.js +70 -0
  87. package/components/FileManager/NoResults.d.ts +2 -0
  88. package/components/FileManager/NoResults.js +13 -0
  89. package/components/FileManager/getFileTypePlugin.d.ts +1 -0
  90. package/components/FileManager/getFileTypePlugin.js +27 -0
  91. package/components/FileManager/getFileUploader.d.ts +2 -0
  92. package/components/FileManager/getFileUploader.js +10 -0
  93. package/components/FileManager/graphql.d.ts +6 -0
  94. package/components/FileManager/graphql.js +17 -0
  95. package/components/FileManager/icons/content_copy-black-24px.svg +1 -0
  96. package/components/FileManager/icons/delete.svg +12 -0
  97. package/components/FileManager/icons/privacy_tip-24px.svg +10 -0
  98. package/components/FileManager/icons/round-check_box-24px.svg +4 -0
  99. package/components/FileManager/icons/round-check_box_outline_blank-24px.svg +4 -0
  100. package/components/FileManager/icons/round-cloud_download-24px.svg +4 -0
  101. package/components/FileManager/icons/round-cloud_upload-24px.svg +4 -0
  102. package/components/FileManager/icons/round-description-24px.svg +4 -0
  103. package/components/FileManager/icons/round-edit-24px.svg +4 -0
  104. package/components/FileManager/icons/round-info-24px.svg +4 -0
  105. package/components/FileManager/icons/round-label-24px.svg +4 -0
  106. package/components/FileManager/icons/round-more_vert-24px.svg +4 -0
  107. package/components/FileManager/icons/round-search-24px.svg +20 -0
  108. package/components/FileManager/outputFileSelectionError.d.ts +2 -0
  109. package/components/FileManager/outputFileSelectionError.js +39 -0
  110. package/components/FileManager.d.ts +18 -0
  111. package/components/FileManager.js +133 -0
  112. package/components/FloatingActionButton.d.ts +3 -0
  113. package/components/FloatingActionButton.js +17 -0
  114. package/components/MultiImageUpload.d.ts +4 -0
  115. package/components/MultiImageUpload.js +20 -0
  116. package/components/OverlayLayout/OverlayLayout.d.ts +25 -0
  117. package/components/OverlayLayout/OverlayLayout.js +159 -0
  118. package/components/OverlayLayout/icons/close.svg +13 -0
  119. package/components/OverlayLayout/icons/navigate_before.svg +16 -0
  120. package/components/OverlayLayout/index.d.ts +1 -0
  121. package/components/OverlayLayout/index.js +1 -0
  122. package/components/Permissions/Permissions.d.ts +7 -0
  123. package/components/Permissions/Permissions.js +37 -0
  124. package/components/Permissions/StyledComponents.d.ts +6 -0
  125. package/components/Permissions/StyledComponents.js +19 -0
  126. package/components/Permissions/index.d.ts +2 -0
  127. package/components/Permissions/index.js +2 -0
  128. package/components/RichTextEditor/RichTextEditor.d.ts +3 -0
  129. package/components/RichTextEditor/RichTextEditor.js +15 -0
  130. package/components/RichTextEditor/index.d.ts +2 -0
  131. package/components/RichTextEditor/index.js +2 -0
  132. package/components/RichTextEditor/styles.scss +64 -0
  133. package/components/RichTextEditor/tools/header/index.d.ts +228 -0
  134. package/components/RichTextEditor/tools/header/index.js +731 -0
  135. package/components/RichTextEditor/tools/header/styles.scss +48 -0
  136. package/components/RichTextEditor/tools/image/index.d.ts +97 -0
  137. package/components/RichTextEditor/tools/image/index.js +257 -0
  138. package/components/RichTextEditor/tools/image/styles.scss +90 -0
  139. package/components/RichTextEditor/tools/image/svgs.d.ts +6 -0
  140. package/components/RichTextEditor/tools/image/svgs.js +5 -0
  141. package/components/RichTextEditor/tools/image/tunes.d.ts +58 -0
  142. package/components/RichTextEditor/tools/image/tunes.js +134 -0
  143. package/components/RichTextEditor/tools/image/ui.d.ts +111 -0
  144. package/components/RichTextEditor/tools/image/ui.js +281 -0
  145. package/components/RichTextEditor/tools/paragraph/index.d.ts +211 -0
  146. package/components/RichTextEditor/tools/paragraph/index.js +520 -0
  147. package/components/RichTextEditor/tools/paragraph/styles.scss +29 -0
  148. package/components/RichTextEditor/tools/textColor/index.d.ts +58 -0
  149. package/components/RichTextEditor/tools/textColor/index.js +232 -0
  150. package/components/RichTextEditor/tools/textColor/styles.scss +21 -0
  151. package/components/RichTextEditor/tools/utils.d.ts +19 -0
  152. package/components/RichTextEditor/tools/utils.js +24 -0
  153. package/components/SearchUI.d.ts +8 -0
  154. package/components/SearchUI.js +59 -0
  155. package/components/SimpleForm/SimpleForm.d.ts +21 -0
  156. package/components/SimpleForm/SimpleForm.js +75 -0
  157. package/components/SimpleForm/index.d.ts +1 -0
  158. package/components/SimpleForm/index.js +1 -0
  159. package/components/SimpleUI/InputField.d.ts +9 -0
  160. package/components/SimpleUI/InputField.js +97 -0
  161. package/components/SingleImageUpload.d.ts +25 -0
  162. package/components/SingleImageUpload.js +102 -0
  163. package/components/SplitView/SplitView.d.ts +10 -0
  164. package/components/SplitView/SplitView.js +76 -0
  165. package/components/SplitView/index.d.ts +1 -0
  166. package/components/SplitView/index.js +1 -0
  167. package/components/index.d.ts +1 -0
  168. package/components/index.js +1 -0
  169. package/hooks/useConfirmationDialog.d.ts +10 -0
  170. package/hooks/useConfirmationDialog.js +47 -0
  171. package/hooks/useDialog.d.ts +5 -0
  172. package/hooks/useDialog.js +27 -0
  173. package/hooks/useSnackbar.d.ts +4 -0
  174. package/hooks/useSnackbar.js +25 -0
  175. package/package.json +101 -0
  176. package/plugins/FileManagerFileTypePlugin.d.ts +33 -0
  177. package/plugins/FileManagerFileTypePlugin.js +46 -0
  178. package/plugins/MenuPlugin.d.ts +20 -0
  179. package/plugins/MenuPlugin.js +41 -0
  180. package/plugins/PermissionRendererPlugin.d.ts +22 -0
  181. package/plugins/PermissionRendererPlugin.js +41 -0
  182. package/plugins/fileManager/fileDefault.d.ts +3 -0
  183. package/plugins/fileManager/fileDefault.js +20 -0
  184. package/plugins/fileManager/fileImage/DeleteAction.d.ts +3 -0
  185. package/plugins/fileManager/fileImage/DeleteAction.js +62 -0
  186. package/plugins/fileManager/fileImage/EditAction.d.ts +9 -0
  187. package/plugins/fileManager/fileImage/EditAction.js +143 -0
  188. package/plugins/fileManager/fileImage/index.d.ts +3 -0
  189. package/plugins/fileManager/fileImage/index.js +29 -0
  190. package/plugins/fileManager/icons/edit.svg +17 -0
  191. package/plugins/fileManager/icons/round-description-24px.svg +1 -0
  192. package/plugins/fileManager/index.d.ts +2 -0
  193. package/plugins/fileManager/index.js +3 -0
  194. package/plugins/globalSearch/SearchBar.d.ts +3 -0
  195. package/plugins/globalSearch/SearchBar.js +241 -0
  196. package/plugins/globalSearch/SearchBarDropdown.d.ts +5 -0
  197. package/plugins/globalSearch/SearchBarDropdown.js +82 -0
  198. package/plugins/globalSearch/icons/round-search-24px.svg +20 -0
  199. package/plugins/globalSearch/index.d.ts +8 -0
  200. package/plugins/globalSearch/index.js +30 -0
  201. package/plugins/globalSearch/styled.d.ts +9 -0
  202. package/plugins/globalSearch/styled.js +115 -0
  203. package/plugins/index.d.ts +6 -0
  204. package/plugins/index.js +8 -0
  205. package/plugins/logo/Logo.d.ts +22 -0
  206. package/plugins/logo/Logo.js +108 -0
  207. package/plugins/logo/index.d.ts +5 -0
  208. package/plugins/logo/index.js +32 -0
  209. package/plugins/menu/documentation.d.ts +4 -0
  210. package/plugins/menu/documentation.js +16 -0
  211. package/plugins/menu/fileManager.d.ts +4 -0
  212. package/plugins/menu/fileManager.js +64 -0
  213. package/plugins/menu/index.d.ts +6 -0
  214. package/plugins/menu/index.js +24 -0
  215. package/plugins/menu/renderers/MenuGroupRenderer.d.ts +7 -0
  216. package/plugins/menu/renderers/MenuGroupRenderer.js +126 -0
  217. package/plugins/menu/renderers/MenuLinkRenderer.d.ts +7 -0
  218. package/plugins/menu/renderers/MenuLinkRenderer.js +52 -0
  219. package/plugins/menu/renderers/MenuSectionItemRenderer.d.ts +7 -0
  220. package/plugins/menu/renderers/MenuSectionItemRenderer.js +77 -0
  221. package/plugins/menu/renderers/MenuSectionRenderer.d.ts +7 -0
  222. package/plugins/menu/renderers/MenuSectionRenderer.js +51 -0
  223. package/plugins/menu/slack.d.ts +4 -0
  224. package/plugins/menu/slack.js +16 -0
  225. package/plugins/menu/source.d.ts +4 -0
  226. package/plugins/menu/source.js +16 -0
  227. package/plugins/uiLayoutRenderer/index.d.ts +3 -0
  228. package/plugins/uiLayoutRenderer/index.js +63 -0
  229. package/plugins/userMenu/UserMenuElement.d.ts +7 -0
  230. package/plugins/userMenu/UserMenuElement.js +43 -0
  231. package/plugins/userMenu/UserMenuRenderer.d.ts +6 -0
  232. package/plugins/userMenu/UserMenuRenderer.js +47 -0
  233. package/plugins/userMenu/index.d.ts +4 -0
  234. package/plugins/userMenu/index.js +16 -0
  235. package/styles/material-theme-assignments.scss +333 -0
  236. package/styles/material.scss +74 -0
  237. package/styles/theme.scss +43 -0
  238. package/styles.scss +2 -0
  239. package/types.d.ts +100 -0
  240. package/types.js +1 -0
  241. package/ui/UIElement.d.ts +2 -0
  242. package/ui/UIElement.js +1 -0
  243. package/ui/UILayout.d.ts +1 -0
  244. package/ui/UILayout.js +1 -0
  245. package/ui/UIRenderer.d.ts +2 -0
  246. package/ui/UIRenderer.js +1 -0
  247. package/ui/UIView.d.ts +2 -0
  248. package/ui/UIView.js +1 -0
  249. package/ui/elements/AccordionElement.d.ts +27 -0
  250. package/ui/elements/AccordionElement.js +86 -0
  251. package/ui/elements/ButtonElement.d.ts +24 -0
  252. package/ui/elements/ButtonElement.js +78 -0
  253. package/ui/elements/ButtonGroupElement.d.ts +6 -0
  254. package/ui/elements/ButtonGroupElement.js +48 -0
  255. package/ui/elements/GenericElement.d.ts +1 -0
  256. package/ui/elements/GenericElement.js +1 -0
  257. package/ui/elements/LabelElement.d.ts +16 -0
  258. package/ui/elements/LabelElement.js +47 -0
  259. package/ui/elements/NavigationMenuElement.d.ts +32 -0
  260. package/ui/elements/NavigationMenuElement.js +158 -0
  261. package/ui/elements/PanelElement.d.ts +3 -0
  262. package/ui/elements/PanelElement.js +17 -0
  263. package/ui/elements/PlaceholderElement.d.ts +5 -0
  264. package/ui/elements/PlaceholderElement.js +30 -0
  265. package/ui/elements/SmallButtonElement.d.ts +6 -0
  266. package/ui/elements/SmallButtonElement.js +47 -0
  267. package/ui/elements/TypographyElement.d.ts +13 -0
  268. package/ui/elements/TypographyElement.js +49 -0
  269. package/ui/elements/ViewElement.d.ts +1 -0
  270. package/ui/elements/ViewElement.js +1 -0
  271. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +6 -0
  272. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +44 -0
  273. package/ui/elements/form/DynamicFieldsetElement.d.ts +42 -0
  274. package/ui/elements/form/DynamicFieldsetElement.js +127 -0
  275. package/ui/elements/form/FileManagerElement/EmptyStateElement.d.ts +4 -0
  276. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +24 -0
  277. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.d.ts +7 -0
  278. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +72 -0
  279. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.d.ts +13 -0
  280. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +95 -0
  281. package/ui/elements/form/FileManagerElement/styled.d.ts +14 -0
  282. package/ui/elements/form/FileManagerElement/styled.js +106 -0
  283. package/ui/elements/form/FileManagerElement.d.ts +24 -0
  284. package/ui/elements/form/FileManagerElement.js +91 -0
  285. package/ui/elements/form/FormElement.d.ts +21 -0
  286. package/ui/elements/form/FormElement.js +45 -0
  287. package/ui/elements/form/FormFieldElement.d.ts +55 -0
  288. package/ui/elements/form/FormFieldElement.js +183 -0
  289. package/ui/elements/form/HiddenElement.d.ts +6 -0
  290. package/ui/elements/form/HiddenElement.js +49 -0
  291. package/ui/elements/form/InputElement.d.ts +6 -0
  292. package/ui/elements/form/InputElement.js +55 -0
  293. package/ui/elements/form/PasswordElement.d.ts +6 -0
  294. package/ui/elements/form/PasswordElement.js +50 -0
  295. package/ui/elements/form/README.md +2 -0
  296. package/ui/elements/form/SelectElement.d.ts +15 -0
  297. package/ui/elements/form/SelectElement.js +71 -0
  298. package/ui/elements/form/TextareaElement.d.ts +15 -0
  299. package/ui/elements/form/TextareaElement.js +56 -0
  300. package/ui/views/AdminView/ContentElement.d.ts +4 -0
  301. package/ui/views/AdminView/ContentElement.js +62 -0
  302. package/ui/views/AdminView/HeaderElement.d.ts +13 -0
  303. package/ui/views/AdminView/HeaderElement.js +111 -0
  304. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +6 -0
  305. package/ui/views/AdminView/HeaderSectionCenterElement.js +42 -0
  306. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +6 -0
  307. package/ui/views/AdminView/HeaderSectionLeftElement.js +42 -0
  308. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +6 -0
  309. package/ui/views/AdminView/HeaderSectionRightElement.js +42 -0
  310. package/ui/views/AdminView/components/Dialog.d.ts +2 -0
  311. package/ui/views/AdminView/components/Dialog.js +40 -0
  312. package/ui/views/AdminView/components/Hamburger.d.ts +3 -0
  313. package/ui/views/AdminView/components/Hamburger.js +25 -0
  314. package/ui/views/AdminView/components/Snackbar.d.ts +3 -0
  315. package/ui/views/AdminView/components/Snackbar.js +28 -0
  316. package/ui/views/AdminView.d.ts +12 -0
  317. package/ui/views/AdminView.js +90 -0
  318. package/ui/views/FormView/FormContainerElement.d.ts +12 -0
  319. package/ui/views/FormView/FormContainerElement.js +51 -0
  320. package/ui/views/FormView/FormContentElement.d.ts +3 -0
  321. package/ui/views/FormView/FormContentElement.js +17 -0
  322. package/ui/views/FormView/FormFooterElement.d.ts +6 -0
  323. package/ui/views/FormView/FormFooterElement.js +49 -0
  324. package/ui/views/FormView/FormHeaderElement.d.ts +14 -0
  325. package/ui/views/FormView/FormHeaderElement.js +81 -0
  326. package/ui/views/FormView.d.ts +40 -0
  327. package/ui/views/FormView.js +160 -0
  328. package/ui/views/NavigationView/ContentElement.d.ts +10 -0
  329. package/ui/views/NavigationView/ContentElement.js +86 -0
  330. package/ui/views/NavigationView/FooterElement.d.ts +13 -0
  331. package/ui/views/NavigationView/FooterElement.js +57 -0
  332. package/ui/views/NavigationView/HeaderElement.d.ts +16 -0
  333. package/ui/views/NavigationView/HeaderElement.js +66 -0
  334. package/ui/views/NavigationView/NavigationViewRenderer.d.ts +6 -0
  335. package/ui/views/NavigationView/NavigationViewRenderer.js +38 -0
  336. package/ui/views/NavigationView/Styled.d.ts +7 -0
  337. package/ui/views/NavigationView/Styled.js +47 -0
  338. package/ui/views/NavigationView/legacyMenu.d.ts +22 -0
  339. package/ui/views/NavigationView/legacyMenu.js +1 -0
  340. package/ui/views/NavigationView/useNavigation.d.ts +6 -0
  341. package/ui/views/NavigationView/useNavigation.js +22 -0
  342. package/ui/views/NavigationView.d.ts +26 -0
  343. package/ui/views/NavigationView.js +204 -0
  344. package/ui/views/OverlayView/ContentElement.d.ts +6 -0
  345. package/ui/views/OverlayView/ContentElement.js +42 -0
  346. package/ui/views/OverlayView/HeaderElement.d.ts +24 -0
  347. package/ui/views/OverlayView/HeaderElement.js +115 -0
  348. package/ui/views/OverlayView/HeaderTitleElement.d.ts +13 -0
  349. package/ui/views/OverlayView/HeaderTitleElement.js +54 -0
  350. package/ui/views/OverlayView/useOverlayView.d.ts +6 -0
  351. package/ui/views/OverlayView/useOverlayView.js +38 -0
  352. package/ui/views/OverlayView.d.ts +31 -0
  353. package/ui/views/OverlayView.js +176 -0
  354. package/ui/views/SplitView/SplitViewPanelElement.d.ts +11 -0
  355. package/ui/views/SplitView/SplitViewPanelElement.js +72 -0
  356. package/ui/views/SplitView.d.ts +21 -0
  357. package/ui/views/SplitView.js +142 -0
@@ -0,0 +1,62 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+
5
+ var _templateObject;
6
+
7
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+ import React from "react";
9
+ import { Tooltip } from "@webiny/ui/Tooltip";
10
+ import { IconButton } from "@webiny/ui/Button";
11
+ import { useSnackbar } from "../../../hooks/useSnackbar";
12
+ import { useMutation } from "@apollo/react-hooks";
13
+ import { i18n } from "@webiny/app/i18n";
14
+ var t = i18n.ns("app-admin/file-manager/files/delete-action");
15
+ import { ReactComponent as DeleteIcon } from "@svgr/webpack!../../../components/FileManager/icons/delete.svg";
16
+ import { DELETE_FILE } from "../../../components/FileManager/graphql";
17
+
18
+ var DeleteAction = function DeleteAction(props) {
19
+ var file = props.file;
20
+
21
+ var _useSnackbar = useSnackbar(),
22
+ showSnackbar = _useSnackbar.showSnackbar;
23
+
24
+ var _useMutation = useMutation(DELETE_FILE, {
25
+ variables: {
26
+ id: file.id
27
+ }
28
+ }),
29
+ _useMutation2 = _slicedToArray(_useMutation, 1),
30
+ deleteFile = _useMutation2[0];
31
+
32
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Tooltip, {
33
+ content: /*#__PURE__*/React.createElement("span", null, "Edit image"),
34
+ placement: "bottom"
35
+ }, /*#__PURE__*/React.createElement(IconButton, {
36
+ icon: /*#__PURE__*/React.createElement(DeleteIcon, {
37
+ style: {
38
+ margin: "0 8px 0 0"
39
+ }
40
+ }),
41
+ onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
42
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
43
+ while (1) {
44
+ switch (_context.prev = _context.next) {
45
+ case 0:
46
+ _context.next = 2;
47
+ return deleteFile();
48
+
49
+ case 2:
50
+ showSnackbar(t(_templateObject || (_templateObject = _taggedTemplateLiteral(["File deleted."]))));
51
+
52
+ case 3:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }
57
+ }, _callee);
58
+ }))
59
+ })));
60
+ };
61
+
62
+ export default DeleteAction;
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+ declare type EditActionProps = {
3
+ file: any;
4
+ uploadFile: any;
5
+ validateFiles: any;
6
+ canEdit: (file: any) => boolean;
7
+ };
8
+ declare const EditAction: React.FC<EditActionProps>;
9
+ export default EditAction;
@@ -0,0 +1,143 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ import * as React from "react";
6
+ import { Hotkeys } from "react-hotkeyz";
7
+ import dataURLtoBlob from "dataurl-to-blob";
8
+ import { ImageEditorDialog } from "@webiny/ui/ImageUpload";
9
+ import { Tooltip } from "@webiny/ui/Tooltip";
10
+ import { IconButton } from "@webiny/ui/Button";
11
+ import outputFileSelectionError from "../../../components/FileManager/outputFileSelectionError";
12
+ import { useSnackbar } from "../../../hooks/useSnackbar";
13
+ import { ReactComponent as EditIcon } from "@svgr/webpack!../icons/edit.svg";
14
+
15
+ function toDataUrl(url) {
16
+ return new Promise(function (resolve) {
17
+ var xhr = new window.XMLHttpRequest();
18
+
19
+ xhr.onload = function () {
20
+ var reader = new window.FileReader();
21
+
22
+ reader.onloadend = function () {
23
+ resolve(reader.result);
24
+ };
25
+
26
+ reader.readAsDataURL(xhr.response);
27
+ };
28
+
29
+ xhr.open("GET", url);
30
+ xhr.responseType = "blob";
31
+ xhr.send();
32
+ });
33
+ }
34
+
35
+ var initialState = {
36
+ showImageEditor: false,
37
+ dataUrl: null
38
+ };
39
+
40
+ var reducer = function reducer(state, action) {
41
+ var next = _objectSpread({}, state);
42
+
43
+ switch (action.type) {
44
+ case "setDataUrl":
45
+ next.dataUrl = action.dataUrl;
46
+ next.showImageEditor = true;
47
+ break;
48
+
49
+ case "hideImageEditor":
50
+ next.dataUrl = null;
51
+ next.showImageEditor = false;
52
+ break;
53
+ }
54
+
55
+ return next;
56
+ }; // TODO: @adrian
57
+
58
+
59
+ var EditAction = function EditAction(props) {
60
+ var file = props.file,
61
+ uploadFile = props.uploadFile,
62
+ validateFiles = props.validateFiles,
63
+ canEdit = props.canEdit;
64
+
65
+ var _React$useReducer = React.useReducer(reducer, initialState),
66
+ _React$useReducer2 = _slicedToArray(_React$useReducer, 2),
67
+ state = _React$useReducer2[0],
68
+ dispatch = _React$useReducer2[1];
69
+
70
+ var _useSnackbar = useSnackbar(),
71
+ showSnackbar = _useSnackbar.showSnackbar; // Render nothing if the user don't have required permission for "edit".
72
+
73
+
74
+ if (!canEdit(file)) {
75
+ return null;
76
+ }
77
+
78
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Tooltip, {
79
+ content: /*#__PURE__*/React.createElement("span", null, "Edit image"),
80
+ placement: "bottom"
81
+ }, /*#__PURE__*/React.createElement(IconButton, {
82
+ "data-testid": "fm-edit-image-button",
83
+ icon: /*#__PURE__*/React.createElement(EditIcon, {
84
+ style: {
85
+ margin: "0 8px 0 0"
86
+ }
87
+ }),
88
+ onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
89
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
90
+ while (1) {
91
+ switch (_context.prev = _context.next) {
92
+ case 0:
93
+ _context.t0 = dispatch;
94
+ _context.next = 3;
95
+ return toDataUrl(file.src);
96
+
97
+ case 3:
98
+ _context.t1 = _context.sent;
99
+ _context.t2 = {
100
+ type: "setDataUrl",
101
+ dataUrl: _context.t1
102
+ };
103
+ (0, _context.t0)(_context.t2);
104
+
105
+ case 6:
106
+ case "end":
107
+ return _context.stop();
108
+ }
109
+ }
110
+ }, _callee);
111
+ }))
112
+ })), /*#__PURE__*/React.createElement(Hotkeys, {
113
+ zIndex: 60,
114
+ disabled: !state.dataUrl
115
+ }, /*#__PURE__*/React.createElement(ImageEditorDialog, {
116
+ "data-testid": "fm-image-editor-dialog",
117
+ dialogZIndex: 100,
118
+ open: state.showImageEditor,
119
+ src: state.dataUrl,
120
+ onClose: function onClose() {
121
+ return dispatch({
122
+ type: "hideImageEditor"
123
+ });
124
+ },
125
+ onAccept: function onAccept(src) {
126
+ var blob = dataURLtoBlob(src);
127
+ var errors = validateFiles([blob]);
128
+
129
+ if (errors.length) {
130
+ showSnackbar(outputFileSelectionError(errors));
131
+ } else {
132
+ blob.name = file.name;
133
+ uploadFile(blob);
134
+ }
135
+
136
+ dispatch({
137
+ type: "hideImageEditor"
138
+ });
139
+ }
140
+ })));
141
+ };
142
+
143
+ export default EditAction;
@@ -0,0 +1,3 @@
1
+ import { FileManagerFileTypePlugin } from "../../FileManagerFileTypePlugin";
2
+ declare const _default: FileManagerFileTypePlugin;
3
+ export default _default;
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import { css } from "emotion";
3
+ import { Image } from "@webiny/app/components";
4
+ import EditAction from "./EditAction";
5
+ import { FileManagerFileTypePlugin } from "../../FileManagerFileTypePlugin";
6
+ var styles = /*#__PURE__*/css({
7
+ maxHeight: 200,
8
+ maxWidth: 200,
9
+ width: "auto",
10
+ position: "absolute",
11
+ top: "50%",
12
+ left: "50%",
13
+ transform: "translateX(-50%) translateY(-50%)"
14
+ }, "label:styles;");
15
+ export default new FileManagerFileTypePlugin({
16
+ types: ["image/*"],
17
+ actions: [EditAction],
18
+ render: function render(_ref) {
19
+ var file = _ref.file;
20
+ return /*#__PURE__*/React.createElement(Image, {
21
+ className: styles,
22
+ src: file.src,
23
+ alt: file.name,
24
+ transform: {
25
+ width: 300
26
+ }
27
+ });
28
+ }
29
+ });
@@ -0,0 +1,17 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
4
+ height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
5
+ <g id="Bounding_Boxes">
6
+ <g id="ui_x5F_spec_x5F_header_copy_3">
7
+ </g>
8
+ <path fill="none" d="M0,0h24v24H0V0z"/>
9
+ </g>
10
+ <g id="Rounded">
11
+ <g id="ui_x5F_spec_x5F_header_copy_7">
12
+ </g>
13
+ <path d="M3,17.46v3.04C3,20.78,3.22,21,3.5,21h3.04c0.13,0,0.26-0.05,0.35-0.15L17.81,9.94l-3.75-3.75L3.15,17.1
14
+ C3.05,17.2,3,17.32,3,17.46z M20.71,7.04c0.39-0.39,0.39-1.02,0-1.41l-2.34-2.34c-0.39-0.39-1.02-0.39-1.41,0l-1.83,1.83l3.75,3.75
15
+ L20.71,7.04z"/>
16
+ </g>
17
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M14.59 2.59c-.38-.38-.89-.59-1.42-.59H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8.83c0-.53-.21-1.04-.59-1.41l-4.82-4.83zM15 18H9c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1zm0-4H9c-.55 0-1-.45-1-1s.45-1 1-1h6c.55 0 1 .45 1 1s-.45 1-1 1zm-2-6V3.5L18.5 9H14c-.55 0-1-.45-1-1z"/></svg>
@@ -0,0 +1,2 @@
1
+ declare const _default: import("../FileManagerFileTypePlugin").FileManagerFileTypePlugin[];
2
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import fileDefault from "./fileDefault";
2
+ import fileImage from "./fileImage";
3
+ export default [fileDefault, fileImage];
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const SearchBarContainer: () => JSX.Element;
3
+ export default SearchBarContainer;
@@ -0,0 +1,241 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _createSuper from "@babel/runtime/helpers/createSuper";
7
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
+ import * as React from "react";
9
+ import { set } from "dot-prop-immutable";
10
+ import { useRouter } from "@webiny/react-router";
11
+ import Downshift from "downshift";
12
+ import { plugins } from "@webiny/plugins";
13
+ import classnames from "classnames";
14
+ import { Hotkeys } from "react-hotkeyz"; // UI components
15
+
16
+ import { Icon } from "@webiny/ui/Icon";
17
+ import { Elevation } from "@webiny/ui/Elevation";
18
+ import SearchBarDropdown from "./SearchBarDropdown"; // Icons
19
+
20
+ import { ReactComponent as SearchIcon } from "@svgr/webpack!./icons/round-search-24px.svg"; // Local components
21
+
22
+ import { SearchBarWrapper, SearchBarInputWrapper, SearchShortcut, searchBarInput, icon, searchWrapper } from "./styled";
23
+
24
+ var SearchBar = /*#__PURE__*/function (_React$Component) {
25
+ _inherits(SearchBar, _React$Component);
26
+
27
+ var _super = _createSuper(SearchBar);
28
+
29
+ /**
30
+ * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.
31
+ */
32
+
33
+ /**
34
+ * At some point we must programmatically focus the input.
35
+ */
36
+
37
+ /**
38
+ * Let's check if current route is defined in one of the registered plugins.
39
+ * If so, then check current route query for search term and set it as default value of search input.
40
+ * @param props
41
+ */
42
+ function SearchBar(props) {
43
+ var _this;
44
+
45
+ _classCallCheck(this, SearchBar);
46
+
47
+ _this = _super.call(this, props);
48
+
49
+ _defineProperty(_assertThisInitialized(_this), "state", {
50
+ active: false,
51
+ searchTerm: {
52
+ previous: "",
53
+ current: ""
54
+ },
55
+ plugins: {
56
+ // List of all registered "admin-global-search" plugins.
57
+ get list() {
58
+ return plugins.byType("admin-global-search");
59
+ },
60
+
61
+ hotKeys: plugins.byType("admin-global-search-prevent-hotkey"),
62
+ // Current plugin - set by examining current route and its query params (on construct).
63
+ current: undefined
64
+ }
65
+ });
66
+
67
+ _defineProperty(_assertThisInitialized(_this), "downshift", /*#__PURE__*/React.createRef());
68
+
69
+ _defineProperty(_assertThisInitialized(_this), "input", /*#__PURE__*/React.createRef());
70
+
71
+ _defineProperty(_assertThisInitialized(_this), "handleOpenHotkey", function (e) {
72
+ for (var i = 0; i < _this.state.plugins.hotKeys.length; i++) {
73
+ var hotKey = _this.state.plugins.hotKeys[i];
74
+
75
+ if (hotKey.preventOpen(e)) {
76
+ return;
77
+ }
78
+ }
79
+
80
+ e.preventDefault();
81
+
82
+ _this.input.current.focus();
83
+ });
84
+
85
+ _defineProperty(_assertThisInitialized(_this), "submitSearchTerm", function (plugin) {
86
+ _this.setState(function (state) {
87
+ var newState = set(state, "searchTerm.previous", state.searchTerm.current);
88
+ return set(newState, "plugins.current", plugin);
89
+ }, function () {
90
+ var query = new URLSearchParams();
91
+
92
+ if (_this.state.searchTerm.current) {
93
+ // If "search" key in the plugin was defined, it means SearchInput values were set. Otherwise,
94
+ // we need to send the plain string into the "search" query param. This behavior was needed
95
+ // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.
96
+ if (plugin.search) {
97
+ query.set("search", JSON.stringify(_objectSpread({
98
+ query: _this.state.searchTerm.current
99
+ }, plugin.search)));
100
+ } else {
101
+ query.set("search", _this.state.searchTerm.current);
102
+ }
103
+ }
104
+
105
+ _this.props.history.push({
106
+ pathname: plugin.route,
107
+ search: query.toString()
108
+ });
109
+ });
110
+ });
111
+
112
+ _defineProperty(_assertThisInitialized(_this), "cancelSearchTerm", function () {
113
+ _this.setState(function (state) {
114
+ state.searchTerm.current = state.searchTerm.previous;
115
+ return state;
116
+ });
117
+ });
118
+
119
+ _this.state.plugins.current = _this.state.plugins.list.find(function (p) {
120
+ return p.route === props.location.pathname;
121
+ });
122
+
123
+ if (_this.state.plugins.current) {
124
+ var search;
125
+ var query = new URLSearchParams(props.location.search);
126
+
127
+ try {
128
+ search = JSON.parse(query.get("search") || "").query;
129
+ } catch (e) {
130
+ search = query.get("search");
131
+ }
132
+
133
+ _this.state.searchTerm.current = search || "";
134
+ _this.state.searchTerm.previous = _this.state.searchTerm.current;
135
+ }
136
+
137
+ return _this;
138
+ }
139
+
140
+ _createClass(SearchBar, [{
141
+ key: "render",
142
+ value: function render() {
143
+ var _this2 = this;
144
+
145
+ return /*#__PURE__*/React.createElement(Downshift, {
146
+ ref: this.downshift,
147
+ itemToString: function itemToString(item) {
148
+ return item && item.label;
149
+ }
150
+ }, function (downshiftProps) {
151
+ var isOpen = downshiftProps.isOpen,
152
+ openMenu = downshiftProps.openMenu,
153
+ closeMenu = downshiftProps.closeMenu,
154
+ getInputProps = downshiftProps.getInputProps;
155
+ return /*#__PURE__*/React.createElement("div", {
156
+ style: {
157
+ width: "100%"
158
+ }
159
+ }, /*#__PURE__*/React.createElement(Hotkeys, {
160
+ zIndex: 10,
161
+ keys: {
162
+ // @ts-ignore
163
+ esc: function esc() {
164
+ return document.activeElement.blur();
165
+ },
166
+ "/": _this2.handleOpenHotkey
167
+ }
168
+ }), /*#__PURE__*/React.createElement(Hotkeys, {
169
+ zIndex: 11,
170
+ disabled: !isOpen,
171
+ keys: {
172
+ esc: function esc() {
173
+ _this2.cancelSearchTerm();
174
+
175
+ closeMenu();
176
+ },
177
+ enter: function enter() {
178
+ return setTimeout(function () {
179
+ var selectedItem = _this2.downshift.current.state.selectedItem;
180
+
181
+ if (selectedItem) {
182
+ closeMenu();
183
+
184
+ _this2.submitSearchTerm(selectedItem);
185
+ }
186
+ });
187
+ }
188
+ }
189
+ }), /*#__PURE__*/React.createElement(Elevation, {
190
+ className: classnames(searchWrapper, {
191
+ active: _this2.state.active
192
+ }),
193
+ z: 0
194
+ }, /*#__PURE__*/React.createElement(SearchBarWrapper, null, /*#__PURE__*/React.createElement(SearchBarInputWrapper, null, /*#__PURE__*/React.createElement(Icon, {
195
+ className: icon,
196
+ icon: /*#__PURE__*/React.createElement(SearchIcon, null)
197
+ }), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", getInputProps({
198
+ placeholder: "Search...",
199
+ className: classnames("mdc-text-field__input", searchBarInput),
200
+ ref: _this2.input,
201
+ value: _this2.state.searchTerm.current,
202
+ // @ts-ignore
203
+ onClick: openMenu,
204
+ onBlur: function onBlur() {
205
+ _this2.cancelSearchTerm();
206
+
207
+ _this2.setState({
208
+ active: false
209
+ });
210
+ },
211
+ onFocus: function onFocus() {
212
+ _this2.setState({
213
+ active: true
214
+ });
215
+
216
+ openMenu();
217
+ },
218
+ onChange: function onChange(e) {
219
+ var value = e.target.value || "";
220
+
221
+ _this2.setState(function (state) {
222
+ state.searchTerm.current = value;
223
+ return state;
224
+ });
225
+ }
226
+ }))), /*#__PURE__*/React.createElement(SearchShortcut, null, "/"))), isOpen && /*#__PURE__*/React.createElement(SearchBarDropdown, {
227
+ context: _this2
228
+ })));
229
+ });
230
+ }
231
+ }]);
232
+
233
+ return SearchBar;
234
+ }(React.Component);
235
+
236
+ var SearchBarContainer = function SearchBarContainer() {
237
+ var routerProps = useRouter();
238
+ return /*#__PURE__*/React.createElement(SearchBar, routerProps);
239
+ };
240
+
241
+ export default SearchBarContainer;
@@ -0,0 +1,5 @@
1
+ import * as React from "react";
2
+ export default class SearchBarDropdown extends React.Component<any> {
3
+ componentDidMount(): void;
4
+ render(): JSX.Element;
5
+ }
@@ -0,0 +1,82 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/createSuper";
5
+ import * as React from "react";
6
+ import classnames from "classnames";
7
+ import { List, ListItem, ListItemGraphic, ListItemText, ListItemMeta } from "@webiny/ui/List";
8
+ import { searchBarDropdown, iconSearchType } from "./styled";
9
+ import { Elevation } from "@webiny/ui/Elevation";
10
+ import { Icon } from "@webiny/ui/Icon";
11
+ import { ReactComponent as SearchIcon } from "@svgr/webpack!./icons/round-search-24px.svg";
12
+
13
+ var SearchBarDropdown = /*#__PURE__*/function (_React$Component) {
14
+ _inherits(SearchBarDropdown, _React$Component);
15
+
16
+ var _super = _createSuper(SearchBarDropdown);
17
+
18
+ function SearchBarDropdown() {
19
+ _classCallCheck(this, SearchBarDropdown);
20
+
21
+ return _super.apply(this, arguments);
22
+ }
23
+
24
+ _createClass(SearchBarDropdown, [{
25
+ key: "componentDidMount",
26
+ value: function componentDidMount() {
27
+ var _this$props$context = this.props.context,
28
+ downshift = _this$props$context.downshift.current,
29
+ plugins = _this$props$context.state.plugins;
30
+ downshift.selectItem(plugins.current);
31
+ downshift.setHighlightedIndex(plugins.list.indexOf(plugins.current));
32
+ downshift.openMenu();
33
+ }
34
+ }, {
35
+ key: "render",
36
+ value: function render() {
37
+ var _this$props$context2 = this.props.context,
38
+ downshift = _this$props$context2.downshift.current,
39
+ submitSearchTerm = _this$props$context2.submitSearchTerm,
40
+ _this$props$context2$ = _this$props$context2.state,
41
+ plugins = _this$props$context2$.plugins,
42
+ searchTerm = _this$props$context2$.searchTerm;
43
+ var getMenuProps = downshift.getMenuProps,
44
+ getItemProps = downshift.getItemProps,
45
+ _downshift$state = downshift.state,
46
+ selectedItem = _downshift$state.selectedItem,
47
+ highlightedIndex = _downshift$state.highlightedIndex;
48
+ return /*#__PURE__*/React.createElement(Elevation, {
49
+ z: 2,
50
+ className: searchBarDropdown
51
+ }, /*#__PURE__*/React.createElement(List, getMenuProps(), plugins.list.map(function (item, index) {
52
+ // Base classes.
53
+ var itemClassNames = {
54
+ highlighted: highlightedIndex === index,
55
+ selected: false
56
+ }; // Add "selected" class if the item is selected.
57
+
58
+ if (selectedItem && selectedItem === item) {
59
+ itemClassNames.selected = true;
60
+ }
61
+
62
+ return /*#__PURE__*/React.createElement(ListItem, Object.assign({
63
+ key: item.route
64
+ }, getItemProps({
65
+ index: index,
66
+ item: item,
67
+ className: classnames(itemClassNames),
68
+ onClick: function onClick() {
69
+ return submitSearchTerm(item);
70
+ }
71
+ })), /*#__PURE__*/React.createElement(ListItemGraphic, null, /*#__PURE__*/React.createElement(Icon, {
72
+ className: iconSearchType,
73
+ icon: /*#__PURE__*/React.createElement(SearchIcon, null)
74
+ })), /*#__PURE__*/React.createElement(ListItemText, null, searchTerm.current || "Search for all..."), /*#__PURE__*/React.createElement(ListItemMeta, null, "in ", item.label));
75
+ })));
76
+ }
77
+ }]);
78
+
79
+ return SearchBarDropdown;
80
+ }(React.Component);
81
+
82
+ export { SearchBarDropdown as default };
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
4
+ height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
5
+ <g id="Header_x2F_BG" display="none">
6
+ <rect x="-358" y="-314" display="inline" fill="#F1F1F2" width="520" height="520"/>
7
+ </g>
8
+ <g id="Bounding_Boxes">
9
+ <g id="ui_x5F_spec_x5F_header_copy_3" display="none">
10
+ </g>
11
+ <path fill="none" d="M0,0h24v24H0V0z"/>
12
+ </g>
13
+ <g id="Rounded">
14
+ <g id="ui_x5F_spec_x5F_header_copy_5" display="none">
15
+ </g>
16
+ <path fill="currentColor" d="M15.5,14h-0.79l-0.28-0.27c1.2-1.4,1.82-3.31,1.48-5.34c-0.47-2.78-2.79-5-5.59-5.34c-4.23-0.52-7.79,3.04-7.27,7.27
17
+ c0.34,2.8,2.56,5.12,5.34,5.59c2.03,0.34,3.94-0.28,5.34-1.48L14,14.71v0.79l4.25,4.25c0.41,0.41,1.08,0.41,1.49,0l0,0
18
+ c0.41-0.41,0.41-1.08,0-1.49L15.5,14z M9.5,14C7.01,14,5,11.99,5,9.5S7.01,5,9.5,5S14,7.01,14,9.5S11.99,14,9.5,14z"/>
19
+ </g>
20
+ </svg>
@@ -0,0 +1,8 @@
1
+ import { UIViewPlugin } from "../../ui/UIView";
2
+ import { AdminView } from "../../ui/views/AdminView";
3
+ export declare const globalSearch: UIViewPlugin<AdminView>;
4
+ export declare const globalSearchHotkey: {
5
+ type: string;
6
+ name: string;
7
+ preventOpen(e: any): boolean;
8
+ };
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ import SearchBar from "./SearchBar";
3
+ import { GenericElement } from "../../ui/elements/GenericElement";
4
+ import { UIViewPlugin } from "../../ui/UIView";
5
+ import { AdminView } from "../../ui/views/AdminView"; // !EXAMPLE!
6
+ // This demonstrates how you can create view-specific plugin classes.
7
+ //
8
+ // class AdminViewPlugin extends ViewPlugin<AdminView> {
9
+ // constructor(apply: ApplyFunction<AdminView>) {
10
+ // super(AdminView, apply);
11
+ // }
12
+ // }
13
+
14
+ export var globalSearch = new UIViewPlugin(AdminView, function (view) {
15
+ view.getHeaderElement().getCenterSection().addElement(new GenericElement("searchBar", function () {
16
+ return /*#__PURE__*/React.createElement(SearchBar, null);
17
+ }));
18
+ });
19
+ export var globalSearchHotkey = {
20
+ type: "admin-global-search-prevent-hotkey",
21
+ name: "admin-global-search-prevent-hotkey-input",
22
+ preventOpen: function preventOpen(e) {
23
+ // Define a list of all node types we want to prevent the event from.
24
+ var ignoreNodes = ["INPUT", "TEXTAREA"];
25
+
26
+ if (ignoreNodes.includes(e.target.nodeName)) {
27
+ return true;
28
+ }
29
+ }
30
+ };