@webiny/app-admin 6.0.0-alpha.0 → 6.0.0-alpha.2

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 (214) hide show
  1. package/base/Admin.d.ts +1 -1
  2. package/base/Admin.js.map +1 -1
  3. package/base/plugins/AddGraphQLQuerySelection.d.ts +1 -1
  4. package/base/plugins/AddGraphQLQuerySelection.js.map +1 -1
  5. package/base/providers/ApolloProvider.d.ts +1 -1
  6. package/base/providers/ApolloProvider.js.map +1 -1
  7. package/base/providers/ViewCompositionProvider.d.ts +1 -1
  8. package/base/providers/ViewCompositionProvider.js.map +1 -1
  9. package/base/ui/Layout.d.ts +2 -0
  10. package/base/ui/Layout.js.map +1 -1
  11. package/base/ui/LoginScreen.d.ts +1 -0
  12. package/base/ui/LoginScreen.js +12 -2
  13. package/base/ui/LoginScreen.js.map +1 -1
  14. package/base/ui/Navigation.d.ts +1 -0
  15. package/base/ui/Navigation.js +12 -1
  16. package/base/ui/Navigation.js.map +1 -1
  17. package/components/AppInstaller/Sidebar.d.ts +1 -1
  18. package/components/AppInstaller/Sidebar.js +2 -2
  19. package/components/AppInstaller/Sidebar.js.map +1 -1
  20. package/components/AppInstaller/index.js.map +1 -1
  21. package/components/AppInstaller/useInstaller.d.ts +1 -1
  22. package/components/AppInstaller/useInstaller.js.map +1 -1
  23. package/components/BulkActions/Worker.d.ts +1 -0
  24. package/components/BulkActions/Worker.js +4 -0
  25. package/components/BulkActions/Worker.js.map +1 -1
  26. package/components/BulkActions/useDialogWithReport/DialogMessage.d.ts +1 -1
  27. package/components/BulkActions/useDialogWithReport/DialogMessage.js.map +1 -1
  28. package/components/BulkActions/useDialogWithReport/useDialogWithReport.d.ts +1 -1
  29. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js +20 -48
  30. package/components/BulkActions/useDialogWithReport/useDialogWithReport.js.map +1 -1
  31. package/components/Dialogs/CustomDialog.d.ts +1 -1
  32. package/components/Dialogs/CustomDialog.js.map +1 -1
  33. package/components/Dialogs/Dialog.d.ts +3 -2
  34. package/components/Dialogs/Dialog.js.map +1 -1
  35. package/components/Dialogs/DialogsContext.d.ts +4 -2
  36. package/components/Dialogs/DialogsContext.js +9 -2
  37. package/components/Dialogs/DialogsContext.js.map +1 -1
  38. package/components/EmptyView.d.ts +2 -1
  39. package/components/EmptyView.js.map +1 -1
  40. package/components/Filters/Filters.d.ts +1 -1
  41. package/components/Filters/Filters.js.map +1 -1
  42. package/components/FloatingPanel.js +2 -2
  43. package/components/FloatingPanel.js.map +1 -1
  44. package/components/IconPicker/IconPicker.d.ts +2 -2
  45. package/components/IconPicker/IconPicker.js.map +1 -1
  46. package/components/IconPicker/IconPickerComponent.d.ts +4 -3
  47. package/components/IconPicker/IconPickerComponent.js.map +1 -1
  48. package/components/IconPicker/IconPickerPresenter.d.ts +3 -3
  49. package/components/IconPicker/IconPickerPresenter.js.map +1 -1
  50. package/components/IconPicker/IconPickerPresenter.test.js.map +1 -1
  51. package/components/IconPicker/IconPickerPresenterProvider.d.ts +1 -1
  52. package/components/IconPicker/IconPickerPresenterProvider.js.map +1 -1
  53. package/components/IconPicker/IconPickerTab.d.ts +1 -1
  54. package/components/IconPicker/IconPickerTab.js.map +1 -1
  55. package/components/IconPicker/IconRenderer.d.ts +1 -1
  56. package/components/IconPicker/IconRenderer.js.map +1 -1
  57. package/components/IconPicker/IconRepository.d.ts +2 -2
  58. package/components/IconPicker/IconRepository.js.map +1 -1
  59. package/components/IconPicker/IconRepository.test.js.map +1 -1
  60. package/components/IconPicker/IconRepositoryFactory.d.ts +1 -1
  61. package/components/IconPicker/IconRepositoryFactory.js.map +1 -1
  62. package/components/IconPicker/components/IconPickerCell.d.ts +1 -1
  63. package/components/IconPicker/components/IconPickerCell.js.map +1 -1
  64. package/components/IconPicker/components/IconPickerContent.d.ts +1 -1
  65. package/components/IconPicker/components/IconPickerContent.js.map +1 -1
  66. package/components/IconPicker/components/IconPickerTrigger.d.ts +1 -1
  67. package/components/IconPicker/components/IconPickerTrigger.js.map +1 -1
  68. package/components/IconPicker/config/IconPackProvider.d.ts +1 -1
  69. package/components/IconPicker/config/IconPackProvider.js.map +1 -1
  70. package/components/IconPicker/config/index.d.ts +2 -2
  71. package/components/IconPicker/config/index.js.map +1 -1
  72. package/components/IconPicker/plugins/customPlugin.js.map +1 -1
  73. package/components/IconPicker/plugins/emojisPlugin.js.map +1 -1
  74. package/components/IconPicker/plugins/iconsPlugin.js.map +1 -1
  75. package/components/LexicalEditor/LexicalEditor.d.ts +2 -2
  76. package/components/LexicalEditor/LexicalEditor.js.map +1 -1
  77. package/components/OptionsMenu/OptionsMenuLink.d.ts +2 -1
  78. package/components/OptionsMenu/OptionsMenuLink.js.map +1 -1
  79. package/components/OverlayLayout/OverlayLayout.d.ts +2 -2
  80. package/components/OverlayLayout/OverlayLayout.js +3 -2
  81. package/components/OverlayLayout/OverlayLayout.js.map +1 -1
  82. package/components/OverlayLayout/components/OverlayHeader.d.ts +1 -1
  83. package/components/Permissions/Permissions.d.ts +2 -2
  84. package/components/Permissions/Permissions.js.map +1 -1
  85. package/components/ResizablePanels/index.d.ts +1 -1
  86. package/components/ResizablePanels/index.js +1 -1
  87. package/components/ResizablePanels/index.js.map +1 -1
  88. package/components/RichTextEditor/RichTextEditor.d.ts +1 -1
  89. package/components/RichTextEditor/RichTextEditor.js.map +1 -1
  90. package/components/RichTextEditor/tools/header/index.d.ts +3 -2
  91. package/components/RichTextEditor/tools/header/index.js.map +1 -1
  92. package/components/RichTextEditor/tools/image/index.d.ts +2 -2
  93. package/components/RichTextEditor/tools/image/index.js.map +1 -1
  94. package/components/RichTextEditor/tools/image/tunes.d.ts +2 -2
  95. package/components/RichTextEditor/tools/image/tunes.js.map +1 -1
  96. package/components/RichTextEditor/tools/image/ui.d.ts +2 -2
  97. package/components/RichTextEditor/tools/image/ui.js.map +1 -1
  98. package/components/RichTextEditor/tools/paragraph/index.d.ts +3 -2
  99. package/components/RichTextEditor/tools/paragraph/index.js.map +1 -1
  100. package/components/RichTextEditor/tools/textColor/index.d.ts +1 -1
  101. package/components/RichTextEditor/tools/textColor/index.js.map +1 -1
  102. package/components/Routes.js.map +1 -1
  103. package/components/SimpleForm/SimpleForm.d.ts +1 -1
  104. package/components/SingleImageUpload.d.ts +2 -2
  105. package/components/SingleImageUpload.js.map +1 -1
  106. package/components/SplitView/SplitView.d.ts +2 -2
  107. package/components/SplitView/SplitView.js +1 -1
  108. package/components/SplitView/SplitView.js.map +1 -1
  109. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.d.ts +1 -1
  110. package/config/AdminConfig/Menu/SupportMenu/SupportMenuItem.js.map +1 -1
  111. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.d.ts +1 -1
  112. package/config/AdminConfig/Menu/SupportMenu/SupportMenuLink.js.map +1 -1
  113. package/config/AdminConfig/Menu/UserMenu/types.d.ts +1 -1
  114. package/config/AdminConfig/Menu/UserMenu/types.js.map +1 -1
  115. package/config/AdminConfig/Menu/types.d.ts +1 -1
  116. package/config/AdminConfig/Menu/types.js.map +1 -1
  117. package/config/AdminConfig/Theme/assignColor.d.ts +1 -1
  118. package/config/AdminConfig/Theme/assignColor.js.map +1 -1
  119. package/config/AdminConfig/Theme/types.d.ts +1 -1
  120. package/config/AdminConfig/Theme/types.js.map +1 -1
  121. package/config/AdminConfig/Theme.d.ts +1 -1
  122. package/config/AdminConfig/Theme.js.map +1 -1
  123. package/config/AdminConfig.d.ts +1 -1
  124. package/config/AdminConfig.js.map +1 -1
  125. package/config/createAdminConfig.d.ts +1 -1
  126. package/config/createAdminConfig.js.map +1 -1
  127. package/hooks/useDialog.d.ts +1 -1
  128. package/hooks/useDialog.js.map +1 -1
  129. package/hooks/useKeyHandler.d.ts +1 -1
  130. package/hooks/useKeyHandler.js.map +1 -1
  131. package/index.d.ts +3 -3
  132. package/index.js +2 -4
  133. package/index.js.map +1 -1
  134. package/package.json +22 -22
  135. package/plugins/MenuPlugin.d.ts +1 -1
  136. package/plugins/MenuPlugin.js.map +1 -1
  137. package/plugins/PermissionRendererPlugin.d.ts +1 -1
  138. package/plugins/PermissionRendererPlugin.js.map +1 -1
  139. package/plugins/uiLayoutRenderer/index.js.map +1 -1
  140. package/types.d.ts +5 -4
  141. package/types.js.map +1 -1
  142. package/ui/elements/AccordionElement.d.ts +2 -1
  143. package/ui/elements/AccordionElement.js.map +1 -1
  144. package/ui/elements/ButtonElement.d.ts +2 -1
  145. package/ui/elements/ButtonElement.js.map +1 -1
  146. package/ui/elements/ButtonGroupElement.d.ts +2 -1
  147. package/ui/elements/ButtonGroupElement.js +1 -1
  148. package/ui/elements/ButtonGroupElement.js.map +1 -1
  149. package/ui/elements/LabelElement.d.ts +3 -2
  150. package/ui/elements/LabelElement.js.map +1 -1
  151. package/ui/elements/NavigationMenuElement.d.ts +4 -3
  152. package/ui/elements/NavigationMenuElement.js.map +1 -1
  153. package/ui/elements/SmallButtonElement.d.ts +3 -2
  154. package/ui/elements/SmallButtonElement.js.map +1 -1
  155. package/ui/elements/TypographyElement.d.ts +2 -1
  156. package/ui/elements/TypographyElement.js.map +1 -1
  157. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.d.ts +3 -2
  158. package/ui/elements/form/DynamicFieldsetElement/DynamicFieldsetRowElement.js.map +1 -1
  159. package/ui/elements/form/DynamicFieldsetElement.d.ts +3 -2
  160. package/ui/elements/form/DynamicFieldsetElement.js.map +1 -1
  161. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.d.ts +4 -3
  162. package/ui/elements/form/FileManagerElement/EmptyStateElementRenderer.js.map +1 -1
  163. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.d.ts +4 -3
  164. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js +1 -1
  165. package/ui/elements/form/FileManagerElement/FileManagerElementRenderer.js.map +1 -1
  166. package/ui/elements/form/FileManagerElement.d.ts +3 -2
  167. package/ui/elements/form/FileManagerElement.js.map +1 -1
  168. package/ui/elements/form/FormElement.d.ts +3 -2
  169. package/ui/elements/form/FormElement.js.map +1 -1
  170. package/ui/elements/form/FormFieldElement.d.ts +6 -5
  171. package/ui/elements/form/FormFieldElement.js.map +1 -1
  172. package/ui/elements/form/HiddenElement.d.ts +2 -1
  173. package/ui/elements/form/HiddenElement.js.map +1 -1
  174. package/ui/elements/form/InputElement.d.ts +2 -1
  175. package/ui/elements/form/InputElement.js.map +1 -1
  176. package/ui/elements/form/PasswordElement.d.ts +1 -1
  177. package/ui/elements/form/PasswordElement.js.map +1 -1
  178. package/ui/elements/form/SelectElement.d.ts +2 -1
  179. package/ui/elements/form/SelectElement.js.map +1 -1
  180. package/ui/elements/form/TextareaElement.d.ts +3 -2
  181. package/ui/elements/form/TextareaElement.js.map +1 -1
  182. package/ui/views/AdminView/ContentElement.js +1 -1
  183. package/ui/views/AdminView/ContentElement.js.map +1 -1
  184. package/ui/views/AdminView/HeaderElement.js.map +1 -1
  185. package/ui/views/AdminView/HeaderSectionCenterElement.d.ts +2 -1
  186. package/ui/views/AdminView/HeaderSectionCenterElement.js.map +1 -1
  187. package/ui/views/AdminView/HeaderSectionLeftElement.d.ts +2 -1
  188. package/ui/views/AdminView/HeaderSectionLeftElement.js.map +1 -1
  189. package/ui/views/AdminView/HeaderSectionRightElement.d.ts +2 -1
  190. package/ui/views/AdminView/HeaderSectionRightElement.js.map +1 -1
  191. package/ui/views/FormView/FormContainerElement.d.ts +2 -1
  192. package/ui/views/FormView/FormContainerElement.js.map +1 -1
  193. package/ui/views/FormView/FormContentElement.d.ts +2 -1
  194. package/ui/views/FormView/FormContentElement.js.map +1 -1
  195. package/ui/views/FormView/FormFooterElement.d.ts +2 -1
  196. package/ui/views/FormView/FormFooterElement.js.map +1 -1
  197. package/ui/views/FormView/FormHeaderElement.d.ts +3 -2
  198. package/ui/views/FormView/FormHeaderElement.js.map +1 -1
  199. package/ui/views/FormView.d.ts +3 -3
  200. package/ui/views/FormView.js.map +1 -1
  201. package/ui/views/OverlayView/ContentElement.d.ts +2 -1
  202. package/ui/views/OverlayView/ContentElement.js +1 -1
  203. package/ui/views/OverlayView/ContentElement.js.map +1 -1
  204. package/ui/views/OverlayView/HeaderElement.d.ts +2 -1
  205. package/ui/views/OverlayView/HeaderElement.js.map +1 -1
  206. package/ui/views/OverlayView/HeaderTitleElement.d.ts +4 -2
  207. package/ui/views/OverlayView/HeaderTitleElement.js.map +1 -1
  208. package/ui/views/OverlayView.d.ts +3 -2
  209. package/ui/views/OverlayView.js +1 -1
  210. package/ui/views/OverlayView.js.map +1 -1
  211. package/ui/views/SplitView/SplitViewPanelElement.d.ts +2 -1
  212. package/ui/views/SplitView/SplitViewPanelElement.js.map +1 -1
  213. package/ui/views/SplitView.d.ts +1 -1
  214. package/ui/views/SplitView.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["React","OverlayLoader","useUi","i18n","ResultDialogMessage","t","ns","useDialogWithReport","ui","showConfirmationDialog","execute","title","message","loadingLabel","setState","dialog","options","loading","createElement","text","actions","accept","label","onClick","cancel","showResultsDialog","params","setTimeout","hideResultsDialog"],"sources":["useDialogWithReport.tsx"],"sourcesContent":["import React from \"react\";\nimport { OverlayLoader } from \"@webiny/admin-ui\";\nimport { useUi } from \"@webiny/app/hooks/useUi\";\nimport { i18n } from \"@webiny/app/i18n\";\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: <OverlayLoader text={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":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,KAAK,QAAQ,yBAAyB;AAC/C,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,mBAAmB;AAG5B,MAAMC,CAAC,GAAGF,IAAI,CAACG,EAAE,CAAC,wCAAwC,CAAC;AAsB3D,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAmC;EAClE,MAAMC,EAAE,GAAGN,KAAK,CAAC,CAAC;EAElB,MAAMO,sBAAsB,GAAGA,CAAC;IAC5BC,OAAO;IACPC,KAAK;IACLC,OAAO;IACPC;EAC0B,CAAC,KAAK;IAChCL,EAAE,CAACM,QAAQ,CAACN,EAAE,IAAI;MACd,OAAO;QACH,GAAGA,EAAE;QACLO,MAAM,EAAE;UACJH,OAAO,EAAEA,OAAO,IAAIP,CAAC,oCAAoC;UACzDW,OAAO,EAAE;YACLL,KAAK,EAAEA,KAAK,IAAIN,CAAC,SAAS;YAC1BY,OAAO,eAAEjB,KAAA,CAAAkB,aAAA,CAACjB,aAAa;cAACkB,IAAI,EAAEN;YAAa,CAAE,CAAC;YAC9CO,OAAO,EAAE;cACLC,MAAM,EAAE;gBACJC,KAAK,EAAEjB,CAAC,SAAS;gBACjBkB,OAAO,EAAE,MAAAA,CAAA,KAAY;kBACjB,MAAMb,OAAO,CAAC,CAAC;gBACnB;cACJ,CAAC;cACDc,MAAM,EAAE;gBACJF,KAAK,EAAEjB,CAAC;cACZ;YACJ;UACJ;QACJ;MACJ,CAAC;IACL,CAAC,CAAC;EACN,CAAC;EAED,MAAMoB,iBAAiB,GAAGA,CAAC;IAAEd,KAAK;IAAE,GAAGe;EAAgC,CAAC,KAAK;IACzEC,UAAU,CAAC,MAAM;MACbnB,EAAE,CAACM,QAAQ,CAACN,EAAE,IAAI;QACd,OAAO;UACH,GAAGA,EAAE;UACLO,MAAM,EAAE;YACJH,OAAO,eAAEZ,KAAA,CAAAkB,aAAA,CAACd,mBAAmB,EAAKsB,MAAS,CAAC;YAC5CV,OAAO,EAAE;cACLL,KAAK,EAAEA,KAAK,IAAIN,CAAC,SAAS;cAC1Be,OAAO,EAAE;gBACLI,MAAM,EAAE;kBACJF,KAAK,EAAEjB,CAAC;gBACZ;cACJ;YACJ;UACJ;QACJ,CAAC;MACL,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;EACV,CAAC;EAED,MAAMuB,iBAAiB,GAAGA,CAAA,KAAM;IAC5BpB,EAAE,CAACM,QAAQ,CAACN,EAAE,IAAI;MACd,OAAO;QAAE,GAAGA,EAAE;QAAEO,MAAM,EAAE;MAAK,CAAC;IAClC,CAAC,CAAC;EACN,CAAC;EAED,OAAO;IACHN,sBAAsB;IACtBgB,iBAAiB;IACjBG;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","i18n","ResultDialogMessage","useDialogs","t","ns","useDialogWithReport","showDialog","closeAllDialogs","showConfirmationDialog","execute","title","message","loadingLabel","content","acceptLabel","onAccept","cancelLabel","showResultsDialog","onCancel","params","setTimeout","createElement","onClose","hideResultsDialog"],"sources":["useDialogWithReport.tsx"],"sourcesContent":["import React from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ResultDialogMessage } from \"./DialogMessage\";\nimport type { Result } from \"../Worker\";\nimport { useDialogs } from \"~/components/Dialogs/useDialogs.js\";\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 { showDialog, closeAllDialogs } = useDialogs();\n\n const showConfirmationDialog = ({\n execute,\n title,\n message,\n loadingLabel\n }: ShowConfirmationDialogParams) => {\n showDialog({\n title: title || t`Confirm`,\n content: message || t`Are you sure you want to continue?`,\n loadingLabel: loadingLabel || t`Processing...`,\n acceptLabel: t`Confirm`,\n onAccept: execute,\n cancelLabel: t`Cancel`\n });\n };\n\n const showResultsDialog = ({ title, onCancel, ...params }: ShowResultsDialogParams) => {\n setTimeout(() => {\n showDialog({\n title: title || t`Results`,\n content: <ResultDialogMessage {...params} />,\n cancelLabel: t`Close`,\n onClose: onCancel,\n acceptLabel: null\n });\n }, 10);\n };\n\n const hideResultsDialog = () => {\n closeAllDialogs();\n };\n\n return {\n showConfirmationDialog,\n showResultsDialog,\n hideResultsDialog\n };\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,mBAAmB;AAE5B,SAASC,UAAU;AAEnB,MAAMC,CAAC,GAAGH,IAAI,CAACI,EAAE,CAAC,wCAAwC,CAAC;AAsB3D,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KAAmC;EAClE,MAAM;IAAEC,UAAU;IAAEC;EAAgB,CAAC,GAAGL,UAAU,CAAC,CAAC;EAEpD,MAAMM,sBAAsB,GAAGA,CAAC;IAC5BC,OAAO;IACPC,KAAK;IACLC,OAAO;IACPC;EAC0B,CAAC,KAAK;IAChCN,UAAU,CAAC;MACPI,KAAK,EAAEA,KAAK,IAAIP,CAAC,SAAS;MAC1BU,OAAO,EAAEF,OAAO,IAAIR,CAAC,oCAAoC;MACzDS,YAAY,EAAEA,YAAY,IAAIT,CAAC,eAAe;MAC9CW,WAAW,EAAEX,CAAC,SAAS;MACvBY,QAAQ,EAAEN,OAAO;MACjBO,WAAW,EAAEb,CAAC;IAClB,CAAC,CAAC;EACN,CAAC;EAED,MAAMc,iBAAiB,GAAGA,CAAC;IAAEP,KAAK;IAAEQ,QAAQ;IAAE,GAAGC;EAAgC,CAAC,KAAK;IACnFC,UAAU,CAAC,MAAM;MACbd,UAAU,CAAC;QACPI,KAAK,EAAEA,KAAK,IAAIP,CAAC,SAAS;QAC1BU,OAAO,eAAEd,KAAA,CAAAsB,aAAA,CAACpB,mBAAmB,EAAKkB,MAAS,CAAC;QAC5CH,WAAW,EAAEb,CAAC,OAAO;QACrBmB,OAAO,EAAEJ,QAAQ;QACjBJ,WAAW,EAAE;MACjB,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC;EACV,CAAC;EAED,MAAMS,iBAAiB,GAAGA,CAAA,KAAM;IAC5BhB,eAAe,CAAC,CAAC;EACrB,CAAC;EAED,OAAO;IACHC,sBAAsB;IACtBS,iBAAiB;IACjBM;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { GenericFormData } from "@webiny/form";
2
+ import type { GenericFormData } from "@webiny/form";
3
3
  interface DialogProps {
4
4
  onSubmit: (data: GenericFormData) => void;
5
5
  closeDialog: () => void;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useContext","Form","useForm","Dialog","CustomDialog","open","loading","closeDialog","onSubmit","children","handleSubmit","data","createElement","onClose","CustomDialogProvider","CustomDialogContext","createContext","undefined","form","context","submit","Provider","value","useCustomDialog","Error"],"sources":["CustomDialog.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport { Form, FormOnSubmit, GenericFormData, useForm } from \"@webiny/form\";\nimport { Dialog } from \"@webiny/admin-ui\";\n\ninterface DialogProps {\n onSubmit: (data: GenericFormData) => void;\n closeDialog: () => void;\n loading: boolean;\n open: boolean;\n children: JSX.Element;\n}\n\nexport const CustomDialog = ({ open, loading, closeDialog, onSubmit, children }: DialogProps) => {\n const handleSubmit: FormOnSubmit = data => {\n onSubmit(data);\n };\n\n return (\n <Dialog open={open} onClose={closeDialog}>\n {open ? (\n <Form onSubmit={handleSubmit}>\n {() => (\n <CustomDialogProvider loading={loading} closeDialog={closeDialog}>\n {children}\n </CustomDialogProvider>\n )}\n </Form>\n ) : null}\n </Dialog>\n );\n};\n\nexport interface CustomDialogContext {\n loading: boolean;\n closeDialog: () => void;\n submit: () => void;\n}\n\nconst CustomDialogContext = React.createContext<CustomDialogContext | undefined>(undefined);\n\ninterface CustomDialogProviderProps {\n loading: boolean;\n closeDialog: () => void;\n children: JSX.Element;\n}\n\nconst CustomDialogProvider = ({ loading, closeDialog, children }: CustomDialogProviderProps) => {\n const form = useForm();\n\n const context: CustomDialogContext = { submit: form.submit, loading, closeDialog };\n\n return <CustomDialogContext.Provider value={context}>{children}</CustomDialogContext.Provider>;\n};\n\nexport const useCustomDialog = () => {\n const context = useContext(CustomDialogContext);\n\n if (!context) {\n throw new Error(\"useCustomDialog must be used within the CustomDialogProvider.\");\n }\n\n return context;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AACzC,SAASC,IAAI,EAAiCC,OAAO,QAAQ,cAAc;AAC3E,SAASC,MAAM,QAAQ,kBAAkB;AAUzC,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAEC,OAAO;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAAsB,CAAC,KAAK;EAC7F,MAAMC,YAA0B,GAAGC,IAAI,IAAI;IACvCH,QAAQ,CAACG,IAAI,CAAC;EAClB,CAAC;EAED,oBACIZ,KAAA,CAAAa,aAAA,CAACT,MAAM;IAACE,IAAI,EAAEA,IAAK;IAACQ,OAAO,EAAEN;EAAY,GACpCF,IAAI,gBACDN,KAAA,CAAAa,aAAA,CAACX,IAAI;IAACO,QAAQ,EAAEE;EAAa,GACxB,mBACGX,KAAA,CAAAa,aAAA,CAACE,oBAAoB;IAACR,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,GAC5DE,QACiB,CAExB,CAAC,GACP,IACA,CAAC;AAEjB,CAAC;AAQD,MAAMM,mBAAmB,gBAAGhB,KAAK,CAACiB,aAAa,CAAkCC,SAAS,CAAC;AAQ3F,MAAMH,oBAAoB,GAAGA,CAAC;EAAER,OAAO;EAAEC,WAAW;EAAEE;AAAoC,CAAC,KAAK;EAC5F,MAAMS,IAAI,GAAGhB,OAAO,CAAC,CAAC;EAEtB,MAAMiB,OAA4B,GAAG;IAAEC,MAAM,EAAEF,IAAI,CAACE,MAAM;IAAEd,OAAO;IAAEC;EAAY,CAAC;EAElF,oBAAOR,KAAA,CAAAa,aAAA,CAACG,mBAAmB,CAACM,QAAQ;IAACC,KAAK,EAAEH;EAAQ,GAAEV,QAAuC,CAAC;AAClG,CAAC;AAED,OAAO,MAAMc,eAAe,GAAGA,CAAA,KAAM;EACjC,MAAMJ,OAAO,GAAGnB,UAAU,CAACe,mBAAmB,CAAC;EAE/C,IAAI,CAACI,OAAO,EAAE;IACV,MAAM,IAAIK,KAAK,CAAC,+DAA+D,CAAC;EACpF;EAEA,OAAOL,OAAO;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useContext","Form","useForm","Dialog","CustomDialog","open","loading","closeDialog","onSubmit","children","handleSubmit","data","createElement","onClose","CustomDialogProvider","CustomDialogContext","createContext","undefined","form","context","submit","Provider","value","useCustomDialog","Error"],"sources":["CustomDialog.tsx"],"sourcesContent":["import React, { useContext } from \"react\";\nimport type { FormOnSubmit, GenericFormData } from \"@webiny/form\";\nimport { Form, useForm } from \"@webiny/form\";\nimport { Dialog } from \"@webiny/admin-ui\";\n\ninterface DialogProps {\n onSubmit: (data: GenericFormData) => void;\n closeDialog: () => void;\n loading: boolean;\n open: boolean;\n children: JSX.Element;\n}\n\nexport const CustomDialog = ({ open, loading, closeDialog, onSubmit, children }: DialogProps) => {\n const handleSubmit: FormOnSubmit = data => {\n onSubmit(data);\n };\n\n return (\n <Dialog open={open} onClose={closeDialog}>\n {open ? (\n <Form onSubmit={handleSubmit}>\n {() => (\n <CustomDialogProvider loading={loading} closeDialog={closeDialog}>\n {children}\n </CustomDialogProvider>\n )}\n </Form>\n ) : null}\n </Dialog>\n );\n};\n\nexport interface CustomDialogContext {\n loading: boolean;\n closeDialog: () => void;\n submit: () => void;\n}\n\nconst CustomDialogContext = React.createContext<CustomDialogContext | undefined>(undefined);\n\ninterface CustomDialogProviderProps {\n loading: boolean;\n closeDialog: () => void;\n children: JSX.Element;\n}\n\nconst CustomDialogProvider = ({ loading, closeDialog, children }: CustomDialogProviderProps) => {\n const form = useForm();\n\n const context: CustomDialogContext = { submit: form.submit, loading, closeDialog };\n\n return <CustomDialogContext.Provider value={context}>{children}</CustomDialogContext.Provider>;\n};\n\nexport const useCustomDialog = () => {\n const context = useContext(CustomDialogContext);\n\n if (!context) {\n throw new Error(\"useCustomDialog must be used within the CustomDialogProvider.\");\n }\n\n return context;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,SAASC,IAAI,EAAEC,OAAO,QAAQ,cAAc;AAC5C,SAASC,MAAM,QAAQ,kBAAkB;AAUzC,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC,IAAI;EAAEC,OAAO;EAAEC,WAAW;EAAEC,QAAQ;EAAEC;AAAsB,CAAC,KAAK;EAC7F,MAAMC,YAA0B,GAAGC,IAAI,IAAI;IACvCH,QAAQ,CAACG,IAAI,CAAC;EAClB,CAAC;EAED,oBACIZ,KAAA,CAAAa,aAAA,CAACT,MAAM;IAACE,IAAI,EAAEA,IAAK;IAACQ,OAAO,EAAEN;EAAY,GACpCF,IAAI,gBACDN,KAAA,CAAAa,aAAA,CAACX,IAAI;IAACO,QAAQ,EAAEE;EAAa,GACxB,mBACGX,KAAA,CAAAa,aAAA,CAACE,oBAAoB;IAACR,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,GAC5DE,QACiB,CAExB,CAAC,GACP,IACA,CAAC;AAEjB,CAAC;AAQD,MAAMM,mBAAmB,gBAAGhB,KAAK,CAACiB,aAAa,CAAkCC,SAAS,CAAC;AAQ3F,MAAMH,oBAAoB,GAAGA,CAAC;EAAER,OAAO;EAAEC,WAAW;EAAEE;AAAoC,CAAC,KAAK;EAC5F,MAAMS,IAAI,GAAGhB,OAAO,CAAC,CAAC;EAEtB,MAAMiB,OAA4B,GAAG;IAAEC,MAAM,EAAEF,IAAI,CAACE,MAAM;IAAEd,OAAO;IAAEC;EAAY,CAAC;EAElF,oBAAOR,KAAA,CAAAa,aAAA,CAACG,mBAAmB,CAACM,QAAQ;IAACC,KAAK,EAAEH;EAAQ,GAAEV,QAAuC,CAAC;AAClG,CAAC;AAED,OAAO,MAAMc,eAAe,GAAGA,CAAA,KAAM;EACjC,MAAMJ,OAAO,GAAGnB,UAAU,CAACe,mBAAmB,CAAC;EAE/C,IAAI,CAACI,OAAO,EAAE;IACV,MAAM,IAAIK,KAAK,CAAC,+DAA+D,CAAC;EACpF;EAEA,OAAOL,OAAO;AAClB,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
- import React, { ReactNode } from "react";
2
- import { GenericFormData } from "@webiny/form";
1
+ import type { ReactNode } from "react";
2
+ import React from "react";
3
+ import type { GenericFormData } from "@webiny/form";
3
4
  export interface DialogProps {
4
5
  title: ReactNode;
5
6
  description: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","Dialog","AdminDialog","OverlayLoader","Form","open","loading","title","content","acceptLabel","cancelLabel","loadingLabel","dataLoadingLabel","closeDialog","onSubmit","size","props","handleSubmit","data","dataIsLoading","setDataIsLoading","formData","setFormData","undefined","then","createElement","submit","onClose","description","icon","Icon","label","dismissible","actions","Fragment","CancelButton","onClick","text","ConfirmButton"],"sources":["Dialog.tsx"],"sourcesContent":["import React, { ReactNode, useEffect, useState } from \"react\";\nimport { Dialog as AdminDialog, OverlayLoader } from \"@webiny/admin-ui\";\nimport { Form, FormOnSubmit, GenericFormData } from \"@webiny/form\";\n\nexport interface DialogProps {\n title: ReactNode;\n description: ReactNode;\n dismissible: boolean;\n content: ReactNode;\n icon: ReactNode;\n acceptLabel?: ReactNode;\n cancelLabel?: ReactNode;\n loadingLabel?: ReactNode;\n dataLoadingLabel?: ReactNode;\n onSubmit: (data: GenericFormData) => void;\n closeDialog: () => void;\n loading: boolean;\n open: boolean;\n formData?: GenericFormData | (() => Promise<GenericFormData>);\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n}\n\nexport const Dialog = ({\n open,\n loading,\n title,\n content,\n acceptLabel,\n cancelLabel,\n loadingLabel = \"Loading...\",\n dataLoadingLabel = \"Loading...\",\n closeDialog,\n onSubmit,\n size,\n ...props\n}: DialogProps) => {\n const handleSubmit: FormOnSubmit = data => {\n return onSubmit(data);\n };\n\n const [dataIsLoading, setDataIsLoading] = useState(false);\n\n const [formData, setFormData] = useState<GenericFormData | undefined>(\n typeof props.formData === \"function\" ? undefined : props.formData\n );\n\n useEffect(() => {\n if (typeof props.formData === \"function\") {\n setDataIsLoading(true);\n props.formData().then((data: GenericFormData) => {\n setFormData(data);\n setDataIsLoading(false);\n });\n }\n }, [props.formData]);\n\n return (\n <Form onSubmit={handleSubmit} data={formData}>\n {({ submit }) => (\n <AdminDialog\n open={open}\n onClose={closeDialog}\n size={size}\n title={title}\n description={props.description}\n icon={<AdminDialog.Icon icon={props.icon} label={\"\"} />}\n dismissible={props.dismissible}\n actions={\n <>\n {cancelLabel ? (\n <AdminDialog.CancelButton\n onClick={closeDialog}\n text={cancelLabel}\n />\n ) : null}\n {acceptLabel ? (\n <AdminDialog.ConfirmButton onClick={submit} text={acceptLabel} />\n ) : null}\n </>\n }\n >\n {open ? (\n <>\n {loading && <OverlayLoader text={loadingLabel} />}\n {dataIsLoading && <OverlayLoader text={dataLoadingLabel} />}\n {content}\n </>\n ) : null}\n </AdminDialog>\n )}\n </Form>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAeC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC7D,SAASC,MAAM,IAAIC,WAAW,EAAEC,aAAa,QAAQ,kBAAkB;AACvE,SAASC,IAAI,QAAuC,cAAc;AAoBlE,OAAO,MAAMH,MAAM,GAAGA,CAAC;EACnBI,IAAI;EACJC,OAAO;EACPC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC,WAAW;EACXC,YAAY,GAAG,YAAY;EAC3BC,gBAAgB,GAAG,YAAY;EAC/BC,WAAW;EACXC,QAAQ;EACRC,IAAI;EACJ,GAAGC;AACM,CAAC,KAAK;EACf,MAAMC,YAA0B,GAAGC,IAAI,IAAI;IACvC,OAAOJ,QAAQ,CAACI,IAAI,CAAC;EACzB,CAAC;EAED,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAM,CAACqB,QAAQ,EAAEC,WAAW,CAAC,GAAGtB,QAAQ,CACpC,OAAOgB,KAAK,CAACK,QAAQ,KAAK,UAAU,GAAGE,SAAS,GAAGP,KAAK,CAACK,QAC7D,CAAC;EAEDtB,SAAS,CAAC,MAAM;IACZ,IAAI,OAAOiB,KAAK,CAACK,QAAQ,KAAK,UAAU,EAAE;MACtCD,gBAAgB,CAAC,IAAI,CAAC;MACtBJ,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACG,IAAI,CAAEN,IAAqB,IAAK;QAC7CI,WAAW,CAACJ,IAAI,CAAC;QACjBE,gBAAgB,CAAC,KAAK,CAAC;MAC3B,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACJ,KAAK,CAACK,QAAQ,CAAC,CAAC;EAEpB,oBACIvB,KAAA,CAAA2B,aAAA,CAACrB,IAAI;IAACU,QAAQ,EAAEG,YAAa;IAACC,IAAI,EAAEG;EAAS,GACxC,CAAC;IAAEK;EAAO,CAAC,kBACR5B,KAAA,CAAA2B,aAAA,CAACvB,WAAW;IACRG,IAAI,EAAEA,IAAK;IACXsB,OAAO,EAAEd,WAAY;IACrBE,IAAI,EAAEA,IAAK;IACXR,KAAK,EAAEA,KAAM;IACbqB,WAAW,EAAEZ,KAAK,CAACY,WAAY;IAC/BC,IAAI,eAAE/B,KAAA,CAAA2B,aAAA,CAACvB,WAAW,CAAC4B,IAAI;MAACD,IAAI,EAAEb,KAAK,CAACa,IAAK;MAACE,KAAK,EAAE;IAAG,CAAE,CAAE;IACxDC,WAAW,EAAEhB,KAAK,CAACgB,WAAY;IAC/BC,OAAO,eACHnC,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAAoC,QAAA,QACKxB,WAAW,gBACRZ,KAAA,CAAA2B,aAAA,CAACvB,WAAW,CAACiC,YAAY;MACrBC,OAAO,EAAEvB,WAAY;MACrBwB,IAAI,EAAE3B;IAAY,CACrB,CAAC,GACF,IAAI,EACPD,WAAW,gBACRX,KAAA,CAAA2B,aAAA,CAACvB,WAAW,CAACoC,aAAa;MAACF,OAAO,EAAEV,MAAO;MAACW,IAAI,EAAE5B;IAAY,CAAE,CAAC,GACjE,IACN;EACL,GAEAJ,IAAI,gBACDP,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAAoC,QAAA,QACK5B,OAAO,iBAAIR,KAAA,CAAA2B,aAAA,CAACtB,aAAa;IAACkC,IAAI,EAAE1B;EAAa,CAAE,CAAC,EAChDQ,aAAa,iBAAIrB,KAAA,CAAA2B,aAAA,CAACtB,aAAa;IAACkC,IAAI,EAAEzB;EAAiB,CAAE,CAAC,EAC1DJ,OACH,CAAC,GACH,IACK,CAEf,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","Dialog","AdminDialog","OverlayLoader","Form","open","loading","title","content","acceptLabel","cancelLabel","loadingLabel","dataLoadingLabel","closeDialog","onSubmit","size","props","handleSubmit","data","dataIsLoading","setDataIsLoading","formData","setFormData","undefined","then","createElement","submit","onClose","description","icon","Icon","label","dismissible","actions","Fragment","CancelButton","onClick","text","ConfirmButton"],"sources":["Dialog.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { useEffect, useState } from \"react\";\nimport { Dialog as AdminDialog, OverlayLoader } from \"@webiny/admin-ui\";\nimport type { FormOnSubmit, GenericFormData } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\n\nexport interface DialogProps {\n title: ReactNode;\n description: ReactNode;\n dismissible: boolean;\n content: ReactNode;\n icon: ReactNode;\n acceptLabel?: ReactNode;\n cancelLabel?: ReactNode;\n loadingLabel?: ReactNode;\n dataLoadingLabel?: ReactNode;\n onSubmit: (data: GenericFormData) => void;\n closeDialog: () => void;\n loading: boolean;\n open: boolean;\n formData?: GenericFormData | (() => Promise<GenericFormData>);\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n}\n\nexport const Dialog = ({\n open,\n loading,\n title,\n content,\n acceptLabel,\n cancelLabel,\n loadingLabel = \"Loading...\",\n dataLoadingLabel = \"Loading...\",\n closeDialog,\n onSubmit,\n size,\n ...props\n}: DialogProps) => {\n const handleSubmit: FormOnSubmit = data => {\n return onSubmit(data);\n };\n\n const [dataIsLoading, setDataIsLoading] = useState(false);\n\n const [formData, setFormData] = useState<GenericFormData | undefined>(\n typeof props.formData === \"function\" ? undefined : props.formData\n );\n\n useEffect(() => {\n if (typeof props.formData === \"function\") {\n setDataIsLoading(true);\n props.formData().then((data: GenericFormData) => {\n setFormData(data);\n setDataIsLoading(false);\n });\n }\n }, [props.formData]);\n\n return (\n <Form onSubmit={handleSubmit} data={formData}>\n {({ submit }) => (\n <AdminDialog\n open={open}\n onClose={closeDialog}\n size={size}\n title={title}\n description={props.description}\n icon={<AdminDialog.Icon icon={props.icon} label={\"\"} />}\n dismissible={props.dismissible}\n actions={\n <>\n {cancelLabel ? (\n <AdminDialog.CancelButton\n onClick={closeDialog}\n text={cancelLabel}\n />\n ) : null}\n {acceptLabel ? (\n <AdminDialog.ConfirmButton onClick={submit} text={acceptLabel} />\n ) : null}\n </>\n }\n >\n {open ? (\n <>\n {loading && <OverlayLoader text={loadingLabel} />}\n {dataIsLoading && <OverlayLoader text={dataLoadingLabel} />}\n {content}\n </>\n ) : null}\n </AdminDialog>\n )}\n </Form>\n );\n};\n"],"mappings":"AACA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,MAAM,IAAIC,WAAW,EAAEC,aAAa,QAAQ,kBAAkB;AAEvE,SAASC,IAAI,QAAQ,cAAc;AAoBnC,OAAO,MAAMH,MAAM,GAAGA,CAAC;EACnBI,IAAI;EACJC,OAAO;EACPC,KAAK;EACLC,OAAO;EACPC,WAAW;EACXC,WAAW;EACXC,YAAY,GAAG,YAAY;EAC3BC,gBAAgB,GAAG,YAAY;EAC/BC,WAAW;EACXC,QAAQ;EACRC,IAAI;EACJ,GAAGC;AACM,CAAC,KAAK;EACf,MAAMC,YAA0B,GAAGC,IAAI,IAAI;IACvC,OAAOJ,QAAQ,CAACI,IAAI,CAAC;EACzB,CAAC;EAED,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAEzD,MAAM,CAACqB,QAAQ,EAAEC,WAAW,CAAC,GAAGtB,QAAQ,CACpC,OAAOgB,KAAK,CAACK,QAAQ,KAAK,UAAU,GAAGE,SAAS,GAAGP,KAAK,CAACK,QAC7D,CAAC;EAEDtB,SAAS,CAAC,MAAM;IACZ,IAAI,OAAOiB,KAAK,CAACK,QAAQ,KAAK,UAAU,EAAE;MACtCD,gBAAgB,CAAC,IAAI,CAAC;MACtBJ,KAAK,CAACK,QAAQ,CAAC,CAAC,CAACG,IAAI,CAAEN,IAAqB,IAAK;QAC7CI,WAAW,CAACJ,IAAI,CAAC;QACjBE,gBAAgB,CAAC,KAAK,CAAC;MAC3B,CAAC,CAAC;IACN;EACJ,CAAC,EAAE,CAACJ,KAAK,CAACK,QAAQ,CAAC,CAAC;EAEpB,oBACIvB,KAAA,CAAA2B,aAAA,CAACrB,IAAI;IAACU,QAAQ,EAAEG,YAAa;IAACC,IAAI,EAAEG;EAAS,GACxC,CAAC;IAAEK;EAAO,CAAC,kBACR5B,KAAA,CAAA2B,aAAA,CAACvB,WAAW;IACRG,IAAI,EAAEA,IAAK;IACXsB,OAAO,EAAEd,WAAY;IACrBE,IAAI,EAAEA,IAAK;IACXR,KAAK,EAAEA,KAAM;IACbqB,WAAW,EAAEZ,KAAK,CAACY,WAAY;IAC/BC,IAAI,eAAE/B,KAAA,CAAA2B,aAAA,CAACvB,WAAW,CAAC4B,IAAI;MAACD,IAAI,EAAEb,KAAK,CAACa,IAAK;MAACE,KAAK,EAAE;IAAG,CAAE,CAAE;IACxDC,WAAW,EAAEhB,KAAK,CAACgB,WAAY;IAC/BC,OAAO,eACHnC,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAAoC,QAAA,QACKxB,WAAW,gBACRZ,KAAA,CAAA2B,aAAA,CAACvB,WAAW,CAACiC,YAAY;MACrBC,OAAO,EAAEvB,WAAY;MACrBwB,IAAI,EAAE3B;IAAY,CACrB,CAAC,GACF,IAAI,EACPD,WAAW,gBACRX,KAAA,CAAA2B,aAAA,CAACvB,WAAW,CAACoC,aAAa;MAACF,OAAO,EAAEV,MAAO;MAACW,IAAI,EAAE5B;IAAY,CAAE,CAAC,GACjE,IACN;EACL,GAEAJ,IAAI,gBACDP,KAAA,CAAA2B,aAAA,CAAA3B,KAAA,CAAAoC,QAAA,QACK5B,OAAO,iBAAIR,KAAA,CAAA2B,aAAA,CAACtB,aAAa;IAACkC,IAAI,EAAE1B;EAAa,CAAE,CAAC,EAChDQ,aAAa,iBAAIrB,KAAA,CAAA2B,aAAA,CAACtB,aAAa;IAACkC,IAAI,EAAEzB;EAAiB,CAAE,CAAC,EAC1DJ,OACH,CAAC,GACH,IACK,CAEf,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -1,5 +1,6 @@
1
- import React, { ReactNode } from "react";
2
- import { GenericFormData } from "@webiny/form";
1
+ import type { ReactNode } from "react";
2
+ import React from "react";
3
+ import type { GenericFormData } from "@webiny/form";
3
4
  import { type DialogProps } from "./Dialog";
4
5
  interface ShowDialogParams {
5
6
  title: ReactNode;
@@ -24,6 +25,7 @@ interface ShowCustomDialogParams {
24
25
  export interface DialogsContext {
25
26
  showDialog: (params: ShowDialogParams) => () => void;
26
27
  showCustomDialog: (params: ShowCustomDialogParams) => () => void;
28
+ closeAllDialogs: () => void;
27
29
  }
28
30
  interface DialogsProviderProps {
29
31
  children: ReactNode;
@@ -58,6 +58,9 @@ export const DialogsProvider = ({
58
58
  return newDialogs;
59
59
  });
60
60
  };
61
+ const closeAllDialogs = () => {
62
+ setDialogs(new Map());
63
+ };
61
64
  const onSubmit = async (id, data) => {
62
65
  const dialog = dialogs.get(id);
63
66
  if (!dialog) {
@@ -92,7 +95,8 @@ export const DialogsProvider = ({
92
95
  const context = {
93
96
  showDialog,
94
97
  showCustomDialog,
95
- closeDialog
98
+ closeDialog,
99
+ closeAllDialogs
96
100
  };
97
101
  return /*#__PURE__*/React.createElement(DialogsContext.Provider, {
98
102
  value: context
@@ -115,7 +119,10 @@ export const DialogsProvider = ({
115
119
  loadingLabel: dialog.loadingLabel,
116
120
  dataLoadingLabel: dialog.dataLoadingLabel,
117
121
  loading: dialog.loading,
118
- closeDialog: () => closeDialog(dialog.id),
122
+ closeDialog: () => {
123
+ closeDialog(dialog.id);
124
+ dialog.onClose && dialog.onClose();
125
+ },
119
126
  onSubmit: data => onSubmit(dialog.id, data),
120
127
  formData: dialog.formData,
121
128
  size: dialog.size
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","useSnackbar","Dialog","CustomDialog","createProvider","generateId","initializeState","params","id","title","description","dismissible","icon","content","acceptLabel","cancelLabel","loadingLabel","dataLoadingLabel","onAccept","onClose","open","loading","element","formData","size","DialogsContext","createContext","undefined","DialogsProvider","children","showSnackbar","dialogs","setDialogs","Map","showDialog","newDialog","set","closeDialog","showCustomDialog","onSubmit","newDialogs","delete","data","dialog","get","error","message","context","createElement","Provider","value","Array","from","values","map","key","Fragment","createDialogsProvider","Component","DialogsProviderDecorator"],"sources":["DialogsContext.tsx"],"sourcesContent":["import React, { ReactNode, useState } from \"react\";\nimport { GenericFormData } from \"@webiny/form\";\nimport { useSnackbar } from \"~/hooks\";\nimport { Dialog, type DialogProps } from \"./Dialog\";\nimport { CustomDialog } from \"./CustomDialog\";\nimport { createProvider } from \"@webiny/app\";\nimport { generateId } from \"@webiny/utils\";\n\ninterface ShowDialogParams {\n title: ReactNode;\n description?: ReactNode;\n dismissible?: boolean;\n content: ReactNode;\n actions?: JSX.Element;\n icon?: JSX.Element;\n acceptLabel?: ReactNode;\n cancelLabel?: ReactNode;\n loadingLabel?: ReactNode;\n dataLoadingLabel?: ReactNode;\n onAccept?: (data: GenericFormData) => void;\n onClose?: () => void;\n formData?: DialogProps[\"formData\"];\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\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 description: params.description,\n dismissible: params.dismissible,\n icon: params.icon,\n content: params.content,\n acceptLabel: params.acceptLabel === null ? null : params.acceptLabel ?? `Confirm`,\n cancelLabel: params.cancelLabel === null ? null : params.cancelLabel ?? `Cancel`,\n loadingLabel: params.loadingLabel ?? `Loading...`,\n dataLoadingLabel: params.dataLoadingLabel ?? `Loading...`,\n onAccept: params.onAccept,\n onClose: params.onClose,\n open: params.open ?? false,\n loading: params.loading ?? false,\n element: params.element,\n formData: params.formData ?? {},\n size: params.size ?? \"md\"\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 return () => closeDialog(newDialog.id);\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 return () => closeDialog(newDialog.id);\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 description={dialog.description}\n dismissible={dialog.dismissible ?? true}\n icon={dialog.icon ?? <></>}\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 dataLoadingLabel={dialog.dataLoadingLabel}\n loading={dialog.loading}\n closeDialog={() => closeDialog(dialog.id)}\n onSubmit={data => onSubmit(dialog.id, data)}\n formData={dialog.formData}\n size={dialog.size}\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":[]}
1
+ {"version":3,"names":["React","useState","useSnackbar","Dialog","CustomDialog","createProvider","generateId","initializeState","params","id","title","description","dismissible","icon","content","acceptLabel","cancelLabel","loadingLabel","dataLoadingLabel","onAccept","onClose","open","loading","element","formData","size","DialogsContext","createContext","undefined","DialogsProvider","children","showSnackbar","dialogs","setDialogs","Map","showDialog","newDialog","set","closeDialog","showCustomDialog","onSubmit","newDialogs","delete","closeAllDialogs","data","dialog","get","error","message","context","createElement","Provider","value","Array","from","values","map","key","Fragment","createDialogsProvider","Component","DialogsProviderDecorator"],"sources":["DialogsContext.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport React, { useState } from \"react\";\nimport type { GenericFormData } from \"@webiny/form\";\nimport { useSnackbar } from \"~/hooks\";\nimport { Dialog, type DialogProps } from \"./Dialog\";\nimport { CustomDialog } from \"./CustomDialog\";\nimport { createProvider } from \"@webiny/app\";\nimport { generateId } from \"@webiny/utils\";\n\ninterface ShowDialogParams {\n title: ReactNode;\n description?: ReactNode;\n dismissible?: boolean;\n content: ReactNode;\n actions?: JSX.Element;\n icon?: JSX.Element;\n acceptLabel?: ReactNode;\n cancelLabel?: ReactNode;\n loadingLabel?: ReactNode;\n dataLoadingLabel?: ReactNode;\n onAccept?: (data: GenericFormData) => void;\n onClose?: () => void;\n formData?: DialogProps[\"formData\"];\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\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 closeAllDialogs: () => 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 description: params.description,\n dismissible: params.dismissible,\n icon: params.icon,\n content: params.content,\n acceptLabel: params.acceptLabel === null ? null : params.acceptLabel ?? `Confirm`,\n cancelLabel: params.cancelLabel === null ? null : params.cancelLabel ?? `Cancel`,\n loadingLabel: params.loadingLabel ?? `Loading...`,\n dataLoadingLabel: params.dataLoadingLabel ?? `Loading...`,\n onAccept: params.onAccept,\n onClose: params.onClose,\n open: params.open ?? false,\n loading: params.loading ?? false,\n element: params.element,\n formData: params.formData ?? {},\n size: params.size ?? \"md\"\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 return () => closeDialog(newDialog.id);\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 return () => closeDialog(newDialog.id);\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 closeAllDialogs = () => {\n setDialogs(new Map());\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 closeAllDialogs\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 description={dialog.description}\n dismissible={dialog.dismissible ?? true}\n icon={dialog.icon ?? <></>}\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 dataLoadingLabel={dialog.dataLoadingLabel}\n loading={dialog.loading}\n closeDialog={() => {\n closeDialog(dialog.id);\n dialog.onClose && dialog.onClose();\n }}\n onSubmit={data => onSubmit(dialog.id, data)}\n formData={dialog.formData}\n size={dialog.size}\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":[]}
@@ -1,4 +1,5 @@
1
- import React, { ReactElement } from "react";
1
+ import type { ReactElement } from "react";
2
+ import React from "react";
2
3
  export interface EmptyViewProps {
3
4
  icon?: ReactElement;
4
5
  title: string;
@@ -1 +1 @@
1
- {"version":3,"names":["React","Icon","Text","ReactComponent","FileIcon","EmptyView","icon","createElement","title","action","className","style","width","height","label","size","as","maxWidth"],"sources":["EmptyView.tsx"],"sourcesContent":["import React, { ReactElement } from \"react\";\nimport { Icon, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as FileIcon } from \"@webiny/icons/description.svg\";\n\nexport interface EmptyViewProps {\n icon?: ReactElement;\n title: string;\n action?: ReactElement | null;\n}\nconst EmptyView = ({ icon = <FileIcon />, title, action }: EmptyViewProps) => {\n return (\n <div className=\"wby-w-full wby-h-full wby-flex wby-flex-col wby-items-center wby-justify-center wby-gap-md\">\n <div className=\"wby-flex wby-justify-center\">\n <div\n style={{ width: 128, height: 128 }}\n className=\"wby-flex wby-justify-center wby-items-center wby-bg-neutral-dimmed wby-rounded-full wby-fill-neutral-strong [&_svg]:wby-size-[48px]\"\n >\n <Icon icon={icon} label={\"Empty\"} />\n </div>\n </div>\n <Text\n size={\"md\"}\n className={\"wby-text-center wby-text-neutral-strong\"}\n as={\"div\"}\n style={{ maxWidth: 276 }}\n >\n {title}\n </Text>\n {action && <div className={\"wby-flex wby-justify-center wby-gap-sm\"}>{action}</div>}\n </div>\n );\n};\n\nexport default EmptyView;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAwB,OAAO;AAC3C,SAASC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAC7C,SAASC,cAAc,IAAIC,QAAQ,QAAQ,+BAA+B;AAO1E,MAAMC,SAAS,GAAGA,CAAC;EAAEC,IAAI,gBAAGN,KAAA,CAAAO,aAAA,CAACH,QAAQ,MAAE,CAAC;EAAEI,KAAK;EAAEC;AAAuB,CAAC,KAAK;EAC1E,oBACIT,KAAA,CAAAO,aAAA;IAAKG,SAAS,EAAC;EAA4F,gBACvGV,KAAA,CAAAO,aAAA;IAAKG,SAAS,EAAC;EAA6B,gBACxCV,KAAA,CAAAO,aAAA;IACII,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAI,CAAE;IACnCH,SAAS,EAAC;EAAqI,gBAE/IV,KAAA,CAAAO,aAAA,CAACN,IAAI;IAACK,IAAI,EAAEA,IAAK;IAACQ,KAAK,EAAE;EAAQ,CAAE,CAClC,CACJ,CAAC,eACNd,KAAA,CAAAO,aAAA,CAACL,IAAI;IACDa,IAAI,EAAE,IAAK;IACXL,SAAS,EAAE,yCAA0C;IACrDM,EAAE,EAAE,KAAM;IACVL,KAAK,EAAE;MAAEM,QAAQ,EAAE;IAAI;EAAE,GAExBT,KACC,CAAC,EACNC,MAAM,iBAAIT,KAAA,CAAAO,aAAA;IAAKG,SAAS,EAAE;EAAyC,GAAED,MAAY,CACjF,CAAC;AAEd,CAAC;AAED,eAAeJ,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["React","Icon","Text","ReactComponent","FileIcon","EmptyView","icon","createElement","title","action","className","style","width","height","label","size","as","maxWidth"],"sources":["EmptyView.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport React from \"react\";\nimport { Icon, Text } from \"@webiny/admin-ui\";\nimport { ReactComponent as FileIcon } from \"@webiny/icons/description.svg\";\n\nexport interface EmptyViewProps {\n icon?: ReactElement;\n title: string;\n action?: ReactElement | null;\n}\nconst EmptyView = ({ icon = <FileIcon />, title, action }: EmptyViewProps) => {\n return (\n <div className=\"wby-w-full wby-h-full wby-flex wby-flex-col wby-items-center wby-justify-center wby-gap-md\">\n <div className=\"wby-flex wby-justify-center\">\n <div\n style={{ width: 128, height: 128 }}\n className=\"wby-flex wby-justify-center wby-items-center wby-bg-neutral-dimmed wby-rounded-full wby-fill-neutral-strong [&_svg]:wby-size-[48px]\"\n >\n <Icon icon={icon} label={\"Empty\"} />\n </div>\n </div>\n <Text\n size={\"md\"}\n className={\"wby-text-center wby-text-neutral-strong\"}\n as={\"div\"}\n style={{ maxWidth: 276 }}\n >\n {title}\n </Text>\n {action && <div className={\"wby-flex wby-justify-center wby-gap-sm\"}>{action}</div>}\n </div>\n );\n};\n\nexport default EmptyView;\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAC7C,SAASC,cAAc,IAAIC,QAAQ,QAAQ,+BAA+B;AAO1E,MAAMC,SAAS,GAAGA,CAAC;EAAEC,IAAI,gBAAGN,KAAA,CAAAO,aAAA,CAACH,QAAQ,MAAE,CAAC;EAAEI,KAAK;EAAEC;AAAuB,CAAC,KAAK;EAC1E,oBACIT,KAAA,CAAAO,aAAA;IAAKG,SAAS,EAAC;EAA4F,gBACvGV,KAAA,CAAAO,aAAA;IAAKG,SAAS,EAAC;EAA6B,gBACxCV,KAAA,CAAAO,aAAA;IACII,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAI,CAAE;IACnCH,SAAS,EAAC;EAAqI,gBAE/IV,KAAA,CAAAO,aAAA,CAACN,IAAI;IAACK,IAAI,EAAEA,IAAK;IAACQ,KAAK,EAAE;EAAQ,CAAE,CAClC,CACJ,CAAC,eACNd,KAAA,CAAAO,aAAA,CAACL,IAAI;IACDa,IAAI,EAAE,IAAK;IACXL,SAAS,EAAE,yCAA0C;IACrDM,EAAE,EAAE,KAAM;IACVL,KAAK,EAAE;MAAEM,QAAQ,EAAE;IAAI;EAAE,GAExBT,KACC,CAAC,EACNC,MAAM,iBAAIT,KAAA,CAAAO,aAAA;IAAKG,SAAS,EAAE;EAAyC,GAAED,MAAY,CACjF,CAAC;AAEd,CAAC;AAED,eAAeJ,SAAS","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { FormOnSubmit, FormProps, GenericFormData } from "@webiny/form";
2
+ import type { FormOnSubmit, FormProps, GenericFormData } from "@webiny/form";
3
3
  type Filter = {
4
4
  name: string;
5
5
  element: React.ReactElement;
@@ -1 +1 @@
1
- {"version":3,"names":["React","Separator","Form","Filters","props","show","filters","length","createElement","Fragment","className","data","onChange","map","filter","key","name","element","children"],"sources":["Filters.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport { Form, FormOnSubmit, FormProps, GenericFormData } from \"@webiny/form\";\n\ntype Filter = {\n name: string;\n element: React.ReactElement;\n};\n\nexport type GenericFiltersData = GenericFormData;\n\nexport type FiltersOnSubmit<T extends GenericFiltersData = GenericFiltersData> = FormOnSubmit<T>;\n\nexport interface FiltersProps<T extends GenericFormData = GenericFormData>\n extends Pick<FormProps<T>, \"data\" | \"onChange\"> {\n filters: Filter[];\n show: boolean;\n children?: React.ReactNode;\n [\"data-testid\"]?: string;\n}\n\nexport const Filters = <T extends GenericFiltersData = GenericFiltersData>(\n props: FiltersProps<T>\n) => {\n if (!props.show || !props.filters.length) {\n return null;\n }\n\n return (\n <>\n <div\n className={\"wby-w-full wby-bg-neutral-base wby-px-md wby-my-sm\"}\n data-testid={props[\"data-testid\"] || \"filters-container\"}\n >\n <Form data={props.data} onChange={props.onChange}>\n {() => (\n <div className={\"wby-w-full wby-flex wby-gap-sm wby-flex-wrap\"}>\n {props.filters.map(filter => (\n <div key={filter.name}>{filter.element}</div>\n ))}\n {props.children}\n </div>\n )}\n </Form>\n </div>\n <Separator />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAC5C,SAASC,IAAI,QAAkD,cAAc;AAmB7E,OAAO,MAAMC,OAAO,GAChBC,KAAsB,IACrB;EACD,IAAI,CAACA,KAAK,CAACC,IAAI,IAAI,CAACD,KAAK,CAACE,OAAO,CAACC,MAAM,EAAE;IACtC,OAAO,IAAI;EACf;EAEA,oBACIP,KAAA,CAAAQ,aAAA,CAAAR,KAAA,CAAAS,QAAA,qBACIT,KAAA,CAAAQ,aAAA;IACIE,SAAS,EAAE,oDAAqD;IAChE,eAAaN,KAAK,CAAC,aAAa,CAAC,IAAI;EAAoB,gBAEzDJ,KAAA,CAAAQ,aAAA,CAACN,IAAI;IAACS,IAAI,EAAEP,KAAK,CAACO,IAAK;IAACC,QAAQ,EAAER,KAAK,CAACQ;EAAS,GAC5C,mBACGZ,KAAA,CAAAQ,aAAA;IAAKE,SAAS,EAAE;EAA+C,GAC1DN,KAAK,CAACE,OAAO,CAACO,GAAG,CAACC,MAAM,iBACrBd,KAAA,CAAAQ,aAAA;IAAKO,GAAG,EAAED,MAAM,CAACE;EAAK,GAAEF,MAAM,CAACG,OAAa,CAC/C,CAAC,EACDb,KAAK,CAACc,QACN,CAEP,CACL,CAAC,eACNlB,KAAA,CAAAQ,aAAA,CAACP,SAAS,MAAE,CACd,CAAC;AAEX,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","Separator","Form","Filters","props","show","filters","length","createElement","Fragment","className","data","onChange","map","filter","key","name","element","children"],"sources":["Filters.tsx"],"sourcesContent":["import React from \"react\";\nimport { Separator } from \"@webiny/admin-ui\";\nimport type { FormOnSubmit, FormProps, GenericFormData } from \"@webiny/form\";\nimport { Form } from \"@webiny/form\";\n\ntype Filter = {\n name: string;\n element: React.ReactElement;\n};\n\nexport type GenericFiltersData = GenericFormData;\n\nexport type FiltersOnSubmit<T extends GenericFiltersData = GenericFiltersData> = FormOnSubmit<T>;\n\nexport interface FiltersProps<T extends GenericFormData = GenericFormData>\n extends Pick<FormProps<T>, \"data\" | \"onChange\"> {\n filters: Filter[];\n show: boolean;\n children?: React.ReactNode;\n [\"data-testid\"]?: string;\n}\n\nexport const Filters = <T extends GenericFiltersData = GenericFiltersData>(\n props: FiltersProps<T>\n) => {\n if (!props.show || !props.filters.length) {\n return null;\n }\n\n return (\n <>\n <div\n className={\"wby-w-full wby-bg-neutral-base wby-px-md wby-my-sm\"}\n data-testid={props[\"data-testid\"] || \"filters-container\"}\n >\n <Form data={props.data} onChange={props.onChange}>\n {() => (\n <div className={\"wby-w-full wby-flex wby-gap-sm wby-flex-wrap\"}>\n {props.filters.map(filter => (\n <div key={filter.name}>{filter.element}</div>\n ))}\n {props.children}\n </div>\n )}\n </Form>\n </div>\n <Separator />\n </>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,kBAAkB;AAE5C,SAASC,IAAI,QAAQ,cAAc;AAmBnC,OAAO,MAAMC,OAAO,GAChBC,KAAsB,IACrB;EACD,IAAI,CAACA,KAAK,CAACC,IAAI,IAAI,CAACD,KAAK,CAACE,OAAO,CAACC,MAAM,EAAE;IACtC,OAAO,IAAI;EACf;EAEA,oBACIP,KAAA,CAAAQ,aAAA,CAAAR,KAAA,CAAAS,QAAA,qBACIT,KAAA,CAAAQ,aAAA;IACIE,SAAS,EAAE,oDAAqD;IAChE,eAAaN,KAAK,CAAC,aAAa,CAAC,IAAI;EAAoB,gBAEzDJ,KAAA,CAAAQ,aAAA,CAACN,IAAI;IAACS,IAAI,EAAEP,KAAK,CAACO,IAAK;IAACC,QAAQ,EAAER,KAAK,CAACQ;EAAS,GAC5C,mBACGZ,KAAA,CAAAQ,aAAA;IAAKE,SAAS,EAAE;EAA+C,GAC1DN,KAAK,CAACE,OAAO,CAACO,GAAG,CAACC,MAAM,iBACrBd,KAAA,CAAAQ,aAAA;IAAKO,GAAG,EAAED,MAAM,CAACE;EAAK,GAAEF,MAAM,CAACG,OAAa,CAC/C,CAAC,EACDb,KAAK,CAACc,QACN,CAEP,CACL,CAAC,eACNlB,KAAA,CAAAQ,aAAA,CAACP,SAAS,MAAE,CACd,CAAC;AAEX,CAAC","ignoreList":[]}
@@ -16,7 +16,7 @@ const PanelRoot = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "producti
16
16
  } : {
17
17
  name: "1a2cm7e",
18
18
  styles: "position:fixed;top:0;left:0;z-index:100000;width:0;height:0",
19
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZsb2F0aW5nUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU80QiIsImZpbGUiOiJGbG9hdGluZ1BhbmVsLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgRHJhZ2dhYmxlLCB7IHR5cGUgRHJhZ2dhYmxlRXZlbnRIYW5kbGVyIH0gZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xuaW1wb3J0IHsgUmVzaXphYmxlLCBSZXNpemFibGVQcm9wcyB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5SGFuZGxlciB9IGZyb20gXCJ+L2hvb2tzXCI7XG5cbmNvbnN0IFBhbmVsUm9vdCA9IHN0eWxlZC5kaXZgXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG5gO1xuXG5jb25zdCBSZXNpemVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgM3B4IDNweCAwO1xuICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCemRHRnVaR0ZzYjI1bFBTSnVieUkvUGcwOElTMHRJRWRsYm1WeVlYUnZjam9nUVdSdlltVWdSbWx5WlhkdmNtdHpJRU5UTml3Z1JYaHdiM0owSUZOV1J5QkZlSFJsYm5OcGIyNGdZbmtnUVdGeWIyNGdRbVZoYkd3Z0tHaDBkSEE2THk5bWFYSmxkMjl5YTNNdVlXSmxZV3hzTG1OdmJTa2dMaUJXWlhKemFXOXVPaUF3TGpZdU1TQWdMUzArRFR3aFJFOURWRmxRUlNCemRtY2dVRlZDVEVsRElDSXRMeTlYTTBNdkwwUlVSQ0JUVmtjZ01TNHhMeTlGVGlJZ0ltaDBkSEE2THk5M2QzY3Vkek11YjNKbkwwZHlZWEJvYVdOekwxTldSeTh4TGpFdlJGUkVMM04yWnpFeExtUjBaQ0krRFR4emRtY2dhV1E5SWxWdWRHbDBiR1ZrTFZCaFoyVWxNakF4SWlCMmFXVjNRbTk0UFNJd0lEQWdOaUEySWlCemRIbHNaVDBpWW1GamEyZHliM1Z1WkMxamIyeHZjam9qWm1abVptWm1NREFpSUhabGNuTnBiMjQ5SWpFdU1TSU5DWGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIaHRiRHB6Y0dGalpUMGljSEpsYzJWeWRtVWlEUWw0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkMmxrZEdnOUlqWndlQ0lnYUdWcFoyaDBQU0kyY0hnaURUNE5DVHhuSUc5d1lXTnBkSGs5SWpBdU16QXlJajROQ1FrOGNHRjBhQ0JrUFNKTklEWWdOaUJNSURBZ05pQk1JREFnTkM0eUlFd2dOQ0EwTGpJZ1RDQTBMaklnTkM0eUlFd2dOQzR5SURBZ1RDQTJJREFnVENBMklEWWdUQ0EySURZZ1dpSWdabWxzYkQwaUl6QXdNREF3TUNJdlBnMEpQQzluUGcwOEwzTjJaejQ9XCIpXG4gICAgICAgIG5vLXJlcGVhdCBib3R0b20gcmlnaHQ7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBzZS1yZXNpemU7XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUGFuZWxSZW5kZXJQcm9wIHtcbiAgICAocGFyYW1zOiB7IGhlaWdodDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0pOiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQYW5lbFByb3BzIHtcbiAgICBzaG9ydGN1dDogc3RyaW5nO1xuICAgIGRyYWdIYW5kbGU6IHN0cmluZztcbiAgICBjaGlsZHJlbjogRmxvYXRpbmdQYW5lbFJlbmRlclByb3A7XG59XG5cbmV4cG9ydCBjb25zdCBGbG9hdGluZ1BhbmVsID0gKHsgZHJhZ0hhbmRsZSwgc2hvcnRjdXQsIGNoaWxkcmVuIH06IEZsb2F0aW5nUGFuZWxQcm9wcykgPT4ge1xuICAgIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NpemUsIHNldFNpemVdID0gdXNlU3RhdGUoeyB3aWR0aDogNzAwLCBoZWlnaHQ6IDYwMCB9KTtcbiAgICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlKHsgeDogMTAwLCB5OiAxMDAgfSk7XG4gICAgY29uc3QgeyBhZGRLZXlIYW5kbGVyLCByZW1vdmVLZXlIYW5kbGVyIH0gPSB1c2VLZXlIYW5kbGVyKCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBhZGRLZXlIYW5kbGVyKHNob3J0Y3V0LCBlID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldElzVmlzaWJsZShpc1Zpc2libGUgPT4gIWlzVmlzaWJsZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiByZW1vdmVLZXlIYW5kbGVyKHNob3J0Y3V0KTtcbiAgICB9LCBbc2V0SXNWaXNpYmxlXSk7XG5cbiAgICBjb25zdCBvbkRyYWdTdG9wOiBEcmFnZ2FibGVFdmVudEhhbmRsZXIgPSAoXywgZGF0YSkgPT4ge1xuICAgICAgICBzZXRQb3NpdGlvbih7IHg6IGRhdGEueCwgeTogZGF0YS55IH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBvblJlc2l6ZTogUmVzaXphYmxlUHJvcHNbXCJvblJlc2l6ZVwiXSA9IChfLCB7IHNpemUgfSkgPT4ge1xuICAgICAgICBzZXRTaXplKHsgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHQgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8UGFuZWxSb290PlxuICAgICAgICAgICAgICAgIDxEcmFnZ2FibGUgaGFuZGxlPXtkcmFnSGFuZGxlfSBvblN0b3A9e29uRHJhZ1N0b3B9IHBvc2l0aW9uPXtwb3NpdGlvbn0+XG4gICAgICAgICAgICAgICAgICAgIDxSZXNpemFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtzaXplLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtzaXplLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVzaXplPXtvblJlc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17PFJlc2l6ZUhhbmRsZSAvPn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2J5LWJnLW5ldXRyYWwtYmFzZSB3YnktcmVsYXRpdmUgd2J5LWJvcmRlci1zbSB3YnktYm9yZGVyLWFjY2VudC1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaXNWaXNpYmxlID8gXCJibG9ja1wiIDogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHNpemUuaGVpZ2h0ICsgXCJweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJmbG9hdGluZy1wYW5lbFwifT57Y2hpbGRyZW4oc2l6ZSl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZXNpemFibGU+XG4gICAgICAgICAgICAgICAgPC9EcmFnZ2FibGU+XG4gICAgICAgICAgICA8L1BhbmVsUm9vdD5cbiAgICAgICAgPC8+LFxuICAgICAgICBkb2N1bWVudC5ib2R5XG4gICAgKTtcbn07XG4iXX0= */",
19
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZsb2F0aW5nUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVE0QiIsImZpbGUiOiJGbG9hdGluZ1BhbmVsLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBjcmVhdGVQb3J0YWwgfSBmcm9tIFwicmVhY3QtZG9tXCI7XG5pbXBvcnQgRHJhZ2dhYmxlLCB7IHR5cGUgRHJhZ2dhYmxlRXZlbnRIYW5kbGVyIH0gZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xuaW1wb3J0IHR5cGUgeyBSZXNpemFibGVQcm9wcyB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcbmltcG9ydCB7IFJlc2l6YWJsZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgdXNlS2V5SGFuZGxlciB9IGZyb20gXCJ+L2hvb2tzXCI7XG5cbmNvbnN0IFBhbmVsUm9vdCA9IHN0eWxlZC5kaXZgXG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDEwMDAwMDtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7XG5gO1xuXG5jb25zdCBSZXNpemVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm90dG9tOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDAgM3B4IDNweCAwO1xuICAgIGJhY2tncm91bmQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCemRHRnVaR0ZzYjI1bFBTSnVieUkvUGcwOElTMHRJRWRsYm1WeVlYUnZjam9nUVdSdlltVWdSbWx5WlhkdmNtdHpJRU5UTml3Z1JYaHdiM0owSUZOV1J5QkZlSFJsYm5OcGIyNGdZbmtnUVdGeWIyNGdRbVZoYkd3Z0tHaDBkSEE2THk5bWFYSmxkMjl5YTNNdVlXSmxZV3hzTG1OdmJTa2dMaUJXWlhKemFXOXVPaUF3TGpZdU1TQWdMUzArRFR3aFJFOURWRmxRUlNCemRtY2dVRlZDVEVsRElDSXRMeTlYTTBNdkwwUlVSQ0JUVmtjZ01TNHhMeTlGVGlJZ0ltaDBkSEE2THk5M2QzY3Vkek11YjNKbkwwZHlZWEJvYVdOekwxTldSeTh4TGpFdlJGUkVMM04yWnpFeExtUjBaQ0krRFR4emRtY2dhV1E5SWxWdWRHbDBiR1ZrTFZCaFoyVWxNakF4SWlCMmFXVjNRbTk0UFNJd0lEQWdOaUEySWlCemRIbHNaVDBpWW1GamEyZHliM1Z1WkMxamIyeHZjam9qWm1abVptWm1NREFpSUhabGNuTnBiMjQ5SWpFdU1TSU5DWGh0Ykc1elBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHlNREF3TDNOMlp5SWdlRzFzYm5NNmVHeHBibXM5SW1oMGRIQTZMeTkzZDNjdWR6TXViM0puTHpFNU9Ua3ZlR3hwYm1zaUlIaHRiRHB6Y0dGalpUMGljSEpsYzJWeWRtVWlEUWw0UFNJd2NIZ2lJSGs5SWpCd2VDSWdkMmxrZEdnOUlqWndlQ0lnYUdWcFoyaDBQU0kyY0hnaURUNE5DVHhuSUc5d1lXTnBkSGs5SWpBdU16QXlJajROQ1FrOGNHRjBhQ0JrUFNKTklEWWdOaUJNSURBZ05pQk1JREFnTkM0eUlFd2dOQ0EwTGpJZ1RDQTBMaklnTkM0eUlFd2dOQzR5SURBZ1RDQTJJREFnVENBMklEWWdUQ0EySURZZ1dpSWdabWxzYkQwaUl6QXdNREF3TUNJdlBnMEpQQzluUGcwOEwzTjJaejQ9XCIpXG4gICAgICAgIG5vLXJlcGVhdCBib3R0b20gcmlnaHQ7XG4gICAgYmFja2dyb3VuZC1vcmlnaW46IGNvbnRlbnQtYm94O1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgY3Vyc29yOiBzZS1yZXNpemU7XG5gO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUGFuZWxSZW5kZXJQcm9wIHtcbiAgICAocGFyYW1zOiB7IGhlaWdodDogbnVtYmVyOyB3aWR0aDogbnVtYmVyIH0pOiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmxvYXRpbmdQYW5lbFByb3BzIHtcbiAgICBzaG9ydGN1dDogc3RyaW5nO1xuICAgIGRyYWdIYW5kbGU6IHN0cmluZztcbiAgICBjaGlsZHJlbjogRmxvYXRpbmdQYW5lbFJlbmRlclByb3A7XG59XG5cbmV4cG9ydCBjb25zdCBGbG9hdGluZ1BhbmVsID0gKHsgZHJhZ0hhbmRsZSwgc2hvcnRjdXQsIGNoaWxkcmVuIH06IEZsb2F0aW5nUGFuZWxQcm9wcykgPT4ge1xuICAgIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW3NpemUsIHNldFNpemVdID0gdXNlU3RhdGUoeyB3aWR0aDogNzAwLCBoZWlnaHQ6IDYwMCB9KTtcbiAgICBjb25zdCBbcG9zaXRpb24sIHNldFBvc2l0aW9uXSA9IHVzZVN0YXRlKHsgeDogMTAwLCB5OiAxMDAgfSk7XG4gICAgY29uc3QgeyBhZGRLZXlIYW5kbGVyLCByZW1vdmVLZXlIYW5kbGVyIH0gPSB1c2VLZXlIYW5kbGVyKCk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBhZGRLZXlIYW5kbGVyKHNob3J0Y3V0LCBlID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHNldElzVmlzaWJsZShpc1Zpc2libGUgPT4gIWlzVmlzaWJsZSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiAoKSA9PiByZW1vdmVLZXlIYW5kbGVyKHNob3J0Y3V0KTtcbiAgICB9LCBbc2V0SXNWaXNpYmxlXSk7XG5cbiAgICBjb25zdCBvbkRyYWdTdG9wOiBEcmFnZ2FibGVFdmVudEhhbmRsZXIgPSAoXywgZGF0YSkgPT4ge1xuICAgICAgICBzZXRQb3NpdGlvbih7IHg6IGRhdGEueCwgeTogZGF0YS55IH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBvblJlc2l6ZTogUmVzaXphYmxlUHJvcHNbXCJvblJlc2l6ZVwiXSA9IChfLCB7IHNpemUgfSkgPT4ge1xuICAgICAgICBzZXRTaXplKHsgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHQgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBjcmVhdGVQb3J0YWwoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8UGFuZWxSb290PlxuICAgICAgICAgICAgICAgIDxEcmFnZ2FibGUgaGFuZGxlPXtkcmFnSGFuZGxlfSBvblN0b3A9e29uRHJhZ1N0b3B9IHBvc2l0aW9uPXtwb3NpdGlvbn0+XG4gICAgICAgICAgICAgICAgICAgIDxSZXNpemFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtzaXplLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXtzaXplLmhlaWdodH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uUmVzaXplPXtvblJlc2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZT17PFJlc2l6ZUhhbmRsZSAvPn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2J5LWJnLW5ldXRyYWwtYmFzZSB3YnktcmVsYXRpdmUgd2J5LWJvcmRlci1zbSB3YnktYm9yZGVyLWFjY2VudC1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaXNWaXNpYmxlID8gXCJibG9ja1wiIDogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBzaXplLndpZHRoICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHNpemUuaGVpZ2h0ICsgXCJweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJmbG9hdGluZy1wYW5lbFwifT57Y2hpbGRyZW4oc2l6ZSl9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9SZXNpemFibGU+XG4gICAgICAgICAgICAgICAgPC9EcmFnZ2FibGU+XG4gICAgICAgICAgICA8L1BhbmVsUm9vdD5cbiAgICAgICAgPC8+LFxuICAgICAgICBkb2N1bWVudC5ib2R5XG4gICAgKTtcbn07XG4iXX0= */",
20
20
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
21
21
  });
22
22
  const ResizeHandle = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "production" ? {
@@ -30,7 +30,7 @@ const ResizeHandle = /*#__PURE__*/_styled("div", process.env.NODE_ENV === "produ
30
30
  } : {
31
31
  name: "oq4jmq",
32
32
  styles: "position:absolute;width:20px;height:20px;bottom:0;right:0;padding:0 3px 3px 0;background:url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4=\") no-repeat bottom right;background-origin:content-box;box-sizing:border-box;cursor:se-resize",
33
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZsb2F0aW5nUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdCK0IiLCJmaWxlIjoiRmxvYXRpbmdQYW5lbC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IERyYWdnYWJsZSwgeyB0eXBlIERyYWdnYWJsZUV2ZW50SGFuZGxlciB9IGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcbmltcG9ydCB7IFJlc2l6YWJsZSwgUmVzaXphYmxlUHJvcHMgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZUtleUhhbmRsZXIgfSBmcm9tIFwifi9ob29rc1wiO1xuXG5jb25zdCBQYW5lbFJvb3QgPSBzdHlsZWQuZGl2YFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDAwMDA7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuYDtcblxuY29uc3QgUmVzaXplSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAwIDNweCAzcHggMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQnpkR0Z1WkdGc2IyNWxQU0p1YnlJL1BnMDhJUzB0SUVkbGJtVnlZWFJ2Y2pvZ1FXUnZZbVVnUm1seVpYZHZjbXR6SUVOVE5pd2dSWGh3YjNKMElGTldSeUJGZUhSbGJuTnBiMjRnWW5rZ1FXRnliMjRnUW1WaGJHd2dLR2gwZEhBNkx5OW1hWEpsZDI5eWEzTXVZV0psWVd4c0xtTnZiU2tnTGlCV1pYSnphVzl1T2lBd0xqWXVNU0FnTFMwK0RUd2hSRTlEVkZsUVJTQnpkbWNnVUZWQ1RFbERJQ0l0THk5WE0wTXZMMFJVUkNCVFZrY2dNUzR4THk5RlRpSWdJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMGR5WVhCb2FXTnpMMU5XUnk4eExqRXZSRlJFTDNOMlp6RXhMbVIwWkNJK0RUeHpkbWNnYVdROUlsVnVkR2wwYkdWa0xWQmhaMlVsTWpBeElpQjJhV1YzUW05NFBTSXdJREFnTmlBMklpQnpkSGxzWlQwaVltRmphMmR5YjNWdVpDMWpiMnh2Y2pvalptWm1abVptTURBaUlIWmxjbk5wYjI0OUlqRXVNU0lOQ1hodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGh0YkRwemNHRmpaVDBpY0hKbGMyVnlkbVVpRFFsNFBTSXdjSGdpSUhrOUlqQndlQ0lnZDJsa2RHZzlJalp3ZUNJZ2FHVnBaMmgwUFNJMmNIZ2lEVDROQ1R4bklHOXdZV05wZEhrOUlqQXVNekF5SWo0TkNRazhjR0YwYUNCa1BTSk5JRFlnTmlCTUlEQWdOaUJNSURBZ05DNHlJRXdnTkNBMExqSWdUQ0EwTGpJZ05DNHlJRXdnTkM0eUlEQWdUQ0EySURBZ1RDQTJJRFlnVENBMklEWWdXaUlnWm1sc2JEMGlJekF3TURBd01DSXZQZzBKUEM5blBnMDhMM04yWno0PVwiKVxuICAgICAgICBuby1yZXBlYXQgYm90dG9tIHJpZ2h0O1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1BhbmVsUmVuZGVyUHJvcCB7XG4gICAgKHBhcmFtczogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9KTogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUGFuZWxQcm9wcyB7XG4gICAgc2hvcnRjdXQ6IHN0cmluZztcbiAgICBkcmFnSGFuZGxlOiBzdHJpbmc7XG4gICAgY2hpbGRyZW46IEZsb2F0aW5nUGFuZWxSZW5kZXJQcm9wO1xufVxuXG5leHBvcnQgY29uc3QgRmxvYXRpbmdQYW5lbCA9ICh7IGRyYWdIYW5kbGUsIHNob3J0Y3V0LCBjaGlsZHJlbiB9OiBGbG9hdGluZ1BhbmVsUHJvcHMpID0+IHtcbiAgICBjb25zdCBbaXNWaXNpYmxlLCBzZXRJc1Zpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzaXplLCBzZXRTaXplXSA9IHVzZVN0YXRlKHsgd2lkdGg6IDcwMCwgaGVpZ2h0OiA2MDAgfSk7XG4gICAgY29uc3QgW3Bvc2l0aW9uLCBzZXRQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IHg6IDEwMCwgeTogMTAwIH0pO1xuICAgIGNvbnN0IHsgYWRkS2V5SGFuZGxlciwgcmVtb3ZlS2V5SGFuZGxlciB9ID0gdXNlS2V5SGFuZGxlcigpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYWRkS2V5SGFuZGxlcihzaG9ydGN1dCwgZSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRJc1Zpc2libGUoaXNWaXNpYmxlID0+ICFpc1Zpc2libGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gcmVtb3ZlS2V5SGFuZGxlcihzaG9ydGN1dCk7XG4gICAgfSwgW3NldElzVmlzaWJsZV0pO1xuXG4gICAgY29uc3Qgb25EcmFnU3RvcDogRHJhZ2dhYmxlRXZlbnRIYW5kbGVyID0gKF8sIGRhdGEpID0+IHtcbiAgICAgICAgc2V0UG9zaXRpb24oeyB4OiBkYXRhLngsIHk6IGRhdGEueSB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25SZXNpemU6IFJlc2l6YWJsZVByb3BzW1wib25SZXNpemVcIl0gPSAoXywgeyBzaXplIH0pID0+IHtcbiAgICAgICAgc2V0U2l6ZSh7IHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0IH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPFBhbmVsUm9vdD5cbiAgICAgICAgICAgICAgICA8RHJhZ2dhYmxlIGhhbmRsZT17ZHJhZ0hhbmRsZX0gb25TdG9wPXtvbkRyYWdTdG9wfSBwb3NpdGlvbj17cG9zaXRpb259PlxuICAgICAgICAgICAgICAgICAgICA8UmVzaXphYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17c2l6ZS53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17c2l6ZS5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlc2l6ZT17b25SZXNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9ezxSZXNpemVIYW5kbGUgLz59XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIndieS1iZy1uZXV0cmFsLWJhc2Ugd2J5LXJlbGF0aXZlIHdieS1ib3JkZXItc20gd2J5LWJvcmRlci1hY2NlbnQtZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlzVmlzaWJsZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodCArIFwicHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiZmxvYXRpbmctcGFuZWxcIn0+e2NoaWxkcmVuKHNpemUpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVzaXphYmxlPlxuICAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAgICAgICAgPC9QYW5lbFJvb3Q+XG4gICAgICAgIDwvPixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICk7XG59O1xuIl19 */",
33
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZsb2F0aW5nUGFuZWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCK0IiLCJmaWxlIjoiRmxvYXRpbmdQYW5lbC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSBcInJlYWN0LWRvbVwiO1xuaW1wb3J0IERyYWdnYWJsZSwgeyB0eXBlIERyYWdnYWJsZUV2ZW50SGFuZGxlciB9IGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcbmltcG9ydCB0eXBlIHsgUmVzaXphYmxlUHJvcHMgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlXCI7XG5pbXBvcnQgeyBSZXNpemFibGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IHVzZUtleUhhbmRsZXIgfSBmcm9tIFwifi9ob29rc1wiO1xuXG5jb25zdCBQYW5lbFJvb3QgPSBzdHlsZWQuZGl2YFxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiAxMDAwMDA7XG4gICAgd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAwO1xuYDtcblxuY29uc3QgUmVzaXplSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJvdHRvbTogMDtcbiAgICByaWdodDogMDtcbiAgICBwYWRkaW5nOiAwIDNweCAzcHggMDtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBEOTRiV3dnZG1WeWMybHZiajBpTVM0d0lpQnpkR0Z1WkdGc2IyNWxQU0p1YnlJL1BnMDhJUzB0SUVkbGJtVnlZWFJ2Y2pvZ1FXUnZZbVVnUm1seVpYZHZjbXR6SUVOVE5pd2dSWGh3YjNKMElGTldSeUJGZUhSbGJuTnBiMjRnWW5rZ1FXRnliMjRnUW1WaGJHd2dLR2gwZEhBNkx5OW1hWEpsZDI5eWEzTXVZV0psWVd4c0xtTnZiU2tnTGlCV1pYSnphVzl1T2lBd0xqWXVNU0FnTFMwK0RUd2hSRTlEVkZsUVJTQnpkbWNnVUZWQ1RFbERJQ0l0THk5WE0wTXZMMFJVUkNCVFZrY2dNUzR4THk5RlRpSWdJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMGR5WVhCb2FXTnpMMU5XUnk4eExqRXZSRlJFTDNOMlp6RXhMbVIwWkNJK0RUeHpkbWNnYVdROUlsVnVkR2wwYkdWa0xWQmhaMlVsTWpBeElpQjJhV1YzUW05NFBTSXdJREFnTmlBMklpQnpkSGxzWlQwaVltRmphMmR5YjNWdVpDMWpiMnh2Y2pvalptWm1abVptTURBaUlIWmxjbk5wYjI0OUlqRXVNU0lOQ1hodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGh0YkRwemNHRmpaVDBpY0hKbGMyVnlkbVVpRFFsNFBTSXdjSGdpSUhrOUlqQndlQ0lnZDJsa2RHZzlJalp3ZUNJZ2FHVnBaMmgwUFNJMmNIZ2lEVDROQ1R4bklHOXdZV05wZEhrOUlqQXVNekF5SWo0TkNRazhjR0YwYUNCa1BTSk5JRFlnTmlCTUlEQWdOaUJNSURBZ05DNHlJRXdnTkNBMExqSWdUQ0EwTGpJZ05DNHlJRXdnTkM0eUlEQWdUQ0EySURBZ1RDQTJJRFlnVENBMklEWWdXaUlnWm1sc2JEMGlJekF3TURBd01DSXZQZzBKUEM5blBnMDhMM04yWno0PVwiKVxuICAgICAgICBuby1yZXBlYXQgYm90dG9tIHJpZ2h0O1xuICAgIGJhY2tncm91bmQtb3JpZ2luOiBjb250ZW50LWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGN1cnNvcjogc2UtcmVzaXplO1xuYDtcblxuZXhwb3J0IGludGVyZmFjZSBGbG9hdGluZ1BhbmVsUmVuZGVyUHJvcCB7XG4gICAgKHBhcmFtczogeyBoZWlnaHQ6IG51bWJlcjsgd2lkdGg6IG51bWJlciB9KTogUmVhY3QuUmVhY3ROb2RlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZsb2F0aW5nUGFuZWxQcm9wcyB7XG4gICAgc2hvcnRjdXQ6IHN0cmluZztcbiAgICBkcmFnSGFuZGxlOiBzdHJpbmc7XG4gICAgY2hpbGRyZW46IEZsb2F0aW5nUGFuZWxSZW5kZXJQcm9wO1xufVxuXG5leHBvcnQgY29uc3QgRmxvYXRpbmdQYW5lbCA9ICh7IGRyYWdIYW5kbGUsIHNob3J0Y3V0LCBjaGlsZHJlbiB9OiBGbG9hdGluZ1BhbmVsUHJvcHMpID0+IHtcbiAgICBjb25zdCBbaXNWaXNpYmxlLCBzZXRJc1Zpc2libGVdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzaXplLCBzZXRTaXplXSA9IHVzZVN0YXRlKHsgd2lkdGg6IDcwMCwgaGVpZ2h0OiA2MDAgfSk7XG4gICAgY29uc3QgW3Bvc2l0aW9uLCBzZXRQb3NpdGlvbl0gPSB1c2VTdGF0ZSh7IHg6IDEwMCwgeTogMTAwIH0pO1xuICAgIGNvbnN0IHsgYWRkS2V5SGFuZGxlciwgcmVtb3ZlS2V5SGFuZGxlciB9ID0gdXNlS2V5SGFuZGxlcigpO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgYWRkS2V5SGFuZGxlcihzaG9ydGN1dCwgZSA9PiB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBzZXRJc1Zpc2libGUoaXNWaXNpYmxlID0+ICFpc1Zpc2libGUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gKCkgPT4gcmVtb3ZlS2V5SGFuZGxlcihzaG9ydGN1dCk7XG4gICAgfSwgW3NldElzVmlzaWJsZV0pO1xuXG4gICAgY29uc3Qgb25EcmFnU3RvcDogRHJhZ2dhYmxlRXZlbnRIYW5kbGVyID0gKF8sIGRhdGEpID0+IHtcbiAgICAgICAgc2V0UG9zaXRpb24oeyB4OiBkYXRhLngsIHk6IGRhdGEueSB9KTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25SZXNpemU6IFJlc2l6YWJsZVByb3BzW1wib25SZXNpemVcIl0gPSAoXywgeyBzaXplIH0pID0+IHtcbiAgICAgICAgc2V0U2l6ZSh7IHdpZHRoOiBzaXplLndpZHRoLCBoZWlnaHQ6IHNpemUuaGVpZ2h0IH0pO1xuICAgIH07XG5cbiAgICByZXR1cm4gY3JlYXRlUG9ydGFsKFxuICAgICAgICA8PlxuICAgICAgICAgICAgPFBhbmVsUm9vdD5cbiAgICAgICAgICAgICAgICA8RHJhZ2dhYmxlIGhhbmRsZT17ZHJhZ0hhbmRsZX0gb25TdG9wPXtvbkRyYWdTdG9wfSBwb3NpdGlvbj17cG9zaXRpb259PlxuICAgICAgICAgICAgICAgICAgICA8UmVzaXphYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17c2l6ZS53aWR0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17c2l6ZS5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvblJlc2l6ZT17b25SZXNpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGU9ezxSZXNpemVIYW5kbGUgLz59XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIndieS1iZy1uZXV0cmFsLWJhc2Ugd2J5LXJlbGF0aXZlIHdieS1ib3JkZXItc20gd2J5LWJvcmRlci1hY2NlbnQtZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlzVmlzaWJsZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCArIFwicHhcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodCArIFwicHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiZmxvYXRpbmctcGFuZWxcIn0+e2NoaWxkcmVuKHNpemUpfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvUmVzaXphYmxlPlxuICAgICAgICAgICAgICAgIDwvRHJhZ2dhYmxlPlxuICAgICAgICAgICAgPC9QYW5lbFJvb3Q+XG4gICAgICAgIDwvPixcbiAgICAgICAgZG9jdW1lbnQuYm9keVxuICAgICk7XG59O1xuIl19 */",
34
34
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
35
35
  });
36
36
  export const FloatingPanel = ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","createPortal","Draggable","Resizable","useKeyHandler","PanelRoot","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","ResizeHandle","FloatingPanel","dragHandle","shortcut","children","isVisible","setIsVisible","size","setSize","width","height","position","setPosition","x","y","addKeyHandler","removeKeyHandler","e","preventDefault","onDragStop","_","data","onResize","createElement","Fragment","handle","onStop","className","style","display","document","body"],"sources":["FloatingPanel.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport Draggable, { type DraggableEventHandler } from \"react-draggable\";\nimport { Resizable, ResizableProps } from \"react-resizable\";\nimport styled from \"@emotion/styled\";\nimport { useKeyHandler } from \"~/hooks\";\n\nconst PanelRoot = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n z-index: 100000;\n width: 0;\n height: 0;\n`;\n\nconst ResizeHandle = styled.div`\n position: absolute;\n width: 20px;\n height: 20px;\n bottom: 0;\n right: 0;\n padding: 0 3px 3px 0;\n background: url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4=\")\n no-repeat bottom right;\n background-origin: content-box;\n box-sizing: border-box;\n cursor: se-resize;\n`;\n\nexport interface FloatingPanelRenderProp {\n (params: { height: number; width: number }): React.ReactNode;\n}\n\nexport interface FloatingPanelProps {\n shortcut: string;\n dragHandle: string;\n children: FloatingPanelRenderProp;\n}\n\nexport const FloatingPanel = ({ dragHandle, shortcut, children }: FloatingPanelProps) => {\n const [isVisible, setIsVisible] = useState(false);\n const [size, setSize] = useState({ width: 700, height: 600 });\n const [position, setPosition] = useState({ x: 100, y: 100 });\n const { addKeyHandler, removeKeyHandler } = useKeyHandler();\n\n useEffect(() => {\n addKeyHandler(shortcut, e => {\n e.preventDefault();\n setIsVisible(isVisible => !isVisible);\n });\n\n return () => removeKeyHandler(shortcut);\n }, [setIsVisible]);\n\n const onDragStop: DraggableEventHandler = (_, data) => {\n setPosition({ x: data.x, y: data.y });\n };\n\n const onResize: ResizableProps[\"onResize\"] = (_, { size }) => {\n setSize({ width: size.width, height: size.height });\n };\n\n return createPortal(\n <>\n <PanelRoot>\n <Draggable handle={dragHandle} onStop={onDragStop} position={position}>\n <Resizable\n width={size.width}\n height={size.height}\n onResize={onResize}\n handle={<ResizeHandle />}\n >\n <div\n className={\n \"wby-bg-neutral-base wby-relative wby-border-sm wby-border-accent-default\"\n }\n style={{\n display: isVisible ? \"block\" : \"none\",\n width: size.width + \"px\",\n height: size.height + \"px\"\n }}\n >\n <div className={\"floating-panel\"}>{children(size)}</div>\n </div>\n </Resizable>\n </Draggable>\n </PanelRoot>\n </>,\n document.body\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","createPortal","Draggable","Resizable","useKeyHandler","PanelRoot","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","ResizeHandle","FloatingPanel","dragHandle","shortcut","children","isVisible","setIsVisible","size","setSize","width","height","position","setPosition","x","y","addKeyHandler","removeKeyHandler","e","preventDefault","onDragStop","_","data","onResize","createElement","Fragment","handle","onStop","className","style","display","document","body"],"sources":["FloatingPanel.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport Draggable, { type DraggableEventHandler } from \"react-draggable\";\nimport type { ResizableProps } from \"react-resizable\";\nimport { Resizable } from \"react-resizable\";\nimport styled from \"@emotion/styled\";\nimport { useKeyHandler } from \"~/hooks\";\n\nconst PanelRoot = styled.div`\n position: fixed;\n top: 0;\n left: 0;\n z-index: 100000;\n width: 0;\n height: 0;\n`;\n\nconst ResizeHandle = styled.div`\n position: absolute;\n width: 20px;\n height: 20px;\n bottom: 0;\n right: 0;\n padding: 0 3px 3px 0;\n background: url(\"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4=\")\n no-repeat bottom right;\n background-origin: content-box;\n box-sizing: border-box;\n cursor: se-resize;\n`;\n\nexport interface FloatingPanelRenderProp {\n (params: { height: number; width: number }): React.ReactNode;\n}\n\nexport interface FloatingPanelProps {\n shortcut: string;\n dragHandle: string;\n children: FloatingPanelRenderProp;\n}\n\nexport const FloatingPanel = ({ dragHandle, shortcut, children }: FloatingPanelProps) => {\n const [isVisible, setIsVisible] = useState(false);\n const [size, setSize] = useState({ width: 700, height: 600 });\n const [position, setPosition] = useState({ x: 100, y: 100 });\n const { addKeyHandler, removeKeyHandler } = useKeyHandler();\n\n useEffect(() => {\n addKeyHandler(shortcut, e => {\n e.preventDefault();\n setIsVisible(isVisible => !isVisible);\n });\n\n return () => removeKeyHandler(shortcut);\n }, [setIsVisible]);\n\n const onDragStop: DraggableEventHandler = (_, data) => {\n setPosition({ x: data.x, y: data.y });\n };\n\n const onResize: ResizableProps[\"onResize\"] = (_, { size }) => {\n setSize({ width: size.width, height: size.height });\n };\n\n return createPortal(\n <>\n <PanelRoot>\n <Draggable handle={dragHandle} onStop={onDragStop} position={position}>\n <Resizable\n width={size.width}\n height={size.height}\n onResize={onResize}\n handle={<ResizeHandle />}\n >\n <div\n className={\n \"wby-bg-neutral-base wby-relative wby-border-sm wby-border-accent-default\"\n }\n style={{\n display: isVisible ? \"block\" : \"none\",\n width: size.width + \"px\",\n height: size.height + \"px\"\n }}\n >\n <div className={\"floating-panel\"}>{children(size)}</div>\n </div>\n </Resizable>\n </Draggable>\n </PanelRoot>\n </>,\n document.body\n );\n};\n"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,YAAY,QAAQ,WAAW;AACxC,OAAOC,SAAS,MAAsC,iBAAiB;AAEvE,SAASC,SAAS,QAAQ,iBAAiB;AAE3C,SAASC,aAAa;AAEtB,MAAMC,SAAS,gBAAAC,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA,EAOd;AAED,MAAMC,YAAY,gBAAAX,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA,EAYjB;AAYD,OAAO,MAAME,aAAa,GAAGA,CAAC;EAAEC,UAAU;EAAEC,QAAQ;EAAEC;AAA6B,CAAC,KAAK;EACrF,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGvB,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACwB,IAAI,EAAEC,OAAO,CAAC,GAAGzB,QAAQ,CAAC;IAAE0B,KAAK,EAAE,GAAG;IAAEC,MAAM,EAAE;EAAI,CAAC,CAAC;EAC7D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG7B,QAAQ,CAAC;IAAE8B,CAAC,EAAE,GAAG;IAAEC,CAAC,EAAE;EAAI,CAAC,CAAC;EAC5D,MAAM;IAAEC,aAAa;IAAEC;EAAiB,CAAC,GAAG7B,aAAa,CAAC,CAAC;EAE3DL,SAAS,CAAC,MAAM;IACZiC,aAAa,CAACZ,QAAQ,EAAEc,CAAC,IAAI;MACzBA,CAAC,CAACC,cAAc,CAAC,CAAC;MAClBZ,YAAY,CAACD,SAAS,IAAI,CAACA,SAAS,CAAC;IACzC,CAAC,CAAC;IAEF,OAAO,MAAMW,gBAAgB,CAACb,QAAQ,CAAC;EAC3C,CAAC,EAAE,CAACG,YAAY,CAAC,CAAC;EAElB,MAAMa,UAAiC,GAAGA,CAACC,CAAC,EAAEC,IAAI,KAAK;IACnDT,WAAW,CAAC;MAAEC,CAAC,EAAEQ,IAAI,CAACR,CAAC;MAAEC,CAAC,EAAEO,IAAI,CAACP;IAAE,CAAC,CAAC;EACzC,CAAC;EAED,MAAMQ,QAAoC,GAAGA,CAACF,CAAC,EAAE;IAAEb;EAAK,CAAC,KAAK;IAC1DC,OAAO,CAAC;MAAEC,KAAK,EAAEF,IAAI,CAACE,KAAK;MAAEC,MAAM,EAAEH,IAAI,CAACG;IAAO,CAAC,CAAC;EACvD,CAAC;EAED,oBAAO1B,YAAY,cACfH,KAAA,CAAA0C,aAAA,CAAA1C,KAAA,CAAA2C,QAAA,qBACI3C,KAAA,CAAA0C,aAAA,CAACnC,SAAS,qBACNP,KAAA,CAAA0C,aAAA,CAACtC,SAAS;IAACwC,MAAM,EAAEvB,UAAW;IAACwB,MAAM,EAAEP,UAAW;IAACR,QAAQ,EAAEA;EAAS,gBAClE9B,KAAA,CAAA0C,aAAA,CAACrC,SAAS;IACNuB,KAAK,EAAEF,IAAI,CAACE,KAAM;IAClBC,MAAM,EAAEH,IAAI,CAACG,MAAO;IACpBY,QAAQ,EAAEA,QAAS;IACnBG,MAAM,eAAE5C,KAAA,CAAA0C,aAAA,CAACvB,YAAY,MAAE;EAAE,gBAEzBnB,KAAA,CAAA0C,aAAA;IACII,SAAS,EACL,0EACH;IACDC,KAAK,EAAE;MACHC,OAAO,EAAExB,SAAS,GAAG,OAAO,GAAG,MAAM;MACrCI,KAAK,EAAEF,IAAI,CAACE,KAAK,GAAG,IAAI;MACxBC,MAAM,EAAEH,IAAI,CAACG,MAAM,GAAG;IAC1B;EAAE,gBAEF7B,KAAA,CAAA0C,aAAA;IAAKI,SAAS,EAAE;EAAiB,GAAEvB,QAAQ,CAACG,IAAI,CAAO,CACtD,CACE,CACJ,CACJ,CACb,CAAC,EACHuB,QAAQ,CAACC,IACb,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { IconPickerProps } from "./IconPickerComponent";
3
- import { Icon } from "./types";
2
+ import type { IconPickerProps } from "./IconPickerComponent";
3
+ import type { Icon } from "./types";
4
4
  declare const IconPicker: {
5
5
  (props: IconPickerProps): React.JSX.Element;
6
6
  Icon: ({ icon, ...props }: IconRendererWithProviderProps) => React.JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","useEffect","useIconPickerConfig","iconRepositoryFactory","IconPickerPresenter","IconPickerComponent","IconProvider","IconRenderer","IconPickerTab","IconPicker","props","iconTypes","iconPackProviders","repository","getRepository","presenter","size","load","value","createElement","Object","assign","IconRendererWithProvider","icon","Icon"],"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,OAAOA,KAAK,IAAIC,OAAO,EAAEC,SAAS,QAAQ,OAAO;AACjD,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SAASC,mBAAmB;AAC5B,SAASC,mBAAmB;AAC5B,SAASC,YAAY,EAAEC,YAAY;AACnC,SAASC,aAAa;AAGtB,MAAMC,UAAU,GAAIC,KAAsB,IAAK;EAC3C,MAAM;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAGV,mBAAmB,CAAC,CAAC;EAC9D,MAAMW,UAAU,GAAGV,qBAAqB,CAACW,aAAa,CAACH,SAAS,EAAEC,iBAAiB,CAAC;EAEpF,MAAMG,SAAS,GAAGf,OAAO,CAAC,MAAM;IAC5B,OAAO,IAAII,mBAAmB,CAACS,UAAU,EAAEH,KAAK,CAACM,IAAI,CAAC;EAC1D,CAAC,EAAE,CAACH,UAAU,EAAEH,KAAK,CAACM,IAAI,CAAC,CAAC;EAE5Bf,SAAS,CAAC,MAAM;IACZc,SAAS,CAACE,IAAI,CAACP,KAAK,CAACQ,KAAK,CAAC;EAC/B,CAAC,EAAE,CAACL,UAAU,EAAEH,KAAK,CAACQ,KAAK,CAAC,CAAC;EAE7B,oBAAOnB,KAAA,CAAAoB,aAAA,CAACd,mBAAmB,EAAAe,MAAA,CAAAC,MAAA;IAACN,SAAS,EAAEA;EAAU,GAAKL,KAAK,CAAG,CAAC;AACnE,CAAC;AAOD,MAAMY,wBAAwB,GAAGA,CAAC;EAAEC,IAAI;EAAE,GAAGb;AAAqC,CAAC,KAAK;EACpF,IAAI,CAACa,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,oBACIxB,KAAA,CAAAoB,aAAA,CAACb,YAAY,EAAAc,MAAA,CAAAC,MAAA;IAACE,IAAI,EAAEA;EAAK,GAAKb,KAAK,gBAC/BX,KAAA,CAAAoB,aAAA,CAACZ,YAAY,MAAE,CACL,CAAC;AAEvB,CAAC;AAEDE,UAAU,CAACe,IAAI,GAAGF,wBAAwB;AAC1Cb,UAAU,CAACD,aAAa,GAAGA,aAAa;AAExC,SAASC,UAAU","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","useEffect","useIconPickerConfig","iconRepositoryFactory","IconPickerPresenter","IconPickerComponent","IconProvider","IconRenderer","IconPickerTab","IconPicker","props","iconTypes","iconPackProviders","repository","getRepository","presenter","size","load","value","createElement","Object","assign","IconRendererWithProvider","icon","Icon"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useMemo, useEffect } from \"react\";\nimport { useIconPickerConfig } from \"./config\";\nimport { iconRepositoryFactory } from \"./IconRepositoryFactory\";\nimport { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport type { IconPickerProps } from \"./IconPickerComponent\";\nimport { IconPickerComponent } from \"./IconPickerComponent\";\nimport { IconProvider, IconRenderer } from \"./IconRenderer\";\nimport { IconPickerTab } from \"./IconPickerTab\";\nimport type { 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,OAAOA,KAAK,IAAIC,OAAO,EAAEC,SAAS,QAAQ,OAAO;AACjD,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SAASC,mBAAmB;AAE5B,SAASC,mBAAmB;AAC5B,SAASC,YAAY,EAAEC,YAAY;AACnC,SAASC,aAAa;AAGtB,MAAMC,UAAU,GAAIC,KAAsB,IAAK;EAC3C,MAAM;IAAEC,SAAS;IAAEC;EAAkB,CAAC,GAAGV,mBAAmB,CAAC,CAAC;EAC9D,MAAMW,UAAU,GAAGV,qBAAqB,CAACW,aAAa,CAACH,SAAS,EAAEC,iBAAiB,CAAC;EAEpF,MAAMG,SAAS,GAAGf,OAAO,CAAC,MAAM;IAC5B,OAAO,IAAII,mBAAmB,CAACS,UAAU,EAAEH,KAAK,CAACM,IAAI,CAAC;EAC1D,CAAC,EAAE,CAACH,UAAU,EAAEH,KAAK,CAACM,IAAI,CAAC,CAAC;EAE5Bf,SAAS,CAAC,MAAM;IACZc,SAAS,CAACE,IAAI,CAACP,KAAK,CAACQ,KAAK,CAAC;EAC/B,CAAC,EAAE,CAACL,UAAU,EAAEH,KAAK,CAACQ,KAAK,CAAC,CAAC;EAE7B,oBAAOnB,KAAA,CAAAoB,aAAA,CAACd,mBAAmB,EAAAe,MAAA,CAAAC,MAAA;IAACN,SAAS,EAAEA;EAAU,GAAKL,KAAK,CAAG,CAAC;AACnE,CAAC;AAOD,MAAMY,wBAAwB,GAAGA,CAAC;EAAEC,IAAI;EAAE,GAAGb;AAAqC,CAAC,KAAK;EACpF,IAAI,CAACa,IAAI,EAAE;IACP,OAAO,IAAI;EACf;EAEA,oBACIxB,KAAA,CAAAoB,aAAA,CAACb,YAAY,EAAAc,MAAA,CAAAC,MAAA;IAACE,IAAI,EAAEA;EAAK,GAAKb,KAAK,gBAC/BX,KAAA,CAAAoB,aAAA,CAACZ,YAAY,MAAE,CACL,CAAC;AAEvB,CAAC;AAEDE,UAAU,CAACe,IAAI,GAAGF,wBAAwB;AAC1Cb,UAAU,CAACD,aAAa,GAAGA,aAAa;AAExC,SAASC,UAAU","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  import React from "react";
2
- import { FormComponentProps } from "@webiny/admin-ui";
3
- import { IconPickerPresenter } from "./IconPickerPresenter";
4
- import { Icon, ICON_PICKER_SIZE } from "./types";
2
+ import type { FormComponentProps } from "@webiny/admin-ui";
3
+ import type { IconPickerPresenter } from "./IconPickerPresenter";
4
+ import type { Icon } from "./types";
5
+ import { ICON_PICKER_SIZE } from "./types";
5
6
  export interface IconPickerProps extends FormComponentProps {
6
7
  size?: ICON_PICKER_SIZE;
7
8
  removable?: boolean;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useCallback","useMemo","observer","isEqual","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","PopoverPrimitive","IconPickerContent","IconPickerTrigger","IconPickerPresenterProvider","ICON_PICKER_SIZE","IconPickerComponent","presenter","label","description","removable","required","disabled","props","value","onChange","isValid","validationIsValid","message","validationMessage","validation","invalid","activeTab","isMenuOpened","isLoading","iconTypes","selectedIcon","size","vm","JSON","stringify","removeIcon","setIcon","undefined","handleOnOpenChange","open","openMenu","closeMenu","createElement","text","onOpenChange","Trigger","icon","Content","style","width","SMALL","loading"],"sources":["IconPickerComponent.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useMemo } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport isEqual from \"lodash/isEqual\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n FormComponentProps,\n PopoverPrimitive\n} from \"@webiny/admin-ui\";\nimport { IconPickerContent, IconPickerTrigger } from \"./components\";\nimport { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconPickerPresenterProvider } from \"./IconPickerPresenterProvider\";\nimport { Icon, ICON_PICKER_SIZE } from \"./types\";\n\nexport interface IconPickerProps extends FormComponentProps {\n size?: ICON_PICKER_SIZE;\n removable?: boolean;\n value?: Icon;\n onChange?: (value: Icon | undefined) => void;\n}\n\nexport interface IconPickerComponentProps extends IconPickerProps {\n presenter: IconPickerPresenter;\n}\n\nexport const IconPickerComponent = observer(\n ({\n presenter,\n label,\n description,\n removable,\n required,\n disabled,\n ...props\n }: IconPickerComponentProps) => {\n const { value, onChange } = props;\n const { isValid: validationIsValid, message: validationMessage } = props.validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n const { activeTab, isMenuOpened, isLoading, iconTypes, selectedIcon, size } = presenter.vm;\n\n useEffect(() => {\n if (onChange && selectedIcon && !isEqual(selectedIcon, value)) {\n onChange(selectedIcon);\n }\n }, [JSON.stringify(selectedIcon)]);\n\n const removeIcon = useCallback(() => {\n if (onChange) {\n presenter.setIcon(null);\n onChange(undefined);\n }\n }, [onChange]);\n\n const handleOnOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n return presenter.openMenu();\n } else {\n return presenter.closeMenu();\n }\n },\n [presenter.openMenu, presenter.closeMenu]\n );\n\n return (\n <IconPickerPresenterProvider presenter={presenter}>\n <FormComponentLabel text={label} required={required} disabled={disabled} />\n <FormComponentDescription text={description} />\n <PopoverPrimitive open={isMenuOpened} onOpenChange={handleOnOpenChange}>\n <PopoverPrimitive.Trigger>\n <IconPickerTrigger icon={selectedIcon} />\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content\n style={{ width: size === ICON_PICKER_SIZE.SMALL ? \"248px\" : \"328px\" }}\n >\n <IconPickerContent\n loading={isLoading}\n removable={value && removable}\n iconTypes={iconTypes}\n activeTab={activeTab}\n removeIcon={removeIcon}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive>\n <FormComponentErrorMessage text={validationMessage} invalid={invalid} />\n </IconPickerPresenterProvider>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useCallback","useMemo","observer","isEqual","FormComponentDescription","FormComponentErrorMessage","FormComponentLabel","PopoverPrimitive","IconPickerContent","IconPickerTrigger","IconPickerPresenterProvider","ICON_PICKER_SIZE","IconPickerComponent","presenter","label","description","removable","required","disabled","props","value","onChange","isValid","validationIsValid","message","validationMessage","validation","invalid","activeTab","isMenuOpened","isLoading","iconTypes","selectedIcon","size","vm","JSON","stringify","removeIcon","setIcon","undefined","handleOnOpenChange","open","openMenu","closeMenu","createElement","text","onOpenChange","Trigger","icon","Content","style","width","SMALL","loading"],"sources":["IconPickerComponent.tsx"],"sourcesContent":["import React, { useEffect, useCallback, useMemo } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport isEqual from \"lodash/isEqual\";\nimport type { FormComponentProps } from \"@webiny/admin-ui\";\nimport {\n FormComponentDescription,\n FormComponentErrorMessage,\n FormComponentLabel,\n PopoverPrimitive\n} from \"@webiny/admin-ui\";\nimport { IconPickerContent, IconPickerTrigger } from \"./components\";\nimport type { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconPickerPresenterProvider } from \"./IconPickerPresenterProvider\";\nimport type { Icon } from \"./types\";\nimport { ICON_PICKER_SIZE } from \"./types\";\n\nexport interface IconPickerProps extends FormComponentProps {\n size?: ICON_PICKER_SIZE;\n removable?: boolean;\n value?: Icon;\n onChange?: (value: Icon | undefined) => void;\n}\n\nexport interface IconPickerComponentProps extends IconPickerProps {\n presenter: IconPickerPresenter;\n}\n\nexport const IconPickerComponent = observer(\n ({\n presenter,\n label,\n description,\n removable,\n required,\n disabled,\n ...props\n }: IconPickerComponentProps) => {\n const { value, onChange } = props;\n const { isValid: validationIsValid, message: validationMessage } = props.validation || {};\n const invalid = useMemo(() => validationIsValid === false, [validationIsValid]);\n const { activeTab, isMenuOpened, isLoading, iconTypes, selectedIcon, size } = presenter.vm;\n\n useEffect(() => {\n if (onChange && selectedIcon && !isEqual(selectedIcon, value)) {\n onChange(selectedIcon);\n }\n }, [JSON.stringify(selectedIcon)]);\n\n const removeIcon = useCallback(() => {\n if (onChange) {\n presenter.setIcon(null);\n onChange(undefined);\n }\n }, [onChange]);\n\n const handleOnOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n return presenter.openMenu();\n } else {\n return presenter.closeMenu();\n }\n },\n [presenter.openMenu, presenter.closeMenu]\n );\n\n return (\n <IconPickerPresenterProvider presenter={presenter}>\n <FormComponentLabel text={label} required={required} disabled={disabled} />\n <FormComponentDescription text={description} />\n <PopoverPrimitive open={isMenuOpened} onOpenChange={handleOnOpenChange}>\n <PopoverPrimitive.Trigger>\n <IconPickerTrigger icon={selectedIcon} />\n </PopoverPrimitive.Trigger>\n <PopoverPrimitive.Content\n style={{ width: size === ICON_PICKER_SIZE.SMALL ? \"248px\" : \"328px\" }}\n >\n <IconPickerContent\n loading={isLoading}\n removable={value && removable}\n iconTypes={iconTypes}\n activeTab={activeTab}\n removeIcon={removeIcon}\n />\n </PopoverPrimitive.Content>\n </PopoverPrimitive>\n <FormComponentErrorMessage text={validationMessage} invalid={invalid} />\n </IconPickerPresenterProvider>\n );\n }\n);\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { IconRepository } from "./IconRepository";
2
- import { Icon } from "./types";
3
- import { IconType } from "./config";
1
+ import type { IconRepository } from "./IconRepository";
2
+ import type { Icon } from "./types";
3
+ import type { IconType } from "./config";
4
4
  export interface IconPickerPresenterInterface {
5
5
  load(icon: Icon): Promise<void>;
6
6
  setIcon(icon: Icon): void;
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","toJS","IconPickerPresenter","selectedIcon","filter","activeTab","undefined","isMenuOpened","constructor","repository","size","load","icon","value","loadIcons","detectSelectedIcon","vm","isLoading","getLoading","icons","getFilteredIcons","iconTypes","getIconTypes","addIcon","closeMenu","openMenu","resetActiveTab","setActiveTab","setIcon","setFilter","hyphenUnderscoreRegex","getIcons","name","replace","toLowerCase","includes","getActiveTabByType","type","iconType","find","iconsByType","getDefaultTab","iconByName","x"],"sources":["IconPickerPresenter.ts"],"sourcesContent":["import { makeAutoObservable, toJS } from \"mobx\";\n\nimport { IconRepository } from \"./IconRepository\";\nimport { Icon } from \"./types\";\nimport { IconType } from \"./config\";\n\nexport interface IconPickerPresenterInterface {\n load(icon: Icon): Promise<void>;\n setIcon(icon: Icon): void;\n addIcon(icon: Icon): void;\n setFilter(value: string): void;\n setActiveTab(index: string): void;\n openMenu(): void;\n closeMenu(): void;\n get vm(): {\n isLoading: boolean;\n activeTab?: string;\n isMenuOpened: boolean;\n icons: Icon[];\n iconTypes: IconType[];\n selectedIcon: Icon | null;\n filter: string;\n size?: string;\n };\n}\n\nexport class IconPickerPresenter implements IconPickerPresenterInterface {\n private repository: IconRepository;\n private selectedIcon: Icon | null = null;\n private filter = \"\";\n private activeTab: string | undefined = undefined;\n private isMenuOpened = false;\n private size: string | undefined;\n\n constructor(repository: IconRepository, size?: string) {\n this.repository = repository;\n this.size = size;\n makeAutoObservable(this);\n }\n\n async load(icon: Icon | null = null) {\n if (icon?.value) {\n this.selectedIcon = icon;\n }\n\n await this.repository.loadIcons();\n\n if (icon && !icon?.value) {\n this.detectSelectedIcon(icon);\n }\n }\n\n get vm() {\n return {\n activeTab: this.activeTab,\n isMenuOpened: this.isMenuOpened,\n isLoading: this.repository.getLoading().isLoading,\n icons: this.getFilteredIcons(),\n iconTypes: this.repository.getIconTypes(),\n // `toJS` will unwrap an observable into a POJO. This will make it simple to use in child components.\n selectedIcon: toJS(this.selectedIcon),\n filter: this.filter,\n size: this.size\n };\n }\n\n addIcon(icon: Icon) {\n this.repository.addIcon(icon);\n }\n\n closeMenu(): void {\n this.isMenuOpened = false;\n }\n\n openMenu(): void {\n this.isMenuOpened = true;\n this.resetActiveTab();\n }\n\n setActiveTab(value?: string) {\n this.activeTab = value;\n }\n\n setIcon(icon: Icon | null) {\n this.selectedIcon = icon;\n }\n\n setFilter(value: string) {\n this.filter = value;\n }\n\n private getFilteredIcons() {\n const hyphenUnderscoreRegex = /[-_]/g;\n const icons = this.repository.getIcons();\n\n return icons.filter(icon =>\n icon.name\n .replace(hyphenUnderscoreRegex, \" \")\n .toLowerCase()\n .includes(this.filter.toLowerCase())\n );\n }\n\n private getActiveTabByType(type: string) {\n const iconTypes = this.repository.getIconTypes();\n const iconType = iconTypes.find(iconsByType => iconsByType.name === type);\n\n return iconType?.name || iconTypes[0].name;\n }\n\n private getDefaultTab() {\n return this.repository.getIconTypes()[0].name;\n }\n\n private resetActiveTab() {\n this.setActiveTab(\n this.selectedIcon\n ? this.getActiveTabByType(this.selectedIcon.type)\n : this.getDefaultTab()\n );\n }\n\n private detectSelectedIcon(icon: Icon) {\n const iconByName = this.repository\n .getIcons()\n .find(x => x.name === icon.name && icon.type === x.type);\n\n if (iconByName) {\n this.selectedIcon = iconByName;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["makeAutoObservable","toJS","IconPickerPresenter","selectedIcon","filter","activeTab","undefined","isMenuOpened","constructor","repository","size","load","icon","value","loadIcons","detectSelectedIcon","vm","isLoading","getLoading","icons","getFilteredIcons","iconTypes","getIconTypes","addIcon","closeMenu","openMenu","resetActiveTab","setActiveTab","setIcon","setFilter","hyphenUnderscoreRegex","getIcons","name","replace","toLowerCase","includes","getActiveTabByType","type","iconType","find","iconsByType","getDefaultTab","iconByName","x"],"sources":["IconPickerPresenter.ts"],"sourcesContent":["import { makeAutoObservable, toJS } from \"mobx\";\n\nimport type { IconRepository } from \"./IconRepository\";\nimport type { Icon } from \"./types\";\nimport type { IconType } from \"./config\";\n\nexport interface IconPickerPresenterInterface {\n load(icon: Icon): Promise<void>;\n setIcon(icon: Icon): void;\n addIcon(icon: Icon): void;\n setFilter(value: string): void;\n setActiveTab(index: string): void;\n openMenu(): void;\n closeMenu(): void;\n get vm(): {\n isLoading: boolean;\n activeTab?: string;\n isMenuOpened: boolean;\n icons: Icon[];\n iconTypes: IconType[];\n selectedIcon: Icon | null;\n filter: string;\n size?: string;\n };\n}\n\nexport class IconPickerPresenter implements IconPickerPresenterInterface {\n private repository: IconRepository;\n private selectedIcon: Icon | null = null;\n private filter = \"\";\n private activeTab: string | undefined = undefined;\n private isMenuOpened = false;\n private size: string | undefined;\n\n constructor(repository: IconRepository, size?: string) {\n this.repository = repository;\n this.size = size;\n makeAutoObservable(this);\n }\n\n async load(icon: Icon | null = null) {\n if (icon?.value) {\n this.selectedIcon = icon;\n }\n\n await this.repository.loadIcons();\n\n if (icon && !icon?.value) {\n this.detectSelectedIcon(icon);\n }\n }\n\n get vm() {\n return {\n activeTab: this.activeTab,\n isMenuOpened: this.isMenuOpened,\n isLoading: this.repository.getLoading().isLoading,\n icons: this.getFilteredIcons(),\n iconTypes: this.repository.getIconTypes(),\n // `toJS` will unwrap an observable into a POJO. This will make it simple to use in child components.\n selectedIcon: toJS(this.selectedIcon),\n filter: this.filter,\n size: this.size\n };\n }\n\n addIcon(icon: Icon) {\n this.repository.addIcon(icon);\n }\n\n closeMenu(): void {\n this.isMenuOpened = false;\n }\n\n openMenu(): void {\n this.isMenuOpened = true;\n this.resetActiveTab();\n }\n\n setActiveTab(value?: string) {\n this.activeTab = value;\n }\n\n setIcon(icon: Icon | null) {\n this.selectedIcon = icon;\n }\n\n setFilter(value: string) {\n this.filter = value;\n }\n\n private getFilteredIcons() {\n const hyphenUnderscoreRegex = /[-_]/g;\n const icons = this.repository.getIcons();\n\n return icons.filter(icon =>\n icon.name\n .replace(hyphenUnderscoreRegex, \" \")\n .toLowerCase()\n .includes(this.filter.toLowerCase())\n );\n }\n\n private getActiveTabByType(type: string) {\n const iconTypes = this.repository.getIconTypes();\n const iconType = iconTypes.find(iconsByType => iconsByType.name === type);\n\n return iconType?.name || iconTypes[0].name;\n }\n\n private getDefaultTab() {\n return this.repository.getIconTypes()[0].name;\n }\n\n private resetActiveTab() {\n this.setActiveTab(\n this.selectedIcon\n ? this.getActiveTabByType(this.selectedIcon.type)\n : this.getDefaultTab()\n );\n }\n\n private detectSelectedIcon(icon: Icon) {\n const iconByName = this.repository\n .getIcons()\n .find(x => x.name === icon.name && icon.type === x.type);\n\n if (iconByName) {\n this.selectedIcon = iconByName;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["IconPickerPresenter","IconRepository","mockIconTypes","name","mockIcons","type","value","category","skinToneSupport","mockIconPackProviders","getIcons","describe","icon","color","presenter","beforeEach","repository","it","load","expect","vm","selectedIcon","toEqual","icons","setIcon","addIcon","length","toBe","setFilter","isMenuOpened","activeTab","undefined","openMenu"],"sources":["IconPickerPresenter.test.ts"],"sourcesContent":["import { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconRepository } from \"./IconRepository\";\nimport { Icon } from \"./types\";\n\nconst mockIconTypes = [{ name: \"icon\" }, { name: \"emoji\" }, { name: \"custom\" }];\n\nconst mockIcons: Icon[] = [\n {\n type: \"emoji\",\n name: \"thumbs_up\",\n value: \"👍\",\n category: \"People & Body\",\n skinToneSupport: true\n },\n {\n type: \"icon\",\n name: \"regular_address-book\",\n value: '<path fill=\"currentColor\" d=\"M384 48c8.8 0 16 7.2 16 16v384c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h288zM96 0C60.7 0 32 28.7 32 64v384c0 35.3 28.7 64 64 64h288c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zm144 256a64 64 0 1 0 0-128a64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80h-64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zm-16 112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16v-64z\"/>',\n category: \"Business\"\n }\n];\n\nconst mockIconPackProviders = [\n {\n name: \"mock_icons\",\n getIcons: async () => {\n return mockIcons;\n }\n }\n];\n\ndescribe(\"IconPickerPresenter\", () => {\n const icon: Icon = {\n type: \"icon\",\n name: \"solid_bullseye\",\n value: '<path fill=\"currentColor\" d=\"M448 256a192 192 0 1 0-384 0a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0a256 256 0 1 1-512 0zm256 80a80 80 0 1 0 0-160a80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288a144 144 0 1 1 0-288zm-32 144a32 32 0 1 1 64 0a32 32 0 1 1-64 0z\"/>',\n category: \"Business\",\n color: \"#282fe6\"\n };\n\n let presenter: IconPickerPresenter;\n\n beforeEach(() => {\n const repository = new IconRepository(mockIconTypes, mockIconPackProviders);\n presenter = new IconPickerPresenter(repository);\n });\n\n it(\"should create an IconPickerPresenter with the `vm` definition\", async () => {\n // let's load icons and set a predefined `selectedIcon`\n await presenter.load(icon);\n\n // `vm` should have the expected `selectedIcon` definition\n expect(presenter.vm.selectedIcon).toEqual(icon);\n\n // `vm` should have the expected `icons` definition\n expect(presenter.vm.icons).toEqual(mockIcons);\n });\n\n it(\"should be able to select an icon\", async () => {\n // let's load icons\n await presenter.load();\n\n // should be able to set the icon\n presenter.setIcon(presenter.vm.icons[0]);\n\n // `vm` should have the expected `selectedIcon` value\n expect(presenter.vm.selectedIcon).toEqual(presenter.vm.icons[0]);\n });\n\n it(\"should be able to add an icon\", async () => {\n // let's load icons\n await presenter.load();\n\n // should be able to set the icon\n presenter.addIcon(icon);\n\n // `vm` should have three icons\n expect(presenter.vm.icons.length).toBe(3);\n\n // `vm` should have the expected `icons` value\n expect(presenter.vm.icons).toEqual([...mockIcons, icon]);\n });\n\n it(\"should be able to filter icons by name\", async () => {\n // let's load icons\n await presenter.load();\n\n // should be able to set the filter\n presenter.setFilter(\"book\");\n\n // `vm` should have only one icon\n expect(presenter.vm.icons.length).toBe(1);\n\n // `vm` should have filtered icon\n expect(presenter.vm.icons[0]).toEqual(mockIcons[1]);\n });\n\n it(\"should be able to set active tab on menu open\", async () => {\n // let's load icons and set a predefined `selectedIcon`\n await presenter.load(mockIcons[0]);\n\n // default `isMenuOpened` should be false\n expect(presenter.vm.isMenuOpened).toBe(false);\n\n // default `activeTab` should be handled by the component itself\n expect(presenter.vm.activeTab).toBe(undefined);\n\n // should be able to set `isMenuOpened`\n // should be able to set `activeTab` based on `selectedIcon` type\n presenter.openMenu();\n\n // `vm` should have the expected `isMenuOpened` value\n expect(presenter.vm.isMenuOpened).toBe(true);\n\n // `vm` should have the expected `activeTab` value\n expect(presenter.vm.activeTab).toBe(\"emoji\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["IconPickerPresenter","IconRepository","mockIconTypes","name","mockIcons","type","value","category","skinToneSupport","mockIconPackProviders","getIcons","describe","icon","color","presenter","beforeEach","repository","it","load","expect","vm","selectedIcon","toEqual","icons","setIcon","addIcon","length","toBe","setFilter","isMenuOpened","activeTab","undefined","openMenu"],"sources":["IconPickerPresenter.test.ts"],"sourcesContent":["import { IconPickerPresenter } from \"./IconPickerPresenter\";\nimport { IconRepository } from \"./IconRepository\";\nimport type { Icon } from \"./types\";\n\nconst mockIconTypes = [{ name: \"icon\" }, { name: \"emoji\" }, { name: \"custom\" }];\n\nconst mockIcons: Icon[] = [\n {\n type: \"emoji\",\n name: \"thumbs_up\",\n value: \"👍\",\n category: \"People & Body\",\n skinToneSupport: true\n },\n {\n type: \"icon\",\n name: \"regular_address-book\",\n value: '<path fill=\"currentColor\" d=\"M384 48c8.8 0 16 7.2 16 16v384c0 8.8-7.2 16-16 16H96c-8.8 0-16-7.2-16-16V64c0-8.8 7.2-16 16-16h288zM96 0C60.7 0 32 28.7 32 64v384c0 35.3 28.7 64 64 64h288c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H96zm144 256a64 64 0 1 0 0-128a64 64 0 1 0 0 128zm-32 32c-44.2 0-80 35.8-80 80c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16c0-44.2-35.8-80-80-80h-64zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16V80zm-16 112c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16v64c0 8.8 7.2 16 16 16s16-7.2 16-16v-64z\"/>',\n category: \"Business\"\n }\n];\n\nconst mockIconPackProviders = [\n {\n name: \"mock_icons\",\n getIcons: async () => {\n return mockIcons;\n }\n }\n];\n\ndescribe(\"IconPickerPresenter\", () => {\n const icon: Icon = {\n type: \"icon\",\n name: \"solid_bullseye\",\n value: '<path fill=\"currentColor\" d=\"M448 256a192 192 0 1 0-384 0a192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0a256 256 0 1 1-512 0zm256 80a80 80 0 1 0 0-160a80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288a144 144 0 1 1 0-288zm-32 144a32 32 0 1 1 64 0a32 32 0 1 1-64 0z\"/>',\n category: \"Business\",\n color: \"#282fe6\"\n };\n\n let presenter: IconPickerPresenter;\n\n beforeEach(() => {\n const repository = new IconRepository(mockIconTypes, mockIconPackProviders);\n presenter = new IconPickerPresenter(repository);\n });\n\n it(\"should create an IconPickerPresenter with the `vm` definition\", async () => {\n // let's load icons and set a predefined `selectedIcon`\n await presenter.load(icon);\n\n // `vm` should have the expected `selectedIcon` definition\n expect(presenter.vm.selectedIcon).toEqual(icon);\n\n // `vm` should have the expected `icons` definition\n expect(presenter.vm.icons).toEqual(mockIcons);\n });\n\n it(\"should be able to select an icon\", async () => {\n // let's load icons\n await presenter.load();\n\n // should be able to set the icon\n presenter.setIcon(presenter.vm.icons[0]);\n\n // `vm` should have the expected `selectedIcon` value\n expect(presenter.vm.selectedIcon).toEqual(presenter.vm.icons[0]);\n });\n\n it(\"should be able to add an icon\", async () => {\n // let's load icons\n await presenter.load();\n\n // should be able to set the icon\n presenter.addIcon(icon);\n\n // `vm` should have three icons\n expect(presenter.vm.icons.length).toBe(3);\n\n // `vm` should have the expected `icons` value\n expect(presenter.vm.icons).toEqual([...mockIcons, icon]);\n });\n\n it(\"should be able to filter icons by name\", async () => {\n // let's load icons\n await presenter.load();\n\n // should be able to set the filter\n presenter.setFilter(\"book\");\n\n // `vm` should have only one icon\n expect(presenter.vm.icons.length).toBe(1);\n\n // `vm` should have filtered icon\n expect(presenter.vm.icons[0]).toEqual(mockIcons[1]);\n });\n\n it(\"should be able to set active tab on menu open\", async () => {\n // let's load icons and set a predefined `selectedIcon`\n await presenter.load(mockIcons[0]);\n\n // default `isMenuOpened` should be false\n expect(presenter.vm.isMenuOpened).toBe(false);\n\n // default `activeTab` should be handled by the component itself\n expect(presenter.vm.activeTab).toBe(undefined);\n\n // should be able to set `isMenuOpened`\n // should be able to set `activeTab` based on `selectedIcon` type\n presenter.openMenu();\n\n // `vm` should have the expected `isMenuOpened` value\n expect(presenter.vm.isMenuOpened).toBe(true);\n\n // `vm` should have the expected `activeTab` value\n expect(presenter.vm.activeTab).toBe(\"emoji\");\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { IconPickerPresenterInterface } from "./IconPickerPresenter";
2
+ import type { IconPickerPresenterInterface } from "./IconPickerPresenter";
3
3
  interface IconPickerPresenterProviderProps {
4
4
  presenter: IconPickerPresenterInterface;
5
5
  children: React.ReactNode;
@@ -1 +1 @@
1
- {"version":3,"names":["React","IconPickerPresenterContext","createContext","undefined","IconPickerPresenterProvider","presenter","children","createElement","Provider","value","useIconPicker","context","useContext","Error"],"sources":["IconPickerPresenterProvider.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { IconPickerPresenterInterface } from \"./IconPickerPresenter\";\n\ninterface IconPickerPresenterProviderProps {\n presenter: IconPickerPresenterInterface;\n children: React.ReactNode;\n}\n\nconst IconPickerPresenterContext = React.createContext<IconPickerPresenterInterface | undefined>(\n undefined\n);\n\nexport const IconPickerPresenterProvider = ({\n presenter,\n children\n}: IconPickerPresenterProviderProps) => {\n return (\n <IconPickerPresenterContext.Provider value={presenter}>\n {children}\n </IconPickerPresenterContext.Provider>\n );\n};\n\nexport function useIconPicker() {\n const context = React.useContext(IconPickerPresenterContext);\n if (!context) {\n throw Error(`Missing <IconPickerPresenterProvider> in the component tree!`);\n }\n return context;\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AASzB,MAAMC,0BAA0B,gBAAGD,KAAK,CAACE,aAAa,CAClDC,SACJ,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAAC;EACxCC,SAAS;EACTC;AAC8B,CAAC,KAAK;EACpC,oBACIN,KAAA,CAAAO,aAAA,CAACN,0BAA0B,CAACO,QAAQ;IAACC,KAAK,EAAEJ;EAAU,GACjDC,QACgC,CAAC;AAE9C,CAAC;AAED,OAAO,SAASI,aAAaA,CAAA,EAAG;EAC5B,MAAMC,OAAO,GAAGX,KAAK,CAACY,UAAU,CAACX,0BAA0B,CAAC;EAC5D,IAAI,CAACU,OAAO,EAAE;IACV,MAAME,KAAK,CAAC,8DAA8D,CAAC;EAC/E;EACA,OAAOF,OAAO;AAClB","ignoreList":[]}
1
+ {"version":3,"names":["React","IconPickerPresenterContext","createContext","undefined","IconPickerPresenterProvider","presenter","children","createElement","Provider","value","useIconPicker","context","useContext","Error"],"sources":["IconPickerPresenterProvider.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { IconPickerPresenterInterface } from \"./IconPickerPresenter\";\n\ninterface IconPickerPresenterProviderProps {\n presenter: IconPickerPresenterInterface;\n children: React.ReactNode;\n}\n\nconst IconPickerPresenterContext = React.createContext<IconPickerPresenterInterface | undefined>(\n undefined\n);\n\nexport const IconPickerPresenterProvider = ({\n presenter,\n children\n}: IconPickerPresenterProviderProps) => {\n return (\n <IconPickerPresenterContext.Provider value={presenter}>\n {children}\n </IconPickerPresenterContext.Provider>\n );\n};\n\nexport function useIconPicker() {\n const context = React.useContext(IconPickerPresenterContext);\n if (!context) {\n throw Error(`Missing <IconPickerPresenterProvider> in the component tree!`);\n }\n return context;\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AASzB,MAAMC,0BAA0B,gBAAGD,KAAK,CAACE,aAAa,CAClDC,SACJ,CAAC;AAED,OAAO,MAAMC,2BAA2B,GAAGA,CAAC;EACxCC,SAAS;EACTC;AAC8B,CAAC,KAAK;EACpC,oBACIN,KAAA,CAAAO,aAAA,CAACN,0BAA0B,CAACO,QAAQ;IAACC,KAAK,EAAEJ;EAAU,GACjDC,QACgC,CAAC;AAE9C,CAAC;AAED,OAAO,SAASI,aAAaA,CAAA,EAAG;EAC5B,MAAMC,OAAO,GAAGX,KAAK,CAACY,UAAU,CAACX,0BAA0B,CAAC;EAC5D,IAAI,CAACU,OAAO,EAAE;IACV,MAAME,KAAK,CAAC,8DAA8D,CAAC;EAC/E;EACA,OAAOF,OAAO;AAClB","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Icon } from "./types";
2
+ import type { Icon } from "./types";
3
3
  export declare const IconPickerTabRenderer: (() => null) & {
4
4
  original: () => null;
5
5
  originalName: string;