@webiny/app-admin 5.41.4 → 5.42.0-beta.0

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 (183) hide show
  1. package/base/Admin.js +4 -13
  2. package/base/Admin.js.map +1 -1
  3. package/base/providers/TelemetryProvider.d.ts +1 -7
  4. package/base/providers/TelemetryProvider.js +3 -2
  5. package/base/providers/TelemetryProvider.js.map +1 -1
  6. package/base/providers/UiStateProvider.d.ts +1 -7
  7. package/base/providers/UiStateProvider.js +3 -2
  8. package/base/providers/UiStateProvider.js.map +1 -1
  9. package/base/providers/ViewCompositionProvider.js.map +1 -1
  10. package/base/ui/FileManager.js.map +1 -1
  11. package/base/ui/Menu.js +4 -4
  12. package/base/ui/Menu.js.map +1 -1
  13. package/base/ui/Navigation.d.ts +1 -5
  14. package/base/ui/Navigation.js +2 -2
  15. package/base/ui/Navigation.js.map +1 -1
  16. package/base/ui/Search.d.ts +1 -7
  17. package/base/ui/Search.js +2 -2
  18. package/base/ui/Search.js.map +1 -1
  19. package/base/ui/UserMenu.d.ts +1 -7
  20. package/base/ui/UserMenu.js +2 -2
  21. package/base/ui/UserMenu.js.map +1 -1
  22. package/components/AppInstaller/AppInstaller.js +1 -1
  23. package/components/AppInstaller/AppInstaller.js.map +1 -1
  24. package/components/AppInstaller/Sidebar.js +1 -1
  25. package/components/AppInstaller/Sidebar.js.map +1 -1
  26. package/components/BulkActions/Worker.js.map +1 -1
  27. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
  28. package/components/Dialogs/DialogsContext.d.ts +4 -13
  29. package/components/Dialogs/DialogsContext.js +83 -61
  30. package/components/Dialogs/DialogsContext.js.map +1 -1
  31. package/components/IconPicker/IconPicker.d.ts +13 -0
  32. package/components/IconPicker/IconPicker.js +46 -0
  33. package/components/IconPicker/IconPicker.js.map +1 -0
  34. package/components/IconPicker/IconPicker.styles.d.ts +63 -0
  35. package/components/IconPicker/IconPicker.styles.js +187 -0
  36. package/components/IconPicker/IconPicker.styles.js.map +1 -0
  37. package/components/IconPicker/IconPickerComponent.d.ts +16 -0
  38. package/components/IconPicker/IconPickerComponent.js +101 -0
  39. package/components/IconPicker/IconPickerComponent.js.map +1 -0
  40. package/components/IconPicker/IconPickerPresenter.d.ts +52 -0
  41. package/components/IconPicker/IconPickerPresenter.js +118 -0
  42. package/components/IconPicker/IconPickerPresenter.js.map +1 -0
  43. package/components/IconPicker/IconPickerPresenter.test.d.ts +1 -0
  44. package/components/IconPicker/IconPickerPresenter.test.js +111 -0
  45. package/components/IconPicker/IconPickerPresenter.test.js.map +1 -0
  46. package/components/IconPicker/IconPickerPresenterProvider.d.ts +9 -0
  47. package/components/IconPicker/IconPickerPresenterProvider.js +26 -0
  48. package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -0
  49. package/components/IconPicker/IconPickerTab.d.ts +32 -0
  50. package/components/IconPicker/IconPickerTab.js +169 -0
  51. package/components/IconPicker/IconPickerTab.js.map +1 -0
  52. package/components/IconPicker/IconRenderer.d.ts +34 -0
  53. package/components/IconPicker/IconRenderer.js +35 -0
  54. package/components/IconPicker/IconRenderer.js.map +1 -0
  55. package/components/IconPicker/IconRepository.d.ts +19 -0
  56. package/components/IconPicker/IconRepository.js +79 -0
  57. package/components/IconPicker/IconRepository.js.map +1 -0
  58. package/components/IconPicker/IconRepository.test.d.ts +1 -0
  59. package/components/IconPicker/IconRepository.test.js +68 -0
  60. package/components/IconPicker/IconRepository.test.js.map +1 -0
  61. package/components/IconPicker/IconRepositoryFactory.d.ts +9 -0
  62. package/components/IconPicker/IconRepositoryFactory.js +40 -0
  63. package/components/IconPicker/IconRepositoryFactory.js.map +1 -0
  64. package/components/IconPicker/Loading.d.ts +14 -0
  65. package/components/IconPicker/Loading.js +76 -0
  66. package/components/IconPicker/Loading.js.map +1 -0
  67. package/components/IconPicker/config/Emojis.d.ts +2 -0
  68. package/components/IconPicker/config/Emojis.js +31 -0
  69. package/components/IconPicker/config/Emojis.js.map +1 -0
  70. package/components/IconPicker/config/FontAwesomeIcons.d.ts +2 -0
  71. package/components/IconPicker/config/FontAwesomeIcons.js +74 -0
  72. package/components/IconPicker/config/FontAwesomeIcons.js.map +1 -0
  73. package/components/IconPicker/config/IconPackProvider.d.ts +7 -0
  74. package/components/IconPicker/config/IconPackProvider.js +29 -0
  75. package/components/IconPicker/config/IconPackProvider.js.map +1 -0
  76. package/components/IconPicker/config/IconType.d.ts +32 -0
  77. package/components/IconPicker/config/IconType.js +92 -0
  78. package/components/IconPicker/config/IconType.js.map +1 -0
  79. package/components/IconPicker/config/index.d.ts +31 -0
  80. package/components/IconPicker/config/index.js +63 -0
  81. package/components/IconPicker/config/index.js.map +1 -0
  82. package/components/IconPicker/defaultIcon.d.ts +6 -0
  83. package/components/IconPicker/defaultIcon.js +14 -0
  84. package/components/IconPicker/defaultIcon.js.map +1 -0
  85. package/components/IconPicker/index.d.ts +7 -0
  86. package/components/IconPicker/index.js +49 -0
  87. package/components/IconPicker/index.js.map +1 -0
  88. package/components/IconPicker/plugins/customPlugin.d.ts +2 -0
  89. package/components/IconPicker/plugins/customPlugin.js +157 -0
  90. package/components/IconPicker/plugins/customPlugin.js.map +1 -0
  91. package/components/IconPicker/plugins/emojisPlugin.d.ts +2 -0
  92. package/components/IconPicker/plugins/emojisPlugin.js +164 -0
  93. package/components/IconPicker/plugins/emojisPlugin.js.map +1 -0
  94. package/components/IconPicker/plugins/graphql.d.ts +20 -0
  95. package/components/IconPicker/plugins/graphql.js +18 -0
  96. package/components/IconPicker/plugins/graphql.js.map +1 -0
  97. package/components/IconPicker/plugins/iconsPlugin.d.ts +2 -0
  98. package/components/IconPicker/plugins/iconsPlugin.js +146 -0
  99. package/components/IconPicker/plugins/iconsPlugin.js.map +1 -0
  100. package/components/IconPicker/types.d.ts +22 -0
  101. package/components/IconPicker/types.js +15 -0
  102. package/components/IconPicker/types.js.map +1 -0
  103. package/components/MultiImageUpload.js.map +1 -1
  104. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  105. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  106. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  107. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  108. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  109. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  110. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  111. package/components/SimpleUI/InputField.js.map +1 -1
  112. package/components/SingleImageUpload.js.map +1 -1
  113. package/hooks/useConfirmationDialog.js.map +1 -1
  114. package/hooks/useDialog.js.map +1 -1
  115. package/hooks/useIsMounted.js.map +1 -1
  116. package/hooks/useKeyHandler.js.map +1 -1
  117. package/hooks/useSnackbar.js.map +1 -1
  118. package/index.d.ts +1 -0
  119. package/index.js +12 -0
  120. package/index.js.map +1 -1
  121. package/package.json +35 -34
  122. package/plugins/MenuPlugin.js.map +1 -1
  123. package/plugins/PermissionRendererPlugin.js.map +1 -1
  124. package/plugins/globalSearch/SearchBar.js.map +1 -1
  125. package/plugins/globalSearch/SearchBarDropdown.js.map +1 -1
  126. package/plugins/globalSearch/index.js.map +1 -1
  127. package/types.d.ts +1 -0
  128. package/types.js +7 -0
  129. package/types.js.map +1 -1
  130. package/ui/elements/AccordionElement.js +3 -4
  131. package/ui/elements/AccordionElement.js.map +1 -1
  132. package/ui/elements/ButtonElement.js.map +1 -1
  133. package/ui/elements/ButtonGroupElement.js +2 -3
  134. package/ui/elements/ButtonGroupElement.js.map +1 -1
  135. package/ui/elements/LabelElement.js.map +1 -1
  136. package/ui/elements/NavigationMenuElement.js +2 -3
  137. package/ui/elements/NavigationMenuElement.js.map +1 -1
  138. package/ui/elements/PlaceholderElement.js.map +1 -1
  139. package/ui/elements/SmallButtonElement.js.map +1 -1
  140. package/ui/elements/TypographyElement.js +2 -3
  141. package/ui/elements/TypographyElement.js.map +1 -1
  142. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js +2 -3
  143. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  144. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  145. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  146. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  147. package/ui/elements/form/FileManagerElement.js.map +1 -1
  148. package/ui/elements/form/FormElement.js +3 -4
  149. package/ui/elements/form/FormElement.js.map +1 -1
  150. package/ui/elements/form/FormFieldElement.js +3 -3
  151. package/ui/elements/form/FormFieldElement.js.map +1 -1
  152. package/ui/elements/form/HiddenElement.js.map +1 -1
  153. package/ui/elements/form/InputElement.js.map +1 -1
  154. package/ui/elements/form/PasswordElement.js.map +1 -1
  155. package/ui/elements/form/SelectElement.js.map +1 -1
  156. package/ui/elements/form/TextareaElement.js.map +1 -1
  157. package/ui/views/AdminView/ContentElement.js.map +1 -1
  158. package/ui/views/AdminView/HeaderElement.js +1 -1
  159. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  160. package/ui/views/AdminView/HeaderSectionCenterElement.js +2 -3
  161. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  162. package/ui/views/AdminView/HeaderSectionLeftElement.js +2 -3
  163. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  164. package/ui/views/AdminView/HeaderSectionRightElement.js +2 -3
  165. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  166. package/ui/views/FormView/FormContainerElement.js +2 -3
  167. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  168. package/ui/views/FormView/FormFooterElement.js +2 -3
  169. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  170. package/ui/views/FormView/FormHeaderElement.js +2 -3
  171. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  172. package/ui/views/FormView.js +2 -3
  173. package/ui/views/FormView.js.map +1 -1
  174. package/ui/views/OverlayView/ContentElement.js +2 -3
  175. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  176. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  177. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  178. package/ui/views/OverlayView.js +2 -3
  179. package/ui/views/OverlayView.js.map +1 -1
  180. package/ui/views/SplitView/SplitViewPanelElement.js +2 -3
  181. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  182. package/ui/views/SplitView.js +2 -3
  183. package/ui/views/SplitView.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_store","_interopRequireDefault","_","_appSecurity","_Progress","_Button","_SplitView","_Elevation","_Typography","_useInstaller2","_Sidebar","_styled","AppInstaller","exports","_ref","children","tenantId","localStorage","get","lsKey","concat","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","_useState","useState","_useState2","_slicedToArray2","default","finished","setFinished","_useSecurity","useSecurity","identity","_useInstaller","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","useEffect","createElement","LoginScreen","renderLayout","content","secure","arguments","length","undefined","Tags","tags","SplitView","className","installerSplitView","LeftPanel","span","allInstallers","RightPanel","renderBody","Wrapper","InstallContent","InnerContent","CircularProgress","label","render","onInstalled","Elevation","z","SuccessDialog","Typography","use","height","width","frameBorder","style","opacity","src","ButtonPrimary","onClick"],"sources":["AppInstaller.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen, Tags } 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 { Typography } from \"@webiny/ui/Typography\";\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\";\n\ninterface AppInstallerProps {\n children: React.ReactNode;\n}\n\nexport const AppInstaller = ({ children }: AppInstallerProps) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n const lsKey = `webiny_installation_${tenantId}`;\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, true);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === true;\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 <Tags tags={{ installer: true }}>\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 </Tags>\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 <Typography use={\"headline4\"}>You&apos;re ready!</Typography>\n <p>All applications were successfully installed.</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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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_store","_interopRequireDefault","_","_appSecurity","_Progress","_Button","_SplitView","_Elevation","_Typography","_useInstaller2","_Sidebar","_styled","AppInstaller","exports","_ref","children","tenantId","localStorage","get","lsKey","concat","isRootTenant","isCypressTest","window","Cypress","markInstallerAsCompleted","set","isInstallerCompleted","_useState","useState","_useState2","_slicedToArray2","default","finished","setFinished","_useSecurity","useSecurity","identity","_useInstaller","useInstaller","isInstalled","loading","installers","installer","isFirstInstall","showNextInstaller","showLogin","onUser","useEffect","createElement","LoginScreen","renderLayout","content","secure","arguments","length","undefined","Tags","tags","SplitView","className","installerSplitView","LeftPanel","span","allInstallers","RightPanel","renderBody","Wrapper","InstallContent","InnerContent","CircularProgress","label","render","onInstalled","Elevation","z","SuccessDialog","Typography","use","height","width","frameBorder","style","opacity","src","ButtonPrimary","onClick"],"sources":["AppInstaller.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { default as localStorage } from \"store\";\nimport { LoginScreen, Tags } 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 { Typography } from \"@webiny/ui/Typography\";\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\";\n\ninterface AppInstallerProps {\n children: React.ReactNode;\n}\n\nexport const AppInstaller = ({ children }: AppInstallerProps) => {\n const tenantId = localStorage.get(\"webiny_tenant\") || \"root\";\n const lsKey = `webiny_installation_${tenantId}`;\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, true);\n };\n\n const isInstallerCompleted = () => {\n return localStorage.get(lsKey) === true;\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 <Tags tags={{ installer: true }}>\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 </Tags>\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 <Typography use={\"headline4\"}>You&apos;re ready!</Typography>\n <p>All applications were successfully installed.</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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","ignoreList":[]}
@@ -84,7 +84,7 @@ var Installations = function Installations(props) {
84
84
  items.push(loginItem);
85
85
  }
86
86
  var active = installer && !showLogin && name === installer.name;
87
- items.push( /*#__PURE__*/_react.default.createElement("li", {
87
+ items.push(/*#__PURE__*/_react.default.createElement("li", {
88
88
  key: name,
89
89
  className: (0, _classnames.default)({
90
90
  installed: installed
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Typography","_signInDivider","_Brand","_Tags","_EMOTION_STRINGIFIED_CSS_ERROR__","Logo","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","List","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","createElement","key","className","src","signInDivider","alt","Typography","use","items","i","length","_allInstallers$i","secure","installed","prev","push","active","classSet","pending","Fragment","Sidebar","_ref","installations","filter","type","Tags","tags","location","Brand","_default","exports"],"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 = (props: InstallationsProps) => {\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 = ({ allInstallers, installer, showLogin }: SidebarProps) => {\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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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_Typography","_signInDivider","_Brand","_Tags","_EMOTION_STRINGIFIED_CSS_ERROR__","Logo","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","List","Note","Installations","props","title","allInstallers","installer","showLogin","renderList","loginItem","createElement","key","className","src","signInDivider","alt","Typography","use","items","i","length","_allInstallers$i","secure","installed","prev","push","active","classSet","pending","Fragment","Sidebar","_ref","installations","filter","type","Tags","tags","location","Brand","_default","exports"],"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 = (props: InstallationsProps) => {\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 = ({ allInstallers, installer, showLogin }: SidebarProps) => {\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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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_chunk","_interopRequireDefault","require","_mobx","Report","exports","_classCallCheck2","default","_defineProperty2","_createClass2","key","value","success","result","addResult","_objectSpread2","status","error","get","_results","push","Worker","_items","_report","makeAutoObservable","process","callback","processInSeries","_this","chunkSize","arguments","length","undefined","chunks","chunk","promises","map","processChunk","Promise","all","results","set","items","_iterator","_createForOfIteratorHelper2","_step","s","n","done","item","allItems","report","err","e","f"],"sources":["Worker.ts"],"sourcesContent":["import chunk from \"lodash/chunk\";\nimport { makeAutoObservable } from \"mobx\";\n\nexport interface CallbackParams<T> {\n item: T;\n allItems: T[];\n report: Report;\n}\n\nexport interface Result {\n title: string;\n status: \"success\" | \"failure\";\n message?: string | React.ReactElement;\n}\n\n/**\n * Class for collecting processing results\n */\nexport class Report {\n private _results: Result[] = [];\n\n /**\n * Record a successful result in the report\n * @param {Omit<Result, \"status\">} result - The successful result to be recorded\n */\n public success(result: Omit<Result, \"status\">): void {\n this.addResult({\n ...result,\n status: \"success\"\n });\n }\n\n /**\n * Record an error result in the report.\n * @param {Omit<Result, \"status\">} result - The error result to be recorded.\n */\n public error(result: Omit<Result, \"status\">): void {\n this.addResult({\n ...result,\n status: \"failure\"\n });\n }\n\n /**\n * Get the array of recorded results.\n * @returns {Result[]} - An array of recorded results.\n */\n get results(): Result[] {\n return this._results;\n }\n\n /**\n * Internal method to add a result to the report.\n * @private\n * @param {Result} result - The result to be added to the report.\n */\n private addResult(result: Result): void {\n this._results.push(result);\n }\n}\n\n/**\n * A generic worker class for processing items.\n * @template T - The type of items being processed.\n */\nexport class Worker<T> {\n private _items: T[];\n private _report: Report;\n\n constructor() {\n this._items = [];\n this._report = new Report();\n makeAutoObservable(this);\n }\n\n /**\n * Process the items using the provided callback function.\n * @param callback - The callback function to process the items.\n */\n public process(callback: (items: T[]) => void): void {\n callback(this._items);\n }\n\n /**\n * Process the items in series with the given chunk size.\n * @param callback - The callback function to process each item.\n * @param {number} [chunkSize=10] - The size of each chunk for processing in series.\n * @returns {Promise<void>}\n */\n public async processInSeries(\n callback: ({ item, allItems, report }: CallbackParams<T>) => Promise<void>,\n chunkSize = 10\n ): Promise<void> {\n const chunks = chunk(this._items, chunkSize);\n const promises = chunks.map(chunk => this.processChunk(callback, chunk));\n await Promise.all(promises);\n }\n\n /**\n * Get the array of results collected by the worker.\n * @returns {Result[]} - An array of collected results.\n */\n get results(): Result[] {\n return this._report.results;\n }\n\n /**\n * Get the current items in the worker.\n * @returns {T[]} - An array of items in the worker.\n */\n get items(): T[] {\n return this._items;\n }\n\n /**\n * Set the items in the worker.\n * @param {T[]} items - The items to be set in the worker.\n */\n set items(items: T[]) {\n this._items = items;\n }\n\n /**\n * Internal method to process a chunk of items using the provided callback.\n * @private\n * @param callback - The callback function to process each item.\n * @param {T[]} chunk - The chunk of items to be processed.\n * @returns {Promise<void>}\n */\n private async processChunk(\n callback: ({ item, allItems, report }: CallbackParams<T>) => void | Promise<void>,\n chunk: T[]\n ): Promise<void> {\n for (const item of chunk) {\n await callback({ item, allItems: this._items, report: this._report });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_chunk","_interopRequireDefault","require","_mobx","Report","exports","_classCallCheck2","default","_defineProperty2","_createClass2","key","value","success","result","addResult","_objectSpread2","status","error","get","_results","push","Worker","_items","_report","makeAutoObservable","process","callback","processInSeries","_this","chunkSize","arguments","length","undefined","chunks","chunk","promises","map","processChunk","Promise","all","results","set","items","_iterator","_createForOfIteratorHelper2","_step","s","n","done","item","allItems","report","err","e","f"],"sources":["Worker.ts"],"sourcesContent":["import chunk from \"lodash/chunk\";\nimport { makeAutoObservable } from \"mobx\";\n\nexport interface CallbackParams<T> {\n item: T;\n allItems: T[];\n report: Report;\n}\n\nexport interface Result {\n title: string;\n status: \"success\" | \"failure\";\n message?: string | React.ReactElement;\n}\n\n/**\n * Class for collecting processing results\n */\nexport class Report {\n private _results: Result[] = [];\n\n /**\n * Record a successful result in the report\n * @param {Omit<Result, \"status\">} result - The successful result to be recorded\n */\n public success(result: Omit<Result, \"status\">): void {\n this.addResult({\n ...result,\n status: \"success\"\n });\n }\n\n /**\n * Record an error result in the report.\n * @param {Omit<Result, \"status\">} result - The error result to be recorded.\n */\n public error(result: Omit<Result, \"status\">): void {\n this.addResult({\n ...result,\n status: \"failure\"\n });\n }\n\n /**\n * Get the array of recorded results.\n * @returns {Result[]} - An array of recorded results.\n */\n get results(): Result[] {\n return this._results;\n }\n\n /**\n * Internal method to add a result to the report.\n * @private\n * @param {Result} result - The result to be added to the report.\n */\n private addResult(result: Result): void {\n this._results.push(result);\n }\n}\n\n/**\n * A generic worker class for processing items.\n * @template T - The type of items being processed.\n */\nexport class Worker<T> {\n private _items: T[];\n private _report: Report;\n\n constructor() {\n this._items = [];\n this._report = new Report();\n makeAutoObservable(this);\n }\n\n /**\n * Process the items using the provided callback function.\n * @param callback - The callback function to process the items.\n */\n public process(callback: (items: T[]) => void): void {\n callback(this._items);\n }\n\n /**\n * Process the items in series with the given chunk size.\n * @param callback - The callback function to process each item.\n * @param {number} [chunkSize=10] - The size of each chunk for processing in series.\n * @returns {Promise<void>}\n */\n public async processInSeries(\n callback: ({ item, allItems, report }: CallbackParams<T>) => Promise<void>,\n chunkSize = 10\n ): Promise<void> {\n const chunks = chunk(this._items, chunkSize);\n const promises = chunks.map(chunk => this.processChunk(callback, chunk));\n await Promise.all(promises);\n }\n\n /**\n * Get the array of results collected by the worker.\n * @returns {Result[]} - An array of collected results.\n */\n get results(): Result[] {\n return this._report.results;\n }\n\n /**\n * Get the current items in the worker.\n * @returns {T[]} - An array of items in the worker.\n */\n get items(): T[] {\n return this._items;\n }\n\n /**\n * Set the items in the worker.\n * @param {T[]} items - The items to be set in the worker.\n */\n set items(items: T[]) {\n this._items = items;\n }\n\n /**\n * Internal method to process a chunk of items using the provided callback.\n * @private\n * @param callback - The callback function to process each item.\n * @param {T[]} chunk - The chunk of items to be processed.\n * @returns {Promise<void>}\n */\n private async processChunk(\n callback: ({ item, allItems, report }: CallbackParams<T>) => void | Promise<void>,\n chunk: T[]\n ): Promise<void> {\n for (const item of chunk) {\n await callback({ item, allItems: this._items, report: this._report });\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_useUi","_i18n","_Progress","_DialogMessage","_excluded","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","t","i18n","ns","useDialogWithReport","exports","ui","useUi","showConfirmationDialog","_ref","execute","title","message","loadingLabel","setState","_objectSpread2","default","dialog","_taggedTemplateLiteral2","options","loading","createElement","CircularProgress","label","actions","accept","onClick","cancel","showResultsDialog","_ref2","params","_objectWithoutProperties2","setTimeout","ResultDialogMessage","hideResultsDialog"],"sources":["useDialogWithReport.tsx"],"sourcesContent":["import React from \"react\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ResultDialogMessage } from \"./DialogMessage\";\nimport { Result } from \"../Worker\";\n\nconst t = i18n.ns(\"app-admin/hooks/use-dialog-with-report\");\n\nexport interface ShowConfirmationDialogParams {\n execute: (() => void) | (() => Promise<void>);\n title?: string;\n message?: string;\n loadingLabel?: string;\n}\n\nexport interface ShowResultsDialogParams {\n results: Result[];\n title?: string;\n message?: string;\n onCancel?: () => Promise<void>;\n}\n\nexport interface UseDialogWithReportResponse {\n showConfirmationDialog: (params: ShowConfirmationDialogParams) => void;\n showResultsDialog: (results: ShowResultsDialogParams) => void;\n hideResultsDialog: () => void;\n}\n\nexport const useDialogWithReport = (): UseDialogWithReportResponse => {\n const ui = useUi();\n\n const showConfirmationDialog = ({\n execute,\n title,\n message,\n loadingLabel\n }: ShowConfirmationDialogParams) => {\n ui.setState(ui => {\n return {\n ...ui,\n dialog: {\n message: message || t`Are you sure you want to continue?`,\n options: {\n title: title || t`Confirm`,\n loading: <CircularProgress label={loadingLabel} />,\n actions: {\n accept: {\n label: t`Confirm`,\n onClick: async () => {\n await execute();\n }\n },\n cancel: {\n label: t`Cancel`\n }\n }\n }\n }\n };\n });\n };\n\n const showResultsDialog = ({ title, ...params }: ShowResultsDialogParams) => {\n setTimeout(() => {\n ui.setState(ui => {\n return {\n ...ui,\n dialog: {\n message: <ResultDialogMessage {...params} />,\n options: {\n title: title || t`Results`,\n actions: {\n cancel: {\n label: t`Close`\n }\n }\n }\n }\n };\n });\n }, 10);\n };\n\n const hideResultsDialog = () => {\n ui.setState(ui => {\n return { ...ui, dialog: null };\n });\n };\n\n return {\n showConfirmationDialog,\n showResultsDialog,\n hideResultsDialog\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_useUi","_i18n","_Progress","_DialogMessage","_excluded","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","t","i18n","ns","useDialogWithReport","exports","ui","useUi","showConfirmationDialog","_ref","execute","title","message","loadingLabel","setState","_objectSpread2","default","dialog","_taggedTemplateLiteral2","options","loading","createElement","CircularProgress","label","actions","accept","onClick","cancel","showResultsDialog","_ref2","params","_objectWithoutProperties2","setTimeout","ResultDialogMessage","hideResultsDialog"],"sources":["useDialogWithReport.tsx"],"sourcesContent":["import React from \"react\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { ResultDialogMessage } from \"./DialogMessage\";\nimport { Result } from \"../Worker\";\n\nconst t = i18n.ns(\"app-admin/hooks/use-dialog-with-report\");\n\nexport interface ShowConfirmationDialogParams {\n execute: (() => void) | (() => Promise<void>);\n title?: string;\n message?: string;\n loadingLabel?: string;\n}\n\nexport interface ShowResultsDialogParams {\n results: Result[];\n title?: string;\n message?: string;\n onCancel?: () => Promise<void>;\n}\n\nexport interface UseDialogWithReportResponse {\n showConfirmationDialog: (params: ShowConfirmationDialogParams) => void;\n showResultsDialog: (results: ShowResultsDialogParams) => void;\n hideResultsDialog: () => void;\n}\n\nexport const useDialogWithReport = (): UseDialogWithReportResponse => {\n const ui = useUi();\n\n const showConfirmationDialog = ({\n execute,\n title,\n message,\n loadingLabel\n }: ShowConfirmationDialogParams) => {\n ui.setState(ui => {\n return {\n ...ui,\n dialog: {\n message: message || t`Are you sure you want to continue?`,\n options: {\n title: title || t`Confirm`,\n loading: <CircularProgress label={loadingLabel} />,\n actions: {\n accept: {\n label: t`Confirm`,\n onClick: async () => {\n await execute();\n }\n },\n cancel: {\n label: t`Cancel`\n }\n }\n }\n }\n };\n });\n };\n\n const showResultsDialog = ({ title, ...params }: ShowResultsDialogParams) => {\n setTimeout(() => {\n ui.setState(ui => {\n return {\n ...ui,\n dialog: {\n message: <ResultDialogMessage {...params} />,\n options: {\n title: title || t`Results`,\n actions: {\n cancel: {\n label: t`Close`\n }\n }\n }\n }\n };\n });\n }, 10);\n };\n\n const hideResultsDialog = () => {\n ui.setState(ui => {\n return { ...ui, dialog: null };\n });\n };\n\n return {\n showConfirmationDialog,\n showResultsDialog,\n hideResultsDialog\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -21,23 +21,14 @@ export interface DialogsContext {
21
21
  interface DialogsProviderProps {
22
22
  children: ReactNode;
23
23
  }
24
- interface State {
24
+ interface DialogState extends ShowDialogParams {
25
+ id: string;
25
26
  open: boolean;
26
27
  loading: boolean;
27
- title: ReactNode;
28
- content: ReactNode;
29
- acceptLabel: ReactNode;
30
- cancelLabel: ReactNode;
31
- loadingLabel: ReactNode;
32
28
  element?: JSX.Element;
33
- onAccept?: (data: GenericFormData) => void;
34
- onClose?: () => void;
35
29
  }
36
- export declare const initializeState: () => State;
30
+ export declare const initializeState: (params?: Partial<DialogState>) => DialogState;
37
31
  export declare const DialogsContext: React.Context<DialogsContext | undefined>;
38
32
  export declare const DialogsProvider: ({ children }: DialogsProviderProps) => React.JSX.Element;
39
- interface DialogsProviderProps {
40
- children: React.ReactNode;
41
- }
42
- export declare const createDialogsProvider: () => (Component: React.ComponentType<React.PropsWithChildren>) => ({ children }: DialogsProviderProps) => React.JSX.Element;
33
+ export declare const createDialogsProvider: () => import("@webiny/app").Decorator<import("@webiny/app").GenericComponent<import("@webiny/app").ChildrenProps>>;
43
34
  export {};
@@ -12,17 +12,22 @@ var _react = _interopRequireWildcard(require("react"));
12
12
  var _hooks = require("../../hooks");
13
13
  var _Dialog = require("./Dialog");
14
14
  var _CustomDialog = require("./CustomDialog");
15
+ var _app = require("@webiny/app");
16
+ var _utils = require("@webiny/utils");
15
17
  var initializeState = exports.initializeState = function initializeState() {
18
+ var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
16
19
  return {
17
- title: "Confirmation",
18
- content: undefined,
19
- acceptLabel: "Confirm",
20
- cancelLabel: "Cancel",
21
- loadingLabel: "Loading",
22
- onAccept: undefined,
23
- onClose: undefined,
24
- open: false,
25
- loading: false
20
+ id: "dialog-".concat((0, _utils.generateId)()),
21
+ title: params.title ?? "Confirmation",
22
+ content: params.content,
23
+ acceptLabel: params.acceptLabel ?? "Confirm",
24
+ cancelLabel: params.cancelLabel ?? "Cancel",
25
+ loadingLabel: params.loadingLabel ?? "Loading",
26
+ onAccept: params.onAccept,
27
+ onClose: params.onClose,
28
+ open: params.open ?? false,
29
+ loading: params.loading ?? false,
30
+ element: params.element
26
31
  };
27
32
  };
28
33
  var DialogsContext = exports.DialogsContext = /*#__PURE__*/_react.default.createContext(undefined);
@@ -30,92 +35,109 @@ var DialogsProvider = exports.DialogsProvider = function DialogsProvider(_ref) {
30
35
  var children = _ref.children;
31
36
  var _useSnackbar = (0, _hooks.useSnackbar)(),
32
37
  showSnackbar = _useSnackbar.showSnackbar;
33
- var _useState = (0, _react.useState)(initializeState()),
38
+ var _useState = (0, _react.useState)(new Map()),
34
39
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
- state = _useState2[0],
36
- setState = _useState2[1];
40
+ dialogs = _useState2[0],
41
+ setDialogs = _useState2[1];
37
42
  var showDialog = function showDialog(params) {
38
- setState(function (state) {
39
- return (0, _objectSpread2.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), params), {}, {
40
- open: true
41
- });
43
+ var newDialog = initializeState((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
44
+ open: true
45
+ }));
46
+ setDialogs(function (dialogs) {
47
+ return new Map(dialogs).set(newDialog.id, newDialog);
42
48
  });
43
49
  };
44
50
  var showCustomDialog = function showCustomDialog(_ref2) {
45
51
  var onSubmit = _ref2.onSubmit,
46
52
  element = _ref2.element;
47
- setState(function (state) {
48
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
49
- element: element,
50
- onAccept: onSubmit,
51
- open: true
52
- });
53
+ var newDialog = initializeState({
54
+ element: element,
55
+ onAccept: onSubmit,
56
+ open: true
57
+ });
58
+ setDialogs(function (dialogs) {
59
+ return new Map(dialogs).set(newDialog.id, newDialog);
53
60
  });
54
61
  };
55
- var closeDialog = function closeDialog() {
56
- if (typeof state.onClose === "function") {
57
- state.onClose();
58
- }
59
- setState(function (state) {
60
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
61
- open: false,
62
- element: undefined,
63
- content: null
64
- });
62
+ var _closeDialog = function closeDialog(id) {
63
+ setDialogs(function (dialogs) {
64
+ var newDialogs = new Map(dialogs);
65
+ newDialogs.delete(id);
66
+ return newDialogs;
65
67
  });
66
68
  };
67
- var onSubmit = async function onSubmit(data) {
69
+ var _onSubmit = async function onSubmit(id, data) {
70
+ var dialog = dialogs.get(id);
71
+ if (!dialog) {
72
+ return;
73
+ }
68
74
  try {
69
- if (typeof state.onAccept === "function") {
70
- setState(function (state) {
71
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
75
+ if (typeof dialog.onAccept === "function") {
76
+ setDialogs(function (dialogs) {
77
+ var newDialogs = new Map(dialogs);
78
+ newDialogs.set(id, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, dialog), {}, {
72
79
  loading: true
73
- });
80
+ }));
81
+ return newDialogs;
74
82
  });
75
- await state.onAccept(data);
83
+ await dialog.onAccept(data);
76
84
  }
77
85
  } catch (error) {
78
86
  showSnackbar(error.message);
79
87
  } finally {
80
- setState(function (state) {
81
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, state), {}, {
88
+ setDialogs(function (dialogs) {
89
+ var newDialogs = new Map(dialogs);
90
+ newDialogs.set(id, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, dialog), {}, {
82
91
  loading: false
83
- });
92
+ }));
93
+ return newDialogs;
84
94
  });
85
- closeDialog();
95
+ _closeDialog(id);
86
96
  }
87
97
  };
88
98
  var context = {
89
99
  showDialog: showDialog,
90
100
  showCustomDialog: showCustomDialog,
91
- closeDialog: closeDialog
101
+ closeDialog: _closeDialog
92
102
  };
93
103
  return /*#__PURE__*/_react.default.createElement(DialogsContext.Provider, {
94
104
  value: context
95
- }, children, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, state.element ? /*#__PURE__*/_react.default.createElement(_CustomDialog.CustomDialog, {
96
- open: state.open,
97
- loading: state.loading,
98
- closeDialog: closeDialog,
99
- onSubmit: onSubmit
100
- }, state.element) : null, !state.element ? /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
101
- title: state.title,
102
- content: state.content,
103
- open: state.open,
104
- acceptLabel: state.acceptLabel,
105
- cancelLabel: state.cancelLabel,
106
- loadingLabel: state.loadingLabel,
107
- loading: state.loading,
108
- closeDialog: closeDialog,
109
- onSubmit: onSubmit
110
- }) : null));
105
+ }, children, Array.from(dialogs.values()).map(function (dialog) {
106
+ return dialog.element ? /*#__PURE__*/_react.default.createElement(_CustomDialog.CustomDialog, {
107
+ key: dialog.id,
108
+ open: dialog.open,
109
+ loading: dialog.loading,
110
+ closeDialog: function closeDialog() {
111
+ return _closeDialog(dialog.id);
112
+ },
113
+ onSubmit: function onSubmit(data) {
114
+ return _onSubmit(dialog.id, data);
115
+ }
116
+ }, dialog.element) : /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
117
+ key: dialog.id,
118
+ title: dialog.title,
119
+ content: dialog.content,
120
+ open: dialog.open,
121
+ acceptLabel: dialog.acceptLabel,
122
+ cancelLabel: dialog.cancelLabel,
123
+ loadingLabel: dialog.loadingLabel,
124
+ loading: dialog.loading,
125
+ closeDialog: function closeDialog() {
126
+ return _closeDialog(dialog.id);
127
+ },
128
+ onSubmit: function onSubmit(data) {
129
+ return _onSubmit(dialog.id, data);
130
+ }
131
+ });
132
+ }));
111
133
  };
112
134
  var createDialogsProvider = exports.createDialogsProvider = function createDialogsProvider() {
113
- return function (Component) {
135
+ return (0, _app.createProvider)(function (Component) {
114
136
  return function DialogsProviderDecorator(_ref3) {
115
137
  var children = _ref3.children;
116
138
  return /*#__PURE__*/_react.default.createElement(DialogsProvider, null, /*#__PURE__*/_react.default.createElement(Component, null, children));
117
139
  };
118
- };
140
+ });
119
141
  };
120
142
 
121
143
  //# sourceMappingURL=DialogsContext.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_Dialog","_CustomDialog","initializeState","exports","title","content","undefined","acceptLabel","cancelLabel","loadingLabel","onAccept","onClose","open","loading","DialogsContext","React","createContext","DialogsProvider","_ref","children","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","_useState2","_slicedToArray2","default","state","setState","showDialog","params","_objectSpread2","showCustomDialog","_ref2","onSubmit","element","closeDialog","data","error","message","context","createElement","Provider","value","Fragment","CustomDialog","Dialog","createDialogsProvider","Component","DialogsProviderDecorator","_ref3"],"sources":["DialogsContext.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { GenericFormData } from \"@webiny/form\";\nimport { useSnackbar } from \"~/hooks\";\nimport { Dialog } from \"./Dialog\";\nimport { CustomDialog } from \"./CustomDialog\";\n\ninterface ShowDialogParams {\n title: ReactNode;\n content: ReactNode;\n actions?: JSX.Element;\n acceptLabel?: ReactNode;\n cancelLabel?: ReactNode;\n loadingLabel?: ReactNode;\n onAccept?: (data: GenericFormData) => void;\n onClose?: () => void;\n}\n\ninterface ShowCustomDialogParams {\n element: JSX.Element;\n onSubmit?: (data: GenericFormData) => void;\n}\n\nexport interface DialogsContext {\n showDialog: (params: ShowDialogParams) => void;\n showCustomDialog: (params: ShowCustomDialogParams) => void;\n}\n\ninterface DialogsProviderProps {\n children: ReactNode;\n}\n\ninterface State {\n open: boolean;\n loading: boolean;\n title: ReactNode;\n content: ReactNode;\n acceptLabel: ReactNode;\n cancelLabel: ReactNode;\n loadingLabel: ReactNode;\n element?: JSX.Element;\n onAccept?: (data: GenericFormData) => void;\n onClose?: () => void;\n}\n\nexport const initializeState = (): State => ({\n title: `Confirmation`,\n content: undefined,\n acceptLabel: `Confirm`,\n cancelLabel: `Cancel`,\n loadingLabel: `Loading`,\n onAccept: undefined,\n onClose: undefined,\n open: false,\n loading: false\n});\n\nexport const DialogsContext = React.createContext<DialogsContext | undefined>(undefined);\n\nexport const DialogsProvider = ({ children }: DialogsProviderProps) => {\n const { showSnackbar } = useSnackbar();\n\n const [state, setState] = useState(initializeState());\n\n const showDialog = (params: ShowDialogParams | JSX.Element) => {\n setState(state => ({\n ...state,\n ...params,\n open: true\n }));\n };\n\n const showCustomDialog = ({ onSubmit, element }: ShowCustomDialogParams) => {\n setState(state => ({\n ...state,\n element,\n onAccept: onSubmit,\n open: true\n }));\n };\n\n const closeDialog = () => {\n if (typeof state.onClose === \"function\") {\n state.onClose();\n }\n\n setState(state => ({\n ...state,\n open: false,\n element: undefined,\n content: null\n }));\n };\n\n const onSubmit = async (data: GenericFormData) => {\n try {\n if (typeof state.onAccept === \"function\") {\n setState(state => ({\n ...state,\n loading: true\n }));\n\n await state.onAccept(data);\n }\n } catch (error) {\n showSnackbar(error.message);\n } finally {\n setState(state => ({\n ...state,\n loading: false\n }));\n closeDialog();\n }\n };\n\n const context = {\n showDialog,\n showCustomDialog,\n closeDialog\n };\n\n return (\n <DialogsContext.Provider value={context}>\n {children}\n <>\n {state.element ? (\n <CustomDialog\n open={state.open}\n loading={state.loading}\n closeDialog={closeDialog}\n onSubmit={onSubmit}\n >\n {state.element}\n </CustomDialog>\n ) : null}\n {!state.element ? (\n <Dialog\n title={state.title}\n content={state.content}\n open={state.open}\n acceptLabel={state.acceptLabel}\n cancelLabel={state.cancelLabel}\n loadingLabel={state.loadingLabel}\n loading={state.loading}\n closeDialog={closeDialog}\n onSubmit={onSubmit}\n />\n ) : null}\n </>\n </DialogsContext.Provider>\n );\n};\n\ninterface DialogsProviderProps {\n children: React.ReactNode;\n}\n\nexport const createDialogsProvider =\n () => (Component: React.ComponentType<React.PropsWithChildren>) => {\n return function DialogsProviderDecorator({ children }: DialogsProviderProps) {\n return (\n <DialogsProvider>\n <Component>{children}</Component>\n </DialogsProvider>\n );\n };\n };\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_hooks","_Dialog","_CustomDialog","_app","_utils","initializeState","exports","params","arguments","length","undefined","id","concat","generateId","title","content","acceptLabel","cancelLabel","loadingLabel","onAccept","onClose","open","loading","element","DialogsContext","React","createContext","DialogsProvider","_ref","children","_useSnackbar","useSnackbar","showSnackbar","_useState","useState","Map","_useState2","_slicedToArray2","default","dialogs","setDialogs","showDialog","newDialog","_objectSpread2","set","showCustomDialog","_ref2","onSubmit","closeDialog","newDialogs","delete","data","dialog","get","error","message","context","createElement","Provider","value","Array","from","values","map","CustomDialog","key","Dialog","createDialogsProvider","createProvider","Component","DialogsProviderDecorator","_ref3"],"sources":["DialogsContext.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { GenericFormData } from \"@webiny/form\";\nimport { useSnackbar } from \"~/hooks\";\nimport { Dialog } from \"./Dialog\";\nimport { CustomDialog } from \"./CustomDialog\";\nimport { createProvider } from \"@webiny/app\";\nimport { generateId } from \"@webiny/utils\";\n\ninterface ShowDialogParams {\n title: ReactNode;\n content: ReactNode;\n actions?: JSX.Element;\n acceptLabel?: ReactNode;\n cancelLabel?: ReactNode;\n loadingLabel?: ReactNode;\n onAccept?: (data: GenericFormData) => void;\n onClose?: () => void;\n}\n\ninterface ShowCustomDialogParams {\n element: JSX.Element;\n onSubmit?: (data: GenericFormData) => void;\n}\n\nexport interface DialogsContext {\n showDialog: (params: ShowDialogParams) => void;\n showCustomDialog: (params: ShowCustomDialogParams) => void;\n}\n\ninterface DialogsProviderProps {\n children: ReactNode;\n}\n\ninterface DialogState extends ShowDialogParams {\n id: string;\n open: boolean;\n loading: boolean;\n element?: JSX.Element;\n}\n\nexport const initializeState = (params: Partial<DialogState> = {}): DialogState => ({\n id: `dialog-${generateId()}`,\n title: params.title ?? `Confirmation`,\n content: params.content,\n acceptLabel: params.acceptLabel ?? `Confirm`,\n cancelLabel: params.cancelLabel ?? `Cancel`,\n loadingLabel: params.loadingLabel ?? `Loading`,\n onAccept: params.onAccept,\n onClose: params.onClose,\n open: params.open ?? false,\n loading: params.loading ?? false,\n element: params.element\n});\n\nexport const DialogsContext = React.createContext<DialogsContext | undefined>(undefined);\n\nexport const DialogsProvider = ({ children }: DialogsProviderProps) => {\n const { showSnackbar } = useSnackbar();\n const [dialogs, setDialogs] = useState<Map<string, DialogState>>(new Map());\n\n const showDialog = (params: ShowDialogParams) => {\n const newDialog = initializeState({ ...params, open: true });\n setDialogs(dialogs => new Map(dialogs).set(newDialog.id, newDialog));\n };\n\n const showCustomDialog = ({ onSubmit, element }: ShowCustomDialogParams) => {\n const newDialog = initializeState({\n element,\n onAccept: onSubmit,\n open: true\n });\n setDialogs(dialogs => new Map(dialogs).set(newDialog.id, newDialog));\n };\n\n const closeDialog = (id: string) => {\n setDialogs(dialogs => {\n const newDialogs = new Map(dialogs);\n newDialogs.delete(id);\n return newDialogs;\n });\n };\n\n const onSubmit = async (id: string, data: GenericFormData) => {\n const dialog = dialogs.get(id);\n if (!dialog) {\n return;\n }\n\n try {\n if (typeof dialog.onAccept === \"function\") {\n setDialogs(dialogs => {\n const newDialogs = new Map(dialogs);\n newDialogs.set(id, { ...dialog, loading: true });\n return newDialogs;\n });\n\n await dialog.onAccept(data);\n }\n } catch (error) {\n showSnackbar(error.message);\n } finally {\n setDialogs(dialogs => {\n const newDialogs = new Map(dialogs);\n newDialogs.set(id, { ...dialog, loading: false });\n return newDialogs;\n });\n closeDialog(id);\n }\n };\n\n const context = {\n showDialog,\n showCustomDialog,\n closeDialog\n };\n\n return (\n <DialogsContext.Provider value={context}>\n {children}\n {Array.from(dialogs.values()).map(dialog =>\n dialog.element ? (\n <CustomDialog\n key={dialog.id}\n open={dialog.open}\n loading={dialog.loading}\n closeDialog={() => closeDialog(dialog.id)}\n onSubmit={data => onSubmit(dialog.id, data)}\n >\n {dialog.element}\n </CustomDialog>\n ) : (\n <Dialog\n key={dialog.id}\n title={dialog.title}\n content={dialog.content}\n open={dialog.open}\n acceptLabel={dialog.acceptLabel}\n cancelLabel={dialog.cancelLabel}\n loadingLabel={dialog.loadingLabel}\n loading={dialog.loading}\n closeDialog={() => closeDialog(dialog.id)}\n onSubmit={data => onSubmit(dialog.id, data)}\n />\n )\n )}\n </DialogsContext.Provider>\n );\n};\n\nexport const createDialogsProvider = () => {\n return createProvider(Component => {\n return function DialogsProviderDecorator({ children }: DialogsProviderProps) {\n return (\n <DialogsProvider>\n <Component>{children}</Component>\n </DialogsProvider>\n );\n };\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import { IconPickerProps } from "./IconPickerComponent";
3
+ import { Icon } from "./types";
4
+ declare const IconPicker: {
5
+ (props: IconPickerProps): React.JSX.Element;
6
+ Icon: ({ icon, ...props }: IconRendererWithProviderProps) => React.JSX.Element | null;
7
+ IconPickerTab: ({ label, actions, onChange, cellDecorator }: import("./IconPickerTab").IconPickerTabProps) => React.JSX.Element;
8
+ };
9
+ interface IconRendererWithProviderProps {
10
+ icon?: Icon;
11
+ size?: number;
12
+ }
13
+ export { IconPicker };
@@ -0,0 +1,46 @@
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.IconPicker = void 0;
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _config = require("./config");
12
+ var _IconRepositoryFactory = require("./IconRepositoryFactory");
13
+ var _IconPickerPresenter = require("./IconPickerPresenter");
14
+ var _IconPickerComponent = require("./IconPickerComponent");
15
+ var _IconRenderer = require("./IconRenderer");
16
+ var _IconPickerTab = require("./IconPickerTab");
17
+ var _excluded = ["icon"];
18
+ var IconPicker = exports.IconPicker = function IconPicker(props) {
19
+ var _useIconPickerConfig = (0, _config.useIconPickerConfig)(),
20
+ iconTypes = _useIconPickerConfig.iconTypes,
21
+ iconPackProviders = _useIconPickerConfig.iconPackProviders;
22
+ var repository = _IconRepositoryFactory.iconRepositoryFactory.getRepository(iconTypes, iconPackProviders);
23
+ var presenter = (0, _react.useMemo)(function () {
24
+ return new _IconPickerPresenter.IconPickerPresenter(repository, props.size);
25
+ }, [repository, props.size]);
26
+ (0, _react.useEffect)(function () {
27
+ presenter.load(props.value);
28
+ }, [repository, props.value]);
29
+ return /*#__PURE__*/_react.default.createElement(_IconPickerComponent.IconPickerComponent, Object.assign({
30
+ presenter: presenter
31
+ }, props));
32
+ };
33
+ var IconRendererWithProvider = function IconRendererWithProvider(_ref) {
34
+ var icon = _ref.icon,
35
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
36
+ if (!icon) {
37
+ return null;
38
+ }
39
+ return /*#__PURE__*/_react.default.createElement(_IconRenderer.IconProvider, Object.assign({
40
+ icon: icon
41
+ }, props), /*#__PURE__*/_react.default.createElement(_IconRenderer.IconRenderer, null));
42
+ };
43
+ IconPicker.Icon = IconRendererWithProvider;
44
+ IconPicker.IconPickerTab = _IconPickerTab.IconPickerTab;
45
+
46
+ //# sourceMappingURL=IconPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_config","_IconRepositoryFactory","_IconPickerPresenter","_IconPickerComponent","_IconRenderer","_IconPickerTab","_excluded","IconPicker","exports","props","_useIconPickerConfig","useIconPickerConfig","iconTypes","iconPackProviders","repository","iconRepositoryFactory","getRepository","presenter","useMemo","IconPickerPresenter","size","useEffect","load","value","default","createElement","IconPickerComponent","Object","assign","IconRendererWithProvider","_ref","icon","_objectWithoutProperties2","IconProvider","IconRenderer","Icon","IconPickerTab"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useMemo, useEffect } from \"react\";\nimport { useIconPickerConfig } from \"./config\";\nimport { iconRepositoryFactory } from \"./IconRepositoryFactory\";\nimport { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconPickerComponent, IconPickerProps } from \"./IconPickerComponent\";\nimport { IconProvider, IconRenderer } from \"./IconRenderer\";\nimport { IconPickerTab } from \"./IconPickerTab\";\nimport { Icon } from \"./types\";\n\nconst IconPicker = (props: IconPickerProps) => {\n const { iconTypes, iconPackProviders } = useIconPickerConfig();\n const repository = iconRepositoryFactory.getRepository(iconTypes, iconPackProviders);\n\n const presenter = useMemo(() => {\n return new IconPickerPresenter(repository, props.size);\n }, [repository, props.size]);\n\n useEffect(() => {\n presenter.load(props.value);\n }, [repository, props.value]);\n\n return <IconPickerComponent presenter={presenter} {...props} />;\n};\n\ninterface IconRendererWithProviderProps {\n icon?: Icon;\n size?: number;\n}\n\nconst IconRendererWithProvider = ({ icon, ...props }: IconRendererWithProviderProps) => {\n if (!icon) {\n return null;\n }\n\n return (\n <IconProvider icon={icon} {...props}>\n <IconRenderer />\n </IconProvider>\n );\n};\n\nIconPicker.Icon = IconRendererWithProvider;\nIconPicker.IconPickerTab = IconPickerTab;\n\nexport { IconPicker };\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,sBAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,aAAA,GAAAL,OAAA;AACA,IAAAM,cAAA,GAAAN,OAAA;AAAgD,IAAAO,SAAA;AAGhD,IAAMC,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,SAAbA,UAAUA,CAAIE,KAAsB,EAAK;EAC3C,IAAAC,oBAAA,GAAyC,IAAAC,2BAAmB,EAAC,CAAC;IAAtDC,SAAS,GAAAF,oBAAA,CAATE,SAAS;IAAEC,iBAAiB,GAAAH,oBAAA,CAAjBG,iBAAiB;EACpC,IAAMC,UAAU,GAAGC,4CAAqB,CAACC,aAAa,CAACJ,SAAS,EAAEC,iBAAiB,CAAC;EAEpF,IAAMI,SAAS,GAAG,IAAAC,cAAO,EAAC,YAAM;IAC5B,OAAO,IAAIC,wCAAmB,CAACL,UAAU,EAAEL,KAAK,CAACW,IAAI,CAAC;EAC1D,CAAC,EAAE,CAACN,UAAU,EAAEL,KAAK,CAACW,IAAI,CAAC,CAAC;EAE5B,IAAAC,gBAAS,EAAC,YAAM;IACZJ,SAAS,CAACK,IAAI,CAACb,KAAK,CAACc,KAAK,CAAC;EAC/B,CAAC,EAAE,CAACT,UAAU,EAAEL,KAAK,CAACc,KAAK,CAAC,CAAC;EAE7B,oBAAO1B,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACtB,oBAAA,CAAAuB,mBAAmB,EAAAC,MAAA,CAAAC,MAAA;IAACX,SAAS,EAAEA;EAAU,GAAKR,KAAK,CAAG,CAAC;AACnE,CAAC;AAOD,IAAMoB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAAC,IAAA,EAA0D;EAAA,IAApDC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAKtB,KAAK,OAAAuB,yBAAA,CAAAR,OAAA,EAAAM,IAAA,EAAAxB,SAAA;EAC9C,IAAI,CAACyB,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,oBACIlC,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACrB,aAAA,CAAA6B,YAAY,EAAAN,MAAA,CAAAC,MAAA;IAACG,IAAI,EAAEA;EAAK,GAAKtB,KAAK,gBAC/BZ,MAAA,CAAA2B,OAAA,CAAAC,aAAA,CAACrB,aAAA,CAAA8B,YAAY,MAAE,CACL,CAAC;AAEvB,CAAC;AAED3B,UAAU,CAAC4B,IAAI,GAAGN,wBAAwB;AAC1CtB,UAAU,CAAC6B,aAAa,GAAGA,4BAAa","ignoreList":[]}
@@ -0,0 +1,63 @@
1
+ /// <reference types="react" />
2
+ export declare const IconPickerWrapper: import("@emotion/styled").StyledComponent<{
3
+ theme?: import("@emotion/react").Theme | undefined;
4
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
5
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
6
+ export declare const IconPickerLabel: import("@emotion/styled").StyledComponent<{
7
+ theme?: import("@emotion/react").Theme | undefined;
8
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
9
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
10
+ export declare const IconPickerInput: import("@emotion/styled").StyledComponent<{
11
+ theme?: import("@emotion/react").Theme | undefined;
12
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
13
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
14
+ export declare const MenuHeader: import("@emotion/styled").StyledComponent<{
15
+ theme?: import("@emotion/react").Theme | undefined;
16
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
17
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
18
+ export declare const MenuContent: import("@emotion/styled").StyledComponent<{
19
+ theme?: import("@emotion/react").Theme | undefined;
20
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
21
+ } & {
22
+ size?: string | undefined;
23
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
24
+ export declare const Row: import("@emotion/styled").StyledComponent<{
25
+ theme?: import("@emotion/react").Theme | undefined;
26
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
27
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
28
+ export declare const Cell: import("@emotion/styled").StyledComponent<{
29
+ theme?: import("@emotion/react").Theme | undefined;
30
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
31
+ } & {
32
+ isActive: boolean;
33
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
34
+ export declare const CategoryLabel: import("@emotion/styled").StyledComponent<{
35
+ theme?: import("@emotion/react").Theme | undefined;
36
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
37
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
38
+ export declare const TabContentWrapper: import("@emotion/styled").StyledComponent<{
39
+ theme?: import("@emotion/react").Theme | undefined;
40
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
41
+ } & {
42
+ size?: string | undefined;
43
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
44
+ export declare const ListWrapper: import("@emotion/styled").StyledComponent<{
45
+ theme?: import("@emotion/react").Theme | undefined;
46
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
47
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
48
+ export declare const NoResultsWrapper: import("@emotion/styled").StyledComponent<{
49
+ theme?: import("@emotion/react").Theme | undefined;
50
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
51
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
52
+ export declare const InputsWrapper: import("@emotion/styled").StyledComponent<{
53
+ theme?: import("@emotion/react").Theme | undefined;
54
+ as?: import("react").ElementType<any, keyof import("react").JSX.IntrinsicElements> | undefined;
55
+ }, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
56
+ export declare const PlaceholderIcon: import("@emotion/styled").StyledComponent<import("react").SVGProps<SVGSVGElement> & {
57
+ alt?: string | undefined;
58
+ } & {
59
+ theme?: import("@emotion/react").Theme | undefined;
60
+ }, {}, {}>;
61
+ export declare const RemoveButton: import("@emotion/styled").StyledComponent<import("@webiny/ui/Button").ButtonProps & {
62
+ theme?: import("@emotion/react").Theme | undefined;
63
+ }, {}, {}>;