@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.
- 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,125 @@
|
|
|
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 math_1 = require("@mat3ra/code/dist/js/math");
|
|
7
|
+
const JSONSchemasInterface_1 = __importDefault(require("@mat3ra/esse/dist/js/esse/JSONSchemasInterface"));
|
|
8
|
+
const made_1 = require("@mat3ra/made");
|
|
9
|
+
const ApplicationContextMixin_1 = __importDefault(require("../../mixins/ApplicationContextMixin"));
|
|
10
|
+
const MaterialContextMixin_1 = __importDefault(require("../../mixins/MaterialContextMixin"));
|
|
11
|
+
const JSONSchemaDataProvider_1 = __importDefault(require("../base/JSONSchemaDataProvider"));
|
|
12
|
+
const defaultPoint = "Г";
|
|
13
|
+
const defaultSteps = 10;
|
|
14
|
+
const jsonSchemaId = "context-providers-directory/points-path-data-provider";
|
|
15
|
+
class MixinsContextProvider extends JSONSchemaDataProvider_1.default {
|
|
16
|
+
constructor(contextItem, externalContext) {
|
|
17
|
+
super(contextItem, externalContext);
|
|
18
|
+
this.initMaterialContextMixin(externalContext);
|
|
19
|
+
this.initApplicationContextMixin(externalContext);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
(0, MaterialContextMixin_1.default)(MixinsContextProvider.prototype);
|
|
23
|
+
(0, ApplicationContextMixin_1.default)(MixinsContextProvider.prototype);
|
|
24
|
+
class PointsPathFormDataProvider extends MixinsContextProvider {
|
|
25
|
+
constructor(config, externalContext) {
|
|
26
|
+
super(config, externalContext);
|
|
27
|
+
this.domain = "important";
|
|
28
|
+
this.entityName = "unit";
|
|
29
|
+
this.is2PIBA = false;
|
|
30
|
+
this.uiSchemaStyled = {
|
|
31
|
+
items: {
|
|
32
|
+
point: {},
|
|
33
|
+
steps: {},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
this.reciprocalLattice = new made_1.Made.ReciprocalLattice(this.material.lattice);
|
|
37
|
+
this.useExplicitPath = this.application.name === "vasp";
|
|
38
|
+
}
|
|
39
|
+
getDefaultData() {
|
|
40
|
+
return this.reciprocalLattice.defaultKpointPath;
|
|
41
|
+
}
|
|
42
|
+
updateMaterialHash() {
|
|
43
|
+
var _a;
|
|
44
|
+
const previousMaterialHash = (_a = this.extraData) === null || _a === void 0 ? void 0 : _a.materialHash;
|
|
45
|
+
super.updateMaterialHash();
|
|
46
|
+
// Reset path only when the material actually changed (hash). Do not clear `isEdited` just
|
|
47
|
+
// because the material has no id (common default material in designers): that ran every
|
|
48
|
+
// render, wiped isEdited, and savePersistentContext dropped k-path/Q-path from `unit.context`.
|
|
49
|
+
if (previousMaterialHash && previousMaterialHash !== this.material.hash) {
|
|
50
|
+
this.isEdited = false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
get jsonSchema() {
|
|
54
|
+
const jsonSchema = JSONSchemasInterface_1.default.getPatchedSchemaById(jsonSchemaId, {
|
|
55
|
+
"items.properties.point": {
|
|
56
|
+
default: defaultPoint,
|
|
57
|
+
enum: this.reciprocalLattice.symmetryPoints.map((x) => x.point),
|
|
58
|
+
},
|
|
59
|
+
"items.properties.steps": {
|
|
60
|
+
default: defaultSteps,
|
|
61
|
+
},
|
|
62
|
+
});
|
|
63
|
+
if (!jsonSchema) {
|
|
64
|
+
throw new Error("Failed to get patched JSON schema");
|
|
65
|
+
}
|
|
66
|
+
return jsonSchema;
|
|
67
|
+
}
|
|
68
|
+
patchForRendering(data) {
|
|
69
|
+
return this.addCoordinates(data);
|
|
70
|
+
}
|
|
71
|
+
addCoordinates(path) {
|
|
72
|
+
const rawData = path.map((pathItem) => {
|
|
73
|
+
const point = this.reciprocalLattice.symmetryPoints.find((sp) => {
|
|
74
|
+
return sp.point === pathItem.point;
|
|
75
|
+
});
|
|
76
|
+
if (!point) {
|
|
77
|
+
throw new Error(`Point ${pathItem.point} not found in reciprocal lattice`);
|
|
78
|
+
}
|
|
79
|
+
return { ...pathItem, coordinates: point.coordinates };
|
|
80
|
+
});
|
|
81
|
+
const processedData = this.useExplicitPath ? this.convertToExplicitPath(rawData) : rawData;
|
|
82
|
+
const mapped = processedData.map((p) => {
|
|
83
|
+
const coordinates = this.is2PIBA
|
|
84
|
+
? this.reciprocalLattice.getCartesianCoordinates(p.coordinates)
|
|
85
|
+
: p.coordinates;
|
|
86
|
+
return {
|
|
87
|
+
...p,
|
|
88
|
+
coordinates: coordinates.map((c) => Number(c.toFixed(9))),
|
|
89
|
+
};
|
|
90
|
+
});
|
|
91
|
+
return mapped;
|
|
92
|
+
}
|
|
93
|
+
// Initially, path contains symmetry points with steps counts.
|
|
94
|
+
// This function explicitly calculates each point between symmetry points by step counts.
|
|
95
|
+
// eslint-disable-next-line class-methods-use-this
|
|
96
|
+
convertToExplicitPath(path) {
|
|
97
|
+
return path.reduce((acc, startPoint, index) => {
|
|
98
|
+
const nextPoint = path[index + 1];
|
|
99
|
+
if (!nextPoint) {
|
|
100
|
+
return acc;
|
|
101
|
+
}
|
|
102
|
+
const middlePoints = math_1.math.calculateSegmentsBetweenPoints3D(startPoint.coordinates, nextPoint.coordinates, startPoint.steps);
|
|
103
|
+
const steps = 1;
|
|
104
|
+
acc.push({
|
|
105
|
+
steps,
|
|
106
|
+
coordinates: startPoint.coordinates,
|
|
107
|
+
point: startPoint.point,
|
|
108
|
+
}, ...middlePoints.map((coordinates) => ({
|
|
109
|
+
steps,
|
|
110
|
+
coordinates,
|
|
111
|
+
point: startPoint.point,
|
|
112
|
+
})));
|
|
113
|
+
// nextPoint is the last point in the path
|
|
114
|
+
if (path.length - 2 === index) {
|
|
115
|
+
acc.push({
|
|
116
|
+
steps,
|
|
117
|
+
coordinates: nextPoint.coordinates,
|
|
118
|
+
point: nextPoint.point,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return acc;
|
|
122
|
+
}, []);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
exports.default = PointsPathFormDataProvider;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UnitContext } from "../base/ContextProvider";
|
|
2
|
+
import PointsPathFormDataProvider, { type PointsPathFormDataProviderExternalContext } from "./PointsPathFormDataProvider";
|
|
3
|
+
type Name = "qpath";
|
|
4
|
+
export default class QPathFormDataManager extends PointsPathFormDataProvider<Name> {
|
|
5
|
+
readonly name: "qpath";
|
|
6
|
+
static createFromUnitContext(unitContext: UnitContext, externalContext: PointsPathFormDataProviderExternalContext): QPathFormDataManager;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
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 PointsPathFormDataProvider_1 = __importDefault(require("./PointsPathFormDataProvider"));
|
|
7
|
+
class QPathFormDataManager extends PointsPathFormDataProvider_1.default {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.name = "qpath";
|
|
11
|
+
}
|
|
12
|
+
static createFromUnitContext(unitContext, externalContext) {
|
|
13
|
+
const contextItem = this.findContextItem(unitContext, "qpath");
|
|
14
|
+
return new QPathFormDataManager(contextItem, externalContext);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = QPathFormDataManager;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type ContextItemSchema } from "@mat3ra/esse/dist/js/types";
|
|
2
|
+
export type UnitContext = ContextItemSchema[];
|
|
3
|
+
export type ContextName = ContextItemSchema["name"];
|
|
4
|
+
export type ContextExtraData = ContextItemSchema["extraData"];
|
|
5
|
+
export type ContextData = ContextItemSchema["data"];
|
|
6
|
+
export type ContextItem<D extends ContextData = ContextData, ED extends ContextExtraData = ContextExtraData> = {
|
|
7
|
+
data?: D;
|
|
8
|
+
extraData?: ED;
|
|
9
|
+
isEdited?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/** Context item with template-facing `data` (may be a superset of persisted `S["data"]`). */
|
|
12
|
+
export type ContextItemForRendering<S extends ContextItemSchema = ContextItemSchema, R = S["data"]> = Omit<S, "data"> & {
|
|
13
|
+
data: R;
|
|
14
|
+
};
|
|
15
|
+
export type Domain = "executable" | "important";
|
|
16
|
+
export type EntityName = "unit" | "subworkflow";
|
|
17
|
+
/** Minimal bound for provider external context; the full contract is ExternalContext in context/providers/index.ts */
|
|
18
|
+
export type BaseExternalContext = object;
|
|
19
|
+
/**
|
|
20
|
+
* Context providers expose three data layers. Keep them separate.
|
|
21
|
+
*
|
|
22
|
+
* 1. Persistent data — user input / defaults. Stored in the DB as the context item's `data`,
|
|
23
|
+
* and bound to RJSForm as `formData`.
|
|
24
|
+
* API: `getData()` / `setData(data)` / `getContextItemData()`
|
|
25
|
+
*
|
|
26
|
+
* 2. Patched persistent (rendering) data — persistent data plus fields derived from external
|
|
27
|
+
* context (material, application, …) that must NOT be stored or shown in the form.
|
|
28
|
+
* Default = identity, override `patchForRendering` when the template needs extra fields.
|
|
29
|
+
* API: `getDataForRendering()` / `getContextItemDataForRendering()`
|
|
30
|
+
* If the rendering shape is a proper superset of the persistent shape, declare it via the
|
|
31
|
+
* third generic `DataForRendering` and pair with a dedicated ESSE schema (see
|
|
32
|
+
* `PointsPathFormDataProvider` + `points_path_data_provider_rendering.json`).
|
|
33
|
+
*
|
|
34
|
+
* 3. Full rendering context — `{ ...patchedItemByName, ...externalContext }` fed to Jinja.
|
|
35
|
+
* Built by `ExecutionUnit.render` from `getContextItemDataForRendering()` results.
|
|
36
|
+
*
|
|
37
|
+
* Rules:
|
|
38
|
+
* - Never bake derived fields into `setData`/`getDefaultData` just to reach templates.
|
|
39
|
+
* - `setData` may normalize legacy payloads to the current persistent schema.
|
|
40
|
+
* - `ExecutionUnit.render` MUST call `getContextItemData()` for `this.context` (DB) and
|
|
41
|
+
* `getContextItemDataForRendering()` for `this.renderingContext` (Jinja) separately.
|
|
42
|
+
*
|
|
43
|
+
* See `.cursor/rules/context-provider-data-layers.mdc` for the full guidance.
|
|
44
|
+
*/
|
|
45
|
+
declare abstract class ContextProvider<S extends ContextItemSchema = ContextItemSchema, EC extends BaseExternalContext = BaseExternalContext,
|
|
46
|
+
/** Data passed to templates; defaults to persisted `S["data"]` (identity `patchForRendering`). */
|
|
47
|
+
DataForRendering = S["data"]> {
|
|
48
|
+
abstract name: S["name"];
|
|
49
|
+
abstract readonly domain: Domain;
|
|
50
|
+
abstract readonly entityName: EntityName;
|
|
51
|
+
protected abstract getDefaultData(): S["data"];
|
|
52
|
+
protected data?: S["data"];
|
|
53
|
+
/** Seeded from persisted context; material providers refresh via `updateMaterialHash()`. */
|
|
54
|
+
extraData?: S["extraData"];
|
|
55
|
+
readonly externalContext: EC;
|
|
56
|
+
isEdited: boolean;
|
|
57
|
+
constructor(contextItem: Partial<S>, externalContext: EC);
|
|
58
|
+
setIsEdited(isEdited: boolean): void;
|
|
59
|
+
getData(): S["data"];
|
|
60
|
+
setData(data: S["data"]): void;
|
|
61
|
+
/**
|
|
62
|
+
* Derive template-facing `data` from persisted `data`. Override when the template needs fields
|
|
63
|
+
* that must not be stored (e.g. coordinates from symmetry point names + lattice).
|
|
64
|
+
*/
|
|
65
|
+
protected patchForRendering(data: S["data"]): DataForRendering;
|
|
66
|
+
getDataForRendering(): DataForRendering;
|
|
67
|
+
getContextItemData(): S;
|
|
68
|
+
getContextItemDataForRendering(): ContextItemForRendering<S, DataForRendering>;
|
|
69
|
+
/**
|
|
70
|
+
* Helper method to find a context item from a unit context array by name.
|
|
71
|
+
* Returns a partial schema object that can be safely passed to constructors.
|
|
72
|
+
*/
|
|
73
|
+
protected static findContextItem<S extends ContextItemSchema>(unitContext: UnitContext, contextName: ContextName): Partial<S>;
|
|
74
|
+
}
|
|
75
|
+
export default ContextProvider;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@mat3ra/utils");
|
|
4
|
+
/**
|
|
5
|
+
* Context providers expose three data layers. Keep them separate.
|
|
6
|
+
*
|
|
7
|
+
* 1. Persistent data — user input / defaults. Stored in the DB as the context item's `data`,
|
|
8
|
+
* and bound to RJSForm as `formData`.
|
|
9
|
+
* API: `getData()` / `setData(data)` / `getContextItemData()`
|
|
10
|
+
*
|
|
11
|
+
* 2. Patched persistent (rendering) data — persistent data plus fields derived from external
|
|
12
|
+
* context (material, application, …) that must NOT be stored or shown in the form.
|
|
13
|
+
* Default = identity, override `patchForRendering` when the template needs extra fields.
|
|
14
|
+
* API: `getDataForRendering()` / `getContextItemDataForRendering()`
|
|
15
|
+
* If the rendering shape is a proper superset of the persistent shape, declare it via the
|
|
16
|
+
* third generic `DataForRendering` and pair with a dedicated ESSE schema (see
|
|
17
|
+
* `PointsPathFormDataProvider` + `points_path_data_provider_rendering.json`).
|
|
18
|
+
*
|
|
19
|
+
* 3. Full rendering context — `{ ...patchedItemByName, ...externalContext }` fed to Jinja.
|
|
20
|
+
* Built by `ExecutionUnit.render` from `getContextItemDataForRendering()` results.
|
|
21
|
+
*
|
|
22
|
+
* Rules:
|
|
23
|
+
* - Never bake derived fields into `setData`/`getDefaultData` just to reach templates.
|
|
24
|
+
* - `setData` may normalize legacy payloads to the current persistent schema.
|
|
25
|
+
* - `ExecutionUnit.render` MUST call `getContextItemData()` for `this.context` (DB) and
|
|
26
|
+
* `getContextItemDataForRendering()` for `this.renderingContext` (Jinja) separately.
|
|
27
|
+
*
|
|
28
|
+
* See `.cursor/rules/context-provider-data-layers.mdc` for the full guidance.
|
|
29
|
+
*/
|
|
30
|
+
class ContextProvider {
|
|
31
|
+
constructor(contextItem, externalContext) {
|
|
32
|
+
this.externalContext = externalContext;
|
|
33
|
+
this.isEdited = contextItem.isEdited || false;
|
|
34
|
+
if (contextItem.data !== undefined) {
|
|
35
|
+
this.data = utils_1.Utils.clone.deepClone(contextItem.data);
|
|
36
|
+
}
|
|
37
|
+
if (contextItem.extraData !== undefined) {
|
|
38
|
+
this.extraData = utils_1.Utils.clone.deepClone(contextItem.extraData);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
setIsEdited(isEdited) {
|
|
42
|
+
this.isEdited = isEdited;
|
|
43
|
+
}
|
|
44
|
+
getData() {
|
|
45
|
+
if (this.data !== undefined) {
|
|
46
|
+
return utils_1.Utils.clone.deepClone(this.data);
|
|
47
|
+
}
|
|
48
|
+
return this.getDefaultData();
|
|
49
|
+
}
|
|
50
|
+
setData(data) {
|
|
51
|
+
this.data = utils_1.Utils.clone.deepClone(data);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Derive template-facing `data` from persisted `data`. Override when the template needs fields
|
|
55
|
+
* that must not be stored (e.g. coordinates from symmetry point names + lattice).
|
|
56
|
+
*/
|
|
57
|
+
// eslint-disable-next-line class-methods-use-this
|
|
58
|
+
patchForRendering(data) {
|
|
59
|
+
return data;
|
|
60
|
+
}
|
|
61
|
+
getDataForRendering() {
|
|
62
|
+
return this.patchForRendering(this.getData());
|
|
63
|
+
}
|
|
64
|
+
getContextItemData() {
|
|
65
|
+
return {
|
|
66
|
+
name: this.name,
|
|
67
|
+
isEdited: this.isEdited,
|
|
68
|
+
data: this.getData(),
|
|
69
|
+
extraData: this.extraData,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
getContextItemDataForRendering() {
|
|
73
|
+
return {
|
|
74
|
+
...this.getContextItemData(),
|
|
75
|
+
data: this.getDataForRendering(),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Helper method to find a context item from a unit context array by name.
|
|
80
|
+
* Returns a partial schema object that can be safely passed to constructors.
|
|
81
|
+
*/
|
|
82
|
+
static findContextItem(unitContext, contextName) {
|
|
83
|
+
const item = unitContext.find((item) => item.name === contextName);
|
|
84
|
+
return item || {};
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.default = ContextProvider;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JSONSchema } from "@mat3ra/esse/dist/js/esse/utils";
|
|
2
|
+
import type { ContextItemSchema } from "@mat3ra/esse/dist/js/types";
|
|
3
|
+
import ContextProvider from "./ContextProvider";
|
|
4
|
+
export interface JinjaExternalContext {
|
|
5
|
+
isUsingJinjaVariables?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* @summary Provides jsonSchema only.
|
|
9
|
+
*/
|
|
10
|
+
declare abstract class JSONSchemaDataProvider<S extends ContextItemSchema = ContextItemSchema, EC extends JinjaExternalContext = JinjaExternalContext, DataForRendering = S["data"]> extends ContextProvider<S, EC, DataForRendering> {
|
|
11
|
+
abstract readonly jsonSchema: JSONSchema;
|
|
12
|
+
readonly entityName: "unit";
|
|
13
|
+
isUsingJinjaVariables: boolean;
|
|
14
|
+
constructor(contextItem: Partial<S>, externalContext: EC);
|
|
15
|
+
}
|
|
16
|
+
export default JSONSchemaDataProvider;
|
|
@@ -0,0 +1,17 @@
|
|
|
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 ContextProvider_1 = __importDefault(require("./ContextProvider"));
|
|
7
|
+
/**
|
|
8
|
+
* @summary Provides jsonSchema only.
|
|
9
|
+
*/
|
|
10
|
+
class JSONSchemaDataProvider extends ContextProvider_1.default {
|
|
11
|
+
constructor(contextItem, externalContext) {
|
|
12
|
+
super(contextItem, externalContext);
|
|
13
|
+
this.entityName = "unit";
|
|
14
|
+
this.isUsingJinjaVariables = Boolean(externalContext === null || externalContext === void 0 ? void 0 : externalContext.isUsingJinjaVariables);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = JSONSchemaDataProvider;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ContextItemSchema } from "@mat3ra/esse/dist/js/types";
|
|
2
|
+
import type { UiSchema } from "react-jsonschema-form";
|
|
3
|
+
import JSONSchemaDataProvider, { type JinjaExternalContext } from "./JSONSchemaDataProvider";
|
|
4
|
+
/**
|
|
5
|
+
* @summary Provides jsonSchema and uiSchema for generating react-jsonschema-form
|
|
6
|
+
* See https://github.com/mozilla-services/react-jsonschema-form for Form UI.
|
|
7
|
+
* Form generation example:
|
|
8
|
+
* ```
|
|
9
|
+
* <Form schema={provider.jsonSchema}
|
|
10
|
+
* uiSchema={provider.uiSchema}
|
|
11
|
+
* formData={provider.getData(unit.important)} />
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
declare abstract class JSONSchemaFormDataProvider<S extends ContextItemSchema = ContextItemSchema, EC extends JinjaExternalContext = JinjaExternalContext, DataForRendering = S["data"]> extends JSONSchemaDataProvider<S, EC, DataForRendering> {
|
|
15
|
+
fields: object;
|
|
16
|
+
protected abstract uiSchema: UiSchema;
|
|
17
|
+
get uiSchemaStyled(): UiSchema;
|
|
18
|
+
}
|
|
19
|
+
export default JSONSchemaFormDataProvider;
|
|
@@ -0,0 +1,32 @@
|
|
|
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 JSONSchemaDataProvider_1 = __importDefault(require("./JSONSchemaDataProvider"));
|
|
7
|
+
/**
|
|
8
|
+
* @summary Provides jsonSchema and uiSchema for generating react-jsonschema-form
|
|
9
|
+
* See https://github.com/mozilla-services/react-jsonschema-form for Form UI.
|
|
10
|
+
* Form generation example:
|
|
11
|
+
* ```
|
|
12
|
+
* <Form schema={provider.jsonSchema}
|
|
13
|
+
* uiSchema={provider.uiSchema}
|
|
14
|
+
* formData={provider.getData(unit.important)} />
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
class JSONSchemaFormDataProvider extends JSONSchemaDataProvider_1.default {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.fields = {};
|
|
21
|
+
}
|
|
22
|
+
get uiSchemaStyled() {
|
|
23
|
+
return Object.fromEntries(Object.entries(this.uiSchema).map(([key, value]) => [
|
|
24
|
+
key,
|
|
25
|
+
{
|
|
26
|
+
...value,
|
|
27
|
+
classNames: `${value.classNames || ""}`,
|
|
28
|
+
},
|
|
29
|
+
]));
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.default = JSONSchemaFormDataProvider;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { InputContextItemSchema, QENEBContextProviderSchema } from "@mat3ra/esse/dist/js/types";
|
|
2
|
+
import type { JSONSchema7 } from "json-schema";
|
|
3
|
+
import { type MaterialContextMixin, type MaterialExternalContext } from "../../../mixins/MaterialContextMixin";
|
|
4
|
+
import { type MaterialsContextMixin, type MaterialsExternalContext } from "../../../mixins/MaterialsContextMixin";
|
|
5
|
+
import { type MaterialsSetContextMixin, type MaterialsSetExternalContext } from "../../../mixins/MaterialsSetContextMixin";
|
|
6
|
+
import type { UnitContext } from "../../base/ContextProvider";
|
|
7
|
+
import JSONSchemaDataProvider, { type JinjaExternalContext } from "../../base/JSONSchemaDataProvider";
|
|
8
|
+
import { type JobExternalContext, type MethodDataExternalContext, type WorkflowExternalContext } from "./QEPWXInputDataManager";
|
|
9
|
+
type Data = QENEBContextProviderSchema;
|
|
10
|
+
type Schema = InputContextItemSchema & {
|
|
11
|
+
data: Data;
|
|
12
|
+
};
|
|
13
|
+
type ExternalContext = JinjaExternalContext & WorkflowExternalContext & JobExternalContext & MaterialsExternalContext & MethodDataExternalContext & MaterialsSetExternalContext & MaterialExternalContext;
|
|
14
|
+
interface QENEBInputDataManager extends MaterialContextMixin, MaterialsContextMixin, MaterialsSetContextMixin {
|
|
15
|
+
}
|
|
16
|
+
declare class QENEBInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
|
|
17
|
+
readonly name: "input";
|
|
18
|
+
readonly domain: "executable";
|
|
19
|
+
readonly entityName: "unit";
|
|
20
|
+
isEdited: boolean;
|
|
21
|
+
static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext): QENEBInputDataManager;
|
|
22
|
+
readonly jsonSchema: JSONSchema7;
|
|
23
|
+
constructor(config: Partial<Schema>, externalContext: ExternalContext);
|
|
24
|
+
getDefaultData(): Data;
|
|
25
|
+
}
|
|
26
|
+
export default QENEBInputDataManager;
|
|
@@ -0,0 +1,54 @@
|
|
|
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 MaterialsContextMixin_1 = __importDefault(require("../../../mixins/MaterialsContextMixin"));
|
|
9
|
+
const MaterialsSetContextMixin_1 = __importDefault(require("../../../mixins/MaterialsSetContextMixin"));
|
|
10
|
+
const JSONSchemaDataProvider_1 = __importDefault(require("../../base/JSONSchemaDataProvider"));
|
|
11
|
+
const QEPWXInputDataManager_1 = __importDefault(require("./QEPWXInputDataManager"));
|
|
12
|
+
const jsonSchemaId = "context-providers-directory/by-application/qe-neb-context-provider";
|
|
13
|
+
class QENEBInputDataManager extends JSONSchemaDataProvider_1.default {
|
|
14
|
+
static createFromUnitContext(unitContext, externalContext) {
|
|
15
|
+
const contextItem = this.findContextItem(unitContext, "input");
|
|
16
|
+
return new QENEBInputDataManager(contextItem, externalContext);
|
|
17
|
+
}
|
|
18
|
+
constructor(config, externalContext) {
|
|
19
|
+
super(config, externalContext);
|
|
20
|
+
this.name = "input";
|
|
21
|
+
this.domain = "executable";
|
|
22
|
+
this.entityName = "unit";
|
|
23
|
+
this.isEdited = false;
|
|
24
|
+
this.initMaterialsContextMixin(externalContext);
|
|
25
|
+
this.initMaterialContextMixin(externalContext);
|
|
26
|
+
this.initMaterialsSetContextMixin(externalContext);
|
|
27
|
+
const jsonSchema = JSONSchemasInterface_1.default.getSchemaById(jsonSchemaId);
|
|
28
|
+
if (!jsonSchema) {
|
|
29
|
+
throw new Error("Failed to get JSON schema");
|
|
30
|
+
}
|
|
31
|
+
this.jsonSchema = jsonSchema;
|
|
32
|
+
}
|
|
33
|
+
getDefaultData() {
|
|
34
|
+
const PWXContexts = this.sortMaterialsByIndexInSet(this.materials).map((material) => {
|
|
35
|
+
return new QEPWXInputDataManager_1.default({}, { ...this.externalContext, material }).getData();
|
|
36
|
+
});
|
|
37
|
+
const { ATOMIC_POSITIONS,
|
|
38
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
39
|
+
ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: _, ...rest } = PWXContexts[0];
|
|
40
|
+
return {
|
|
41
|
+
...rest,
|
|
42
|
+
FIRST_IMAGE: ATOMIC_POSITIONS,
|
|
43
|
+
LAST_IMAGE: PWXContexts[PWXContexts.length - 1].ATOMIC_POSITIONS,
|
|
44
|
+
INTERMEDIATE_IMAGES: PWXContexts.slice(1, PWXContexts.length - 1).map((data) => {
|
|
45
|
+
return data.ATOMIC_POSITIONS;
|
|
46
|
+
}),
|
|
47
|
+
contextProviderName: "qe-neb",
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
(0, MaterialContextMixin_1.default)(QENEBInputDataManager.prototype);
|
|
52
|
+
(0, MaterialsContextMixin_1.default)(QENEBInputDataManager.prototype);
|
|
53
|
+
(0, MaterialsSetContextMixin_1.default)(QENEBInputDataManager.prototype);
|
|
54
|
+
exports.default = QENEBInputDataManager;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { BaseMethod, InputContextItemSchema, QEPwxContextProviderSchema } from "@mat3ra/esse/dist/js/types";
|
|
2
|
+
import type { AtomicElementValue } from "@mat3ra/made/dist/js/basis/elements";
|
|
3
|
+
import type { JSONSchema7 } from "json-schema";
|
|
4
|
+
import { type MaterialContextMixin, type MaterialExternalContext } from "../../../mixins/MaterialContextMixin";
|
|
5
|
+
import { type MaterialsContextMixin, type MaterialsExternalContext } from "../../../mixins/MaterialsContextMixin";
|
|
6
|
+
import type { UnitContext } from "../../base/ContextProvider";
|
|
7
|
+
import JSONSchemaDataProvider, { type JinjaExternalContext } from "../../base/JSONSchemaDataProvider";
|
|
8
|
+
type MethodData = BaseMethod["data"] & {
|
|
9
|
+
pseudo?: {
|
|
10
|
+
element: AtomicElementValue;
|
|
11
|
+
filename?: string;
|
|
12
|
+
path?: string;
|
|
13
|
+
}[];
|
|
14
|
+
};
|
|
15
|
+
export type MethodDataExternalContext = {
|
|
16
|
+
methodData?: MethodData;
|
|
17
|
+
};
|
|
18
|
+
export type JobExternalContext = {
|
|
19
|
+
jobHasParent: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type WorkflowExternalContext = {
|
|
22
|
+
workflowHasRelaxation: boolean;
|
|
23
|
+
};
|
|
24
|
+
type Data = QEPwxContextProviderSchema;
|
|
25
|
+
type Schema = InputContextItemSchema & {
|
|
26
|
+
data: Data;
|
|
27
|
+
};
|
|
28
|
+
type ExternalContext = JinjaExternalContext & WorkflowExternalContext & MaterialExternalContext & JobExternalContext & MethodDataExternalContext & MaterialsExternalContext;
|
|
29
|
+
interface QEPWXInputDataManager extends MaterialContextMixin, MaterialsContextMixin {
|
|
30
|
+
}
|
|
31
|
+
declare class QEPWXInputDataManager extends JSONSchemaDataProvider<Schema, ExternalContext> {
|
|
32
|
+
readonly name: "input";
|
|
33
|
+
readonly domain: "executable";
|
|
34
|
+
readonly entityName: "unit";
|
|
35
|
+
isEdited: boolean;
|
|
36
|
+
methodData?: MethodData;
|
|
37
|
+
jobHasParent: boolean;
|
|
38
|
+
workflowHasRelaxation: boolean;
|
|
39
|
+
static createFromUnitContext(unitContext: UnitContext, externalContext: ExternalContext): QEPWXInputDataManager;
|
|
40
|
+
readonly jsonSchema: JSONSchema7;
|
|
41
|
+
constructor(config: Partial<Schema>, externalContext: ExternalContext);
|
|
42
|
+
private buildQEPWXContext;
|
|
43
|
+
getDefaultData(): {
|
|
44
|
+
perMaterial: QEPwxContextProviderSchema[];
|
|
45
|
+
IBRAV: number;
|
|
46
|
+
RESTART_MODE: "from_scratch" | "restart";
|
|
47
|
+
ATOMIC_SPECIES: {
|
|
48
|
+
X: string;
|
|
49
|
+
Mass_X: number;
|
|
50
|
+
PseudoPot_X: string;
|
|
51
|
+
}[];
|
|
52
|
+
ATOMIC_SPECIES_WITH_LABELS: {
|
|
53
|
+
X: string;
|
|
54
|
+
Mass_X: number;
|
|
55
|
+
PseudoPot_X: string;
|
|
56
|
+
}[];
|
|
57
|
+
NAT: number;
|
|
58
|
+
NTYP: number;
|
|
59
|
+
NTYP_WITH_LABELS: number;
|
|
60
|
+
ATOMIC_POSITIONS: {
|
|
61
|
+
X?: string;
|
|
62
|
+
x: number;
|
|
63
|
+
y: number;
|
|
64
|
+
z: number;
|
|
65
|
+
"if_pos(1)"?: number;
|
|
66
|
+
"if_pos(2)"?: number;
|
|
67
|
+
"if_pos(3)"?: number;
|
|
68
|
+
}[];
|
|
69
|
+
ATOMIC_POSITIONS_WITHOUT_CONSTRAINTS: string;
|
|
70
|
+
CELL_PARAMETERS: {
|
|
71
|
+
v1?: [number, number, number];
|
|
72
|
+
v2?: [number, number, number];
|
|
73
|
+
v3?: [number, number, number];
|
|
74
|
+
};
|
|
75
|
+
contextProviderName: "qe-pwx";
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export default QEPWXInputDataManager;
|