@mat3ra/wode 2026.5.23-0 → 2026.6.5-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 (360) hide show
  1. package/.babelrc +1 -1
  2. package/dist/js/Subworkflow.d.ts +714 -0
  3. package/dist/js/Subworkflow.js +397 -0
  4. package/dist/js/Workflow.d.ts +82 -0
  5. package/dist/js/Workflow.js +286 -0
  6. package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
  7. package/dist/js/WorkflowDesignerMaterial.js +26 -0
  8. package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
  9. package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
  10. package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
  11. package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
  12. package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
  13. package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
  14. package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
  15. package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
  16. package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
  17. package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
  18. package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
  19. package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
  20. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
  21. package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
  22. package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
  23. package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
  24. package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
  25. package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
  26. package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
  27. package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
  28. package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
  29. package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
  30. package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
  31. package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
  32. package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
  33. package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
  34. package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
  35. package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
  36. package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
  37. package/dist/js/context/providers/NEBFormDataManager.js +39 -0
  38. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
  39. package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
  40. package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
  41. package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
  42. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
  43. package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
  44. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
  45. package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
  46. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
  47. package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
  48. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
  49. package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
  50. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
  51. package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
  52. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
  53. package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
  54. package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
  55. package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
  56. package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
  57. package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
  58. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
  59. package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
  60. package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
  61. package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
  62. package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
  63. package/dist/js/context/providers/base/ContextProvider.js +87 -0
  64. package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
  65. package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
  66. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
  67. package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
  68. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
  69. package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
  70. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
  71. package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
  72. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
  73. package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
  74. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
  75. package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
  76. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
  77. package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
  78. package/dist/js/context/providers/index.d.ts +92 -0
  79. package/dist/js/context/providers/index.js +107 -0
  80. package/dist/js/context/providers/settings.d.ts +7 -0
  81. package/dist/js/context/providers/settings.js +11 -33
  82. package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
  83. package/dist/js/convergence/ConvergenceParameter.js +13 -0
  84. package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
  85. package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
  86. package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
  87. package/dist/js/convergence/UniformKGridConvergence.js +22 -0
  88. package/dist/js/convergence/factory.d.ts +8 -0
  89. package/dist/js/convergence/factory.js +18 -0
  90. package/dist/js/enums.d.ts +62 -0
  91. package/dist/js/enums.js +66 -61
  92. package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
  93. package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
  94. package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
  95. package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
  96. package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
  97. package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
  98. package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
  99. package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
  100. package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
  101. package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
  102. package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
  103. package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
  104. package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
  105. package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
  106. package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
  107. package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
  108. package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
  109. package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
  110. package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
  111. package/dist/js/generated/StatusSchemaMixin.js +21 -0
  112. package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
  113. package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
  114. package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
  115. package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
  116. package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
  117. package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
  118. package/dist/js/index.d.ts +13 -0
  119. package/dist/js/index.js +66 -176
  120. package/dist/js/units/AssertionUnit.d.ts +20 -0
  121. package/dist/js/units/AssertionUnit.js +33 -0
  122. package/dist/js/units/AssignmentUnit.d.ts +17 -0
  123. package/dist/js/units/AssignmentUnit.js +35 -0
  124. package/dist/js/units/BaseUnit.d.ts +39 -0
  125. package/dist/js/units/BaseUnit.js +70 -0
  126. package/dist/js/units/ConditionUnit.d.ts +17 -0
  127. package/dist/js/units/ConditionUnit.js +37 -0
  128. package/dist/js/units/ExecutionUnit.d.ts +115 -0
  129. package/dist/js/units/ExecutionUnit.js +181 -0
  130. package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
  131. package/dist/js/units/ExecutionUnitInput.js +47 -0
  132. package/dist/js/units/IOUnit.d.ts +16 -0
  133. package/dist/js/units/IOUnit.js +31 -0
  134. package/dist/js/units/MapUnit.d.ts +34 -0
  135. package/dist/js/units/MapUnit.js +46 -0
  136. package/dist/js/units/ReduceUnit.d.ts +16 -0
  137. package/dist/js/units/ReduceUnit.js +30 -0
  138. package/dist/js/units/SubworkflowUnit.d.ts +16 -0
  139. package/dist/js/units/SubworkflowUnit.js +28 -0
  140. package/dist/js/units/factory.d.ts +31 -0
  141. package/dist/js/units/factory.js +65 -47
  142. package/dist/js/units/index.d.ts +14 -0
  143. package/dist/js/units/index.js +25 -81
  144. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
  145. package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
  146. package/dist/js/utils/baseUnits.d.ts +2 -0
  147. package/dist/js/utils/baseUnits.js +11 -0
  148. package/dist/js/utils/index.d.ts +3 -0
  149. package/dist/js/utils/index.js +39 -0
  150. package/dist/js/utils/subworkflow.d.ts +2 -0
  151. package/dist/js/utils/subworkflow.js +29 -0
  152. package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
  153. package/dist/js/utils/underscoreStringSlugify.js +32 -0
  154. package/dist/js/utils/units.d.ts +4 -0
  155. package/dist/js/utils/units.js +16 -0
  156. package/dist/js/utils/workflow.d.ts +9 -0
  157. package/dist/js/utils/workflow.js +67 -0
  158. package/dist/js/workflows/default.d.ts +3 -0
  159. package/dist/js/workflows/default.js +43 -39
  160. package/dist/js/workflows/workflow.d.ts +4404 -0
  161. package/dist/js/workflows/workflow.js +310 -306
  162. package/package.json +56 -44
  163. package/src/js/Subworkflow.ts +532 -0
  164. package/src/js/Workflow.ts +390 -0
  165. package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
  166. package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
  167. package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
  168. package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
  169. package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
  170. package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
  171. package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
  172. package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
  173. package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
  174. package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
  175. package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
  176. package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
  177. package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
  178. package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
  179. package/src/js/context/providers/NEBFormDataManager.ts +57 -0
  180. package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
  181. package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
  182. package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
  183. package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
  184. package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
  185. package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
  186. package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
  187. package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
  188. package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
  189. package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
  190. package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
  191. package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
  192. package/src/js/context/providers/base/ContextProvider.ts +150 -0
  193. package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
  194. package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
  195. package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
  196. package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
  197. package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
  198. package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
  199. package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
  200. package/src/js/context/providers/index.ts +155 -0
  201. package/src/js/context/providers/settings.ts +13 -0
  202. package/src/js/convergence/ConvergenceParameter.ts +37 -0
  203. package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
  204. package/src/js/convergence/UniformKGridConvergence.ts +26 -0
  205. package/src/js/convergence/factory.ts +18 -0
  206. package/src/js/{enums.js → enums.ts} +27 -22
  207. package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
  208. package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
  209. package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
  210. package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
  211. package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
  212. package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
  213. package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
  214. package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
  215. package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
  216. package/src/js/generated/StatusSchemaMixin.ts +28 -0
  217. package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
  218. package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
  219. package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
  220. package/src/js/index.ts +44 -0
  221. package/src/js/units/AssertionUnit.ts +49 -0
  222. package/src/js/units/AssignmentUnit.ts +49 -0
  223. package/src/js/units/BaseUnit.ts +117 -0
  224. package/src/js/units/ConditionUnit.ts +52 -0
  225. package/src/js/units/ExecutionUnit.ts +274 -0
  226. package/src/js/units/ExecutionUnitInput.ts +71 -0
  227. package/src/js/units/IOUnit.ts +43 -0
  228. package/src/js/units/MapUnit.ts +59 -0
  229. package/src/js/units/ReduceUnit.ts +46 -0
  230. package/src/js/units/SubworkflowUnit.ts +44 -0
  231. package/src/js/units/factory.ts +131 -0
  232. package/src/js/units/index.ts +27 -0
  233. package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
  234. package/src/js/utils/baseUnits.ts +11 -0
  235. package/src/js/utils/index.ts +3 -0
  236. package/src/js/utils/units.ts +23 -0
  237. package/src/js/utils/workflow.ts +69 -0
  238. package/src/js/workflows/{default.js → default.ts} +8 -1
  239. package/build_workflows.js +0 -65
  240. package/dist/js/context/context.js +0 -49
  241. package/dist/js/context/mixins/JobContextMixin.js +0 -39
  242. package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
  243. package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
  244. package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
  245. package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
  246. package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
  247. package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
  248. package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
  249. package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
  250. package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
  251. package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
  252. package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
  253. package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
  254. package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
  255. package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
  256. package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
  257. package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
  258. package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
  259. package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
  260. package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
  261. package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
  262. package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
  263. package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
  264. package/dist/js/context/providers.js +0 -199
  265. package/dist/js/patch.js +0 -19
  266. package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
  267. package/dist/js/subworkflows/convergence/parameter.js +0 -70
  268. package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
  269. package/dist/js/subworkflows/convergence.js +0 -189
  270. package/dist/js/subworkflows/create.js +0 -293
  271. package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
  272. package/dist/js/subworkflows/dynamic/index.js +0 -19
  273. package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
  274. package/dist/js/subworkflows/index.js +0 -19
  275. package/dist/js/units/assertion.js +0 -37
  276. package/dist/js/units/assignment.js +0 -42
  277. package/dist/js/units/base.js +0 -91
  278. package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
  279. package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
  280. package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
  281. package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
  282. package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
  283. package/dist/js/units/builders/index.js +0 -18
  284. package/dist/js/units/condition.js +0 -52
  285. package/dist/js/units/execution.js +0 -225
  286. package/dist/js/units/io.js +0 -148
  287. package/dist/js/units/map.js +0 -38
  288. package/dist/js/units/processing.js +0 -41
  289. package/dist/js/units/reduce.js +0 -24
  290. package/dist/js/units/subworkflow.js +0 -23
  291. package/dist/js/workflows/create.js +0 -318
  292. package/dist/js/workflows/index.js +0 -113
  293. package/dist/js/workflows/relaxation.js +0 -38
  294. package/src/js/context/context.js +0 -47
  295. package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
  296. package/src/js/context/mixins/JobContextMixin.js +0 -36
  297. package/src/js/context/mixins/MaterialContextMixin.js +0 -41
  298. package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
  299. package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
  300. package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
  301. package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
  302. package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
  303. package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
  304. package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
  305. package/src/js/context/providers/HubbardJContextProvider.js +0 -65
  306. package/src/js/context/providers/HubbardUContextProvider.js +0 -95
  307. package/src/js/context/providers/HubbardVContextProvider.js +0 -96
  308. package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
  309. package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
  310. package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
  311. package/src/js/context/providers/NEBFormDataProvider.js +0 -33
  312. package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
  313. package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
  314. package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
  315. package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
  316. package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
  317. package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
  318. package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
  319. package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
  320. package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
  321. package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
  322. package/src/js/context/providers/settings.js +0 -38
  323. package/src/js/context/providers.js +0 -140
  324. package/src/js/index.js +0 -57
  325. package/src/js/patch.js +0 -12
  326. package/src/js/subworkflows/convergence/enums.js +0 -12
  327. package/src/js/subworkflows/convergence/factory.js +0 -15
  328. package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
  329. package/src/js/subworkflows/convergence/parameter.js +0 -58
  330. package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
  331. package/src/js/subworkflows/convergence.js +0 -196
  332. package/src/js/subworkflows/create.js +0 -220
  333. package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
  334. package/src/js/subworkflows/dynamic/index.js +0 -8
  335. package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
  336. package/src/js/subworkflows/index.js +0 -2
  337. package/src/js/subworkflows/subworkflow.js +0 -345
  338. package/src/js/units/assertion.js +0 -29
  339. package/src/js/units/assignment.js +0 -34
  340. package/src/js/units/base.js +0 -97
  341. package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
  342. package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
  343. package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
  344. package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
  345. package/src/js/units/builders/UnitConfigBuilder.js +0 -92
  346. package/src/js/units/builders/index.js +0 -15
  347. package/src/js/units/condition.js +0 -47
  348. package/src/js/units/execution.js +0 -267
  349. package/src/js/units/factory.js +0 -53
  350. package/src/js/units/index.js +0 -25
  351. package/src/js/units/io.js +0 -163
  352. package/src/js/units/map.js +0 -33
  353. package/src/js/units/processing.js +0 -39
  354. package/src/js/units/reduce.js +0 -17
  355. package/src/js/units/subworkflow.js +0 -15
  356. package/src/js/utils.js +0 -73
  357. package/src/js/workflows/create.js +0 -227
  358. package/src/js/workflows/index.js +0 -98
  359. package/src/js/workflows/relaxation.js +0 -42
  360. package/src/js/workflows/workflow.js +0 -388
@@ -1,311 +1,315 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Workflow = void 0;
7
- var _entity = require("@mat3ra/code/dist/js/entity");
8
- var _hash = require("@mat3ra/code/dist/js/entity/mixins/hash");
9
- var _workflow = _interopRequireDefault(require("@mat3ra/esse/dist/js/schema/workflow.json"));
10
- var _ide = require("@mat3ra/ide");
11
- var _mode = require("@mat3ra/mode");
12
- var _utils = require("@mat3ra/utils");
13
- var _lodash = _interopRequireDefault(require("lodash"));
14
- var _mixwith = require("mixwith");
15
- var _underscore = _interopRequireDefault(require("underscore"));
16
- var _underscore2 = _interopRequireDefault(require("underscore.string"));
17
- var _enums = require("../enums");
18
- var _subworkflow = require("../subworkflows/subworkflow");
19
- var _units = require("../units");
20
- var _factory = require("../units/factory");
21
- var _utils2 = require("../utils");
22
- var _default = _interopRequireDefault(require("./default"));
23
- var _relaxation = require("./relaxation");
24
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
26
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
27
- function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /* eslint-disable max-classes-per-file */
28
- const {
29
- MODEL_NAMES
30
- } = _mode.tree;
31
- class BaseWorkflow extends (0, _mixwith.mix)(_entity.NamedDefaultableRepetitionContextAndRenderInMemoryEntity).with(_ide.ComputedEntityMixin, _relaxation.RelaxationLogicMixin, _hash.HashedEntityMixin) {}
7
+ /* eslint-disable max-classes-per-file */
8
+ const entity_1 = require("@mat3ra/code/dist/js/entity");
9
+ const hash_1 = require("@mat3ra/code/dist/js/entity/mixins/hash");
10
+ const workflow_json_1 = __importDefault(require("@mat3ra/esse/dist/js/schema/workflow.json"));
11
+ const ide_1 = require("@mat3ra/ide");
12
+ const mode_1 = require("@mat3ra/mode");
13
+ const utils_1 = require("@mat3ra/utils");
14
+ const lodash_1 = __importDefault(require("lodash"));
15
+ const mixwith_1 = require("mixwith");
16
+ const underscore_1 = __importDefault(require("underscore"));
17
+ const underscore_string_1 = __importDefault(require("underscore.string"));
18
+ const enums_1 = require("../enums");
19
+ const subworkflow_1 = require("../subworkflows/subworkflow");
20
+ const units_1 = require("../units");
21
+ const factory_1 = require("../units/factory");
22
+ const utils_2 = require("../utils");
23
+ const default_1 = __importDefault(require("./default"));
24
+ const relaxation_1 = require("./relaxation");
25
+ const { MODEL_NAMES } = mode_1.tree;
26
+ class BaseWorkflow extends (0, mixwith_1.mix)(entity_1.NamedDefaultableRepetitionContextAndRenderInMemoryEntity).with(ide_1.ComputedEntityMixin, relaxation_1.RelaxationLogicMixin, hash_1.HashedEntityMixin) {
27
+ }
32
28
  class Workflow extends BaseWorkflow {
33
- constructor(config, _Subworkflow = _subworkflow.Subworkflow, _UnitFactory = _factory.UnitFactory, _Workflow = Workflow, _MapUnit = _units.MapUnit) {
34
- if (!config._id) {
35
- config._id = Workflow.generateWorkflowId(config.name, config.properties, config.subworkflows, config.applicationName);
36
- }
37
- super(config);
38
- this._Subworkflow = _Subworkflow;
39
- this._UnitFactory = _UnitFactory;
40
- this._Workflow = _Workflow;
41
- this._MapUnit = _MapUnit;
42
- if (!config.skipInitialize) this.initialize();
43
- }
44
- initialize() {
45
- const me = this;
46
- this._subworkflows = this.prop("subworkflows").map(x => new me._Subworkflow(x));
47
- this._units = this.prop("units").map(unit => me._UnitFactory.create(unit));
48
- this._json.workflows = this._json.workflows || [];
49
- this._workflows = this.prop("workflows").map(x => new me._Workflow(x));
50
- }
51
- static get defaultConfig() {
52
- return _default.default;
53
- }
54
- static generateWorkflowId(name, properties = null, subworkflows = null, applicationName = null) {
55
- const propsInfo = properties?.length ? properties.sort().join(",") : "";
56
- const swInfo = subworkflows?.length ? subworkflows.map(sw => sw.name || "unknown").join(",") : "";
57
- const seed = [`workflow-${name}`, applicationName, propsInfo, swInfo].filter(p => p).join("-");
58
- if (this.usePredefinedIds) return _utils.Utils.uuid.getUUIDFromNamespace(seed);
59
- return _utils.Utils.uuid.getUUID();
60
- }
61
- static fromSubworkflow(subworkflow, ClsConstructor = Workflow) {
62
- const config = {
63
- name: subworkflow.name,
64
- subworkflows: [subworkflow.toJSON()],
65
- units: (0, _utils2.setNextLinks)((0, _utils2.setUnitsHead)([subworkflow.getAsUnit().toJSON()])),
66
- properties: subworkflow.properties,
67
- applicationName: subworkflow.application.name
68
- };
69
- return new ClsConstructor(config);
70
- }
71
- static fromSubworkflows(name, ClsConstructor = Workflow, ...subworkflows) {
72
- return new ClsConstructor(name, subworkflows, subworkflows.map(sw => sw.getAsUnit()));
73
- }
74
-
75
- /**
76
- * @summary Adds subworkflow to current workflow.
77
- * @param subworkflow {Subworkflow}
78
- * @param head {Boolean}
79
- */
80
- addSubworkflow(subworkflow, head = false, index = -1) {
81
- const subworkflowUnit = subworkflow.getAsUnit();
82
- if (head) {
83
- this.subworkflows.unshift(subworkflow);
84
- this.addUnit(subworkflowUnit, head, index);
85
- } else {
86
- this.subworkflows.push(subworkflow);
87
- this.addUnit(subworkflowUnit, head, index);
88
- }
89
- }
90
- removeSubworkflow(id) {
91
- const subworkflowUnit = this.units.find(u => u.id === id);
92
- if (subworkflowUnit) this.removeUnit(subworkflowUnit.flowchartId);
93
- }
94
- subworkflowId(index) {
95
- const sw = this.prop(`subworkflows[${index}]`);
96
- return sw ? sw._id : null;
97
- }
98
- replaceSubworkflowAtIndex(index, newSubworkflow) {
99
- this._subworkflows[index] = newSubworkflow;
100
- this.setUnits((0, _utils2.setNextLinks)((0, _utils2.setUnitsHead)(this._units)));
101
- }
102
- get units() {
103
- return this._units;
104
- }
105
- setUnits(arr) {
106
- this._units = arr;
107
- }
108
-
109
- // returns a list of `app` Classes
110
- get usedApplications() {
111
- const swApplications = this.subworkflows.map(sw => sw.application);
112
- const wfApplications = _lodash.default.flatten(this.workflows.map(w => w.usedApplications));
113
- return _lodash.default.uniqBy(swApplications.concat(wfApplications), a => a.name);
114
- }
115
-
116
- // return application names
117
- get usedApplicationNames() {
118
- return this.usedApplications.map(a => a.name);
119
- }
120
- get usedApplicationVersions() {
121
- return this.usedApplications.map(a => a.version);
122
- }
123
- get usedApplicationNamesWithVersions() {
124
- return this.usedApplications.map(a => `${a.name} ${a.version}`);
125
- }
126
- get usedModels() {
127
- return _lodash.default.uniq(this.subworkflows.map(sw => sw.model.type));
128
- }
129
- get humanReadableUsedModels() {
130
- return this.usedModels.filter(m => m !== "unknown").map(m => MODEL_NAMES[m]);
131
- }
132
- toJSON(exclude = []) {
133
- return _lodash.default.omit({
134
- ...super.toJSON(),
135
- units: this._units.map(x => x.toJSON()),
136
- subworkflows: this._subworkflows.map(x => x.toJSON()),
137
- workflows: this.workflows.map(x => x.toJSON()),
138
- ...(this.compute ? {
139
- compute: this.compute
140
- } : {}) // {"compute": null } won't pass esse validation
141
- }, exclude);
142
- }
143
- get isDefault() {
144
- return this.prop("isDefault", false);
145
- }
146
- get isMultiMaterial() {
147
- const fromSubworkflows = this.subworkflows.some(sw => sw.isMultiMaterial);
148
- return this.prop("isMultiMaterial") || fromSubworkflows;
149
- }
150
- set isMultiMaterial(value) {
151
- this.setProp("isMultiMaterial", value);
152
- }
153
- set isUsingDataset(value) {
154
- this.setProp("isUsingDataset", value);
155
- }
156
- get isUsingDataset() {
157
- return !!this.prop("isUsingDataset", false);
158
- }
159
- get properties() {
160
- return _lodash.default.uniq(_lodash.default.flatten(this._subworkflows.map(x => x.properties)));
161
- }
162
- get humanReadableProperties() {
163
- return this.properties.map(name => _underscore2.default.humanize(name));
164
- }
165
- get systemName() {
166
- return _underscore2.default.slugify(`${this.usedApplicationNames.join(":")}-${this.name.toLowerCase()}`);
167
- }
168
- get defaultDescription() {
169
- return `${this.usedModels.join(", ").toUpperCase()} workflow using ${this.usedApplicationNames.join(", ")}.`;
170
- }
171
- get exabyteId() {
172
- return this.prop("exabyteId");
173
- }
174
- get hash() {
175
- return this.prop("hash", "");
176
- }
177
- get isOutdated() {
178
- return this.prop("isOutdated", false);
179
- }
180
- get history() {
181
- return this.prop("history", []);
182
- }
183
- setMethodData(methodData) {
184
- this.subworkflows.forEach(sw => {
185
- const method = methodData.getMethodBySubworkflow(sw);
186
- if (method) sw.model.setMethod(method);
187
- });
188
- this.workflows.forEach(wf => {
189
- wf.subworkflows.forEach(sw => {
190
- const method = methodData.getMethodBySubworkflow(sw);
191
- if (method) sw.model.setMethod(method);
192
- });
193
- });
194
- }
195
-
196
- /**
197
- * @param unit {Unit}
198
- * @param head {Boolean}
199
- * @param index {Number}
200
- */
201
- addUnit(unit, head = false, index = -1) {
202
- const {
203
- units
204
- } = this;
205
- if (units.length === 0) {
206
- unit.head = true;
207
- this.setUnits([unit]);
208
- } else {
209
- if (head) {
210
- units.unshift(unit);
211
- } else if (index >= 0) {
212
- units.splice(index, 0, unit);
213
- } else {
214
- units.push(unit);
215
- }
216
- this.setUnits((0, _utils2.setNextLinks)((0, _utils2.setUnitsHead)(units)));
217
- }
218
- }
219
- removeUnit(flowchartId) {
220
- if (this.units.length < 2) return;
221
- const unit = this.units.find(x => x.flowchartId === flowchartId);
222
- const previousUnit = this.units.find(x => x.next === unit.flowchartId);
223
- if (previousUnit) {
224
- delete previousUnit.next;
225
- }
226
- this._subworkflows = this._subworkflows.filter(x => x.id !== unit.id);
227
- this._units = (0, _utils2.setNextLinks)((0, _utils2.setUnitsHead)(this._units.filter(x => x.flowchartId !== flowchartId)));
228
- }
229
-
230
- /**
231
- * @return Subworkflow[]
232
- */
233
- get subworkflows() {
234
- return this._subworkflows;
235
- }
236
- get workflows() {
237
- return this._workflows;
238
- }
239
-
240
- /*
241
- * @param type {String|Object} Unit type, map or subworkflow
242
- * @param head {Boolean}
243
- * @param index {Number} Index at which the unit will be added. -1 by default (ignored).
244
- */
245
- addUnitType(type, head = false, index = -1) {
246
- switch (type) {
247
- case _enums.UNIT_TYPES.map:
248
- // eslint-disable-next-line no-case-declarations
249
- const workflowConfig = _default.default;
250
- // eslint-disable-next-line no-case-declarations
251
- const mapUnit = new this._MapUnit();
252
- workflowConfig._id = this._Workflow.generateWorkflowId(workflowConfig.name, workflowConfig.properties, workflowConfig.subworkflows, this.applicationName);
253
- this.prop("workflows").push(workflowConfig);
254
- this._workflows = this.prop("workflows").map(x => new this._Workflow(x));
255
- mapUnit.setWorkflowId(workflowConfig._id);
256
- this.addUnit(mapUnit, head, index);
257
- break;
258
- case _enums.UNIT_TYPES.subworkflow:
259
- this.addSubworkflow(this._Subworkflow.createDefault(), head, index);
260
- break;
261
- default:
262
- console.log(`unit_type=${type} unrecognized, skipping.`);
263
- }
264
- }
265
- addMapUnit(mapUnit, mapWorkflow) {
266
- const mapWorkflowConfig = mapWorkflow.toJSON();
267
- if (!mapWorkflowConfig._id) {
268
- mapWorkflowConfig._id = this._Workflow.generateWorkflowId(mapWorkflowConfig.name, mapWorkflowConfig.properties, mapWorkflowConfig.subworkflows, mapWorkflow.applicationName || this.applicationName);
269
- }
270
- mapUnit.setWorkflowId(mapWorkflowConfig._id);
271
- this.addUnit(mapUnit);
272
- this._json.workflows.push(mapWorkflowConfig);
273
- const me = this;
274
- this._workflows = this.prop("workflows").map(x => new me._Workflow(x));
275
- }
276
- findSubworkflowById(id) {
277
- if (!id) return;
278
- const workflows = this.workflows || [];
279
- const subworkflows = this.subworkflows || [];
280
- const subworkflow = subworkflows.find(sw => sw.id === id);
281
- if (subworkflow) return subworkflow;
282
- const workflow = workflows.find(w => w.findSubworkflowById(id));
283
- if (workflow) return workflow.findSubworkflowById(id);
284
- console.warn("attempted to find a non-existing subworkflow");
285
- }
286
- get allSubworkflows() {
287
- const subworkflowsList = [];
288
- this.subworkflows.forEach(sw => subworkflowsList.push(sw));
289
- this.workflows.forEach(workflow => {
290
- return Array.prototype.push.apply(subworkflowsList, workflow.allSubworkflows);
291
- });
292
- return subworkflowsList;
293
- }
294
-
295
- /**
296
- * @summary
297
- * Returns object for hashing of the workflow. Meaningful fields are units and subworkflows.
298
- * units and subworkflows must be sorted topologically before hashing (already sorted).
299
- */
300
- getHashObject() {
301
- return {
302
- units: _underscore.default.map(this.units, u => u.calculateHash()).join(),
303
- subworkflows: _underscore.default.map(this.subworkflows, sw => sw.calculateHash()).join(),
304
- workflows: _underscore.default.map(this.workflows, w => w.calculateHash()).join()
305
- };
306
- }
29
+ constructor(config, _Subworkflow = subworkflow_1.Subworkflow, _UnitFactory = factory_1.UnitFactory, _Workflow = Workflow, _MapUnit = units_1.MapUnit) {
30
+ if (!config._id) {
31
+ config._id = Workflow.generateWorkflowId(config.name, config.properties, config.subworkflows, config.applicationName);
32
+ }
33
+ super(config);
34
+ this._Subworkflow = _Subworkflow;
35
+ this._UnitFactory = _UnitFactory;
36
+ this._Workflow = _Workflow;
37
+ this._MapUnit = _MapUnit;
38
+ if (!config.skipInitialize)
39
+ this.initialize();
40
+ }
41
+ initialize() {
42
+ const me = this;
43
+ this._subworkflows = this.prop("subworkflows").map((x) => new me._Subworkflow(x));
44
+ this._units = this.prop("units").map((unit) => me._UnitFactory.create(unit));
45
+ this._json.workflows = this._json.workflows || [];
46
+ this._workflows = this.prop("workflows").map((x) => new me._Workflow(x));
47
+ }
48
+ static get defaultConfig() {
49
+ return default_1.default;
50
+ }
51
+ static generateWorkflowId(name, properties = null, subworkflows = null, applicationName = null) {
52
+ const propsInfo = (properties === null || properties === void 0 ? void 0 : properties.length) ? properties.sort().join(",") : "";
53
+ const swInfo = (subworkflows === null || subworkflows === void 0 ? void 0 : subworkflows.length)
54
+ ? subworkflows.map((sw) => sw.name || "unknown").join(",")
55
+ : "";
56
+ const seed = [`workflow-${name}`, applicationName, propsInfo, swInfo]
57
+ .filter((p) => p)
58
+ .join("-");
59
+ if (this.usePredefinedIds)
60
+ return utils_1.Utils.uuid.getUUIDFromNamespace(seed);
61
+ return utils_1.Utils.uuid.getUUID();
62
+ }
63
+ static fromSubworkflow(subworkflow, ClsConstructor = Workflow) {
64
+ const config = {
65
+ name: subworkflow.name,
66
+ subworkflows: [subworkflow.toJSON()],
67
+ units: (0, utils_2.setNextLinks)((0, utils_2.setUnitsHead)([subworkflow.getAsUnit().toJSON()])),
68
+ properties: subworkflow.properties,
69
+ applicationName: subworkflow.application.name,
70
+ };
71
+ return new ClsConstructor(config);
72
+ }
73
+ static fromSubworkflows(name, ClsConstructor = Workflow, ...subworkflows) {
74
+ return new ClsConstructor(name, subworkflows, subworkflows.map((sw) => sw.getAsUnit()));
75
+ }
76
+ /**
77
+ * @summary Adds subworkflow to current workflow.
78
+ * @param subworkflow {Subworkflow}
79
+ * @param head {Boolean}
80
+ */
81
+ addSubworkflow(subworkflow, head = false, index = -1) {
82
+ const subworkflowUnit = subworkflow.getAsUnit();
83
+ if (head) {
84
+ this.subworkflows.unshift(subworkflow);
85
+ this.addUnit(subworkflowUnit, head, index);
86
+ }
87
+ else {
88
+ this.subworkflows.push(subworkflow);
89
+ this.addUnit(subworkflowUnit, head, index);
90
+ }
91
+ }
92
+ removeSubworkflow(id) {
93
+ const subworkflowUnit = this.units.find((u) => u.id === id);
94
+ if (subworkflowUnit)
95
+ this.removeUnit(subworkflowUnit.flowchartId);
96
+ }
97
+ subworkflowId(index) {
98
+ const sw = this.prop(`subworkflows[${index}]`);
99
+ return sw ? sw._id : null;
100
+ }
101
+ replaceSubworkflowAtIndex(index, newSubworkflow) {
102
+ this._subworkflows[index] = newSubworkflow;
103
+ this.setUnits((0, utils_2.setNextLinks)((0, utils_2.setUnitsHead)(this._units)));
104
+ }
105
+ get units() {
106
+ return this._units;
107
+ }
108
+ setUnits(arr) {
109
+ this._units = arr;
110
+ }
111
+ // returns a list of `app` Classes
112
+ get usedApplications() {
113
+ const swApplications = this.subworkflows.map((sw) => sw.application);
114
+ const wfApplications = lodash_1.default.flatten(this.workflows.map((w) => w.usedApplications));
115
+ return lodash_1.default.uniqBy(swApplications.concat(wfApplications), (a) => a.name);
116
+ }
117
+ // return application names
118
+ get usedApplicationNames() {
119
+ return this.usedApplications.map((a) => a.name);
120
+ }
121
+ get usedApplicationVersions() {
122
+ return this.usedApplications.map((a) => a.version);
123
+ }
124
+ get usedApplicationNamesWithVersions() {
125
+ return this.usedApplications.map((a) => `${a.name} ${a.version}`);
126
+ }
127
+ get usedModels() {
128
+ return lodash_1.default.uniq(this.subworkflows.map((sw) => sw.model.type));
129
+ }
130
+ get humanReadableUsedModels() {
131
+ return this.usedModels.filter((m) => m !== "unknown").map((m) => MODEL_NAMES[m]);
132
+ }
133
+ toJSON(exclude = []) {
134
+ return lodash_1.default.omit({
135
+ ...super.toJSON(),
136
+ units: this._units.map((x) => x.toJSON()),
137
+ subworkflows: this._subworkflows.map((x) => x.toJSON()),
138
+ workflows: this.workflows.map((x) => x.toJSON()),
139
+ ...(this.compute ? { compute: this.compute } : {}), // {"compute": null } won't pass esse validation
140
+ }, exclude);
141
+ }
142
+ get isDefault() {
143
+ return this.prop("isDefault", false);
144
+ }
145
+ get isMultiMaterial() {
146
+ const fromSubworkflows = this.subworkflows.some((sw) => sw.isMultiMaterial);
147
+ return this.prop("isMultiMaterial") || fromSubworkflows;
148
+ }
149
+ set isMultiMaterial(value) {
150
+ this.setProp("isMultiMaterial", value);
151
+ }
152
+ set isUsingDataset(value) {
153
+ this.setProp("isUsingDataset", value);
154
+ }
155
+ get isUsingDataset() {
156
+ return !!this.prop("isUsingDataset", false);
157
+ }
158
+ get properties() {
159
+ return lodash_1.default.uniq(lodash_1.default.flatten(this._subworkflows.map((x) => x.properties)));
160
+ }
161
+ get humanReadableProperties() {
162
+ return this.properties.map((name) => underscore_string_1.default.humanize(name));
163
+ }
164
+ get systemName() {
165
+ return underscore_string_1.default.slugify(`${this.usedApplicationNames.join(":")}-${this.name.toLowerCase()}`);
166
+ }
167
+ get defaultDescription() {
168
+ return `${this.usedModels
169
+ .join(", ")
170
+ .toUpperCase()} workflow using ${this.usedApplicationNames.join(", ")}.`;
171
+ }
172
+ get exabyteId() {
173
+ return this.prop("exabyteId");
174
+ }
175
+ get hash() {
176
+ return this.prop("hash", "");
177
+ }
178
+ get isOutdated() {
179
+ return this.prop("isOutdated", false);
180
+ }
181
+ get history() {
182
+ return this.prop("history", []);
183
+ }
184
+ setMethodData(methodData) {
185
+ this.subworkflows.forEach((sw) => {
186
+ const method = methodData.getMethodBySubworkflow(sw);
187
+ if (method)
188
+ sw.model.setMethod(method);
189
+ });
190
+ this.workflows.forEach((wf) => {
191
+ wf.subworkflows.forEach((sw) => {
192
+ const method = methodData.getMethodBySubworkflow(sw);
193
+ if (method)
194
+ sw.model.setMethod(method);
195
+ });
196
+ });
197
+ }
198
+ /**
199
+ * @param unit {Unit}
200
+ * @param head {Boolean}
201
+ * @param index {Number}
202
+ */
203
+ addUnit(unit, head = false, index = -1) {
204
+ const { units } = this;
205
+ if (units.length === 0) {
206
+ unit.head = true;
207
+ this.setUnits([unit]);
208
+ }
209
+ else {
210
+ if (head) {
211
+ units.unshift(unit);
212
+ }
213
+ else if (index >= 0) {
214
+ units.splice(index, 0, unit);
215
+ }
216
+ else {
217
+ units.push(unit);
218
+ }
219
+ this.setUnits((0, utils_2.setNextLinks)((0, utils_2.setUnitsHead)(units)));
220
+ }
221
+ }
222
+ removeUnit(flowchartId) {
223
+ if (this.units.length < 2)
224
+ return;
225
+ const unit = this.units.find((x) => x.flowchartId === flowchartId);
226
+ const previousUnit = this.units.find((x) => x.next === unit.flowchartId);
227
+ if (previousUnit) {
228
+ delete previousUnit.next;
229
+ }
230
+ this._subworkflows = this._subworkflows.filter((x) => x.id !== unit.id);
231
+ this._units = (0, utils_2.setNextLinks)((0, utils_2.setUnitsHead)(this._units.filter((x) => x.flowchartId !== flowchartId)));
232
+ }
233
+ /**
234
+ * @return Subworkflow[]
235
+ */
236
+ get subworkflows() {
237
+ return this._subworkflows;
238
+ }
239
+ get workflows() {
240
+ return this._workflows;
241
+ }
242
+ /*
243
+ * @param type {String|Object} Unit type, map or subworkflow
244
+ * @param head {Boolean}
245
+ * @param index {Number} Index at which the unit will be added. -1 by default (ignored).
246
+ */
247
+ addUnitType(type, head = false, index = -1) {
248
+ switch (type) {
249
+ case enums_1.UNIT_TYPES.map:
250
+ // eslint-disable-next-line no-case-declarations
251
+ const workflowConfig = default_1.default;
252
+ // eslint-disable-next-line no-case-declarations
253
+ const mapUnit = new this._MapUnit();
254
+ workflowConfig._id = this._Workflow.generateWorkflowId(workflowConfig.name, workflowConfig.properties, workflowConfig.subworkflows, this.applicationName);
255
+ this.prop("workflows").push(workflowConfig);
256
+ this._workflows = this.prop("workflows").map((x) => new this._Workflow(x));
257
+ mapUnit.setWorkflowId(workflowConfig._id);
258
+ this.addUnit(mapUnit, head, index);
259
+ break;
260
+ case enums_1.UNIT_TYPES.subworkflow:
261
+ this.addSubworkflow(this._Subworkflow.createDefault(), head, index);
262
+ break;
263
+ default:
264
+ console.log(`unit_type=${type} unrecognized, skipping.`);
265
+ }
266
+ }
267
+ addMapUnit(mapUnit, mapWorkflow) {
268
+ const mapWorkflowConfig = mapWorkflow.toJSON();
269
+ if (!mapWorkflowConfig._id) {
270
+ mapWorkflowConfig._id = this._Workflow.generateWorkflowId(mapWorkflowConfig.name, mapWorkflowConfig.properties, mapWorkflowConfig.subworkflows, mapWorkflow.applicationName || this.applicationName);
271
+ }
272
+ mapUnit.setWorkflowId(mapWorkflowConfig._id);
273
+ this.addUnit(mapUnit);
274
+ this._json.workflows.push(mapWorkflowConfig);
275
+ const me = this;
276
+ this._workflows = this.prop("workflows").map((x) => new me._Workflow(x));
277
+ }
278
+ findSubworkflowById(id) {
279
+ if (!id)
280
+ return;
281
+ const workflows = this.workflows || [];
282
+ const subworkflows = this.subworkflows || [];
283
+ const subworkflow = subworkflows.find((sw) => sw.id === id);
284
+ if (subworkflow)
285
+ return subworkflow;
286
+ const workflow = workflows.find((w) => w.findSubworkflowById(id));
287
+ if (workflow)
288
+ return workflow.findSubworkflowById(id);
289
+ console.warn("attempted to find a non-existing subworkflow");
290
+ }
291
+ get allSubworkflows() {
292
+ const subworkflowsList = [];
293
+ this.subworkflows.forEach((sw) => subworkflowsList.push(sw));
294
+ this.workflows.forEach((workflow) => {
295
+ return Array.prototype.push.apply(subworkflowsList, workflow.allSubworkflows);
296
+ });
297
+ return subworkflowsList;
298
+ }
299
+ /**
300
+ * @summary
301
+ * Returns object for hashing of the workflow. Meaningful fields are units and subworkflows.
302
+ * units and subworkflows must be sorted topologically before hashing (already sorted).
303
+ */
304
+ getHashObject() {
305
+ return {
306
+ units: underscore_1.default.map(this.units, (u) => u.calculateHash()).join(),
307
+ subworkflows: underscore_1.default.map(this.subworkflows, (sw) => sw.calculateHash()).join(),
308
+ workflows: underscore_1.default.map(this.workflows, (w) => w.calculateHash()).join(),
309
+ };
310
+ }
307
311
  }
308
312
  exports.Workflow = Workflow;
309
- _defineProperty(Workflow, "getDefaultComputeConfig", _ide.getDefaultComputeConfig);
310
- _defineProperty(Workflow, "jsonSchema", _workflow.default);
311
- _defineProperty(Workflow, "usePredefinedIds", false);
313
+ Workflow.getDefaultComputeConfig = ide_1.getDefaultComputeConfig;
314
+ Workflow.jsonSchema = workflow_json_1.default;
315
+ Workflow.usePredefinedIds = false;