diff --git a/dist/js/context/mixins.d.ts b/dist/js/context/mixins.d.ts index 87238352..42d68ef1 100644 --- a/dist/js/context/mixins.d.ts +++ b/dist/js/context/mixins.d.ts @@ -53,6 +53,13 @@ export declare function MethodDataContextMixin(superclass _initMethodDataHash(): void; readonly methodData: any; readonly isMethodDataUpdated: boolean; + /** + * Returns array of orbital names: [{element: "Si", valenceOrbitals: ["3s", "3p"]}] + */ + readonly valenceOrbitals: { + element: string; + valenceOrbitals?: Array; + }[]; }; } & T; export declare function WorkflowContextMixin(superclass: T): { diff --git a/dist/js/context/mixins.js b/dist/js/context/mixins.js index d653b26a..fca3fe3e 100644 --- a/dist/js/context/mixins.js +++ b/dist/js/context/mixins.js @@ -142,6 +142,20 @@ function MethodDataContextMixin(superclass) { get isMethodDataUpdated() { return Boolean(this.extraData && this.extraData.methodDataHash !== this.methodDataHash); } + /** + * Returns array of orbital names: [{element: "Si", valenceOrbitals: ["3s", "3p"]}] + */ + get valenceOrbitals() { + var _a; + const pseudoData = ((_a = this.methodData) === null || _a === void 0 ? void 0 : _a.pseudo) || []; + return pseudoData.map((item) => { + const valenceConfiguration = (item === null || item === void 0 ? void 0 : item.valenceConfiguration) || []; + return { + element: item.element, + valenceOrbitals: valenceConfiguration.map((entry) => { var _a; return (_a = entry === null || entry === void 0 ? void 0 : entry.orbitalName) === null || _a === void 0 ? void 0 : _a.toLowerCase(); }), + }; + }); + } }; } function WorkflowContextMixin(superclass) { diff --git a/package-lock.json b/package-lock.json index ab51fc26..9bafaf3c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -34,7 +34,7 @@ "@babel/register": "^7.25.7", "@babel/runtime-corejs3": "^7.25.7", "@exabyte-io/eslint-config": "^2025.1.15-0", - "@mat3ra/esse": "2025.4.22-0", + "@mat3ra/esse": "2025.4.26-0", "@mat3ra/tsconfig": "2024.6.3-0", "@types/chai": "^4.3.20", "@types/crypto-js": "^4.2.2", @@ -2322,10 +2322,11 @@ "dev": true }, "node_modules/@mat3ra/esse": { - "version": "2025.4.22-0", - "resolved": "https://registry.npmjs.org/@mat3ra/esse/-/esse-2025.4.22-0.tgz", - "integrity": "sha512-bhpMHMuf6JTDXN2Pae8L+Zsn/JWBVZCqtLo1LgkvKK9QkjuUcjT8ixSGPYOjYEKe6wak+AUI0CqqgUBcVCS1KQ==", + "version": "2025.4.26-0", + "resolved": "https://registry.npmjs.org/@mat3ra/esse/-/esse-2025.4.26-0.tgz", + "integrity": "sha512-0xWNAZTTM6F7Gv1FGMWjs/6cnLVKsIKLwYpQqs5Tll/gqF9KwXdO6l3GJznjDZCUy1lrWgvBrHaD0NBGjKa5Iw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@babel/cli": "^7.27.0", "@babel/core": "^7.26.10", @@ -2537,6 +2538,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/@types/mathjs/-/mathjs-5.0.1.tgz", "integrity": "sha512-EFBuueI+BRed9bnUO6/9my55b4FH+VQIvqMm58h9JGbtaGCkqr3YSDhnmVbM1SJjF//8SURERSypzNwejOk7lA==", + "license": "MIT", "dependencies": { "decimal.js": "^10.0.0" } diff --git a/package.json b/package.json index c2fac1df..cf94f301 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@babel/register": "^7.25.7", "@babel/runtime-corejs3": "^7.25.7", "@exabyte-io/eslint-config": "^2025.1.15-0", - "@mat3ra/esse": "2025.4.22-0", + "@mat3ra/esse": "2025.4.26-0", "@mat3ra/tsconfig": "2024.6.3-0", "@types/chai": "^4.3.20", "@types/crypto-js": "^4.2.2", diff --git a/pyproject.toml b/pyproject.toml index eb708baf..e6b2e205 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,8 +19,8 @@ dependencies = [ "numpy", "jsonschema>=2.6.0", "pydantic>=2.7.1", - "mat3ra-esse>=2025.4.15.post0", - "mat3ra-utils>=2024.5.15.post0", + "mat3ra-esse>=2025.4.22.post0", + "mat3ra-utils>=2025.4.15.post0", ] [project.optional-dependencies] diff --git a/src/js/context/mixins.ts b/src/js/context/mixins.ts index d73564c3..28135dd4 100644 --- a/src/js/context/mixins.ts +++ b/src/js/context/mixins.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { ApplicationSchemaBase, + FileDataItem, JobSchema, MaterialSchema, WorkflowSchema, @@ -189,6 +190,22 @@ export function MethodDataContextMixin(superclass: T) { get isMethodDataUpdated() { return Boolean(this.extraData && this.extraData.methodDataHash !== this.methodDataHash); } + + /** + * Returns array of orbital names: [{element: "Si", valenceOrbitals: ["3s", "3p"]}] + */ + get valenceOrbitals(): { element: string; valenceOrbitals?: Array }[] { + const pseudoData = this.methodData?.pseudo || []; + return pseudoData.map((item: FileDataItem) => { + const valenceConfiguration = item?.valenceConfiguration || []; + return { + element: item.element, + valenceOrbitals: valenceConfiguration.map((entry) => + entry?.orbitalName?.toLowerCase(), + ), + }; + }); + } }; }