@mat3ra/wode 2026.5.23-0 → 2026.5.29-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.
- package/.babelrc +1 -1
- package/dist/js/Subworkflow.d.ts +714 -0
- package/dist/js/Subworkflow.js +397 -0
- package/dist/js/Workflow.d.ts +82 -0
- package/dist/js/Workflow.js +286 -0
- package/dist/js/WorkflowDesignerMaterial.d.ts +21 -0
- package/dist/js/WorkflowDesignerMaterial.js +26 -0
- package/dist/js/context/mixins/ApplicationContextMixin.d.ts +10 -0
- package/dist/js/context/mixins/ApplicationContextMixin.js +10 -17
- package/dist/js/context/mixins/MaterialContextMixin.d.ts +18 -0
- package/dist/js/context/mixins/MaterialContextMixin.js +14 -38
- package/dist/js/context/mixins/MaterialsContextMixin.d.ts +10 -0
- package/dist/js/context/mixins/MaterialsContextMixin.js +11 -17
- package/dist/js/context/mixins/MaterialsSetContextMixin.d.ts +14 -0
- package/dist/js/context/mixins/MaterialsSetContextMixin.js +21 -23
- package/dist/js/context/providers/BoundaryConditionsFormDataManager.d.ts +30 -0
- package/dist/js/context/providers/BoundaryConditionsFormDataManager.js +62 -0
- package/dist/js/context/providers/CollinearMagnetizationDataManager.d.ts +42 -0
- package/dist/js/context/providers/CollinearMagnetizationDataManager.js +101 -0
- package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.d.ts +29 -0
- package/dist/js/context/providers/Hubbard/HubbardContextManagerLegacy.js +69 -0
- package/dist/js/context/providers/Hubbard/HubbardContextProvider.d.ts +20 -0
- package/dist/js/context/providers/Hubbard/HubbardContextProvider.js +47 -0
- package/dist/js/context/providers/Hubbard/HubbardJContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardJContextManager.js +61 -0
- package/dist/js/context/providers/Hubbard/HubbardUContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardUContextManager.js +57 -0
- package/dist/js/context/providers/Hubbard/HubbardVContextManager.d.ts +22 -0
- package/dist/js/context/providers/Hubbard/HubbardVContextManager.js +79 -0
- package/dist/js/context/providers/IonDynamicsDataManager.d.ts +27 -0
- package/dist/js/context/providers/IonDynamicsDataManager.js +48 -0
- package/dist/js/context/providers/MLSettingsDataManager.d.ts +24 -0
- package/dist/js/context/providers/MLSettingsDataManager.js +42 -0
- package/dist/js/context/providers/MLTrainTestSplitDataManager.d.ts +23 -0
- package/dist/js/context/providers/MLTrainTestSplitDataManager.js +40 -0
- package/dist/js/context/providers/NEBFormDataManager.d.ts +23 -0
- package/dist/js/context/providers/NEBFormDataManager.js +39 -0
- package/dist/js/context/providers/NonCollinearMagnetizationDataManager.d.ts +78 -0
- package/dist/js/context/providers/NonCollinearMagnetizationDataManager.js +181 -0
- package/dist/js/context/providers/PlanewaveCutoffDataManager.d.ts +26 -0
- package/dist/js/context/providers/PlanewaveCutoffDataManager.js +69 -0
- package/dist/js/context/providers/PointsGrid/IGridFormDataManager.d.ts +13 -0
- package/dist/js/context/providers/PointsGrid/IGridFormDataManager.js +23 -0
- package/dist/js/context/providers/PointsGrid/KGridFormDataManager.d.ts +15 -0
- package/dist/js/context/providers/PointsGrid/KGridFormDataManager.js +30 -0
- package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.d.ts +171 -0
- package/dist/js/context/providers/PointsGrid/PointsGridFormDataProvider.js +270 -0
- package/dist/js/context/providers/PointsGrid/QGridFormDataManager.d.ts +13 -0
- package/dist/js/context/providers/PointsGrid/QGridFormDataManager.js +23 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.d.ts +10 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.js +19 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.d.ts +9 -0
- package/dist/js/context/providers/PointsPath/ExplicitKPathFormDataManager.js +18 -0
- package/dist/js/context/providers/PointsPath/IPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/IPathFormDataManager.js +17 -0
- package/dist/js/context/providers/PointsPath/KPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/KPathFormDataManager.js +17 -0
- package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.d.ts +40 -0
- package/dist/js/context/providers/PointsPath/PointsPathFormDataProvider.js +125 -0
- package/dist/js/context/providers/PointsPath/QPathFormDataManager.d.ts +8 -0
- package/dist/js/context/providers/PointsPath/QPathFormDataManager.js +17 -0
- package/dist/js/context/providers/base/ContextProvider.d.ts +75 -0
- package/dist/js/context/providers/base/ContextProvider.js +87 -0
- package/dist/js/context/providers/base/JSONSchemaDataProvider.d.ts +16 -0
- package/dist/js/context/providers/base/JSONSchemaDataProvider.js +17 -0
- package/dist/js/context/providers/base/JSONSchemaFormDataProvider.d.ts +19 -0
- package/dist/js/context/providers/base/JSONSchemaFormDataProvider.js +32 -0
- package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.d.ts +26 -0
- package/dist/js/context/providers/by_application/espresso/QENEBInputDataManager.js +54 -0
- package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.d.ts +78 -0
- package/dist/js/context/providers/by_application/espresso/QEPWXInputDataManager.js +104 -0
- package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.d.ts +36 -0
- package/dist/js/context/providers/by_application/nwchem/NWChemInputDataManager.js +58 -0
- package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.d.ts +36 -0
- package/dist/js/context/providers/by_application/vasp/VASPInputDataManager.js +56 -0
- package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.d.ts +30 -0
- package/dist/js/context/providers/by_application/vasp/VASPNEBInputDataManager.js +50 -0
- package/dist/js/context/providers/index.d.ts +92 -0
- package/dist/js/context/providers/index.js +107 -0
- package/dist/js/context/providers/settings.d.ts +7 -0
- package/dist/js/context/providers/settings.js +11 -33
- package/dist/js/convergence/ConvergenceParameter.d.ts +26 -0
- package/dist/js/convergence/ConvergenceParameter.js +13 -0
- package/dist/js/convergence/NonUniformKGridConvergence.d.ts +12 -0
- package/dist/js/convergence/NonUniformKGridConvergence.js +31 -0
- package/dist/js/convergence/UniformKGridConvergence.d.ts +8 -0
- package/dist/js/convergence/UniformKGridConvergence.js +22 -0
- package/dist/js/convergence/factory.d.ts +8 -0
- package/dist/js/convergence/factory.js +18 -0
- package/dist/js/enums.d.ts +62 -0
- package/dist/js/enums.js +66 -61
- package/dist/js/generated/AssertionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/AssertionUnitSchemaMixin.js +27 -0
- package/dist/js/generated/AssignmentUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/AssignmentUnitSchemaMixin.js +33 -0
- package/dist/js/generated/BaseUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/BaseUnitSchemaMixin.js +57 -0
- package/dist/js/generated/ConditionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ConditionUnitSchemaMixin.js +51 -0
- package/dist/js/generated/ExecutionUnitInputSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ExecutionUnitInputSchemaMixin.js +27 -0
- package/dist/js/generated/ExecutionUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ExecutionUnitSchemaMixin.js +45 -0
- package/dist/js/generated/IOUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/IOUnitSchemaMixin.js +33 -0
- package/dist/js/generated/MapUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/MapUnitSchemaMixin.js +27 -0
- package/dist/js/generated/ReduceUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/ReduceUnitSchemaMixin.js +27 -0
- package/dist/js/generated/StatusSchemaMixin.d.ts +5 -0
- package/dist/js/generated/StatusSchemaMixin.js +21 -0
- package/dist/js/generated/SubworkflowSchemaMixin.d.ts +5 -0
- package/dist/js/generated/SubworkflowSchemaMixin.js +51 -0
- package/dist/js/generated/SubworkflowUnitSchemaMixin.d.ts +5 -0
- package/dist/js/generated/SubworkflowUnitSchemaMixin.js +15 -0
- package/dist/js/generated/WorkflowSchemaMixin.d.ts +5 -0
- package/dist/js/generated/WorkflowSchemaMixin.js +51 -0
- package/dist/js/index.d.ts +13 -0
- package/dist/js/index.js +66 -176
- package/dist/js/units/AssertionUnit.d.ts +20 -0
- package/dist/js/units/AssertionUnit.js +33 -0
- package/dist/js/units/AssignmentUnit.d.ts +17 -0
- package/dist/js/units/AssignmentUnit.js +35 -0
- package/dist/js/units/BaseUnit.d.ts +39 -0
- package/dist/js/units/BaseUnit.js +70 -0
- package/dist/js/units/ConditionUnit.d.ts +17 -0
- package/dist/js/units/ConditionUnit.js +37 -0
- package/dist/js/units/ExecutionUnit.d.ts +115 -0
- package/dist/js/units/ExecutionUnit.js +181 -0
- package/dist/js/units/ExecutionUnitInput.d.ts +22 -0
- package/dist/js/units/ExecutionUnitInput.js +47 -0
- package/dist/js/units/IOUnit.d.ts +16 -0
- package/dist/js/units/IOUnit.js +31 -0
- package/dist/js/units/MapUnit.d.ts +34 -0
- package/dist/js/units/MapUnit.js +46 -0
- package/dist/js/units/ReduceUnit.d.ts +16 -0
- package/dist/js/units/ReduceUnit.js +30 -0
- package/dist/js/units/SubworkflowUnit.d.ts +16 -0
- package/dist/js/units/SubworkflowUnit.js +28 -0
- package/dist/js/units/factory.d.ts +31 -0
- package/dist/js/units/factory.js +65 -47
- package/dist/js/units/index.d.ts +14 -0
- package/dist/js/units/index.js +25 -81
- package/dist/js/units/mixins/RuntimeItemsUILogicMixin.d.ts +26 -0
- package/dist/js/units/mixins/RuntimeItemsUILogicMixin.js +50 -0
- package/dist/js/utils/baseUnits.d.ts +2 -0
- package/dist/js/utils/baseUnits.js +11 -0
- package/dist/js/utils/index.d.ts +3 -0
- package/dist/js/utils/index.js +39 -0
- package/dist/js/utils/subworkflow.d.ts +2 -0
- package/dist/js/utils/subworkflow.js +29 -0
- package/dist/js/utils/underscoreStringSlugify.d.ts +6 -0
- package/dist/js/utils/underscoreStringSlugify.js +32 -0
- package/dist/js/utils/units.d.ts +4 -0
- package/dist/js/utils/units.js +16 -0
- package/dist/js/utils/workflow.d.ts +9 -0
- package/dist/js/utils/workflow.js +67 -0
- package/dist/js/workflows/default.d.ts +3 -0
- package/dist/js/workflows/default.js +43 -39
- package/dist/js/workflows/workflow.d.ts +4404 -0
- package/dist/js/workflows/workflow.js +310 -306
- package/package.json +56 -44
- package/src/js/Subworkflow.ts +532 -0
- package/src/js/Workflow.ts +390 -0
- package/src/js/context/mixins/ApplicationContextMixin.ts +21 -0
- package/src/js/context/mixins/MaterialContextMixin.ts +35 -0
- package/src/js/context/mixins/MaterialsContextMixin.ts +24 -0
- package/src/js/context/mixins/MaterialsSetContextMixin.ts +42 -0
- package/src/js/context/providers/BoundaryConditionsFormDataManager.ts +88 -0
- package/src/js/context/providers/CollinearMagnetizationDataManager.ts +140 -0
- package/src/js/context/providers/Hubbard/HubbardContextManagerLegacy.ts +93 -0
- package/src/js/context/providers/Hubbard/HubbardContextProvider.ts +85 -0
- package/src/js/context/providers/Hubbard/HubbardJContextManager.ts +82 -0
- package/src/js/context/providers/Hubbard/HubbardUContextManager.ts +78 -0
- package/src/js/context/providers/Hubbard/HubbardVContextManager.ts +100 -0
- package/src/js/context/providers/IonDynamicsDataManager.ts +64 -0
- package/src/js/context/providers/MLSettingsDataManager.ts +61 -0
- package/src/js/context/providers/MLTrainTestSplitDataManager.ts +59 -0
- package/src/js/context/providers/NEBFormDataManager.ts +57 -0
- package/src/js/context/providers/NonCollinearMagnetizationDataManager.ts +229 -0
- package/src/js/context/providers/PlanewaveCutoffDataManager.ts +110 -0
- package/src/js/context/providers/PointsGrid/IGridFormDataManager.ts +36 -0
- package/src/js/context/providers/PointsGrid/KGridFormDataManager.ts +46 -0
- package/src/js/context/providers/PointsGrid/PointsGridFormDataProvider.ts +371 -0
- package/src/js/context/providers/PointsGrid/QGridFormDataManager.ts +36 -0
- package/src/js/context/providers/PointsPath/ExplicitKPath2PIBAFormDataManager.ts +26 -0
- package/src/js/context/providers/PointsPath/ExplicitKPathFormDataManager.ts +24 -0
- package/src/js/context/providers/PointsPath/IPathFormDataManager.ts +22 -0
- package/src/js/context/providers/PointsPath/KPathFormDataManager.ts +22 -0
- package/src/js/context/providers/PointsPath/PointsPathFormDataProvider.ts +192 -0
- package/src/js/context/providers/PointsPath/QPathFormDataManager.ts +22 -0
- package/src/js/context/providers/base/ContextProvider.ts +150 -0
- package/src/js/context/providers/base/JSONSchemaDataProvider.ts +31 -0
- package/src/js/context/providers/base/JSONSchemaFormDataProvider.ts +38 -0
- package/src/js/context/providers/by_application/espresso/QENEBInputDataManager.ts +107 -0
- package/src/js/context/providers/by_application/espresso/QEPWXInputDataManager.ts +178 -0
- package/src/js/context/providers/by_application/nwchem/NWChemInputDataManager.ts +93 -0
- package/src/js/context/providers/by_application/vasp/VASPInputDataManager.ts +89 -0
- package/src/js/context/providers/by_application/vasp/VASPNEBInputDataManager.ts +92 -0
- package/src/js/context/providers/index.ts +155 -0
- package/src/js/context/providers/settings.ts +13 -0
- package/src/js/convergence/ConvergenceParameter.ts +37 -0
- package/src/js/convergence/NonUniformKGridConvergence.ts +38 -0
- package/src/js/convergence/UniformKGridConvergence.ts +26 -0
- package/src/js/convergence/factory.ts +18 -0
- package/src/js/{enums.js → enums.ts} +27 -22
- package/src/js/generated/AssertionUnitSchemaMixin.ts +34 -0
- package/src/js/generated/AssignmentUnitSchemaMixin.ts +40 -0
- package/src/js/generated/BaseUnitSchemaMixin.ts +64 -0
- package/src/js/generated/ConditionUnitSchemaMixin.ts +58 -0
- package/src/js/generated/ExecutionUnitInputSchemaMixin.ts +36 -0
- package/src/js/generated/ExecutionUnitSchemaMixin.ts +52 -0
- package/src/js/generated/IOUnitSchemaMixin.ts +40 -0
- package/src/js/generated/MapUnitSchemaMixin.ts +34 -0
- package/src/js/generated/ReduceUnitSchemaMixin.ts +34 -0
- package/src/js/generated/StatusSchemaMixin.ts +28 -0
- package/src/js/generated/SubworkflowSchemaMixin.ts +58 -0
- package/src/js/generated/SubworkflowUnitSchemaMixin.ts +22 -0
- package/src/js/generated/WorkflowSchemaMixin.ts +58 -0
- package/src/js/index.ts +44 -0
- package/src/js/units/AssertionUnit.ts +49 -0
- package/src/js/units/AssignmentUnit.ts +49 -0
- package/src/js/units/BaseUnit.ts +117 -0
- package/src/js/units/ConditionUnit.ts +52 -0
- package/src/js/units/ExecutionUnit.ts +274 -0
- package/src/js/units/ExecutionUnitInput.ts +71 -0
- package/src/js/units/IOUnit.ts +43 -0
- package/src/js/units/MapUnit.ts +59 -0
- package/src/js/units/ReduceUnit.ts +46 -0
- package/src/js/units/SubworkflowUnit.ts +44 -0
- package/src/js/units/factory.ts +131 -0
- package/src/js/units/index.ts +27 -0
- package/src/js/units/mixins/RuntimeItemsUILogicMixin.ts +81 -0
- package/src/js/utils/baseUnits.ts +11 -0
- package/src/js/utils/index.ts +3 -0
- package/src/js/utils/units.ts +23 -0
- package/src/js/utils/workflow.ts +69 -0
- package/src/js/workflows/{default.js → default.ts} +8 -1
- package/build_workflows.js +0 -65
- package/dist/js/context/context.js +0 -49
- package/dist/js/context/mixins/JobContextMixin.js +0 -39
- package/dist/js/context/mixins/MethodDataContextMixin.js +0 -48
- package/dist/js/context/mixins/WorkflowContextMixin.js +0 -28
- package/dist/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -84
- package/dist/js/context/providers/CollinearMagnetizationContextProvider.js +0 -96
- package/dist/js/context/providers/HubbardContextProviderLegacy.js +0 -68
- package/dist/js/context/providers/HubbardJContextProvider.js +0 -67
- package/dist/js/context/providers/HubbardUContextProvider.js +0 -70
- package/dist/js/context/providers/HubbardVContextProvider.js +0 -92
- package/dist/js/context/providers/IonDynamicsContextProvider.js +0 -58
- package/dist/js/context/providers/MLSettingsContextProvider.js +0 -51
- package/dist/js/context/providers/MLTrainTestSplitContextProvider.js +0 -47
- package/dist/js/context/providers/NEBFormDataProvider.js +0 -42
- package/dist/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -187
- package/dist/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -67
- package/dist/js/context/providers/PointsGridFormDataProvider.js +0 -263
- package/dist/js/context/providers/PointsPathFormDataProvider.js +0 -147
- package/dist/js/context/providers/by_application/ExecutableContextProvider.js +0 -25
- package/dist/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -61
- package/dist/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -150
- package/dist/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -85
- package/dist/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -65
- package/dist/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -57
- package/dist/js/context/providers.js +0 -199
- package/dist/js/patch.js +0 -19
- package/dist/js/subworkflows/convergence/non_uniform_kgrid.js +0 -31
- package/dist/js/subworkflows/convergence/parameter.js +0 -70
- package/dist/js/subworkflows/convergence/uniform_kgrid.js +0 -26
- package/dist/js/subworkflows/convergence.js +0 -189
- package/dist/js/subworkflows/create.js +0 -293
- package/dist/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -34
- package/dist/js/subworkflows/dynamic/index.js +0 -19
- package/dist/js/subworkflows/dynamic/surfaceEnergy.js +0 -67
- package/dist/js/subworkflows/index.js +0 -19
- package/dist/js/units/assertion.js +0 -37
- package/dist/js/units/assignment.js +0 -42
- package/dist/js/units/base.js +0 -91
- package/dist/js/units/builders/AssertionUnitConfigBuilder.js +0 -34
- package/dist/js/units/builders/AssignmentUnitConfigBuilder.js +0 -41
- package/dist/js/units/builders/ExecutionUnitConfigBuilder.js +0 -67
- package/dist/js/units/builders/IOUnitConfigBuilder.js +0 -54
- package/dist/js/units/builders/UnitConfigBuilder.js +0 -85
- package/dist/js/units/builders/index.js +0 -18
- package/dist/js/units/condition.js +0 -52
- package/dist/js/units/execution.js +0 -225
- package/dist/js/units/io.js +0 -148
- package/dist/js/units/map.js +0 -38
- package/dist/js/units/processing.js +0 -41
- package/dist/js/units/reduce.js +0 -24
- package/dist/js/units/subworkflow.js +0 -23
- package/dist/js/workflows/create.js +0 -318
- package/dist/js/workflows/index.js +0 -113
- package/dist/js/workflows/relaxation.js +0 -38
- package/src/js/context/context.js +0 -47
- package/src/js/context/mixins/ApplicationContextMixin.js +0 -19
- package/src/js/context/mixins/JobContextMixin.js +0 -36
- package/src/js/context/mixins/MaterialContextMixin.js +0 -41
- package/src/js/context/mixins/MaterialsContextMixin.js +0 -18
- package/src/js/context/mixins/MaterialsSetContextMixin.js +0 -24
- package/src/js/context/mixins/MethodDataContextMixin.js +0 -48
- package/src/js/context/mixins/WorkflowContextMixin.js +0 -25
- package/src/js/context/providers/BoundaryConditionsFormDataProvider.js +0 -72
- package/src/js/context/providers/CollinearMagnetizationContextProvider.js +0 -105
- package/src/js/context/providers/HubbardContextProviderLegacy.js +0 -67
- package/src/js/context/providers/HubbardJContextProvider.js +0 -65
- package/src/js/context/providers/HubbardUContextProvider.js +0 -95
- package/src/js/context/providers/HubbardVContextProvider.js +0 -96
- package/src/js/context/providers/IonDynamicsContextProvider.js +0 -44
- package/src/js/context/providers/MLSettingsContextProvider.js +0 -45
- package/src/js/context/providers/MLTrainTestSplitContextProvider.js +0 -43
- package/src/js/context/providers/NEBFormDataProvider.js +0 -33
- package/src/js/context/providers/NonCollinearMagnetizationContextProvider.js +0 -179
- package/src/js/context/providers/PlanewaveCutoffsContextProvider.js +0 -65
- package/src/js/context/providers/PointsGridFormDataProvider.js +0 -271
- package/src/js/context/providers/PointsPathFormDataProvider.js +0 -163
- package/src/js/context/providers/by_application/ExecutableContextProvider.js +0 -17
- package/src/js/context/providers/by_application/espresso/QENEBContextProvider.js +0 -58
- package/src/js/context/providers/by_application/espresso/QEPWXContextProvider.js +0 -168
- package/src/js/context/providers/by_application/nwchem/NWChemTotalEnergyContextProvider.js +0 -89
- package/src/js/context/providers/by_application/vasp/VASPContextProvider.js +0 -58
- package/src/js/context/providers/by_application/vasp/VASPNEBContextProvider.js +0 -48
- package/src/js/context/providers/settings.js +0 -38
- package/src/js/context/providers.js +0 -140
- package/src/js/index.js +0 -57
- package/src/js/patch.js +0 -12
- package/src/js/subworkflows/convergence/enums.js +0 -12
- package/src/js/subworkflows/convergence/factory.js +0 -15
- package/src/js/subworkflows/convergence/non_uniform_kgrid.js +0 -28
- package/src/js/subworkflows/convergence/parameter.js +0 -58
- package/src/js/subworkflows/convergence/uniform_kgrid.js +0 -22
- package/src/js/subworkflows/convergence.js +0 -196
- package/src/js/subworkflows/create.js +0 -220
- package/src/js/subworkflows/dynamic/espresso/getQpointIrrep.js +0 -35
- package/src/js/subworkflows/dynamic/index.js +0 -8
- package/src/js/subworkflows/dynamic/surfaceEnergy.js +0 -124
- package/src/js/subworkflows/index.js +0 -2
- package/src/js/subworkflows/subworkflow.js +0 -345
- package/src/js/units/assertion.js +0 -29
- package/src/js/units/assignment.js +0 -34
- package/src/js/units/base.js +0 -97
- package/src/js/units/builders/AssertionUnitConfigBuilder.js +0 -28
- package/src/js/units/builders/AssignmentUnitConfigBuilder.js +0 -36
- package/src/js/units/builders/ExecutionUnitConfigBuilder.js +0 -59
- package/src/js/units/builders/IOUnitConfigBuilder.js +0 -53
- package/src/js/units/builders/UnitConfigBuilder.js +0 -92
- package/src/js/units/builders/index.js +0 -15
- package/src/js/units/condition.js +0 -47
- package/src/js/units/execution.js +0 -267
- package/src/js/units/factory.js +0 -53
- package/src/js/units/index.js +0 -25
- package/src/js/units/io.js +0 -163
- package/src/js/units/map.js +0 -33
- package/src/js/units/processing.js +0 -39
- package/src/js/units/reduce.js +0 -17
- package/src/js/units/subworkflow.js +0 -15
- package/src/js/utils.js +0 -73
- package/src/js/workflows/create.js +0 -227
- package/src/js/workflows/index.js +0 -98
- package/src/js/workflows/relaxation.js +0 -42
- 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
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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;
|