@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
@@ -0,0 +1,286 @@
1
+ "use strict";
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
+ const entity_1 = require("@mat3ra/code/dist/js/entity");
7
+ const DefaultableMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/DefaultableMixin");
8
+ const HasDescriptionMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/HasDescriptionMixin");
9
+ const HashedEntityMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/HashedEntityMixin");
10
+ const NamedEntityMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/NamedEntityMixin");
11
+ const TaggableMixin_1 = require("@mat3ra/code/dist/js/entity/mixins/TaggableMixin");
12
+ const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
13
+ const compute_1 = require("@mat3ra/ide/dist/js/compute");
14
+ const standata_1 = require("@mat3ra/standata");
15
+ const utils_1 = require("@mat3ra/utils");
16
+ const enums_1 = require("./enums");
17
+ const WorkflowSchemaMixin_1 = require("./generated/WorkflowSchemaMixin");
18
+ const Subworkflow_1 = __importDefault(require("./Subworkflow"));
19
+ const units_1 = require("./units");
20
+ const factory_1 = require("./units/factory");
21
+ const workflow_1 = require("./utils/workflow");
22
+ const default_1 = __importDefault(require("./workflows/default"));
23
+ class Workflow extends entity_1.InMemoryEntity {
24
+ static get jsonSchema() {
25
+ return JSONSchemasInterface_1.default.getSchemaById("workflow");
26
+ }
27
+ setTotalRepetitions(totalRepetition) {
28
+ this.totalRepetitions = totalRepetition;
29
+ }
30
+ setRepetition(repetition) {
31
+ this.repetition = repetition;
32
+ this.unitInstances.forEach((u) => u.setRepetition(repetition));
33
+ this.subworkflowInstances.forEach((sw) => sw.setRepetition(repetition));
34
+ this.workflowInstances.forEach((wf) => wf.setRepetition(repetition));
35
+ }
36
+ static fromSubworkflow(subworkflow) {
37
+ const config = {
38
+ name: subworkflow.name,
39
+ subworkflows: [subworkflow.toJSON()],
40
+ units: [subworkflow.getAsUnit().toJSON()],
41
+ properties: subworkflow.properties,
42
+ applicationName: subworkflow.application.name,
43
+ workflows: [],
44
+ };
45
+ return new this(config);
46
+ }
47
+ constructor(config) {
48
+ var _a;
49
+ super({
50
+ ...config,
51
+ _id: config._id || utils_1.Utils.uuid.getUUID(),
52
+ });
53
+ this.repetition = 0;
54
+ this.totalRepetitions = 1;
55
+ this.subworkflowInstances = this.subworkflows.map((x) => new Subworkflow_1.default(x));
56
+ this.workflowInstances = ((_a = this.workflows) === null || _a === void 0 ? void 0 : _a.map((x) => new Workflow(x))) || [];
57
+ this.setUnits(this.units.map((unit) => factory_1.UnitFactory.createInWorkflow(unit)));
58
+ }
59
+ get workflows() {
60
+ return this.requiredProp("workflows");
61
+ }
62
+ set workflows(value) {
63
+ this.setProp("workflows", value);
64
+ }
65
+ addSubworkflow(subworkflow, head = false, index = -1) {
66
+ const subworkflowUnit = subworkflow.getAsUnit();
67
+ if (head) {
68
+ this.subworkflowInstances.unshift(subworkflow);
69
+ this.addUnit(subworkflowUnit, head, index);
70
+ }
71
+ else {
72
+ this.subworkflowInstances.push(subworkflow);
73
+ this.addUnit(subworkflowUnit, head, index);
74
+ }
75
+ }
76
+ updateMethodData(materials, metaProperties) {
77
+ this.subworkflowInstances.forEach((sw) => {
78
+ sw.updateMethodData(materials, metaProperties);
79
+ });
80
+ }
81
+ removeSubworkflow(id) {
82
+ const subworkflowUnit = this.unitInstances.find((u) => u.id === id);
83
+ if (subworkflowUnit) {
84
+ this.removeUnit(subworkflowUnit.flowchartId);
85
+ }
86
+ }
87
+ setUnits(arr) {
88
+ this.unitInstances = (0, standata_1.setUnitLinks)(arr);
89
+ this.units = this.unitInstances.map((u) => u.toJSON());
90
+ }
91
+ /**
92
+ * A top-level subworkflow branch is represented twice: a {@link UnitType.subworkflow} unit in
93
+ * `unitInstances` (flowchart card) and a full {@link Subworkflow} in `subworkflowInstances`
94
+ * (linked by the same `id` as {@link Subworkflow.getAsUnit}). Their display names must match
95
+ * so `toJSON()` and editors stay consistent. Call this after mutating a subworkflow unit's
96
+ * `name` (and updating `unitInstances` via {@link setUnits}).
97
+ */
98
+ syncLinkedSubworkflowNameFromUnit(unit) {
99
+ if (unit.type !== enums_1.UnitType.subworkflow)
100
+ return;
101
+ const linked = this.subworkflowInstances.find((s) => s.id === unit.id);
102
+ linked === null || linked === void 0 ? void 0 : linked.setName(unit.name);
103
+ }
104
+ render(context) {
105
+ this.subworkflowInstances.forEach((sw) => {
106
+ sw.render({
107
+ ...context,
108
+ workflowHasRelaxation: this.hasRelaxation,
109
+ });
110
+ });
111
+ this.workflowInstances.forEach((wf) => {
112
+ wf.render(context);
113
+ });
114
+ }
115
+ get usedApplications() {
116
+ return (0, workflow_1.getUsedApplications)(this);
117
+ }
118
+ // return application names
119
+ get usedApplicationNames() {
120
+ return this.usedApplications.map((a) => a.name);
121
+ }
122
+ get usedApplicationVersions() {
123
+ return this.usedApplications.map((a) => a.version);
124
+ }
125
+ get usedApplicationNamesWithVersions() {
126
+ return this.usedApplications.map((a) => `${a.name} ${a.version}`);
127
+ }
128
+ getUsedModels() {
129
+ return (0, workflow_1.getUsedModels)(this);
130
+ }
131
+ getHumanReadableUsedModels() {
132
+ return (0, workflow_1.getHumanReadableUsedModels)(this);
133
+ }
134
+ toJSON() {
135
+ return {
136
+ ...super.toJSON(),
137
+ name: this.name,
138
+ properties: (0, workflow_1.getProperties)(this),
139
+ units: this.unitInstances.map((x) => x.toJSON()),
140
+ subworkflows: this.subworkflowInstances.map((x) => x.toJSON()),
141
+ workflows: this.workflowInstances.map((x) => x.toJSON()),
142
+ };
143
+ }
144
+ getHumanReadableProperties() {
145
+ return (0, workflow_1.getHumanReadableProperties)(this);
146
+ }
147
+ getProperties() {
148
+ return (0, workflow_1.getProperties)(this);
149
+ }
150
+ getSystemName() {
151
+ return (0, workflow_1.getSystemName)(this);
152
+ }
153
+ getDefaultDescription() {
154
+ return (0, workflow_1.getDefaultDescription)(this);
155
+ }
156
+ addUnit(unit, head = false, index = -1) {
157
+ const [...unitInstances] = this.unitInstances;
158
+ if (unitInstances.length === 0) {
159
+ this.setUnits([unit]);
160
+ }
161
+ else {
162
+ if (head) {
163
+ unitInstances.unshift(unit);
164
+ }
165
+ else if (index >= 0) {
166
+ unitInstances.splice(index, 0, unit);
167
+ }
168
+ else {
169
+ unitInstances.push(unit);
170
+ }
171
+ this.setUnits(unitInstances);
172
+ }
173
+ }
174
+ removeUnit(flowchartId) {
175
+ if (this.units.length < 2) {
176
+ return;
177
+ }
178
+ const unit = this.unitInstances.find((x) => x.flowchartId === flowchartId);
179
+ if (!unit) {
180
+ return;
181
+ }
182
+ const previousUnit = this.unitInstances.find((x) => x.next === unit.flowchartId);
183
+ if (previousUnit) {
184
+ delete previousUnit.next;
185
+ }
186
+ this.subworkflowInstances = this.subworkflowInstances.filter((x) => x.id !== unit.id);
187
+ this.setUnits(this.unitInstances.filter((x) => x.flowchartId !== flowchartId));
188
+ }
189
+ /*
190
+ * @param type {String|Object} Unit type, map or subworkflow
191
+ * @param head {Boolean}
192
+ * @param index {Number} Index at which the unit will be added. -1 by default (ignored).
193
+ */
194
+ addUnitType(type, head = false, index = -1) {
195
+ switch (type) {
196
+ case enums_1.UnitType.map: {
197
+ const mapWorkflowConfig = {
198
+ ...default_1.default,
199
+ _id: utils_1.Utils.uuid.getUUID(),
200
+ };
201
+ const mapUnit = new units_1.MapUnit({
202
+ workflowId: mapWorkflowConfig._id,
203
+ });
204
+ this.workflows = [...(this.workflows || []), mapWorkflowConfig];
205
+ this.workflowInstances = this.workflows.map((x) => new Workflow(x));
206
+ this.addUnit(mapUnit, head, index);
207
+ break;
208
+ }
209
+ case enums_1.UnitType.subworkflow:
210
+ this.addSubworkflow(Subworkflow_1.default.createDefault(), head, index);
211
+ break;
212
+ default:
213
+ console.log(`unit_type=${type} unrecognized, skipping.`);
214
+ }
215
+ }
216
+ addMapUnit(mapUnit, mapWorkflow) {
217
+ const mapWorkflowConfig = {
218
+ _id: utils_1.Utils.uuid.getUUID(),
219
+ ...mapWorkflow.toJSON(),
220
+ };
221
+ mapUnit.setWorkflowId(mapWorkflowConfig._id);
222
+ this.addUnit(mapUnit);
223
+ this.workflows = [...(this.workflows || []), mapWorkflowConfig];
224
+ this.workflowInstances = this.workflows.map((x) => new Workflow(x));
225
+ }
226
+ get allSubworkflows() {
227
+ const subworkflowsList = [];
228
+ this.subworkflowInstances.forEach((sw) => subworkflowsList.push(sw));
229
+ this.workflowInstances.forEach((workflow) => {
230
+ return Array.prototype.push.apply(subworkflowsList, workflow.allSubworkflows);
231
+ });
232
+ return subworkflowsList;
233
+ }
234
+ get hasRelaxation() {
235
+ return Boolean(this.getRelaxationSubworkflow());
236
+ }
237
+ toggleRelaxation() {
238
+ const relaxSubworkflow = this.getRelaxationSubworkflow();
239
+ if (relaxSubworkflow === null || relaxSubworkflow === void 0 ? void 0 : relaxSubworkflow._id) {
240
+ this.removeSubworkflow(relaxSubworkflow._id);
241
+ }
242
+ else {
243
+ const vcRelax = this.getStandataRelaxationSubworkflow();
244
+ if (vcRelax) {
245
+ this.addSubworkflow(new Subworkflow_1.default(vcRelax), true);
246
+ }
247
+ }
248
+ }
249
+ getHashObject() {
250
+ return {
251
+ units: this.unitInstances.map((u) => u.calculateHash()).join(),
252
+ subworkflows: this.subworkflowInstances.map((sw) => sw.calculateHash()).join(),
253
+ workflows: this.workflowInstances.map((w) => w.calculateHash()).join(),
254
+ };
255
+ }
256
+ getStandataRelaxationSubworkflow() {
257
+ // TODO: fix standata type
258
+ const subworkflow = new standata_1.SubworkflowStandata().getRelaxationSubworkflowByApplication(this.subworkflowInstances[0].application.name);
259
+ if (!subworkflow) {
260
+ return undefined;
261
+ }
262
+ const executionUnit = subworkflow.units.find((unit) => unit.type === enums_1.UnitType.execution);
263
+ if (!executionUnit) {
264
+ throw new Error("Relaxation subworkflow is missing an execution unit");
265
+ }
266
+ return {
267
+ ...subworkflow,
268
+ application: executionUnit.application,
269
+ };
270
+ }
271
+ getRelaxationSubworkflow() {
272
+ const standataSubworkflow = this.getStandataRelaxationSubworkflow();
273
+ return this.subworkflowInstances.find((sw) => {
274
+ return standataSubworkflow && standataSubworkflow.systemName === sw.systemName;
275
+ });
276
+ }
277
+ }
278
+ Workflow.defaultConfig = default_1.default;
279
+ (0, NamedEntityMixin_1.namedEntityMixin)(Workflow.prototype);
280
+ (0, WorkflowSchemaMixin_1.workflowSchemaMixin)(Workflow.prototype);
281
+ (0, TaggableMixin_1.taggableMixin)(Workflow.prototype);
282
+ (0, compute_1.computedEntityMixin)(Workflow.prototype);
283
+ (0, DefaultableMixin_1.defaultableEntityMixin)(Workflow);
284
+ (0, HashedEntityMixin_1.hashedEntityMixin)(Workflow.prototype);
285
+ (0, HasDescriptionMixin_1.hasDescriptionMixin)(Workflow.prototype);
286
+ exports.default = Workflow;
@@ -0,0 +1,21 @@
1
+ import { InMemoryEntity } from "@mat3ra/code/dist/js/entity";
2
+ import { type InMemoryEntityInSet } from "@mat3ra/code/dist/js/entity/set/InMemoryEntityInSetMixin";
3
+ import type { OrderedInMemoryEntityInSet } from "@mat3ra/code/dist/js/entity/set/ordered/OrderedInMemoryEntityInSetMixin";
4
+ import type { ConsistencyCheck, MaterialSchema } from "@mat3ra/esse/dist/js/types";
5
+ import { Material } from "@mat3ra/made";
6
+ type Schema = Omit<MaterialSchema, "consistencyChecks"> & {
7
+ consistencyChecks?: ConsistencyCheck[];
8
+ };
9
+ interface WorkflowDesignerMaterial extends InMemoryEntityInSet, OrderedInMemoryEntityInSet {
10
+ }
11
+ /**
12
+ * `Material` with `OrderedInMemoryEntityInSet` for workflow designer / map nested `Workflow.render`
13
+ * (expects `OrderedMaterial` in render context), mirroring app materials that use ordered-set mixins.
14
+ */
15
+ declare class WorkflowDesignerMaterial extends Material implements Schema {
16
+ constructor(config?: object | InMemoryEntity);
17
+ static createDefault(): WorkflowDesignerMaterial;
18
+ /** Wrap any `Material` as `OrderedMaterial` for `Workflow.render`. */
19
+ static fromMaterial(material: Material): WorkflowDesignerMaterial;
20
+ }
21
+ export default WorkflowDesignerMaterial;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const entity_1 = require("@mat3ra/code/dist/js/entity");
4
+ const InMemoryEntityInSetMixin_1 = require("@mat3ra/code/dist/js/entity/set/InMemoryEntityInSetMixin");
5
+ const OrderedInMemoryEntityInSetMixin_1 = require("@mat3ra/code/dist/js/entity/set/ordered/OrderedInMemoryEntityInSetMixin");
6
+ const made_1 = require("@mat3ra/made");
7
+ /**
8
+ * `Material` with `OrderedInMemoryEntityInSet` for workflow designer / map nested `Workflow.render`
9
+ * (expects `OrderedMaterial` in render context), mirroring app materials that use ordered-set mixins.
10
+ */
11
+ class WorkflowDesignerMaterial extends made_1.Material {
12
+ constructor(config = {}) {
13
+ super(config instanceof entity_1.InMemoryEntity ? config.toJSON() : config);
14
+ this.setProp("inSet", this.prop("inSet", []));
15
+ }
16
+ static createDefault() {
17
+ return new WorkflowDesignerMaterial(made_1.defaultMaterialConfig);
18
+ }
19
+ /** Wrap any `Material` as `OrderedMaterial` for `Workflow.render`. */
20
+ static fromMaterial(material) {
21
+ return new WorkflowDesignerMaterial(material.toJSON());
22
+ }
23
+ }
24
+ (0, InMemoryEntityInSetMixin_1.inMemoryEntityInSetMixin)(WorkflowDesignerMaterial.prototype);
25
+ (0, OrderedInMemoryEntityInSetMixin_1.orderedEntityInSetMixin)(WorkflowDesignerMaterial.prototype);
26
+ exports.default = WorkflowDesignerMaterial;
@@ -0,0 +1,10 @@
1
+ import type { ApplicationSchema } from "@mat3ra/esse/dist/js/types";
2
+ import type ContextProvider from "../providers/base/ContextProvider";
3
+ export type ApplicationContextMixin = {
4
+ application: ApplicationSchema;
5
+ initApplicationContextMixin(externalContext: ApplicationExternalContext): void;
6
+ };
7
+ export type ApplicationExternalContext = {
8
+ application: ApplicationSchema;
9
+ };
10
+ export default function applicationContextMixin(item: ContextProvider): void;
@@ -1,19 +1,12 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.applicationContextMixin = applicationContextMixin;
7
- var _settings = require("../providers/settings");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = applicationContextMixin;
8
4
  function applicationContextMixin(item) {
9
- const properties = {
10
- _application: undefined,
11
- initApplicationContextMixin() {
12
- this._application = this.config.context && this.config.context.application || _settings.globalSettings.Application.createDefault();
13
- },
14
- get application() {
15
- return this._application;
16
- }
17
- };
18
- Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
19
- }
5
+ // @ts-expect-error
6
+ const properties = {
7
+ initApplicationContextMixin(externalContext) {
8
+ this.application = externalContext.application;
9
+ },
10
+ };
11
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
12
+ }
@@ -0,0 +1,18 @@
1
+ import type { OrderedInMemoryEntityInSet } from "@mat3ra/code/dist/js/entity/set/ordered/OrderedInMemoryEntityInSetMixin";
2
+ import { Material } from "@mat3ra/made/dist/js/material";
3
+ import type ContextProvider from "../providers/base/ContextProvider";
4
+ export type OrderedMaterial = OrderedInMemoryEntityInSet & Material;
5
+ export type MaterialContextMixin = {
6
+ readonly isMaterialCreatedDefault: boolean;
7
+ readonly isMaterialUpdated: boolean;
8
+ material: OrderedMaterial;
9
+ extraData?: {
10
+ materialHash: string;
11
+ };
12
+ initMaterialContextMixin(externalContext: MaterialExternalContext): void;
13
+ updateMaterialHash(): void;
14
+ };
15
+ export type MaterialExternalContext = {
16
+ material: OrderedMaterial;
17
+ };
18
+ export default function materialContextMixin(item: ContextProvider): void;
@@ -1,40 +1,16 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.materialContextMixin = materialContextMixin;
7
- var _settings = require("../providers/settings");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = materialContextMixin;
8
4
  function materialContextMixin(item) {
9
- const properties = {
10
- _material: undefined,
11
- updateMaterialHash() {
12
- if (this.isEditedIsSetToFalseOnMaterialUpdate) this.isEdited = false;
13
- this.extraData = {
14
- materialHash: this.material.hash
15
- };
16
- },
17
- // Workaround: Material.createDefault() used to initiate workflow reducer and hence here too
18
- // does not have an id. Here we catch when such material is used and avoid resetting isEdited
19
- get isMaterialCreatedDefault() {
20
- return !this.material.id;
21
- },
22
- get isMaterialUpdated() {
23
- return Boolean(this.extraData && this.extraData.materialHash !== this.material.hash);
24
- },
25
- get material() {
26
- if (!this._material) {
27
- throw new Error("Material is not set");
28
- }
29
- return this._material;
30
- },
31
- initMaterialContextMixin() {
32
- this._material = this.config.context && this.config.context.material;
33
- if (!this._material) {
34
- this._material = _settings.globalSettings.Material.createDefault();
35
- }
36
- this.updateMaterialHash();
37
- }
38
- };
39
- Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
40
- }
5
+ // @ts-expect-error
6
+ const properties = {
7
+ updateMaterialHash() {
8
+ this.extraData = { materialHash: this.material.hash };
9
+ },
10
+ initMaterialContextMixin(externalContext) {
11
+ this.material = externalContext.material;
12
+ this.updateMaterialHash();
13
+ },
14
+ };
15
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
16
+ }
@@ -0,0 +1,10 @@
1
+ import type ContextProvider from "../providers/base/ContextProvider";
2
+ import type { OrderedMaterial } from "./MaterialContextMixin";
3
+ export type MaterialsContextMixin = {
4
+ materials: OrderedMaterial[];
5
+ initMaterialsContextMixin(externalContext: MaterialsExternalContext): void;
6
+ };
7
+ export type MaterialsExternalContext = {
8
+ materials: OrderedMaterial[];
9
+ };
10
+ export default function materialsContextMixin(item: ContextProvider): void;
@@ -1,19 +1,13 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.materialsContextMixin = materialsContextMixin;
7
- var _settings = require("../providers/settings");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = materialsContextMixin;
8
4
  function materialsContextMixin(item) {
9
- const properties = {
10
- get materials() {
11
- return this._materials;
12
- },
13
- initMaterialsContextMixin() {
14
- const materials = this.config.context?.materials;
15
- this._materials = materials && materials.length ? materials : [_settings.globalSettings.Material.createDefault()];
16
- }
17
- };
18
- Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
19
- }
5
+ // @ts-expect-error
6
+ const properties = {
7
+ materials: [],
8
+ initMaterialsContextMixin(externalContext) {
9
+ this.materials = externalContext.materials;
10
+ },
11
+ };
12
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
13
+ }
@@ -0,0 +1,14 @@
1
+ import type ContextProvider from "../providers/base/ContextProvider";
2
+ import type { OrderedMaterial } from "./MaterialContextMixin";
3
+ export type MaterialsSet = {
4
+ _id: string;
5
+ };
6
+ export type MaterialsSetExternalContext = {
7
+ materialsSet?: MaterialsSet;
8
+ };
9
+ export type MaterialsSetContextMixin = {
10
+ materialsSet?: MaterialsSet;
11
+ initMaterialsSetContextMixin(externalContext: MaterialsSetExternalContext): void;
12
+ sortMaterialsByIndexInSet(materials?: OrderedMaterial[]): OrderedMaterial[];
13
+ };
14
+ export default function materialsSetContextMixin(item: ContextProvider): void;
@@ -1,25 +1,23 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.materialsSetContextMixin = materialsSetContextMixin;
7
- var _utils = require("@mat3ra/code/dist/js/entity/set/ordered/utils");
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = materialsSetContextMixin;
4
+ const utils_1 = require("@mat3ra/code/dist/js/entity/set/ordered/utils");
8
5
  function materialsSetContextMixin(item) {
9
- const properties = {
10
- _materialsSet: undefined,
11
- get materialsSet() {
12
- return this._materialsSet;
13
- },
14
- initMaterialsSetContextMixin() {
15
- this._materialsSet = this.config.context?.materialsSet;
16
- },
17
- sortMaterialsByIndexInSet(materials = []) {
18
- // DO NOT SORT IN PLACE AS IT CHANGES THE ORDER IN `this.materials` AND HAS SIDE EFFECTS (MaterialViewer).
19
- return materials.concat().sort((a, b) => {
20
- return (0, _utils.compareEntitiesInOrderedSetForSorting)(a, b, this.materialsSet._id, false);
21
- });
22
- }
23
- };
24
- Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
25
- }
6
+ // @ts-expect-error
7
+ const properties = {
8
+ initMaterialsSetContextMixin(externalContext) {
9
+ this.materialsSet = externalContext.materialsSet;
10
+ },
11
+ sortMaterialsByIndexInSet(materials = []) {
12
+ const { materialsSet } = this;
13
+ if (!materialsSet) {
14
+ return materials;
15
+ }
16
+ // DO NOT SORT IN PLACE AS IT CHANGES THE ORDER IN `this.materials` AND HAS SIDE EFFECTS (MaterialViewer).
17
+ return [...materials].sort((a, b) => {
18
+ return (0, utils_1.compareEntitiesInOrderedSetForSorting)(a, b, materialsSet._id, false);
19
+ });
20
+ },
21
+ };
22
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
23
+ }
@@ -0,0 +1,30 @@
1
+ import type { JSONSchema } from "@mat3ra/esse/dist/js/esse/utils";
2
+ import type { BoundaryConditionsContextItemSchema } from "@mat3ra/esse/dist/js/types";
3
+ import { type MaterialContextMixin, type MaterialExternalContext } from "../mixins/MaterialContextMixin";
4
+ import type { UnitContext } from "./base/ContextProvider";
5
+ import JSONSchemaDataProvider, { type JinjaExternalContext } from "./base/JSONSchemaDataProvider";
6
+ type Schema = BoundaryConditionsContextItemSchema;
7
+ type ExternalContext = JinjaExternalContext & MaterialExternalContext;
8
+ interface BoundaryConditionsFormDataManager extends MaterialContextMixin {
9
+ }
10
+ declare class BoundaryConditionsFormDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
11
+ readonly name: "boundaryConditions";
12
+ readonly domain: "important";
13
+ readonly entityName: "unit";
14
+ static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext): BoundaryConditionsFormDataManager;
15
+ readonly humanName: "Boundary Conditions";
16
+ readonly uiSchema: {
17
+ readonly type: {
18
+ readonly "ui:disabled": true;
19
+ };
20
+ readonly offset: {
21
+ readonly "ui:disabled": true;
22
+ };
23
+ readonly electricField: {};
24
+ readonly targetFermiEnergy: {};
25
+ };
26
+ constructor(contextItem: Partial<Schema>, externalContext: ExternalContext);
27
+ getDefaultData(): Schema["data"];
28
+ get jsonSchema(): JSONSchema;
29
+ }
30
+ export default BoundaryConditionsFormDataManager;
@@ -0,0 +1,62 @@
1
+ "use strict";
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
+ const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
7
+ const MaterialContextMixin_1 = __importDefault(require("../mixins/MaterialContextMixin"));
8
+ const JSONSchemaDataProvider_1 = __importDefault(require("./base/JSONSchemaDataProvider"));
9
+ const jsonSchemaId = "context-providers-directory/boundary-conditions-data-provider";
10
+ // TODO: move to esse
11
+ var BoundaryConditionsType;
12
+ (function (BoundaryConditionsType) {
13
+ BoundaryConditionsType["pbc"] = "pbc";
14
+ BoundaryConditionsType["bc1"] = "bc1";
15
+ BoundaryConditionsType["bc2"] = "bc2";
16
+ BoundaryConditionsType["bc3"] = "bc3";
17
+ })(BoundaryConditionsType || (BoundaryConditionsType = {}));
18
+ class BoundaryConditionsFormDataManager extends JSONSchemaDataProvider_1.default {
19
+ static createFromUnitContext(unitContext, externalContext) {
20
+ const contextItem = this.findContextItem(unitContext, "boundaryConditions");
21
+ return new BoundaryConditionsFormDataManager(contextItem, externalContext);
22
+ }
23
+ constructor(contextItem, externalContext) {
24
+ super(contextItem, externalContext);
25
+ this.name = "boundaryConditions";
26
+ this.domain = "important";
27
+ this.entityName = "unit";
28
+ this.humanName = "Boundary Conditions";
29
+ this.uiSchema = {
30
+ type: { "ui:disabled": true },
31
+ offset: { "ui:disabled": true },
32
+ electricField: {},
33
+ targetFermiEnergy: {},
34
+ };
35
+ this.initMaterialContextMixin(externalContext);
36
+ }
37
+ getDefaultData() {
38
+ var _a, _b, _c;
39
+ const metadata = (_a = this.material) === null || _a === void 0 ? void 0 : _a.metadata;
40
+ return {
41
+ type: ((_b = metadata === null || metadata === void 0 ? void 0 : metadata.boundaryConditions) === null || _b === void 0 ? void 0 : _b.type) || BoundaryConditionsType.pbc,
42
+ offset: ((_c = metadata === null || metadata === void 0 ? void 0 : metadata.boundaryConditions) === null || _c === void 0 ? void 0 : _c.offset) || 0,
43
+ electricField: 0,
44
+ targetFermiEnergy: 0,
45
+ };
46
+ }
47
+ get jsonSchema() {
48
+ const defaults = this.getDefaultData();
49
+ const jsonSchema = JSONSchemasInterface_1.default.getPatchedSchemaById(jsonSchemaId, {
50
+ type: { default: defaults.type },
51
+ offset: { default: defaults.offset },
52
+ electricField: { default: defaults.electricField },
53
+ targetFermiEnergy: { default: defaults.targetFermiEnergy },
54
+ });
55
+ if (!jsonSchema) {
56
+ throw new Error("Failed to get patched JSON schema");
57
+ }
58
+ return jsonSchema;
59
+ }
60
+ }
61
+ (0, MaterialContextMixin_1.default)(BoundaryConditionsFormDataManager.prototype);
62
+ exports.default = BoundaryConditionsFormDataManager;