ketcher-macromolecules 2.18.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/README.md +25 -0
  2. package/dist/Editor.d.ts +10 -0
  3. package/dist/components/FullscreenButton/FullscreenButton.d.ts +16 -0
  4. package/dist/components/FullscreenButton/index.d.ts +16 -0
  5. package/dist/components/Layout/Layout.d.ts +49 -0
  6. package/dist/components/Layout/Layout.test.d.ts +16 -0
  7. package/dist/components/Layout/index.d.ts +16 -0
  8. package/dist/components/Loader/index.d.ts +1 -0
  9. package/dist/components/contextMenu/RNAContextMenu.d.ts +1 -0
  10. package/dist/components/contextMenu/RNAContextMenu.test.d.ts +16 -0
  11. package/dist/components/contextMenu/styles.d.ts +3 -0
  12. package/dist/components/contextMenu/types.d.ts +3 -0
  13. package/dist/components/menu/Menu.d.ts +31 -0
  14. package/dist/components/menu/Menu.test.d.ts +1 -0
  15. package/dist/components/menu/index.d.ts +16 -0
  16. package/dist/components/menu/menuItem/MenuItem.d.ts +23 -0
  17. package/dist/components/menu/menuItem/MenuItem.test.d.ts +1 -0
  18. package/dist/components/menu/menuItem/index.d.ts +16 -0
  19. package/dist/components/menu/menuItem/styles.d.ts +18 -0
  20. package/dist/components/menu/styles.d.ts +28 -0
  21. package/dist/components/menu/subMenu/SubMenu.d.ts +21 -0
  22. package/dist/components/menu/subMenu/SubMenu.test.d.ts +1 -0
  23. package/dist/components/menu/subMenu/index.d.ts +16 -0
  24. package/dist/components/menu/subMenu/styles.d.ts +37 -0
  25. package/dist/components/menu/subMenu/types.d.ts +22 -0
  26. package/dist/components/menu/types.d.ts +23 -0
  27. package/dist/components/modal/Delete/Delete.d.ts +6 -0
  28. package/dist/components/modal/Delete/Delete.test.d.ts +16 -0
  29. package/dist/components/modal/Delete/index.d.ts +16 -0
  30. package/dist/components/modal/Delete/styledComponents.d.ts +12 -0
  31. package/dist/components/modal/Error/Error.d.ts +1 -0
  32. package/dist/components/modal/Error/Error.styles.d.ts +5 -0
  33. package/dist/components/modal/Error/index.d.ts +1 -0
  34. package/dist/components/modal/Open/AnalyzingFile/AnalyzingFile.d.ts +4 -0
  35. package/dist/components/modal/Open/AnalyzingFile/AnalyzingFile.test.d.ts +1 -0
  36. package/dist/components/modal/Open/AnalyzingFile/LoadingCircles/LoadingCircles.d.ts +1 -0
  37. package/dist/components/modal/Open/AnalyzingFile/LoadingCircles/LoadingCircles.test.d.ts +1 -0
  38. package/dist/components/modal/Open/AnalyzingFile/LoadingCircles/index.d.ts +16 -0
  39. package/dist/components/modal/Open/AnalyzingFile/index.d.ts +16 -0
  40. package/dist/components/modal/Open/Open.d.ts +12 -0
  41. package/dist/components/modal/Open/Open.styles.d.ts +21 -0
  42. package/dist/components/modal/Open/Open.test.d.ts +16 -0
  43. package/dist/components/modal/Open/OpenOptions/FileDrop/FileDrop.d.ts +26 -0
  44. package/dist/components/modal/Open/OpenOptions/FileDrop/FileDrop.test.d.ts +1 -0
  45. package/dist/components/modal/Open/OpenOptions/FileDrop/index.d.ts +16 -0
  46. package/dist/components/modal/Open/OpenOptions/OpenOptions.d.ts +16 -0
  47. package/dist/components/modal/Open/OpenOptions/OpenOptions.test.d.ts +1 -0
  48. package/dist/components/modal/Open/OpenOptions/index.d.ts +16 -0
  49. package/dist/components/modal/Open/ViewSwitcher/ViewSwitcher.d.ts +29 -0
  50. package/dist/components/modal/Open/ViewSwitcher/index.d.ts +16 -0
  51. package/dist/components/modal/Open/fileOpener.d.ts +19 -0
  52. package/dist/components/modal/Open/index.d.ts +16 -0
  53. package/dist/components/modal/modalContainer/ModalContainer.d.ts +1 -0
  54. package/dist/components/modal/modalContainer/index.d.ts +18 -0
  55. package/dist/components/modal/modalContainer/modalComponentList.d.ts +20 -0
  56. package/dist/components/modal/modalContainer/types.d.ts +11 -0
  57. package/dist/components/modal/monomerConnection/MonomerConnections.d.ts +46 -0
  58. package/dist/components/modal/monomerConnection/MonomerConnections.test.d.ts +1 -0
  59. package/dist/components/modal/monomerConnection/index.d.ts +1 -0
  60. package/dist/components/modal/monomerConnection/styledComponents.d.ts +36 -0
  61. package/dist/components/modal/save/Save.d.ts +18 -0
  62. package/dist/components/modal/save/Save.styles.d.ts +19 -0
  63. package/dist/components/modal/save/Save.test.d.ts +16 -0
  64. package/dist/components/modal/save/index.d.ts +16 -0
  65. package/dist/components/monomerLibrary/MonomerLibrary.d.ts +18 -0
  66. package/dist/components/monomerLibrary/MonomerLibraryToggle.d.ts +6 -0
  67. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.d.ts +20 -0
  68. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.test.d.ts +1 -0
  69. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/Summary/Summary.d.ts +17 -0
  70. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/Summary/index.d.ts +16 -0
  71. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/Summary/styles.d.ts +28 -0
  72. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/Summary/types.d.ts +25 -0
  73. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/index.d.ts +16 -0
  74. package/dist/components/monomerLibrary/RnaBuilder/RnaAccordion/styles.d.ts +38 -0
  75. package/dist/components/monomerLibrary/RnaBuilder/RnaBuilder.d.ts +20 -0
  76. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor.d.ts +20 -0
  77. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorCollapsed/RnaEditorCollapsed.d.ts +17 -0
  78. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorCollapsed/index.d.ts +16 -0
  79. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorCollapsed/styles.d.ts +30 -0
  80. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorCollapsed/types.d.ts +19 -0
  81. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/GroupBlock.d.ts +17 -0
  82. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/index.d.ts +16 -0
  83. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/styles.d.ts +46 -0
  84. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/types.d.ts +26 -0
  85. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/utils.d.ts +25 -0
  86. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.d.ts +17 -0
  87. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.test.d.ts +1 -0
  88. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/index.d.ts +16 -0
  89. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/styles.d.ts +52 -0
  90. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/types.d.ts +5 -0
  91. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/index.d.ts +16 -0
  92. package/dist/components/monomerLibrary/RnaBuilder/RnaEditor/styles.d.ts +32 -0
  93. package/dist/components/monomerLibrary/RnaBuilder/index.d.ts +16 -0
  94. package/dist/components/monomerLibrary/RnaBuilder/styles.d.ts +20 -0
  95. package/dist/components/monomerLibrary/RnaBuilder/types.d.ts +29 -0
  96. package/dist/components/monomerLibrary/RnaPresetGroup/RnaPresetGroup.d.ts +20 -0
  97. package/dist/components/monomerLibrary/RnaPresetGroup/RnaPresetGroup.test.d.ts +1 -0
  98. package/dist/components/monomerLibrary/RnaPresetItem/RnaPresetItem.d.ts +3 -0
  99. package/dist/components/monomerLibrary/RnaPresetItem/RnaPresetItem.test.d.ts +1 -0
  100. package/dist/components/monomerLibrary/RnaPresetItem/index.d.ts +16 -0
  101. package/dist/components/monomerLibrary/RnaPresetItem/styles.d.ts +14 -0
  102. package/dist/components/monomerLibrary/RnaPresetItem/types.d.ts +23 -0
  103. package/dist/components/monomerLibrary/index.d.ts +17 -0
  104. package/dist/components/monomerLibrary/monomerLibraryGroup/MonomerGroup.d.ts +3 -0
  105. package/dist/components/monomerLibrary/monomerLibraryGroup/MonomerGroup.test.d.ts +16 -0
  106. package/dist/components/monomerLibrary/monomerLibraryGroup/index.d.ts +16 -0
  107. package/dist/components/monomerLibrary/monomerLibraryGroup/styles.d.ts +13 -0
  108. package/dist/components/monomerLibrary/monomerLibraryGroup/types.d.ts +25 -0
  109. package/dist/components/monomerLibrary/monomerLibraryItem/MonomerItem.d.ts +3 -0
  110. package/dist/components/monomerLibrary/monomerLibraryItem/MonomerItem.test.d.ts +1 -0
  111. package/dist/components/monomerLibrary/monomerLibraryItem/index.d.ts +16 -0
  112. package/dist/components/monomerLibrary/monomerLibraryItem/styles.d.ts +9 -0
  113. package/dist/components/monomerLibrary/monomerLibraryItem/types.d.ts +26 -0
  114. package/dist/components/monomerLibrary/monomerLibraryList/MonomerList.d.ts +28 -0
  115. package/dist/components/monomerLibrary/monomerLibraryList/MonomerList.test.d.ts +16 -0
  116. package/dist/components/monomerLibrary/monomerLibraryList/index.d.ts +16 -0
  117. package/dist/components/monomerLibrary/monomerLibraryList/styles.d.ts +20 -0
  118. package/dist/components/monomerLibrary/monomerLibraryList/types.d.ts +27 -0
  119. package/dist/components/monomerLibrary/styles.d.ts +18 -0
  120. package/dist/components/monomerLibrary/tabsContent.d.ts +28 -0
  121. package/dist/components/rna/RnaMonomerSection/RnaMonomerSection.d.ts +12 -0
  122. package/dist/components/rna/RnaMonomerSection/RnaMonomerSection.test.d.ts +1 -0
  123. package/dist/components/rna/RnaMonomerSection/index.d.ts +16 -0
  124. package/dist/components/rna/Switcher/Switcher.d.ts +6 -0
  125. package/dist/components/rna/Switcher/Switcher.test.d.ts +16 -0
  126. package/dist/components/rna/Switcher/index.d.ts +1 -0
  127. package/dist/components/shared/MonomerPreview/index.d.ts +7 -0
  128. package/dist/components/shared/MonomerPreview/styles.d.ts +12 -0
  129. package/dist/components/shared/MonomerPreview/types.d.ts +18 -0
  130. package/dist/components/shared/StyledToast/styles.d.ts +12 -0
  131. package/dist/components/shared/Tabs/Tabs.d.ts +18 -0
  132. package/dist/components/shared/Tabs/index.d.ts +16 -0
  133. package/dist/components/shared/TextArea/TextArea.d.ts +24 -0
  134. package/dist/components/shared/TextArea/index.d.ts +16 -0
  135. package/dist/components/shared/actionButton/ActionButton.d.ts +23 -0
  136. package/dist/components/shared/actionButton/ActionButton.test.d.ts +16 -0
  137. package/dist/components/shared/actionButton/index.d.ts +1 -0
  138. package/dist/components/shared/dropDown/dropDown.d.ts +29 -0
  139. package/dist/components/shared/dropDown/dropDown.test.d.ts +16 -0
  140. package/dist/components/shared/dropDown/index.d.ts +17 -0
  141. package/dist/components/shared/dropDown/styledIcons.d.ts +22 -0
  142. package/dist/components/shared/icon/icon.d.ts +63 -0
  143. package/dist/components/shared/modal/Modal.d.ts +26 -0
  144. package/dist/components/shared/modal/Modal.test.d.ts +16 -0
  145. package/dist/components/shared/modal/index.d.ts +1 -0
  146. package/dist/components/shared/monomerOnCanvas/Chem.d.ts +16 -0
  147. package/dist/components/shared/monomerOnCanvas/Peptide.d.ts +16 -0
  148. package/dist/components/shared/monomerOnCanvas/Phosphate.d.ts +16 -0
  149. package/dist/components/shared/monomerOnCanvas/RNABase.d.ts +16 -0
  150. package/dist/components/shared/monomerOnCanvas/Sugar.d.ts +16 -0
  151. package/dist/components/shared/monomerOnCanvas/index.d.ts +5 -0
  152. package/dist/components/shared/textInputField/TextInputField.d.ts +23 -0
  153. package/dist/components/shared/textInputField/index.d.ts +16 -0
  154. package/dist/constants.d.ts +47 -0
  155. package/dist/contexts/index.d.ts +18 -0
  156. package/dist/contexts/menuContext.d.ts +22 -0
  157. package/dist/helpers/calculatePreviewPosition.d.ts +2 -0
  158. package/dist/helpers/dom.d.ts +1 -0
  159. package/dist/helpers/emptyFunction.d.ts +1 -0
  160. package/dist/helpers/formats/formatProperties.d.ts +18 -0
  161. package/dist/helpers/formats/index.d.ts +17 -0
  162. package/dist/helpers/formats/supportedFormatProperties.d.ts +32 -0
  163. package/dist/helpers/getDefaultPreset.d.ts +3 -0
  164. package/dist/helpers/getDefaultPresets.test.d.ts +16 -0
  165. package/dist/helpers/index.d.ts +19 -0
  166. package/dist/helpers/localStorage.d.ts +8 -0
  167. package/dist/hooks/index.d.ts +16 -0
  168. package/dist/hooks/stateHooks.d.ts +20 -0
  169. package/dist/hooks/useLoading.d.ts +1 -0
  170. package/dist/hooks/useMenuContext.d.ts +16 -0
  171. package/dist/index.css +2 -0
  172. package/dist/index.css.map +1 -0
  173. package/dist/index.d.ts +16 -0
  174. package/dist/index.js +10103 -0
  175. package/dist/index.js.map +1 -0
  176. package/dist/index.modern.js +10083 -0
  177. package/dist/index.modern.js.map +1 -0
  178. package/dist/setupTests.d.ts +2 -0
  179. package/dist/state/common/editorSaga.d.ts +19 -0
  180. package/dist/state/common/editorSlice.d.ts +25 -0
  181. package/dist/state/common/index.d.ts +17 -0
  182. package/dist/state/index.d.ts +17 -0
  183. package/dist/state/library/index.d.ts +16 -0
  184. package/dist/state/library/librarySlice.d.ts +35 -0
  185. package/dist/state/modal/index.d.ts +16 -0
  186. package/dist/state/modal/modalSlice.d.ts +47 -0
  187. package/dist/state/rna-builder/index.d.ts +16 -0
  188. package/dist/state/rna-builder/rnaBuilderSlice.d.ts +81 -0
  189. package/dist/state/rootSaga.d.ts +16 -0
  190. package/dist/state/store.d.ts +20 -0
  191. package/dist/styledComponents.d.ts +5 -0
  192. package/dist/testMockData/monomerPresets.d.ts +302 -0
  193. package/dist/theming/defaultTheme/defaultTheme.d.ts +19 -0
  194. package/dist/theming/defaultTheme/index.d.ts +17 -0
  195. package/dist/theming/defaultTheme/theme.types.d.ts +178 -0
  196. package/dist/theming/globalStyles/getGlobalStyles.d.ts +17 -0
  197. package/dist/theming/globalStyles/index.d.ts +16 -0
  198. package/dist/theming/mixins/index.d.ts +16 -0
  199. package/dist/theming/mixins/mixins.d.ts +17 -0
  200. package/dist/types/index.d.ts +4 -0
  201. package/dist/types/utilities.d.ts +3 -0
  202. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/state/common/editorSlice.ts","../src/state/common/editorSaga.ts","../src/constants.ts","../src/helpers/localStorage.ts","../src/state/library/librarySlice.ts","../src/state/rootSaga.ts","../src/state/modal/modalSlice.ts","../src/state/rna-builder/rnaBuilderSlice.ts","../src/state/store.ts","../src/theming/defaultTheme/defaultTheme.ts","../src/theming/globalStyles/getGlobalStyles.ts","../src/components/monomerLibrary/styles.ts","../src/components/Layout/Layout.tsx","../src/hooks/stateHooks.ts","../src/components/shared/Tabs/Tabs.tsx","../src/helpers/emptyFunction.ts","../src/helpers/calculatePreviewPosition.ts","../src/helpers/getDefaultPreset.ts","../src/components/monomerLibrary/monomerLibraryItem/styles.ts","../src/components/monomerLibrary/monomerLibraryItem/MonomerItem.tsx","../src/components/monomerLibrary/monomerLibraryGroup/styles.ts","../src/components/monomerLibrary/monomerLibraryGroup/MonomerGroup.tsx","../src/components/monomerLibrary/monomerLibraryList/styles.ts","../src/components/monomerLibrary/RnaPresetItem/styles.ts","../src/components/monomerLibrary/RnaBuilder/RnaAccordion/Summary/styles.ts","../src/components/monomerLibrary/RnaPresetItem/RnaPresetItem.tsx","../src/components/contextMenu/types.ts","../src/components/contextMenu/styles.ts","../src/components/contextMenu/RNAContextMenu.tsx","../src/components/monomerLibrary/RnaPresetGroup/RnaPresetGroup.tsx","../src/components/monomerLibrary/monomerLibraryList/MonomerList.tsx","../src/components/monomerLibrary/RnaBuilder/RnaAccordion/styles.ts","../src/components/monomerLibrary/RnaBuilder/RnaAccordion/Summary/Summary.tsx","../src/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.tsx","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorCollapsed/styles.ts","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorCollapsed/RnaEditorCollapsed.tsx","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/styles.ts","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/utils.ts","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/GroupBlock/GroupBlock.tsx","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/styles.ts","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.tsx","../src/components/monomerLibrary/RnaBuilder/RnaEditor/styles.ts","../src/helpers/dom.ts","../src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor.tsx","../src/components/monomerLibrary/RnaBuilder/styles.ts","../src/theming/mixins/mixins.ts","../src/components/shared/modal/Modal.tsx","../src/components/monomerLibrary/RnaBuilder/RnaBuilder.tsx","../src/components/monomerLibrary/tabsContent.tsx","../src/components/monomerLibrary/MonomerLibrary.tsx","../src/components/monomerLibrary/MonomerLibraryToggle.tsx","../src/contexts/menuContext.ts","../src/hooks/useMenuContext.ts","../src/components/menu/menuItem/styles.ts","../src/components/menu/menuItem/MenuItem.tsx","../src/components/menu/subMenu/styles.ts","../src/components/menu/subMenu/SubMenu.tsx","../src/components/menu/styles.ts","../src/components/menu/Menu.tsx","../src/components/modal/Open/AnalyzingFile/LoadingCircles/LoadingCircles.tsx","../src/components/modal/Open/AnalyzingFile/AnalyzingFile.tsx","../src/components/modal/Open/OpenOptions/FileDrop/FileDrop.tsx","../src/components/modal/Open/OpenOptions/OpenOptions.tsx","../src/components/shared/TextArea/TextArea.tsx","../src/components/modal/Open/ViewSwitcher/ViewSwitcher.tsx","../src/components/shared/actionButton/ActionButton.tsx","../src/components/modal/Open/fileOpener.ts","../../../node_modules/has-symbols/shams.js","../../../node_modules/has-tostringtag/shams.js","../../../node_modules/has-symbols/index.js","../../../node_modules/has-proto/index.js","../../../node_modules/function-bind/implementation.js","../../../node_modules/function-bind/index.js","../../../node_modules/hasown/index.js","../../../node_modules/get-intrinsic/index.js","../../../node_modules/has-property-descriptors/index.js","../../../node_modules/gopd/index.js","../../../node_modules/define-data-property/index.js","../../../node_modules/set-function-length/index.js","../../../node_modules/call-bind/index.js","../../../node_modules/call-bind/callBound.js","../../../node_modules/is-arguments/index.js","../../../node_modules/is-generator-function/index.js","../../../node_modules/is-callable/index.js","../../../node_modules/for-each/index.js","../../../node_modules/available-typed-arrays/index.js","../../../node_modules/which-typed-array/index.js","../../../node_modules/is-typed-array/index.js","../../../node_modules/util/support/types.js","../../../node_modules/util/support/isBuffer.js","../../../node_modules/inherits/inherits_browser.js","../../../node_modules/inherits/inherits.js","../../../node_modules/util/util.js","../../../node_modules/assert/build/internal/errors.js","../../../node_modules/assert/build/internal/assert/assertion_error.js","../../../node_modules/object-keys/isArguments.js","../../../node_modules/object-keys/implementation.js","../../../node_modules/object-keys/index.js","../../../node_modules/object.assign/implementation.js","../../../node_modules/object.assign/polyfill.js","../../../node_modules/object-is/implementation.js","../../../node_modules/object-is/polyfill.js","../../../node_modules/define-properties/index.js","../../../node_modules/object-is/shim.js","../../../node_modules/object-is/index.js","../../../node_modules/is-nan/implementation.js","../../../node_modules/is-nan/polyfill.js","../../../node_modules/is-nan/shim.js","../../../node_modules/is-nan/index.js","../../../node_modules/assert/build/internal/util/comparisons.js","../../../node_modules/assert/build/assert.js","../src/components/modal/Open/Open.styles.ts","../src/components/shared/dropDown/styledIcons.tsx","../src/components/shared/dropDown/dropDown.tsx","../src/components/modal/save/Save.styles.ts","../src/components/modal/Open/Open.tsx","../src/components/shared/textInputField/TextInputField.tsx","../src/helpers/formats/supportedFormatProperties.ts","../src/helpers/formats/formatProperties.ts","../src/components/modal/save/Save.tsx","../src/components/modal/Delete/styledComponents.ts","../src/components/modal/Delete/Delete.tsx","../src/components/modal/monomerConnection/styledComponents.ts","../src/components/modal/monomerConnection/MonomerConnections.tsx","../src/components/modal/modalContainer/modalComponentList.ts","../src/components/modal/modalContainer/ModalContainer.tsx","../src/components/shared/StyledToast/styles.ts","../src/components/shared/monomerOnCanvas/Chem.tsx","../src/components/shared/monomerOnCanvas/Peptide.tsx","../src/components/shared/monomerOnCanvas/Sugar.tsx","../src/components/shared/monomerOnCanvas/Phosphate.tsx","../src/components/shared/monomerOnCanvas/RNABase.tsx","../src/components/shared/MonomerPreview/styles.ts","../src/components/shared/MonomerPreview/index.tsx","../src/components/modal/Error/Error.styles.ts","../src/components/modal/Error/Error.tsx","../src/styledComponents.ts","../src/hooks/useLoading.ts","../src/components/Loader/index.tsx","../src/components/FullscreenButton/FullscreenButton.tsx","../src/Editor.tsx"],"sourcesContent":["/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { createSlice, PayloadAction, Slice } from '@reduxjs/toolkit';\nimport { RootState } from 'state';\nimport { CoreEditor, MonomerItemType } from 'ketcher-core';\nimport { ThemeType } from 'theming/defaultTheme';\nimport { DeepPartial } from '../../types';\n\ninterface EditorState {\n isReady: boolean | null;\n activeTool: string;\n editor: CoreEditor | undefined;\n preview: { monomer: undefined | MonomerItemType; style: string };\n}\n\nconst initialState: EditorState = {\n isReady: null,\n activeTool: 'select',\n editor: undefined,\n preview: { monomer: undefined, style: '' },\n};\n\nexport const editorSlice: Slice = createSlice({\n name: 'editor',\n initialState,\n reducers: {\n init: (state) => {\n state.isReady = false;\n },\n initSuccess: (state) => {\n state.isReady = true;\n },\n initFailure: (state) => {\n state.isReady = false;\n },\n selectTool: (state, action: PayloadAction<string>) => {\n state.activeTool = action.payload;\n },\n\n createEditor: (\n state,\n action: PayloadAction<{\n theme: DeepPartial<ThemeType>;\n canvas: SVGSVGElement;\n }>,\n ) => {\n state.editor = new CoreEditor({\n theme: action.payload.theme,\n canvas: action.payload.canvas,\n });\n },\n destroyEditor: (state) => {\n state.editor.switchToMicromolecules();\n state.editor = undefined;\n },\n showPreview: (\n state,\n action: PayloadAction<\n | {\n monomer: undefined | MonomerItemType;\n style: string;\n }\n | undefined\n >,\n ) => {\n state.preview = action.payload || { monomer: undefined, style: '' };\n },\n },\n});\n\nexport const {\n init,\n initSuccess,\n initFailure,\n selectTool,\n createEditor,\n showPreview,\n destroyEditor,\n} = editorSlice.actions;\n\nexport const selectEditorIsReady = (state: RootState) => state.editor.isReady;\nexport const selectShowPreview = (state: RootState) => state.editor.preview;\nexport const selectEditorActiveTool = (state: RootState) =>\n state.editor.activeTool;\n\nexport const selectEditor = (state: RootState): CoreEditor =>\n state.editor.editor;\n\nexport const editorReducer = editorSlice.reducer;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { KetcherLogger } from 'ketcher-core';\nimport { put, takeEvery, call } from 'redux-saga/effects';\nimport { editorSlice, init, initFailure, initSuccess } from 'state/common';\n\nconst FETCH_DATA = 'editor/fetchData';\n\nconst fetchDataCall = () =>\n new Promise((resolve) => {\n setTimeout(() => resolve('some data'), 1000);\n });\n\nfunction* fetchData() {\n yield put(init(editorSlice));\n try {\n yield call(fetchDataCall);\n yield put(initSuccess(editorSlice));\n } catch (e) {\n KetcherLogger.error('editorSaga.ts::fetchData', e);\n yield put(initFailure(editorSlice));\n }\n}\n\nexport function* watchFetchData() {\n yield takeEvery(FETCH_DATA, fetchData);\n}\n\nexport const fetchInitData = () => ({\n type: FETCH_DATA,\n});\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport const MONOMER_LIBRARY_FAVORITES = 'FAVORITES';\n\nexport const MONOMER_TYPES = {\n PEPTIDE: 'PEPTIDE',\n CHEM: 'CHEM',\n RNA: 'RNA',\n} as const;\nexport type LibraryNameType =\n | typeof MONOMER_LIBRARY_FAVORITES\n | keyof typeof MONOMER_TYPES;\n\nexport const EditorClassName = 'Ketcher-polymer-editor-root';\nexport const EditorQuerySelector = `.${EditorClassName}`;\n\nexport const preview = {\n width: 230,\n height: 230,\n gap: 5,\n topPadding: 16,\n} as const;\n\nexport enum MonomerGroups {\n SUGARS = 'Sugars',\n BASES = 'Bases',\n PHOSPHATES = 'Phosphates',\n}\n\nexport enum MonomerGroupCodes {\n R = 'R',\n A = 'A',\n C = 'C',\n G = 'G',\n T = 'T',\n U = 'U',\n X = 'X',\n P = 'P',\n}\n\nexport const MonomerCodeToGroup: Record<MonomerGroupCodes, MonomerGroups> = {\n R: MonomerGroups.SUGARS,\n A: MonomerGroups.BASES,\n C: MonomerGroups.BASES,\n G: MonomerGroups.BASES,\n T: MonomerGroups.BASES,\n U: MonomerGroups.BASES,\n X: MonomerGroups.BASES,\n P: MonomerGroups.PHOSPHATES,\n} as const;\n\nexport const FAVORITE_ITEMS_UNIQUE_KEYS = 'favoriteItemsUniqueKeys';\n","class LocalStorageWrapper {\n localStorage: Storage;\n\n constructor() {\n this.localStorage = window.localStorage;\n }\n\n getItem(key: string) {\n const item: string | null = this.localStorage.getItem(key);\n\n if (!item) {\n return null;\n }\n\n return JSON.parse(item);\n }\n\n setItem(key: string, item: unknown) {\n this.localStorage.setItem(key, JSON.stringify(item));\n }\n}\n\nexport const localStorageWrapper = new LocalStorageWrapper();\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { createSlice, PayloadAction, Slice } from '@reduxjs/toolkit';\nimport { Group } from 'components/monomerLibrary/monomerLibraryList/types';\n\nimport { IRnaPreset } from 'components/monomerLibrary/RnaBuilder/types';\nimport { MonomerItemType, SdfItem } from 'ketcher-core';\nimport { LibraryNameType, FAVORITE_ITEMS_UNIQUE_KEYS } from 'src/constants';\nimport { RootState } from 'state';\nimport { localStorageWrapper } from 'helpers/localStorage';\n\ninterface LibraryState {\n monomers: Group[];\n favorites: { [key: string]: Group };\n searchFilter: string;\n selectedTabIndex: number;\n}\n\nconst initialState: LibraryState = {\n monomers: [],\n favorites: {},\n searchFilter: '',\n selectedTabIndex: 1,\n};\n\nexport function getMonomerUniqueKey(monomer: MonomerItemType) {\n return `${monomer.props.MonomerName}___${monomer.props.Name}`;\n}\n\nexport function getPresetUniqueKey(preset: IRnaPreset) {\n return `${preset.name}_${preset.base?.label || '.'}_${\n preset.sugar?.label || '.'\n }_${preset.phosphate?.label || '.'}`;\n}\n\nexport const librarySlice: Slice = createSlice({\n name: 'library',\n initialState,\n reducers: {\n loadMonomerLibrary: (\n state: RootState,\n action: PayloadAction<SdfItem[]>,\n ) => {\n const newData = action.payload.map((monomer) => {\n let monomerLeavingGroups: { [key: string]: string };\n if (typeof monomer.props.MonomerCaps === 'string') {\n const monomerLeavingGroupsArray =\n monomer.props.MonomerCaps?.split(',');\n\n monomerLeavingGroups = monomerLeavingGroupsArray?.reduce(\n (acc, item) => {\n const [attachmentPoint, leavingGroup] = item.slice(1).split(']');\n acc[attachmentPoint] = leavingGroup;\n return acc;\n },\n {},\n );\n return {\n ...monomer,\n props: { ...monomer.props, MonomerCaps: monomerLeavingGroups },\n };\n }\n return monomer;\n });\n state.monomers = newData;\n },\n\n setFavoriteMonomersFromLocalStorage: (state: RootState) => {\n const localFavorites = {};\n\n const favoritesInLocalStorage: null | string =\n localStorageWrapper.getItem(FAVORITE_ITEMS_UNIQUE_KEYS);\n\n if (!favoritesInLocalStorage || !Array.isArray(favoritesInLocalStorage)) {\n return;\n }\n\n state.monomers.forEach((monomer: MonomerItemType) => {\n const uniqueKey: string = getMonomerUniqueKey(monomer);\n const favoriteItem = favoritesInLocalStorage.find(\n (key) => key === uniqueKey,\n );\n\n if (!favoriteItem) {\n return;\n }\n\n localFavorites[uniqueKey] = {\n ...monomer,\n favorite: true,\n };\n });\n\n state.favorites = localFavorites;\n },\n\n clearFavorites: (state: RootState) => {\n state.favorites = {};\n },\n\n toggleMonomerFavorites: (\n state: RootState,\n action: PayloadAction<MonomerItemType>,\n ) => {\n const key: string = getMonomerUniqueKey(action.payload);\n\n const favoriteItemsUniqueKeys = (localStorageWrapper.getItem(\n FAVORITE_ITEMS_UNIQUE_KEYS,\n ) || []) as string[];\n\n if (state.favorites[key]) {\n delete state.favorites[key];\n localStorageWrapper.setItem(\n FAVORITE_ITEMS_UNIQUE_KEYS,\n favoriteItemsUniqueKeys.filter((targetKey) => targetKey !== key),\n );\n } else {\n state.favorites[key] = { ...action.payload, favorite: true };\n favoriteItemsUniqueKeys.push(key);\n localStorageWrapper.setItem(\n FAVORITE_ITEMS_UNIQUE_KEYS,\n favoriteItemsUniqueKeys,\n );\n }\n },\n setSearchFilter: (state, action: PayloadAction<string>) => {\n state.searchFilter = action.payload;\n },\n setSelectedTabIndex: (state, action: PayloadAction<number>) => {\n state.selectedTabIndex = action.payload;\n },\n },\n});\n\nexport const getSearchTermValue = (state): string => {\n return state.library.searchFilter;\n};\n\nexport const selectMonomersInCategory = (\n items: MonomerItemType[],\n category: LibraryNameType,\n) => items.filter((item) => item.props?.MonomerType === category);\n\nexport const selectMonomersInFavorites = (items: MonomerItemType[]) =>\n items.filter((item) => item.favorite);\n\nexport const selectFilteredMonomers = (\n state,\n): Array<MonomerItemType & { favorite: boolean }> => {\n const { searchFilter, monomers } = state.library;\n return monomers\n .filter((item: MonomerItemType) => {\n const { Name = '', MonomerName = '' } = item.props;\n const monomerName = Name.toLowerCase();\n const monomerNameFull = MonomerName.toLowerCase();\n const normalizedSearchFilter = searchFilter.toLowerCase();\n const cond =\n monomerName.includes(normalizedSearchFilter) ||\n monomerNameFull.includes(normalizedSearchFilter);\n return cond;\n })\n .map((item: MonomerItemType) => {\n return {\n ...item,\n favorite: !!state.library.favorites[getMonomerUniqueKey(item)],\n };\n });\n};\n\nexport const selectMonomers = (state: RootState) => {\n return state.library.monomers;\n};\n\nexport const selectMonomerGroups = (monomers: MonomerItemType[]) => {\n const preparedData = monomers.reduce((result, monomerItem) => {\n // separate monomers by NaturalAnalogCode\n const code = monomerItem.props.MonomerNaturalAnalogCode;\n if (!result[code]) {\n result[code] = [];\n }\n result[code].push({\n ...monomerItem,\n label: monomerItem.props.MonomerName,\n });\n return result;\n }, {});\n // generate list of monomer groups\n const preparedGroups: Group[] = [];\n return Object.keys(preparedData)\n .sort()\n .reduce((result, code) => {\n const group: Group = {\n groupTitle: code,\n groupItems: [],\n };\n preparedData[code].forEach((item: MonomerItemType) => {\n group.groupItems.push({\n ...item,\n props: { ...item.props },\n });\n });\n if (group.groupItems.length) {\n result.push(group);\n }\n return result;\n }, preparedGroups);\n};\n\nexport const selectCurrentTabIndex = (state) => state.library.selectedTabIndex;\n\nexport const {\n loadMonomerLibrary,\n setFavoriteMonomersFromLocalStorage,\n clearFavorites,\n toggleMonomerFavorites,\n setSearchFilter,\n setSelectedTabIndex,\n} = librarySlice.actions;\n\nexport const libraryReducer = librarySlice.reducer;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { spawn } from 'redux-saga/effects';\nimport { watchFetchData } from 'state/common/editorSaga';\n\nexport function* rootSaga() {\n yield spawn(watchFetchData);\n}\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { AdditionalModalProps } from 'components/modal/modalContainer/types';\nimport { RootState } from 'state';\n\ninterface ModalState {\n name: string | null;\n isOpen: boolean;\n additionalProps: AdditionalModalProps | null;\n errorTooltipText: string;\n errorModalText: string;\n}\n\nconst initialState: ModalState = {\n name: null,\n isOpen: false,\n additionalProps: null,\n errorTooltipText: '',\n errorModalText: '',\n};\n\nexport const modalSlice = createSlice({\n name: 'modal',\n initialState,\n reducers: {\n openModal: (\n state,\n action: PayloadAction<\n string | { name: string; additionalProps: AdditionalModalProps }\n >,\n ) => {\n if (typeof action.payload === 'string') {\n state.name = action.payload;\n } else {\n state.name = action.payload.name;\n state.additionalProps = action.payload.additionalProps;\n }\n\n state.isOpen = true;\n },\n closeModal: (state) => {\n state.name = null;\n state.isOpen = false;\n state.additionalProps = null;\n },\n openErrorTooltip: (state, action: PayloadAction<string>) => {\n state.errorTooltipText = action.payload;\n },\n closeErrorTooltip: (state) => {\n state.errorTooltipText = '';\n },\n openErrorModal: (state, action: PayloadAction<string>) => {\n state.errorModalText = action.payload;\n },\n closeErrorModal: (state) => {\n state.errorModalText = '';\n },\n },\n});\n\nexport const {\n openModal,\n closeModal,\n openErrorTooltip,\n closeErrorTooltip,\n openErrorModal,\n closeErrorModal,\n} = modalSlice.actions;\n\nexport const selectModalName = (state: RootState): string | null =>\n state.modal.name;\nexport const selectModalIsOpen = (state: RootState): boolean =>\n state.modal.isOpen;\nexport const selectAdditionalProps = (\n state: RootState,\n): AdditionalModalProps | null => state.modal.additionalProps;\nexport const selectErrorTooltipText = (state: RootState): boolean =>\n state.modal.errorTooltipText;\nexport const selectErrorModalText = (state: RootState): string =>\n state.modal.errorModalText;\n\nexport const modalReducer = modalSlice.reducer;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { IRnaPreset } from 'components/monomerLibrary/RnaBuilder/types';\nimport { RootState } from 'state';\nimport { MonomerGroups } from '../../constants';\nimport { MonomerItemType, MONOMER_CONST } from 'ketcher-core';\nimport { localStorageWrapper } from 'helpers/localStorage';\nimport { FAVORITE_ITEMS_UNIQUE_KEYS } from 'src/constants';\n\nexport enum RnaBuilderPresetsItem {\n Presets = 'Presets',\n}\n\nexport type RnaBuilderItem = RnaBuilderPresetsItem | MonomerGroups;\n\ninterface IRnaBuilderState {\n activePreset: IRnaPreset | null;\n activePresetMonomerGroup: {\n groupName: MonomerGroups;\n groupItem: MonomerItemType;\n } | null;\n presets: IRnaPreset[];\n activeRnaBuilderItem?: RnaBuilderItem | null;\n isEditMode: boolean;\n uniqueNameError: string;\n activePresetForContextMenu: IRnaPreset | null;\n}\n\nconst initialState: IRnaBuilderState = {\n activePreset: null,\n activePresetMonomerGroup: null,\n presets: [],\n activeRnaBuilderItem: null,\n isEditMode: false,\n uniqueNameError: '',\n activePresetForContextMenu: null,\n};\nexport const monomerGroupToPresetGroup = {\n [MonomerGroups.BASES]: 'base',\n [MonomerGroups.SUGARS]: 'sugar',\n [MonomerGroups.PHOSPHATES]: 'phosphate',\n};\n\nexport const rnaBuilderSlice = createSlice({\n name: 'rna-builder',\n initialState,\n reducers: {\n createNewPreset: (state) => {\n state.activePreset = {\n base: undefined,\n sugar: undefined,\n phosphate: undefined,\n name: '',\n };\n },\n setActivePreset: (state, action: PayloadAction<IRnaPreset>) => {\n state.activePreset = {\n ...action.payload,\n presetInList: action.payload,\n };\n },\n setActivePresetForContextMenu: (\n state,\n action: PayloadAction<IRnaPreset>,\n ) => {\n state.activePresetForContextMenu = action.payload;\n },\n setActivePresetName: (state, action: PayloadAction<string>) => {\n state.activePreset!.name = action.payload;\n },\n setActiveRnaBuilderItem: (\n state,\n action: PayloadAction<RnaBuilderItem | null>,\n ) => {\n state.activeRnaBuilderItem = action.payload;\n },\n setActivePresetMonomerGroup: (\n state,\n action: PayloadAction<{\n groupName: MonomerGroups;\n groupItem: MonomerItemType;\n } | null>,\n ) => {\n state.activePresetMonomerGroup = action.payload;\n },\n savePreset: (state, action: PayloadAction<IRnaPreset>) => {\n const preset = action.payload;\n const newPreset = { ...preset };\n\n if (preset.presetInList) {\n const presetIndexInList = state.presets.findIndex(\n (presetInList) => presetInList.name === preset.presetInList?.name,\n );\n state.presets.splice(presetIndexInList, 1, newPreset);\n } else {\n state.presets.push(newPreset);\n }\n if (!state.activePreset) return;\n state.activePreset.presetInList = newPreset;\n },\n deletePreset: (state, action: PayloadAction<IRnaPreset>) => {\n const preset = action.payload;\n\n const presetIndexInList = state.presets.findIndex(\n (presetInList) => presetInList.name === preset.name,\n );\n state.presets.splice(presetIndexInList, 1);\n\n if (preset.presetInList) {\n state.activePreset = null;\n }\n },\n setIsEditMode: (state, action: PayloadAction<boolean>) => {\n state.isEditMode = action.payload;\n },\n setUniqueNameError: (state, action: PayloadAction<string>) => {\n state.uniqueNameError = action.payload;\n },\n setDefaultPresets: (\n state: RootState,\n action: PayloadAction<IRnaPreset[]>,\n ) => {\n const defaultNucleotide = action.payload[0];\n if (!defaultNucleotide) {\n return;\n }\n const presetExists = state.presets.find(\n (item: IRnaPreset) => item.name === defaultNucleotide.name,\n );\n if (presetExists) {\n return;\n }\n state.presets = action.payload;\n },\n\n setFavoritePresetsFromLocalStorage: (state: RootState) => {\n const favoritesInLocalStorage: null | unknown =\n localStorageWrapper.getItem(FAVORITE_ITEMS_UNIQUE_KEYS);\n\n if (!favoritesInLocalStorage || !Array.isArray(favoritesInLocalStorage)) {\n return;\n }\n\n state.presets = state.presets.map((preset) => {\n const uniqueKey = `${preset.name}_${MONOMER_CONST.RNA}`;\n\n const favoriteItem = favoritesInLocalStorage.find(\n (key) => key === uniqueKey,\n );\n\n if (favoriteItem) {\n return {\n ...preset,\n favorite: true,\n };\n }\n\n return preset;\n });\n },\n\n clearFavorites: (state: RootState) => {\n state.presets = [];\n },\n\n togglePresetFavorites: (state, action: PayloadAction<IRnaPreset>) => {\n const presetIndex = state.presets.findIndex(\n (presetInList) => presetInList.name === action.payload.name,\n );\n\n const uniquePresetKey = `${action.payload.name}_${MONOMER_CONST.RNA}`;\n\n if (presetIndex >= 0) {\n const favorite = state.presets[presetIndex].favorite;\n state.presets[presetIndex].favorite = !favorite;\n }\n\n const favoriteItemsUniqueKeys = (localStorageWrapper.getItem(\n FAVORITE_ITEMS_UNIQUE_KEYS,\n ) || []) as string[];\n\n const isKeyAlreadyExisted: boolean = favoriteItemsUniqueKeys.some(\n (targetKey) => targetKey === uniquePresetKey,\n );\n\n if (isKeyAlreadyExisted) {\n localStorageWrapper.setItem(\n FAVORITE_ITEMS_UNIQUE_KEYS,\n favoriteItemsUniqueKeys.filter(\n (targetKey) => targetKey !== uniquePresetKey,\n ),\n );\n } else {\n favoriteItemsUniqueKeys.push(uniquePresetKey);\n localStorageWrapper.setItem(\n FAVORITE_ITEMS_UNIQUE_KEYS,\n favoriteItemsUniqueKeys,\n );\n }\n },\n },\n});\n\nexport const selectActiveRnaBuilderItem = (state: RootState): RnaBuilderItem =>\n state.rnaBuilder.activeRnaBuilderItem;\n\nexport const selectActivePreset = (state: RootState): IRnaPreset =>\n state.rnaBuilder.activePreset;\n\nexport const selectPresets = (state: RootState): IRnaPreset[] => {\n return state.rnaBuilder.presets;\n};\n\nexport const selectCurrentMonomerGroup = (\n preset: IRnaPreset,\n groupName: MonomerGroups | string,\n) => {\n if (!monomerGroupToPresetGroup[groupName] || !preset) return;\n\n return preset[monomerGroupToPresetGroup[groupName]];\n};\n\nexport const selectActivePresetMonomerGroup = (state: RootState) =>\n state.rnaBuilder.activePresetMonomerGroup;\n\nexport const selectIsPresetReadyToSave = (preset: IRnaPreset): boolean => {\n return Boolean(\n (preset.phosphate || preset.sugar || preset.base) && preset.name,\n );\n};\n\nexport const selectIsEditMode = (state: RootState): boolean => {\n return state.rnaBuilder.isEditMode;\n};\nexport const selectPresetFullName = (preset: IRnaPreset): string => {\n if (!preset) return '';\n const sugar = preset.sugar?.props.MonomerName || '';\n const base = preset.base?.props.MonomerName || '';\n const phosphate = preset.phosphate?.props.MonomerName || '';\n let fullName = sugar;\n\n if (sugar && phosphate) {\n fullName += `(${base})`;\n } else if ((sugar || phosphate) && base) {\n fullName += `(${base})`;\n } else {\n fullName += base;\n }\n\n fullName += phosphate;\n\n return fullName;\n};\n\nexport const selectUniqueNameError = (state: RootState) => {\n return state.rnaBuilder.uniqueNameError;\n};\n\nexport const selectIsActivePresetNewAndEmpty = (state: RootState): boolean => {\n const activePreset = state.rnaBuilder.activePreset;\n return (\n activePreset &&\n !activePreset.presetInList &&\n !activePreset.name &&\n !activePreset.sugar &&\n !activePreset.base &&\n !activePreset.phosphate\n );\n};\n\nexport const selectActivePresetForContextMenu = (state: RootState) => {\n return state.rnaBuilder.activePresetForContextMenu;\n};\n\nexport const selectPresetsInFavorites = (items: IRnaPreset[]) =>\n items.filter((item) => item.favorite);\n\nexport const selectFilteredPresets = (\n state,\n): Array<IRnaPreset & { favorite: boolean }> => {\n const { searchFilter } = state.library;\n const { presets } = state.rnaBuilder;\n return presets.filter((item: IRnaPreset) => {\n const name = item.name?.toLowerCase();\n const sugarName = item.sugar?.label?.toLowerCase();\n const phosphateName = item.phosphate?.label?.toLowerCase();\n const baseName = item.base?.label?.toLowerCase();\n const searchText = searchFilter.toLowerCase();\n const cond =\n name?.includes(searchText) ||\n sugarName?.includes(searchText) ||\n phosphateName?.includes(searchText) ||\n baseName?.includes(searchText);\n return cond;\n });\n};\n\nexport const {\n setActivePreset,\n setActivePresetName,\n setActiveRnaBuilderItem,\n setActivePresetMonomerGroup,\n savePreset,\n deletePreset,\n createNewPreset,\n setIsEditMode,\n setUniqueNameError,\n setDefaultPresets,\n setActivePresetForContextMenu,\n togglePresetFavorites,\n setFavoritePresetsFromLocalStorage,\n clearFavorites,\n} = rnaBuilderSlice.actions;\n\nexport const rnaBuilderReducer = rnaBuilderSlice.reducer;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { configureStore, Store } from '@reduxjs/toolkit';\nimport { editorReducer } from 'state/common';\nimport { libraryReducer } from 'state/library';\nimport createSagaMiddleware from 'redux-saga';\nimport { rootSaga } from 'state/rootSaga';\nimport { modalReducer } from 'state/modal';\nimport { rnaBuilderReducer } from 'state/rna-builder';\n\nexport function configureAppStore(preloadedState = {}) {\n const sagaMiddleware = createSagaMiddleware();\n\n const store: Store = configureStore({\n reducer: {\n editor: editorReducer,\n modal: modalReducer,\n library: libraryReducer,\n rnaBuilder: rnaBuilderReducer,\n },\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n thunk: false,\n serializableCheck: false,\n }).concat(sagaMiddleware),\n preloadedState,\n });\n\n sagaMiddleware.run(rootSaga);\n\n return store;\n}\n\nexport const store = configureAppStore();\n\nexport type RootState = ReturnType<typeof store.getState>;\nexport type AppDispatch = typeof store.dispatch;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { ThemeOptions as MuiThemeOptions } from '@mui/material/styles';\nimport { EditorTheme } from '.';\nimport { MonomerColorScheme } from 'ketcher-core';\n\nconst monomerColors: Record<string, MonomerColorScheme> = {\n colorA: { regular: '#CCCBD6', hover: '#B8BBCC' },\n colorCM: { regular: '#FFE34C', hover: '#FFD700' },\n colorDQ: { regular: '#AD4551', hover: '#AB0014' },\n colorEN: { regular: '#93F5F5', hover: '#00F0F0' },\n colorFY: { regular: '#5656BF', hover: '#2626BF' },\n colorGX: { regular: '#E1E6ED', hover: '#CAD3E0' },\n colorH: { regular: '#BFC9FF', hover: '#99AAFF' },\n colorILV: { regular: '#50E576', hover: '#00D936' },\n colorKR: { regular: '#365CFF', hover: '#002CEB' },\n colorP: { regular: '#F2C5B6', hover: '#FFA98C' },\n colorST: { regular: '#FFC44C', hover: '#FFAA00' },\n colorW: { regular: '#99458B', hover: '#7F006B' },\n colorU: { regular: '#99458B', hover: '#7F006B' },\n chem: { regular: '#333333', hover: '#555555' },\n default: { regular: '#CCCBD6', hover: '#B8BBCC' },\n};\n\nexport const defaultTheme: EditorTheme = {\n color: {\n background: {\n canvas: '#F5F5F5',\n primary: '#FFFFFF',\n secondary: '#F8FEFF',\n overlay: 'rgba(94,94,94,.8)',\n },\n border: {\n primary: '#CAD3DD',\n secondary: '#7C7C7F',\n },\n text: {\n primary: '#333333',\n secondary: '#167782',\n light: '#585858',\n dark: '#000000',\n error: '#FF4A4A',\n lightgrey: '#7C7C7F',\n },\n tab: {\n regular: '#FFFFFF',\n active: '#EFF2F5',\n hover: '#00838F',\n content: '#EFF2F5',\n },\n scroll: {\n regular: '#717171',\n inactive: '#DDDDDD',\n },\n button: {\n primary: {\n active: '#167782',\n hover: '#00838F',\n clicked: '#4FB3BF',\n disabled: 'rgba(113, 113, 113, 0.4)',\n },\n secondary: {\n active: '#585858',\n hover: '#333333',\n clicked: '#AEAEAE',\n disabled: 'rgba(113, 113, 113, 0.4)',\n },\n transparent: {\n active: 'transparent',\n },\n text: {\n primary: '#FFFFFF',\n secondary: '#005662',\n disabled: '#7A7A7A',\n },\n },\n dropdown: {\n primary: '#333333',\n secondary: '#FFFFFF',\n hover: '#DDDDDD',\n disabled: '#7A7A7A',\n },\n tooltip: {\n background: '#FFFFFF',\n text: '#333333',\n },\n link: {\n active: '#00838F',\n hover: '#005662',\n },\n divider: '#AEAEAE',\n spinner: '#005662',\n error: '#FF4A4A',\n input: {\n text: {\n default: '#585858',\n active: '#333333',\n disabled: '#585858',\n error: '#FF4A4A',\n },\n background: {\n primary: '#FFFFFF',\n default: '#EFF2F5',\n hover: '#DDDDDD',\n disabled: '#eff2f5',\n },\n border: {\n regular: '#cad3dd',\n active: '#FFFFFF',\n hover: '#43b5c0',\n focus: '#EFF2F5',\n error: '#FF4A4A',\n },\n },\n icon: {\n grey: '#B4B9D6',\n hover: '#005662',\n active: '#525252',\n activeMenu: '#005662',\n clicked: '#FFFFFF',\n disabled: 'rgba(82, 82, 82, 0.4)',\n },\n monomer: {\n default: '#C8C8C8',\n },\n },\n font: {\n size: {\n small: '10px',\n regular: '12px',\n medium: '14px',\n xsmall: '6px',\n },\n family: {\n montserrat: 'Montserrat, sans-serif',\n inter:\n \"Inter, FreeSans, Arimo, 'Droid Sans', Helvetica, 'Helvetica Neue',\\n\" +\n 'Arial, sans-serif',\n roboto:\n 'Roboto, FreeSans, Arimo, Droid Sans, Helvetica, Helvetica Neue, Arial, sans-serif',\n },\n weight: {\n light: 300,\n regular: 400,\n bold: 600,\n },\n },\n monomer: {\n color: {\n A: monomerColors.colorA,\n C: monomerColors.colorCM,\n M: monomerColors.colorCM,\n D: monomerColors.colorDQ,\n Q: monomerColors.colorDQ,\n E: monomerColors.colorEN,\n N: monomerColors.colorEN,\n F: monomerColors.colorFY,\n Y: monomerColors.colorFY,\n G: monomerColors.colorGX,\n X: monomerColors.colorGX,\n H: monomerColors.colorH,\n I: monomerColors.colorILV,\n L: monomerColors.colorILV,\n V: monomerColors.colorILV,\n K: monomerColors.colorKR,\n R: monomerColors.colorKR,\n P: monomerColors.colorP,\n S: monomerColors.colorST,\n T: monomerColors.colorST,\n W: monomerColors.colorW,\n U: monomerColors.colorU,\n CHEM: monomerColors.chem,\n default: monomerColors.default,\n },\n },\n border: {\n regular: '1px solid #CAD3DD',\n small: '1px solid #E1E5EA',\n radius: {\n regular: '4px',\n },\n },\n shadow: {\n regular: '0px 1px 1px rgba(197, 203, 207, 0.7)',\n },\n outline: {\n small: '1px solid #B4B9D6',\n medium: '2px solid #B4B9D6',\n color: '#B4B9D6',\n selected: {\n color: '#167782',\n small: '1px solid #167782',\n medium: '2px solid #167782',\n },\n grey: {\n small: '1px solid #585858',\n },\n },\n transition: {\n regular: 'all .3s',\n },\n};\n\nexport const muiOverrides: MuiThemeOptions = {\n // // add overrides here if necessary. For example\n // components: {\n // MuiButtonBase: {\n // defaultProps: {\n // disableRipple: true\n // }\n // }\n // }\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { css } from '@emotion/react';\n\nimport { ThemeType } from '../defaultTheme';\n\nexport const getGlobalStyles = (theme: ThemeType) =>\n css({\n body: {\n fontSize: theme.ketcher.font.size.medium,\n fontFamily: theme.ketcher.font.family.inter,\n fontWeight: theme.ketcher.font.weight.regular,\n backgroundColor: theme.ketcher.color.background.primary,\n color: theme.ketcher.color.text.primary,\n boxSizing: 'border-box',\n },\n div: {\n boxSizing: 'border-box',\n },\n input: {\n fontFamily: theme.ketcher.font.family.inter,\n fontWeight: theme.ketcher.font.weight.regular,\n fontSize: theme.ketcher.font.size.regular,\n boxSizing: 'border-box',\n },\n h1: {\n fontSize: 96,\n },\n h2: {\n fontSize: 60,\n },\n h3: {\n fontSize: 48,\n },\n h4: {\n fontSize: 34,\n },\n h5: {\n fontSize: 24,\n },\n h6: {\n fontSize: 20,\n fontWeight: theme.ketcher.font.weight.bold,\n },\n p: {\n fontSize: theme.ketcher.font.size.regular,\n },\n button: {\n textTransform: 'uppercase',\n fontWeight: theme.ketcher.font.weight.bold,\n },\n });\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport styled from '@emotion/styled';\n\nexport const MONOMER_LIBRARY_WIDTH = '254px';\n\nexport const MonomerLibraryContainer = styled.div(({ theme }) => ({\n width: MONOMER_LIBRARY_WIDTH,\n height: 'calc(100% - 16px)',\n backgroundColor: theme.ketcher.color.background.primary,\n boxShadow: '0px 2px 5px rgba(103, 104, 132, 0.15)',\n display: 'flex',\n flexDirection: 'column',\n borderRadius: '4px',\n}));\n\nexport const MonomerLibraryTitle = styled.h3(({ theme }) => ({\n margin: 0,\n padding: 0,\n fontSize: theme.ketcher.font.size.regular,\n fontWeight: theme.ketcher.font.weight.regular,\n}));\n\nexport const MonomerLibraryHeader = styled.div(() => ({\n padding: '12px',\n position: 'relative',\n}));\n\nexport const MonomerLibrarySearch = styled.div(({ theme }) => ({\n padding: '12px 0',\n\n '& > div': {\n background: theme.ketcher.color.input.background.default,\n display: 'flex',\n height: '24px',\n flexDirection: 'row',\n border: '1px solid transparent',\n borderRadius: '4px',\n padding: '0 4px',\n\n '& > span': {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n '&:has(input:focus)': {\n outline: `1px solid ${theme.ketcher.color.input.border.focus}`,\n },\n\n '& > input': {\n background: 'transparent',\n border: 'none',\n padding: '0 0 0 8px',\n margin: 0,\n flex: 1,\n\n '&:focus': {\n outline: 'none',\n },\n },\n },\n}));\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport React from 'react';\nimport styled from '@emotion/styled';\nimport { MONOMER_LIBRARY_WIDTH } from 'components/monomerLibrary/styles';\n\ninterface LayoutProps {\n children: JSX.Element | Array<JSX.Element>;\n}\n\nconst Column = styled.div<{ fullWidth?: boolean }>(({ fullWidth }) => ({\n width: fullWidth ? '100%' : 'fit-content',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n}));\n\nconst RowMain = styled.div(({ theme }) => ({\n height: '100vh',\n width: '100%',\n position: 'relative',\n padding: '12px',\n paddingBottom: 0,\n backgroundColor: theme.ketcher.color.background.canvas,\n display: 'flex',\n justifyContent: 'space-between',\n columnGap: '12px',\n}));\n\nconst Row = styled.div(({ theme }) => ({\n height: '100%',\n width: '100%',\n position: 'relative',\n paddingBottom: 0,\n backgroundColor: theme.ketcher.color.background.canvas,\n display: 'flex',\n justifyContent: 'space-between',\n columnGap: '3px',\n}));\n\nconst BaseLeftRightStyle = styled.div<{ hide?: boolean }>(\n ({ hide = false }) => ({\n height: '100%',\n width: 'fit-content',\n display: hide ? 'none' : 'flex',\n flexDirection: 'column',\n }),\n);\n\nconst Left = styled(BaseLeftRightStyle)``;\n\nconst Right = styled(BaseLeftRightStyle)``;\n\nconst Top = styled.div<{ shortened?: boolean }>(({ shortened = false }) => ({\n height: 'fit-content',\n width: shortened ? `calc(100% - ${MONOMER_LIBRARY_WIDTH})` : '100%',\n marginBottom: '6px',\n display: 'flex',\n justifyContent: 'flex-end',\n backgroundColor: '#FFFFFF',\n boxShadow: '0px 2px 5px rgba(103, 104, 132, 0.15)',\n borderRadius: '4px',\n}));\n\nconst Main = styled.div({\n height: '100%',\n width: '100%',\n position: 'relative',\n});\n\nconst DummyDiv = styled.div({\n height: '40px',\n});\n\ntype LayoutSection = 'Left' | 'Right' | 'Main' | 'Top';\n\nexport const Layout = ({ children }: LayoutProps) => {\n const subcomponents: Record<LayoutSection, JSX.Element | null> = {\n Left: null,\n Main: null,\n Right: null,\n Top: null,\n };\n React.Children.forEach(children, (child) => {\n if (child.type === Left) {\n subcomponents.Left = child;\n } else if (child.type === Right) {\n subcomponents.Right = child;\n } else if (child.type === Top) {\n subcomponents.Top = child;\n } else if (child.type === Main) {\n subcomponents.Main = child;\n }\n });\n\n return (\n <RowMain>\n <Column fullWidth>\n {subcomponents.Top}\n <Row>\n {subcomponents.Left}\n <DummyDiv />\n {subcomponents.Main}\n </Row>\n </Column>\n <Column>{subcomponents.Right}</Column>\n </RowMain>\n );\n};\n\nLayout.Left = Left;\nLayout.Top = Top;\nLayout.Right = Right;\nLayout.Main = Main;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { useCallback, useEffect, useState } from 'react';\nimport { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';\nimport { AppDispatch, RootState } from 'state';\nimport { selectEditor } from 'state/common';\n\nexport const useAppDispatch = () => useDispatch<AppDispatch>();\nexport const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;\n\nexport function useSnakeMode() {\n const editor = useAppSelector(selectEditor);\n const [snakeMode, setSnakeMode] = useState(false);\n\n const onSnakeModeChange = useCallback(\n (newSnakeMode: boolean) => {\n setSnakeMode(newSnakeMode);\n },\n [setSnakeMode],\n );\n useEffect(() => {\n editor?.events.snakeModeChange.add(onSnakeModeChange);\n\n return () => {\n editor?.events.snakeModeChange.remove(onSnakeModeChange);\n };\n }, [onSnakeModeChange, editor?.events.snakeModeChange]);\n\n return snakeMode;\n}\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { Tabs, Tab } from '@mui/material';\nimport { ReactElement } from 'react';\nimport Box from '@mui/material/Box';\nimport styled from '@emotion/styled';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport {\n selectCurrentTabIndex,\n setSelectedTabIndex,\n} from 'state/library/librarySlice';\n\ninterface TabPanelProps {\n index: number;\n value: number;\n children: JSX.Element | Array<JSX.Element>;\n}\n\nconst TabPanelDiv = styled.div(() => ({\n backgroundColor: '#eef2f5',\n flexGrow: 1,\n overflowY: 'auto',\n}));\n\nconst TabPanelBox = styled(Box)({\n height: '100%',\n width: '100%',\n alignItems: 'start',\n});\n\nfunction TabPanel({ children, value, index }: TabPanelProps) {\n return (\n <TabPanelDiv role=\"tabpanel\" hidden={value !== index} id={index.toString()}>\n {value === index && <TabPanelBox>{children}</TabPanelBox>}\n </TabPanelDiv>\n );\n}\n\nfunction a11yProps(index: number) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n}\n\nfunction CustomTabs(props): ReactElement {\n const dispatch = useAppDispatch();\n const selectedTabIndex = useAppSelector(selectCurrentTabIndex);\n const { tabs } = props;\n const tabPanel = tabs[selectedTabIndex];\n const Component = tabPanel?.component;\n const componentProps = tabPanel?.props;\n\n const handleChange = (_event, newTabIndex) => {\n dispatch(setSelectedTabIndex(newTabIndex));\n };\n\n const StyledTabs = styled(Tabs)({\n height: 24,\n minHeight: 24,\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n\n '& .MuiTabs-indicator': {\n display: 'none',\n },\n });\n\n const StyledTab = styled(Tab)(({ theme }) => ({\n minHeight: 24,\n minWidth: 0,\n height: 1,\n padding: 0,\n fontSize: theme.ketcher.font.size.regular,\n textTransform: 'none',\n cursor: 'pointer',\n textAlign: 'center',\n backgroundColor: theme.ketcher.color.tab.regular,\n color: theme.ketcher.color.text.light,\n listStyleType: 'none',\n margin: 0,\n flex: '1 1 auto',\n border: `1px solid transparent`,\n borderBottom: `1px solid ${theme.ketcher.color.border.primary}`,\n borderRadius: '4px 4px 0 0',\n\n '&:first-of-type': {\n borderLeftColor: 'transparent !important',\n borderRadius: '0 4px 0 0 ',\n },\n\n '&:last-of-type': {\n borderRightColor: 'transparent !important',\n borderRadius: '4px 0 0 0',\n },\n\n '&:hover': {\n backgroundColor: theme.ketcher.color.tab.regular,\n color: theme.ketcher.color.text.primary,\n border: `1px solid ${theme.ketcher.color.border.primary}`,\n },\n\n '&.Mui-selected': {\n backgroundColor: theme.ketcher.color.tab.active,\n color: theme.ketcher.color.text.primary,\n border: `1px solid ${theme.ketcher.color.border.primary}`,\n borderBottom: '1px solid transparent',\n },\n }));\n\n const TabPanelContent = styled.div(() => ({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n width: '100%',\n height: '100%',\n }));\n\n return (\n <>\n <StyledTabs value={selectedTabIndex} onChange={handleChange}>\n {tabs.map((tabPanel, index) => (\n <StyledTab\n label={tabPanel.caption}\n key={index}\n data-testid={tabPanel.testId}\n {...a11yProps(index)}\n />\n ))}\n </StyledTabs>\n {tabPanel && (\n <TabPanel value={selectedTabIndex} index={selectedTabIndex}>\n <TabPanelContent>\n <Component {...componentProps} />\n </TabPanelContent>\n </TabPanel>\n )}\n </>\n );\n}\n\nexport { CustomTabs as Tabs };\n","// eslint-disable-next-line @typescript-eslint/no-empty-function\nexport const EmptyFunction = () => {};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { EditorClassName, preview } from '../constants';\nimport { MonomerItemType } from 'ketcher-core';\n\nexport const calculatePreviewPosition = (\n monomer: MonomerItemType | undefined,\n target?: DOMRect,\n): string => {\n if (monomer && target) {\n const editorRect = document\n .querySelector(`.${EditorClassName}`)\n ?.getBoundingClientRect();\n\n if (!editorRect || !target) {\n return '';\n }\n\n const top =\n target.top > preview.height + preview.gap + preview.topPadding\n ? target.top - preview.gap - preview.height\n : target.bottom + preview.gap;\n\n const newStyle = `${top}px`;\n\n return newStyle;\n }\n return '';\n};\n","import { IRnaPreset } from 'components/monomerLibrary/RnaBuilder/types';\nimport { MonomerItemType } from 'ketcher-core';\n\nconst defaultPresetBases = {\n A: 'Adenine',\n C: 'Cytosine',\n G: 'Guanine',\n T: 'Thymine',\n U: 'Uracil',\n};\nconst SUGAR = 'Ribose';\nconst PHOSPHATE = 'Phosphate';\n\nexport const getDefaultPresets = (\n monomers: MonomerItemType[],\n): IRnaPreset[] => {\n const defaultBaseNames = Object.values(defaultPresetBases);\n const ribose = monomers.find((item) => item.props.Name === SUGAR);\n const phosphate = monomers.find((item) => item.props.Name === PHOSPHATE);\n const defaultBases = monomers.filter((item) => {\n const base = defaultBaseNames.find(\n (defaultName) => defaultName === item.props.Name,\n );\n return !!base;\n });\n let presets;\n if (ribose && phosphate) {\n presets = defaultBases.map((base) => {\n const nucleotide: IRnaPreset = {\n base: { ...base, label: base.props.MonomerName },\n sugar: { ...ribose, label: ribose.props.MonomerName },\n phosphate: { ...phosphate, label: phosphate.props.MonomerName },\n name: base.props.MonomerName,\n default: true,\n };\n return nucleotide;\n });\n } else {\n presets = [];\n }\n return presets;\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport styled from '@emotion/styled';\n\nexport const Card = styled.div<{\n code?: string;\n selected?: boolean;\n disabled?: boolean;\n}>`\n background: white;\n height: 48px;\n text-align: center;\n cursor: ${({ disabled }) => (disabled ? 'default' : 'pointer')};\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: ${({ theme }) => theme.ketcher.font.size.small};\n color: ${({ theme }) => theme.ketcher.color.text.primary};\n position: relative;\n overflow: hidden;\n border-radius: 4px;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);\n margin: 0;\n user-select: none;\n border-color: ${({ theme }) => theme.ketcher.color.button.primary.active};\n border-width: ${({ selected }) => (selected ? '0px 2px 2px' : '0px')};\n border-style: solid;\n box-sizing: border-box;\n z-index: ${({ selected }) => (selected ? 2 : undefined)};\n\n .hidden & .star {\n visibility: hidden !important;\n }\n\n &:hover {\n outline: 1px solid #b4b9d6;\n &::after {\n content: '';\n background: ${({ code, theme, selected }) =>\n selected\n ? theme.ketcher.color.button.primary.active\n : theme.ketcher.monomer.color[code as string]?.hover};\n }\n > .star {\n visibility: visible;\n opacity: 1;\n }\n }\n &::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 8px;\n background: ${({ code, theme, selected }) =>\n selected\n ? theme.ketcher.color.button.primary.active\n : theme.ketcher.monomer.color[code as string]?.regular};\n }\n > span {\n position: absolute;\n bottom: ${({ selected }) => (selected ? '4px' : '6px')};\n left: ${({ selected }) => (selected ? '4px' : '6px')};\n text-overflow: ellipsis;\n max-width: calc(100% - 12px);\n overflow: hidden;\n }\n > .star {\n color: #e1e5ea;\n position: absolute;\n top: 12px;\n right: 4px;\n font-size: 15px;\n opacity: 0;\n transition: 0.2s ease;\n &.visible {\n visibility: visible;\n opacity: 1;\n }\n &:active {\n transform: scale(1.4);\n }\n &:hover,\n &.visible {\n color: #faa500;\n }\n }\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { EmptyFunction } from 'helpers';\nimport { useAppDispatch } from 'hooks';\nimport { useState } from 'react';\nimport { getMonomerUniqueKey, toggleMonomerFavorites } from 'state/library';\nimport { Card } from './styles';\nimport { IMonomerItemProps } from './types';\nimport { MONOMER_TYPES } from '../../../constants';\n\nconst MonomerItem = ({\n item,\n onMouseLeave,\n onMouseMove,\n isSelected,\n disabled,\n onClick = EmptyFunction,\n}: IMonomerItemProps) => {\n const [favorite, setFavorite] = useState(item.favorite);\n const dispatch = useAppDispatch();\n const colorCode =\n item.props.MonomerType === MONOMER_TYPES.CHEM\n ? item.props.MonomerType\n : item.props.MonomerNaturalAnalogCode;\n\n const monomerKey: string = getMonomerUniqueKey(item);\n\n return (\n <Card\n onClick={onClick}\n selected={isSelected}\n disabled={disabled}\n data-testid={monomerKey}\n data-monomer-item-id={monomerKey}\n code={colorCode}\n onMouseLeave={onMouseLeave}\n onMouseMove={onMouseMove}\n >\n <span>{item.label}</span>\n <div\n onClick={(event) => {\n event.stopPropagation();\n setFavorite(!favorite);\n dispatch(toggleMonomerFavorites(item));\n }}\n className={`star ${favorite ? 'visible' : ''}`}\n >\n ★\n </div>\n </Card>\n );\n};\n\nexport { MonomerItem };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport styled from '@emotion/styled';\n\nexport const ItemsContainer = styled.div`\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n grid-template-rows: auto;\n flex: 1;\n gap: 8px;\n margin-bottom: 24px;\n\n &::after {\n content: '';\n flex: auto;\n }\n`;\n\nexport const GroupContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n justify-content: flex-start;\n font-size: ${({ theme }) => theme.ketcher.font.size.small};\n font-family: ${({ theme }) => theme.ketcher.font.family.roboto};\n color: ${({ theme }) => theme.ketcher.color.divider};\n margin: 0;\n gap: 8px;\n`;\n\nexport const GroupTitle = styled.div`\n height: 100%;\n display: flex;\n flex-grow: 0;\n flex-basis: 14px;\n flex-direction: column;\n flex-wrap: wrap;\n justify-content: flex-start;\n font-size: ${({ theme }) => theme.ketcher.font.size.medium};\n font-family: ${({ theme }) => theme.ketcher.font.family.roboto};\n color: ${({ theme }) => theme.ketcher.color.text.primary};\n margin: 0;\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { EmptyFunction } from 'helpers';\nimport { debounce } from 'lodash';\nimport { MonomerItem } from '../monomerLibraryItem';\nimport { GroupContainer, GroupTitle, ItemsContainer } from './styles';\nimport { IMonomerGroupProps } from './types';\nimport { getMonomerUniqueKey } from 'state/library';\nimport { MonomerItemType } from 'ketcher-core';\nimport { calculatePreviewPosition } from '../../../helpers';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport {\n showPreview,\n selectShowPreview,\n selectEditor,\n selectTool,\n} from 'state/common';\nimport { selectActiveRnaBuilderItem } from 'state/rna-builder';\n\nconst MonomerGroup = ({\n items,\n title,\n selectedMonomerUniqueKey,\n libraryName,\n disabled,\n onItemClick = EmptyFunction,\n}: IMonomerGroupProps) => {\n const dispatch = useAppDispatch();\n const preview = useAppSelector(selectShowPreview);\n const editor = useAppSelector(selectEditor);\n const activeMonomerGroup = useAppSelector(selectActiveRnaBuilderItem);\n\n const [selectedItemInGroup, setSelectedItemInGroup] =\n useState<MonomerItemType | null>(null);\n\n useEffect(() => {\n setSelectedItemInGroup(null);\n }, [activeMonomerGroup]);\n\n const dispatchShowPreview = useCallback(\n (payload) => dispatch(showPreview(payload)),\n [dispatch],\n );\n\n const debouncedShowPreview = useMemo(\n () => debounce((p) => dispatchShowPreview(p), 500),\n [dispatchShowPreview],\n );\n\n const handleItemMouseLeave = () => {\n debouncedShowPreview.cancel();\n dispatch(showPreview(undefined));\n };\n\n const handleItemMouseMove = (\n monomer: MonomerItemType,\n e: React.MouseEvent<HTMLDivElement, MouseEvent>,\n ) => {\n handleItemMouseLeave();\n if (preview.monomer || !e.currentTarget) {\n return;\n }\n const cardCoordinates = e.currentTarget.getBoundingClientRect();\n const previewStyle = calculatePreviewPosition(monomer, cardCoordinates);\n const style = { top: previewStyle, right: '-88px' };\n debouncedShowPreview({ monomer, style });\n };\n\n const selectMonomer = (monomer: MonomerItemType) => {\n dispatch(selectTool('monomer'));\n setSelectedItemInGroup(monomer);\n\n if (['FAVORITES', 'PEPTIDE', 'CHEM'].includes(libraryName ?? '')) {\n editor.events.selectMonomer.dispatch(monomer);\n }\n\n onItemClick(monomer);\n };\n\n const isMonomerSelected = (monomer: MonomerItemType) => {\n return selectedItemInGroup\n ? getMonomerUniqueKey(selectedItemInGroup) ===\n getMonomerUniqueKey(monomer)\n : selectedMonomerUniqueKey === getMonomerUniqueKey(monomer);\n };\n\n return (\n <GroupContainer>\n {title && (\n <GroupTitle>\n <span>{title}</span>\n </GroupTitle>\n )}\n <ItemsContainer>\n {items.map((monomer) => {\n const key = monomer.props\n ? `${monomer.props.MonomerName + monomer.props.Name}`\n : monomer.label;\n return (\n <MonomerItem\n key={key}\n disabled={disabled}\n item={monomer}\n isSelected={isMonomerSelected(monomer)}\n onMouseLeave={handleItemMouseLeave}\n onMouseMove={(e) => handleItemMouseMove(monomer, e)}\n onClick={() => selectMonomer(monomer)}\n />\n );\n })}\n </ItemsContainer>\n </GroupContainer>\n );\n};\nexport { MonomerGroup };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\nexport const MonomerListContainer = styled.div({\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyItems: 'center',\n gap: '24px',\n padding: '16px 12px',\n});\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport styled from '@emotion/styled';\nimport { Card as MonomerCard } from '../monomerLibraryItem/styles';\n\nexport const Card = styled(MonomerCard)<{ code?: string; selected?: boolean }>`\n &::after {\n content: '';\n background: ${({ theme, selected }) =>\n selected ? theme.ketcher.color.button.primary.active : '#faa500'};\n }\n .dots {\n visibility: visible;\n position: absolute;\n right: 2px;\n top: 10px;\n }\n .hidden {\n visibility: hidden !important;\n }\n > .star {\n right: 0;\n left: 4px;\n top: 10px;\n width: min-content;\n }\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { Icon } from 'ketcher-react';\nimport { IStyledIconProps } from './types';\n\nexport const SummaryContainer = styled.div((props) => ({\n minHeight: '32px',\n display: 'flex',\n alignItems: 'center',\n padding: '8px 12px',\n gap: '8px',\n borderBottom: props.theme.ketcher.border.small,\n}));\n\nexport const SummaryText = styled.span((props) => ({\n flexGrow: 1,\n fontSize: props.theme.ketcher.font.size.regular,\n}));\n\nexport const StyledIcon = styled(Icon)<IStyledIconProps>((props) => ({\n width: '16px',\n height: '16px',\n color: props.theme.ketcher.color.icon.grey,\n transition: props.theme.ketcher.transition.regular,\n transform: props.expanded ? 'none' : 'rotate(180deg)',\n}));\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { EmptyFunction } from 'helpers';\nimport { Card } from './styles';\nimport { IRnaPresetItemrops } from './types';\nimport { useState } from 'react';\nimport { StyledIcon } from '../RnaBuilder/RnaAccordion/Summary/styles';\nimport { useAppDispatch } from 'hooks';\nimport { togglePresetFavorites } from 'state/rna-builder';\nimport { getPresetUniqueKey } from 'state/library';\n\nconst RnaPresetItem = ({\n preset,\n isSelected,\n onClick = EmptyFunction,\n onContextMenu = EmptyFunction,\n}: IRnaPresetItemrops) => {\n const [showDots, setShowDots] = useState(false);\n const [favorite, setFavorite] = useState(preset.favorite);\n const dispatch = useAppDispatch();\n const onMouseOver = () => {\n setShowDots(true);\n };\n const onMouseOut = () => {\n setShowDots(false);\n };\n const addFavorite = (event) => {\n event.stopPropagation();\n setFavorite(!favorite);\n dispatch(togglePresetFavorites(preset));\n };\n\n return (\n <Card\n data-testid={getPresetUniqueKey(preset)}\n onClick={onClick}\n onContextMenu={onContextMenu}\n onMouseOver={onMouseOver}\n onMouseOut={onMouseOut}\n selected={isSelected}\n code={preset.name}\n data-rna-preset-item-name={preset.name}\n >\n <span>{preset.name}</span>\n <StyledIcon\n name=\"vertical-dots\"\n className={showDots ? 'dots' : 'dots hidden'}\n onClick={onContextMenu}\n ></StyledIcon>\n <div\n aria-hidden\n onClick={addFavorite}\n className={`star ${favorite ? 'visible' : ''}`}\n >\n ★\n </div>\n </Card>\n );\n};\n\nexport { RnaPresetItem };\n","export enum CONTEXT_MENU_ID {\n FOR_RNA = 'context-menu-for-RNA',\n}\n","import styled from '@emotion/styled';\nimport { Menu } from 'react-contexify';\n\nexport const StyledMenu = styled(Menu)`\n --contexify-activeItem-bgColor: rgba(243, 245, 247, 1);\n --contexify-menu-minWidth: 140px;\n --contexify-activeItem-color: rgba(51, 51, 51, 1);\n .contexify_itemContent {\n font-family: ${({ theme }) => theme.ketcher.font.family.inter};\n font-size: ${({ theme }) => theme.ketcher.font.size.regular};\n }\n .contexify_separator {\n color: rgba(225, 229, 234, 1);\n }\n`;\n","import { Item, ItemParams, Separator } from 'react-contexify';\nimport { openModal } from 'state/modal';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport { ReactElement } from 'react';\nimport { CONTEXT_MENU_ID } from './types';\nimport { selectCurrentTabIndex, setSelectedTabIndex } from 'state/library';\nimport { selectActivePresetForContextMenu } from 'state/rna-builder';\nimport { StyledMenu } from './styles';\n\nexport const RNAContextMenu = () => {\n const RNA_TAB_INDEX = 2;\n const dispatch = useAppDispatch();\n const activePresetForContextMenu = useAppSelector(\n selectActivePresetForContextMenu,\n );\n const selectedTabIndex = useAppSelector(selectCurrentTabIndex);\n const RNAMenus = [\n { name: 'duplicateandedit', title: 'Duplicate and Edit...' },\n { name: 'edit', title: 'Edit...', seperator: true },\n { name: 'deletepreset', title: 'Delete Preset' },\n ];\n\n const isItemDisabled = (name: string) => {\n if (\n ['deletepreset', 'edit'].includes(name) &&\n activePresetForContextMenu?.default\n ) {\n return true;\n }\n return false;\n };\n\n const handleMenuChange = ({ id, props }: ItemParams) => {\n switch (id) {\n case 'duplicateandedit':\n props.duplicatePreset(activePresetForContextMenu);\n if (selectedTabIndex !== RNA_TAB_INDEX) {\n dispatch(setSelectedTabIndex(RNA_TAB_INDEX));\n }\n break;\n case 'edit':\n props.editPreset(activePresetForContextMenu);\n if (selectedTabIndex !== RNA_TAB_INDEX) {\n dispatch(setSelectedTabIndex(RNA_TAB_INDEX));\n }\n break;\n case 'deletepreset':\n dispatch(openModal('delete'));\n break;\n }\n };\n\n const assembleMenuItems = () => {\n const items: ReactElement[] = [];\n RNAMenus.forEach(({ name, title, seperator }, index) => {\n const item = (\n <Item\n id={name}\n onClick={handleMenuChange}\n key={name}\n disabled={isItemDisabled(name)}\n data-testid={name}\n >\n <span>{title}</span>\n </Item>\n );\n items.push(item);\n if (seperator) {\n items.push(<Separator key={index} />);\n }\n });\n return items;\n };\n\n return (\n <StyledMenu id={CONTEXT_MENU_ID.FOR_RNA}>{assembleMenuItems()}</StyledMenu>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { useAppSelector } from 'hooks';\nimport { MouseEvent } from 'react';\nimport {\n selectActivePreset,\n setActivePreset,\n setActivePresetForContextMenu,\n setIsEditMode,\n} from 'state/rna-builder';\nimport { useDispatch } from 'react-redux';\nimport { RnaPresetItem } from 'components/monomerLibrary/RnaPresetItem';\nimport {\n GroupContainer,\n ItemsContainer,\n} from 'components/monomerLibrary/monomerLibraryGroup/styles';\nimport { selectEditor } from 'state/common';\nimport { RNAContextMenu } from 'components/contextMenu/RNAContextMenu';\nimport { CONTEXT_MENU_ID } from 'components/contextMenu/types';\nimport { useContextMenu } from 'react-contexify';\nimport { IRnaPreset } from '../RnaBuilder/types';\n\nexport const RnaPresetGroup = ({ presets, duplicatePreset, editPreset }) => {\n const activePreset = useAppSelector(selectActivePreset);\n const editor = useAppSelector(selectEditor);\n\n const { show } = useContextMenu({ id: CONTEXT_MENU_ID.FOR_RNA });\n\n const dispatch = useDispatch();\n\n const selectPreset = (preset: IRnaPreset) => () => {\n dispatch(setActivePreset(preset));\n editor.events.selectPreset.dispatch(preset);\n if (preset === activePreset?.presetInList) return;\n dispatch(setIsEditMode(false));\n };\n\n const getMenuPosition = (currentPresetCard: HTMLElement) => {\n const isDivCard = currentPresetCard instanceof HTMLDivElement;\n if (!isDivCard && currentPresetCard.parentElement) {\n currentPresetCard = currentPresetCard.parentElement;\n }\n const boundingBox = currentPresetCard.getBoundingClientRect();\n const parentBox = currentPresetCard.offsetParent?.getBoundingClientRect();\n const contextMenuWidth = 140;\n let x = boundingBox.right - contextMenuWidth;\n const y = boundingBox.y + boundingBox.height / 2;\n if (parentBox?.x && parentBox?.x > x) {\n x = boundingBox.x;\n }\n return {\n x,\n y,\n };\n };\n\n const handleContextMenu = (preset: IRnaPreset) => (event: MouseEvent) => {\n event.stopPropagation();\n dispatch(setActivePresetForContextMenu(preset));\n show({\n event,\n props: {\n duplicatePreset,\n editPreset,\n },\n position: getMenuPosition(event.currentTarget as HTMLElement),\n });\n };\n\n return (\n <GroupContainer data-testid=\"rna-preset-group\">\n <ItemsContainer>\n {presets.map((preset, index) => {\n return (\n <RnaPresetItem\n key={`${preset.name}${index}`}\n preset={preset}\n onClick={selectPreset(preset)}\n onContextMenu={handleContextMenu(preset)}\n isSelected={activePreset?.name === preset.name}\n />\n );\n })}\n </ItemsContainer>\n <RNAContextMenu />\n </GroupContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { useEffect, useState } from 'react';\nimport { MonomerGroup } from '../monomerLibraryGroup';\nimport { useAppSelector } from 'hooks';\nimport { MonomerListContainer } from './styles';\nimport { IMonomerListProps } from './types';\nimport {\n selectFilteredMonomers,\n selectMonomerGroups,\n selectMonomersInCategory,\n selectMonomersInFavorites,\n getMonomerUniqueKey,\n} from 'state/library';\nimport { MONOMER_LIBRARY_FAVORITES } from '../../../constants';\nimport { MonomerItemType } from 'ketcher-core';\nimport { selectEditorActiveTool } from 'state/common';\nimport {\n selectFilteredPresets,\n selectPresetsInFavorites,\n} from 'state/rna-builder';\nimport { RnaPresetGroup } from '../RnaPresetGroup/RnaPresetGroup';\nimport { IRnaPreset } from '../RnaBuilder/types';\n\nexport type Group = {\n groupItems: Array<MonomerItemType>;\n groupTitle?: string;\n};\n\nexport type Favorites = {\n monomers: MonomerItemType[];\n presets: IRnaPreset[];\n};\n\nconst MonomerList = ({\n onItemClick,\n libraryName,\n duplicatePreset,\n editPreset,\n}: IMonomerListProps) => {\n const monomers = useAppSelector(selectFilteredMonomers);\n const presets = useAppSelector(selectFilteredPresets);\n const activeTool = useAppSelector(selectEditorActiveTool);\n const isFavoriteTab = libraryName === MONOMER_LIBRARY_FAVORITES;\n const items = !isFavoriteTab\n ? selectMonomersInCategory(monomers, libraryName)\n : ({\n monomers: selectMonomersInFavorites(monomers),\n presets: selectPresetsInFavorites(presets),\n } as Favorites);\n\n const monomerGroups = selectMonomerGroups(\n isFavoriteTab\n ? (items as Favorites).monomers\n : (items as MonomerItemType[]),\n );\n\n const [selectedMonomers, setSelectedMonomers] = useState('');\n\n const selectMonomer = (monomer: MonomerItemType) => {\n setSelectedMonomers(getMonomerUniqueKey(monomer));\n };\n\n useEffect(() => {\n if (activeTool !== 'monomer') {\n setSelectedMonomers('');\n }\n }, [activeTool]);\n\n return (\n <MonomerListContainer>\n {isFavoriteTab && monomerGroups.length > 0 && <div>Monomers</div>}\n {monomerGroups.map(({ groupItems, groupTitle }, _index, groups) => {\n return (\n <MonomerGroup\n key={groupTitle}\n title={groups.length === 1 ? undefined : groupTitle}\n items={groupItems}\n libraryName={libraryName}\n onItemClick={onItemClick || selectMonomer}\n selectedMonomerUniqueKey={selectedMonomers}\n />\n );\n })}\n {isFavoriteTab && (items as Favorites).presets.length > 0 && (\n <>\n <div>Presets</div>\n <RnaPresetGroup\n duplicatePreset={duplicatePreset}\n editPreset={editPreset}\n presets={(items as Favorites).presets}\n />\n </>\n )}\n </MonomerListContainer>\n );\n};\n\nexport { MonomerList };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { Accordion, Button } from 'ketcher-react';\n\nexport const RnaAccordionContainer = styled.div({\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start',\n overflow: 'hidden',\n height: '100%',\n});\n\nexport const StyledAccordion = styled(Accordion)({\n minHeight: '32px',\n});\n\nexport const StyledAccordionWrapper = styled.div({\n flexGrow: 2,\n minHeight: '32px',\n});\n\nexport const DetailsContainer = styled.div({\n position: 'relative',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: '24px',\n justifyContent: 'start',\n padding: '16px 12px',\n});\n\nexport const StyledButton = styled(Button)((props) => {\n return {\n backgroundColor: props.theme.ketcher.color.button.transparent.active,\n color: props.theme.ketcher.color.text.light,\n borderColor: props.theme.ketcher.color.text.light,\n };\n});\n\nexport const DisabledArea = styled.div({\n width: '100%',\n height: '100%',\n backgroundColor: '#eff2f594',\n position: 'absolute',\n top: 0,\n left: 0,\n});\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { StyledIcon, SummaryContainer, SummaryText } from './styles';\nimport { ISummaryProps } from './types';\n\nexport const Summary = ({\n groupName,\n quantity,\n expanded,\n iconName,\n}: ISummaryProps) => {\n return (\n <SummaryContainer data-testid={`summary-${groupName}`}>\n <StyledIcon name={iconName} />\n <SummaryText>\n {groupName} ({quantity})\n </SummaryText>\n <StyledIcon name=\"chevron\" expanded={!expanded} />\n </SummaryContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { MonomerGroup } from 'components/monomerLibrary/monomerLibraryGroup';\nimport { useAppSelector } from 'hooks';\nimport { IconName } from 'ketcher-react';\nimport { useEffect, useState } from 'react';\nimport {\n MonomerCodeToGroup,\n MonomerGroupCodes,\n MonomerGroups,\n} from 'src/constants';\nimport {\n getMonomerUniqueKey,\n selectFilteredMonomers,\n selectMonomerGroups,\n selectMonomersInCategory,\n} from 'state/library';\nimport {\n DetailsContainer,\n DisabledArea,\n RnaAccordionContainer,\n StyledAccordion,\n StyledAccordionWrapper,\n StyledButton,\n} from './styles';\nimport { Summary } from './Summary';\nimport {\n createNewPreset,\n RnaBuilderItem,\n RnaBuilderPresetsItem,\n selectActivePreset,\n selectActiveRnaBuilderItem,\n selectCurrentMonomerGroup,\n selectFilteredPresets,\n selectIsActivePresetNewAndEmpty,\n selectIsEditMode,\n setActivePresetMonomerGroup,\n setActiveRnaBuilderItem,\n setIsEditMode,\n} from 'state/rna-builder';\nimport { useDispatch } from 'react-redux';\nimport { IRnaPreset } from '../types';\nimport { MonomerItemType } from 'ketcher-core';\nimport { selectEditor } from 'state/common';\nimport { RnaPresetGroup } from 'components/monomerLibrary/RnaPresetGroup/RnaPresetGroup';\n\ninterface IGroupsDataItem {\n groupName: RnaBuilderItem;\n iconName: string;\n groups: {\n groupItems: IRnaPreset[] | MonomerItemType[];\n groupTitle?: string;\n }[];\n}\n\nexport const RnaAccordion = ({ libraryName, duplicatePreset, editPreset }) => {\n const monomers = useAppSelector(selectFilteredMonomers);\n const items = selectMonomersInCategory(monomers, libraryName);\n const activeRnaBuilderItem = useAppSelector(selectActiveRnaBuilderItem);\n const activePreset = useAppSelector(selectActivePreset);\n const groups = selectMonomerGroups(items);\n const presets = useAppSelector(selectFilteredPresets);\n const isEditMode = useAppSelector(selectIsEditMode);\n const editor = useAppSelector(selectEditor);\n const isActivePresetNewAndEmpty = useAppSelector(\n selectIsActivePresetNewAndEmpty,\n );\n\n const [expandedAccordion, setExpandedAccordion] =\n useState<RnaBuilderItem | null>(activeRnaBuilderItem);\n\n const handleAccordionSummaryClick = (rnaBuilderItem: RnaBuilderItem) => {\n if (expandedAccordion === rnaBuilderItem) {\n setExpandedAccordion(null);\n } else setExpandedAccordion(rnaBuilderItem);\n };\n\n const groupsData: IGroupsDataItem[] = [\n {\n groupName: RnaBuilderPresetsItem.Presets,\n iconName: 'preset',\n groups: [{ groupItems: presets }],\n },\n {\n groupName: MonomerGroups.SUGARS,\n iconName: 'sugar',\n groups: groups.filter(\n (group) =>\n MonomerCodeToGroup[group.groupTitle as MonomerGroupCodes] ===\n MonomerGroups.SUGARS,\n ),\n },\n {\n groupName: MonomerGroups.BASES,\n iconName: 'base',\n groups: groups.filter(\n (group) =>\n MonomerCodeToGroup[group.groupTitle as MonomerGroupCodes] ===\n MonomerGroups.BASES,\n ),\n },\n {\n groupName: MonomerGroups.PHOSPHATES,\n iconName: 'phosphate',\n groups: groups.filter(\n (group) =>\n MonomerCodeToGroup[group.groupTitle as MonomerGroupCodes] ===\n MonomerGroups.PHOSPHATES,\n ),\n },\n ];\n const dispatch = useDispatch();\n const selectItem = (monomer, groupName) => {\n editor.events.selectMonomer.dispatch(monomer);\n if (!isEditMode) return;\n\n dispatch(setActivePresetMonomerGroup({ groupName, groupItem: monomer }));\n dispatch(setActiveRnaBuilderItem(groupName));\n };\n\n useEffect(() => {\n setExpandedAccordion(activeRnaBuilderItem);\n }, [activeRnaBuilderItem]);\n\n useEffect(() => {\n dispatch(\n setActiveRnaBuilderItem(\n isEditMode && activePreset\n ? activeRnaBuilderItem\n : RnaBuilderPresetsItem.Presets,\n ),\n );\n }, [isEditMode]);\n\n const onClickNewPreset = () => {\n dispatch(createNewPreset());\n dispatch(setActiveRnaBuilderItem(RnaBuilderPresetsItem.Presets));\n dispatch(setIsEditMode(true));\n };\n\n return (\n <RnaAccordionContainer data-testid=\"rna-accordion\">\n {groupsData.map((groupData) => {\n const expanded = expandedAccordion === groupData.groupName;\n const quantity = groupData.groups.reduce(\n (acc, group) => acc + group.groupItems.length || 0,\n 0,\n );\n const summary = (\n <Summary\n iconName={groupData.iconName as IconName}\n groupName={groupData.groupName}\n quantity={quantity}\n expanded={expanded}\n />\n );\n const details =\n groupData.groupName === RnaBuilderPresetsItem.Presets ? (\n <DetailsContainer>\n <StyledButton onClick={() => onClickNewPreset()}>\n New Preset\n </StyledButton>\n <RnaPresetGroup\n duplicatePreset={duplicatePreset}\n editPreset={editPreset}\n presets={presets}\n />\n {isEditMode && !isActivePresetNewAndEmpty && <DisabledArea />}\n </DetailsContainer>\n ) : (\n <DetailsContainer>\n {groupData.groups.map(({ groupItems, groupTitle }) => {\n const monomer = selectCurrentMonomerGroup(\n activePreset,\n groupData.groupName,\n );\n return (\n <MonomerGroup\n key={groupTitle}\n title={groupData.groups.length > 1 ? groupTitle : undefined}\n items={groupItems as MonomerItemType[]}\n selectedMonomerUniqueKey={\n monomer ? getMonomerUniqueKey(monomer) : undefined\n }\n onItemClick={(monomer) =>\n selectItem(monomer, groupData.groupName)\n }\n />\n );\n })}\n </DetailsContainer>\n );\n const presetsExpanded =\n groupData.groupName === RnaBuilderPresetsItem.Presets && expanded;\n\n return presetsExpanded ? (\n <StyledAccordionWrapper key={groupData.groupName}>\n <StyledAccordion\n data-testid=\"styled-accordion\"\n summary={summary}\n details={details}\n expanded={expanded}\n onSummaryClick={() =>\n handleAccordionSummaryClick(groupData.groupName)\n }\n />\n </StyledAccordionWrapper>\n ) : (\n <StyledAccordion\n key={groupData.groupName}\n data-testid=\"styled-accordion\"\n summary={summary}\n details={details}\n expanded={expanded}\n onSummaryClick={() =>\n handleAccordionSummaryClick(groupData.groupName)\n }\n />\n );\n })}\n </RnaAccordionContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\nexport const RnaEditorCollapsedContainer = styled.div({\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n padding: '10px',\n});\n\nexport const MonomerName = styled.span<{ grey?: boolean }>((props) => ({\n fontSize: props.theme.ketcher.font.size.medium,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n color: props.grey\n ? props.theme.ketcher.color.text.lightgrey\n : props.theme.ketcher.color.text.primary,\n}));\n\nexport const TextContainer = styled.div({\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n});\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n MonomerName,\n RnaEditorCollapsedContainer,\n TextContainer,\n} from './styles';\nimport { IRnaEditorCollapsedProps } from './types';\n\nexport const RnaEditorCollapsed = ({\n name,\n fullName,\n}: IRnaEditorCollapsedProps) => {\n return name || fullName ? (\n <RnaEditorCollapsedContainer>\n <TextContainer>\n <MonomerName grey={!name && !fullName}>{name || fullName}</MonomerName>\n </TextContainer>\n </RnaEditorCollapsedContainer>\n ) : (\n <></>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { Icon } from 'ketcher-react';\n\nexport const GroupBlockContainer = styled.div<{\n selected?: boolean;\n empty?: boolean;\n isEditMode?: boolean;\n}>((props) => ({\n height: '40px',\n position: 'relative',\n marginLeft: props.isEditMode ? '30px' : '28.5px',\n display: 'flex',\n alignItems: 'center',\n border: props.isEditMode\n ? 'none'\n : `1.5px solid ${props.theme.ketcher.outline.color}`,\n backgroundColor: props.selected\n ? props.theme.ketcher.color.button.primary.active\n : props.isEditMode\n ? props.theme.ketcher.color.background.primary\n : 'transparent',\n borderRadius: props.theme.ketcher.border.radius.regular,\n boxShadow: props.isEditMode ? props.theme.ketcher.shadow.regular : 'none',\n padding: '5px 10px',\n color: props.selected ? 'white' : 'black',\n gap: '14px',\n cursor: 'pointer',\n outlineOffset: '1px',\n boxSizing: 'border-box',\n\n ':hover': {\n outline: props.theme.ketcher.outline.small,\n },\n\n ':not(:last-child)': {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n right: '100%',\n bottom: 'calc(50% - 1px)',\n borderLeft: props.theme.ketcher.outline.medium,\n borderBottom: props.theme.ketcher.outline.medium,\n height: '2px',\n width: '17px',\n },\n },\n\n ':last-child': {\n ':after': {\n content: '\"\"',\n position: 'absolute',\n right: '100%',\n bottom: 'calc(50% - 1px)',\n borderLeft: props.theme.ketcher.outline.medium,\n borderBottom: props.theme.ketcher.outline.medium,\n borderRadius: '0 0 0 4px',\n height: '130px',\n width: '17px',\n },\n },\n}));\n\nexport const TextContainer = styled.div({\n display: 'flex',\n flexDirection: 'column',\n});\n\nexport const GroupName = styled.span((props) => ({\n fontSize: props.theme.ketcher.font.size.small,\n}));\n\nexport const MonomerName = styled.span<{ selected?: boolean; empty: boolean }>(\n (props) => ({\n marginTop: '1px',\n fontSize: props.theme.ketcher.font.size.medium,\n color: props.selected\n ? 'white'\n : props.empty\n ? props.theme.ketcher.color.text.lightgrey\n : props.theme.ketcher.color.text.primary,\n }),\n);\n\nexport const GroupIcon = styled(Icon)<{\n selected?: boolean;\n empty?: boolean;\n name?: string;\n}>((props) => ({\n color: props.empty\n ? 'transparent'\n : props.selected\n ? props.theme.ketcher.color.background.primary\n : props.theme.ketcher.color.icon.grey,\n stroke: props.selected\n ? props.theme.ketcher.color.background.primary\n : props.theme.ketcher.color.icon.grey,\n paddingRight:\n props.name === 'sugar' ? '5px' : props.name === 'phosphate' ? '1px' : 0,\n}));\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { MonomerGroups } from 'src/constants';\n\nexport const groupNameToLabel = {\n [MonomerGroups.SUGARS]: 'Select sugar',\n [MonomerGroups.BASES]: 'Select base',\n [MonomerGroups.PHOSPHATES]: 'Select phosphate',\n};\n\nexport const groupNameToRnaEditorItemLabel = {\n [MonomerGroups.SUGARS]: 'Sugar',\n [MonomerGroups.BASES]: 'Base',\n [MonomerGroups.PHOSPHATES]: 'Phosphate',\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n GroupBlockContainer,\n GroupIcon,\n GroupName,\n MonomerName,\n TextContainer,\n} from './styles';\nimport { IGroupBlockProps } from './types';\nimport { groupNameToLabel, groupNameToRnaEditorItemLabel } from './utils';\nimport { useAppSelector } from 'hooks';\nimport { selectIsEditMode } from 'state/rna-builder';\n\nexport const GroupBlock = ({\n groupName,\n iconName,\n monomerName,\n selected,\n onClick,\n testid,\n}: IGroupBlockProps) => {\n const isEditMode = useAppSelector(selectIsEditMode);\n\n return (\n <GroupBlockContainer\n selected={selected}\n onClick={onClick}\n empty={!monomerName}\n isEditMode={isEditMode}\n data-testid={testid}\n >\n <GroupIcon empty={!monomerName} selected={selected} name={iconName} />\n <TextContainer>\n <GroupName>{groupNameToRnaEditorItemLabel[groupName]}</GroupName>\n <MonomerName empty={!monomerName} selected={selected}>\n {monomerName ||\n (selected ? groupNameToLabel[groupName] : 'Not selected')}\n </MonomerName>\n </TextContainer>\n </GroupBlockContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { Button, Input } from 'ketcher-react';\n\nexport const RnaEditorExpandedContainer = styled.div({\n display: 'flex',\n flexDirection: 'column',\n padding: '10px',\n});\n\nexport const GroupsContainer = styled.div({\n marginTop: '16px',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n});\n\nexport const ButtonsContainer = styled.div({\n marginTop: '16px',\n display: 'flex',\n justifyContent: 'space-evenly',\n alignItems: 'center',\n gap: '8px',\n});\n\nexport const StyledButton = styled(Button)<{ primary?: boolean }>((props) => {\n return {\n width: '100%',\n whiteSpace: 'nowrap',\n fontSize: props.theme.ketcher.font.size.regular,\n backgroundColor: props.primary\n ? props.theme.ketcher.color.button.primary.active\n : undefined,\n color:\n props.primary && !props.disabled\n ? props.theme.ketcher.color.button.text.primary\n : props.theme.ketcher.color.text.light,\n outline:\n props.primary && !props.disabled\n ? props.theme.ketcher.outline.selected.small\n : props.theme.ketcher.outline.grey.small,\n };\n});\n\nexport const NameContainer = styled.div<{ selected?: boolean }>((props) => ({\n position: 'relative',\n borderRadius: props.theme.ketcher.border.radius.regular,\n backgroundColor: props.theme.ketcher.color.background.primary,\n boxShadow: props.theme.ketcher.shadow.regular,\n cursor: 'pointer',\n overflow: 'hidden',\n padding: '0 6px 6px 6px',\n display: 'flex',\n alignItems: 'flex-end',\n height: '48px',\n outline: props.selected\n ? props.theme.ketcher.outline.selected.medium\n : 'none',\n\n ':hover': {\n outline: props.selected ? undefined : props.theme.ketcher.outline.small,\n },\n}));\n\nexport const NameLine = styled.span<{ selected?: boolean }>((props) => ({\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '8px',\n backgroundColor: props.selected\n ? props.theme.ketcher.outline.selected.color\n : props.theme.ketcher.outline.color,\n}));\n\nexport const NameInput = styled(Input)({\n width: '100%',\n});\n\nexport const PresetName = styled.div({\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n});\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { MonomerGroups } from 'src/constants';\nimport { GroupBlock } from './GroupBlock';\nimport {\n ButtonsContainer,\n GroupsContainer,\n NameContainer,\n NameInput,\n NameLine,\n PresetName,\n RnaEditorExpandedContainer,\n StyledButton,\n} from './styles';\nimport { IRnaEditorExpandedProps } from 'components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/types';\nimport { useDispatch } from 'react-redux';\nimport {\n monomerGroupToPresetGroup,\n RnaBuilderPresetsItem,\n savePreset,\n selectActivePreset,\n selectCurrentMonomerGroup,\n selectActivePresetMonomerGroup,\n selectActiveRnaBuilderItem,\n selectIsPresetReadyToSave,\n selectPresets,\n setActivePreset,\n setActiveRnaBuilderItem,\n setIsEditMode,\n setActivePresetMonomerGroup,\n selectPresetFullName,\n setUniqueNameError,\n} from 'state/rna-builder';\nimport { useAppSelector } from 'hooks';\nimport {\n scrollToSelectedMonomer,\n scrollToSelectedPreset,\n} from 'components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor';\nimport { getMonomerUniqueKey } from 'state/library';\nimport { selectEditor } from 'state/common';\nimport { ChangeEvent, useEffect, useState } from 'react';\n\nexport const RnaEditorExpanded = ({\n isEditMode,\n onDuplicate,\n}: IRnaEditorExpandedProps) => {\n const groupsData = [\n {\n groupName: MonomerGroups.SUGARS,\n iconName: 'sugar',\n testId: 'rna-builder-slot--sugar',\n },\n {\n groupName: MonomerGroups.BASES,\n iconName: 'base',\n testId: 'rna-builder-slot--base',\n },\n {\n groupName: MonomerGroups.PHOSPHATES,\n iconName: 'phosphate',\n testId: 'rna-builder-slot--phosphate',\n },\n ] as const;\n\n const dispatch = useDispatch();\n const activePreset = useAppSelector(selectActivePreset);\n const activeMonomerGroup = useAppSelector(selectActiveRnaBuilderItem);\n const editor = useAppSelector(selectEditor);\n const presets = useAppSelector(selectPresets);\n const activePresetMonomerGroup = useAppSelector(\n selectActivePresetMonomerGroup,\n );\n const [newPreset, setNewPrest] = useState(activePreset);\n\n const updatePresetMonomerGroup = () => {\n if (activePresetMonomerGroup) {\n const groupName =\n monomerGroupToPresetGroup[activePresetMonomerGroup.groupName];\n const currentPreset = {\n ...newPreset,\n [groupName]: activePresetMonomerGroup.groupItem,\n };\n setNewPrest(currentPreset);\n return currentPreset;\n }\n return newPreset;\n };\n\n useEffect(() => {\n setNewPrest(activePreset);\n }, [activePreset]);\n\n useEffect(() => {\n if (activeMonomerGroup !== RnaBuilderPresetsItem.Presets && isEditMode) {\n const currentPreset = updatePresetMonomerGroup();\n let presetFullName = newPreset?.name;\n if (!currentPreset.editedName) {\n presetFullName = selectPresetFullName(currentPreset);\n }\n setNewPrest({ ...currentPreset, name: presetFullName });\n }\n }, [activePresetMonomerGroup?.groupItem]);\n\n const scrollToActiveItemInLibrary = (selectedGroup) => {\n if (selectedGroup === RnaBuilderPresetsItem.Presets) {\n scrollToSelectedPreset(newPreset?.name);\n if (newPreset) {\n editor.events.selectPreset.dispatch(newPreset);\n }\n return;\n }\n\n const activeMonomerInSelectedGroup =\n newPreset[monomerGroupToPresetGroup[selectedGroup]];\n\n if (!activeMonomerInSelectedGroup) return;\n scrollToSelectedMonomer(getMonomerUniqueKey(activeMonomerInSelectedGroup));\n };\n\n const selectGroup = (selectedGroup) => () => {\n const selectedRNAPartMonomer = selectCurrentMonomerGroup(\n newPreset,\n selectedGroup,\n );\n if (selectedRNAPartMonomer) {\n editor.events.selectMonomer.dispatch(selectedRNAPartMonomer);\n }\n scrollToActiveItemInLibrary(selectedGroup);\n dispatch(setActiveRnaBuilderItem(selectedGroup));\n };\n\n const onChangeName = (event: ChangeEvent<HTMLInputElement>) => {\n if (isEditMode) {\n const newPresetName = event.target.value;\n if (newPresetName.trim() !== '') {\n setNewPrest({\n ...newPreset,\n name: newPresetName.trim(),\n editedName: true,\n });\n }\n }\n };\n\n const onSave = () => {\n if (!newPreset?.name) {\n return;\n }\n const presetWithSameName = presets.find(\n (preset) => preset.name === newPreset.name,\n );\n if (\n presetWithSameName &&\n activePreset.presetInList !== presetWithSameName\n ) {\n dispatch(setUniqueNameError(newPreset.name));\n return;\n }\n dispatch(setActivePreset(newPreset));\n dispatch(savePreset(newPreset));\n editor.events.selectPreset.dispatch(newPreset);\n setTimeout(() => {\n scrollToSelectedPreset(newPreset.name);\n }, 0);\n dispatch(setIsEditMode(false));\n dispatch(setActivePresetMonomerGroup(null));\n };\n\n const onCancel = () => {\n setNewPrest(activePreset);\n dispatch(setIsEditMode(false));\n dispatch(setActivePresetMonomerGroup(null));\n };\n\n const turnOnEditMode = () => {\n dispatch(setIsEditMode(true));\n };\n\n const getMonomerName = (groupName: string) => {\n if (\n activePresetMonomerGroup &&\n activePresetMonomerGroup.groupName === groupName\n ) {\n return activePresetMonomerGroup.groupItem.label;\n }\n return (\n selectCurrentMonomerGroup(newPreset, groupName)?.label ||\n selectCurrentMonomerGroup(newPreset, groupName)?.props.MonomerName\n );\n };\n\n let mainButton;\n\n if (!activePreset.presetInList) {\n mainButton = (\n <StyledButton\n disabled={!selectIsPresetReadyToSave(newPreset)}\n primary\n data-testid=\"add-to-presets-btn\"\n onClick={onSave}\n >\n Add to Presets\n </StyledButton>\n );\n } else if (isEditMode) {\n mainButton = (\n <StyledButton primary data-testid=\"save-btn\" onClick={onSave}>\n Save\n </StyledButton>\n );\n } else {\n mainButton = (\n <StyledButton\n data-testid=\"edit-btn\"\n onClick={turnOnEditMode}\n disabled={activePreset.default}\n >\n Edit\n </StyledButton>\n );\n }\n\n return (\n <RnaEditorExpandedContainer data-testid=\"rna-editor-expanded\">\n <NameContainer\n selected={activeMonomerGroup === RnaBuilderPresetsItem.Presets}\n onClick={() => selectGroup(RnaBuilderPresetsItem.Presets)}\n >\n {isEditMode ? (\n <NameInput\n value={newPreset?.name}\n placeholder=\"Name your structure\"\n onChange={onChangeName}\n />\n ) : (\n <PresetName>{newPreset?.name}</PresetName>\n )}\n <NameLine\n selected={activeMonomerGroup === RnaBuilderPresetsItem.Presets}\n />\n </NameContainer>\n <GroupsContainer>\n {groupsData.map(({ groupName, iconName, testId }) => {\n return (\n <GroupBlock\n key={groupName}\n selected={activeMonomerGroup === groupName}\n groupName={groupName}\n monomerName={getMonomerName(groupName)}\n iconName={iconName}\n testid={testId}\n onClick={selectGroup(groupName)}\n />\n );\n })}\n </GroupsContainer>\n <ButtonsContainer>\n {isEditMode ? (\n <StyledButton data-testid=\"cancel-btn\" onClick={onCancel}>\n Cancel\n </StyledButton>\n ) : (\n <StyledButton\n data-testid=\"duplicate-btn\"\n disabled={!selectIsPresetReadyToSave(newPreset)}\n onClick={() => onDuplicate(newPreset)}\n >\n Duplicate and Edit\n </StyledButton>\n )}\n {mainButton}\n </ButtonsContainer>\n </RnaEditorExpandedContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { Button, Icon } from 'ketcher-react';\n\nexport const RnaEditorContainer = styled.div((props) => ({\n borderRadius: props.theme.ketcher.border.radius.regular,\n backgroundColor: '#F7F9FA',\n boxShadow: props.theme.ketcher.shadow.regular,\n overflow: 'hidden',\n margin: '12px',\n flexShrink: 0,\n}));\n\nexport const StyledHeader = styled.div((props) => ({\n height: '32px',\n backgroundColor: '#fff',\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: '10px',\n fontSize: props.theme.ketcher.font.size.regular,\n}));\n\nexport const ExpandButton = styled(Button)({\n width: '32px',\n height: '100%',\n outline: 'none',\n borderRadius: '0',\n padding: '0',\n});\n\nexport const ExpandIcon = styled(Icon)<{ expanded?: boolean }>(\n {\n height: '16px',\n width: '16px',\n },\n ({ expanded }) => ({\n transform: expanded ? 'rotate(180deg)' : 'none',\n }),\n);\n","export const scrollToElement = (selector) => {\n const element = document.body.querySelector(selector);\n element?.scrollIntoView({ behavior: 'smooth' });\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { useEffect, useState } from 'react';\nimport { RnaEditorCollapsed } from './RnaEditorCollapsed';\nimport { RnaEditorExpanded } from './RnaEditorExpanded';\nimport {\n ExpandButton,\n ExpandIcon,\n RnaEditorContainer,\n StyledHeader,\n} from './styles';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport {\n createNewPreset,\n RnaBuilderPresetsItem,\n selectActivePreset,\n selectIsEditMode,\n selectPresetFullName,\n setActiveRnaBuilderItem,\n setIsEditMode,\n} from 'state/rna-builder';\nimport { scrollToElement } from 'helpers/dom';\n\nexport const scrollToSelectedPreset = (presetName) => {\n scrollToElement(`[data-rna-preset-item-name=\"${presetName}\"]`);\n};\n\nexport const scrollToSelectedMonomer = (monomerId) => {\n scrollToElement(`[data-monomer-item-id=\"${monomerId}\"]`);\n};\n\nexport const RnaEditor = ({ duplicatePreset }) => {\n const activePreset = useAppSelector(selectActivePreset);\n const isEditMode = useAppSelector(selectIsEditMode);\n const activePresetFullName = selectPresetFullName(activePreset);\n\n const dispatch = useAppDispatch();\n\n const [expanded, setExpanded] = useState(false);\n\n useEffect(() => {\n if (activePreset) {\n if (activePreset.name || isEditMode) setExpanded(true);\n return;\n }\n\n dispatch(createNewPreset());\n dispatch(setActiveRnaBuilderItem(RnaBuilderPresetsItem.Presets));\n }, [activePreset]);\n\n const expandEditor = () => {\n setExpanded(!expanded);\n if (!activePreset?.presetInList) {\n dispatch(setIsEditMode(true));\n }\n };\n\n return (\n <RnaEditorContainer>\n <StyledHeader>\n RNA Builder\n <ExpandButton onClick={expandEditor}>\n <ExpandIcon expanded={expanded} name=\"chevron\" />\n </ExpandButton>\n </StyledHeader>\n {activePreset ? (\n expanded ? (\n <RnaEditorExpanded\n isEditMode={isEditMode}\n onDuplicate={duplicatePreset}\n />\n ) : (\n <RnaEditorCollapsed\n name={activePreset.name}\n fullName={activePresetFullName}\n />\n )\n ) : (\n <></>\n )}\n </RnaEditorContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\nexport const RnaBuilderContainer = styled.div({\n height: '100%',\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n});\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { ThemeType } from 'theming/defaultTheme';\nimport { css } from '@emotion/react';\n\nexport const scrollbarThin = ({ ketcher: theme }: ThemeType) => css`\n scrollbar-width: thin;\n scrollbar-color: ${theme.color.scroll.regular} ${theme.color.scroll.inactive};\n &::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n background-color: ${theme.color.scroll.inactive};\n border-radius: 2px;\n -webkit-border-radius: 2px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ${theme.color.scroll.regular};\n border-radius: 2px;\n -webkit-border-radius: 2px;\n }\n &::-webkit-scrollbar-thumb:active {\n background-color: ${theme.color.scroll.regular};\n }\n`;\n","import {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n} from '@mui/material';\nimport React, { useMemo } from 'react';\nimport { useTheme } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { Icon } from 'ketcher-react';\nimport { scrollbarThin } from 'theming/mixins';\nimport { EmptyFunction } from 'helpers/emptyFunction';\nimport styles from './Modal.module.less';\n\ninterface ModalProps {\n children: JSX.Element | Array<JSX.Element>;\n title: string;\n isOpen: boolean;\n showCloseButton?: boolean;\n showExpandButton?: boolean;\n onClose: VoidFunction;\n className?: string;\n modalWidth?: string;\n expanded?: boolean;\n setExpanded?: (boolean) => void;\n}\nconst StyledDialog = styled(Dialog)`\n .MuiPaper-root {\n min-width: 304px;\n }\n`;\n\nconst Header = styled(DialogTitle)(({ theme }) => ({\n padding: '2px 4px 2px 12px;',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n fontFamily: `${theme.ketcher.font.family.inter}`,\n fontSize: `${theme.ketcher.font.size.medium}`,\n fontWeight: 500,\n textTransform: 'capitalize',\n borderBottom: '1px solid rgba(202, 211, 221, 1)',\n}));\n\nconst Title = styled.div({\n marginRight: '10px',\n fontSize: '14px',\n});\n\nconst StyledIcon = styled(Icon)({\n width: '16px',\n height: '16px',\n color: 'rgba(51, 51, 51, 1)',\n});\n\nconst Content = styled(DialogContent)`\n padding: 0;\n font-size: ${({ theme }) => theme.ketcher.font.size.medium};\n line-height: 17px;\n color: #000000;\n ${({ theme }) => scrollbarThin(theme)};\n`;\n\ninterface FooterProps {\n withborder?: string;\n}\n\nconst Footer = styled(DialogActions)<FooterProps>`\n height: 52px;\n margin: 0;\n padding: 0 12px;\n border-top: ${({ theme, withborder }) =>\n withborder === 'true' ? theme.ketcher.border.small : 'none'};\n justify-content: flex-end;\n\n .MuiButtonBase-root {\n border-radius: 4px;\n font-size: ${({ theme }) => theme.ketcher.font.size.regular};\n }\n`;\n\ntype ModalSubcomponent = 'Content' | 'Footer';\n\nexport const Modal = ({\n children,\n title,\n isOpen,\n showCloseButton = true,\n showExpandButton = false,\n onClose,\n className,\n modalWidth,\n expanded = false,\n setExpanded = EmptyFunction,\n}: ModalProps) => {\n const theme = useTheme();\n\n const paperProps = useMemo(\n () => ({\n style: {\n background: theme.ketcher.color.background.primary,\n borderRadius: '8px',\n color: theme.ketcher.color.text.primary,\n ...(showExpandButton && {\n margin: 'auto',\n width: expanded ? '100%' : modalWidth,\n height: expanded ? '100%' : undefined,\n maxWidth: 'calc(min(1280px, 100%))',\n maxHeight: 'calc(min(980px, 100%))',\n }),\n },\n }),\n [\n theme.ketcher.color.text.primary,\n theme.ketcher.color.background.canvas,\n expanded,\n ],\n );\n\n const backdropProps = useMemo(\n () => ({\n style: {\n background: theme.ketcher.color.background.overlay,\n opacity: 0.4,\n },\n }),\n [theme.ketcher.color.background.overlay],\n );\n\n const subcomponents: Record<ModalSubcomponent, JSX.Element | null> = {\n Content: null,\n Footer: null,\n };\n\n React.Children.forEach(children, (child) => {\n if (child.type === Content) {\n subcomponents.Content = child;\n } else if (child.type === Footer) {\n subcomponents.Footer = child;\n }\n });\n\n return (\n <StyledDialog\n BackdropProps={backdropProps}\n PaperProps={paperProps}\n open={isOpen}\n onClose={onClose}\n disableEscapeKeyDown={!showCloseButton}\n className={className}\n sx={{ padding: '24px' }}\n >\n {title || showCloseButton || showExpandButton ? (\n <Header>\n <Title>{title}</Title>\n <span>\n {showExpandButton && (\n <IconButton\n title={'expand window'}\n className={styles.expandButton}\n onClick={() => {\n setExpanded(!expanded);\n }}\n >\n <StyledIcon name={expanded ? 'minimize-expansion' : 'expand'} />\n </IconButton>\n )}\n {showCloseButton && (\n <IconButton title={'Close window'} onClick={onClose}>\n <StyledIcon name={'close'} />\n </IconButton>\n )}\n </span>\n </Header>\n ) : (\n ''\n )}\n\n {subcomponents.Content}\n\n {subcomponents.Footer}\n </StyledDialog>\n );\n};\n\nModal.Content = Content;\nModal.Footer = Footer;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { RnaAccordion } from './RnaAccordion';\nimport { RnaEditor } from './RnaEditor';\nimport { RnaBuilderContainer } from './styles';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport { selectUniqueNameError, setUniqueNameError } from 'state/rna-builder';\nimport { Modal } from 'components/shared/modal';\nimport { StyledButton } from 'components/monomerLibrary/RnaBuilder/RnaAccordion/styles';\n\nexport const RnaBuilder = ({ libraryName, duplicatePreset, editPreset }) => {\n const dispatch = useAppDispatch();\n const uniqueNameError = useAppSelector(selectUniqueNameError);\n const closeErrorModal = () => {\n dispatch(setUniqueNameError(''));\n };\n return (\n <RnaBuilderContainer>\n <RnaEditor duplicatePreset={duplicatePreset} />\n <RnaAccordion\n libraryName={libraryName}\n duplicatePreset={duplicatePreset}\n editPreset={editPreset}\n />\n <Modal\n isOpen={!!uniqueNameError}\n title=\"Error Message\"\n onClose={closeErrorModal}\n >\n <Modal.Content>\n Preset with name \"{uniqueNameError}\" already exists. Please choose\n another name.\n </Modal.Content>\n <Modal.Footer>\n <StyledButton onClick={closeErrorModal}>Close</StyledButton>\n </Modal.Footer>\n </Modal>\n </RnaBuilderContainer>\n );\n};\n","import { MONOMER_TYPES, MONOMER_LIBRARY_FAVORITES } from '../../constants';\nimport { MonomerList } from './monomerLibraryList';\nimport { RnaBuilder } from './RnaBuilder';\n\nexport const tabsContent = (duplicatePreset, editPreset) => [\n {\n caption: 'Favorites',\n component: MonomerList,\n testId: 'FAVORITES-TAB',\n props: {\n libraryName: MONOMER_LIBRARY_FAVORITES,\n duplicatePreset,\n editPreset,\n },\n },\n {\n caption: 'Peptides',\n component: MonomerList,\n testId: 'PEPTIDES-TAB',\n props: {\n libraryName: MONOMER_TYPES.PEPTIDE,\n },\n },\n {\n caption: 'RNA',\n testId: 'RNA-TAB',\n component: RnaBuilder,\n props: {\n libraryName: MONOMER_TYPES.RNA,\n duplicatePreset,\n editPreset,\n },\n },\n {\n caption: 'CHEM',\n component: MonomerList,\n testId: 'CHEM-TAB',\n props: {\n libraryName: MONOMER_TYPES.CHEM,\n },\n },\n];\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport React, { ChangeEvent, useRef } from 'react';\nimport { Tabs } from 'components/shared/Tabs';\nimport { tabsContent } from 'components/monomerLibrary/tabsContent';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport { setSearchFilter } from 'state/library';\nimport { Icon } from 'ketcher-react';\nimport { IRnaPreset } from './RnaBuilder/types';\nimport {\n savePreset,\n selectPresets,\n setActivePreset,\n setIsEditMode,\n setUniqueNameError,\n} from 'state/rna-builder';\nimport { scrollToSelectedPreset } from './RnaBuilder/RnaEditor/RnaEditor';\nimport {\n MonomerLibraryContainer,\n MonomerLibraryHeader,\n MonomerLibrarySearch,\n MonomerLibraryTitle,\n} from './styles';\n\nconst MonomerLibrary = React.memo(() => {\n const presetsRef = useRef<IRnaPreset[]>([]);\n const dispatch = useAppDispatch();\n useAppSelector(selectPresets, (presets) => {\n presetsRef.current = presets;\n return true;\n });\n const filterResults = (event: ChangeEvent<HTMLInputElement>) => {\n dispatch(setSearchFilter(event.target.value));\n };\n\n const duplicatePreset = (preset?: IRnaPreset) => {\n const name = `${preset?.name}_Copy`;\n const presetWithSameName = presetsRef.current.find(\n (preset) => preset.name === name,\n );\n if (presetWithSameName) {\n dispatch(setUniqueNameError(name));\n return;\n }\n\n const duplicatedPreset = {\n ...preset,\n presetInList: undefined,\n name: presetWithSameName ? `${name}_Copy` : name,\n default: false,\n favorite: false,\n };\n dispatch(setActivePreset(duplicatedPreset));\n dispatch(savePreset(duplicatedPreset));\n dispatch(setIsEditMode(true));\n scrollToSelectedPreset(preset?.name);\n };\n\n const editPreset = (preset: IRnaPreset) => {\n dispatch(setActivePreset(preset));\n dispatch(setIsEditMode(true));\n };\n\n return (\n <MonomerLibraryContainer data-testid=\"monomer-library\">\n <MonomerLibraryHeader>\n <MonomerLibraryTitle>Library</MonomerLibraryTitle>\n <MonomerLibrarySearch>\n <div>\n <span>\n <Icon name=\"search\" />\n </span>\n <input\n data-testid=\"monomer-library-input\"\n onInput={filterResults}\n placeholder=\"Search by name...\"\n type=\"text\"\n />\n </div>\n </MonomerLibrarySearch>\n </MonomerLibraryHeader>\n <Tabs tabs={tabsContent(duplicatePreset, editPreset)} />\n </MonomerLibraryContainer>\n );\n});\n\nexport { MonomerLibrary };\n","import styled from '@emotion/styled';\nimport { Icon } from 'ketcher-react';\n\nconst StyledMonomerLibraryToggle = styled.div(({ theme }) => {\n return {\n margin: 0,\n fontSize: theme.ketcher.font.size.regular,\n color: theme.ketcher.color.text.secondary,\n position: 'absolute',\n cursor: 'pointer',\n top: 'calc(8px + 12px)',\n right: 'calc(4px + 12px)',\n visibility: 'visible',\n opacity: 1,\n whiteSpace: 'nowrap',\n display: 'flex',\n lineHeight: 1,\n padding: '5px 8px',\n borderRadius: '4px',\n userSelect: 'none',\n\n '& > span': {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n\n '&.icon': {\n marginRight: '2px',\n },\n },\n\n '&.hidden': {\n backgroundColor: theme.ketcher.color.button.primary.active,\n color: theme.ketcher.color.button.text.primary,\n },\n };\n});\n\ninterface Props {\n isHidden: boolean;\n onClick: () => void;\n}\n\nconst MonomerLibraryToggle = ({ isHidden, onClick }: Props) => {\n return (\n <StyledMonomerLibraryToggle\n className={isHidden ? 'hidden' : ''}\n onClick={onClick}\n >\n <span className=\"icon\">\n {isHidden ? <Icon name=\"arrows-left\" /> : <Icon name=\"arrows-right\" />}\n </span>\n <span>{isHidden ? 'Show Library' : 'Hide'}</span>\n </StyledMonomerLibraryToggle>\n );\n};\n\nexport { MonomerLibraryToggle };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport React from 'react';\n\nexport interface IMenuContext {\n isActive: (item: string) => boolean;\n activate: (item: string) => void;\n}\n\nconst MenuContext = React.createContext<IMenuContext>({} as IMenuContext);\n\nexport default MenuContext;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport MenuContext from '../contexts/menuContext';\nimport React from 'react';\n\nexport const useMenuContext = () => React.useContext(MenuContext);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\nimport { IconButton } from 'ketcher-react';\n\nexport const StyledIconButton = styled(IconButton)`\n margin: 2px;\n outline: none;\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { type IconName } from 'ketcher-react';\nimport { useMenuContext } from '../../../hooks/useMenuContext';\nimport { useCallback } from 'react';\nimport { StyledIconButton } from './styles';\n\ntype MenuItemProp = {\n itemId: IconName;\n title?: string;\n testId?: string;\n};\n\nconst MenuItem = ({ itemId, title = '', testId }: MenuItemProp) => {\n const { isActive, activate } = useMenuContext();\n\n const onClickCallback = useCallback(() => {\n activate(itemId);\n }, [activate, itemId]);\n\n const isActiveItem = isActive(itemId);\n const activeClass = isActiveItem ? ' active' : '';\n\n return (\n <StyledIconButton\n title={title}\n className={itemId + activeClass}\n isActive={isActiveItem}\n onClick={onClickCallback}\n iconName={itemId}\n testId={testId}\n />\n );\n};\n\nexport { MenuItem };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { Collapse } from '@mui/material';\nimport { Icon } from 'ketcher-react';\n\nimport { IStyledDropdownIconProps, OptionsContainerProps } from './types';\n\nexport const StyledDropdownIcon = styled(Icon, {\n shouldForwardProp: (prop) => prop !== 'isActive',\n})<IStyledDropdownIconProps>`\n position: absolute;\n height: 7px;\n width: 7px;\n right: 2px;\n bottom: 2px;\n cursor: pointer;\n\n path {\n fill: ${({ isActive }) => (isActive ? 'white' : undefined)};\n }\n`;\n\nexport const RootContainer = styled.div`\n display: flex;\n position: relative;\n\n &:active {\n .dropdown {\n fill: white;\n }\n }\n`;\n\nexport const OptionsContainer = styled.div<OptionsContainerProps>`\n display: flex;\n position: absolute;\n left: 5px;\n border-radius: 2px;\n flex-direction: ${({ isVertical }) => (isVertical ? 'column' : 'row')};\n`;\n\nexport const OptionsItemsCollapse = styled(Collapse)`\n position: relative;\n`;\n\nexport const VisibleItem = styled.div`\n display: flex;\n align-items: center;\n position: relative;\n width: 32px;\n height: 32px;\n padding: 0;\n justify-content: center;\n border-radius: 2px;\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport React, { useState } from 'react';\nimport { ClickAwayListener } from '@mui/material';\nimport { MenuItem } from '../menuItem';\nimport { useMenuContext } from '../../../hooks/useMenuContext';\nimport {\n OptionsContainer,\n OptionsItemsCollapse,\n RootContainer,\n StyledDropdownIcon,\n VisibleItem,\n} from './styles';\n\ntype SubMenuProps = {\n vertical?: boolean;\n};\n\nconst SubMenu = ({\n children,\n vertical = false,\n}: React.PropsWithChildren<SubMenuProps>) => {\n const [open, setOpen] = useState(false);\n const { isActive } = useMenuContext();\n\n const handleDropDownClick = () => {\n setOpen((prev) => !prev);\n };\n\n const hideCollapse = () => {\n open && setOpen(false);\n };\n\n const subComponents = React.Children.map(\n children as JSX.Element[],\n (child) => {\n return child.type === MenuItem ? child : null;\n },\n );\n\n const options = subComponents\n .map((item) => item.props.itemId)\n .filter((item) => item);\n const activeOption = options.filter((itemKey) => isActive(itemKey));\n const visibleItemId = activeOption.length ? activeOption[0] : options[0];\n const visibleItemTitle = subComponents.find(\n (option) => option.props.itemId === visibleItemId,\n )?.props.title;\n\n return (\n <RootContainer>\n <VisibleItem>\n <MenuItem itemId={visibleItemId} title={visibleItemTitle} />\n {open || (\n <StyledDropdownIcon\n className=\"dropdown\"\n name=\"dropdown\"\n onClick={handleDropDownClick}\n isActive={isActive(visibleItemId)}\n />\n )}\n </VisibleItem>\n <OptionsItemsCollapse\n in={open}\n timeout=\"auto\"\n unmountOnExit\n onClick={hideCollapse}\n >\n <ClickAwayListener onClickAway={hideCollapse}>\n <OptionsContainer isVertical={vertical}>\n {subComponents.map((component) => component)}\n </OptionsContainer>\n </ClickAwayListener>\n </OptionsItemsCollapse>\n </RootContainer>\n );\n};\n\nexport { SubMenu };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\nexport const MenuLayout = styled.div`\n background-color: ${({ theme }) => theme.ketcher.color.background.primary};\n border-radius: 4px;\n`;\n\nexport const Divider = styled.span`\n display: block;\n height: 8px;\n width: 32px;\n border-top: 1px solid;\n border-color: ${({ theme }) => theme.ketcher.color.divider};\n`;\n\nexport const StyledGroup = styled.div`\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n align-items: center;\n background-color: ${({ theme }) => theme.ketcher.color.background.primary};\n border-radius: 2px;\n width: 32px;\n margin-bottom: 8px;\n\n > * {\n margin-bottom: 8px;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport React from 'react';\nimport { MenuItem } from './menuItem';\nimport { SubMenu } from './subMenu';\nimport { IMenuContext, MenuContext } from '../../contexts';\nimport { Divider, MenuLayout, StyledGroup } from './styles';\nimport { GroupProps, MenuProps } from './types';\n\nconst Group = ({\n children,\n divider = false,\n}: React.PropsWithChildren<GroupProps>) => {\n const subComponents = React.Children.map(\n children as JSX.Element[],\n (child) => {\n return child.type === MenuItem || child.type === SubMenu ? child : null;\n },\n );\n\n return (\n <>\n <StyledGroup>{subComponents.map((component) => component)}</StyledGroup>\n {divider && <Divider />}\n </>\n );\n};\n\nconst Menu = ({\n children,\n onItemClick,\n activeMenuItems,\n testId,\n}: React.PropsWithChildren<MenuProps>) => {\n const context = React.useMemo<IMenuContext>(\n () => ({\n isActive: (itemKey) =>\n activeMenuItems ? activeMenuItems.includes(itemKey) : false,\n activate: (itemKey) => {\n onItemClick(itemKey);\n },\n }),\n [activeMenuItems, onItemClick],\n );\n\n const subComponents = React.Children.map(\n children as JSX.Element[],\n (child) => {\n return child.type === Group ? child : null;\n },\n );\n\n return (\n <MenuContext.Provider value={context}>\n <MenuLayout data-testid={testId}>\n {subComponents.map((component) => component)}\n </MenuLayout>\n </MenuContext.Provider>\n );\n};\n\nMenu.Group = Group;\nMenu.Item = MenuItem;\nMenu.Submenu = SubMenu;\n\nexport { Menu, MenuContext };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport styled from '@emotion/styled';\n\nconst LoadContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n width: 40px;\n height: 12px;\n margin-top: 10px;\n\n & span {\n display: inline-block;\n width: 8px;\n height: 8px;\n border: 2px solid ${({ theme }) => theme.ketcher.color.spinner};\n border-radius: 100%;\n box-sizing: border-box;\n\n &:nth-of-type(1) {\n animation: bounce 1s ease-in-out infinite;\n }\n\n &:nth-of-type(2) {\n animation: bounce 1s ease-in-out 0.33s infinite;\n }\n\n &:nth-of-type(3) {\n animation: bounce 1s ease-in-out 0.66s infinite;\n }\n }\n\n @keyframes bounce {\n 0%,\n 75%,\n 100% {\n -webkit-transform: translateY(0);\n -ms-transform: translateY(0);\n -o-transform: translateY(0);\n transform: translateY(0);\n }\n\n 25% {\n -webkit-transform: translateY(-100%);\n -ms-transform: translateY(-100%);\n -o-transform: translateY(-100%);\n transform: translateY(-100%);\n }\n }\n`;\nexport const LoadingCircles = () => (\n <LoadContainer>\n <span />\n <span />\n <span />\n </LoadContainer>\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { Icon } from 'ketcher-react';\nimport { LoadingCircles } from './LoadingCircles';\nimport styled from '@emotion/styled';\n\nexport type AnalyzingFileProps = {\n fileName?: string;\n};\n\nconst ICON_NAME = 'file-thumbnail';\n\nconst RootContainer = styled.div`\n width: 410px;\n min-height: 23em;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst FileBox = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n svg {\n margin-right: 13px;\n }\n\n p {\n color: #585858;\n font-size: 16px;\n line-height: 19px;\n }\n`;\n\nexport const AnalyzingFile = ({ fileName }: AnalyzingFileProps) => {\n return (\n <RootContainer>\n {fileName && (\n <FileBox>\n <Icon name={ICON_NAME} />\n <p>{fileName}</p>\n </FileBox>\n )}\n <LoadingCircles />\n </RootContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { useDropzone, DropzoneOptions } from 'react-dropzone';\nimport { Icon, IconName } from 'ketcher-react';\nimport React, { useMemo } from 'react';\nimport styled from '@emotion/styled';\nimport { OpenOptionText, DisabledText } from '../OpenOptions';\n\nexport type FileDropProps = {\n buttonLabel: string;\n textLabel: string;\n iconName: IconName;\n disabled?: boolean;\n disabledText?: string;\n} & DropzoneOptions;\n\nconst baseStyle = {\n width: '100%',\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'column',\n justifyContent: 'space-between',\n};\n\ninterface StyledIconProps {\n disabled?: boolean;\n}\n\nconst StyledIcon = styled(Icon)<StyledIconProps>`\n filter: ${({ disabled }) => (disabled ? 'grayscale(1)' : '')};\n opacity: ${({ disabled }) => (disabled ? '0.6' : '1')};\n`;\n\nconst activeStyle = {\n backgroundColor: '#F8FEFFFF',\n};\n\nconst ButtonContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & > span {\n font-size: ${({ theme }) => theme.ketcher.font.size.small};\n color: ${({ theme }) => theme.ketcher.color.text.primary};\n opacity: 50%;\n }\n & > svg {\n margin-bottom: 8px;\n }\n`;\n\nconst FileDrop = ({\n textLabel,\n iconName,\n disabled,\n disabledText,\n ...rest\n}: FileDropProps) => {\n const { getRootProps, getInputProps, isDragActive, open } = useDropzone({\n multiple: false,\n noClick: true,\n disabled,\n ...rest,\n });\n\n const style = useMemo(\n () => ({\n ...baseStyle,\n ...(isDragActive ? activeStyle : {}),\n }),\n [isDragActive],\n ) as React.CSSProperties;\n\n return (\n <div {...getRootProps({ style })} onClick={open}>\n <input {...getInputProps()} />\n <StyledIcon name={iconName} disabled={disabled} />\n {disabled ? (\n <DisabledText>{disabledText}</DisabledText>\n ) : (\n <>\n <ButtonContainer>\n {textLabel && <span>{textLabel}</span>}\n </ButtonContainer>\n <OpenOptionText>Open from file</OpenOptionText>\n </>\n )}\n </div>\n );\n};\n\nexport { FileDrop };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { Icon, IconName } from 'ketcher-react';\nimport styled from '@emotion/styled';\nimport { FileDrop } from './FileDrop';\n\nconst ICON_NAMES: Record<string, IconName> = {\n PASTE: 'open-window-paste-icon',\n FILE: 'open-window-upload-icon',\n IMAGE: 'image-frame',\n} as const;\n\nexport type OpenOptionsProps = {\n selectClipboard: () => void;\n errorHandler: (err: string) => void;\n fileLoadHandler: (files: File[]) => void;\n};\n\nexport const OpenOptionText = styled.p`\n font-size: 10px;\n text-transform: uppercase;\n color: ${({ theme }) => theme.ketcher.color.text.light};\n margin: 0;\n text-align: center;\n line-height: 12px;\n`;\n\nexport const DisabledText = styled.p`\n font-size: 10px;\n margin: 0;\n text-align: center;\n color: ${({ theme }) => theme.ketcher.color.text.primary};\n opacity: 50%;\n line-height: 12px;\n`;\n\nconst RootContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: flex-start;\n margin-bottom: 20px;\n & > * {\n margin-right: 18px;\n }\n\n & :last-child {\n margin-right: 0;\n }\n`;\n\nconst DropContainer = styled.div`\n width: 128px;\n height: 134px;\n box-shadow: 0 4px 12px rgba(103, 104, 132, 0.18);\n padding: 16px;\n border-radius: 12px;\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n position: relative;\n cursor: pointer;\n\n & > p {\n margin-top: 6px;\n text-align: center;\n }\n\n svg {\n fill: ${({ theme }) => theme.ketcher.color.button.primary.active};\n }\n`;\n\nconst OpenOptions = ({\n selectClipboard,\n fileLoadHandler,\n errorHandler,\n}: OpenOptionsProps) => {\n return (\n <RootContainer>\n <DropContainer\n data-testid=\"paste-from-clipboard-button\"\n onClick={selectClipboard}\n >\n <Icon name={ICON_NAMES.PASTE} />\n <OpenOptionText>Paste from clipboard</OpenOptionText>\n </DropContainer>\n <DropContainer>\n <FileDrop\n onDropAccepted={fileLoadHandler}\n onDropRejected={(e) => errorHandler(`Unable to accept file(s). ${e}`)}\n buttonLabel=\"Open from file\"\n textLabel=\"or drag file here\"\n iconName={ICON_NAMES.FILE}\n />\n </DropContainer>\n <DropContainer>\n <FileDrop\n accept=\"image/*\"\n onDropAccepted={fileLoadHandler}\n onDropRejected={(e) => errorHandler(`Unable to accept file(s). ${e}`)}\n buttonLabel=\"Open from image\"\n textLabel=\"or drag file here\"\n iconName={ICON_NAMES.IMAGE}\n disabled\n disabledText=\"Image Recognition service is not available\"\n />\n </DropContainer>\n </RootContainer>\n );\n};\n\nexport { OpenOptions };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\nimport { scrollbarThin } from 'theming/mixins';\nimport { useEffect, useRef } from 'react';\n\nexport type TextEditorProps = {\n value: string;\n inputHandler?: (str: string) => void;\n readonly?: boolean;\n selectOnInit?: boolean;\n className?: string;\n testId?: string;\n};\n\nconst StyledTextarea = styled.textarea`\n min-width: 430px;\n padding: 12px;\n width: 100%;\n height: 100%;\n overflow: auto;\n white-space: pre;\n resize: none;\n box-sizing: border-box;\n outline: transparent;\n border: none;\n color: ${({ theme }) => theme.ketcher.color.input.text.active};\n font-size: ${({ theme }) => theme.ketcher.font.size.regular};\n background-color: ${({ theme, readOnly }) =>\n readOnly\n ? theme.ketcher.color.input.background.disabled\n : theme.ketcher.color.input.background.primary};\n\n ${({ theme }) => scrollbarThin(theme)};\n`;\n\nexport const TextArea = ({\n value,\n inputHandler,\n readonly = false,\n selectOnInit = false,\n className,\n testId,\n}: TextEditorProps) => {\n const textArea = useRef<HTMLTextAreaElement>(null);\n\n useEffect(() => {\n if (selectOnInit) {\n textArea.current?.select();\n }\n }, [textArea, value, selectOnInit]);\n\n return (\n <StyledTextarea\n value={value}\n readOnly={readonly}\n onChange={inputHandler && ((event) => inputHandler(event.target.value))}\n ref={textArea}\n className={className}\n data-testid={testId}\n />\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { AnalyzingFile, AnalyzingFileProps } from '../AnalyzingFile';\nimport { OpenOptions, OpenOptionsProps } from '../OpenOptions';\nimport { TextEditorProps, TextArea } from '../../../shared/TextArea';\nimport styled from '@emotion/styled';\n\ntype ViewStates = {\n openOptions: string;\n textEditor: string;\n};\n\ntype SwitchProps = {\n currentState: string;\n states: ViewStates;\n isAnalyzingFile: boolean;\n} & OpenOptionsProps &\n TextEditorProps &\n AnalyzingFileProps;\n\nconst StyledTextField = styled(TextArea)`\n width: 405px;\n height: 320px;\n`;\n\nexport const ViewSwitcher = (props: SwitchProps) => {\n if (props.isAnalyzingFile) {\n return <AnalyzingFile fileName={props.fileName} />;\n } else {\n switch (props.currentState) {\n case props.states.openOptions:\n return <OpenOptions {...props} />;\n case props.states.textEditor:\n return <StyledTextField testId=\"open-structure-textarea\" {...props} />;\n default:\n return null;\n }\n }\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport MuiButton, { ButtonBaseProps } from '@mui/material/ButtonBase';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\nconst baseButtonStyle = css({\n padding: '5px 8px',\n borderRadius: '2px',\n textTransform: 'none',\n lineHeight: '14px',\n fontSize: '12px',\n textAlign: 'center',\n\n '&.MuiButtonBase-root': {\n width: 'unset',\n minWidth: '70px',\n },\n});\n\nconst PrimaryButton = styled(MuiButton)(\n ({ theme }) => ({\n backgroundColor: theme.ketcher.color.button.primary.active,\n border: `1px solid ${theme.ketcher.color.button.primary.active}`,\n color: 'rgb(245, 245, 245)',\n fontWeight: theme.ketcher.font.weight.regular,\n width: '62px',\n height: '24px',\n\n '&:hover': {\n backgroundColor: theme.ketcher.color.button.primary.hover,\n },\n\n '&:disabled': {\n background: theme.ketcher.color.button.primary.disabled,\n border: `1px solid transparent`,\n opacity: 0.4,\n },\n }),\n baseButtonStyle,\n);\n\nconst SecondaryButton = styled(MuiButton)(\n ({ theme }) => ({\n backgroundColor: 'transparent',\n border: `1px solid ${theme.ketcher.color.button.secondary.active}`,\n color: theme.ketcher.color.button.secondary.active,\n fontWeight: theme.ketcher.font.weight.regular,\n width: '72px',\n height: '24px',\n\n '&:hover': {\n border: `1px solid ${theme.ketcher.color.button.secondary.hover}`,\n color: theme.ketcher.color.button.secondary.hover,\n },\n\n '&:disabled': {\n border: `1px solid ${theme.ketcher.color.button.secondary.disabled}`,\n color: theme.ketcher.color.button.secondary.disabled,\n },\n\n '&:clicked': {\n border: `1px solid ${theme.ketcher.color.button.secondary.clicked}`,\n color: theme.ketcher.color.button.secondary.clicked,\n },\n }),\n baseButtonStyle,\n);\n\ntype ActionButtonProps = {\n label: string;\n clickHandler: () => void;\n styleType?: string;\n} & ButtonBaseProps;\n\nexport const ActionButton = ({\n label,\n clickHandler,\n children,\n styleType,\n ...rest\n}: ActionButtonProps) => {\n return styleType === 'secondary' ? (\n <SecondaryButton\n onClick={clickHandler}\n title={rest.title || label}\n role=\"button\"\n {...rest}\n >\n {children || label}\n </SecondaryButton>\n ) : (\n <PrimaryButton\n onClick={clickHandler}\n title={rest.title || label}\n role=\"button\"\n {...rest}\n >\n {children || label}\n </PrimaryButton>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport type FileOpener = typeof throughFileReader;\n\nexport function fileOpener() {\n return new Promise<FileOpener>((resolve, reject) => {\n if (global.FileReader) {\n resolve(throughFileReader);\n } else {\n reject(new Error('Your browser does not support opening files locally'));\n }\n });\n}\n\nfunction throughFileReader(file: File) {\n return new Promise((resolve, reject) => {\n const rd = new FileReader();\n\n rd.onload = () => {\n const content = rd.result;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore msClose doesn't exist in File type\n if (file.msClose) file.msClose();\n resolve(content);\n };\n\n rd.onerror = (event) => {\n reject(event);\n };\n\n rd.readAsText(file, 'UTF-8');\n });\n}\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\nvar test = {\n\tfoo: {}\n};\n\nvar $Object = Object;\n\nmodule.exports = function hasProto() {\n\treturn { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object);\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {(o: {}, p: PropertyKey) => p is keyof o} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar gopd = require('gopd');\n\n/** @type {(obj: Record<PropertyKey, unknown>, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $floor = GetIntrinsic('%Math.floor%');\n\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(fn, 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(fn, 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\nvar possibleNames = [\n\t'BigInt64Array',\n\t'BigUint64Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Int8Array',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray'\n];\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\nmodule.exports = function availableTypedArrays() {\n\tvar out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, typedArray) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t}\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nvar trySlices = function tryAllSlices(value) {\n\tvar found = false;\n\tforEach(cache, function (getter, name) {\n\t\tif (!found) {\n\t\t\ttry {\n\t\t\t\tgetter(value);\n\t\t\t\tfound = $slice(name, 1);\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn found;\n};\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","module.exports = function isBuffer(arg) {\n return arg instanceof Buffer;\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","try {\n var util = require('util');\n /* istanbul ignore next */\n if (typeof util.inherits !== 'function') throw '';\n module.exports = util.inherits;\n} catch (e) {\n /* istanbul ignore next */\n module.exports = require('./inherits_browser.js');\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n/* eslint node-core/alphabetize-errors: \"error\" */\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n\n'use strict';\n\n// The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nvar codes = {};\n\n// Lazy loaded\nvar assert;\nvar util;\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n var NodeError = /*#__PURE__*/function (_Base) {\n _inherits(NodeError, _Base);\n var _super = _createSuper(NodeError);\n function NodeError(arg1, arg2, arg3) {\n var _this;\n _classCallCheck(this, NodeError);\n _this = _super.call(this, getMessage(arg1, arg2, arg3));\n _this.code = code;\n return _this;\n }\n return _createClass(NodeError);\n }(Base);\n codes[code] = NodeError;\n}\n\n// https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\");\n\n // determiner: 'must be' or 'must not be'\n var determiner;\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n var msg;\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n // TODO(BridgeAR): Improve the output by showing `null` and similar.\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n\n'use strict';\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _require = require('util/'),\n inspect = _require.inspect;\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE;\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n return str.substring(this_len - search.length, this_len) === search;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n while (count) {\n str += str;\n count--;\n }\n str += str.substring(0, maxCount - str.length);\n return str;\n}\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n};\n\n// Comparing short primitives should just show === / !== instead of using the\n// diff.\nvar kMaxShortLength = 10;\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = '';\n\n // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n }\n\n // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length;\n // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n }\n // Ignore the first characters.\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n }\n\n // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n var maxLines = Math.max(actualLines.length, expectedLines.length);\n // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n');\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the expected line to the cache.\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++;\n // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++;\n // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i];\n // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine);\n // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n }\n // Mark the current line as the last diverging one.\n lastPos = i;\n // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2;\n // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = '';\n // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n }\n // Inspected object to big (Show ~20 rows max)\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\nvar AssertionError = /*#__PURE__*/function (_Error, _inspect$custom) {\n _inherits(AssertionError, _Error);\n var _super = _createSuper(AssertionError);\n function AssertionError(options) {\n var _this;\n _classCallCheck(this, AssertionError);\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n if (message != null) {\n _this = _super.call(this, String(message));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n }\n // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _super.call(this, createErrDiff(actual, expected, operator));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n');\n\n // In case \"actual\" is an object, it should not be reference equal.\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n }\n\n // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n while (res.length > 27) {\n res.pop();\n }\n }\n\n // Only print a single input.\n if (res.length === 1) {\n _this = _super.call(this, \"\".concat(base, \" \").concat(res[0]));\n } else {\n _this = _super.call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\"));\n }\n } else {\n var _res = inspectValue(actual);\n var other = '';\n var knownOperators = kReadableOperator[operator];\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n _this = _super.call(this, \"\".concat(_res).concat(other));\n }\n }\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n }\n // Create error message including the error code in the name.\n _this.stack;\n // Reset the name.\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: _inspect$custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread(_objectSpread({}, ctx), {}, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n return AssertionError;\n}( /*#__PURE__*/_wrapNativeSuper(Error), inspect.custom);\nmodule.exports = AssertionError;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar objectKeys = require('object-keys');\nvar hasSymbols = require('has-symbols/shams')();\nvar callBound = require('call-bind/callBound');\nvar toObject = Object;\nvar $push = callBound('Array.prototype.push');\nvar $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable');\nvar originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null;\n\n// eslint-disable-next-line no-unused-vars\nmodule.exports = function assign(target, source1) {\n\tif (target == null) { throw new TypeError('target must be an object'); }\n\tvar to = toObject(target); // step 1\n\tif (arguments.length === 1) {\n\t\treturn to; // step 2\n\t}\n\tfor (var s = 1; s < arguments.length; ++s) {\n\t\tvar from = toObject(arguments[s]); // step 3.a.i\n\n\t\t// step 3.a.ii:\n\t\tvar keys = objectKeys(from);\n\t\tvar getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols);\n\t\tif (getSymbols) {\n\t\t\tvar syms = getSymbols(from);\n\t\t\tfor (var j = 0; j < syms.length; ++j) {\n\t\t\t\tvar key = syms[j];\n\t\t\t\tif ($propIsEnumerable(from, key)) {\n\t\t\t\t\t$push(keys, key);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// step 3.a.iii:\n\t\tfor (var i = 0; i < keys.length; ++i) {\n\t\t\tvar nextKey = keys[i];\n\t\t\tif ($propIsEnumerable(from, nextKey)) { // step 3.a.iii.2\n\t\t\t\tvar propValue = from[nextKey]; // step 3.a.iii.2.a\n\t\t\t\tto[nextKey] = propValue; // step 3.a.iii.2.b\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to; // step 4\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar lacksProperEnumerationOrder = function () {\n\tif (!Object.assign) {\n\t\treturn false;\n\t}\n\t/*\n\t * v8, specifically in node 4.x, has a bug with incorrect property enumeration order\n\t * note: this does not detect the bug unless there's 20 characters\n\t */\n\tvar str = 'abcdefghijklmnopqrst';\n\tvar letters = str.split('');\n\tvar map = {};\n\tfor (var i = 0; i < letters.length; ++i) {\n\t\tmap[letters[i]] = letters[i];\n\t}\n\tvar obj = Object.assign({}, map);\n\tvar actual = '';\n\tfor (var k in obj) {\n\t\tactual += k;\n\t}\n\treturn str !== actual;\n};\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t/*\n\t * Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t * which is 72% slower than our shim, and Firefox 40's native implementation.\n\t */\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n\treturn false;\n};\n\nmodule.exports = function getPolyfill() {\n\tif (!Object.assign) {\n\t\treturn implementation;\n\t}\n\tif (lacksProperEnumerationOrder()) {\n\t\treturn implementation;\n\t}\n\tif (assignHasPendingExceptions()) {\n\t\treturn implementation;\n\t}\n\treturn Object.assign;\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar regexFlagsSupported = /a/g.flags !== undefined;\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n }\n // The maximum size for an array is 2 ** 32 -1.\n return key.length === 10 && key >= Math.pow(2, 32);\n}\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n}\n\n// Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n var x = a.length;\n var y = b.length;\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n if (x < y) {\n return -1;\n }\n if (y < x) {\n return 1;\n }\n return 0;\n}\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3;\n\n// Check if they have the same source and flags\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n return true;\n}\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n}\n\n// Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n }\n\n // Check more closely if val1 and val2 are equal.\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n return false;\n }\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n if (val1Tag !== val2Tag) {\n return false;\n }\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (keys1.length !== keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n }\n // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n }\n // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n if (_keys.length !== _keys2.length) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2);\n\n // The pair must have the same number of owned properties.\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n }\n\n // Cheap key test\n var i = 0;\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n if (symbolKeysA.length !== 0) {\n var count = 0;\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n }\n\n // Use memos to handle cycles.\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n memos.position++;\n }\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n return false;\n}\n\n// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n case 'object':\n // Only pass in null as object!\n return undefined;\n case 'symbol':\n return false;\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n }\n return true;\n}\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) {\n return altValue;\n }\n var curB = b.get(altValue);\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i];\n // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n }\n // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false;\n\n // Fast path to detect missing string, symbol, undefined and null values.\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n if (set === null) {\n set = new Set();\n }\n set.add(val);\n }\n }\n if (set !== null) {\n var bValues = arrayFromSet(b);\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i];\n // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n return false;\n}\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false;\n // Fast path to detect missing string, symbol, undefined and null\n // keys.\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n if (set === null) {\n set = new Set();\n }\n set.add(key);\n }\n }\n }\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n _key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n if (_typeof(_key) === 'object' && _key !== null) {\n if (!mapHasEqualEntry(set, a, _key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(_key) || !innerDeepEqual(a.get(_key), item, false, memo)) && !mapHasEqualEntry(set, a, _key, item, false, memo)) {\n return false;\n }\n }\n return set.size === 0;\n }\n return true;\n}\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n return true;\n }\n }\n }\n\n // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n for (i = 0; i < keys.length; i++) {\n var _key2 = keys[i];\n if (!innerDeepEqual(a[_key2], b[_key2], strict, memos)) {\n return false;\n }\n }\n return true;\n}\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\nvar AssertionError = require('./internal/assert/assertion_error');\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\nvar objectAssign = require('object.assign/polyfill')();\nvar objectIs = require('object-is/polyfill')();\nvar RegExpPrototypeTest = require('call-bind/callBound')('RegExp.prototype.test');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n}\n\n// Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\nvar warned = false;\n\n// The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {};\n\n// All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n if (argsLen === 2) operator = '!=';\n }\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n if (message !== undefined) {\n errArgs.message = message;\n }\n var err = new AssertionError(errArgs);\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n throw err;\n}\nassert.fail = fail;\n\n// The AssertionError is defined in internal/error.\nassert.AssertionError = AssertionError;\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\n\n// Pure assertion tests whether a value is truthy, as determined\n// by !!value.\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\nassert.ok = ok;\n\n// The equality assertion tests shallow, coercive equality with ==.\n/* eslint-disable no-restricted-properties */\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n};\n\n// The non-equality assertion tests for whether two objects are not\n// equal with !=.\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n // eslint-disable-next-line eqeqeq\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n};\n\n// The equivalence assertion tests a deep equality relation.\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n};\n\n// The non-equivalence assertion tests for any deep inequality.\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\nassert.notDeepStrictEqual = notDeepStrictEqual;\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\nvar Comparison = /*#__PURE__*/_createClass(function Comparison(obj, keys, actual) {\n var _this = this;\n _classCallCheck(this, Comparison);\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && RegExpPrototypeTest(obj[key], actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n});\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return RegExpPrototypeTest(expected, actual);\n // assert.doesNotThrow does not accept objects.\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n }\n\n // Handle primitives properly.\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n var keys = Object.keys(expected);\n // Special handle errors to make sure the name and the message are compared\n // as well.\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && RegExpPrototypeTest(expected[key], actual[key])) {\n return;\n }\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n }\n // Guard instanceof against arrow functions as they don't have a prototype.\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n return expected.call({}, actual) === true;\n}\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n try {\n fn();\n } catch (e) {\n return e;\n }\n return NO_EXCEPTION_SENTINEL;\n}\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn();\n // Fail in case no promise is returned.\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n throw actual;\n}\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n });\n\n // Make sure we actually have a stack trace!\n var origStack = err.stack;\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift();\n // Filter all frames existing in err.stack.\n var tmp1 = newErr.stack.split('\\n');\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n throw newErr;\n }\n};\n\n// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a871df3dfb8ea663ef5e1f8f62701ec51384ecb\nfunction internalMatch(string, regexp, message, fn, fnName) {\n if (!isRegExp(regexp)) {\n throw new ERR_INVALID_ARG_TYPE('regexp', 'RegExp', regexp);\n }\n var match = fnName === 'match';\n if (typeof string !== 'string' || RegExpPrototypeTest(regexp, string) !== match) {\n if (message instanceof Error) {\n throw message;\n }\n var generatedMessage = !message;\n\n // 'The input was expected to not match the regular expression ' +\n message = message || (typeof string !== 'string' ? 'The \"string\" argument must be of type string. Received type ' + \"\".concat(_typeof(string), \" (\").concat(inspect(string), \")\") : (match ? 'The input did not match the regular expression ' : 'The input was expected to not match the regular expression ') + \"\".concat(inspect(regexp), \". Input:\\n\\n\").concat(inspect(string), \"\\n\"));\n var err = new AssertionError({\n actual: string,\n expected: regexp,\n message: message,\n operator: fnName,\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n}\nassert.match = function match(string, regexp, message) {\n internalMatch(string, regexp, message, match, 'match');\n};\nassert.doesNotMatch = function doesNotMatch(string, regexp, message) {\n internalMatch(string, regexp, message, doesNotMatch, 'doesNotMatch');\n};\n\n// Expose a strict only variant of assert\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","import styled from '@emotion/styled';\nimport { MODAL_STATES, MODAL_STATES_VALUES } from './Open';\nimport { ActionButton } from 'components/shared/actionButton';\n\ninterface OpenFileWrapperProps {\n currentState: MODAL_STATES_VALUES;\n}\n\nexport const OpenFileWrapper = styled.div<OpenFileWrapperProps>`\n position: relative;\n padding: ${({ currentState }) =>\n currentState === MODAL_STATES.openOptions ? '10px 12px' : '0'};\n`;\n\nexport const CancelButton = styled(ActionButton)`\n margin-right: auto;\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\nimport { Icon } from 'ketcher-react';\n\nconst CheckMarkStyled = styled(Icon)`\n fill: #343434;\n`;\n\nconst ChevronStyled = styled(Icon)`\n user-select: none;\n width: 16px;\n height: 1em;\n display: inline-block;\n flex-shrink: 0;\n transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n font-size: 1.5rem;\n position: absolute;\n right: 7px;\n top: calc(50% - 0.5em);\n pointer-events: none;\n fill: #5b6077;\n`;\n\nconst ChevronIcon = ({ className }) => (\n <ChevronStyled name=\"chevron\" className={className} />\n);\n\nconst CheckMarkIcon = ({ isSelected }: { isSelected: boolean }) => {\n if (!isSelected) {\n return null;\n }\n\n return <CheckMarkStyled name=\"check\" />;\n};\n\nexport { ChevronIcon, CheckMarkIcon };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { useState, CSSProperties } from 'react';\nimport { Select, FormControl, MenuItem, ListItemText } from '@mui/material';\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\nimport { ChevronIcon } from './styledIcons';\n\nconst StyledFormControl = styled(FormControl)`\n width: 100%;\n padding: 0 8px;\n\n & label {\n font-size: 12px;\n line-height: unset;\n }\n`;\n\nconst DropDownSelect = styled(Select)`\n height: 24px;\n border: 1px solid #5b6077;\n border-radius: 4px;\n font-size: 14px;\n\n ${({ open }) =>\n open &&\n css`\n background-color: white;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n `}\n\n & .MuiSelect-select {\n padding: 0 24px 0 8px;\n height: 100%;\n }\n\n & span {\n ${({ theme }) => `font-size: ${theme.ketcher.font.size.medium}`}\n }\n\n & .MuiOutlinedInput-notchedOutline {\n border: 0;\n }\n`;\n\nconst stylesForExpanded: CSSProperties = {\n width: '120px',\n backgroundColor: 'white',\n border: '1px solid #5B6077',\n borderTopWidth: '0',\n borderRadius: '0px 0px 2px 2px',\n boxShadow: '0 6px 10px rgba(103, 104, 132, 0.15)',\n};\n\nconst DropDownItem = styled(MenuItem)`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding: 0 8px;\n height: 28px;\n font-size: 14px;\n\n &.MuiButtonBase-root:hover {\n border-left: 2px solid #167782;\n }\n\n & .MuiTypography-root {\n ${({ theme }) => `font-size: ${theme.ketcher.font.size.medium}`}\n }\n`;\n\nexport type Option = {\n id: string;\n label: string;\n};\n\nexport type DropDownProps = {\n options: Array<Option>;\n currentSelection: Option['id'];\n selectionHandler: (value: Option['id']) => void;\n className?: string;\n customStylesForExpanded?: CSSProperties;\n label?: string;\n};\n\nexport const DropDown = ({\n options,\n currentSelection,\n selectionHandler,\n className,\n label,\n customStylesForExpanded = {},\n}: DropDownProps) => {\n const [expanded, setExpanded] = useState(false);\n\n const renderLabelById = (value: unknown) => {\n const selectedOption = options.filter(\n (option) => option.id === (value as typeof currentSelection),\n )[0];\n\n return <span>{selectedOption.label}</span>;\n };\n\n const handleSelection = (event) => {\n selectionHandler(event.target.value);\n };\n\n const handleExpand = () => {\n setExpanded(true);\n };\n\n const handleCollapse = () => {\n setExpanded(false);\n };\n\n return (\n <StyledFormControl className={className}>\n {label && <label htmlFor=\"fileformat\">File format:</label>}\n <DropDownSelect\n value={currentSelection}\n onChange={handleSelection}\n open={expanded}\n onOpen={handleExpand}\n onClose={handleCollapse}\n renderValue={renderLabelById}\n IconComponent={ChevronIcon}\n fullWidth\n data-testid=\"dropdown-select\"\n MenuProps={{\n PaperProps: {\n style: { ...stylesForExpanded, ...customStylesForExpanded },\n },\n MenuListProps: {\n style: { padding: '0' },\n },\n }}\n >\n {options.map((item: Option) => (\n <DropDownItem key={item.id} value={item.id}>\n <ListItemText primary={item.label} />\n </DropDownItem>\n ))}\n </DropDownSelect>\n </StyledFormControl>\n );\n};\n","import styled from '@emotion/styled';\nimport { DropDown } from 'components/shared/dropDown';\n\nexport const Form = styled.form({\n display: 'flex',\n flexDirection: 'column',\n height: '300px',\n});\n\nexport const Row = styled.div({\n display: 'flex',\n justifyContent: 'space-between',\n marginBottom: '16px',\n});\n\nexport const StyledDropdown = styled(DropDown)(({ theme }) => ({\n width: 'calc(50% - 6px)',\n height: '28px',\n\n '& .MuiOutlinedInput-root:hover': {\n border: `1px solid ${theme.ketcher.color.input.border.hover}`,\n },\n\n '& .MuiOutlinedInput-root': {\n border: `1px solid ${theme.ketcher.color.input.border.regular}`,\n backgroundColor: theme.ketcher.color.background.primary,\n color: theme.ketcher.color.text.primary,\n fontFamily: theme.ketcher.font.family.inter,\n },\n}));\n\nexport const stylesForExpanded = {\n border: 'none',\n};\n\nexport const Loader = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n background: #fff;\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { Modal } from 'components/shared/modal';\nimport { useCallback, useEffect, useState } from 'react';\nimport { ViewSwitcher } from './ViewSwitcher';\nimport { ActionButton } from 'components/shared/actionButton';\nimport { FileOpener, fileOpener } from './fileOpener';\nimport {\n ChemicalMimeType,\n KetSerializer,\n StructService,\n SupportedFormat,\n identifyStructFormat,\n CoreEditor,\n KetcherLogger,\n EditorHistory,\n} from 'ketcher-core';\nimport { IndigoProvider } from 'ketcher-react';\nimport assert from 'assert';\nimport { RequiredModalProps } from '../modalContainer';\nimport { CancelButton, OpenFileWrapper } from './Open.styles';\nimport { Loader } from '../save/Save.styles';\nimport { LoadingCircles } from './AnalyzingFile/LoadingCircles';\nimport { useAppDispatch } from 'hooks';\nimport { openErrorModal } from 'state/modal';\nimport { AnyAction, Dispatch } from 'redux';\n\nexport interface Props {\n onClose: () => void;\n isModalOpen: boolean;\n}\n\nexport const MODAL_STATES = {\n openOptions: 'openOptions',\n textEditor: 'textEditor',\n} as const;\n\nexport type MODAL_STATES_VALUES =\n typeof MODAL_STATES[keyof typeof MODAL_STATES];\n\nconst addToCanvas = ({\n ketSerializer,\n editor,\n struct,\n}: {\n ketSerializer: KetSerializer;\n editor: CoreEditor;\n struct: string;\n}) => {\n const deserialisedKet = ketSerializer.deserializeToDrawingEntities(struct);\n assert(deserialisedKet);\n deserialisedKet.drawingEntitiesManager.centerMacroStructure();\n const modelChanges = deserialisedKet.drawingEntitiesManager.mergeInto(\n editor.drawingEntitiesManager,\n );\n const editorHistory = new EditorHistory(editor);\n editorHistory.update(modelChanges);\n editor.renderersContainer.update(modelChanges);\n};\n\n// TODO: replace after the implementation of the function for processing the structure from the file\nconst onOk = async ({\n struct,\n fragment,\n onCloseCallback,\n setIsLoading,\n dispatch,\n}: {\n struct: string;\n fragment: boolean;\n onCloseCallback: () => void;\n setIsLoading: (isLoading: boolean) => void;\n dispatch: Dispatch<AnyAction>;\n}) => {\n if (fragment) {\n console.log('add fragment');\n }\n const isKet = identifyStructFormat(struct) === SupportedFormat.ket;\n const ketSerializer = new KetSerializer();\n const editor = CoreEditor.provideEditorInstance();\n if (isKet) {\n addToCanvas({ struct, ketSerializer, editor });\n onCloseCallback();\n return;\n }\n const indigo = IndigoProvider.getIndigo() as StructService;\n try {\n setIsLoading(true);\n const ketStruct = await indigo.convert({\n struct,\n output_format: ChemicalMimeType.KET,\n });\n addToCanvas({ struct: ketStruct.struct, ketSerializer, editor });\n onCloseCallback();\n } catch (error) {\n const stringError =\n typeof error === 'string' ? error : JSON.stringify(error);\n const errorMessage = 'Convert error! ' + stringError;\n dispatch(openErrorModal(errorMessage));\n KetcherLogger.error(error);\n } finally {\n setIsLoading(false);\n }\n};\nconst isAnalyzingFile = false;\nconst errorHandler = (error) => console.log(error);\n\nconst Open = ({ isModalOpen, onClose }: RequiredModalProps) => {\n const dispatch = useAppDispatch();\n const [structStr, setStructStr] = useState<string>('');\n const [fileName, setFileName] = useState<string>('');\n const [isLoading, setIsLoading] = useState(false);\n const [opener, setOpener] = useState<\n { chosenOpener: FileOpener } | undefined\n >();\n const [currentState, setCurrentState] = useState<MODAL_STATES_VALUES>(\n MODAL_STATES.openOptions,\n );\n\n useEffect(() => {\n fileOpener().then((chosenOpener) => {\n setOpener({ chosenOpener });\n });\n }, []);\n\n const onCloseCallback = useCallback(() => {\n setCurrentState(MODAL_STATES.openOptions);\n setStructStr('');\n onClose();\n }, [onClose]);\n\n const onFileLoad = (files: File[]) => {\n const onLoad = (fileContent) => {\n setStructStr(fileContent);\n setCurrentState(MODAL_STATES.textEditor);\n };\n const onError = () => errorHandler('Error processing file');\n\n setFileName(files[0].name);\n opener?.chosenOpener(files[0]).then(onLoad, onError);\n };\n\n const copyHandler = () => {\n onOk({\n struct: structStr,\n fragment: true,\n onCloseCallback,\n setIsLoading,\n dispatch,\n });\n };\n\n const openHandler = () => {\n onOk({\n struct: structStr,\n fragment: false,\n onCloseCallback,\n setIsLoading,\n dispatch,\n });\n };\n\n const getButtons = () => {\n if (currentState === MODAL_STATES.textEditor && !isAnalyzingFile) {\n return [\n <CancelButton\n key=\"cancelButton\"\n clickHandler={onCloseCallback}\n label=\"Cancel\"\n styleType=\"secondary\"\n />,\n <ActionButton\n key=\"openButton\"\n disabled={!structStr}\n clickHandler={openHandler}\n label=\"Open as New Project\"\n styleType=\"secondary\"\n />,\n <ActionButton\n key=\"copyButton\"\n disabled={!structStr}\n clickHandler={copyHandler}\n label=\"Add to Canvas\"\n title=\"Structure will be loaded as fragment and added to Clipboard\"\n data-testid=\"add-to-canvas-button\"\n />,\n ];\n } else {\n return [];\n }\n };\n\n return (\n <Modal\n isOpen={isModalOpen}\n title=\"Open Structure\"\n onClose={onCloseCallback}\n >\n <Modal.Content>\n <OpenFileWrapper currentState={currentState}>\n <ViewSwitcher\n isAnalyzingFile={isAnalyzingFile}\n fileName={fileName}\n currentState={currentState}\n states={MODAL_STATES}\n selectClipboard={() => setCurrentState(MODAL_STATES.textEditor)}\n fileLoadHandler={onFileLoad}\n errorHandler={errorHandler}\n value={structStr}\n inputHandler={setStructStr}\n />\n {isLoading && (\n <Loader>\n <LoadingCircles />\n </Loader>\n )}\n </OpenFileWrapper>\n </Modal.Content>\n {getButtons().length === 0 ? (\n <></>\n ) : (\n <Modal.Footer withborder=\"true\">{getButtons()}</Modal.Footer>\n )}\n </Modal>\n );\n};\nexport { Open };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport styled from '@emotion/styled';\n\ninterface Props {\n value: string;\n id: string;\n onChange: (value: string) => void;\n label?: string;\n}\n\nconst Label = styled.label(({ theme }) => ({\n display: 'flex',\n flexDirection: 'column',\n marginRight: '8px',\n color: theme.ketcher.color.text.primary,\n fontSize: '12px',\n}));\n\nconst Input = styled.input(({ theme }) => ({\n height: '24px',\n padding: '3px 7px',\n border: `1px solid ${theme.ketcher.color.input.border.regular}`,\n fontSize: '14px',\n borderRadius: '4px',\n backgroundColor: theme.ketcher.color.input.background.primary,\n color: theme.ketcher.color.text.primary,\n outline: 'transparent',\n width: '164px',\n letterSpacing: 'normal',\n\n '&:active, &:focus': {\n color: theme.ketcher.color.input.text.active,\n },\n\n '&:hover': {\n border: `1px solid ${theme.ketcher.color.input.border.hover}`,\n },\n}));\n\nexport const TextInputField = ({\n value,\n id,\n onChange,\n label,\n ...rest\n}: Props) => {\n const handleChange = (event) => {\n onChange(event.target.value);\n };\n\n return (\n <>\n <Label htmlFor={id}>\n {label && <span>{label}</span>}\n <Input\n type=\"text\"\n id={id}\n value={value}\n onChange={handleChange}\n {...rest}\n />\n </Label>\n </>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport enum ChemicalMimeType {\n Ket = 'chemical/x-ket',\n Mol = 'chemical/x-mdl-molfile',\n Helm = 'chemical/x-helm',\n}\n\ninterface SupportedFormatPropertiesOptions {\n 'molfile-saving-mode'?: '3000';\n}\n\n// TODO this is a duplicated class from packages/ketcher-core/src/application/formatters/supportedFormatProperties.ts\nexport class SupportedFormatProperties {\n name: string;\n mime: ChemicalMimeType;\n extensions: string[];\n supportsCoords?: boolean;\n options?: SupportedFormatPropertiesOptions;\n\n constructor(\n name: string,\n mime: ChemicalMimeType,\n extensions: string[],\n supportsCoords?: boolean,\n options?: SupportedFormatPropertiesOptions,\n ) {\n this.name = name;\n this.mime = mime;\n this.extensions = extensions;\n this.supportsCoords = supportsCoords || false;\n this.options = options || {};\n }\n}\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport {\n ChemicalMimeType,\n SupportedFormatProperties,\n} from './supportedFormatProperties';\n\nexport type SupportedFormats = 'mol' | 'ket';\n\ntype FormatProperties = {\n [key in SupportedFormats]: SupportedFormatProperties;\n};\n\nconst formatProperties: FormatProperties = {\n ket: new SupportedFormatProperties(\n 'Ket file',\n ChemicalMimeType.Ket,\n ['.ket'],\n true,\n {},\n ),\n mol: new SupportedFormatProperties(\n 'MDL Molfile V3000',\n ChemicalMimeType.Mol,\n ['.mol'],\n true,\n { 'molfile-saving-mode': '3000' },\n ),\n};\n\nexport const getPropertiesByFormat = (format: SupportedFormats) => {\n return formatProperties[format];\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { useEffect, useState } from 'react';\n\nimport { Modal } from 'components/shared/modal';\nimport { Option } from 'components/shared/dropDown/dropDown';\nimport { TextArea } from 'components/shared/TextArea';\nimport { TextInputField } from 'components/shared/textInputField';\nimport { getPropertiesByFormat, SupportedFormats } from 'helpers/formats';\nimport { ActionButton } from 'components/shared/actionButton';\nimport { IndigoProvider } from 'ketcher-react';\nimport {\n ChemicalMimeType,\n KetSerializer,\n StructService,\n CoreEditor,\n KetcherLogger,\n} from 'ketcher-core';\nimport { saveAs } from 'file-saver';\nimport { RequiredModalProps } from '../modalContainer';\nimport { LoadingCircles } from '../Open/AnalyzingFile/LoadingCircles';\nimport {\n Form,\n Loader,\n Row,\n StyledDropdown,\n stylesForExpanded,\n} from './Save.styles';\nimport styled from '@emotion/styled';\nimport { useAppDispatch } from 'hooks';\nimport { openErrorModal } from 'state/modal';\n\nconst options: Array<Option> = [\n { id: 'ket', label: 'Ket' },\n { id: 'mol', label: 'MDL Molfile V3000' },\n];\n\nconst StyledModal = styled(Modal)({\n '& div.MuiPaper-root': {\n background: 'white',\n minHeight: '400px',\n minWidth: '430px',\n },\n\n '& .MuiDialogContent-root': {\n overflow: 'hidden',\n height: '100%',\n },\n});\n\nexport const Save = ({\n onClose,\n isModalOpen,\n}: RequiredModalProps): JSX.Element => {\n const dispatch = useAppDispatch();\n const [currentFileFormat, setCurrentFileFormat] =\n useState<SupportedFormats>('ket');\n const [currentFileName, setCurrentFileName] = useState('ketcher');\n const [struct, setStruct] = useState('');\n const [isLoading, setIsLoading] = useState(false);\n const indigo = IndigoProvider.getIndigo() as StructService;\n const editor = CoreEditor.provideEditorInstance();\n\n const handleSelectChange = async (fileFormat) => {\n setCurrentFileFormat(fileFormat);\n const ketSerializer = new KetSerializer();\n const serializedKet = ketSerializer.serialize(\n editor.drawingEntitiesManager.micromoleculesHiddenEntities.clone(),\n editor.drawingEntitiesManager,\n );\n if (fileFormat === 'ket') {\n setStruct(serializedKet);\n return;\n }\n\n try {\n setIsLoading(true);\n const result = await indigo.convert({\n struct: serializedKet,\n output_format: ChemicalMimeType.Mol,\n });\n setStruct(result.struct);\n } catch (error) {\n const stringError =\n typeof error === 'string' ? error : JSON.stringify(error);\n const errorMessage = 'Convert error! ' + stringError;\n dispatch(openErrorModal(errorMessage));\n KetcherLogger.error(errorMessage);\n setCurrentFileFormat('ket');\n } finally {\n setIsLoading(false);\n }\n };\n\n const handleInputChange = (value) => {\n setCurrentFileName(value);\n };\n\n const handleSave = () => {\n const blob = new Blob([struct], {\n type: getPropertiesByFormat(currentFileFormat).mime,\n });\n const formatProperties = getPropertiesByFormat(currentFileFormat);\n saveAs(blob, `${currentFileName}${formatProperties.extensions[0]}`);\n onClose();\n };\n\n useEffect(() => {\n if (currentFileFormat === 'ket') {\n const ketSerializer = new KetSerializer();\n const serializedKet = ketSerializer.serialize(\n editor.drawingEntitiesManager.micromoleculesHiddenEntities.clone(),\n editor.drawingEntitiesManager,\n );\n setStruct(serializedKet);\n }\n }, [currentFileFormat]);\n\n return (\n <StyledModal title=\"save structure\" isOpen={isModalOpen} onClose={onClose}>\n <Modal.Content>\n <Form onSubmit={handleSave} id=\"save\">\n <Row style={{ padding: '12px 12px 10px' }}>\n <div>\n <TextInputField\n value={currentFileName}\n id=\"filename\"\n onChange={handleInputChange}\n label=\"File name:\"\n />\n </div>\n <StyledDropdown\n label=\"File format:\"\n options={options}\n currentSelection={currentFileFormat}\n selectionHandler={handleSelectChange}\n customStylesForExpanded={stylesForExpanded}\n />\n </Row>\n <div style={{ display: 'flex', flexGrow: 1, position: 'relative' }}>\n <TextArea\n testId=\"preview-area-text\"\n value={struct}\n readonly\n selectOnInit\n />\n {isLoading && (\n <Loader>\n <LoadingCircles />\n </Loader>\n )}\n </div>\n </Form>\n </Modal.Content>\n\n <Modal.Footer>\n <ActionButton\n label=\"Cancel\"\n styleType=\"secondary\"\n clickHandler={onClose}\n />\n\n <ActionButton\n label=\"Save\"\n clickHandler={handleSave}\n disabled={!currentFileName}\n />\n </Modal.Footer>\n </StyledModal>\n );\n};\n","import styled from '@emotion/styled';\nimport { ActionButton } from 'components/shared/actionButton';\n\nexport const StyledActionButton = styled(ActionButton)(() => ({\n width: '72px',\n}));\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { Modal } from 'components/shared/modal';\nimport { useCallback } from 'react';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport {\n createNewPreset,\n deletePreset,\n selectActivePresetForContextMenu,\n setIsEditMode,\n} from 'state/rna-builder';\nimport { StyledActionButton } from 'components/modal/Delete/styledComponents';\nimport styled from '@emotion/styled';\nimport { selectEditor } from 'state/common';\n\nexport interface Props {\n onClose: () => void;\n isModalOpen: boolean;\n}\n\nconst DeleteTextWrapper = styled.div`\n padding: 12px;\n`;\n\nconst Delete = ({ isModalOpen, onClose }: Props) => {\n const dispatch = useAppDispatch();\n const activePresetForContextMenu = useAppSelector(\n selectActivePresetForContextMenu,\n );\n const editor = useAppSelector(selectEditor);\n const onCloseCallback = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const cancelHandler = () => {\n onCloseCallback();\n };\n\n const deleteHandler = () => {\n onCloseCallback();\n dispatch(deletePreset(activePresetForContextMenu));\n dispatch(setIsEditMode(false));\n dispatch(createNewPreset());\n editor.events.selectPreset.dispatch(null);\n };\n\n return (\n <Modal\n isOpen={isModalOpen}\n title=\"Delete RNA Preset\"\n onClose={onCloseCallback}\n >\n <Modal.Content>\n <DeleteTextWrapper data-testid=\"delete-preset-popup-content\">\n <div>You are about to delete</div>\n <div>\"{activePresetForContextMenu.name}\" RNA preset.</div>\n <div>This operation cannot be undone.</div>\n </DeleteTextWrapper>\n </Modal.Content>\n <Modal.Footer>\n <StyledActionButton\n key=\"cancel\"\n clickHandler={cancelHandler}\n label=\"Cancel\"\n styleType=\"secondary\"\n />\n <StyledActionButton\n key=\"delete\"\n clickHandler={deleteHandler}\n label=\"Delete\"\n />\n </Modal.Footer>\n </Modal>\n );\n};\nexport { Delete };\n","import styled from '@emotion/styled';\n\nexport const AttachmentPointList = styled.div({\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'center',\n alignSelf: 'flex-start',\n width: '100%',\n gap: '7px',\n});\n\ninterface IStyledAttachmentPointNameProps {\n disabled?: boolean;\n}\n\ninterface IStyledMonomerName {\n isExpanded?: boolean;\n}\n\nexport const AttachmentPoint = styled('div')(() => ({\n display: 'flex',\n flexDirection: 'column',\n rowGap: '2px',\n alignItems: 'center',\n marginBottom: '5px',\n}));\n\nexport const AttachmentPointName = styled.span<IStyledAttachmentPointNameProps>(\n (props) => ({\n margin: 0,\n padding: 0,\n textAlign: 'center',\n display: 'block',\n font: props.theme.ketcher.font.family.inter,\n fontSize: props.theme.ketcher.font.size.small,\n fontWeight: props.theme.ketcher.font.weight.regular,\n color: props.disabled\n ? 'rgba(180, 185, 214, 1)'\n : props.theme.ketcher.color.text.light,\n }),\n);\n\nexport const MonomerName = styled.div<IStyledMonomerName>(\n ({ theme, isExpanded }) => ({\n margin: 0,\n padding: 0,\n textAlign: 'center',\n alignSelf: 'flex-end',\n display: 'block',\n font: theme.ketcher.font.family.inter,\n fontSize: theme.ketcher.font.size.regular,\n fontWeight: theme.ketcher.font.weight.regular,\n flexBasis: '200px',\n lineHeight: '14px',\n maxWidth: isExpanded ? undefined : '150px',\n }),\n);\n\nexport const ConnectionSymbol = styled.div(({ theme }) => ({\n width: 10,\n height: 2,\n display: 'block',\n color: theme.ketcher.color.button.secondary.hover,\n backgroundColor: theme.ketcher.color.button.secondary.hover,\n borderRadius: 20,\n margin: 'auto',\n}));\n\nexport const AttachmentPointsRow = styled.div(() => ({\n display: 'grid',\n gridAutoFlow: 'column',\n gridTemplateRows: 'auto auto auto',\n gridTemplateColumns: '1fr 10px 1fr',\n justifyContent: 'center',\n alignItems: 'flex-start',\n padding: '12px',\n paddingBottom: 0,\n height: '100%',\n columnGap: '12px',\n rowGap: '8px',\n}));\n\nexport const ModalContent = styled.div(() => ({ height: '100%' }));\n","import styled from '@emotion/styled';\nimport { ActionButton } from 'components/shared/actionButton';\nimport { Modal } from 'components/shared/modal';\nimport { BaseMonomer } from 'ketcher-core/dist/domain/entities/BaseMonomer';\nimport { StructRender } from 'ketcher-react';\nimport { useAppSelector } from 'hooks';\nimport { selectEditor } from 'state/common';\nimport { useMemo, useState } from 'react';\nimport {\n AttachmentPointList,\n AttachmentPoint,\n AttachmentPointName,\n MonomerName,\n ConnectionSymbol,\n AttachmentPointsRow,\n ModalContent,\n} from './styledComponents';\nimport { MonomerConnectionProps } from '../modalContainer/types';\nimport { LeavingGroup } from 'ketcher-core';\n\ninterface IStyledButtonProps {\n disabled: boolean;\n}\ninterface IStyledStyledStructRender {\n isExpanded?: boolean;\n}\n\nconst StyledModal = styled(Modal)({\n '& .MuiPaper-root': {\n background: '#fff !important',\n },\n\n '& .MuiDialogContent-root': {\n overflow: 'hidden',\n },\n});\n\nexport const StyledStructRender = styled(\n StructRender,\n)<IStyledStyledStructRender>(({ theme, isExpanded }) => ({\n display: 'flex',\n border: `1.5px solid ${theme.ketcher.outline.color}`,\n borderRadius: '6px',\n padding: 5,\n maxHeight: '100%',\n minHeight: '150px',\n height: isExpanded ? 'auto' : '150px',\n width: isExpanded ? 'auto' : '150px',\n alignSelf: 'stretch',\n '& svg': {\n maxWidth: 'fit-content',\n margin: 'auto',\n },\n}));\n\nexport const ActionButtonLeft = styled(ActionButton)(() => ({\n width: '97px !important',\n}));\n\nexport const ActionButtonRight = styled(ActionButton)<IStyledButtonProps>(\n (props) => ({\n width: '97px !important',\n color: props.disabled ? 'rgba(51, 51, 51, 0.6)' : '',\n background: props.disabled ? 'rgba(225, 229, 234, 1) !important' : '',\n opacity: '1 !important',\n minHeight: '0',\n }),\n);\n\nexport const ActionButtonAttachmentPoint = styled(ActionButton)((props) => ({\n borderRadius: 5,\n minWidth: '45px !important',\n padding: '4px',\n border: `1px solid ${props.theme.ketcher.color.border.secondary}`,\n color: props.disabled ? 'rgba(51, 51, 51, 0.6) !important' : '',\n background: props.disabled ? 'rgba(225, 229, 234)' : '',\n borderColor: props.disabled ? 'rgba(225, 229, 234) !important' : '',\n}));\n\nconst MonomerConnection = ({\n onClose,\n isModalOpen,\n firstMonomer,\n secondMonomer,\n}: MonomerConnectionProps): React.ReactElement => {\n const editor = useAppSelector(selectEditor);\n\n if (!firstMonomer || !secondMonomer) {\n throw new Error('Monomers must exist!');\n }\n\n const [firstSelectedAttachmentPoint, setFirstSelectedAttachmentPoint] =\n useState<string | null>(getDefaultAttachmentPoint(firstMonomer));\n const [secondSelectedAttachmentPoint, setSecondSelectedAttachmentPoint] =\n useState<string | null>(getDefaultAttachmentPoint(secondMonomer));\n const [modalExpanded, setModalExpanded] = useState(false);\n\n const cancelBondCreationAndClose = () => {\n editor.events.cancelBondCreationViaModal.dispatch(secondMonomer);\n onClose();\n };\n\n const connectMonomers = () => {\n if (!firstSelectedAttachmentPoint || !secondSelectedAttachmentPoint) {\n throw new Error('Attachment points cannot be falsy');\n }\n\n editor.events.createBondViaModal.dispatch({\n firstMonomer,\n secondMonomer,\n firstSelectedAttachmentPoint,\n secondSelectedAttachmentPoint,\n });\n\n onClose();\n };\n\n return (\n <StyledModal\n title=\"Select connection points\"\n isOpen={isModalOpen}\n onClose={cancelBondCreationAndClose}\n showExpandButton\n modalWidth=\"358px\"\n expanded={modalExpanded}\n setExpanded={setModalExpanded}\n >\n <Modal.Content>\n <ModalContent>\n <AttachmentPointsRow>\n <MonomerName isExpanded={modalExpanded}>\n {firstMonomer.monomerItem.props.Name}\n </MonomerName>\n <AttachmentPointSelectionPanel\n monomer={firstMonomer}\n selectedAttachmentPoint={firstSelectedAttachmentPoint}\n onSelectAttachmentPoint={setFirstSelectedAttachmentPoint}\n expanded={modalExpanded}\n />\n <span />\n <ConnectionSymbol />\n <span />\n <MonomerName isExpanded={modalExpanded}>\n {secondMonomer.monomerItem.props.Name}\n </MonomerName>\n\n <AttachmentPointSelectionPanel\n monomer={secondMonomer}\n selectedAttachmentPoint={secondSelectedAttachmentPoint}\n onSelectAttachmentPoint={setSecondSelectedAttachmentPoint}\n expanded={modalExpanded}\n />\n </AttachmentPointsRow>\n </ModalContent>\n </Modal.Content>\n\n <Modal.Footer>\n <ActionButtonLeft\n label=\"Cancel\"\n styleType=\"secondary\"\n clickHandler={cancelBondCreationAndClose}\n />\n <ActionButtonRight\n label=\"Connect\"\n disabled={\n !firstSelectedAttachmentPoint || !secondSelectedAttachmentPoint\n }\n clickHandler={connectMonomers}\n />\n </Modal.Footer>\n </StyledModal>\n );\n};\n\ninterface AttachmentPointSelectionPanelProps {\n monomer: BaseMonomer;\n selectedAttachmentPoint: string | null;\n onSelectAttachmentPoint: (attachmentPoint: string) => void;\n expanded?: boolean;\n}\n\nfunction AttachmentPointSelectionPanel({\n monomer,\n selectedAttachmentPoint,\n onSelectAttachmentPoint,\n expanded = false,\n}: AttachmentPointSelectionPanelProps): React.ReactElement {\n const bonds = monomer.attachmentPointsToBonds;\n\n const connectedAttachmentPoints = useMemo(\n () => getConnectedAttachmentPoints(bonds),\n [bonds],\n );\n\n const getLeavingGroup = (attachmentPoint): LeavingGroup => {\n const { MonomerCaps } = monomer.monomerItem.props;\n if (!MonomerCaps) {\n return 'H';\n }\n const leavingGroup = MonomerCaps[attachmentPoint];\n return leavingGroup === 'O' ? 'OH' : (leavingGroup as LeavingGroup);\n };\n\n return (\n <>\n <StyledStructRender\n struct={monomer.monomerItem.struct}\n options={{\n connectedMonomerAttachmentPoints: connectedAttachmentPoints,\n currentlySelectedMonomerAttachmentPoint:\n selectedAttachmentPoint ?? undefined,\n labelInMonomerConnectionsModal: true,\n needCache: false,\n }}\n update={expanded}\n isExpanded={expanded}\n />\n <AttachmentPointList>\n {monomer.listOfAttachmentPoints.map((attachmentPoint) => {\n const disabled = Boolean(\n connectedAttachmentPoints.find(\n (connectedAttachmentPointName) =>\n connectedAttachmentPointName === attachmentPoint &&\n attachmentPoint !== monomer.chosenFirstAttachmentPointForBond,\n ),\n );\n return (\n <AttachmentPoint key={attachmentPoint}>\n <ActionButtonAttachmentPoint\n label={attachmentPoint}\n styleType={\n attachmentPoint === selectedAttachmentPoint\n ? 'primary'\n : 'secondary'\n }\n clickHandler={() => onSelectAttachmentPoint(attachmentPoint)}\n disabled={disabled}\n />\n <AttachmentPointName\n data-testid=\"leaving-group-value\"\n disabled={disabled}\n >\n {getLeavingGroup(attachmentPoint)}\n </AttachmentPointName>\n </AttachmentPoint>\n );\n })}\n </AttachmentPointList>\n </>\n );\n}\n\nfunction getConnectedAttachmentPoints(\n bonds: Record<string, unknown>,\n): string[] {\n return Object.entries(bonds)\n .filter(([_, bond]) => Boolean(bond))\n .map(([attachmentPoint]) => attachmentPoint);\n}\n\nfunction getDefaultAttachmentPoint(monomer: BaseMonomer): string | null {\n if (monomer.chosenFirstAttachmentPointForBond)\n return monomer.chosenFirstAttachmentPointForBond;\n if (monomer.chosenSecondAttachmentPointForBond)\n return monomer.chosenSecondAttachmentPointForBond;\n const possibleAttachmentPoints = Object.entries(\n monomer.attachmentPointsToBonds,\n ).filter(([_, bond]) => bond == null);\n\n if (possibleAttachmentPoints.length === 1) {\n const [attachmentPointName] = possibleAttachmentPoints[0];\n\n return attachmentPointName;\n }\n\n return null;\n}\n\nexport { MonomerConnection };\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { Open } from 'components/modal/Open';\nimport { Save } from 'components/modal/save';\nimport { Delete } from 'components/modal/Delete';\nimport { MonomerConnection } from 'components/modal/monomerConnection';\n\nexport const modalComponentList: Record<\n string,\n typeof Open | typeof Save | typeof Delete | typeof MonomerConnection\n> = {\n open: Open,\n save: Save,\n delete: Delete,\n monomerConnection: MonomerConnection,\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport {\n closeModal,\n selectAdditionalProps,\n selectModalIsOpen,\n selectModalName,\n} from 'state/modal';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport { useCallback } from 'react';\nimport { modalComponentList } from './modalComponentList';\n\nexport const ModalContainer = () => {\n const isOpen = useAppSelector(selectModalIsOpen);\n const modalName = useAppSelector(selectModalName);\n const additionalProps = useAppSelector(selectAdditionalProps);\n const dispatch = useAppDispatch();\n\n const handleClose = useCallback(() => {\n dispatch(closeModal());\n }, [dispatch]);\n\n if (!modalName) return null;\n\n const Component = modalComponentList[modalName];\n\n if (!Component)\n throw new Error(`There is no modal window named ${modalName}`);\n\n return additionalProps ? (\n <Component\n onClose={handleClose}\n isModalOpen={isOpen}\n {...additionalProps}\n />\n ) : (\n <Component onClose={handleClose} isModalOpen={isOpen} />\n );\n};\n","import styled from '@emotion/styled';\nimport { IconButton } from 'ketcher-react';\n\nexport const StyledToast = styled.div({\n backgroundColor: '#333333',\n maxHeight: '40px',\n display: 'flex',\n alignItems: 'stretch',\n});\n\nexport const StyledToastContent = styled.div({\n maxWidth: '356px',\n padding: '4px 10px 4px 10px',\n color: 'white',\n display: 'flex',\n});\n\nexport const StyledIconButton = styled(IconButton)`\n color: white;\n width: 24px;\n height: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n &:hover {\n background-color: #585858;\n color: white;\n }\n\n svg {\n width: 16px;\n height: 16px;\n }\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport const ChemAvatar = () => (\n <>\n <symbol id=\"chem\" viewBox=\"0 0 59 59\" width=\"59\" height=\"59\">\n <rect\n className=\"monomer-body\"\n width=\"59\"\n height=\"59\"\n rx=\"1.5\"\n fill=\"#F5F6F7\"\n />\n </symbol>\n <symbol id=\"chem-selection\" viewBox=\"0 0 59 59\" width=\"59\" height=\"59\">\n <rect\n width=\"59\"\n height=\"59\"\n rx=\"1.5\"\n stroke=\"#0097A8\"\n fill=\"none\"\n strokeWidth=\"3\"\n />\n </symbol>\n </>\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport const PeptideAvatar = () => (\n <>\n <symbol id=\"peptide\" viewBox=\"0 0 70 61\" width=\"70\" height=\"61\">\n <path\n className=\"monomer-body\"\n d=\"M16.9236 1.00466C17.2801 0.383231 17.9418 6.10888e-07 18.6583 5.98224e-07L51.3417 2.04752e-08C52.0582 7.81036e-09 52.7199 0.383234 53.0764 1.00466L69.4289 29.5047C69.7826 30.1211 69.7826 30.8789 69.4289 31.4953L53.0764 59.9953C52.7199 60.6168 52.0582 61 51.3417 61H18.6583C17.9418 61 17.2801 60.6168 16.9236 59.9953L0.571095 31.4953C0.217407 30.8789 0.217408 30.1211 0.571096 29.5047L16.9236 1.00466Z\"\n ></path>\n </symbol>\n <symbol id=\"peptide-hover\" viewBox=\"0 0 70 61\" width=\"70\" height=\"61\">\n <path\n d=\"M18.2246 1.75116C18.3137 1.59581 18.4792 1.5 18.6583 1.5L51.3417 1.5C51.5208 1.5 51.6863 1.59581 51.7754 1.75116L53.06 1.01408L51.7754 1.75117L68.1279 30.2512C68.2163 30.4053 68.2163 30.5947 68.1279 30.7488L51.7754 59.2488C51.6863 59.4042 51.5208 59.5 51.3417 59.5H18.6583C18.4792 59.5 18.3137 59.4042 18.2246 59.2488L1.87215 30.7488C1.78372 30.5947 1.78372 30.4053 1.87215 30.2512L18.2246 1.75116Z\"\n fill=\"none\"\n stroke=\"#0097A8\"\n strokeWidth=\"3\"\n />{' '}\n </symbol>\n <symbol id=\"peptide-selection\" viewBox=\"0 0 70 61\" width=\"70\" height=\"61\">\n <path\n xmlns=\"http://www.w3.org/2000/svg\"\n d=\"M17.3572 1.25349C17.6247 0.787424 18.1209 0.500001 18.6583 0.500001L51.3417 0.5C51.8791 0.5 52.3753 0.787425 52.6428 1.2535L53.0665 1.01035L52.6428 1.2535L68.9952 29.7535C69.2605 30.2158 69.2605 30.7842 68.9952 31.2465L52.6428 59.7465C52.3753 60.2126 51.8791 60.5 51.3417 60.5H18.6583C18.1209 60.5 17.6247 60.2126 17.3572 59.7465L1.00478 31.2465C0.739513 30.7842 0.739513 30.2158 1.00478 29.7535L17.3572 1.25349Z\"\n fill=\"none\"\n stroke=\"#0097A8\"\n />\n </symbol>\n </>\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport const SugarAvatar = () => (\n <>\n <symbol id=\"sugar\" viewBox=\"0 0 70 70\" width=\"70\" height=\"70\">\n <rect className=\"monomer-body\" width=\"57\" height=\"57\" rx=\"10\" />\n </symbol>\n <symbol id=\"sugar-selection\" viewBox=\"-2 -2 100 100\" width=\"70\" height=\"70\">\n <rect\n width=\"78\"\n height=\"78\"\n rx=\"10\"\n fill=\"none\"\n stroke=\"#0097A8\"\n strokeWidth=\"5\"\n />\n </symbol>\n </>\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport const PhosphateAvatar = () => (\n <>\n <symbol id=\"phosphate\" viewBox=\"0 0 70 70\" width=\"70\" height=\"70\">\n <rect className=\"monomer-body\" width=\"56\" height=\"56\" rx=\"30\" />\n </symbol>\n <symbol\n id=\"phosphate-selection\"\n viewBox=\"-2 -2 75 75\"\n width=\"70\"\n height=\"70\"\n >\n <rect\n width=\"56\"\n height=\"56\"\n rx=\"30\"\n fill=\"none\"\n stroke=\"#0097A8\"\n strokeWidth=\"3\"\n />\n </symbol>\n </>\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nexport const RNABaseAvatar = () => (\n <>\n <symbol id=\"rna-base\" viewBox=\"0 0 65 65\" width=\"65\" height=\"95\">\n <rect\n width=\"45\"\n height=\"45\"\n rx=\"2\"\n transform-origin=\"center\"\n transform=\"rotate(45)\"\n className=\"monomer-body\"\n />\n </symbol>\n <symbol id=\"rna-base-selection\" viewBox=\"0 0 65 65\" width=\"65\" height=\"95\">\n <rect\n width=\"45\"\n height=\"45\"\n rx=\"2\"\n transform-origin=\"center\"\n transform=\"rotate(45)\"\n stroke=\"#0097A8\"\n strokeWidth=\"3\"\n fill=\"none\"\n />\n </symbol>\n </>\n);\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport styled from '@emotion/styled';\nimport { StructRender } from 'ketcher-react';\n\nexport const Container = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n padding: 10px;\n background: ${(props) => props.theme.ketcher.color.background.primary};\n border: ${(props) => props.theme.ketcher.border.regular};\n border-radius: ${(props) => props.theme.ketcher.border.radius.regular};\n box-shadow: ${(props) => props.theme.ketcher.shadow.regular};\n`;\n\nexport const MonomerName = styled.p`\n color: ${(props) => props.theme.ketcher.color.text.primary};\n font-size: ${(props) => props.theme.ketcher.font.size.regular};\n word-break: break-all;\n text-align: center;\n margin: 0 0 5px 0;\n`;\n\nexport const StyledStructRender = styled(StructRender)`\n height: 100%;\n width: 100%;\n`;\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { useMemo } from 'react';\nimport { MonomerName, Container, StyledStructRender } from './styles';\nimport { IPreviewProps } from './types';\nimport { preview } from '../../../constants';\nimport styled from '@emotion/styled';\nimport { useAppSelector } from 'hooks';\nimport { selectShowPreview } from 'state/common';\n\nconst MonomerPreview = ({ className }: IPreviewProps) => {\n const preview = useAppSelector(selectShowPreview);\n const ContainerDynamic = useMemo(\n () => styled(Container)`\n top: ${preview?.style?.top || ''};\n left: ${preview?.style?.left || ''};\n right: ${preview?.style?.right || ''};\n `,\n [preview],\n );\n\n return (\n preview?.monomer && (\n <ContainerDynamic\n className={className}\n data-testid=\"polymer-library-preview\"\n >\n <MonomerName>{preview.monomer.struct.name}</MonomerName>\n <StyledStructRender\n struct={preview.monomer.struct}\n options={{ needCache: false }}\n />\n </ContainerDynamic>\n )\n );\n};\n\nconst StyledPreview = styled(MonomerPreview)`\n z-index: 5;\n position: absolute;\n width: ${preview.width}px;\n height: ${preview.height}px;\n transform: translate(-50%, 0);\n`;\n\nexport default StyledPreview;\nexport { MonomerPreview };\n","import styled from '@emotion/styled';\n\nexport const ErrorTextWrapper = styled.div`\n padding: 12px;\n font-size: 12px;\n color: #000;\n`;\n","import { ActionButton } from 'components/shared/actionButton';\nimport { Modal } from 'components/shared/modal';\nimport { useAppDispatch, useAppSelector } from 'hooks';\nimport { closeErrorModal, selectErrorModalText } from 'state/modal';\nimport { ErrorTextWrapper } from './Error.styles';\n\nexport const ErrorModal = () => {\n const dispatch = useAppDispatch();\n const errorText = useAppSelector(selectErrorModalText);\n const isModalOpen = errorText !== '';\n const onClose = () => {\n dispatch(closeErrorModal());\n };\n return (\n <Modal isOpen={isModalOpen} title=\"Error message\" onClose={onClose}>\n <Modal.Content>\n <ErrorTextWrapper>{errorText}</ErrorTextWrapper>\n </Modal.Content>\n <Modal.Footer>\n <ActionButton label=\"Close\" clickHandler={onClose} />\n </Modal.Footer>\n </Modal>\n );\n};\n","import styled from '@emotion/styled';\n\nexport const EditorWrapper = styled.div(() => ({\n containerType: 'size',\n height: '100%',\n}));\n","import { KetcherAsyncEvents, ketcherProvider } from 'ketcher-core';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport function useLoading() {\n const ketcher = ketcherProvider.getKetcher();\n const [isLoading, setIsLoading] = useState(false);\n\n const onLoadingStart = useCallback(() => setIsLoading(true), [setIsLoading]);\n const onLoadingFinish = useCallback(\n () => setIsLoading(false),\n [setIsLoading],\n );\n\n useEffect(() => {\n ketcher.eventBus.addListener(KetcherAsyncEvents.LOADING, onLoadingStart);\n ketcher.eventBus.addListener(KetcherAsyncEvents.SUCCESS, onLoadingFinish);\n ketcher.eventBus.addListener(KetcherAsyncEvents.FAILURE, onLoadingFinish);\n\n return () => {\n ketcher.eventBus.removeListener(\n KetcherAsyncEvents.LOADING,\n onLoadingStart,\n );\n ketcher.eventBus.removeListener(\n KetcherAsyncEvents.SUCCESS,\n onLoadingFinish,\n );\n ketcher.eventBus.removeListener(\n KetcherAsyncEvents.FAILURE,\n onLoadingFinish,\n );\n };\n }, [ketcher.eventBus, onLoadingFinish, onLoadingStart]);\n\n return isLoading;\n}\n","import styled from '@emotion/styled';\nimport { LoadingCircles } from 'components/modal/Open/AnalyzingFile/LoadingCircles';\n\nconst LoadingCirclesWrapper = styled.div`\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Loader = () => {\n return (\n <LoadingCirclesWrapper>\n <LoadingCircles />\n </LoadingCirclesWrapper>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\n\nimport { IconButton } from 'ketcher-react';\nimport styled from '@emotion/styled';\nimport { EditorQuerySelector } from '../../constants';\nimport { useState } from 'react';\n\nconst requestFullscreen = (element: HTMLElement) => {\n (element.requestFullscreen && element.requestFullscreen()) ||\n (element.msRequestFullscreen && element.msRequestFullscreen()) ||\n (element.mozRequestFullScreen && element.mozRequestFullScreen()) ||\n (element.webkitRequestFullscreen && element.webkitRequestFullscreen());\n};\n\nconst exitFullscreen = () => {\n (document.exitFullscreen && document.exitFullscreen()) ||\n (document.msExitFullscreen && document.msExitFullscreen()) ||\n (document.mozCancelFullScreen && document.mozCancelFullScreen()) ||\n (document.webkitExitFullscreen && document.webkitExitFullscreen());\n};\n\nconst isFullScreen = () => {\n return !!(\n document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement\n );\n};\n\nconst ButtonContainer = styled.div`\n display: flex;\n\n & svg:first-of-type {\n display: flex;\n justify-content: center;\n align-items: center;\n width: 24px;\n height: 24px;\n padding: 2px;\n border-radius: 4px;\n }\n`;\n\nexport const FullscreenButton = (props) => {\n const [fullScreenMode, setFullScreenMode] = useState(isFullScreen());\n const toggleFullscreen = () => {\n // TODO: add selector / ref prop when will be shared component\n const fullscreenElement: HTMLElement =\n document.querySelector(EditorQuerySelector) || document.documentElement;\n fullScreenMode ? exitFullscreen() : requestFullscreen(fullscreenElement);\n setFullScreenMode(!fullScreenMode);\n };\n return (\n <ButtonContainer className={props.className}>\n <IconButton\n onClick={toggleFullscreen}\n iconName={fullScreenMode ? 'fullscreen-exit' : 'fullscreen-enter'}\n />\n </ButtonContainer>\n );\n};\n","/****************************************************************************\n * Copyright 2021 EPAM Systems\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n ***************************************************************************/\nimport { Provider } from 'react-redux';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { Global, ThemeProvider } from '@emotion/react';\nimport { createTheme } from '@mui/material/styles';\nimport { debounce, merge } from 'lodash';\nimport { SdfSerializer } from 'ketcher-core';\nimport monomersData from './data/monomers.sdf';\n\nimport { store } from 'state';\nimport {\n defaultTheme,\n muiOverrides,\n EditorTheme,\n MergedThemeType,\n} from 'theming/defaultTheme';\nimport { getGlobalStyles } from 'theming/globalStyles';\nimport { Layout } from 'components/Layout';\nimport {\n MonomerLibrary,\n MonomerLibraryToggle,\n} from 'components/monomerLibrary';\nimport { Menu } from 'components/menu';\nimport {\n createEditor,\n destroyEditor,\n selectEditor,\n selectEditorActiveTool,\n selectTool,\n showPreview,\n} from 'state/common';\nimport {\n loadMonomerLibrary,\n selectMonomers,\n setFavoriteMonomersFromLocalStorage,\n} from 'state/library';\nimport { useAppDispatch, useAppSelector, useSnakeMode } from 'hooks';\nimport {\n closeErrorTooltip,\n openErrorTooltip,\n openModal,\n selectErrorTooltipText,\n} from 'state/modal';\nimport {\n modalComponentList,\n ModalContainer,\n} from 'components/modal/modalContainer';\nimport { DeepPartial } from './types';\nimport { EditorClassName } from './constants';\nimport { Snackbar } from '@mui/material';\nimport {\n StyledIconButton,\n StyledToast,\n StyledToastContent,\n} from 'components/shared/StyledToast/styles';\nimport {\n PeptideAvatar,\n ChemAvatar,\n SugarAvatar,\n PhosphateAvatar,\n RNABaseAvatar,\n} from 'components/shared/monomerOnCanvas';\nimport { MonomerConnectionOnlyProps } from 'components/modal/modalContainer/types';\nimport { calculatePreviewPosition } from 'helpers';\nimport StyledPreview from 'components/shared/MonomerPreview';\nimport { ErrorModal } from 'components/modal/Error';\nimport { EditorWrapper } from './styledComponents';\nimport { useLoading } from './hooks/useLoading';\nimport { Loader } from 'components/Loader';\nimport { FullscreenButton } from 'components/FullscreenButton';\nimport { getDefaultPresets } from 'src/helpers/getDefaultPreset';\nimport {\n setDefaultPresets,\n setFavoritePresetsFromLocalStorage,\n clearFavorites,\n} from 'state/rna-builder';\nimport { IRnaPreset } from 'components/monomerLibrary/RnaBuilder/types';\n\nconst muiTheme = createTheme(muiOverrides);\n\ninterface EditorContainerProps {\n onInit?: () => void;\n theme?: DeepPartial<EditorTheme>;\n togglerComponent?: JSX.Element;\n}\n\ninterface EditorProps {\n theme?: DeepPartial<EditorTheme>;\n togglerComponent?: JSX.Element;\n}\n\nconst noPreviewTools = ['bond-single'];\n\nfunction EditorContainer({\n onInit,\n theme,\n togglerComponent,\n}: EditorContainerProps) {\n const rootElRef = useRef<HTMLDivElement>(null);\n const editorTheme: EditorTheme = theme\n ? merge(defaultTheme, theme)\n : defaultTheme;\n\n const mergedTheme: MergedThemeType = merge(muiTheme, {\n ketcher: editorTheme,\n });\n\n useEffect(() => {\n onInit?.();\n }, [onInit]);\n\n return (\n <Provider store={store}>\n <ThemeProvider theme={mergedTheme}>\n <Global styles={getGlobalStyles} />\n <EditorWrapper ref={rootElRef} className={EditorClassName}>\n <Editor theme={editorTheme} togglerComponent={togglerComponent} />\n </EditorWrapper>\n </ThemeProvider>\n </Provider>\n );\n}\n\nfunction Editor({ theme, togglerComponent }: EditorProps) {\n const dispatch = useAppDispatch();\n const canvasRef = useRef<SVGSVGElement>(null);\n const errorTooltipText = useAppSelector(selectErrorTooltipText);\n const editor = useAppSelector(selectEditor);\n const activeTool = useAppSelector(selectEditorActiveTool);\n const isLoading = useLoading();\n const [isMonomerLibraryHidden, setIsMonomerLibraryHidden] = useState(false);\n const monomers = useAppSelector(selectMonomers);\n\n useEffect(() => {\n dispatch(createEditor({ theme, canvas: canvasRef.current }));\n const serializer = new SdfSerializer();\n const library = serializer.deserialize(monomersData);\n dispatch(loadMonomerLibrary(library));\n dispatch(setFavoriteMonomersFromLocalStorage(null));\n\n return () => {\n dispatch(destroyEditor(null));\n dispatch(loadMonomerLibrary([]));\n dispatch(clearFavorites());\n };\n }, [dispatch]);\n\n useEffect(() => {\n const defaultPresets: IRnaPreset[] = getDefaultPresets(monomers);\n dispatch(setDefaultPresets(defaultPresets));\n dispatch(setFavoritePresetsFromLocalStorage());\n\n return () => {\n dispatch(clearFavorites());\n };\n }, [dispatch, monomers]);\n\n const dispatchShowPreview = useCallback(\n (payload) => dispatch(showPreview(payload)),\n [dispatch],\n );\n\n const debouncedShowPreview = useMemo(\n () => debounce((p) => dispatchShowPreview(p), 500),\n [dispatchShowPreview],\n );\n\n useEffect(() => {\n const handler = (toolName: string) => {\n if (toolName !== activeTool) {\n dispatch(selectTool(toolName));\n }\n };\n\n if (editor) {\n editor.events.error.add((errorText) => {\n dispatch(openErrorTooltip(errorText));\n });\n dispatch(selectTool('select-rectangle'));\n editor.events.selectTool.dispatch('select-rectangle');\n editor.events.openMonomerConnectionModal.add(\n (additionalProps: MonomerConnectionOnlyProps) =>\n dispatch(\n openModal({\n name: 'monomerConnection',\n additionalProps,\n }),\n ),\n );\n editor.events.selectTool.add(handler);\n }\n\n return () => {\n dispatch(selectTool(null));\n editor?.events.selectTool.remove(handler);\n };\n }, [editor]);\n\n const handleOpenPreview = useCallback((e) => {\n const monomer = e.target.__data__.monomer.monomerItem;\n\n const cardCoordinates = e.target.getBoundingClientRect();\n const top = calculatePreviewPosition(monomer, cardCoordinates);\n const previewStyle = {\n top,\n left: `${cardCoordinates.left + cardCoordinates.width / 2}px`,\n };\n debouncedShowPreview({ monomer, style: previewStyle });\n }, []);\n\n const handleClosePreview = useCallback(() => {\n debouncedShowPreview.cancel();\n dispatch(showPreview(undefined));\n }, []);\n\n useEffect(() => {\n editor?.events.mouseOverMonomer.add((e) => {\n handleOpenPreview(e);\n });\n editor?.events.mouseLeaveMonomer.add(() => {\n handleClosePreview();\n });\n editor?.events.mouseOnMoveMonomer.add((e) => {\n handleClosePreview();\n const isLeftClick = e.buttons === 1;\n if (!isLeftClick || !noPreviewTools.includes(activeTool)) {\n handleOpenPreview(e);\n }\n });\n }, [editor, activeTool]);\n\n useEffect(() => {\n editor?.zoomTool.observeCanvasResize();\n return () => {\n editor?.zoomTool.destroy();\n };\n }, [editor]);\n\n const handleCloseErrorTooltip = () => {\n dispatch(closeErrorTooltip());\n };\n\n return (\n <>\n <Layout>\n <Layout.Top shortened={isMonomerLibraryHidden}>\n {togglerComponent}\n <FullscreenButton />\n </Layout.Top>\n\n <Layout.Left>\n <MenuComponent />\n </Layout.Left>\n\n <Layout.Main>\n <svg\n id=\"polymer-editor-canvas\"\n data-testid=\"ketcher-canvas\"\n preserveAspectRatio=\"xMidYMid meet\"\n ref={canvasRef}\n width=\"100%\"\n height=\"100%\"\n style={{\n overflow: 'hidden',\n overflowClipMargin: 'content-box',\n }}\n >\n <defs>\n <PeptideAvatar />\n <ChemAvatar />\n <SugarAvatar />\n <PhosphateAvatar />\n <RNABaseAvatar />\n </defs>\n <g className=\"drawn-structures\"></g>\n </svg>\n {isLoading && <Loader />}\n </Layout.Main>\n\n <Layout.Right hide={isMonomerLibraryHidden}>\n <MonomerLibrary />\n </Layout.Right>\n </Layout>\n <MonomerLibraryToggle\n isHidden={isMonomerLibraryHidden}\n onClick={() => setIsMonomerLibraryHidden((prev) => !prev)}\n />\n <StyledPreview className=\"polymer-library-preview\" />\n <ModalContainer />\n <ErrorModal />\n <Snackbar\n anchorOrigin={{ vertical: 'bottom', horizontal: 'center' }}\n open={Boolean(errorTooltipText)}\n onClose={handleCloseErrorTooltip}\n autoHideDuration={6000}\n >\n <StyledToast id=\"error-tooltip\">\n <StyledToastContent data-testid=\"error-tooltip\">\n {errorTooltipText}\n </StyledToastContent>\n <StyledIconButton\n iconName=\"close\"\n onClick={handleCloseErrorTooltip}\n ></StyledIconButton>\n </StyledToast>\n </Snackbar>\n </>\n );\n}\n\nfunction MenuComponent() {\n const dispatch = useAppDispatch();\n const activeTool = useAppSelector(selectEditorActiveTool);\n const editor = useAppSelector(selectEditor);\n const activeMenuItems = [activeTool];\n const isSnakeMode = useSnakeMode();\n if (isSnakeMode) activeMenuItems.push('snake-mode');\n const menuItemChanged = (name) => {\n if (modalComponentList[name]) {\n dispatch(openModal(name));\n } else if (name === 'snake-mode') {\n editor.events.selectMode.dispatch(!isSnakeMode);\n } else if (name === 'undo' || name === 'redo') {\n editor.events.selectHistory.dispatch(name);\n } else if (!['zoom-in', 'zoom-out', 'zoom-reset'].includes(name)) {\n editor.events.selectTool.dispatch(name);\n if (name === 'clear') {\n dispatch(selectTool('select-rectangle'));\n editor.events.selectTool.dispatch('select-rectangle');\n } else {\n dispatch(selectTool(name));\n }\n }\n };\n\n return (\n <Menu\n testId=\"left-toolbar\"\n onItemClick={menuItemChanged}\n activeMenuItems={activeMenuItems}\n >\n <Menu.Group>\n <Menu.Item\n itemId=\"clear\"\n title=\"Clear Canvas\"\n testId=\"clear-canvas-button\"\n />\n </Menu.Group>\n <Menu.Group>\n <Menu.Item itemId=\"undo\" testId=\"undo-button\" />\n <Menu.Item itemId=\"redo\" testId=\"redo-button\" />\n </Menu.Group>\n <Menu.Group>\n <Menu.Item itemId=\"open\" title=\"Open...\" testId=\"open-button\" />\n <Menu.Item itemId=\"save\" title=\"Save as...\" testId=\"save-button\" />\n </Menu.Group>\n <Menu.Group>\n <Menu.Item itemId=\"erase\" title=\"Erase\" testId=\"erase-button\" />\n <Menu.Item\n itemId=\"select-rectangle\"\n title=\"Select Rectangle\"\n testId=\"select-rectangle-button\"\n />\n </Menu.Group>\n <Menu.Group>\n <Menu.Item\n itemId=\"bond-single\"\n title=\"Single Bond (1)\"\n testId=\"single-bond-button\"\n />\n </Menu.Group>\n <Menu.Group divider>\n <Menu.Item\n itemId=\"snake-mode\"\n title=\"Snake mode\"\n testId=\"snake-mode-button\"\n />\n </Menu.Group>\n <Menu.Group>\n <Menu.Item itemId=\"zoom-in\" title=\"Zoom In\" testId=\"zoom-in-button\" />\n <Menu.Item\n itemId=\"zoom-out\"\n title=\"Zoom Out\"\n testId=\"zoom-out-button\"\n />\n <Menu.Item\n itemId=\"zoom-reset\"\n title=\"Reset Zoom\"\n testId=\"reset-zoom-button\"\n />\n </Menu.Group>\n </Menu>\n );\n}\n\nexport { EditorContainer as Editor };\n"],"names":["initialState","isReady","activeTool","editor","undefined","preview","monomer","style","editorSlice","createSlice","name","reducers","init","state","initSuccess","initFailure","selectTool","action","payload","createEditor","CoreEditor","theme","canvas","destroyEditor","switchToMicromolecules","showPreview","_editorSlice$actions","actions","selectShowPreview","selectEditorActiveTool","selectEditor","editorReducer","reducer","fetchData","_marked2","_regeneratorRuntime","mark","watchFetchData","FETCH_DATA","fetchDataCall","Promise","resolve","setTimeout","wrap","fetchData$","_context","prev","next","put","call","t0","KetcherLogger","error","stop","_marked","watchFetchData$","_context2","takeEvery","MONOMER_LIBRARY_FAVORITES","MONOMER_TYPES","PEPTIDE","CHEM","RNA","EditorClassName","EditorQuerySelector","concat","width","height","gap","topPadding","MonomerGroups","MonomerGroupCodes","MonomerCodeToGroup","R","SUGARS","A","BASES","C","G","T","U","X","P","PHOSPHATES","FAVORITE_ITEMS_UNIQUE_KEYS","LocalStorageWrapper","_classCallCheck","localStorage","window","_createClass","key","value","getItem","item","JSON","parse","setItem","stringify","localStorageWrapper","monomers","favorites","searchFilter","selectedTabIndex","getMonomerUniqueKey","props","MonomerName","Name","getPresetUniqueKey","preset","_preset$base","_preset$sugar","_preset$phosphate","base","label","sugar","phosphate","librarySlice","loadMonomerLibrary","newData","map","monomerLeavingGroups","MonomerCaps","_monomer$props$Monome","monomerLeavingGroupsArray","split","reduce","acc","_item$slice$split","slice","_item$slice$split2","_slicedToArray","attachmentPoint","leavingGroup","_objectSpread","setFavoriteMonomersFromLocalStorage","localFavorites","favoritesInLocalStorage","Array","isArray","forEach","uniqueKey","favoriteItem","find","favorite","clearFavorites","toggleMonomerFavorites","favoriteItemsUniqueKeys","filter","targetKey","push","setSearchFilter","setSelectedTabIndex","selectMonomersInCategory","items","category","_item$props","MonomerType","selectMonomersInFavorites","selectFilteredMonomers","_state$library","library","_item$props2","_item$props2$Name","_item$props2$MonomerN","monomerName","toLowerCase","monomerNameFull","normalizedSearchFilter","cond","includes","selectMonomers","selectMonomerGroups","preparedData","result","monomerItem","code","MonomerNaturalAnalogCode","preparedGroups","Object","keys","sort","group","groupTitle","groupItems","length","selectCurrentTabIndex","_librarySlice$actions","libraryReducer","rootSaga","rootSaga$","spawn","isOpen","additionalProps","errorTooltipText","errorModalText","modalSlice","openModal","closeModal","openErrorTooltip","closeErrorTooltip","openErrorModal","closeErrorModal","_modalSlice$actions","selectModalName","modal","selectModalIsOpen","selectAdditionalProps","selectErrorTooltipText","selectErrorModalText","modalReducer","RnaBuilderPresetsItem","activePreset","activePresetMonomerGroup","presets","activeRnaBuilderItem","isEditMode","uniqueNameError","activePresetForContextMenu","monomerGroupToPresetGroup","_defineProperty","rnaBuilderSlice","createNewPreset","setActivePreset","presetInList","setActivePresetForContextMenu","setActivePresetName","setActiveRnaBuilderItem","setActivePresetMonomerGroup","savePreset","newPreset","presetIndexInList","findIndex","_preset$presetInList","splice","deletePreset","setIsEditMode","setUniqueNameError","setDefaultPresets","defaultNucleotide","presetExists","setFavoritePresetsFromLocalStorage","MONOMER_CONST","togglePresetFavorites","presetIndex","uniquePresetKey","isKeyAlreadyExisted","some","selectActiveRnaBuilderItem","rnaBuilder","selectActivePreset","selectPresets","selectCurrentMonomerGroup","groupName","selectActivePresetMonomerGroup","selectIsPresetReadyToSave","Boolean","selectIsEditMode","selectPresetFullName","fullName","selectUniqueNameError","selectIsActivePresetNewAndEmpty","selectActivePresetForContextMenu","selectPresetsInFavorites","selectFilteredPresets","_item$name","_item$sugar","_item$phosphate","_item$base","sugarName","phosphateName","baseName","searchText","_rnaBuilderSlice$acti","rnaBuilderReducer","configureAppStore","preloadedState","arguments","sagaMiddleware","createSagaMiddleware","store","configureStore","middleware","getDefaultMiddleware","thunk","serializableCheck","run","monomerColors","colorA","regular","hover","colorCM","colorDQ","colorEN","colorFY","colorGX","colorH","colorILV","colorKR","colorP","colorST","colorW","colorU","chem","defaultTheme","color","background","primary","secondary","overlay","border","text","light","dark","lightgrey","tab","active","content","scroll","inactive","button","clicked","disabled","transparent","dropdown","tooltip","link","divider","spinner","input","focus","icon","grey","activeMenu","font","size","small","medium","xsmall","family","montserrat","inter","roboto","weight","bold","M","D","Q","E","N","F","Y","H","I","L","V","K","S","W","radius","shadow","outline","selected","transition","muiOverrides","getGlobalStyles","css","body","fontSize","ketcher","fontFamily","fontWeight","backgroundColor","boxSizing","div","h1","h2","h3","h4","h5","h6","p","textTransform","process","env","NODE_ENV","MONOMER_LIBRARY_WIDTH","MonomerLibraryContainer","_styled","target","_ref","boxShadow","display","flexDirection","borderRadius","MonomerLibraryTitle","_ref2","margin","padding","MonomerLibraryHeader","position","MonomerLibrarySearch","_ref3","alignItems","justifyContent","flex","Column","fullWidth","RowMain","paddingBottom","columnGap","Row","BaseLeftRightStyle","_ref4","_ref4$hide","hide","Left","Right","Top","_ref5","_ref5$shortened","shortened","marginBottom","Main","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","DummyDiv","Layout","_ref6","children","subcomponents","React","Children","child","type","_jsxs","_jsx","useAppDispatch","useDispatch","useAppSelector","useSelector","useSnakeMode","_useState","useState","_useState2","snakeMode","setSnakeMode","onSnakeModeChange","useCallback","newSnakeMode","useEffect","events","snakeModeChange","add","remove","TabPanelDiv","flexGrow","overflowY","TabPanelBox","Box","TabPanel","index","role","hidden","id","a11yProps","CustomTabs","dispatch","tabs","tabPanel","Component","component","componentProps","handleChange","_event","newTabIndex","StyledTabs","Tabs","StyledTab","Tab","minHeight","minWidth","cursor","textAlign","listStyleType","borderBottom","borderLeftColor","borderRightColor","TabPanelContent","flexWrap","_Fragment","onChange","caption","testId","EmptyFunction","calculatePreviewPosition","_document$querySelect","editorRect","document","querySelector","getBoundingClientRect","top","bottom","newStyle","defaultPresetBases","SUGAR","PHOSPHATE","getDefaultPresets","defaultBaseNames","values","ribose","defaultBases","defaultName","nucleotide","Card","_ref7","_theme$ketcher$monome","_ref8","_theme$ketcher$monome2","_ref9","_ref10","MonomerItem","onMouseLeave","onMouseMove","isSelected","_ref$onClick","onClick","setFavorite","colorCode","monomerKey","event","stopPropagation","className","ItemsContainer","GroupContainer","GroupTitle","MonomerGroup","title","selectedMonomerUniqueKey","libraryName","_ref$onItemClick","onItemClick","activeMonomerGroup","selectedItemInGroup","setSelectedItemInGroup","dispatchShowPreview","debouncedShowPreview","useMemo","debounce","handleItemMouseLeave","cancel","handleItemMouseMove","e","currentTarget","cardCoordinates","previewStyle","right","selectMonomer","isMonomerSelected","MonomerListContainer","MonomerCard","SummaryContainer","SummaryText","StyledIcon","Icon","transform","expanded","RnaPresetItem","_ref$onContextMenu","onContextMenu","showDots","setShowDots","_useState3","_useState4","onMouseOver","onMouseOut","addFavorite","CONTEXT_MENU_ID","StyledMenu","Menu","RNAContextMenu","RNA_TAB_INDEX","RNAMenus","seperator","isItemDisabled","handleMenuChange","duplicatePreset","editPreset","assembleMenuItems","Item","Separator","FOR_RNA","RnaPresetGroup","_useContextMenu","useContextMenu","show","selectPreset","getMenuPosition","currentPresetCard","_currentPresetCard$of","isDivCard","HTMLDivElement","parentElement","boundingBox","parentBox","offsetParent","contextMenuWidth","x","y","handleContextMenu","MonomerList","isFavoriteTab","monomerGroups","selectedMonomers","setSelectedMonomers","_index","groups","RnaAccordionContainer","StyledAccordion","Accordion","StyledAccordionWrapper","DetailsContainer","StyledButton","Button","borderColor","DisabledArea","Summary","quantity","iconName","RnaAccordion","isActivePresetNewAndEmpty","expandedAccordion","setExpandedAccordion","handleAccordionSummaryClick","rnaBuilderItem","groupsData","Presets","selectItem","groupItem","onClickNewPreset","groupData","summary","details","presetsExpanded","onSummaryClick","RnaEditorCollapsedContainer","overflow","textOverflow","TextContainer","RnaEditorCollapsed","GroupBlockContainer","marginLeft","outlineOffset","borderLeft","GroupName","marginTop","empty","GroupIcon","stroke","paddingRight","groupNameToLabel","groupNameToRnaEditorItemLabel","GroupBlock","testid","RnaEditorExpandedContainer","GroupsContainer","ButtonsContainer","whiteSpace","NameContainer","NameLine","left","NameInput","Input","PresetName","RnaEditorExpanded","onDuplicate","setNewPrest","updatePresetMonomerGroup","currentPreset","presetFullName","editedName","scrollToActiveItemInLibrary","selectedGroup","scrollToSelectedPreset","activeMonomerInSelectedGroup","scrollToSelectedMonomer","selectGroup","selectedRNAPartMonomer","onChangeName","newPresetName","trim","onSave","presetWithSameName","onCancel","turnOnEditMode","getMonomerName","_selectCurrentMonomer","_selectCurrentMonomer2","mainButton","placeholder","RnaEditorContainer","flexShrink","StyledHeader","paddingLeft","ExpandButton","ExpandIcon","scrollToElement","selector","element","scrollIntoView","behavior","presetName","monomerId","RnaEditor","activePresetFullName","setExpanded","expandEditor","RnaBuilderContainer","scrollbarThin","StyledDialog","Dialog","Header","DialogTitle","Title","Content","DialogContent","Footer","DialogActions","withborder","Modal","_ref6$showCloseButton","showCloseButton","_ref6$showExpandButto","showExpandButton","onClose","modalWidth","_ref6$expanded","_ref6$setExpanded","useTheme","paperProps","maxWidth","maxHeight","backdropProps","opacity","BackdropProps","PaperProps","open","disableEscapeKeyDown","sx","IconButton","expandButton","RnaBuilder","tabsContent","MonomerLibrary","memo","presetsRef","useRef","current","filterResults","duplicatedPreset","onInput","StyledMonomerLibraryToggle","visibility","lineHeight","userSelect","marginRight","MonomerLibraryToggle","isHidden","MenuContext","createContext","useMenuContext","useContext","StyledIconButton","MenuItem","itemId","_ref$title","_useMenuContext","isActive","activate","onClickCallback","isActiveItem","activeClass","StyledDropdownIcon","shouldForwardProp","prop","RootContainer","OptionsContainer","isVertical","OptionsItemsCollapse","Collapse","VisibleItem","SubMenu","_subComponents$find","_ref$vertical","vertical","setOpen","handleDropDownClick","hideCollapse","subComponents","options","activeOption","itemKey","visibleItemId","visibleItemTitle","option","timeout","unmountOnExit","ClickAwayListener","onClickAway","MenuLayout","Divider","StyledGroup","Group","_ref$divider","activeMenuItems","context","Provider","Submenu","LoadContainer","LoadingCircles","ICON_NAME","FileBox","AnalyzingFile","fileName","baseStyle","activeStyle","ButtonContainer","FileDrop","textLabel","disabledText","rest","_objectWithoutProperties","_excluded","_useDropzone","useDropzone","multiple","noClick","getRootProps","getInputProps","isDragActive","DisabledText","OpenOptionText","ICON_NAMES","PASTE","FILE","IMAGE","DropContainer","OpenOptions","selectClipboard","fileLoadHandler","errorHandler","onDropAccepted","onDropRejected","buttonLabel","accept","StyledTextarea","readOnly","TextArea","inputHandler","_ref5$readonly","readonly","_ref5$selectOnInit","selectOnInit","textArea","_textArea$current","select","ref","StyledTextField","ViewSwitcher","isAnalyzingFile","currentState","states","openOptions","textEditor","baseButtonStyle","PrimaryButton","MuiButton","SecondaryButton","ActionButton","clickHandler","styleType","fileOpener","reject","global","FileReader","throughFileReader","Error","file","rd","onload","msClose","onerror","readAsText","shams","hasSymbols","hasSymbolSham","hasProto","toStr","implementation","bind","$SyntaxError","$TypeError","$gOPD","require$$0","require$$1","getProto","hasOwn","$defineProperty","GetIntrinsic","hasPropertyDescriptors","defineDataProperty","gopd","define","$indexOf","hasToStringTag","$toString","isArguments","fnToStr","hasOwnProperty","g","availableTypedArrays","whichTypedArray","isArgumentsObject","require$$2","_typeof","_defineProperties","_toPropertyKey","_toPrimitive","_inherits","_setPrototypeOf","_createSuper","_isNativeReflectConstruct","_getPrototypeOf","_possibleConstructorReturn","_assertThisInitialized","endsWith","ownKeys","_require","_require2","keysShim","isArgs","polyfill","numberIsNaN","shim","getPolyfill","objectIs","require$$3","AssertionError","OpenFileWrapper","MODAL_STATES","CancelButton","ChevronStyled","ChevronIcon","StyledFormControl","FormControl","DropDownSelect","Select","stylesForExpanded","borderTopWidth","DropDownItem","DropDown","currentSelection","selectionHandler","_ref5$customStylesFor","customStylesForExpanded","renderLabelById","selectedOption","handleSelection","handleExpand","handleCollapse","htmlFor","onOpen","renderValue","IconComponent","MenuProps","MenuListProps","ListItemText","Form","StyledDropdown","Loader","addToCanvas","ketSerializer","struct","deserialisedKet","deserializeToDrawingEntities","assert","drawingEntitiesManager","centerMacroStructure","modelChanges","mergeInto","editorHistory","EditorHistory","update","renderersContainer","onOk","_asyncToGenerator","_callee","onCloseCallback","setIsLoading","isKet","indigo","ketStruct","stringError","errorMessage","_callee$","fragment","identifyStructFormat","SupportedFormat","ket","KetSerializer","provideEditorInstance","abrupt","IndigoProvider","getIndigo","convert","output_format","ChemicalMimeType","KET","sent","finish","_x","apply","Open","isModalOpen","structStr","setStructStr","setFileName","_useState5","_useState6","isLoading","_useState7","_useState8","opener","setOpener","_useState9","_useState10","setCurrentState","then","chosenOpener","onFileLoad","files","onLoad","fileContent","onError","copyHandler","openHandler","getButtons","Label","letterSpacing","TextInputField","SupportedFormatProperties","mime","extensions","supportsCoords","formatProperties","Ket","mol","Mol","getPropertiesByFormat","format","StyledModal","Save","currentFileFormat","setCurrentFileFormat","currentFileName","setCurrentFileName","setStruct","handleSelectChange","fileFormat","serializedKet","serialize","micromoleculesHiddenEntities","clone","handleInputChange","handleSave","blob","Blob","saveAs","onSubmit","StyledActionButton","DeleteTextWrapper","Delete","cancelHandler","deleteHandler","AttachmentPointList","AttachmentPoint","rowGap","AttachmentPointName","isExpanded","alignSelf","flexBasis","ConnectionSymbol","AttachmentPointsRow","gridAutoFlow","gridTemplateRows","gridTemplateColumns","ModalContent","StyledStructRender","StructRender","ActionButtonLeft","ActionButtonRight","ActionButtonAttachmentPoint","MonomerConnection","firstMonomer","secondMonomer","getDefaultAttachmentPoint","firstSelectedAttachmentPoint","setFirstSelectedAttachmentPoint","secondSelectedAttachmentPoint","setSecondSelectedAttachmentPoint","modalExpanded","setModalExpanded","cancelBondCreationAndClose","cancelBondCreationViaModal","connectMonomers","createBondViaModal","AttachmentPointSelectionPanel","selectedAttachmentPoint","onSelectAttachmentPoint","_ref3$expanded","bonds","attachmentPointsToBonds","connectedAttachmentPoints","getConnectedAttachmentPoints","getLeavingGroup","connectedMonomerAttachmentPoints","currentlySelectedMonomerAttachmentPoint","labelInMonomerConnectionsModal","needCache","listOfAttachmentPoints","connectedAttachmentPointName","chosenFirstAttachmentPointForBond","entries","_","bond","chosenSecondAttachmentPointForBond","possibleAttachmentPoints","_possibleAttachmentPo","attachmentPointName","modalComponentList","save","monomerConnection","ModalContainer","modalName","handleClose","StyledToast","StyledToastContent","ChemAvatar","viewBox","rx","fill","strokeWidth","PeptideAvatar","d","xmlns","SugarAvatar","PhosphateAvatar","RNABaseAvatar","Container","MonomerPreview","ContainerDynamic","_preview$style","_preview$style2","_preview$style3","StyledPreview","ErrorTextWrapper","ErrorModal","errorText","EditorWrapper","containerType","useLoading","ketcherProvider","getKetcher","onLoadingStart","onLoadingFinish","eventBus","addListener","KetcherAsyncEvents","LOADING","SUCCESS","FAILURE","removeListener","LoadingCirclesWrapper","requestFullscreen","msRequestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","exitFullscreen","msExitFullscreen","mozCancelFullScreen","webkitExitFullscreen","isFullScreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","FullscreenButton","fullScreenMode","setFullScreenMode","toggleFullscreen","documentElement","muiTheme","createTheme","noPreviewTools","EditorContainer","onInit","togglerComponent","rootElRef","editorTheme","merge","mergedTheme","ThemeProvider","Global","Editor","canvasRef","isMonomerLibraryHidden","setIsMonomerLibraryHidden","serializer","SdfSerializer","deserialize","monomersData","defaultPresets","handler","toolName","openMonomerConnectionModal","handleOpenPreview","__data__","handleClosePreview","mouseOverMonomer","mouseLeaveMonomer","mouseOnMoveMonomer","isLeftClick","buttons","zoomTool","observeCanvasResize","destroy","handleCloseErrorTooltip","MenuComponent","preserveAspectRatio","overflowClipMargin","Snackbar","anchorOrigin","horizontal","autoHideDuration","isSnakeMode","menuItemChanged","selectMode","selectHistory"],"mappings":"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"}