@webiny/app-admin 0.0.0-ee-vpcs.549378cf03

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 (499) 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/base/Admin.d.ts +7 -0
  51. package/base/Admin.js +55 -0
  52. package/base/Admin.js.map +1 -0
  53. package/base/Base.d.ts +2 -0
  54. package/base/Base.js +110 -0
  55. package/base/Base.js.map +1 -0
  56. package/base/plugins/AddGraphQLQuerySelection.d.ts +9 -0
  57. package/base/plugins/AddGraphQLQuerySelection.js +31 -0
  58. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -0
  59. package/base/providers/ApolloProvider.d.ts +10 -0
  60. package/base/providers/ApolloProvider.js +26 -0
  61. package/base/providers/ApolloProvider.js.map +1 -0
  62. package/base/providers/TelemetryProvider.d.ts +2 -0
  63. package/base/providers/TelemetryProvider.js +37 -0
  64. package/base/providers/TelemetryProvider.js.map +1 -0
  65. package/base/providers/UiStateProvider.d.ts +2 -0
  66. package/base/providers/UiStateProvider.js +23 -0
  67. package/base/providers/UiStateProvider.js.map +1 -0
  68. package/base/providers/ViewCompositionProvider.d.ts +17 -0
  69. package/base/providers/ViewCompositionProvider.js +70 -0
  70. package/base/providers/ViewCompositionProvider.js.map +1 -0
  71. package/base/ui/Brand.d.ts +2 -0
  72. package/base/ui/Brand.js +19 -0
  73. package/base/ui/Brand.js.map +1 -0
  74. package/base/ui/CenteredView.d.ts +4 -0
  75. package/base/ui/CenteredView.js +40 -0
  76. package/base/ui/CenteredView.js.map +1 -0
  77. package/base/ui/Dashboard.d.ts +2 -0
  78. package/base/ui/Dashboard.js +19 -0
  79. package/base/ui/Dashboard.js.map +1 -0
  80. package/base/ui/Layout.d.ts +7 -0
  81. package/base/ui/Layout.js +24 -0
  82. package/base/ui/Layout.js.map +1 -0
  83. package/base/ui/LocaleSelector.d.ts +2 -0
  84. package/base/ui/LocaleSelector.js +19 -0
  85. package/base/ui/LocaleSelector.js.map +1 -0
  86. package/base/ui/LoginScreen.d.ts +6 -0
  87. package/base/ui/LoginScreen.js +27 -0
  88. package/base/ui/LoginScreen.js.map +1 -0
  89. package/base/ui/Logo.d.ts +8 -0
  90. package/base/ui/Logo.js +36 -0
  91. package/base/ui/Logo.js.map +1 -0
  92. package/base/ui/Menu.d.ts +31 -0
  93. package/base/ui/Menu.js +166 -0
  94. package/base/ui/Menu.js.map +1 -0
  95. package/base/ui/Navigation.d.ts +24 -0
  96. package/base/ui/Navigation.js +184 -0
  97. package/base/ui/Navigation.js.map +1 -0
  98. package/base/ui/NotFound.d.ts +2 -0
  99. package/base/ui/NotFound.js +19 -0
  100. package/base/ui/NotFound.js.map +1 -0
  101. package/base/ui/Search.d.ts +19 -0
  102. package/base/ui/Search.js +81 -0
  103. package/base/ui/Search.js.map +1 -0
  104. package/base/ui/Tags.d.ts +10 -0
  105. package/base/ui/Tags.js +29 -0
  106. package/base/ui/Tags.js.map +1 -0
  107. package/base/ui/UserMenu.d.ts +30 -0
  108. package/base/ui/UserMenu.js +137 -0
  109. package/base/ui/UserMenu.js.map +1 -0
  110. package/components/AdminLayout.d.ts +6 -0
  111. package/components/AdminLayout.js +22 -0
  112. package/components/AdminLayout.js.map +1 -0
  113. package/components/AppInstaller/AppInstaller.d.ts +7 -0
  114. package/components/AppInstaller/AppInstaller.js +183 -0
  115. package/components/AppInstaller/AppInstaller.js.map +1 -0
  116. package/components/AppInstaller/Sidebar.d.ts +9 -0
  117. package/components/AppInstaller/Sidebar.js +178 -0
  118. package/components/AppInstaller/Sidebar.js.map +1 -0
  119. package/components/AppInstaller/assets/sign-in-divider.svg +19 -0
  120. package/components/AppInstaller/index.d.ts +2 -0
  121. package/components/AppInstaller/index.js +29 -0
  122. package/components/AppInstaller/index.js.map +1 -0
  123. package/components/AppInstaller/styled.d.ts +9 -0
  124. package/components/AppInstaller/styled.js +91 -0
  125. package/components/AppInstaller/styled.js.map +1 -0
  126. package/components/AppInstaller/useInstaller.d.ts +31 -0
  127. package/components/AppInstaller/useInstaller.js +321 -0
  128. package/components/AppInstaller/useInstaller.js.map +1 -0
  129. package/components/EmptyView.d.ts +8 -0
  130. package/components/EmptyView.js +70 -0
  131. package/components/EmptyView.js.map +1 -0
  132. package/components/FileManager/BottomInfoBar/SupportedFileTypes.d.ts +6 -0
  133. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +55 -0
  134. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -0
  135. package/components/FileManager/BottomInfoBar/UploadStatus.d.ts +6 -0
  136. package/components/FileManager/BottomInfoBar/UploadStatus.js +60 -0
  137. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -0
  138. package/components/FileManager/BottomInfoBar.d.ts +5 -0
  139. package/components/FileManager/BottomInfoBar.js +60 -0
  140. package/components/FileManager/BottomInfoBar.js.map +1 -0
  141. package/components/FileManager/DropFilesHere.d.ts +10 -0
  142. package/components/FileManager/DropFilesHere.js +76 -0
  143. package/components/FileManager/DropFilesHere.js.map +1 -0
  144. package/components/FileManager/File.d.ts +17 -0
  145. package/components/FileManager/File.js +155 -0
  146. package/components/FileManager/File.js.map +1 -0
  147. package/components/FileManager/FileDetails/Name.d.ts +8 -0
  148. package/components/FileManager/FileDetails/Name.js +138 -0
  149. package/components/FileManager/FileDetails/Name.js.map +1 -0
  150. package/components/FileManager/FileDetails/Tags.d.ts +10 -0
  151. package/components/FileManager/FileDetails/Tags.js +339 -0
  152. package/components/FileManager/FileDetails/Tags.js.map +1 -0
  153. package/components/FileManager/FileDetails.d.ts +24 -0
  154. package/components/FileManager/FileDetails.js +474 -0
  155. package/components/FileManager/FileDetails.js.map +1 -0
  156. package/components/FileManager/FileManagerContext.d.ts +42 -0
  157. package/components/FileManager/FileManagerContext.js +224 -0
  158. package/components/FileManager/FileManagerContext.js.map +1 -0
  159. package/components/FileManager/FileManagerView.d.ts +18 -0
  160. package/components/FileManager/FileManagerView.js +728 -0
  161. package/components/FileManager/FileManagerView.js.map +1 -0
  162. package/components/FileManager/LeftSidebar.d.ts +10 -0
  163. package/components/FileManager/LeftSidebar.js +127 -0
  164. package/components/FileManager/LeftSidebar.js.map +1 -0
  165. package/components/FileManager/NoPermissionView.d.ts +3 -0
  166. package/components/FileManager/NoPermissionView.js +87 -0
  167. package/components/FileManager/NoPermissionView.js.map +1 -0
  168. package/components/FileManager/NoResults.d.ts +3 -0
  169. package/components/FileManager/NoResults.js +28 -0
  170. package/components/FileManager/NoResults.js.map +1 -0
  171. package/components/FileManager/getFileTypePlugin.d.ts +4 -0
  172. package/components/FileManager/getFileTypePlugin.js +57 -0
  173. package/components/FileManager/getFileTypePlugin.js.map +1 -0
  174. package/components/FileManager/getFileUploader.d.ts +3 -0
  175. package/components/FileManager/getFileUploader.js +20 -0
  176. package/components/FileManager/getFileUploader.js.map +1 -0
  177. package/components/FileManager/graphql.d.ts +96 -0
  178. package/components/FileManager/graphql.js +58 -0
  179. package/components/FileManager/graphql.js.map +1 -0
  180. package/components/FileManager/icons/content_copy-black-24px.svg +1 -0
  181. package/components/FileManager/icons/delete.svg +12 -0
  182. package/components/FileManager/icons/privacy_tip-24px.svg +10 -0
  183. package/components/FileManager/icons/round-check_box-24px.svg +4 -0
  184. package/components/FileManager/icons/round-check_box_outline_blank-24px.svg +4 -0
  185. package/components/FileManager/icons/round-cloud_download-24px.svg +4 -0
  186. package/components/FileManager/icons/round-cloud_upload-24px.svg +4 -0
  187. package/components/FileManager/icons/round-description-24px.svg +4 -0
  188. package/components/FileManager/icons/round-edit-24px.svg +4 -0
  189. package/components/FileManager/icons/round-info-24px.svg +4 -0
  190. package/components/FileManager/icons/round-label-24px.svg +4 -0
  191. package/components/FileManager/icons/round-more_vert-24px.svg +4 -0
  192. package/components/FileManager/icons/round-search-24px.svg +20 -0
  193. package/components/FileManager/outputFileSelectionError.d.ts +7 -0
  194. package/components/FileManager/outputFileSelectionError.js +54 -0
  195. package/components/FileManager/outputFileSelectionError.js.map +1 -0
  196. package/components/FileManager/types.d.ts +21 -0
  197. package/components/FileManager/types.js +5 -0
  198. package/components/FileManager/types.js.map +1 -0
  199. package/components/FileManager.d.ts +67 -0
  200. package/components/FileManager.js +144 -0
  201. package/components/FileManager.js.map +1 -0
  202. package/components/FloatingActionButton.d.ts +3 -0
  203. package/components/FloatingActionButton.js +29 -0
  204. package/components/FloatingActionButton.js.map +1 -0
  205. package/components/MultiImageUpload.d.ts +13 -0
  206. package/components/MultiImageUpload.js +43 -0
  207. package/components/MultiImageUpload.js.map +1 -0
  208. package/components/OverlayLayout/OverlayLayout.d.ts +23 -0
  209. package/components/OverlayLayout/OverlayLayout.js +184 -0
  210. package/components/OverlayLayout/OverlayLayout.js.map +1 -0
  211. package/components/OverlayLayout/icons/close.svg +13 -0
  212. package/components/OverlayLayout/icons/navigate_before.svg +16 -0
  213. package/components/OverlayLayout/index.d.ts +1 -0
  214. package/components/OverlayLayout/index.js +18 -0
  215. package/components/OverlayLayout/index.js.map +1 -0
  216. package/components/Permissions/Permissions.d.ts +7 -0
  217. package/components/Permissions/Permissions.js +54 -0
  218. package/components/Permissions/Permissions.js.map +1 -0
  219. package/components/Permissions/StyledComponents.d.ts +8 -0
  220. package/components/Permissions/StyledComponents.js +36 -0
  221. package/components/Permissions/StyledComponents.js.map +1 -0
  222. package/components/Permissions/index.d.ts +2 -0
  223. package/components/Permissions/index.js +30 -0
  224. package/components/Permissions/index.js.map +1 -0
  225. package/components/RichTextEditor/RichTextEditor.d.ts +3 -0
  226. package/components/RichTextEditor/RichTextEditor.js +30 -0
  227. package/components/RichTextEditor/RichTextEditor.js.map +1 -0
  228. package/components/RichTextEditor/index.d.ts +2 -0
  229. package/components/RichTextEditor/index.js +21 -0
  230. package/components/RichTextEditor/index.js.map +1 -0
  231. package/components/RichTextEditor/styles.scss +96 -0
  232. package/components/RichTextEditor/tools/header/index.d.ts +229 -0
  233. package/components/RichTextEditor/tools/header/index.js +731 -0
  234. package/components/RichTextEditor/tools/header/index.js.map +1 -0
  235. package/components/RichTextEditor/tools/header/styles.scss +48 -0
  236. package/components/RichTextEditor/tools/image/index.d.ts +124 -0
  237. package/components/RichTextEditor/tools/image/index.js +265 -0
  238. package/components/RichTextEditor/tools/image/index.js.map +1 -0
  239. package/components/RichTextEditor/tools/image/styles.scss +90 -0
  240. package/components/RichTextEditor/tools/image/svgs.d.ts +6 -0
  241. package/components/RichTextEditor/tools/image/svgs.js +12 -0
  242. package/components/RichTextEditor/tools/image/svgs.js.map +1 -0
  243. package/components/RichTextEditor/tools/image/tunes.d.ts +57 -0
  244. package/components/RichTextEditor/tools/image/tunes.js +146 -0
  245. package/components/RichTextEditor/tools/image/tunes.js.map +1 -0
  246. package/components/RichTextEditor/tools/image/types.d.ts +29 -0
  247. package/components/RichTextEditor/tools/image/types.js +5 -0
  248. package/components/RichTextEditor/tools/image/types.js.map +1 -0
  249. package/components/RichTextEditor/tools/image/ui.d.ts +122 -0
  250. package/components/RichTextEditor/tools/image/ui.js +301 -0
  251. package/components/RichTextEditor/tools/image/ui.js.map +1 -0
  252. package/components/RichTextEditor/tools/paragraph/index.d.ts +209 -0
  253. package/components/RichTextEditor/tools/paragraph/index.js +514 -0
  254. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -0
  255. package/components/RichTextEditor/tools/paragraph/styles.scss +29 -0
  256. package/components/RichTextEditor/tools/textColor/index.d.ts +64 -0
  257. package/components/RichTextEditor/tools/textColor/index.js +271 -0
  258. package/components/RichTextEditor/tools/textColor/index.js.map +1 -0
  259. package/components/RichTextEditor/tools/textColor/styles.scss +21 -0
  260. package/components/RichTextEditor/tools/utils.d.ts +19 -0
  261. package/components/RichTextEditor/tools/utils.js +33 -0
  262. package/components/RichTextEditor/tools/utils.js.map +1 -0
  263. package/components/Routes.d.ts +6 -0
  264. package/components/Routes.js +49 -0
  265. package/components/Routes.js.map +1 -0
  266. package/components/SearchUI.d.ts +8 -0
  267. package/components/SearchUI.js +73 -0
  268. package/components/SearchUI.js.map +1 -0
  269. package/components/SimpleForm/SimpleForm.d.ts +21 -0
  270. package/components/SimpleForm/SimpleForm.js +106 -0
  271. package/components/SimpleForm/SimpleForm.js.map +1 -0
  272. package/components/SimpleForm/index.d.ts +1 -0
  273. package/components/SimpleForm/index.js +31 -0
  274. package/components/SimpleForm/index.js.map +1 -0
  275. package/components/SimpleUI/InputField.d.ts +10 -0
  276. package/components/SimpleUI/InputField.js +116 -0
  277. package/components/SimpleUI/InputField.js.map +1 -0
  278. package/components/SingleImageUpload.d.ts +55 -0
  279. package/components/SingleImageUpload.js +114 -0
  280. package/components/SingleImageUpload.js.map +1 -0
  281. package/components/SplitView/SplitView.d.ts +11 -0
  282. package/components/SplitView/SplitView.js +95 -0
  283. package/components/SplitView/SplitView.js.map +1 -0
  284. package/components/SplitView/index.d.ts +1 -0
  285. package/components/SplitView/index.js +25 -0
  286. package/components/SplitView/index.js.map +1 -0
  287. package/components/index.d.ts +1 -0
  288. package/components/index.js +13 -0
  289. package/components/index.js.map +1 -0
  290. package/hooks/useConfirmationDialog.d.ts +13 -0
  291. package/hooks/useConfirmationDialog.js +63 -0
  292. package/hooks/useConfirmationDialog.js.map +1 -0
  293. package/hooks/useDialog.d.ts +10 -0
  294. package/hooks/useDialog.js +37 -0
  295. package/hooks/useDialog.js.map +1 -0
  296. package/hooks/useSnackbar.d.ts +7 -0
  297. package/hooks/useSnackbar.js +38 -0
  298. package/hooks/useSnackbar.js.map +1 -0
  299. package/index.d.ts +35 -0
  300. package/index.js +373 -0
  301. package/index.js.map +1 -0
  302. package/package.json +102 -0
  303. package/plugins/FileManagerFileTypePlugin.d.ts +33 -0
  304. package/plugins/FileManagerFileTypePlugin.js +63 -0
  305. package/plugins/FileManagerFileTypePlugin.js.map +1 -0
  306. package/plugins/MenuPlugin.d.ts +37 -0
  307. package/plugins/MenuPlugin.js +58 -0
  308. package/plugins/MenuPlugin.js.map +1 -0
  309. package/plugins/PermissionRendererPlugin.d.ts +22 -0
  310. package/plugins/PermissionRendererPlugin.js +58 -0
  311. package/plugins/PermissionRendererPlugin.js.map +1 -0
  312. package/plugins/fileManager/fileDefault.d.ts +2 -0
  313. package/plugins/fileManager/fileDefault.js +34 -0
  314. package/plugins/fileManager/fileDefault.js.map +1 -0
  315. package/plugins/fileManager/fileImage/DeleteAction.d.ts +7 -0
  316. package/plugins/fileManager/fileImage/DeleteAction.js +83 -0
  317. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -0
  318. package/plugins/fileManager/fileImage/EditAction.d.ts +10 -0
  319. package/plugins/fileManager/fileImage/EditAction.js +179 -0
  320. package/plugins/fileManager/fileImage/EditAction.js.map +1 -0
  321. package/plugins/fileManager/fileImage/index.d.ts +2 -0
  322. package/plugins/fileManager/fileImage/index.js +46 -0
  323. package/plugins/fileManager/fileImage/index.js.map +1 -0
  324. package/plugins/fileManager/icons/edit.svg +17 -0
  325. package/plugins/fileManager/icons/round-description-24px.svg +1 -0
  326. package/plugins/fileManager/index.d.ts +2 -0
  327. package/plugins/fileManager/index.js +21 -0
  328. package/plugins/fileManager/index.js.map +1 -0
  329. package/plugins/globalSearch/SearchBar.d.ts +15 -0
  330. package/plugins/globalSearch/SearchBar.js +273 -0
  331. package/plugins/globalSearch/SearchBar.js.map +1 -0
  332. package/plugins/globalSearch/SearchBarDropdown.d.ts +23 -0
  333. package/plugins/globalSearch/SearchBarDropdown.js +101 -0
  334. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -0
  335. package/plugins/globalSearch/icons/round-search-24px.svg +20 -0
  336. package/plugins/globalSearch/index.d.ts +7 -0
  337. package/plugins/globalSearch/index.js +16 -0
  338. package/plugins/globalSearch/index.js.map +1 -0
  339. package/plugins/globalSearch/styled.d.ts +11 -0
  340. package/plugins/globalSearch/styled.js +135 -0
  341. package/plugins/globalSearch/styled.js.map +1 -0
  342. package/plugins/uiLayoutRenderer/index.d.ts +2 -0
  343. package/plugins/uiLayoutRenderer/index.js +75 -0
  344. package/plugins/uiLayoutRenderer/index.js.map +1 -0
  345. package/styles/material-theme-assignments.scss +350 -0
  346. package/styles/material.scss +43 -0
  347. package/styles/theme.scss +46 -0
  348. package/styles.scss +2 -0
  349. package/types.d.ts +93 -0
  350. package/types.js +5 -0
  351. package/types.js.map +1 -0
  352. package/ui/UIElement.d.ts +2 -0
  353. package/ui/UIElement.js +19 -0
  354. package/ui/UIElement.js.map +1 -0
  355. package/ui/UILayout.d.ts +1 -0
  356. package/ui/UILayout.js +19 -0
  357. package/ui/UILayout.js.map +1 -0
  358. package/ui/UIRenderer.d.ts +2 -0
  359. package/ui/UIRenderer.js +13 -0
  360. package/ui/UIRenderer.js.map +1 -0
  361. package/ui/UIView.d.ts +2 -0
  362. package/ui/UIView.js +25 -0
  363. package/ui/UIView.js.map +1 -0
  364. package/ui/elements/AccordionElement.d.ts +27 -0
  365. package/ui/elements/AccordionElement.js +110 -0
  366. package/ui/elements/AccordionElement.js.map +1 -0
  367. package/ui/elements/ButtonElement.d.ts +24 -0
  368. package/ui/elements/ButtonElement.js +105 -0
  369. package/ui/elements/ButtonElement.js.map +1 -0
  370. package/ui/elements/ButtonGroupElement.d.ts +6 -0
  371. package/ui/elements/ButtonGroupElement.js +67 -0
  372. package/ui/elements/ButtonGroupElement.js.map +1 -0
  373. package/ui/elements/GenericElement.d.ts +1 -0
  374. package/ui/elements/GenericElement.js +18 -0
  375. package/ui/elements/GenericElement.js.map +1 -0
  376. package/ui/elements/LabelElement.d.ts +16 -0
  377. package/ui/elements/LabelElement.js +60 -0
  378. package/ui/elements/LabelElement.js.map +1 -0
  379. package/ui/elements/NavigationMenuElement.d.ts +33 -0
  380. package/ui/elements/NavigationMenuElement.js +177 -0
  381. package/ui/elements/NavigationMenuElement.js.map +1 -0
  382. package/ui/elements/PanelElement.d.ts +3 -0
  383. package/ui/elements/PanelElement.js +33 -0
  384. package/ui/elements/PanelElement.js.map +1 -0
  385. package/ui/elements/PlaceholderElement.d.ts +6 -0
  386. package/ui/elements/PlaceholderElement.js +44 -0
  387. package/ui/elements/PlaceholderElement.js.map +1 -0
  388. package/ui/elements/SmallButtonElement.d.ts +6 -0
  389. package/ui/elements/SmallButtonElement.js +64 -0
  390. package/ui/elements/SmallButtonElement.js.map +1 -0
  391. package/ui/elements/TypographyElement.d.ts +13 -0
  392. package/ui/elements/TypographyElement.js +67 -0
  393. package/ui/elements/TypographyElement.js.map +1 -0
  394. package/ui/elements/ViewElement.d.ts +1 -0
  395. package/ui/elements/ViewElement.js +18 -0
  396. package/ui/elements/ViewElement.js.map +1 -0
  397. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +6 -0
  398. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +60 -0
  399. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -0
  400. package/ui/elements/form/DynamicFieldsetElement.d.ts +43 -0
  401. package/ui/elements/form/DynamicFieldsetElement.js +158 -0
  402. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -0
  403. package/ui/elements/form/FileManagerElement/EmptyStateElement.d.ts +4 -0
  404. package/ui/elements/form/FileManagerElement/EmptyStateElement.js +41 -0
  405. package/ui/elements/form/FileManagerElement/EmptyStateElement.js.map +1 -0
  406. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.d.ts +7 -0
  407. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +95 -0
  408. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -0
  409. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.d.ts +13 -0
  410. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +123 -0
  411. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -0
  412. package/ui/elements/form/FileManagerElement/styled.d.ts +20 -0
  413. package/ui/elements/form/FileManagerElement/styled.js +120 -0
  414. package/ui/elements/form/FileManagerElement/styled.js.map +1 -0
  415. package/ui/elements/form/FileManagerElement.d.ts +24 -0
  416. package/ui/elements/form/FileManagerElement.js +108 -0
  417. package/ui/elements/form/FileManagerElement.js.map +1 -0
  418. package/ui/elements/form/FormElement.d.ts +21 -0
  419. package/ui/elements/form/FormElement.js +66 -0
  420. package/ui/elements/form/FormElement.js.map +1 -0
  421. package/ui/elements/form/FormFieldElement.d.ts +56 -0
  422. package/ui/elements/form/FormFieldElement.js +206 -0
  423. package/ui/elements/form/FormFieldElement.js.map +1 -0
  424. package/ui/elements/form/HiddenElement.d.ts +6 -0
  425. package/ui/elements/form/HiddenElement.js +64 -0
  426. package/ui/elements/form/HiddenElement.js.map +1 -0
  427. package/ui/elements/form/InputElement.d.ts +7 -0
  428. package/ui/elements/form/InputElement.js +72 -0
  429. package/ui/elements/form/InputElement.js.map +1 -0
  430. package/ui/elements/form/PasswordElement.d.ts +6 -0
  431. package/ui/elements/form/PasswordElement.js +66 -0
  432. package/ui/elements/form/PasswordElement.js.map +1 -0
  433. package/ui/elements/form/README.md +2 -0
  434. package/ui/elements/form/SelectElement.d.ts +15 -0
  435. package/ui/elements/form/SelectElement.js +87 -0
  436. package/ui/elements/form/SelectElement.js.map +1 -0
  437. package/ui/elements/form/TextareaElement.d.ts +15 -0
  438. package/ui/elements/form/TextareaElement.js +72 -0
  439. package/ui/elements/form/TextareaElement.js.map +1 -0
  440. package/ui/views/AdminView/ContentElement.d.ts +4 -0
  441. package/ui/views/AdminView/ContentElement.js +78 -0
  442. package/ui/views/AdminView/ContentElement.js.map +1 -0
  443. package/ui/views/AdminView/HeaderElement.d.ts +13 -0
  444. package/ui/views/AdminView/HeaderElement.js +144 -0
  445. package/ui/views/AdminView/HeaderElement.js.map +1 -0
  446. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +6 -0
  447. package/ui/views/AdminView/HeaderSectionCenterElement.js +62 -0
  448. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -0
  449. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +6 -0
  450. package/ui/views/AdminView/HeaderSectionLeftElement.js +62 -0
  451. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -0
  452. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +6 -0
  453. package/ui/views/AdminView/HeaderSectionRightElement.js +62 -0
  454. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -0
  455. package/ui/views/AdminView/components/Dialog.d.ts +2 -0
  456. package/ui/views/AdminView/components/Dialog.js +57 -0
  457. package/ui/views/AdminView/components/Dialog.js.map +1 -0
  458. package/ui/views/AdminView/components/Hamburger.d.ts +3 -0
  459. package/ui/views/AdminView/components/Hamburger.js +39 -0
  460. package/ui/views/AdminView/components/Hamburger.js.map +1 -0
  461. package/ui/views/AdminView/components/Snackbar.d.ts +3 -0
  462. package/ui/views/AdminView/components/Snackbar.js +41 -0
  463. package/ui/views/AdminView/components/Snackbar.js.map +1 -0
  464. package/ui/views/FormView/FormContainerElement.d.ts +12 -0
  465. package/ui/views/FormView/FormContainerElement.js +71 -0
  466. package/ui/views/FormView/FormContainerElement.js.map +1 -0
  467. package/ui/views/FormView/FormContentElement.d.ts +3 -0
  468. package/ui/views/FormView/FormContentElement.js +33 -0
  469. package/ui/views/FormView/FormContentElement.js.map +1 -0
  470. package/ui/views/FormView/FormFooterElement.d.ts +6 -0
  471. package/ui/views/FormView/FormFooterElement.js +68 -0
  472. package/ui/views/FormView/FormFooterElement.js.map +1 -0
  473. package/ui/views/FormView/FormHeaderElement.d.ts +14 -0
  474. package/ui/views/FormView/FormHeaderElement.js +103 -0
  475. package/ui/views/FormView/FormHeaderElement.js.map +1 -0
  476. package/ui/views/FormView.d.ts +40 -0
  477. package/ui/views/FormView.js +208 -0
  478. package/ui/views/FormView.js.map +1 -0
  479. package/ui/views/OverlayView/ContentElement.d.ts +6 -0
  480. package/ui/views/OverlayView/ContentElement.js +61 -0
  481. package/ui/views/OverlayView/ContentElement.js.map +1 -0
  482. package/ui/views/OverlayView/HeaderElement.d.ts +24 -0
  483. package/ui/views/OverlayView/HeaderElement.js +134 -0
  484. package/ui/views/OverlayView/HeaderElement.js.map +1 -0
  485. package/ui/views/OverlayView/HeaderTitleElement.d.ts +13 -0
  486. package/ui/views/OverlayView/HeaderTitleElement.js +73 -0
  487. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -0
  488. package/ui/views/OverlayView/useOverlayView.d.ts +5 -0
  489. package/ui/views/OverlayView/useOverlayView.js +54 -0
  490. package/ui/views/OverlayView/useOverlayView.js.map +1 -0
  491. package/ui/views/OverlayView.d.ts +29 -0
  492. package/ui/views/OverlayView.js +199 -0
  493. package/ui/views/OverlayView.js.map +1 -0
  494. package/ui/views/SplitView/SplitViewPanelElement.d.ts +11 -0
  495. package/ui/views/SplitView/SplitViewPanelElement.js +91 -0
  496. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -0
  497. package/ui/views/SplitView.d.ts +21 -0
  498. package/ui/views/SplitView.js +162 -0
  499. package/ui/views/SplitView.js.map +1 -0
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
18
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
19
+
20
+ var React = _interopRequireWildcard(require("react"));
21
+
22
+ var _reactHotkeyz = require("react-hotkeyz");
23
+
24
+ var _dataurlToBlob = _interopRequireDefault(require("dataurl-to-blob"));
25
+
26
+ var _ImageUpload = require("@webiny/ui/ImageUpload");
27
+
28
+ var _Tooltip = require("@webiny/ui/Tooltip");
29
+
30
+ var _Button = require("@webiny/ui/Button");
31
+
32
+ var _outputFileSelectionError = require("../../../components/FileManager/outputFileSelectionError");
33
+
34
+ var _useSnackbar2 = require("../../../hooks/useSnackbar");
35
+
36
+ var _edit = require("../icons/edit.svg");
37
+
38
+ /**
39
+ * Package react-hotkeyz has no types.
40
+ */
41
+ // @ts-ignore
42
+
43
+ /**
44
+ * Package dataurl-to-blob has no types.
45
+ */
46
+ // @ts-ignore
47
+ function toDataUrl(url) {
48
+ return new Promise(function (resolve) {
49
+ var xhr = new window.XMLHttpRequest();
50
+
51
+ xhr.onload = function () {
52
+ var reader = new window.FileReader();
53
+
54
+ reader.onloadend = function () {
55
+ resolve(reader.result);
56
+ };
57
+
58
+ reader.readAsDataURL(xhr.response);
59
+ };
60
+
61
+ xhr.open("GET", url);
62
+ xhr.responseType = "blob";
63
+ xhr.send();
64
+ });
65
+ }
66
+
67
+ var initialState = {
68
+ showImageEditor: false,
69
+ dataUrl: null
70
+ };
71
+
72
+ var reducer = function reducer(state, action) {
73
+ var next = (0, _objectSpread2.default)({}, state);
74
+
75
+ switch (action.type) {
76
+ case "setDataUrl":
77
+ next.dataUrl = action.dataUrl;
78
+ next.showImageEditor = true;
79
+ break;
80
+
81
+ case "hideImageEditor":
82
+ next.dataUrl = null;
83
+ next.showImageEditor = false;
84
+ break;
85
+ }
86
+
87
+ return next;
88
+ };
89
+
90
+ var EditAction = function EditAction(props) {
91
+ var file = props.file,
92
+ uploadFile = props.uploadFile,
93
+ validateFiles = props.validateFiles,
94
+ canEdit = props.canEdit;
95
+
96
+ var _React$useReducer = React.useReducer(reducer, initialState),
97
+ _React$useReducer2 = (0, _slicedToArray2.default)(_React$useReducer, 2),
98
+ state = _React$useReducer2[0],
99
+ dispatch = _React$useReducer2[1];
100
+
101
+ var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
102
+ showSnackbar = _useSnackbar.showSnackbar; // Render nothing if the user don't have required permission for "edit".
103
+
104
+
105
+ if (!canEdit(file)) {
106
+ return null;
107
+ }
108
+
109
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Tooltip.Tooltip, {
110
+ content: /*#__PURE__*/React.createElement("span", null, "Edit image"),
111
+ placement: "bottom"
112
+ }, /*#__PURE__*/React.createElement(_Button.IconButton, {
113
+ "data-testid": "fm-edit-image-button",
114
+ icon: /*#__PURE__*/React.createElement(_edit.ReactComponent, {
115
+ style: {
116
+ margin: "0 8px 0 0"
117
+ }
118
+ }),
119
+ onClick: /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee() {
120
+ var dataUrl;
121
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
122
+ while (1) {
123
+ switch (_context.prev = _context.next) {
124
+ case 0:
125
+ _context.next = 2;
126
+ return toDataUrl(file.src);
127
+
128
+ case 2:
129
+ dataUrl = _context.sent;
130
+ dispatch({
131
+ type: "setDataUrl",
132
+ dataUrl: dataUrl
133
+ });
134
+
135
+ case 4:
136
+ case "end":
137
+ return _context.stop();
138
+ }
139
+ }
140
+ }, _callee);
141
+ }))
142
+ })), /*#__PURE__*/React.createElement(_reactHotkeyz.Hotkeys, {
143
+ zIndex: 60,
144
+ disabled: !state.dataUrl
145
+ }, /*#__PURE__*/React.createElement(_ImageUpload.ImageEditorDialog, {
146
+ "data-testid": "fm-image-editor-dialog",
147
+ dialogZIndex: 100,
148
+ open: state.showImageEditor,
149
+ src: state.dataUrl,
150
+ onClose: function onClose() {
151
+ return dispatch({
152
+ type: "hideImageEditor"
153
+ });
154
+ },
155
+ onAccept: function onAccept(src) {
156
+ var blob = (0, _dataurlToBlob.default)(src);
157
+ var errors = validateFiles([blob]);
158
+
159
+ if (errors.length) {
160
+ /**
161
+ * TODO @ts-refactor
162
+ * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError
163
+ */
164
+ // @ts-ignore
165
+ showSnackbar((0, _outputFileSelectionError.outputFileSelectionError)(errors));
166
+ } else {
167
+ blob.name = file.name;
168
+ uploadFile(blob);
169
+ }
170
+
171
+ dispatch({
172
+ type: "hideImageEditor"
173
+ });
174
+ }
175
+ })));
176
+ };
177
+
178
+ var _default = EditAction;
179
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["toDataUrl","url","Promise","resolve","xhr","window","XMLHttpRequest","onload","reader","FileReader","onloadend","result","readAsDataURL","response","open","responseType","send","initialState","showImageEditor","dataUrl","reducer","state","action","next","type","EditAction","props","file","uploadFile","validateFiles","canEdit","React","useReducer","dispatch","useSnackbar","showSnackbar","margin","src","blob","dataURLtoBlob","errors","length","outputFileSelectionError","name"],"sources":["EditAction.tsx"],"sourcesContent":["import * as React from \"react\";\n/**\n * Package react-hotkeyz has no types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n/**\n * Package dataurl-to-blob has no types.\n */\n// @ts-ignore\nimport dataURLtoBlob from \"dataurl-to-blob\";\nimport { ImageEditorDialog } from \"@webiny/ui/ImageUpload\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { outputFileSelectionError } from \"~/components/FileManager/outputFileSelectionError\";\nimport { useSnackbar } from \"~/hooks/useSnackbar\";\nimport { ReactComponent as EditIcon } from \"../icons/edit.svg\";\nimport { FileItem } from \"~/components/FileManager/types\";\n\nfunction toDataUrl(url: string): Promise<string> {\n return new Promise((resolve: (value: string) => void) => {\n const xhr = new window.XMLHttpRequest();\n xhr.onload = function () {\n const reader = new window.FileReader();\n reader.onloadend = function () {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(xhr.response);\n };\n xhr.open(\"GET\", url);\n xhr.responseType = \"blob\";\n xhr.send();\n });\n}\ninterface State {\n showImageEditor: boolean;\n dataUrl: string | null;\n}\ninterface Action {\n type: \"setDataUrl\" | \"hideImageEditor\";\n dataUrl?: string | null;\n}\nconst initialState: State = {\n showImageEditor: false,\n dataUrl: null\n};\nconst reducer = (state: State, action: Action): State => {\n const next: State = { ...state };\n\n switch (action.type) {\n case \"setDataUrl\":\n next.dataUrl = action.dataUrl as string;\n next.showImageEditor = true;\n break;\n case \"hideImageEditor\":\n next.dataUrl = null;\n next.showImageEditor = false;\n break;\n }\n\n return next;\n};\n\ninterface EditActionProps {\n file: FileItem;\n uploadFile: (file: FileItem) => void;\n validateFiles: (blobs: any[]) => Error[];\n canEdit: (file: FileItem) => boolean;\n}\n\nconst EditAction: React.FC<EditActionProps> = props => {\n const { file, uploadFile, validateFiles, canEdit } = props;\n const [state, dispatch] = React.useReducer(reducer, initialState);\n const { showSnackbar } = useSnackbar();\n // Render nothing if the user don't have required permission for \"edit\".\n if (!canEdit(file)) {\n return null;\n }\n\n return (\n <>\n <Tooltip content={<span>Edit image</span>} placement={\"bottom\"}>\n <IconButton\n data-testid={\"fm-edit-image-button\"}\n icon={<EditIcon style={{ margin: \"0 8px 0 0\" }} />}\n onClick={async () => {\n const dataUrl = await toDataUrl(file.src);\n dispatch({ type: \"setDataUrl\", dataUrl });\n }}\n />\n </Tooltip>\n <Hotkeys zIndex={60} disabled={!state.dataUrl}>\n <ImageEditorDialog\n data-testid={\"fm-image-editor-dialog\"}\n dialogZIndex={100}\n open={state.showImageEditor}\n src={state.dataUrl as string}\n onClose={() => dispatch({ type: \"hideImageEditor\" })}\n onAccept={src => {\n const blob = dataURLtoBlob(src);\n const errors = validateFiles([blob]);\n\n if (errors.length) {\n /**\n * TODO @ts-refactor\n * Figure out if incoming errors var is wrong or the one in the outputFileSelectionError\n */\n // @ts-ignore\n showSnackbar(outputFileSelectionError(errors));\n } else {\n blob.name = file.name;\n uploadFile(blob);\n }\n\n dispatch({ type: \"hideImageEditor\" });\n }}\n />\n </Hotkeys>\n </>\n );\n};\n\nexport default EditAction;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { FileManagerFileTypePlugin } from "../../FileManagerFileTypePlugin";
2
+ export declare const imageFileTypePlugin: FileManagerFileTypePlugin;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.imageFileTypePlugin = void 0;
11
+
12
+ var React = _interopRequireWildcard(require("react"));
13
+
14
+ var _emotion = require("emotion");
15
+
16
+ var _components = require("@webiny/app/components");
17
+
18
+ var _EditAction = _interopRequireDefault(require("./EditAction"));
19
+
20
+ var _FileManagerFileTypePlugin = require("../../FileManagerFileTypePlugin");
21
+
22
+ var styles = /*#__PURE__*/(0, _emotion.css)({
23
+ maxHeight: 200,
24
+ maxWidth: 200,
25
+ width: "auto",
26
+ position: "absolute",
27
+ top: "50%",
28
+ left: "50%",
29
+ transform: "translateX(-50%) translateY(-50%)"
30
+ }, "label:styles;");
31
+ var imageFileTypePlugin = new _FileManagerFileTypePlugin.FileManagerFileTypePlugin({
32
+ types: ["image/*"],
33
+ actions: [_EditAction.default],
34
+ render: function render(_ref) {
35
+ var file = _ref.file;
36
+ return /*#__PURE__*/React.createElement(_components.Image, {
37
+ className: styles,
38
+ src: file.src,
39
+ alt: file.name,
40
+ transform: {
41
+ width: 300
42
+ }
43
+ });
44
+ }
45
+ });
46
+ exports.imageFileTypePlugin = imageFileTypePlugin;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["styles","css","maxHeight","maxWidth","width","position","top","left","transform","imageFileTypePlugin","FileManagerFileTypePlugin","types","actions","EditAction","render","file","src","name"],"sources":["index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { css } from \"emotion\";\nimport { Image } from \"@webiny/app/components\";\n\nimport EditAction from \"./EditAction\";\nimport { FileManagerFileTypePlugin } from \"~/plugins/FileManagerFileTypePlugin\";\n\nconst styles = css({\n maxHeight: 200,\n maxWidth: 200,\n width: \"auto\",\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translateX(-50%) translateY(-50%)\"\n});\n\nexport const imageFileTypePlugin = new FileManagerFileTypePlugin({\n types: [\"image/*\"],\n actions: [EditAction],\n render({ file }) {\n return (\n <Image className={styles} src={file.src} alt={file.name} transform={{ width: 300 }} />\n );\n }\n});\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AAEA,IAAMA,MAAM,gBAAG,IAAAC,YAAA,EAAI;EACfC,SAAS,EAAE,GADI;EAEfC,QAAQ,EAAE,GAFK;EAGfC,KAAK,EAAE,MAHQ;EAIfC,QAAQ,EAAE,UAJK;EAKfC,GAAG,EAAE,KALU;EAMfC,IAAI,EAAE,KANS;EAOfC,SAAS,EAAE;AAPI,CAAJ,kBAAf;AAUO,IAAMC,mBAAmB,GAAG,IAAIC,oDAAJ,CAA8B;EAC7DC,KAAK,EAAE,CAAC,SAAD,CADsD;EAE7DC,OAAO,EAAE,CAACC,mBAAD,CAFoD;EAG7DC,MAH6D,wBAG5C;IAAA,IAARC,IAAQ,QAARA,IAAQ;IACb,oBACI,oBAAC,iBAAD;MAAO,SAAS,EAAEf,MAAlB;MAA0B,GAAG,EAAEe,IAAI,CAACC,GAApC;MAAyC,GAAG,EAAED,IAAI,CAACE,IAAnD;MAAyD,SAAS,EAAE;QAAEb,KAAK,EAAE;MAAT;IAApE,EADJ;EAGH;AAP4D,CAA9B,CAA5B"}
@@ -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
+ export { defaultFileTypePlugin } from "./fileDefault";
2
+ export { imageFileTypePlugin } from "./fileImage";
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "defaultFileTypePlugin", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _fileDefault.defaultFileTypePlugin;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "imageFileTypePlugin", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _fileImage.imageFileTypePlugin;
16
+ }
17
+ });
18
+
19
+ var _fileDefault = require("./fileDefault");
20
+
21
+ var _fileImage = require("./fileImage");
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { defaultFileTypePlugin } from \"./fileDefault\";\nexport { imageFileTypePlugin } from \"./fileImage\";\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;;AACA"}
@@ -0,0 +1,15 @@
1
+ import { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from "../../types";
2
+ export interface SearchBarState {
3
+ active: boolean;
4
+ searchTerm: {
5
+ previous: string;
6
+ current: string;
7
+ };
8
+ plugins: {
9
+ list: ReadonlyArray<AdminGlobalSearchPlugin>;
10
+ hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;
11
+ current?: AdminGlobalSearchPlugin;
12
+ };
13
+ }
14
+ declare const _default: import("../../index").ComposableFC<{}>;
15
+ export default _default;
@@ -0,0 +1,273 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var React = _interopRequireWildcard(require("react"));
27
+
28
+ var _dotPropImmutable = require("dot-prop-immutable");
29
+
30
+ var _reactRouter = require("@webiny/react-router");
31
+
32
+ var _downshift = _interopRequireDefault(require("downshift"));
33
+
34
+ var _plugins = require("@webiny/plugins");
35
+
36
+ var _classnames = _interopRequireDefault(require("classnames"));
37
+
38
+ var _reactHotkeyz = require("react-hotkeyz");
39
+
40
+ var _Icon = require("@webiny/ui/Icon");
41
+
42
+ var _Elevation = require("@webiny/ui/Elevation");
43
+
44
+ var _SearchBarDropdown = _interopRequireDefault(require("./SearchBarDropdown"));
45
+
46
+ var _roundSearch24px = require("./icons/round-search-24px.svg");
47
+
48
+ var _styled = require("./styled");
49
+
50
+ var _ = require("../..");
51
+
52
+ /**
53
+ * Package react-hotkeyz does not have types.
54
+ */
55
+ // @ts-ignore
56
+ // UI components
57
+ // Icons
58
+ // Local components
59
+ var SearchBar = /*#__PURE__*/function (_React$Component) {
60
+ (0, _inherits2.default)(SearchBar, _React$Component);
61
+
62
+ var _super = (0, _createSuper2.default)(SearchBar);
63
+
64
+ /**
65
+ * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.
66
+ */
67
+
68
+ /**
69
+ * At some point we must programmatically focus the input.
70
+ */
71
+
72
+ /**
73
+ * Let's check if current route is defined in one of the registered plugins.
74
+ * If so, then check current route query for search term and set it as default value of search input.
75
+ * @param props
76
+ */
77
+ function SearchBar(props) {
78
+ var _this;
79
+
80
+ (0, _classCallCheck2.default)(this, SearchBar);
81
+ _this = _super.call(this, props);
82
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
83
+ active: false,
84
+ searchTerm: {
85
+ previous: "",
86
+ current: ""
87
+ },
88
+ plugins: {
89
+ // List of all registered "admin-global-search" plugins.
90
+ get list() {
91
+ return _plugins.plugins.byType("admin-global-search");
92
+ },
93
+
94
+ hotKeys: _plugins.plugins.byType("admin-global-search-prevent-hotkey"),
95
+ // Current plugin - set by examining current route and its query params (on construct).
96
+ current: undefined
97
+ }
98
+ });
99
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "downshift", /*#__PURE__*/React.createRef());
100
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "input", /*#__PURE__*/React.createRef());
101
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleOpenHotkey", function (e) {
102
+ for (var i = 0; i < _this.state.plugins.hotKeys.length; i++) {
103
+ var hotKey = _this.state.plugins.hotKeys[i];
104
+
105
+ if (hotKey.preventOpen(e)) {
106
+ return;
107
+ }
108
+ }
109
+
110
+ e.preventDefault();
111
+
112
+ if (!_this.input.current) {
113
+ return;
114
+ }
115
+
116
+ _this.input.current.focus();
117
+ });
118
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "submitSearchTerm", function (plugin) {
119
+ _this.setState(function (state) {
120
+ var newState = (0, _dotPropImmutable.set)(state, "searchTerm.previous", state.searchTerm.current);
121
+ return (0, _dotPropImmutable.set)(newState, "plugins.current", plugin);
122
+ }, function () {
123
+ var query = new URLSearchParams();
124
+
125
+ if (_this.state.searchTerm.current) {
126
+ // If "search" key in the plugin was defined, it means SearchInput values were set. Otherwise,
127
+ // we need to send the plain string into the "search" query param. This behavior was needed
128
+ // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.
129
+ if (plugin.search) {
130
+ query.set("search", JSON.stringify((0, _objectSpread2.default)({
131
+ query: _this.state.searchTerm.current
132
+ }, plugin.search)));
133
+ } else {
134
+ query.set("search", _this.state.searchTerm.current);
135
+ }
136
+ }
137
+
138
+ _this.props.history.push({
139
+ pathname: plugin.route,
140
+ search: query.toString()
141
+ });
142
+ });
143
+ });
144
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "cancelSearchTerm", function () {
145
+ _this.setState(function (state) {
146
+ state.searchTerm.current = state.searchTerm.previous;
147
+ return state;
148
+ });
149
+ });
150
+ _this.state.plugins.current = _this.state.plugins.list.find(function (p) {
151
+ return p.route === props.location.pathname;
152
+ });
153
+
154
+ if (_this.state.plugins.current) {
155
+ var search;
156
+ var query = new URLSearchParams(props.location.search);
157
+
158
+ try {
159
+ search = JSON.parse(query.get("search") || "").query;
160
+ } catch (e) {
161
+ search = query.get("search");
162
+ }
163
+
164
+ _this.state.searchTerm.current = search || "";
165
+ _this.state.searchTerm.previous = _this.state.searchTerm.current;
166
+ }
167
+
168
+ return _this;
169
+ }
170
+
171
+ (0, _createClass2.default)(SearchBar, [{
172
+ key: "render",
173
+ value: function render() {
174
+ var _this2 = this;
175
+
176
+ return /*#__PURE__*/React.createElement(_downshift.default, {
177
+ ref: this.downshift,
178
+ itemToString: function itemToString(item) {
179
+ return item && item.label;
180
+ }
181
+ }, function (downshiftProps) {
182
+ var isOpen = downshiftProps.isOpen,
183
+ openMenu = downshiftProps.openMenu,
184
+ closeMenu = downshiftProps.closeMenu,
185
+ getInputProps = downshiftProps.getInputProps;
186
+ return /*#__PURE__*/React.createElement("div", {
187
+ style: {
188
+ width: "100%"
189
+ }
190
+ }, /*#__PURE__*/React.createElement(_reactHotkeyz.Hotkeys, {
191
+ zIndex: 10,
192
+ keys: {
193
+ // @ts-ignore
194
+ esc: function esc() {
195
+ return document.activeElement.blur();
196
+ },
197
+ "/": _this2.handleOpenHotkey
198
+ }
199
+ }), /*#__PURE__*/React.createElement(_reactHotkeyz.Hotkeys, {
200
+ zIndex: 11,
201
+ disabled: !isOpen,
202
+ keys: {
203
+ esc: function esc() {
204
+ _this2.cancelSearchTerm();
205
+
206
+ closeMenu();
207
+ },
208
+ enter: function enter() {
209
+ return setTimeout(function () {
210
+ var selectedItem = _this2.downshift.current.state.selectedItem;
211
+
212
+ if (selectedItem) {
213
+ closeMenu();
214
+
215
+ _this2.submitSearchTerm(selectedItem);
216
+ }
217
+ });
218
+ }
219
+ }
220
+ }), /*#__PURE__*/React.createElement(_Elevation.Elevation, {
221
+ className: (0, _classnames.default)(_styled.searchWrapper, {
222
+ active: _this2.state.active
223
+ }),
224
+ z: 0
225
+ }, /*#__PURE__*/React.createElement(_styled.SearchBarWrapper, null, /*#__PURE__*/React.createElement(_styled.SearchBarInputWrapper, null, /*#__PURE__*/React.createElement(_Icon.Icon, {
226
+ className: _styled.icon,
227
+ icon: /*#__PURE__*/React.createElement(_roundSearch24px.ReactComponent, null)
228
+ }), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", getInputProps({
229
+ placeholder: "Search...",
230
+ className: (0, _classnames.default)("mdc-text-field__input", _styled.searchBarInput),
231
+ ref: _this2.input,
232
+ value: _this2.state.searchTerm.current,
233
+ // @ts-ignore
234
+ onClick: openMenu,
235
+ onBlur: function onBlur() {
236
+ _this2.cancelSearchTerm();
237
+
238
+ _this2.setState({
239
+ active: false
240
+ });
241
+ },
242
+ onFocus: function onFocus() {
243
+ _this2.setState({
244
+ active: true
245
+ });
246
+
247
+ openMenu();
248
+ },
249
+ onChange: function onChange(e) {
250
+ var value = e.target.value || "";
251
+
252
+ _this2.setState(function (state) {
253
+ state.searchTerm.current = value;
254
+ return state;
255
+ });
256
+ }
257
+ }))), /*#__PURE__*/React.createElement(_styled.SearchShortcut, null, "/"))), isOpen && /*#__PURE__*/React.createElement(_SearchBarDropdown.default, {
258
+ context: _this2
259
+ })));
260
+ });
261
+ }
262
+ }]);
263
+ return SearchBar;
264
+ }(React.Component);
265
+
266
+ var SearchBarContainer = function SearchBarContainer() {
267
+ var routerProps = (0, _reactRouter.useRouter)();
268
+ return /*#__PURE__*/React.createElement(SearchBar, routerProps);
269
+ };
270
+
271
+ var _default = (0, _.makeComposable)("SearchBarContainer", SearchBarContainer);
272
+
273
+ exports.default = _default;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["SearchBar","props","active","searchTerm","previous","current","plugins","list","byType","hotKeys","undefined","React","createRef","e","i","state","length","hotKey","preventOpen","preventDefault","input","focus","plugin","setState","newState","set","query","URLSearchParams","search","JSON","stringify","history","push","pathname","route","toString","find","p","location","parse","get","downshift","item","label","downshiftProps","isOpen","openMenu","closeMenu","getInputProps","width","esc","document","activeElement","blur","handleOpenHotkey","cancelSearchTerm","enter","setTimeout","selectedItem","submitSearchTerm","classnames","searchWrapper","icon","placeholder","className","searchBarInput","ref","value","onClick","onBlur","onFocus","onChange","target","Component","SearchBarContainer","routerProps","useRouter","makeComposable"],"sources":["SearchBar.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { useRouter, UseRouter } from \"@webiny/react-router\";\nimport Downshift from \"downshift\";\nimport { plugins } from \"@webiny/plugins\";\nimport { AdminGlobalSearchPlugin, AdminGlobalSearchPreventHotkeyPlugin } from \"~/types\";\nimport classnames from \"classnames\";\n/**\n * Package react-hotkeyz does not have types.\n */\n// @ts-ignore\nimport { Hotkeys } from \"react-hotkeyz\";\n\n// UI components\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport SearchBarDropdown from \"./SearchBarDropdown\";\n\n// Icons\nimport { ReactComponent as SearchIcon } from \"./icons/round-search-24px.svg\";\n\n// Local components\nimport {\n SearchBarWrapper,\n SearchBarInputWrapper,\n SearchShortcut,\n searchBarInput,\n icon,\n searchWrapper\n} from \"./styled\";\nimport { makeComposable } from \"~/index\";\n\ntype SearchBarProps = UseRouter;\n\nexport interface SearchBarState {\n active: boolean;\n searchTerm: { previous: string; current: string };\n plugins: {\n list: ReadonlyArray<AdminGlobalSearchPlugin>;\n hotKeys: ReadonlyArray<AdminGlobalSearchPreventHotkeyPlugin>;\n current?: AdminGlobalSearchPlugin;\n };\n}\n\nclass SearchBar extends React.Component<SearchBarProps, SearchBarState> {\n public override state: SearchBarState = {\n active: false,\n searchTerm: {\n previous: \"\",\n current: \"\"\n },\n plugins: {\n // List of all registered \"admin-global-search\" plugins.\n get list() {\n return plugins.byType<AdminGlobalSearchPlugin>(\"admin-global-search\");\n },\n hotKeys: plugins.byType<AdminGlobalSearchPreventHotkeyPlugin>(\n \"admin-global-search-prevent-hotkey\"\n ),\n // Current plugin - set by examining current route and its query params (on construct).\n current: undefined\n }\n };\n\n /**\n * Helps us trigger some of the downshift's methods (eg. clearSelection) and helps us to avoid adding state.\n */\n public readonly downshift: any = React.createRef();\n\n /**\n * At some point we must programmatically focus the input.\n */\n private readonly input = React.createRef<HTMLInputElement>();\n\n /**\n * Let's check if current route is defined in one of the registered plugins.\n * If so, then check current route query for search term and set it as default value of search input.\n * @param props\n */\n constructor(props: SearchBarProps) {\n super(props);\n this.state.plugins.current = this.state.plugins.list.find(\n p => p.route === props.location.pathname\n );\n\n if (this.state.plugins.current) {\n let search;\n const query = new URLSearchParams(props.location.search);\n try {\n search = JSON.parse(query.get(\"search\") || \"\").query;\n } catch (e) {\n search = query.get(\"search\");\n }\n\n this.state.searchTerm.current = search || \"\";\n this.state.searchTerm.previous = this.state.searchTerm.current;\n }\n }\n\n private readonly handleOpenHotkey = (e: React.KeyboardEvent): void => {\n for (let i = 0; i < this.state.plugins.hotKeys.length; i++) {\n const hotKey = this.state.plugins.hotKeys[i];\n if (hotKey.preventOpen(e)) {\n return;\n }\n }\n\n e.preventDefault();\n if (!this.input.current) {\n return;\n }\n this.input.current.focus();\n };\n\n /**\n * Re-routes to given route (provided by the plugin) with needed search query params.\n * It also manages previous and current search terms and automatically highlighted item in dropdown.\n * @param plugin\n */\n public readonly submitSearchTerm = (plugin: AdminGlobalSearchPlugin): void => {\n this.setState(\n state => {\n const newState = set(state, \"searchTerm.previous\", state.searchTerm.current);\n return set(newState, \"plugins.current\", plugin) as any;\n },\n () => {\n const query = new URLSearchParams();\n\n if (this.state.searchTerm.current) {\n // If \"search\" key in the plugin was defined, it means SearchInput values were set. Otherwise,\n // we need to send the plain string into the \"search\" query param. This behavior was needed\n // eg. for pages, since Page entity doesn't use regular SearchInput type, but plain string.\n if (plugin.search) {\n query.set(\n \"search\",\n JSON.stringify({\n query: this.state.searchTerm.current,\n ...plugin.search\n })\n );\n } else {\n query.set(\"search\", this.state.searchTerm.current);\n }\n }\n\n this.props.history.push({\n pathname: plugin.route,\n search: query.toString()\n });\n }\n );\n };\n\n private readonly cancelSearchTerm = (): void => {\n this.setState(state => {\n state.searchTerm.current = state.searchTerm.previous;\n return state;\n });\n };\n\n public override render() {\n return (\n <Downshift ref={this.downshift} itemToString={item => item && item.label}>\n {downshiftProps => {\n const { isOpen, openMenu, closeMenu, getInputProps } = downshiftProps;\n\n return (\n <div style={{ width: \"100%\" }}>\n <Hotkeys\n zIndex={10}\n keys={{\n // @ts-ignore\n esc: () => document.activeElement.blur(),\n \"/\": this.handleOpenHotkey\n }}\n />\n\n <Hotkeys\n zIndex={11}\n disabled={!isOpen}\n keys={{\n esc: () => {\n this.cancelSearchTerm();\n closeMenu();\n },\n enter: () =>\n setTimeout(() => {\n const { selectedItem } = this.downshift.current.state;\n if (selectedItem) {\n closeMenu();\n this.submitSearchTerm(selectedItem);\n }\n })\n }}\n />\n\n <Elevation\n className={classnames(searchWrapper, { active: this.state.active })}\n z={0}\n >\n <SearchBarWrapper>\n <SearchBarInputWrapper>\n <Icon className={icon} icon={<SearchIcon />} />\n\n <React.Fragment>\n <input\n {...getInputProps({\n placeholder: \"Search...\",\n className: classnames(\n \"mdc-text-field__input\",\n searchBarInput\n ),\n ref: this.input,\n value: this.state.searchTerm.current,\n // @ts-ignore\n onClick: openMenu,\n onBlur: () => {\n this.cancelSearchTerm();\n this.setState({ active: false });\n },\n onFocus: () => {\n this.setState({ active: true });\n openMenu();\n },\n onChange: (\n e: React.ChangeEvent<HTMLInputElement>\n ) => {\n const value = e.target.value || \"\";\n this.setState(state => {\n state.searchTerm.current = value;\n return state;\n });\n }\n })}\n />\n </React.Fragment>\n\n <SearchShortcut>/</SearchShortcut>\n </SearchBarInputWrapper>\n </SearchBarWrapper>\n {isOpen && <SearchBarDropdown context={this} />}\n </Elevation>\n </div>\n );\n }}\n </Downshift>\n );\n }\n}\n\nconst SearchBarContainer: React.FC = () => {\n const routerProps = useRouter();\n\n return <SearchBar {...routerProps} />;\n};\n\nexport default makeComposable(\"SearchBarContainer\", SearchBarContainer);\n"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ import { AdminGlobalSearchPlugin } from "../../types";
3
+ import { Actions as DownshiftActions, DownshiftState, PropGetters } from "downshift";
4
+ import { SearchBarState } from "./SearchBar";
5
+ interface SearchBarDropdownPropsContextDownshiftCurrent extends DownshiftActions<any>, PropGetters<any> {
6
+ state: DownshiftState<any>;
7
+ }
8
+ interface SearchBarDropdownPropsContextDownshift {
9
+ current: SearchBarDropdownPropsContextDownshiftCurrent;
10
+ }
11
+ interface SearchBarDropdownPropsContext {
12
+ downshift: SearchBarDropdownPropsContextDownshift;
13
+ submitSearchTerm: (item: AdminGlobalSearchPlugin) => void;
14
+ state: SearchBarState;
15
+ }
16
+ interface SearchBarDropdownProps {
17
+ context: SearchBarDropdownPropsContext;
18
+ }
19
+ export default class SearchBarDropdown extends React.Component<SearchBarDropdownProps> {
20
+ componentDidMount(): void;
21
+ render(): JSX.Element;
22
+ }
23
+ export {};