@datagrok/helm 2.13.8 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/dist/489.js +2 -0
  2. package/dist/489.js.map +1 -0
  3. package/dist/package-test.js +1 -1
  4. package/dist/package-test.js.map +1 -1
  5. package/dist/package.js +1 -1
  6. package/dist/package.js.map +1 -1
  7. package/files/samples/helm-showcase.csv +56 -0
  8. package/package.json +6 -10
  9. package/src/helm-helper.ts +61 -413
  10. package/src/package-api.ts +14 -11
  11. package/src/package-test.ts +0 -2
  12. package/src/package-utils.ts +8 -298
  13. package/src/package.g.ts +2 -8
  14. package/src/package.ts +11 -31
  15. package/src/tests/helm-activity-cliffs.ts +2 -2
  16. package/src/tests/helm-input-tests.ts +83 -0
  17. package/src/tests/parse-helm-tests.ts +7 -57
  18. package/src/tests/properties-widget-tests.ts +21 -11
  19. package/src/utils/helm-grid-cell-renderer.ts +141 -151
  20. package/src/utils/index.ts +3 -7
  21. package/src/widgets/helm-input.ts +42 -12
  22. package/src/widgets/properties-widget.ts +18 -11
  23. package/test-console-output-1.log +105 -714
  24. package/test-record-1.mp4 +0 -0
  25. package/webpack.config.js +1 -12
  26. package/dist/455.js +0 -2
  27. package/dist/455.js.map +0 -1
  28. package/dist/package-dojo.js +0 -2
  29. package/dist/package-dojo.js.map +0 -1
  30. package/helm/JSDraw/Pistoia.HELM-uncompressed.js +0 -9694
  31. package/helm/JSDraw/ReadMe.txt +0 -8
  32. package/helm/JSDraw/Scilligence.JSDraw2.Lite-uncompressed.js +0 -31126
  33. package/helm/dojo/package.ts +0 -41
  34. package/helm/dojo/types.ts +0 -12
  35. package/src/helm-web-editor.ts +0 -68
  36. package/src/tests/get-monomer-tests.ts +0 -214
  37. package/src/tests/helm-service-tests.ts +0 -98
  38. package/src/types/dojo.ts +0 -3
  39. package/src/types/index.ts +0 -5
  40. package/src/utils/get-monomer.ts +0 -90
  41. package/src/utils/helm-service.ts +0 -166
  42. package/vendor/dojo-1.10.10/dijit/BackgroundIframe.js +0 -63
  43. package/vendor/dojo-1.10.10/dijit/BackgroundIframe.js.uncompressed.js +0 -116
  44. package/vendor/dojo-1.10.10/dijit/Destroyable.js +0 -35
  45. package/vendor/dojo-1.10.10/dijit/Destroyable.js.uncompressed.js +0 -83
  46. package/vendor/dojo-1.10.10/dijit/Tooltip.js +0 -240
  47. package/vendor/dojo-1.10.10/dijit/Tooltip.js.uncompressed.js +0 -612
  48. package/vendor/dojo-1.10.10/dijit/Viewport.js +0 -44
  49. package/vendor/dojo-1.10.10/dijit/Viewport.js.uncompressed.js +0 -87
  50. package/vendor/dojo-1.10.10/dijit/WidgetSet.js +0 -76
  51. package/vendor/dojo-1.10.10/dijit/WidgetSet.js.uncompressed.js +0 -247
  52. package/vendor/dojo-1.10.10/dijit/_AttachMixin.js +0 -94
  53. package/vendor/dojo-1.10.10/dijit/_AttachMixin.js.uncompressed.js +0 -238
  54. package/vendor/dojo-1.10.10/dijit/_Contained.js +0 -17
  55. package/vendor/dojo-1.10.10/dijit/_Contained.js.uncompressed.js +0 -56
  56. package/vendor/dojo-1.10.10/dijit/_Container.js +0 -47
  57. package/vendor/dojo-1.10.10/dijit/_Container.js.uncompressed.js +0 -108
  58. package/vendor/dojo-1.10.10/dijit/_CssStateMixin.js +0 -198
  59. package/vendor/dojo-1.10.10/dijit/_CssStateMixin.js.uncompressed.js +0 -372
  60. package/vendor/dojo-1.10.10/dijit/_FocusMixin.js +0 -11
  61. package/vendor/dojo-1.10.10/dijit/_FocusMixin.js.uncompressed.js +0 -66
  62. package/vendor/dojo-1.10.10/dijit/_HasDropDown.js +0 -188
  63. package/vendor/dojo-1.10.10/dijit/_HasDropDown.js.uncompressed.js +0 -472
  64. package/vendor/dojo-1.10.10/dijit/_OnDijitClickMixin.js +0 -8
  65. package/vendor/dojo-1.10.10/dijit/_OnDijitClickMixin.js.uncompressed.js +0 -31
  66. package/vendor/dojo-1.10.10/dijit/_TemplatedMixin.js +0 -90
  67. package/vendor/dojo-1.10.10/dijit/_TemplatedMixin.js.uncompressed.js +0 -205
  68. package/vendor/dojo-1.10.10/dijit/_Widget.js +0 -66
  69. package/vendor/dojo-1.10.10/dijit/_Widget.js.uncompressed.js +0 -352
  70. package/vendor/dojo-1.10.10/dijit/_WidgetBase.js +0 -353
  71. package/vendor/dojo-1.10.10/dijit/_WidgetBase.js.uncompressed.js +0 -1200
  72. package/vendor/dojo-1.10.10/dijit/_base/focus.js +0 -68
  73. package/vendor/dojo-1.10.10/dijit/_base/focus.js.uncompressed.js +0 -207
  74. package/vendor/dojo-1.10.10/dijit/_base/manager.js +0 -10
  75. package/vendor/dojo-1.10.10/dijit/_base/manager.js.uncompressed.js +0 -35
  76. package/vendor/dojo-1.10.10/dijit/_base/place.js +0 -52
  77. package/vendor/dojo-1.10.10/dijit/_base/place.js.uncompressed.js +0 -131
  78. package/vendor/dojo-1.10.10/dijit/_base/popup.js +0 -23
  79. package/vendor/dojo-1.10.10/dijit/_base/popup.js.uncompressed.js +0 -58
  80. package/vendor/dojo-1.10.10/dijit/_base/scroll.js +0 -6
  81. package/vendor/dojo-1.10.10/dijit/_base/scroll.js.uncompressed.js +0 -22
  82. package/vendor/dojo-1.10.10/dijit/_base/sniff.js +0 -3
  83. package/vendor/dojo-1.10.10/dijit/_base/sniff.js.uncompressed.js +0 -12
  84. package/vendor/dojo-1.10.10/dijit/_base/typematic.js +0 -3
  85. package/vendor/dojo-1.10.10/dijit/_base/typematic.js.uncompressed.js +0 -10
  86. package/vendor/dojo-1.10.10/dijit/_base/wai.js +0 -32
  87. package/vendor/dojo-1.10.10/dijit/_base/wai.js.uncompressed.js +0 -109
  88. package/vendor/dojo-1.10.10/dijit/_base/window.js +0 -6
  89. package/vendor/dojo-1.10.10/dijit/_base/window.js.uncompressed.js +0 -18
  90. package/vendor/dojo-1.10.10/dijit/_base.js +0 -4
  91. package/vendor/dojo-1.10.10/dijit/_base.js.uncompressed.js +0 -27
  92. package/vendor/dojo-1.10.10/dijit/a11y.js +0 -109
  93. package/vendor/dojo-1.10.10/dijit/a11y.js.uncompressed.js +0 -191
  94. package/vendor/dojo-1.10.10/dijit/a11yclick.js +0 -66
  95. package/vendor/dojo-1.10.10/dijit/a11yclick.js.uncompressed.js +0 -139
  96. package/vendor/dojo-1.10.10/dijit/focus.js +0 -188
  97. package/vendor/dojo-1.10.10/dijit/focus.js.uncompressed.js +0 -371
  98. package/vendor/dojo-1.10.10/dijit/form/Button.js +0 -49
  99. package/vendor/dojo-1.10.10/dijit/form/Button.js.uncompressed.js +0 -130
  100. package/vendor/dojo-1.10.10/dijit/form/ComboBox.js +0 -4
  101. package/vendor/dojo-1.10.10/dijit/form/ComboBox.js.uncompressed.js +0 -27
  102. package/vendor/dojo-1.10.10/dijit/form/ComboButton.js +0 -21
  103. package/vendor/dojo-1.10.10/dijit/form/ComboButton.js.uncompressed.js +0 -86
  104. package/vendor/dojo-1.10.10/dijit/form/DropDownButton.js +0 -38
  105. package/vendor/dojo-1.10.10/dijit/form/DropDownButton.js.uncompressed.js +0 -102
  106. package/vendor/dojo-1.10.10/dijit/form/ToggleButton.js +0 -7
  107. package/vendor/dojo-1.10.10/dijit/form/ToggleButton.js.uncompressed.js +0 -26
  108. package/vendor/dojo-1.10.10/dijit/form/_ButtonMixin.js +0 -50
  109. package/vendor/dojo-1.10.10/dijit/form/_ButtonMixin.js.uncompressed.js +0 -116
  110. package/vendor/dojo-1.10.10/dijit/form/_FormValueMixin.js +0 -26
  111. package/vendor/dojo-1.10.10/dijit/form/_FormValueMixin.js.uncompressed.js +0 -81
  112. package/vendor/dojo-1.10.10/dijit/form/_FormValueWidget.js +0 -24
  113. package/vendor/dojo-1.10.10/dijit/form/_FormValueWidget.js.uncompressed.js +0 -51
  114. package/vendor/dojo-1.10.10/dijit/form/_FormWidget.js +0 -22
  115. package/vendor/dojo-1.10.10/dijit/form/_FormWidget.js.uncompressed.js +0 -67
  116. package/vendor/dojo-1.10.10/dijit/form/_FormWidgetMixin.js +0 -111
  117. package/vendor/dojo-1.10.10/dijit/form/_FormWidgetMixin.js.uncompressed.js +0 -254
  118. package/vendor/dojo-1.10.10/dijit/form/_ToggleButtonMixin.js +0 -32
  119. package/vendor/dojo-1.10.10/dijit/form/_ToggleButtonMixin.js.uncompressed.js +0 -69
  120. package/vendor/dojo-1.10.10/dijit/hccss.js +0 -9
  121. package/vendor/dojo-1.10.10/dijit/hccss.js.uncompressed.js +0 -21
  122. package/vendor/dojo-1.10.10/dijit/layout/AccordionContainer.js +0 -215
  123. package/vendor/dojo-1.10.10/dijit/layout/AccordionContainer.js.uncompressed.js +0 -550
  124. package/vendor/dojo-1.10.10/dijit/layout/AccordionPane.js +0 -7
  125. package/vendor/dojo-1.10.10/dijit/layout/AccordionPane.js.uncompressed.js +0 -25
  126. package/vendor/dojo-1.10.10/dijit/layout/ContentPane.js +0 -235
  127. package/vendor/dojo-1.10.10/dijit/layout/ContentPane.js.uncompressed.js +0 -653
  128. package/vendor/dojo-1.10.10/dijit/layout/StackContainer.js +0 -171
  129. package/vendor/dojo-1.10.10/dijit/layout/StackContainer.js.uncompressed.js +0 -411
  130. package/vendor/dojo-1.10.10/dijit/layout/StackController.js +0 -194
  131. package/vendor/dojo-1.10.10/dijit/layout/StackController.js.uncompressed.js +0 -410
  132. package/vendor/dojo-1.10.10/dijit/layout/_ContentPaneResizeMixin.js +0 -99
  133. package/vendor/dojo-1.10.10/dijit/layout/_ContentPaneResizeMixin.js.uncompressed.js +0 -236
  134. package/vendor/dojo-1.10.10/dijit/layout/_LayoutWidget.js +0 -47
  135. package/vendor/dojo-1.10.10/dijit/layout/_LayoutWidget.js.uncompressed.js +0 -190
  136. package/vendor/dojo-1.10.10/dijit/layout/utils.js +0 -77
  137. package/vendor/dojo-1.10.10/dijit/layout/utils.js.uncompressed.js +0 -151
  138. package/vendor/dojo-1.10.10/dijit/main.js +0 -4
  139. package/vendor/dojo-1.10.10/dijit/main.js.uncompressed.js +0 -16
  140. package/vendor/dojo-1.10.10/dijit/nls/dijit-all_en-us.js +0 -2
  141. package/vendor/dojo-1.10.10/dijit/nls/dijit-all_en-us.js.uncompressed.js +0 -21
  142. package/vendor/dojo-1.10.10/dijit/nls/loading.js +0 -2
  143. package/vendor/dojo-1.10.10/dijit/nls/loading.js.uncompressed.js +0 -47
  144. package/vendor/dojo-1.10.10/dijit/place.js +0 -142
  145. package/vendor/dojo-1.10.10/dijit/place.js.uncompressed.js +0 -407
  146. package/vendor/dojo-1.10.10/dijit/popup.js +0 -162
  147. package/vendor/dojo-1.10.10/dijit/popup.js.uncompressed.js +0 -441
  148. package/vendor/dojo-1.10.10/dijit/registry.js +0 -79
  149. package/vendor/dojo-1.10.10/dijit/registry.js.uncompressed.js +0 -159
  150. package/vendor/dojo-1.10.10/dijit/selection.js +0 -364
  151. package/vendor/dojo-1.10.10/dijit/selection.js.uncompressed.js +0 -525
  152. package/vendor/dojo-1.10.10/dijit/typematic.js +0 -96
  153. package/vendor/dojo-1.10.10/dijit/typematic.js.uncompressed.js +0 -211
  154. package/vendor/dojo-1.10.10/dojo/NodeList-manipulate.js +0 -195
  155. package/vendor/dojo-1.10.10/dojo/NodeList-manipulate.js.uncompressed.js +0 -761
  156. package/vendor/dojo-1.10.10/dojo/Stateful.js +0 -90
  157. package/vendor/dojo-1.10.10/dojo/Stateful.js.uncompressed.js +0 -218
  158. package/vendor/dojo-1.10.10/dojo/_base/url.js +0 -87
  159. package/vendor/dojo-1.10.10/dojo/_base/url.js.uncompressed.js +0 -109
  160. package/vendor/dojo-1.10.10/dojo/cache.js +0 -9
  161. package/vendor/dojo-1.10.10/dojo/cache.js.uncompressed.js +0 -7
  162. package/vendor/dojo-1.10.10/dojo/colors.js +0 -74
  163. package/vendor/dojo-1.10.10/dojo/colors.js.uncompressed.js +0 -232
  164. package/vendor/dojo-1.10.10/dojo/cookie.js +0 -48
  165. package/vendor/dojo-1.10.10/dojo/cookie.js.uncompressed.js +0 -98
  166. package/vendor/dojo-1.10.10/dojo/date/stamp.js +0 -82
  167. package/vendor/dojo-1.10.10/dojo/date/stamp.js.uncompressed.js +0 -144
  168. package/vendor/dojo-1.10.10/dojo/dojo.js +0 -7
  169. package/vendor/dojo-1.10.10/dojo/dojo.js.uncompressed.js +0 -18680
  170. package/vendor/dojo-1.10.10/dojo/fx/Toggler.js +0 -27
  171. package/vendor/dojo-1.10.10/dojo/fx/Toggler.js.uncompressed.js +0 -101
  172. package/vendor/dojo-1.10.10/dojo/fx/easing.js +0 -165
  173. package/vendor/dojo-1.10.10/dojo/fx/easing.js.uncompressed.js +0 -276
  174. package/vendor/dojo-1.10.10/dojo/fx.js +0 -271
  175. package/vendor/dojo-1.10.10/dojo/fx.js.uncompressed.js +0 -443
  176. package/vendor/dojo-1.10.10/dojo/hccss.js +0 -26
  177. package/vendor/dojo-1.10.10/dojo/hccss.js.uncompressed.js +0 -52
  178. package/vendor/dojo-1.10.10/dojo/html.js +0 -161
  179. package/vendor/dojo-1.10.10/dojo/html.js.uncompressed.js +0 -370
  180. package/vendor/dojo-1.10.10/dojo/io/iframe.js +0 -71
  181. package/vendor/dojo-1.10.10/dojo/io/iframe.js.uncompressed.js +0 -190
  182. package/vendor/dojo-1.10.10/dojo/io/script.js +0 -112
  183. package/vendor/dojo-1.10.10/dojo/io/script.js.uncompressed.js +0 -280
  184. package/vendor/dojo-1.10.10/dojo/parser.js +0 -437
  185. package/vendor/dojo-1.10.10/dojo/parser.js.uncompressed.js +0 -915
  186. package/vendor/dojo-1.10.10/dojo/promise/all.js +0 -59
  187. package/vendor/dojo-1.10.10/dojo/promise/all.js.uncompressed.js +0 -77
  188. package/vendor/dojo-1.10.10/dojo/regexp.js +0 -32
  189. package/vendor/dojo-1.10.10/dojo/regexp.js.uncompressed.js +0 -70
  190. package/vendor/dojo-1.10.10/dojo/request/iframe.js +0 -291
  191. package/vendor/dojo-1.10.10/dojo/request/iframe.js.uncompressed.js +0 -438
  192. package/vendor/dojo-1.10.10/dojo/request/script.js +0 -129
  193. package/vendor/dojo-1.10.10/dojo/request/script.js.uncompressed.js +0 -237
  194. package/vendor/dojo-1.10.10/dojo/require.js +0 -11
  195. package/vendor/dojo-1.10.10/dojo/require.js.uncompressed.js +0 -7
  196. package/vendor/dojo-1.10.10/dojo/resources/blank.gif +0 -0
  197. package/vendor/dojo-1.10.10/dojo/string.js +0 -67
  198. package/vendor/dojo-1.10.10/dojo/string.js.uncompressed.js +0 -181
  199. package/vendor/dojo-1.10.10/dojo/touch.js +0 -191
  200. package/vendor/dojo-1.10.10/dojo/touch.js.uncompressed.js +0 -468
  201. package/vendor/dojo-1.10.10/dojo/uacss.js +0 -36
  202. package/vendor/dojo-1.10.10/dojo/uacss.js.uncompressed.js +0 -85
  203. package/vendor/dojo-1.10.10/dojo/window.js +0 -141
  204. package/vendor/dojo-1.10.10/dojo/window.js.uncompressed.js +0 -241
  205. package/vendor/dojo-1.10.10/dojox/charting/Chart.js +0 -626
  206. package/vendor/dojo-1.10.10/dojox/charting/Chart.js.uncompressed.js +0 -1220
  207. package/vendor/dojo-1.10.10/dojox/charting/Chart2D.js +0 -5
  208. package/vendor/dojo-1.10.10/dojox/charting/Chart2D.js.uncompressed.js +0 -16
  209. package/vendor/dojo-1.10.10/dojox/charting/Element.js +0 -247
  210. package/vendor/dojo-1.10.10/dojox/charting/Element.js.uncompressed.js +0 -402
  211. package/vendor/dojo-1.10.10/dojox/charting/Series.js +0 -24
  212. package/vendor/dojo-1.10.10/dojox/charting/Series.js.uncompressed.js +0 -58
  213. package/vendor/dojo-1.10.10/dojox/charting/SimpleTheme.js +0 -191
  214. package/vendor/dojo-1.10.10/dojox/charting/SimpleTheme.js.uncompressed.js +0 -577
  215. package/vendor/dojo-1.10.10/dojox/charting/Theme.js +0 -42
  216. package/vendor/dojo-1.10.10/dojox/charting/Theme.js.uncompressed.js +0 -120
  217. package/vendor/dojo-1.10.10/dojox/charting/action2d/Base.js +0 -11
  218. package/vendor/dojo-1.10.10/dojox/charting/action2d/Base.js.uncompressed.js +0 -36
  219. package/vendor/dojo-1.10.10/dojox/charting/action2d/Highlight.js +0 -77
  220. package/vendor/dojo-1.10.10/dojox/charting/action2d/Highlight.js.uncompressed.js +0 -144
  221. package/vendor/dojo-1.10.10/dojox/charting/action2d/Magnify.js +0 -58
  222. package/vendor/dojo-1.10.10/dojox/charting/action2d/Magnify.js.uncompressed.js +0 -123
  223. package/vendor/dojo-1.10.10/dojox/charting/action2d/MoveSlice.js +0 -54
  224. package/vendor/dojo-1.10.10/dojox/charting/action2d/MoveSlice.js.uncompressed.js +0 -124
  225. package/vendor/dojo-1.10.10/dojox/charting/action2d/PlotAction.js +0 -28
  226. package/vendor/dojo-1.10.10/dojox/charting/action2d/PlotAction.js.uncompressed.js +0 -74
  227. package/vendor/dojo-1.10.10/dojox/charting/action2d/Tooltip.js +0 -116
  228. package/vendor/dojo-1.10.10/dojox/charting/action2d/Tooltip.js.uncompressed.js +0 -178
  229. package/vendor/dojo-1.10.10/dojox/charting/axis2d/Base.js +0 -24
  230. package/vendor/dojo-1.10.10/dojox/charting/axis2d/Base.js.uncompressed.js +0 -83
  231. package/vendor/dojo-1.10.10/dojox/charting/axis2d/Default.js +0 -557
  232. package/vendor/dojo-1.10.10/dojox/charting/axis2d/Default.js.uncompressed.js +0 -980
  233. package/vendor/dojo-1.10.10/dojox/charting/axis2d/Invisible.js +0 -65
  234. package/vendor/dojo-1.10.10/dojox/charting/axis2d/Invisible.js.uncompressed.js +0 -224
  235. package/vendor/dojo-1.10.10/dojox/charting/axis2d/common.js +0 -91
  236. package/vendor/dojo-1.10.10/dojox/charting/axis2d/common.js.uncompressed.js +0 -164
  237. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Areas.js +0 -7
  238. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Areas.js.uncompressed.js +0 -14
  239. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bars.js +0 -168
  240. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bars.js.uncompressed.js +0 -311
  241. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Base.js +0 -61
  242. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Base.js.uncompressed.js +0 -161
  243. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bubble.js +0 -141
  244. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Bubble.js.uncompressed.js +0 -242
  245. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Candlesticks.js +0 -126
  246. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Candlesticks.js.uncompressed.js +0 -243
  247. package/vendor/dojo-1.10.10/dojox/charting/plot2d/CartesianBase.js +0 -108
  248. package/vendor/dojo-1.10.10/dojox/charting/plot2d/CartesianBase.js.uncompressed.js +0 -290
  249. package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredBars.js +0 -13
  250. package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredBars.js.uncompressed.js +0 -14
  251. package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredColumns.js +0 -13
  252. package/vendor/dojo-1.10.10/dojox/charting/plot2d/ClusteredColumns.js.uncompressed.js +0 -14
  253. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Columns.js +0 -153
  254. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Columns.js.uncompressed.js +0 -249
  255. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Default.js +0 -253
  256. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Default.js.uncompressed.js +0 -472
  257. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Grid.js +0 -182
  258. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Grid.js.uncompressed.js +0 -356
  259. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Lines.js +0 -6
  260. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Lines.js.uncompressed.js +0 -12
  261. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Markers.js +0 -6
  262. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Markers.js.uncompressed.js +0 -12
  263. package/vendor/dojo-1.10.10/dojox/charting/plot2d/MarkersOnly.js +0 -7
  264. package/vendor/dojo-1.10.10/dojox/charting/plot2d/MarkersOnly.js.uncompressed.js +0 -13
  265. package/vendor/dojo-1.10.10/dojox/charting/plot2d/OHLC.js +0 -110
  266. package/vendor/dojo-1.10.10/dojox/charting/plot2d/OHLC.js.uncompressed.js +0 -208
  267. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Pie.js +0 -303
  268. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Pie.js.uncompressed.js +0 -547
  269. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Scatter.js +0 -134
  270. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Scatter.js.uncompressed.js +0 -207
  271. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Spider.js +0 -299
  272. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Spider.js.uncompressed.js +0 -537
  273. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Stacked.js +0 -24
  274. package/vendor/dojo-1.10.10/dojox/charting/plot2d/Stacked.js.uncompressed.js +0 -44
  275. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedAreas.js +0 -7
  276. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedAreas.js.uncompressed.js +0 -14
  277. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedBars.js +0 -22
  278. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedBars.js.uncompressed.js +0 -33
  279. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedColumns.js +0 -20
  280. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedColumns.js.uncompressed.js +0 -31
  281. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedLines.js +0 -6
  282. package/vendor/dojo-1.10.10/dojox/charting/plot2d/StackedLines.js.uncompressed.js +0 -12
  283. package/vendor/dojo-1.10.10/dojox/charting/plot2d/_PlotEvents.js +0 -68
  284. package/vendor/dojo-1.10.10/dojox/charting/plot2d/_PlotEvents.js.uncompressed.js +0 -120
  285. package/vendor/dojo-1.10.10/dojox/charting/plot2d/common.js +0 -209
  286. package/vendor/dojo-1.10.10/dojox/charting/plot2d/common.js.uncompressed.js +0 -214
  287. package/vendor/dojo-1.10.10/dojox/charting/plot2d/commonStacked.js +0 -76
  288. package/vendor/dojo-1.10.10/dojox/charting/plot2d/commonStacked.js.uncompressed.js +0 -77
  289. package/vendor/dojo-1.10.10/dojox/charting/scaler/common.js +0 -59
  290. package/vendor/dojo-1.10.10/dojox/charting/scaler/common.js.uncompressed.js +0 -70
  291. package/vendor/dojo-1.10.10/dojox/charting/scaler/linear.js +0 -220
  292. package/vendor/dojo-1.10.10/dojox/charting/scaler/linear.js.uncompressed.js +0 -262
  293. package/vendor/dojo-1.10.10/dojox/charting/scaler/primitive.js +0 -23
  294. package/vendor/dojo-1.10.10/dojox/charting/scaler/primitive.js.uncompressed.js +0 -36
  295. package/vendor/dojo-1.10.10/dojox/charting/themes/Claro.js +0 -39
  296. package/vendor/dojo-1.10.10/dojox/charting/themes/Claro.js.uncompressed.js +0 -106
  297. package/vendor/dojo-1.10.10/dojox/charting/themes/Wetland.js +0 -5
  298. package/vendor/dojo-1.10.10/dojox/charting/themes/Wetland.js.uncompressed.js +0 -12
  299. package/vendor/dojo-1.10.10/dojox/charting/themes/common.js +0 -4
  300. package/vendor/dojo-1.10.10/dojox/charting/themes/common.js.uncompressed.js +0 -3
  301. package/vendor/dojo-1.10.10/dojox/charting/widget/Legend.js +0 -102
  302. package/vendor/dojo-1.10.10/dojox/charting/widget/Legend.js.uncompressed.js +0 -165
  303. package/vendor/dojo-1.10.10/dojox/color/Palette.js +0 -163
  304. package/vendor/dojo-1.10.10/dojox/color/Palette.js.uncompressed.js +0 -460
  305. package/vendor/dojo-1.10.10/dojox/color/_base.js +0 -174
  306. package/vendor/dojo-1.10.10/dojox/color/_base.js.uncompressed.js +0 -196
  307. package/vendor/dojo-1.10.10/dojox/gfx/_base.js +0 -253
  308. package/vendor/dojo-1.10.10/dojox/gfx/_base.js.uncompressed.js +0 -1024
  309. package/vendor/dojo-1.10.10/dojox/gfx/fx.js +0 -297
  310. package/vendor/dojo-1.10.10/dojox/gfx/fx.js.uncompressed.js +0 -350
  311. package/vendor/dojo-1.10.10/dojox/gfx/gradutils.js +0 -63
  312. package/vendor/dojo-1.10.10/dojox/gfx/gradutils.js.uncompressed.js +0 -91
  313. package/vendor/dojo-1.10.10/dojox/gfx/matrix.js +0 -170
  314. package/vendor/dojo-1.10.10/dojox/gfx/matrix.js.uncompressed.js +0 -501
  315. package/vendor/dojo-1.10.10/dojox/gfx/path.js +0 -319
  316. package/vendor/dojo-1.10.10/dojox/gfx/path.js.uncompressed.js +0 -478
  317. package/vendor/dojo-1.10.10/dojox/gfx/shape.js +0 -459
  318. package/vendor/dojo-1.10.10/dojox/gfx/shape.js.uncompressed.js +0 -1091
  319. package/vendor/dojo-1.10.10/dojox/gfx/svg.js +0 -662
  320. package/vendor/dojo-1.10.10/dojox/gfx/svg.js.uncompressed.js +0 -1023
  321. package/vendor/dojo-1.10.10/dojox/gfx/utils.js +0 -199
  322. package/vendor/dojo-1.10.10/dojox/gfx/utils.js.uncompressed.js +0 -322
  323. package/vendor/dojo-1.10.10/dojox/gfx.js +0 -2
  324. package/vendor/dojo-1.10.10/dojox/gfx.js.uncompressed.js +0 -1136
  325. package/vendor/dojo-1.10.10/dojox/lang/functional/array.js +0 -151
  326. package/vendor/dojo-1.10.10/dojox/lang/functional/array.js.uncompressed.js +0 -169
  327. package/vendor/dojo-1.10.10/dojox/lang/functional/fold.js +0 -93
  328. package/vendor/dojo-1.10.10/dojox/lang/functional/fold.js.uncompressed.js +0 -125
  329. package/vendor/dojo-1.10.10/dojox/lang/functional/lambda.js +0 -81
  330. package/vendor/dojo-1.10.10/dojox/lang/functional/lambda.js.uncompressed.js +0 -132
  331. package/vendor/dojo-1.10.10/dojox/lang/functional/object.js +0 -54
  332. package/vendor/dojo-1.10.10/dojox/lang/functional/object.js.uncompressed.js +0 -78
  333. package/vendor/dojo-1.10.10/dojox/lang/functional/reversed.js +0 -61
  334. package/vendor/dojo-1.10.10/dojox/lang/functional/reversed.js.uncompressed.js +0 -77
  335. package/vendor/dojo-1.10.10/dojox/lang/functional/scan.js +0 -87
  336. package/vendor/dojo-1.10.10/dojox/lang/functional/scan.js.uncompressed.js +0 -107
  337. package/vendor/dojo-1.10.10/dojox/lang/functional.js +0 -4
  338. package/vendor/dojo-1.10.10/dojox/lang/functional.js.uncompressed.js +0 -3
  339. package/vendor/dojo-1.10.10/dojox/lang/utils.js +0 -86
  340. package/vendor/dojo-1.10.10/dojox/lang/utils.js.uncompressed.js +0 -121
  341. package/vendor/dojo-1.10.10/dojox/main.js +0 -4
  342. package/vendor/dojo-1.10.10/dojox/main.js.uncompressed.js +0 -14
  343. package/vendor/dojo-1.10.10/dojox/storage/LocalStorageProvider.js +0 -112
  344. package/vendor/dojo-1.10.10/dojox/storage/LocalStorageProvider.js.uncompressed.js +0 -208
  345. package/vendor/dojo-1.10.10/dojox/storage/Provider.js +0 -62
  346. package/vendor/dojo-1.10.10/dojox/storage/Provider.js.uncompressed.js +0 -344
  347. package/vendor/dojo-1.10.10/dojox/storage/manager.js +0 -110
  348. package/vendor/dojo-1.10.10/dojox/storage/manager.js.uncompressed.js +0 -263
@@ -1,41 +0,0 @@
1
- import type {DojoWindowType} from './types';
2
-
3
- declare const window: Window & DojoWindowType;
4
-
5
- export async function initDojo(): Promise<void> {
6
- window.dojo$ = window.dojo$ || {};
7
- if (!window.dojo$.initPromise) {
8
- window.dojo$.initPromise = (async () => {
9
- const logPrefix: string = `dojo: _package.initDojo()`;
10
- console.debug(`${logPrefix}, start`);
11
-
12
- console.debug(`${logPrefix}, loadModules(), before`);
13
- const t1 = window.performance.now();
14
- await loadModules();
15
- const t2 = window.performance.now();
16
- console.debug(`${logPrefix}, loadModules(), after, ET: ${t2 - t1} ms`);
17
-
18
- console.debug(`${logPrefix}, end`);
19
- })();
20
- }
21
- return window.dojo$.initPromise;
22
- }
23
-
24
- const dojoPath = '../../vendor/dojo-1.10.10';
25
-
26
- async function loadModules(): Promise<void> {
27
- const logPrefix: string = `dojo: _package.loadModules()`;
28
-
29
- const unc = '';
30
- window.dojo$.ctx = require.context('../../vendor/dojo-1.10.10', true, /\.js$/);
31
- // const unc = '.uncompressed.js'; // '';
32
- // window.dojo$.ctx = require.context('../../vendor/dojo-1.10.10', true, /\.js\.uncompressed\.js$/);
33
-
34
- window.dojo$.uncompressed = unc;
35
- await window.dojo$.ctx(`./dojo/dojo.js${unc}`);
36
- }
37
-
38
-
39
- (async () => {
40
- await initDojo();
41
- })();
@@ -1,12 +0,0 @@
1
- import type {DojoType, DojoxType} from '@datagrok-libraries/js-draw-lite/src/types/dojo';
2
-
3
- export type DojoWindowType = {
4
- dojo$: {
5
- /** dojo source file postfix: '' for compressed, '.uncompressed.js' for uncompressed */
6
- uncompressed: string;
7
- ctx: { <T>(id: string): T };
8
- initPromise: Promise<void>;
9
- },
10
- dojo: DojoType;
11
- dojox: DojoxType;
12
- }
@@ -1,68 +0,0 @@
1
- import * as grok from 'datagrok-api/grok';
2
- import * as ui from 'datagrok-api/ui';
3
- import * as DG from 'datagrok-api/dg';
4
-
5
- import {Unsubscribable} from 'rxjs';
6
-
7
- import {ILogger} from '@datagrok-libraries/bio/src/utils/logger';
8
- import {
9
- App, Editor, HelmType, IHelmWebEditor, HelmEditor, IHelmEditorOptions
10
- } from '@datagrok-libraries/bio/src/helm/types';
11
-
12
- import {JSDraw2Module, OrgHelmModule, ScilModule} from './types';
13
-
14
- import {_package} from './package';
15
-
16
- declare const scil: ScilModule;
17
- declare const JSDraw2: JSDraw2Module;
18
- declare const org: OrgHelmModule;
19
-
20
- export class HelmWebEditor implements IHelmWebEditor {
21
- editor: HelmEditor;
22
- host: HTMLDivElement;
23
-
24
- w = 200;
25
- h = 100;
26
- private subs: Unsubscribable[];
27
-
28
- constructor(
29
- host?: HTMLDivElement,
30
- options?: Partial<IHelmEditorOptions>,
31
- private logger: ILogger = _package.logger
32
- ) {
33
- this.host = host ?? ui.div([], {style: {width: `${this.w}px`, height: `${this.h}px`}});
34
-
35
- const styleBackup = {
36
- width: this.host.style.width, height: this.host.style.height,
37
- overflow: this.host.style.overflow
38
- };
39
- this.editor = new JSDraw2.Editor(this.host,
40
- Object.assign({width: this.w, height: this.h, viewonly: true}, options));
41
- this.host.style.width = styleBackup.width;
42
- this.host.style.height = styleBackup.height;
43
- this.host.style.overflow = styleBackup.overflow;
44
-
45
- this.subs = [];
46
- this.subs.push(ui.onSizeChanged(this.host).subscribe(this.hostOnSizeChanged.bind(this)));
47
- }
48
-
49
- protected toLog(): string {
50
- return `Helm: HelmWebEditor<#>`;
51
- }
52
-
53
- private lastSize: { width: number, height: number } = {width: -1, height: -1};
54
-
55
- private hostOnSizeChanged(value: any): void {
56
- const size = {width: value.target.clientWidth, height: value.target.clientHeight};
57
- if (this.lastSize.width != size.width || this.lastSize.height != size.height) {
58
- const logPrefix = `${this.toLog()}.hostOnSizeChanged()`;
59
- this.logger.debug(`${logPrefix}`);
60
- this.editor.setSize(this.host.clientWidth, this.host.clientHeight);
61
- }
62
- this.lastSize = size;
63
- }
64
-
65
- resizeEditor(w: number, h: number) {
66
- this.editor.setSize(w, h);
67
- }
68
- }
@@ -1,214 +0,0 @@
1
- import * as grok from 'datagrok-api/grok';
2
- import * as ui from 'datagrok-api/ui';
3
- import * as DG from 'datagrok-api/dg';
4
-
5
- import wu from 'wu';
6
-
7
- import {
8
- after, before, category, delay, expect, test, expectArray, testEvent, expectFloat, timeout
9
- } from '@datagrok-libraries/test/src/test';
10
- import {getHelmHelper, getMonomerHandleArgs} from '@datagrok-libraries/bio/src/helm/helm-helper';
11
- import {errInfo} from '@datagrok-libraries/bio/src/utils/err-info';
12
- import {Atom, HelmType, IJsAtom, GetMonomerFunc, HelmAtom} from '@datagrok-libraries/bio/src/helm/types';
13
- import {IHelmHelper} from '@datagrok-libraries/bio/src/helm/helm-helper';
14
- import {getMonomerLibHelper, IMonomerLibHelper} from '@datagrok-libraries/bio/src/types/monomer-library';
15
- import {UserLibSettings} from '@datagrok-libraries/bio/src/monomer-works/types';
16
- import {
17
- getUserLibSettings, setUserLibSettings,
18
- } from '@datagrok-libraries/bio/src/monomer-works/lib-settings';
19
- import {expectMonomerLib} from '@datagrok-libraries/bio/src/tests/monomer-lib-tests';
20
-
21
- import {rewriteLibraries} from '../utils/get-monomer';
22
- import {JSDraw2Module, OrgHelmModule} from '../types';
23
-
24
- import {initHelmMainPackage} from './utils';
25
-
26
- import {_package} from '../package-test';
27
- import {PolymerTypes} from '@datagrok-libraries/bio/src/helm/consts';
28
-
29
- declare const org: OrgHelmModule;
30
- declare const JSDraw2: JSDraw2Module;
31
-
32
- type TestDataType = { args: { a: any, name?: string }, tgt: any };
33
-
34
- const getResultDf = false;
35
-
36
- const tests: { [testName: string]: TestDataType } =
37
- /* eslint-disable */
38
- //@formatter:off
39
- {
40
- t0:{"args":{"a":"HELM_BASE","name":"A"},"tgt":{"id":"A","m":"\n RDKit 2D\n\n 11 12 0 0 0 0 0 0 0 0999 V2000\n -3.1265 0.5194 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8274 -0.2306 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8274 -1.7306 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.5284 -2.4806 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7707 -1.7306 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7707 -0.2306 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.5284 0.5194 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2165 1.9866 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2753 2.1434 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8854 0.7731 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 3.3526 0.4612 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 2 0\n 3 4 1 0\n 4 5 2 0\n 5 6 1 0\n 6 7 2 0\n 7 8 1 0\n 8 9 2 0\n 9 10 1 0\n 10 11 1 0\n 7 2 1 0\n 10 6 1 0\nM RGP 1 11 1\nM END\n","n":"Adenine","na":"A","rs":1,"at":{"R1":"H"}}},
41
- t1:{"args":{"a":"HELM_BASE","name":"C"},"tgt":{"id":"C","m":"\n RDKit 2D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 2.8868 1.3333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5877 0.5833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5877 -0.9167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2887 -1.6667 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0104 -0.9167 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3094 -1.6667 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0104 0.5833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3094 1.3333 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2887 1.3333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 1 0\n 3 4 2 0\n 4 5 1 0\n 5 6 1 0\n 5 7 1 0\n 7 8 2 0\n 7 9 1 0\n 9 2 2 0\nM RGP 1 6 1\nM END\n","n":"Cytosine","na":"C","rs":1,"at":{"R1":"H"}}},
42
- t2:{"args":{"a":"HELM_BASE","name":"G"},"tgt":{"id":"G","m":"\n RDKit 2D\n\n 12 13 0 0 0 0 0 0 0 0999 V2000\n 3.4022 -1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1032 -0.6550 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 -1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4949 -0.6550 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4949 0.8450 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9215 1.3085 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8032 0.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9215 -1.1185 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3850 -2.5451 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 1.5950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 3.0950 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1032 0.8450 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 2 0\n 3 4 1 0\n 4 5 2 0\n 5 6 1 0\n 6 7 2 0\n 7 8 1 0\n 8 9 1 0\n 5 10 1 0\n 10 11 2 0\n 10 12 1 0\n 12 2 1 0\n 8 4 1 0\nM RGP 1 9 1\nM END\n","n":"Guanine","na":"G","rs":1,"at":{"R1":"H"}}},
43
- t3:{"args":{"a":"HELM_LINKER","name":"p"},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
44
- t4:{"args":{"a":"HELM_SUGAR","name":"p"},"tgt":null},
45
- t5:{"args":{"a":"HELM_SUGAR","name":"r"},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
46
- t6:{"args":{"a":{"T":"ATOM","p":{"x":144,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":4}},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
47
- t7:{"args":{"a":{"T":"ATOM","p":{"x":144,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":4}},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
48
- t8:{"args":{"a":{"T":"ATOM","p":{"x":144,"y":48},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_BASE","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"G","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":5}},"tgt":{"id":"G","m":"\n RDKit 2D\n\n 12 13 0 0 0 0 0 0 0 0999 V2000\n 3.4022 -1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1032 -0.6550 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 -1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4949 -0.6550 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4949 0.8450 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9215 1.3085 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8032 0.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9215 -1.1185 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3850 -2.5451 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 1.5950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 3.0950 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1032 0.8450 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 2 0\n 3 4 1 0\n 4 5 2 0\n 5 6 1 0\n 6 7 2 0\n 7 8 1 0\n 8 9 1 0\n 5 10 1 0\n 10 11 2 0\n 10 12 1 0\n 12 2 1 0\n 8 4 1 0\nM RGP 1 9 1\nM END\n","n":"Guanine","na":"G","rs":1,"at":{"R1":"H"}}},
49
- t9:{"args":{"a":{"T":"ATOM","p":{"x":192,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":6}},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
50
- t10:{"args":{"a":{"T":"ATOM","p":{"x":192,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":6}},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
51
- t11:{"args":{"a":{"T":"ATOM","p":{"x":205,"y":136},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null,"annotation":"5'","annotationshowright":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":1,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"r"},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
52
- t12:{"args":{"a":{"T":"ATOM","p":{"x":205,"y":184},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_BASE","id":1,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"A","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":2,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"A"},"tgt":{"id":"A","m":"\n RDKit 2D\n\n 11 12 0 0 0 0 0 0 0 0999 V2000\n -3.1265 0.5194 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8274 -0.2306 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8274 -1.7306 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.5284 -2.4806 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7707 -1.7306 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7707 -0.2306 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.5284 0.5194 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2165 1.9866 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2753 2.1434 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8854 0.7731 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 3.3526 0.4612 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 2 0\n 3 4 1 0\n 4 5 2 0\n 5 6 1 0\n 6 7 2 0\n 7 8 1 0\n 8 9 2 0\n 9 10 1 0\n 10 11 1 0\n 7 2 1 0\n 10 6 1 0\nM RGP 1 11 1\nM END\n","n":"Adenine","na":"A","rs":1,"at":{"R1":"H"}}},
53
- t13:{"args":{"a":{"T":"ATOM","p":{"x":240,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":7}},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
54
- t14:{"args":{"a":{"T":"ATOM","p":{"x":240,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":7}},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
55
- t15:{"args":{"a":{"T":"ATOM","p":{"x":240,"y":48},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_BASE","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"C","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":8}},"tgt":{"id":"C","m":"\n RDKit 2D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 2.8868 1.3333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5877 0.5833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5877 -0.9167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2887 -1.6667 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0104 -0.9167 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3094 -1.6667 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0104 0.5833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3094 1.3333 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2887 1.3333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 1 0\n 3 4 2 0\n 4 5 1 0\n 5 6 1 0\n 5 7 1 0\n 7 8 2 0\n 7 9 1 0\n 9 2 2 0\nM RGP 1 6 1\nM END\n","n":"Cytosine","na":"C","rs":1,"at":{"R1":"H"}}},
56
- t16:{"args":{"a":{"T":"ATOM","p":{"x":253,"y":136},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":3,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"p"},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
57
- t17:{"args":{"a":{"T":"ATOM","p":{"x":288,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":9}},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
58
- t18:{"args":{"a":{"T":"ATOM","p":{"x":301,"y":136},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null,"annotation":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":1,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"r"},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
59
- t19:{"args":{"a":{"T":"ATOM","p":{"x":301,"y":184},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_BASE","id":2,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"G","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":2,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"G"},"tgt":{"id":"G","m":"\n RDKit 2D\n\n 12 13 0 0 0 0 0 0 0 0999 V2000\n 3.4022 -1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1032 -0.6550 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 -1.4050 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4949 -0.6550 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4949 0.8450 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9215 1.3085 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.8032 0.0950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9215 -1.1185 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3850 -2.5451 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 1.5950 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.8041 3.0950 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.1032 0.8450 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 2 0\n 3 4 1 0\n 4 5 2 0\n 5 6 1 0\n 6 7 2 0\n 7 8 1 0\n 8 9 1 0\n 5 10 1 0\n 10 11 2 0\n 10 12 1 0\n 12 2 1 0\n 8 4 1 0\nM RGP 1 9 1\nM END\n","n":"Guanine","na":"G","rs":1,"at":{"R1":"H"}}},
60
- t20:{"args":{"a":{"T":"ATOM","p":{"x":349,"y":136},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":6,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"p"},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
61
- t21:{"args":{"a":{"T":"ATOM","p":{"x":397,"y":136},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null,"annotation":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":1,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"r"},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
62
- t22:{"args":{"a":{"T":"ATOM","p":{"x":397,"y":184},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_BASE","id":3,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"C","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":2,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"C"},"tgt":{"id":"C","m":"\n RDKit 2D\n\n 9 9 0 0 0 0 0 0 0 0999 V2000\n 2.8868 1.3333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5877 0.5833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.5877 -0.9167 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2887 -1.6667 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0104 -0.9167 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3094 -1.6667 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0104 0.5833 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.3094 1.3333 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.2887 1.3333 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 1 0\n 3 4 2 0\n 4 5 1 0\n 5 6 1 0\n 5 7 1 0\n 7 8 2 0\n 7 9 1 0\n 9 2 2 0\nM RGP 1 6 1\nM END\n","n":"Cytosine","na":"C","rs":1,"at":{"R1":"H"}}},
63
- t23:{"args":{"a":{"T":"ATOM","p":{"x":445,"y":136},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":0,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":9,"ringclosures":null,"_outside":false,"_haslabel":false},"name":"p"},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
64
- t24:{"args":{"a":{"T":"ATOM","p":{"x":48,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":1}},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
65
- t25:{"args":{"a":{"T":"ATOM","p":{"x":48,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_SUGAR","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"r","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":1}},"tgt":{"id":"r","m":"\n RDKit 2D\n\n 12 12 0 0 0 0 0 0 0 0999 V2000\n 3.0807 1.3822 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 0.5005 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 0.9640 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.0229 2.3906 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4901 2.7025 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n -0.4410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9410 -0.2495 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -2.6910 -1.5485 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -4.1910 -1.5485 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.4406 -1.4630 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8672 -0.9995 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 3.0807 -1.8812 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 2 1 1 6\n 2 3 1 0\n 3 4 1 1\n 4 5 1 0\n 3 6 1 0\n 6 7 1 6\n 7 8 1 0\n 8 9 1 0\n 6 10 1 0\n 10 11 1 0\n 11 12 1 6\n 11 2 1 0\nM RGP 3 5 2 9 1 12 3\nM END\n","n":"Ribose","na":"r","rs":3,"at":{"R1":"H","R2":"H","R3":"OH"}}},
66
- t26:{"args":{"a":{"T":"ATOM","p":{"x":48,"y":48},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_BASE","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"A","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":2}},"tgt":{"id":"A","m":"\n RDKit 2D\n\n 11 12 0 0 0 0 0 0 0 0999 V2000\n -3.1265 0.5194 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8274 -0.2306 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.8274 -1.7306 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n -0.5284 -2.4806 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7707 -1.7306 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7707 -0.2306 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.5284 0.5194 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.2165 1.9866 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2753 2.1434 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.8854 0.7731 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 3.3526 0.4612 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0\n 2 3 2 0\n 3 4 1 0\n 4 5 2 0\n 5 6 1 0\n 6 7 2 0\n 7 8 1 0\n 8 9 2 0\n 9 10 1 0\n 10 11 1 0\n 7 2 1 0\n 10 6 1 0\nM RGP 1 11 1\nM END\n","n":"Adenine","na":"A","rs":1,"at":{"R1":"H"}}},
67
- t27:{"args":{"a":{"T":"ATOM","p":{"x":96,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"_parent":"[object Object]","_aaid":3}},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}},
68
- t28:{"args":{"a":{"T":"ATOM","p":{"x":96,"y":0},"charge":0,"isotope":null,"radical":null,"group":null,"alias":null,"superatom":null,"attachpoints":[],"rgroup":null,"bio":{"type":"HELM_LINKER","id":null,"ambiguity":null},"locked":false,"hidden":null,"_rect":null,"elem":"p","color":null,"hcount":null,"selected":false,"f":null,"bonds":null,"id":null,"atommapid":null,"query":null,"hasError":null,"hs":null,"val":null,"tag":null,"_parent":"[object Object]","_aaid":3}},"tgt":{"id":"p","m":"\n RDKit 2D\n\n 5 4 0 0 0 0 0 0 0 0999 V2000\n -1.2990 0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 0.0000 0.0000 0.0000 P 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2990 -0.7500 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n -0.7500 -1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7500 1.2990 0.0000 R# 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 2 4 1 0\n 2 5 1 0\nM RGP 2 4 1 5 2\nM END\n","n":"Phosphate","na":"p","rs":2,"at":{"R1":"OH","R2":"OH"}}}
69
- //@formatter:off
70
- /* eslint-enable */
71
- };
72
-
73
- category('getMonomer', ()=> {
74
- let helmHelper: IHelmHelper;
75
- let monomerLibHelper: IMonomerLibHelper;
76
- /** Backup actual user's monomer libraries settings */
77
- let userLibSettings: UserLibSettings;
78
-
79
- before(async ()=>{
80
- await initHelmMainPackage();
81
-
82
- [monomerLibHelper, helmHelper, userLibSettings] = await Promise.all(
83
- [getMonomerLibHelper(), getHelmHelper(), getUserLibSettings()]);
84
-
85
- await monomerLibHelper.loadMonomerLibForTests(); // load default libraries for tests
86
- });
87
-
88
- after(async ()=>{
89
- await setUserLibSettings(userLibSettings);
90
- await monomerLibHelper.loadMonomerLib(true);
91
- });
92
-
93
- test('original', async () =>{
94
- const monomerLib = monomerLibHelper.getMonomerLib();
95
- rewriteLibraries(monomerLib);
96
-
97
- const helmHelper: IHelmHelper = await getHelmHelper();
98
- expect(helmHelper != null, true);
99
- const getMonomerFunc: GetMonomerFunc = helmHelper.originalMonomersFuncs!.getMonomer!;
100
- const res = _testAll('original', getMonomerFunc);
101
- return getResultDf ? (res ?? DG.DataFrame.create(0)) : null;
102
- }, {isAggregated: getResultDf});
103
-
104
- test('monomerLib', async () =>{
105
- const getMonomerFunc = org.helm.webeditor.Monomers.getMonomer;
106
- const res = _testAll('monomerLib', getMonomerFunc);
107
- return getResultDf ? (res ?? DG.DataFrame.create(0)) : null;
108
- }, {isAggregated: getResultDf});
109
-
110
- function _testAll(prefix: string, getMonomerFunc: GetMonomerFunc): DG.DataFrame {
111
- const resDf = DG.DataFrame.fromColumns([
112
- DG.Column.fromStrings('subTest', []),
113
- DG.Column.fromList(DG.COLUMN_TYPE.BOOL, 'success', []),
114
- DG.Column.fromStrings('res', []),
115
- DG.Column.fromStrings('tgt', []),
116
- DG.Column.fromStrings('error', []),
117
- DG.Column.fromStrings('stack', []),
118
- ]);
119
-
120
- // const testCount: number = Object.keys(tests).length + 1;
121
- // //* eslint-disable no-array-constructor */
122
- // const subTestList: string[] = new Array<string>(testCount);
123
- // const successList: boolean[] = new Array<boolean>(testCount);
124
- // const resList: string[] = new Array<string>(testCount);
125
- // const tgtList:string[] = new Array<string>(testCount);
126
- // const errorList: string[] = new Array<string>(testCount);
127
- // const stackList: string[] = new Array<string>(testCount);
128
- // /* eslint-enable no-array-constructor */
129
-
130
- const resI = resDf.rows.addNew().idx;
131
- resDf.set('subTest', resI, 'Monomer lib');
132
- resDf.set('res', resI, '');
133
- resDf.set('tgt', resI, '');
134
- try {
135
- resDf.set('success', resI, true);
136
- } catch (err) {
137
- const [errMsg, errStack] = errInfo(err);
138
- resDf.set('error', resI, errMsg);
139
- resDf.set('stack', resI, errStack);
140
- resDf.set('success', resI, false);
141
- throw err;
142
- }
143
-
144
- for (const [[testName, testData], testI] of wu.enumerate(Object.entries(tests))) {
145
- const a: HelmAtom | HelmType = getAtomFromJson(testData.args.a);
146
- const [biotype, elem] = getMonomerHandleArgs(a, testData.args.name);
147
- const tgt = testData.tgt;
148
-
149
- const resI = resDf.rows.addNew().idx;
150
- resDf.set('subTest', resI, `${prefix}-${testName}-${biotype}-${elem}`);
151
- resDf.set('tgt', resI, JSON.stringify(tgt ? {id: tgt.id, n: tgt.n, rs: tgt.rs} : null));
152
- try {
153
- const res: any = getMonomerFunc(a, testData.args.name);
154
- resDf.set('res', resI, JSON.stringify(res ? {id: res.id, n: res.n, rs: res.rs} : null));
155
- expectObjectWithNull(res, tgt);
156
- resDf.set('success', resI, true);
157
- } catch (err) {
158
- const [errMsg, errStack] = errInfo(err);
159
- resDf.set('error', resI, errMsg);
160
- resDf.set('stack', resI, errStack);
161
- resDf.set('success', resI, false);
162
- throw err;
163
- }
164
- }
165
- return resDf;
166
- }
167
-
168
- test('missing', async ()=> {
169
- const monomerLib = monomerLibHelper.getMonomerLib();
170
- /* Tests getMonomer function adding missing monomers. */
171
- const helmStr = 'PEPTIDE1{[mis1].R.[mis2].T.C.F}$$$$;';
172
-
173
- const libSummary = monomerLib.getSummaryObj();
174
- const editor = new JSDraw2.Editor(ui.div(), {viewonly: true});
175
- editor.setHelm(helmStr);
176
- libSummary[PolymerTypes.PEPTIDE] += 2;
177
- expectMonomerLib(monomerLib, libSummary);
178
- });
179
- });
180
-
181
- function getAtomFromJson(argA: IJsAtom<HelmType> | HelmType): HelmAtom | HelmType {
182
- let res: HelmAtom | HelmType;
183
- const a = argA as IJsAtom<HelmType>;
184
- if (a.T === 'ATOM')
185
- res = new JSDraw2.Atom(a.p, a.elem, a.bio);
186
- else
187
- res = argA as HelmType;
188
- return res;
189
- }
190
-
191
- export function expectObjectWithNull(actual: { [key: string]: any }, expected: { [key: string]: any }) {
192
- if (actual == null && expected == null)
193
- return;
194
- else if (actual == null && expected != null)
195
- throw new Error('actual is null, but expected is not null');
196
- else if (actual!= null && expected == null)
197
- throw new Error('actual is not null, but expected is null');
198
- else {
199
- for (const [expectedKey, expectedValue] of Object.entries(expected)) {
200
- if (!(expectedKey in actual || actual.hasOwnProperty(expectedKey)))
201
- throw new Error(`Expected property "${expectedKey}" not found`);
202
-
203
- const actualValue = actual[expectedKey];
204
- if (actualValue instanceof Array && expectedValue instanceof Array)
205
- expectArray(actualValue, expectedValue);
206
- else if (actualValue instanceof Object && expectedValue instanceof Object)
207
- expectObjectWithNull(actualValue, expectedValue);
208
- else if (Number.isFinite(actualValue) && Number.isFinite(expectedValue))
209
- expectFloat(actualValue, expectedValue);
210
- else if (actualValue != expectedValue)
211
- throw new Error(`Expected (${expectedValue}) for key '${expectedKey}', got (${actualValue})`);
212
- }
213
- }
214
- }
@@ -1,98 +0,0 @@
1
- import * as grok from 'datagrok-api/grok';
2
- import * as ui from 'datagrok-api/ui';
3
- import * as DG from 'datagrok-api/dg';
4
-
5
- import {Subject} from 'rxjs';
6
-
7
- import {
8
- category, expect, test, awaitCheck, delay, testEvent, before, after
9
- } from '@datagrok-libraries/test/src/test';
10
- import {getHelmHelper} from '@datagrok-libraries/bio/src/helm/helm-helper';
11
- import {
12
- getHelmService, HelmServiceBase, HelmAux, HelmProps
13
- } from '@datagrok-libraries/bio/src/viewers/helm-service';
14
- import {RenderTask} from '@datagrok-libraries/bio/src/utils/cell-renderer-async-base';
15
-
16
- import {getMonomerLibHelper, IMonomerLibHelper} from '@datagrok-libraries/bio/src/types/monomer-library';
17
- import {UserLibSettings} from '@datagrok-libraries/bio/src/monomer-works/types';
18
- import {
19
- getUserLibSettings, setUserLibSettings,
20
- } from '@datagrok-libraries/bio/src/monomer-works/lib-settings';
21
-
22
- import {initHelmMainPackage} from './utils';
23
-
24
- import {_package} from '../package-test';
25
-
26
- category('HelmService', () => {
27
- let monomerLibHelper: IMonomerLibHelper;
28
- /** Backup actual user's monomer libraries settings */
29
- let userLibSettings: UserLibSettings;
30
-
31
- let helmSvc: HelmServiceBase;
32
-
33
- before(async () => {
34
- const logPrefix = `Helm: tests: HelmService: before`;
35
- _package.logger.debug(`${logPrefix}, start`);
36
- await initHelmMainPackage();
37
- try {
38
- monomerLibHelper = await getMonomerLibHelper();
39
- userLibSettings = await getUserLibSettings();
40
-
41
- await monomerLibHelper.loadMonomerLibForTests(); // load default libraries
42
-
43
- helmSvc = await getHelmService();
44
- await helmSvc.reset();
45
-
46
- _package.logger.debug(`${logPrefix}, end`);
47
- } finally {
48
- _package.logger.debug(`${logPrefix}, fina`);
49
- }
50
- });
51
-
52
- after(async () => {
53
- const logPrefix = `Helm: tests: HelmService: after`;
54
- _package.logger.debug(`${logPrefix}, start`);
55
-
56
- await helmSvc.reset();
57
-
58
- await setUserLibSettings(userLibSettings);
59
- await monomerLibHelper.loadMonomerLib(true); // load user settings libraries
60
- _package.logger.debug(`${logPrefix}, end`);
61
- });
62
-
63
- test('helm', async () => {
64
- const logPrefix: string = `Helm: tests: HelmService: helm`;
65
- _package.logger.debug(`${logPrefix}, start`);
66
- const helmStr: string = 'PEPTIDE1{I.H.A.N.T.Thr_PO3H2.Aca.D-Tyr_Et}$$$$';
67
- const monomerLib = monomerLibHelper.getMonomerLib();
68
- let consumerId: number | null = null;
69
- let taskAux: HelmAux | null = null;
70
- const event = new Subject<void>();
71
- await testEvent(event,
72
- () => {
73
- },
74
- () => {
75
- const task: RenderTask<HelmProps, HelmAux> = {
76
- name: 'test1',
77
- props: {
78
- helm: helmStr, monomerLib: monomerLib,
79
- backColor: DG.Color.fromHtml('#FFFFFF'),
80
- width: 300, height: 100,
81
- },
82
- onAfterRender: (canvas: HTMLCanvasElement, aux: HelmAux) => {
83
- taskAux = aux;
84
- event.next();
85
- }
86
- };
87
- helmSvc.reset();
88
- consumerId = helmSvc.render(consumerId, task, 0);
89
- }, 7000);
90
- expect(taskAux !== null, true, 'Helm task aux is null');
91
- expect(taskAux!.mol.atoms.length > 0, true, 'Polymer mol atoms empty');
92
- expect(taskAux!.mol.atoms.length, 8);
93
- expect(taskAux!.mol.bonds.length, 7);
94
- expect(helmSvc.errorCount, 0, 'There was errors in NglGlService.');
95
- expect(consumerId !== null, true, 'consumerId not assigned');
96
- _package.logger.debug(`${logPrefix}, end`);
97
- }, {timeout: 10000});
98
- });
package/src/types/dojo.ts DELETED
@@ -1,3 +0,0 @@
1
- declare module 'dojo' {
2
- export function ready(callback: () => void): void;
3
- }
@@ -1,5 +0,0 @@
1
- import {HelmType, JSDraw2ModuleType, OrgType, ScilModuleType} from '@datagrok-libraries/bio/src/helm/types';
2
-
3
- export type ScilModule = ScilModuleType;
4
- export type JSDraw2Module = JSDraw2ModuleType;
5
- export type OrgHelmModule = OrgType;
@@ -1,90 +0,0 @@
1
- import * as grok from 'datagrok-api/grok';
2
- import * as ui from 'datagrok-api/ui';
3
- import * as DG from 'datagrok-api/dg';
4
-
5
- import {ILogger} from '@datagrok-libraries/bio/src/utils/logger';
6
- import {IMonomerLib, Monomer} from '@datagrok-libraries/bio/src/types/monomer-library';
7
- import {Atom, HelmType, IWebEditorMonomer, GetMonomerResType, HelmAtom} from '@datagrok-libraries/bio/src/helm/types';
8
-
9
- import {OrgHelmModule, ScilModule} from '../types';
10
- import {RGROUP_CAP_GROUP_NAME, RGROUP_LABEL, SMILES} from '../constants';
11
-
12
- import {_package} from '../package';
13
-
14
- declare const org: OrgHelmModule;
15
- declare const scil: ScilModule;
16
-
17
- type GetMonomerOverridingFunc = (
18
- a: HelmAtom | HelmType, name: string | undefined, monomerLib: IMonomerLib,
19
- originalGetMonomer: (a: HelmAtom | HelmType, name: string) => GetMonomerResType) => GetMonomerResType;
20
-
21
- export function getMonomerOverrideAndLogAlert(
22
- monomerLib: IMonomerLib, getMonomerOverriding: GetMonomerOverridingFunc, trigger: () => void, logger: ILogger,
23
- ): void {
24
- const logPrefix = 'Helm: overrideGetMonomerAndAlert()';
25
- const monomers = org.helm.webeditor.Monomers;
26
- const getMonomerOriginal = monomers.getMonomer.bind(monomers);
27
- const alertOriginal = scil.Utils.alert;
28
- try {
29
- org.helm.webeditor.Monomers.getMonomer =
30
- (a: HelmAtom | HelmType, name?: string): GetMonomerResType => {
31
- return getMonomerOverriding(a, name, monomerLib, getMonomerOriginal);
32
- };
33
- // Preventing alert message box for missing monomers with compressed Scilligence.JSDraw2.Lite.js
34
- scil.Utils.alert = (s: string): void => {
35
- logger.warning(`${logPrefix}, scil.Utils.alert() s = 's'.`);
36
- };
37
- trigger();
38
- } finally {
39
- monomers.getMonomer = getMonomerOriginal;
40
- scil.Utils.alert = alertOriginal;
41
- }
42
- }
43
-
44
- /** Fills org.helm.webeditor.Monomers dictionary for WebEditor */
45
- export function rewriteLibraries(monomerLib: IMonomerLib): void {
46
- org.helm.webeditor.Monomers.clear();
47
- monomerLib!.getPolymerTypes().forEach((polymerType) => {
48
- const monomerSymbols = monomerLib!.getMonomerSymbolsByType(polymerType);
49
- monomerSymbols.forEach((monomerSymbol) => {
50
- let isBroken = false;
51
- const monomer: Monomer = monomerLib!.getMonomer(polymerType, monomerSymbol)!;
52
- const webEditorMonomer: IWebEditorMonomer = {
53
- id: monomerSymbol,
54
- m: monomer.molfile,
55
- n: monomer.name,
56
- na: monomer.naturalAnalog,
57
- rs: monomer.rgroups.length,
58
- type: monomer.polymerType,
59
- mt: monomer.monomerType,
60
- at: {},
61
- };
62
-
63
- if (monomer.rgroups.length > 0) {
64
- // @ts-ignore
65
- webEditorMonomer.rs = monomer.rgroups.length;
66
- const at: { [prop: string]: any } = {};
67
- monomer.rgroups.forEach((it) => {
68
- at[it[RGROUP_LABEL]] = it[RGROUP_CAP_GROUP_NAME];
69
- });
70
- webEditorMonomer.at = at;
71
- } else if (monomer[SMILES] != null) {
72
- const rs = monomerLib.getRS(monomer[SMILES].toString());
73
- if (rs == null || Object.keys(rs).length === 0)
74
- isBroken = true;
75
- else {
76
- webEditorMonomer.rs = Object.keys(rs).length;
77
- webEditorMonomer.at = rs;
78
- }
79
- } else
80
- isBroken = true;
81
-
82
- if (!isBroken)
83
- org.helm.webeditor.Monomers.addOneMonomer(webEditorMonomer);
84
- });
85
- });
86
-
87
- // Obsolete
88
- const grid: DG.Grid = grok.shell.tv?.grid;
89
- if (grid) grid.invalidate();
90
- }