@webiny/app-admin 0.0.0-unstable.d65ec29d44 → 0.0.0-unstable.df6d94b531

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 (113) hide show
  1. package/assets/icons/add-18px.svg +1 -1
  2. package/assets/icons/arrow_drop_down-24px.svg +1 -1
  3. package/assets/icons/filter-24px.svg +1 -1
  4. package/assets/icons/highlight-24px.svg +1 -1
  5. package/assets/icons/info.svg +1 -1
  6. package/assets/icons/insert_drive_file-24px.svg +1 -1
  7. package/assets/icons/insert_photo-24px.svg +1 -1
  8. package/assets/icons/label-24px.svg +1 -1
  9. package/assets/icons/round-account_circle-24px.svg +1 -1
  10. package/assets/icons/round-arrow_drop_down-24px.svg +1 -1
  11. package/assets/icons/round-help-24px.svg +1 -1
  12. package/assets/icons/round-settings-24px.svg +1 -1
  13. package/assets/icons/today-24px.svg +1 -1
  14. package/assets/icons/touch_app.svg +1 -1
  15. package/base/Base.js +6 -25
  16. package/base/Base.js.map +1 -1
  17. package/base/plugins/AddGraphQLQuerySelection.js +5 -1
  18. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  19. package/base/ui/FileManager.d.ts +67 -0
  20. package/base/ui/FileManager.js +61 -0
  21. package/base/ui/FileManager.js.map +1 -0
  22. package/components/AppInstaller/AppInstaller.js +2 -34
  23. package/components/AppInstaller/AppInstaller.js.map +1 -1
  24. package/components/AppInstaller/Sidebar.js +2 -12
  25. package/components/AppInstaller/Sidebar.js.map +1 -1
  26. package/components/AppInstaller/styled.d.ts +17 -5
  27. package/components/AppInstaller/useInstaller.d.ts +1 -7
  28. package/components/AppInstaller/useInstaller.js +16 -71
  29. package/components/AppInstaller/useInstaller.js.map +1 -1
  30. package/components/EmptyView.js +1 -1
  31. package/components/EmptyView.js.map +1 -1
  32. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js +14 -0
  33. package/components/FileManager/BottomInfoBar/SupportedFileTypes.js.map +1 -1
  34. package/components/FileManager/BottomInfoBar/UploadStatus.js +9 -0
  35. package/components/FileManager/BottomInfoBar/UploadStatus.js.map +1 -1
  36. package/components/FileManager/BottomInfoBar.js +12 -0
  37. package/components/FileManager/BottomInfoBar.js.map +1 -1
  38. package/components/FileManager/DropFilesHere.js +12 -3
  39. package/components/FileManager/DropFilesHere.js.map +1 -1
  40. package/components/FileManager/File.js +18 -5
  41. package/components/FileManager/File.js.map +1 -1
  42. package/components/FileManager/FileDetails/Name.js +75 -45
  43. package/components/FileManager/FileDetails/Name.js.map +1 -1
  44. package/components/FileManager/FileDetails/Tags.js +138 -85
  45. package/components/FileManager/FileDetails/Tags.js.map +1 -1
  46. package/components/FileManager/FileDetails.js +161 -94
  47. package/components/FileManager/FileDetails.js.map +1 -1
  48. package/components/FileManager/FileManagerContext.js +45 -12
  49. package/components/FileManager/FileManagerContext.js.map +1 -1
  50. package/components/FileManager/FileManagerView.js +295 -185
  51. package/components/FileManager/FileManagerView.js.map +1 -1
  52. package/components/FileManager/LeftSidebar.js +29 -10
  53. package/components/FileManager/LeftSidebar.js.map +1 -1
  54. package/components/FileManager/NoPermissionView.js +13 -0
  55. package/components/FileManager/NoPermissionView.js.map +1 -1
  56. package/components/FileManager/NoResults.js +6 -0
  57. package/components/FileManager/NoResults.js.map +1 -1
  58. package/components/FileManager/getFileTypePlugin.js +15 -9
  59. package/components/FileManager/getFileTypePlugin.js.map +1 -1
  60. package/components/FileManager/getFileUploader.js +5 -0
  61. package/components/FileManager/getFileUploader.js.map +1 -1
  62. package/components/FileManager/graphql.js +14 -3
  63. package/components/FileManager/graphql.js.map +1 -1
  64. package/components/FileManager/outputFileSelectionError.js +14 -0
  65. package/components/FileManager/outputFileSelectionError.js.map +1 -1
  66. package/components/FileManager.js +43 -17
  67. package/components/FileManager.js.map +1 -1
  68. package/components/FloatingActionButton.js +2 -2
  69. package/components/FloatingActionButton.js.map +1 -1
  70. package/components/OverlayLayout/OverlayLayout.js +1 -1
  71. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  72. package/components/SearchUI.js +2 -2
  73. package/components/SearchUI.js.map +1 -1
  74. package/components/SingleImageUpload.d.ts +1 -1
  75. package/components/SingleImageUpload.js +2 -2
  76. package/components/SingleImageUpload.js.map +1 -1
  77. package/components/SplitView/SplitView.js +1 -0
  78. package/components/SplitView/SplitView.js.map +1 -1
  79. package/components/index.d.ts +1 -1
  80. package/components/index.js +1 -1
  81. package/components/index.js.map +1 -1
  82. package/index.d.ts +2 -3
  83. package/index.js +1 -13
  84. package/index.js.map +1 -1
  85. package/package.json +19 -29
  86. package/plugins/FileManagerFileTypePlugin.js +15 -0
  87. package/plugins/FileManagerFileTypePlugin.js.map +1 -1
  88. package/plugins/fileManager/fileDefault.js +6 -0
  89. package/plugins/fileManager/fileDefault.js.map +1 -1
  90. package/plugins/fileManager/fileImage/DeleteAction.js +40 -16
  91. package/plugins/fileManager/fileImage/DeleteAction.js.map +1 -1
  92. package/plugins/fileManager/fileImage/EditAction.js +58 -22
  93. package/plugins/fileManager/fileImage/EditAction.js.map +1 -1
  94. package/plugins/fileManager/fileImage/index.js +8 -0
  95. package/plugins/fileManager/fileImage/index.js.map +1 -1
  96. package/plugins/fileManager/index.js +2 -0
  97. package/plugins/fileManager/index.js.map +1 -1
  98. package/plugins/globalSearch/SearchBar.js +2 -2
  99. package/plugins/globalSearch/SearchBar.js.map +1 -1
  100. package/plugins/globalSearch/SearchBarDropdown.js +2 -2
  101. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  102. package/plugins/globalSearch/styled.d.ts +13 -4
  103. package/types.d.ts +23 -27
  104. package/types.js.map +1 -1
  105. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js +5 -5
  106. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  107. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +1 -1
  108. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  109. package/ui/elements/form/FileManagerElement/styled.d.ts +23 -16
  110. package/ui/views/AdminView/components/Hamburger.js +2 -2
  111. package/ui/views/AdminView/components/Hamburger.js.map +1 -1
  112. package/ui/views/OverlayView/HeaderElement.js +1 -1
  113. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
@@ -1,3 +1,3 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="18px" height="18px">
2
2
  <path d="M0 0h24v24H0V0z" fill="none"/><path d="M18 13h-5v5c0 .55-.45 1-1 1s-1-.45-1-1v-5H6c-.55 0-1-.45-1-1s.45-1 1-1h5V6c0-.55.45-1 1-1s1 .45 1 1v5h5c.55 0 1 .45 1 1s-.45 1-1 1z"/>
3
- </svg>
3
+ </svg>
@@ -1,4 +1,4 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24px" height="24px">
2
2
  <path d="M0 0h24v24H0V0z" fill="none"/>
3
3
  <path d="M8.71 11.71l2.59 2.59c.39.39 1.02.39 1.41 0l2.59-2.59c.63-.63.18-1.71-.71-1.71H9.41c-.89 0-1.33 1.08-.7 1.71z"/>
4
- </svg>
4
+ </svg>
@@ -5,4 +5,4 @@
5
5
  height="24px"
6
6
  >
7
7
  <g><path d="M0,0h24 M24,24H0" fill="none"/><path d="M4.25,5.61C6.57,8.59,10,13,10,13v5c0,1.1,0.9,2,2,2h0c1.1,0,2-0.9,2-2v-5c0,0,3.43-4.41,5.75-7.39 C20.26,4.95,19.79,4,18.95,4H5.04C4.21,4,3.74,4.95,4.25,5.61z"/><path d="M0,0h24v24H0V0z" fill="none"/></g>
8
- </svg>
8
+ </svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24" viewBox="0 0 24 24" width="24"><g><rect fill="none" height="24" width="24"/></g><g><g><g><path d="M6,14l3,3v5h6v-5l3-3V9H6V14z M11,2h2v3h-2V2z M3.5,5.88l1.41-1.41l2.12,2.12L5.62,8L3.5,5.88z M16.96,6.59l2.12-2.12 l1.41,1.41L18.38,8L16.96,6.59z"/></g></g></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24" viewBox="0 0 24 24" width="24"><g><rect fill="none" height="24" width="24"/></g><g><g><g><path d="M6,14l3,3v5h6v-5l3-3V9H6V14z M11,2h2v3h-2V2z M3.5,5.88l1.41-1.41l2.12,2.12L5.62,8L3.5,5.88z M16.96,6.59l2.12-2.12 l1.41,1.41L18.38,8L16.96,6.59z"/></g></g></g></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0z" fill="none"/><path d="M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/></svg>
@@ -1 +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="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/></svg>
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="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/></svg>
@@ -1 +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="M8.71 11.71l2.59 2.59c.39.39 1.02.39 1.41 0l2.59-2.59c.63-.63.18-1.71-.71-1.71H9.41c-.89 0-1.33 1.08-.7 1.71z"/></svg>
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="M8.71 11.71l2.59 2.59c.39.39 1.02.39 1.41 0l2.59-2.59c.63-.63.18-1.71-.71-1.71H9.41c-.89 0-1.33 1.08-.7 1.71z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-4h2v2h-2zm1.61-9.96c-2.06-.3-3.88.97-4.43 2.79-.18.58.26 1.17.87 1.17h.2c.41 0 .74-.29.88-.67.32-.89 1.27-1.5 2.3-1.28.95.2 1.65 1.13 1.57 2.1-.1 1.34-1.62 1.63-2.45 2.88 0 .01-.01.01-.01.02-.01.02-.02.03-.03.05-.09.15-.18.32-.25.5-.01.03-.03.05-.04.08-.01.02-.01.04-.02.07-.12.34-.2.75-.2 1.25h2c0-.42.11-.77.28-1.07.02-.03.03-.06.05-.09.08-.14.18-.27.28-.39.01-.01.02-.03.03-.04.1-.12.21-.23.33-.34.96-.91 2.26-1.65 1.99-3.56-.24-1.74-1.61-3.21-3.35-3.47z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black" width="24px" height="24px"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm-1-4h2v2h-2zm1.61-9.96c-2.06-.3-3.88.97-4.43 2.79-.18.58.26 1.17.87 1.17h.2c.41 0 .74-.29.88-.67.32-.89 1.27-1.5 2.3-1.28.95.2 1.65 1.13 1.57 2.1-.1 1.34-1.62 1.63-2.45 2.88 0 .01-.01.01-.01.02-.01.02-.02.03-.03.05-.09.15-.18.32-.25.5-.01.03-.03.05-.04.08-.01.02-.01.04-.02.07-.12.34-.2.75-.2 1.25h2c0-.42.11-.77.28-1.07.02-.03.03-.06.05-.09.08-.14.18-.27.28-.39.01-.01.02-.03.03-.04.1-.12.21-.23.33-.34.96-.91 2.26-1.65 1.99-3.56-.24-1.74-1.61-3.21-3.35-3.47z"/></svg>
@@ -1,4 +1,4 @@
1
1
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
2
2
  <path fill="none" d="M0 0h24v24H0V0z"/>
3
3
  <path fill="currentColor" d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"/>
4
- </svg>
4
+ </svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"/></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"/></svg>
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24px" height="24px"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M8.79,9.24V5.5c0-1.38,1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5v3.74c1.21-0.81,2-2.18,2-3.74c0-2.49-2.01-4.5-4.5-4.5 s-4.5,2.01-4.5,4.5C6.79,7.06,7.58,8.43,8.79,9.24z M14.29,11.71c-0.28-0.14-0.58-0.21-0.89-0.21h-0.61v-6 c0-0.83-0.67-1.5-1.5-1.5s-1.5,0.67-1.5,1.5v10.74l-3.44-0.72c-0.37-0.08-0.76,0.04-1.03,0.31c-0.43,0.44-0.43,1.14,0,1.58 l4.01,4.01C9.71,21.79,10.22,22,10.75,22h6.1c1,0,1.84-0.73,1.98-1.72l0.63-4.47c0.12-0.85-0.32-1.69-1.09-2.07L14.29,11.71z"/></g></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" width="24px" height="24px"><g><rect fill="none" height="24" width="24"/></g><g><g><path d="M8.79,9.24V5.5c0-1.38,1.12-2.5,2.5-2.5s2.5,1.12,2.5,2.5v3.74c1.21-0.81,2-2.18,2-3.74c0-2.49-2.01-4.5-4.5-4.5 s-4.5,2.01-4.5,4.5C6.79,7.06,7.58,8.43,8.79,9.24z M14.29,11.71c-0.28-0.14-0.58-0.21-0.89-0.21h-0.61v-6 c0-0.83-0.67-1.5-1.5-1.5s-1.5,0.67-1.5,1.5v10.74l-3.44-0.72c-0.37-0.08-0.76,0.04-1.03,0.31c-0.43,0.44-0.43,1.14,0,1.58 l4.01,4.01C9.71,21.79,10.22,22,10.75,22h6.1c1,0,1.84-0.73,1.98-1.72l0.63-4.47c0.12-0.85-0.32-1.69-1.09-2.07L14.29,11.71z"/></g></g></svg>
package/base/Base.js CHANGED
@@ -1,12 +1,10 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.Base = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
10
8
  var _react = _interopRequireWildcard(require("react"));
11
9
  var _app = require("@webiny/app");
12
10
  var _ = require("./..");
@@ -14,41 +12,24 @@ var _plugins = require("@webiny/plugins");
14
12
  var _iconDocumentation = require("../assets/icons/icon-documentation.svg");
15
13
  var _slackLogo = require("../assets/icons/slack-logo.svg");
16
14
  var _githubBrands = require("../assets/icons/github-brands.svg");
17
- var _insert_drive_file24px = require("../assets/icons/insert_drive_file-24px.svg");
18
- var _roundSettings24px = require("../assets/icons/round-settings-24px.svg");
19
- var _components = require("../components");
20
- var _fileManager = require("../plugins/fileManager");
15
+ var _insert_drive_file = require("@material-design-icons/svg/filled/insert_drive_file.svg");
16
+ var _settings = require("@material-design-icons/svg/outlined/settings.svg");
17
+ var _FileManager = require("./ui/FileManager");
21
18
  var _globalSearch = require("../plugins/globalSearch");
22
19
  var _uiLayoutRenderer = require("../plugins/uiLayoutRenderer");
23
- function registerFileTypePlugins() {
24
- // This is an ugly hack, which we will replace when we implement file thumbnail rendering via the Composition API.
25
- var fileTypePlugins = _plugins.plugins.byType(_.FileManagerFileTypePlugin.type);
26
-
27
- // First we need to unregister already registered plugins.
28
- fileTypePlugins.forEach(function (pl) {
29
- return _plugins.plugins.unregister(pl.name);
30
- });
31
-
32
- // Then, we need to register the default plugins first, then register user's plugins again, to generate new names.
33
- _plugins.plugins.register([_fileManager.defaultFileTypePlugin, _fileManager.imageFileTypePlugin].concat((0, _toConsumableArray2.default)(fileTypePlugins.map(function (pl) {
34
- pl.name = undefined;
35
- return pl;
36
- }))));
37
- }
38
20
  var BaseExtension = function BaseExtension() {
39
21
  _plugins.plugins.register([_globalSearch.globalSearchHotkey, _uiLayoutRenderer.uiLayoutPlugin]);
40
- registerFileTypePlugins();
41
22
  return /*#__PURE__*/_react.default.createElement(_app.Plugins, null, /*#__PURE__*/_react.default.createElement(_.AddMenu, {
42
23
  name: "settings",
43
24
  label: "Settings",
44
- icon: /*#__PURE__*/_react.default.createElement(_roundSettings24px.ReactComponent, null),
25
+ icon: /*#__PURE__*/_react.default.createElement(_settings.ReactComponent, null),
45
26
  pin: "last"
46
- }), /*#__PURE__*/_react.default.createElement(_components.FileManager, null, function (_ref) {
27
+ }), /*#__PURE__*/_react.default.createElement(_FileManager.FileManager, null, function (_ref) {
47
28
  var showFileManager = _ref.showFileManager;
48
29
  return /*#__PURE__*/_react.default.createElement(_.AddMenu, {
49
30
  name: "fileManager",
50
31
  label: "File Manager",
51
- icon: /*#__PURE__*/_react.default.createElement(_insert_drive_file24px.ReactComponent, null),
32
+ icon: /*#__PURE__*/_react.default.createElement(_insert_drive_file.ReactComponent, null),
52
33
  tags: ["footer"],
53
34
  onClick: showFileManager,
54
35
  testId: "admin-drawer-footer-menu-file-manager"
package/base/Base.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerFileTypePlugins","fileTypePlugins","plugins","byType","FileManagerFileTypePlugin","type","forEach","pl","unregister","name","register","defaultFileTypePlugin","imageFileTypePlugin","map","undefined","BaseExtension","globalSearchHotkey","uiLayoutPlugin","showFileManager","Base","memo"],"sources":["Base.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { Plugins } from \"@webiny/app\";\nimport { AddMenu, AddRoute, Dashboard, FileManagerFileTypePlugin, Layout, NotFound } from \"~/index\";\nimport { plugins } from \"@webiny/plugins\";\nimport { ReactComponent as DocsIcon } from \"~/assets/icons/icon-documentation.svg\";\nimport { ReactComponent as SlackIcon } from \"~/assets/icons/slack-logo.svg\";\nimport { ReactComponent as GithubIcon } from \"~/assets/icons/github-brands.svg\";\nimport { ReactComponent as FileIcon } from \"~/assets/icons/insert_drive_file-24px.svg\";\nimport { ReactComponent as SettingsIcon } from \"~/assets/icons/round-settings-24px.svg\";\nimport { FileManager } from \"~/components\";\n\nimport { defaultFileTypePlugin, imageFileTypePlugin } from \"~/plugins/fileManager\";\nimport { globalSearchHotkey } from \"~/plugins/globalSearch\";\nimport { uiLayoutPlugin } from \"~/plugins/uiLayoutRenderer\";\n\nfunction registerFileTypePlugins() {\n // This is an ugly hack, which we will replace when we implement file thumbnail rendering via the Composition API.\n const fileTypePlugins = plugins.byType(FileManagerFileTypePlugin.type);\n\n // First we need to unregister already registered plugins.\n fileTypePlugins.forEach(pl => plugins.unregister(pl.name as string));\n\n // Then, we need to register the default plugins first, then register user's plugins again, to generate new names.\n plugins.register([\n defaultFileTypePlugin,\n imageFileTypePlugin,\n ...fileTypePlugins.map(pl => {\n pl.name = undefined;\n return pl;\n })\n ]);\n}\n\nconst BaseExtension: React.FC = () => {\n plugins.register([globalSearchHotkey, uiLayoutPlugin]);\n\n registerFileTypePlugins();\n\n return (\n <Plugins>\n <AddMenu name={\"settings\"} label={\"Settings\"} icon={<SettingsIcon />} pin={\"last\"} />\n <FileManager>\n {({ showFileManager }) => (\n <AddMenu\n name={\"fileManager\"}\n label={\"File Manager\"}\n icon={<FileIcon />}\n tags={[\"footer\"]}\n onClick={showFileManager}\n testId={\"admin-drawer-footer-menu-file-manager\"}\n />\n )}\n </FileManager>\n <AddMenu\n name={\"documentation\"}\n label={\"Documentation\"}\n icon={<DocsIcon />}\n path={\"https://www.webiny.com/docs\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddMenu\n name={\"slack\"}\n label={\"Slack\"}\n icon={<SlackIcon />}\n path={\"https://www.webiny.com/slack/\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddMenu\n name={\"github\"}\n label={\"Github\"}\n icon={<GithubIcon />}\n path={\"https://github.com/webiny/webiny-js\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddRoute path={\"/\"}>\n <Layout title={\"Welcome!\"}>\n <Dashboard />\n </Layout>\n </AddRoute>\n <AddRoute path={\"*\"}>\n <Layout title={\"Not Accessible\"}>\n <NotFound />\n </Layout>\n </AddRoute>\n </Plugins>\n );\n};\n\nexport const Base = memo(BaseExtension);\n"],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA,SAASA,uBAAuB,GAAG;EAC/B;EACA,IAAMC,eAAe,GAAGC,gBAAO,CAACC,MAAM,CAACC,2BAAyB,CAACC,IAAI,CAAC;;EAEtE;EACAJ,eAAe,CAACK,OAAO,CAAC,UAAAC,EAAE;IAAA,OAAIL,gBAAO,CAACM,UAAU,CAACD,EAAE,CAACE,IAAI,CAAW;EAAA,EAAC;;EAEpE;EACAP,gBAAO,CAACQ,QAAQ,EACZC,kCAAqB,EACrBC,gCAAmB,0CAChBX,eAAe,CAACY,GAAG,CAAC,UAAAN,EAAE,EAAI;IACzBA,EAAE,CAACE,IAAI,GAAGK,SAAS;IACnB,OAAOP,EAAE;EACb,CAAC,CAAC,GACJ;AACN;AAEA,IAAMQ,aAAuB,GAAG,SAA1BA,aAAuB,GAAS;EAClCb,gBAAO,CAACQ,QAAQ,CAAC,CAACM,gCAAkB,EAAEC,gCAAc,CAAC,CAAC;EAEtDjB,uBAAuB,EAAE;EAEzB,oBACI,6BAAC,YAAO,qBACJ,6BAAC,SAAO;IAAC,IAAI,EAAE,UAAW;IAAC,KAAK,EAAE,UAAW;IAAC,IAAI,eAAE,6BAAC,iCAAY,OAAI;IAAC,GAAG,EAAE;EAAO,EAAG,eACrF,6BAAC,uBAAW,QACP;IAAA,IAAGkB,eAAe,QAAfA,eAAe;IAAA,oBACf,6BAAC,SAAO;MACJ,IAAI,EAAE,aAAc;MACpB,KAAK,EAAE,cAAe;MACtB,IAAI,eAAE,6BAAC,qCAAQ,OAAI;MACnB,IAAI,EAAE,CAAC,QAAQ,CAAE;MACjB,OAAO,EAAEA,eAAgB;MACzB,MAAM,EAAE;IAAwC,EAClD;EAAA,CACL,CACS,eACd,6BAAC,SAAO;IACJ,IAAI,EAAE,eAAgB;IACtB,KAAK,EAAE,eAAgB;IACvB,IAAI,eAAE,6BAAC,iCAAQ,OAAI;IACnB,IAAI,EAAE,6BAA8B;IACpC,GAAG,EAAE,qBAAsB;IAC3B,MAAM,EAAE,QAAS;IACjB,IAAI,EAAE,CAAC,QAAQ;EAAE,EACnB,eACF,6BAAC,SAAO;IACJ,IAAI,EAAE,OAAQ;IACd,KAAK,EAAE,OAAQ;IACf,IAAI,eAAE,6BAAC,yBAAS,OAAI;IACpB,IAAI,EAAE,+BAAgC;IACtC,GAAG,EAAE,qBAAsB;IAC3B,MAAM,EAAE,QAAS;IACjB,IAAI,EAAE,CAAC,QAAQ;EAAE,EACnB,eACF,6BAAC,SAAO;IACJ,IAAI,EAAE,QAAS;IACf,KAAK,EAAE,QAAS;IAChB,IAAI,eAAE,6BAAC,4BAAU,OAAI;IACrB,IAAI,EAAE,qCAAsC;IAC5C,GAAG,EAAE,qBAAsB;IAC3B,MAAM,EAAE,QAAS;IACjB,IAAI,EAAE,CAAC,QAAQ;EAAE,EACnB,eACF,6BAAC,UAAQ;IAAC,IAAI,EAAE;EAAI,gBAChB,6BAAC,QAAM;IAAC,KAAK,EAAE;EAAW,gBACtB,6BAAC,WAAS,OAAG,CACR,CACF,eACX,6BAAC,UAAQ;IAAC,IAAI,EAAE;EAAI,gBAChB,6BAAC,QAAM;IAAC,KAAK,EAAE;EAAiB,gBAC5B,6BAAC,UAAQ,OAAG,CACP,CACF,CACL;AAElB,CAAC;AAEM,IAAMC,IAAI,gBAAG,IAAAC,WAAI,EAACL,aAAa,CAAC;AAAC"}
1
+ {"version":3,"names":["BaseExtension","plugins","register","globalSearchHotkey","uiLayoutPlugin","showFileManager","Base","memo"],"sources":["Base.tsx"],"sourcesContent":["import React, { memo } from \"react\";\nimport { Plugins } from \"@webiny/app\";\nimport { AddMenu, AddRoute, Dashboard, Layout, NotFound } from \"~/index\";\nimport { plugins } from \"@webiny/plugins\";\nimport { ReactComponent as DocsIcon } from \"~/assets/icons/icon-documentation.svg\";\nimport { ReactComponent as SlackIcon } from \"~/assets/icons/slack-logo.svg\";\nimport { ReactComponent as GithubIcon } from \"~/assets/icons/github-brands.svg\";\nimport { ReactComponent as FileIcon } from \"@material-design-icons/svg/filled/insert_drive_file.svg\";\nimport { ReactComponent as SettingsIcon } from \"@material-design-icons/svg/outlined/settings.svg\";\nimport { FileManager } from \"~/base/ui/FileManager\";\nimport { globalSearchHotkey } from \"~/plugins/globalSearch\";\nimport { uiLayoutPlugin } from \"~/plugins/uiLayoutRenderer\";\n\nconst BaseExtension: React.FC = () => {\n plugins.register([globalSearchHotkey, uiLayoutPlugin]);\n\n return (\n <Plugins>\n <AddMenu name={\"settings\"} label={\"Settings\"} icon={<SettingsIcon />} pin={\"last\"} />\n <FileManager>\n {({ showFileManager }) => (\n <AddMenu\n name={\"fileManager\"}\n label={\"File Manager\"}\n icon={<FileIcon />}\n tags={[\"footer\"]}\n onClick={showFileManager}\n testId={\"admin-drawer-footer-menu-file-manager\"}\n />\n )}\n </FileManager>\n <AddMenu\n name={\"documentation\"}\n label={\"Documentation\"}\n icon={<DocsIcon />}\n path={\"https://www.webiny.com/docs\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddMenu\n name={\"slack\"}\n label={\"Slack\"}\n icon={<SlackIcon />}\n path={\"https://www.webiny.com/slack/\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddMenu\n name={\"github\"}\n label={\"Github\"}\n icon={<GithubIcon />}\n path={\"https://github.com/webiny/webiny-js\"}\n rel={\"noopener noreferrer\"}\n target={\"_blank\"}\n tags={[\"footer\"]}\n />\n <AddRoute path={\"/\"}>\n <Layout title={\"Welcome!\"}>\n <Dashboard />\n </Layout>\n </AddRoute>\n <AddRoute path={\"*\"}>\n <Layout title={\"Not Accessible\"}>\n <NotFound />\n </Layout>\n </AddRoute>\n </Plugins>\n );\n};\n\nexport const Base = memo(BaseExtension);\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,aAAuB,GAAG,SAA1BA,aAAuB,GAAS;EAClCC,gBAAO,CAACC,QAAQ,CAAC,CAACC,gCAAkB,EAAEC,gCAAc,CAAC,CAAC;EAEtD,oBACI,6BAAC,YAAO,qBACJ,6BAAC,SAAO;IAAC,IAAI,EAAE,UAAW;IAAC,KAAK,EAAE,UAAW;IAAC,IAAI,eAAE,6BAAC,wBAAY,OAAI;IAAC,GAAG,EAAE;EAAO,EAAG,eACrF,6BAAC,wBAAW,QACP;IAAA,IAAGC,eAAe,QAAfA,eAAe;IAAA,oBACf,6BAAC,SAAO;MACJ,IAAI,EAAE,aAAc;MACpB,KAAK,EAAE,cAAe;MACtB,IAAI,eAAE,6BAAC,iCAAQ,OAAI;MACnB,IAAI,EAAE,CAAC,QAAQ,CAAE;MACjB,OAAO,EAAEA,eAAgB;MACzB,MAAM,EAAE;IAAwC,EAClD;EAAA,CACL,CACS,eACd,6BAAC,SAAO;IACJ,IAAI,EAAE,eAAgB;IACtB,KAAK,EAAE,eAAgB;IACvB,IAAI,eAAE,6BAAC,iCAAQ,OAAI;IACnB,IAAI,EAAE,6BAA8B;IACpC,GAAG,EAAE,qBAAsB;IAC3B,MAAM,EAAE,QAAS;IACjB,IAAI,EAAE,CAAC,QAAQ;EAAE,EACnB,eACF,6BAAC,SAAO;IACJ,IAAI,EAAE,OAAQ;IACd,KAAK,EAAE,OAAQ;IACf,IAAI,eAAE,6BAAC,yBAAS,OAAI;IACpB,IAAI,EAAE,+BAAgC;IACtC,GAAG,EAAE,qBAAsB;IAC3B,MAAM,EAAE,QAAS;IACjB,IAAI,EAAE,CAAC,QAAQ;EAAE,EACnB,eACF,6BAAC,SAAO;IACJ,IAAI,EAAE,QAAS;IACf,KAAK,EAAE,QAAS;IAChB,IAAI,eAAE,6BAAC,4BAAU,OAAI;IACrB,IAAI,EAAE,qCAAsC;IAC5C,GAAG,EAAE,qBAAsB;IAC3B,MAAM,EAAE,QAAS;IACjB,IAAI,EAAE,CAAC,QAAQ;EAAE,EACnB,eACF,6BAAC,UAAQ;IAAC,IAAI,EAAE;EAAI,gBAChB,6BAAC,QAAM;IAAC,KAAK,EAAE;EAAW,gBACtB,6BAAC,WAAS,OAAG,CACR,CACF,eACX,6BAAC,UAAQ;IAAC,IAAI,EAAE;EAAI,gBAChB,6BAAC,QAAM;IAAC,KAAK,EAAE;EAAiB,gBAC5B,6BAAC,UAAQ,OAAG,CACP,CACF,CACL;AAElB,CAAC;AAEM,IAAMC,IAAI,gBAAG,IAAAC,WAAI,EAACP,aAAa,CAAC;AAAC"}
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.AddGraphQLQuerySelection = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
7
9
  var _react = require("react");
8
10
  var _plugins = require("@webiny/plugins");
9
11
  var _nanoid = require("nanoid");
10
12
  var _AddQuerySelectionPlugin = require("@webiny/app/plugins/AddQuerySelectionPlugin");
11
13
  var AddGraphQLQuerySelection = function AddGraphQLQuerySelection(props) {
14
+ var _useState = (0, _react.useState)("AddGraphQLQuerySelection:".concat(props.operationName, ":").concat((0, _nanoid.nanoid)())),
15
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
16
+ name = _useState2[0];
12
17
  (0, _react.useEffect)(function () {
13
18
  var plugin = new _AddQuerySelectionPlugin.AddQuerySelectionPlugin(props);
14
- var name = (0, _nanoid.nanoid)();
15
19
  plugin.name = name;
16
20
  _plugins.plugins.register(plugin);
17
21
  return function () {
@@ -1 +1 @@
1
- {"version":3,"names":["AddGraphQLQuerySelection","props","useEffect","plugin","AddQuerySelectionPlugin","name","nanoid","plugins","register","unregister"],"sources":["AddGraphQLQuerySelection.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { nanoid } from \"nanoid\";\nimport { AddQuerySelectionPlugin } from \"@webiny/app/plugins/AddQuerySelectionPlugin\";\nimport { DocumentNode } from \"graphql\";\n\ninterface Props {\n operationName: string;\n selectionPath: string;\n addSelection: DocumentNode;\n}\n\nexport const AddGraphQLQuerySelection: React.FC<Props> = props => {\n useEffect(() => {\n const plugin = new AddQuerySelectionPlugin(props);\n\n const name = nanoid();\n plugin.name = name;\n plugins.register(plugin);\n\n return () => {\n plugins.unregister(name);\n };\n }, []);\n\n return null;\n};\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AASO,IAAMA,wBAAyC,GAAG,SAA5CA,wBAAyC,CAAGC,KAAK,EAAI;EAC9D,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAMC,MAAM,GAAG,IAAIC,gDAAuB,CAACH,KAAK,CAAC;IAEjD,IAAMI,IAAI,GAAG,IAAAC,cAAM,GAAE;IACrBH,MAAM,CAACE,IAAI,GAAGA,IAAI;IAClBE,gBAAO,CAACC,QAAQ,CAACL,MAAM,CAAC;IAExB,OAAO,YAAM;MACTI,gBAAO,CAACE,UAAU,CAACJ,IAAI,CAAC;IAC5B,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACf,CAAC;AAAC"}
1
+ {"version":3,"names":["AddGraphQLQuerySelection","props","useState","operationName","nanoid","name","useEffect","plugin","AddQuerySelectionPlugin","plugins","register","unregister"],"sources":["AddGraphQLQuerySelection.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { nanoid } from \"nanoid\";\nimport { AddQuerySelectionPlugin } from \"@webiny/app/plugins/AddQuerySelectionPlugin\";\nimport { DocumentNode } from \"graphql\";\n\ninterface Props {\n operationName: string;\n selectionPath: string;\n addSelection: DocumentNode;\n}\n\nexport const AddGraphQLQuerySelection: React.FC<Props> = props => {\n const [name] = useState(`AddGraphQLQuerySelection:${props.operationName}:${nanoid()}`);\n\n useEffect(() => {\n const plugin = new AddQuerySelectionPlugin(props);\n\n plugin.name = name;\n plugins.register(plugin);\n\n return () => {\n plugins.unregister(name);\n };\n }, []);\n\n return null;\n};\n"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AASO,IAAMA,wBAAyC,GAAG,SAA5CA,wBAAyC,CAAGC,KAAK,EAAI;EAC9D,gBAAe,IAAAC,eAAQ,qCAA6BD,KAAK,CAACE,aAAa,cAAI,IAAAC,cAAM,GAAE,EAAG;IAAA;IAA/EC,IAAI;EAEX,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAMC,MAAM,GAAG,IAAIC,gDAAuB,CAACP,KAAK,CAAC;IAEjDM,MAAM,CAACF,IAAI,GAAGA,IAAI;IAClBI,gBAAO,CAACC,QAAQ,CAACH,MAAM,CAAC;IAExB,OAAO,YAAM;MACTE,gBAAO,CAACE,UAAU,CAACN,IAAI,CAAC;IAC5B,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO,IAAI;AACf,CAAC;AAAC"}
@@ -0,0 +1,67 @@
1
+ import React from "react";
2
+ export interface FileManagerOnChange<T> {
3
+ (value: T): void;
4
+ }
5
+ /**
6
+ * Represents a file object managed by the File Manager.
7
+ */
8
+ export interface FileManagerFileItem {
9
+ id: string;
10
+ src: string;
11
+ meta?: Array<FileManagerFileItemMetaItem>;
12
+ }
13
+ /**
14
+ * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.
15
+ */
16
+ export interface FileManagerFileItemMetaItem {
17
+ key: string;
18
+ value: any;
19
+ }
20
+ export declare type DeprecatedFileManagerRenderPropParams = {
21
+ showFileManager: (onChange?: FileManagerOnChange<FileManagerFileItem | FileManagerFileItem[]>) => void;
22
+ };
23
+ export declare type FileManagerRenderPropParams<TValue> = {
24
+ showFileManager: (onChange?: FileManagerOnChange<TValue>) => void;
25
+ };
26
+ interface SingleFileRenderProp {
27
+ (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;
28
+ }
29
+ interface MultiFileRenderProp {
30
+ (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;
31
+ }
32
+ export declare type MultipleProps = {
33
+ multiple?: never;
34
+ multipleMaxCount?: never;
35
+ multipleMaxSize?: never;
36
+ onChange?: FileManagerOnChange<FileManagerFileItem>;
37
+ render?: SingleFileRenderProp;
38
+ } | {
39
+ multiple: true;
40
+ multipleMaxCount?: number;
41
+ multipleMaxSize?: number | string;
42
+ onChange?: FileManagerOnChange<FileManagerFileItem[]>;
43
+ render?: MultiFileRenderProp;
44
+ };
45
+ export declare type FileManagerProps = {
46
+ accept?: Array<string>;
47
+ images?: boolean;
48
+ maxSize?: number | string;
49
+ /**
50
+ * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.
51
+ */
52
+ onChangePick?: string[];
53
+ onClose?: Function;
54
+ onUploadCompletion?: (files: FileManagerFileItem[]) => void;
55
+ own?: boolean;
56
+ scope?: string;
57
+ tags?: Array<string>;
58
+ /**
59
+ * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.
60
+ */
61
+ children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;
62
+ } & MultipleProps;
63
+ declare type DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;
64
+ export declare type FileManagerRendererProps = DistributiveOmit<FileManagerProps, "render" | "children">;
65
+ export declare const FileManagerRenderer: import("@webiny/react-composition").ComposableFC<FileManagerRendererProps>;
66
+ export declare const FileManager: React.FC<FileManagerProps>;
67
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.FileManagerRenderer = exports.FileManager = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactDom = _interopRequireDefault(require("react-dom"));
13
+ var _reactComposition = require("@webiny/react-composition");
14
+ var _excluded = ["children", "render", "onChange"];
15
+ function getPortalTarget() {
16
+ var target = window.document.getElementById("file-manager-container");
17
+ if (!target) {
18
+ target = document.createElement("div");
19
+ target.setAttribute("id", "file-manager-container");
20
+ document.body && document.body.appendChild(target);
21
+ }
22
+ return target;
23
+ }
24
+
25
+ // This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!
26
+
27
+ var FileManagerRenderer = (0, _reactComposition.makeComposable)("FileManagerRenderer");
28
+ exports.FileManagerRenderer = FileManagerRenderer;
29
+ var FileManager = function FileManager(_ref) {
30
+ var children = _ref.children,
31
+ render = _ref.render,
32
+ onChange = _ref.onChange,
33
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
34
+ var containerRef = (0, _react.useRef)(getPortalTarget());
35
+ var _useState = (0, _react.useState)(false),
36
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
37
+ show = _useState2[0],
38
+ setShow = _useState2[1];
39
+ var onChangeRef = (0, _react.useRef)(onChange);
40
+ (0, _react.useEffect)(function () {
41
+ onChangeRef.current = onChange;
42
+ }, [onChange]);
43
+ var showFileManager = (0, _react.useCallback)(function (onChange) {
44
+ if (typeof onChange === "function") {
45
+ onChangeRef.current = onChange;
46
+ }
47
+ setShow(true);
48
+ }, []);
49
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, show && /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement(FileManagerRenderer, Object.assign({
50
+ onClose: function onClose() {
51
+ return setShow(false);
52
+ },
53
+ onChange: /* TODO: figure out how to create a conditional type based on the value of `rest.multiple` */
54
+ onChangeRef.current
55
+ }, rest)), containerRef.current), children ? children({
56
+ showFileManager: showFileManager
57
+ }) : render ? render({
58
+ showFileManager: showFileManager
59
+ }) : null);
60
+ };
61
+ exports.FileManager = FileManager;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getPortalTarget","target","window","document","getElementById","createElement","setAttribute","body","appendChild","FileManagerRenderer","makeComposable","FileManager","children","render","onChange","rest","containerRef","useRef","useState","show","setShow","onChangeRef","useEffect","current","showFileManager","useCallback","ReactDOM","createPortal"],"sources":["FileManager.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { makeComposable } from \"@webiny/react-composition\";\n\nexport interface FileManagerOnChange<T> {\n (value: T): void;\n}\n\n/**\n * Represents a file object managed by the File Manager.\n */\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\n/**\n * With this we allow developers to add any value to file's meta via component composition, thus the `value: any`.\n */\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport type DeprecatedFileManagerRenderPropParams = {\n showFileManager: (\n onChange?: FileManagerOnChange<FileManagerFileItem | FileManagerFileItem[]>\n ) => void;\n};\n\nexport type FileManagerRenderPropParams<TValue> = {\n showFileManager: (onChange?: FileManagerOnChange<TValue>) => void;\n};\n\ninterface SingleFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem>): React.ReactNode;\n}\n\ninterface MultiFileRenderProp {\n (params: FileManagerRenderPropParams<FileManagerFileItem[]>): React.ReactNode;\n}\n\nexport type MultipleProps =\n | {\n multiple?: never;\n multipleMaxCount?: never;\n multipleMaxSize?: never;\n onChange?: FileManagerOnChange<FileManagerFileItem>;\n render?: SingleFileRenderProp;\n }\n | {\n multiple: true;\n multipleMaxCount?: number;\n multipleMaxSize?: number | string;\n onChange?: FileManagerOnChange<FileManagerFileItem[]>;\n render?: MultiFileRenderProp;\n };\n\nexport type FileManagerProps = {\n accept?: Array<string>;\n images?: boolean;\n maxSize?: number | string;\n /**\n * @deprecated This prop is no longer used. The file structure was reduced to a bare minimum so picking is no longer necessary.\n */\n onChangePick?: string[];\n onClose?: Function;\n onUploadCompletion?: (files: FileManagerFileItem[]) => void;\n own?: boolean;\n scope?: string;\n tags?: Array<string>;\n /**\n * @deprecated This prop is no longer used. Use the `render` prop to get better TS autocomplete.\n */\n children?: (params: DeprecatedFileManagerRenderPropParams) => React.ReactNode;\n} & MultipleProps;\n\nfunction getPortalTarget() {\n let target = window.document.getElementById(\"file-manager-container\");\n if (!target) {\n target = document.createElement(\"div\");\n target.setAttribute(\"id\", \"file-manager-container\");\n document.body && document.body.appendChild(target);\n }\n return target;\n}\n\n// This jewel was taken from https://davidgomes.com/pick-omit-over-union-types-in-typescript/. Massive thanks, David!\ntype DistributiveOmit<T, K extends keyof T> = T extends unknown ? Omit<T, K> : never;\n\nexport type FileManagerRendererProps = DistributiveOmit<FileManagerProps, \"render\" | \"children\">;\n\nexport const FileManagerRenderer = makeComposable<FileManagerRendererProps>(\"FileManagerRenderer\");\n\nexport const FileManager: React.FC<FileManagerProps> = ({\n children,\n render,\n onChange,\n ...rest\n}) => {\n const containerRef = useRef<HTMLElement>(getPortalTarget());\n const [show, setShow] = useState(false);\n const onChangeRef = useRef(onChange);\n\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n const showFileManager = useCallback(onChange => {\n if (typeof onChange === \"function\") {\n onChangeRef.current = onChange;\n }\n setShow(true);\n }, []);\n\n return (\n <>\n {show &&\n ReactDOM.createPortal(\n <FileManagerRenderer\n onClose={() => setShow(false)}\n onChange={\n /* TODO: figure out how to create a conditional type based on the value of `rest.multiple` */\n onChangeRef.current as any\n }\n {...rest}\n />,\n containerRef.current\n )}\n {children ? children({ showFileManager }) : render ? render({ showFileManager }) : null}\n </>\n );\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AAA2D;AA4E3D,SAASA,eAAe,GAAG;EACvB,IAAIC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACC,cAAc,CAAC,wBAAwB,CAAC;EACrE,IAAI,CAACH,MAAM,EAAE;IACTA,MAAM,GAAGE,QAAQ,CAACE,aAAa,CAAC,KAAK,CAAC;IACtCJ,MAAM,CAACK,YAAY,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACnDH,QAAQ,CAACI,IAAI,IAAIJ,QAAQ,CAACI,IAAI,CAACC,WAAW,CAACP,MAAM,CAAC;EACtD;EACA,OAAOA,MAAM;AACjB;;AAEA;;AAKO,IAAMQ,mBAAmB,GAAG,IAAAC,gCAAc,EAA2B,qBAAqB,CAAC;AAAC;AAE5F,IAAMC,WAAuC,GAAG,SAA1CA,WAAuC,OAK9C;EAAA,IAJFC,QAAQ,QAARA,QAAQ;IACRC,MAAM,QAANA,MAAM;IACNC,QAAQ,QAARA,QAAQ;IACLC,IAAI;EAEP,IAAMC,YAAY,GAAG,IAAAC,aAAM,EAAcjB,eAAe,EAAE,CAAC;EAC3D,gBAAwB,IAAAkB,eAAQ,EAAC,KAAK,CAAC;IAAA;IAAhCC,IAAI;IAAEC,OAAO;EACpB,IAAMC,WAAW,GAAG,IAAAJ,aAAM,EAACH,QAAQ,CAAC;EAEpC,IAAAQ,gBAAS,EAAC,YAAM;IACZD,WAAW,CAACE,OAAO,GAAGT,QAAQ;EAClC,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,IAAMU,eAAe,GAAG,IAAAC,kBAAW,EAAC,UAAAX,QAAQ,EAAI;IAC5C,IAAI,OAAOA,QAAQ,KAAK,UAAU,EAAE;MAChCO,WAAW,CAACE,OAAO,GAAGT,QAAQ;IAClC;IACAM,OAAO,CAAC,IAAI,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EAEN,oBACI,4DACKD,IAAI,iBACDO,iBAAQ,CAACC,YAAY,eACjB,6BAAC,mBAAmB;IAChB,OAAO,EAAE;MAAA,OAAMP,OAAO,CAAC,KAAK,CAAC;IAAA,CAAC;IAC9B,QAAQ,EACJ;IACAC,WAAW,CAACE;EACf,GACGR,IAAI,EACV,EACFC,YAAY,CAACO,OAAO,CACvB,EACJX,QAAQ,GAAGA,QAAQ,CAAC;IAAEY,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAGX,MAAM,GAAGA,MAAM,CAAC;IAAEW,eAAe,EAAfA;EAAgB,CAAC,CAAC,GAAG,IAAI,CACxF;AAEX,CAAC;AAAC"}
@@ -14,8 +14,6 @@ var _appSecurity = require("@webiny/app-security");
14
14
  var _Progress = require("@webiny/ui/Progress");
15
15
  var _Button = require("@webiny/ui/Button");
16
16
  var _SplitView = require("../SplitView");
17
- var _Grid = require("@webiny/ui/Grid");
18
- var _Typography = require("@webiny/ui/Typography");
19
17
  var _Elevation = require("@webiny/ui/Elevation");
20
18
  var _useInstaller2 = require("./useInstaller");
21
19
  var _Sidebar = _interopRequireDefault(require("./Sidebar"));
@@ -54,8 +52,7 @@ var AppInstaller = function AppInstaller(_ref) {
54
52
  isFirstInstall = _useInstaller.isFirstInstall,
55
53
  showNextInstaller = _useInstaller.showNextInstaller,
56
54
  showLogin = _useInstaller.showLogin,
57
- onUser = _useInstaller.onUser,
58
- skippingVersions = _useInstaller.skippingVersions;
55
+ onUser = _useInstaller.onUser;
59
56
  (0, _react.useEffect)(function () {
60
57
  if (identity) {
61
58
  onUser();
@@ -99,35 +96,6 @@ var AppInstaller = function AppInstaller(_ref) {
99
96
  onInstalled: showNextInstaller
100
97
  })), installer.secure);
101
98
  }
102
- if (skippingVersions) {
103
- return renderBody( /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
104
- z: 1,
105
- className: _styled.alertClass
106
- }, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
107
- span: 12
108
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
109
- use: "headline4"
110
- }, "Important!")), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
111
- span: 12
112
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
113
- use: "body1",
114
- tag: "div"
115
- }, "We've detected that your current application is running Webiny", " ", /*#__PURE__*/_react.default.createElement("strong", null, "v", skippingVersions.latest), ". However, your API is running ", /*#__PURE__*/_react.default.createElement("strong", null, "v", skippingVersions.current), ". Unfortunately, we can't upgrade your system by skipping versions in between.", /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("br", null), "Here's a list of versions you skipped, that contain upgrades you need to install:", /*#__PURE__*/_react.default.createElement("ul", null, skippingVersions.availableUpgrades.filter(function (v) {
116
- return v !== skippingVersions.latest;
117
- }).map(function (v) {
118
- return /*#__PURE__*/_react.default.createElement("li", {
119
- key: v
120
- }, "v", v);
121
- })), "For instructions on how to upgrade Webiny, please consult our", " ", /*#__PURE__*/_react.default.createElement("a", {
122
- href: "https://docs.webiny.com/docs/how-to-guides/upgrade-webiny",
123
- target: "_blank",
124
- rel: "noreferrer noopener"
125
- }, "Upgrade Webiny"), " ", "guide. Note that some versions may have a dedicated article with upgrade instructions, so look out for those in the upgrade guide.", /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("br", null), "If you run into problems, find us on our", " ", /*#__PURE__*/_react.default.createElement("a", {
126
- href: "https://www.webiny.com/slack",
127
- target: "_blank",
128
- rel: "noreferrer noopener"
129
- }, "Slack community."))))));
130
- }
131
99
  return renderLayout(renderBody( /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
132
100
  z: 1
133
101
  }, /*#__PURE__*/_react.default.createElement(_styled.SuccessDialog, null, /*#__PURE__*/_react.default.createElement("p", null, "You have successfully installed all new applications!"), !isCypressTest && isRootTenant && isFirstInstall ? /*#__PURE__*/_react.default.createElement("iframe", {
@@ -144,6 +112,6 @@ var AppInstaller = function AppInstaller(_ref) {
144
112
  markInstallerAsCompleted();
145
113
  setFinished(true);
146
114
  }
147
- }, isFirstInstall ? "Finish install" : "Finish upgrade")))), true);
115
+ }, "Finish install")))), true);
148
116
  };
149
117
  exports.AppInstaller = AppInstaller;
@@ -1 +1 @@
1
- {"version":3,"names":["AppInstaller","children","tenantId","localStorage","get","lsKey","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","useState","finished","setFinished","useSecurity","identity","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","skippingVersions","useEffect","renderLayout","content","secure","installerSplitView","renderBody","length","render","onInstalled","alertClass","latest","current","availableUpgrades","filter","v","map","opacity"],"sources":["AppInstaller.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen } from \"~/index\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { SplitView, LeftPanel, RightPanel } from \"../SplitView\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nimport {\n Wrapper,\n alertClass,\n InnerContent,\n InstallContent,\n installerSplitView,\n SuccessDialog\n} from \"./styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport const AppInstaller: React.FC = ({ children }) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n const isRootTenant = tenantId === \"root\";\n /*\n * This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress\n * (Cypress doesn't work with cross domains because of security-related implications).\n * @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content\n */\n const isCypressTest = window && window.Cypress;\n\n const markInstallerAsCompleted = () => {\n localStorage.set(lsKey, wbyVersion);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === wbyVersion;\n };\n\n const [finished, setFinished] = useState(false);\n const { identity } = useSecurity();\n const {\n loading,\n installers,\n installer,\n isFirstInstall,\n showNextInstaller,\n showLogin,\n onUser,\n skippingVersions\n } = useInstaller({ isInstalled: isInstallerCompleted() });\n\n useEffect(() => {\n if (identity) {\n onUser();\n }\n }, [identity]);\n\n if (isInstallerCompleted()) {\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n const renderLayout = (content: React.ReactNode, secure = false): React.ReactElement => {\n return (\n <SplitView className={installerSplitView}>\n <LeftPanel span={2}>\n <Sidebar\n allInstallers={installers}\n installer={installer}\n showLogin={showLogin}\n />\n </LeftPanel>\n <RightPanel span={10}>\n {!showLogin && !secure && content}\n {(showLogin || secure) && <LoginScreen>{content}</LoginScreen>}\n </RightPanel>\n </SplitView>\n );\n };\n\n const renderBody = (content: React.ReactNode): React.ReactElement => {\n return (\n <Wrapper>\n <InstallContent>\n <InnerContent>{content}</InnerContent>\n </InstallContent>\n </Wrapper>\n );\n };\n\n // Loading installers data\n if (loading) {\n return <CircularProgress label={\"Checking apps...\"} />;\n }\n\n // This means there are no installers to run or installation was finished\n if (!loading && (installers.length === 0 || finished)) {\n markInstallerAsCompleted();\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n if (installer) {\n return renderLayout(\n renderBody(installer.render({ onInstalled: showNextInstaller })),\n installer.secure\n );\n }\n\n if (skippingVersions) {\n return renderBody(\n <Elevation z={1} className={alertClass}>\n <Grid>\n <Cell span={12}>\n <Typography use={\"headline4\"}>Important!</Typography>\n </Cell>\n <Cell span={12}>\n <Typography use={\"body1\"} tag={\"div\"}>\n We&apos;ve detected that your current application is running Webiny{\" \"}\n <strong>v{skippingVersions.latest}</strong>. However, your API is\n running <strong>v{skippingVersions.current}</strong>. Unfortunately, we\n can&apos;t upgrade your system by skipping versions in between.\n <br />\n <br />\n Here&apos;s a list of versions you skipped, that contain upgrades you\n need to install:\n <ul>\n {skippingVersions.availableUpgrades\n .filter(v => v !== skippingVersions.latest)\n .map(v => (\n <li key={v}>v{v}</li>\n ))}\n </ul>\n For instructions on how to upgrade Webiny, please consult our{\" \"}\n <a\n href={\"https://docs.webiny.com/docs/how-to-guides/upgrade-webiny\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Upgrade Webiny\n </a>{\" \"}\n guide. Note that some versions may have a dedicated article with upgrade\n instructions, so look out for those in the upgrade guide.\n <br />\n <br />\n If you run into problems, find us on our{\" \"}\n <a\n href={\"https://www.webiny.com/slack\"}\n target={\"_blank\"}\n rel={\"noreferrer noopener\"}\n >\n Slack community.\n </a>\n </Typography>\n </Cell>\n </Grid>\n </Elevation>\n );\n }\n\n return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n {!isCypressTest && isRootTenant && isFirstInstall ? (\n <iframe\n height=\"0\"\n width=\"0\"\n frameBorder=\"0\"\n style={{ opacity: \"0\" }}\n src=\"https://www.webiny.com/thank-you/new-install\"\n ></iframe>\n ) : null}\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n {isFirstInstall ? \"Finish install\" : \"Finish upgrade\"}\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["AppInstaller","children","tenantId","localStorage","get","lsKey","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","useState","finished","setFinished","useSecurity","identity","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","useEffect","renderLayout","content","secure","installerSplitView","renderBody","length","render","onInstalled","opacity"],"sources":["AppInstaller.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen } from \"~/index\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\nimport { SplitView, LeftPanel, RightPanel } from \"../SplitView\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { useInstaller } from \"./useInstaller\";\nimport Sidebar from \"./Sidebar\";\n\ndeclare global {\n interface Window {\n Cypress: any;\n }\n}\n\nimport { Wrapper, InnerContent, InstallContent, installerSplitView, SuccessDialog } from \"./styled\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport const AppInstaller: React.FC = ({ children }) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n const lsKey = `webiny_installation_${tenantId}`;\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n const isRootTenant = tenantId === \"root\";\n /*\n * This flag allows us to avoid rendering the <iframe> when the app is tested with Cypress\n * (Cypress doesn't work with cross domains because of security-related implications).\n * @see https://docs.cypress.io/guides/guides/web-security#Insecure-Content\n */\n const isCypressTest = window && window.Cypress;\n\n const markInstallerAsCompleted = () => {\n localStorage.set(lsKey, wbyVersion);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === wbyVersion;\n };\n\n const [finished, setFinished] = useState(false);\n const { identity } = useSecurity();\n const { loading, installers, installer, isFirstInstall, showNextInstaller, showLogin, onUser } =\n useInstaller({ isInstalled: isInstallerCompleted() });\n\n useEffect(() => {\n if (identity) {\n onUser();\n }\n }, [identity]);\n\n if (isInstallerCompleted()) {\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n const renderLayout = (content: React.ReactNode, secure = false): React.ReactElement => {\n return (\n <SplitView className={installerSplitView}>\n <LeftPanel span={2}>\n <Sidebar\n allInstallers={installers}\n installer={installer}\n showLogin={showLogin}\n />\n </LeftPanel>\n <RightPanel span={10}>\n {!showLogin && !secure && content}\n {(showLogin || secure) && <LoginScreen>{content}</LoginScreen>}\n </RightPanel>\n </SplitView>\n );\n };\n\n const renderBody = (content: React.ReactNode): React.ReactElement => {\n return (\n <Wrapper>\n <InstallContent>\n <InnerContent>{content}</InnerContent>\n </InstallContent>\n </Wrapper>\n );\n };\n\n // Loading installers data\n if (loading) {\n return <CircularProgress label={\"Checking apps...\"} />;\n }\n\n // This means there are no installers to run or installation was finished\n if (!loading && (installers.length === 0 || finished)) {\n markInstallerAsCompleted();\n return <LoginScreen>{children}</LoginScreen>;\n }\n\n if (installer) {\n return renderLayout(\n renderBody(installer.render({ onInstalled: showNextInstaller })),\n installer.secure\n );\n }\n\n return renderLayout(\n renderBody(\n <Elevation z={1}>\n <SuccessDialog>\n <p>You have successfully installed all new applications!</p>\n {!isCypressTest && isRootTenant && isFirstInstall ? (\n <iframe\n height=\"0\"\n width=\"0\"\n frameBorder=\"0\"\n style={{ opacity: \"0\" }}\n src=\"https://www.webiny.com/thank-you/new-install\"\n ></iframe>\n ) : null}\n <ButtonPrimary\n data-testid={\"open-webiny-cms-admin-button\"}\n onClick={() => {\n markInstallerAsCompleted();\n setFinished(true);\n }}\n >\n Finish install\n </ButtonPrimary>\n </SuccessDialog>\n </Elevation>\n ),\n true\n );\n};\n"],"mappings":"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"}
@@ -10,7 +10,6 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
  var _styled = _interopRequireDefault(require("@emotion/styled"));
12
12
  var _Typography = require("@webiny/ui/Typography");
13
- var _config = require("@webiny/app/config");
14
13
  var _signInDivider = _interopRequireDefault(require("./assets/sign-in-divider.svg"));
15
14
  var _Brand = require("../../base/ui/Brand");
16
15
  var _Tags = require("../../base/ui/Tags");
@@ -128,27 +127,18 @@ var Sidebar = function Sidebar(_ref) {
128
127
  var allInstallers = _ref.allInstallers,
129
128
  installer = _ref.installer,
130
129
  showLogin = _ref.showLogin;
131
- var upgrades = allInstallers.filter(function (installer) {
132
- return installer.type === "upgrade";
133
- });
134
130
  var installations = allInstallers.filter(function (installer) {
135
131
  return installer.type === "install";
136
132
  });
137
- var wbyVersion = _config.config.getKey("WEBINY_VERSION", process.env.REACT_APP_WEBINY_VERSION);
138
133
  return /*#__PURE__*/_react.default.createElement(_Tags.Tags, {
139
134
  tags: {
140
135
  location: "installer"
141
136
  }
142
- }, /*#__PURE__*/_react.default.createElement(Logo, null, /*#__PURE__*/_react.default.createElement(_Brand.Brand, null)), upgrades.length > 0 ? /*#__PURE__*/_react.default.createElement(Installations, {
143
- title: /*#__PURE__*/_react.default.createElement("span", null, "The following apps will be upgraded to ", /*#__PURE__*/_react.default.createElement("strong", null, wbyVersion), ":"),
144
- allInstallers: upgrades,
145
- installer: installer,
146
- showLogin: showLogin
147
- }) : null, installations.length > 0 && /*#__PURE__*/_react.default.createElement(Installations, {
137
+ }, /*#__PURE__*/_react.default.createElement(Logo, null, /*#__PURE__*/_react.default.createElement(_Brand.Brand, null)), installations.length > 0 && /*#__PURE__*/_react.default.createElement(Installations, {
148
138
  title: "The following apps will be installed and configured:",
149
139
  allInstallers: installations,
150
140
  installer: installer,
151
- showLogin: upgrades.length > 0 ? false : showLogin
141
+ showLogin: showLogin
152
142
  }));
153
143
  };
154
144
  var _default = Sidebar;
@@ -1 +1 @@
1
- {"version":3,"names":["Logo","styled","padding","borderBottom","List","li","display","alignItems","borderRadius","height","width","marginRight","textAlign","lineHeight","fontSize","paddingTop","color","img","backgroundColor","fontWeight","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","signInDivider","items","i","length","name","secure","installed","prev","push","active","classSet","pending","Sidebar","upgrades","filter","type","installations","wbyVersion","appConfig","getKey","process","env","REACT_APP_WEBINY_VERSION","location"],"sources":["Sidebar.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport classSet from \"classnames\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { config as appConfig } from \"@webiny/app/config\";\nimport signInDivider from \"./assets/sign-in-divider.svg\";\nimport { Installer } from \"./useInstaller\";\nimport { Brand } from \"~/base/ui/Brand\";\nimport { Tags } from \"~/base/ui/Tags\";\n\nconst Logo = styled(\"div\")({\n padding: 15,\n borderBottom: \"1px solid var(--mdc-theme-background)\"\n});\n\nconst List = styled(\"ul\")({\n li: {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"15px 15px\",\n \".status\": {\n borderRadius: \"50%\",\n display: \"inline-block\",\n height: 20,\n width: 20,\n marginRight: 15\n },\n \"&.sign-in\": {\n display: \"block\",\n textAlign: \"center\",\n \".note\": {\n display: \"inline-block\",\n lineHeight: \"150%\",\n fontSize: 10,\n paddingTop: 10,\n color: \"var(--mdc-theme-text-icon-on-background)\"\n },\n img: {\n width: \"100%\"\n }\n },\n \"&.active\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n fontWeight: 600,\n \".status\": {\n backgroundColor: \"var(--mdc-theme-primary)\"\n }\n },\n \"&.pending\": {\n \".status\": {\n backgroundColor: \"var(--mdc-theme-on-surface)\"\n }\n },\n \"&.installed\": {\n \".status\": {\n backgroundColor: \"var(--mdc-theme-secondary)\"\n }\n }\n }\n});\n\nconst Note = styled(\"div\")({\n padding: 15\n});\ninterface InstallationsProps {\n title: React.ReactNode;\n allInstallers: Installer[];\n installer: Installer;\n showLogin: boolean;\n}\nconst Installations: React.FC<InstallationsProps> = props => {\n const { title, allInstallers, installer, showLogin } = props;\n const renderList = () => {\n const loginItem = (\n <li key={\"login\"} className={\"sign-in\"}>\n <img src={signInDivider} alt={\"\"} />\n <Typography use={\"overline\"} className={\"note\"}>\n TO CONTINUE THE INSTALLATION AFTER THIS POINT YOU’LL NEED TO SIGN IN\n </Typography>\n </li>\n );\n\n const items = [];\n for (let i = 0; i < allInstallers.length; i++) {\n const { name, title, secure, installed } = allInstallers[i];\n const prev = i === 0 ? null : allInstallers[i - 1];\n if ((!prev || !prev.secure) && secure && showLogin) {\n items.push(loginItem);\n }\n\n const active = installer && !showLogin && name === installer.name;\n\n items.push(\n <li\n key={name}\n className={classSet(\n { installed: installed },\n { active: active },\n { pending: !installed && !active }\n )}\n >\n <span className={\"status\"} />\n <span className={\"title\"}>{title}</span>\n </li>\n );\n }\n return items;\n };\n\n return (\n <Fragment>\n <Note>\n <Typography use={\"body1\"}>{title}</Typography>\n </Note>\n <List>{renderList()}</List>\n </Fragment>\n );\n};\n\ninterface SidebarProps {\n allInstallers: Installer[];\n installer: Installer;\n showLogin: boolean;\n}\n\nconst Sidebar: React.FC<SidebarProps> = ({ allInstallers, installer, showLogin }) => {\n const upgrades = allInstallers.filter(installer => installer.type === \"upgrade\");\n const installations = allInstallers.filter(installer => installer.type === \"install\");\n const wbyVersion = appConfig.getKey(\"WEBINY_VERSION\", process.env.REACT_APP_WEBINY_VERSION);\n\n return (\n <Tags tags={{ location: \"installer\" }}>\n <Logo>\n <Brand />\n </Logo>\n {upgrades.length > 0 ? (\n <Installations\n title={\n <span>\n The following apps will be upgraded to <strong>{wbyVersion}</strong>:\n </span>\n }\n allInstallers={upgrades}\n installer={installer}\n showLogin={showLogin}\n />\n ) : null}\n {installations.length > 0 && (\n <Installations\n title={\"The following apps will be installed and configured:\"}\n allInstallers={installations}\n installer={installer}\n showLogin={upgrades.length > 0 ? false : showLogin}\n />\n )}\n </Tags>\n );\n};\nexport default Sidebar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Logo","styled","padding","borderBottom","List","li","display","alignItems","borderRadius","height","width","marginRight","textAlign","lineHeight","fontSize","paddingTop","color","img","backgroundColor","fontWeight","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","signInDivider","items","i","length","name","secure","installed","prev","push","active","classSet","pending","Sidebar","installations","filter","type","location"],"sources":["Sidebar.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport classSet from \"classnames\";\nimport styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport signInDivider from \"./assets/sign-in-divider.svg\";\nimport { Installer } from \"./useInstaller\";\nimport { Brand } from \"~/base/ui/Brand\";\nimport { Tags } from \"~/base/ui/Tags\";\n\nconst Logo = styled(\"div\")({\n padding: 15,\n borderBottom: \"1px solid var(--mdc-theme-background)\"\n});\n\nconst List = styled(\"ul\")({\n li: {\n display: \"flex\",\n alignItems: \"center\",\n padding: \"15px 15px\",\n \".status\": {\n borderRadius: \"50%\",\n display: \"inline-block\",\n height: 20,\n width: 20,\n marginRight: 15\n },\n \"&.sign-in\": {\n display: \"block\",\n textAlign: \"center\",\n \".note\": {\n display: \"inline-block\",\n lineHeight: \"150%\",\n fontSize: 10,\n paddingTop: 10,\n color: \"var(--mdc-theme-text-icon-on-background)\"\n },\n img: {\n width: \"100%\"\n }\n },\n \"&.active\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n fontWeight: 600,\n \".status\": {\n backgroundColor: \"var(--mdc-theme-primary)\"\n }\n },\n \"&.pending\": {\n \".status\": {\n backgroundColor: \"var(--mdc-theme-on-surface)\"\n }\n },\n \"&.installed\": {\n \".status\": {\n backgroundColor: \"var(--mdc-theme-secondary)\"\n }\n }\n }\n});\n\nconst Note = styled(\"div\")({\n padding: 15\n});\ninterface InstallationsProps {\n title: React.ReactNode;\n allInstallers: Installer[];\n installer: Installer;\n showLogin: boolean;\n}\nconst Installations: React.FC<InstallationsProps> = props => {\n const { title, allInstallers, installer, showLogin } = props;\n const renderList = () => {\n const loginItem = (\n <li key={\"login\"} className={\"sign-in\"}>\n <img src={signInDivider} alt={\"\"} />\n <Typography use={\"overline\"} className={\"note\"}>\n TO CONTINUE THE INSTALLATION AFTER THIS POINT YOU’LL NEED TO SIGN IN\n </Typography>\n </li>\n );\n\n const items = [];\n for (let i = 0; i < allInstallers.length; i++) {\n const { name, title, secure, installed } = allInstallers[i];\n const prev = i === 0 ? null : allInstallers[i - 1];\n if ((!prev || !prev.secure) && secure && showLogin) {\n items.push(loginItem);\n }\n\n const active = installer && !showLogin && name === installer.name;\n\n items.push(\n <li\n key={name}\n className={classSet(\n { installed: installed },\n { active: active },\n { pending: !installed && !active }\n )}\n >\n <span className={\"status\"} />\n <span className={\"title\"}>{title}</span>\n </li>\n );\n }\n return items;\n };\n\n return (\n <Fragment>\n <Note>\n <Typography use={\"body1\"}>{title}</Typography>\n </Note>\n <List>{renderList()}</List>\n </Fragment>\n );\n};\n\ninterface SidebarProps {\n allInstallers: Installer[];\n installer: Installer;\n showLogin: boolean;\n}\n\nconst Sidebar: React.FC<SidebarProps> = ({ allInstallers, installer, showLogin }) => {\n const installations = allInstallers.filter(installer => installer.type === \"install\");\n\n return (\n <Tags tags={{ location: \"installer\" }}>\n <Logo>\n <Brand />\n </Logo>\n {installations.length > 0 && (\n <Installations\n title={\"The following apps will be installed and configured:\"}\n allInstallers={installations}\n installer={installer}\n showLogin={showLogin}\n />\n )}\n </Tags>\n );\n};\nexport default Sidebar;\n"],"mappings":"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"}
@@ -1,9 +1,21 @@
1
1
  /// <reference types="react" />
2
- /// <reference types="web" />
3
2
  /// <reference types="react" />
4
- export declare const Wrapper: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, Pick<import("react").ClassAttributes<HTMLElement> & import("react").HTMLAttributes<HTMLElement>, keyof import("react").HTMLAttributes<HTMLElement>>, object>;
5
- export declare const InstallContent: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
3
+ /// <reference types="web" />
4
+ export declare const Wrapper: import("@emotion/styled").StyledComponent<{
5
+ theme?: import("@emotion/react").Theme | undefined;
6
+ as?: import("react").ElementType<any> | undefined;
7
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {}>;
8
+ export declare const InstallContent: import("@emotion/styled").StyledComponent<{
9
+ theme?: import("@emotion/react").Theme | undefined;
10
+ as?: import("react").ElementType<any> | undefined;
11
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
12
  export declare const installerSplitView: string;
7
- export declare const SuccessDialog: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
8
- export declare const InnerContent: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
13
+ export declare const SuccessDialog: import("@emotion/styled").StyledComponent<{
14
+ theme?: import("@emotion/react").Theme | undefined;
15
+ as?: import("react").ElementType<any> | undefined;
16
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
17
+ export declare const InnerContent: import("@emotion/styled").StyledComponent<{
18
+ theme?: import("@emotion/react").Theme | undefined;
19
+ as?: import("react").ElementType<any> | undefined;
20
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
21
  export declare const alertClass: string;