@mat3ra/prode 2025.11.25-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/.babelrc +17 -0
  2. package/LICENSE.md +15 -0
  3. package/README.md +93 -0
  4. package/dist/js/MetaProperty.d.ts +3 -0
  5. package/dist/js/MetaProperty.js +9 -0
  6. package/dist/js/Property.d.ts +25 -0
  7. package/dist/js/Property.js +25 -0
  8. package/dist/js/PropertyFactory.d.ts +54 -0
  9. package/dist/js/PropertyFactory.js +137 -0
  10. package/dist/js/ProtoProperty.d.ts +5 -0
  11. package/dist/js/ProtoProperty.js +11 -0
  12. package/dist/js/charts/highcharts.d.ts +57 -0
  13. package/dist/js/charts/highcharts.js +96 -0
  14. package/dist/js/generated/AtomicConstraintsPropertySchemaMixin.d.ts +5 -0
  15. package/dist/js/generated/AtomicConstraintsPropertySchemaMixin.js +15 -0
  16. package/dist/js/generated/AtomicForcesPropertySchemaMixin.d.ts +5 -0
  17. package/dist/js/generated/AtomicForcesPropertySchemaMixin.js +18 -0
  18. package/dist/js/generated/AveragePotentialProfilePropertySchemaMixin.d.ts +5 -0
  19. package/dist/js/generated/AveragePotentialProfilePropertySchemaMixin.js +24 -0
  20. package/dist/js/generated/BandGapsPropertySchemaMixin.d.ts +5 -0
  21. package/dist/js/generated/BandGapsPropertySchemaMixin.js +18 -0
  22. package/dist/js/generated/BandStructurePropertySchemaMixin.d.ts +5 -0
  23. package/dist/js/generated/BandStructurePropertySchemaMixin.js +27 -0
  24. package/dist/js/generated/BoundaryConditionsPropertySchemaMixin.d.ts +5 -0
  25. package/dist/js/generated/BoundaryConditionsPropertySchemaMixin.js +18 -0
  26. package/dist/js/generated/ChargeDensityProfilePropertySchemaMixin.d.ts +5 -0
  27. package/dist/js/generated/ChargeDensityProfilePropertySchemaMixin.js +24 -0
  28. package/dist/js/generated/ConvergenceElectronicPropertySchemaMixin.d.ts +5 -0
  29. package/dist/js/generated/ConvergenceElectronicPropertySchemaMixin.js +18 -0
  30. package/dist/js/generated/ConvergenceIonicPropertySchemaMixin.d.ts +5 -0
  31. package/dist/js/generated/ConvergenceIonicPropertySchemaMixin.js +21 -0
  32. package/dist/js/generated/DensityOfStatesPropertySchemaMixin.d.ts +5 -0
  33. package/dist/js/generated/DensityOfStatesPropertySchemaMixin.js +27 -0
  34. package/dist/js/generated/DielectricTensorPropertySchemaMixin.d.ts +5 -0
  35. package/dist/js/generated/DielectricTensorPropertySchemaMixin.js +15 -0
  36. package/dist/js/generated/FermiEnergyPropertySchemaMixin.d.ts +5 -0
  37. package/dist/js/generated/FermiEnergyPropertySchemaMixin.js +18 -0
  38. package/dist/js/generated/FileContentPropertySchemaMixin.d.ts +5 -0
  39. package/dist/js/generated/FileContentPropertySchemaMixin.js +24 -0
  40. package/dist/js/generated/FinalStructurePropertySchemaMixin.d.ts +5 -0
  41. package/dist/js/generated/FinalStructurePropertySchemaMixin.js +18 -0
  42. package/dist/js/generated/HubbardUPropertySchemaMixin.d.ts +5 -0
  43. package/dist/js/generated/HubbardUPropertySchemaMixin.js +18 -0
  44. package/dist/js/generated/HubbardVNNPropertySchemaMixin.d.ts +5 -0
  45. package/dist/js/generated/HubbardVNNPropertySchemaMixin.js +18 -0
  46. package/dist/js/generated/HubbardVPropertySchemaMixin.d.ts +5 -0
  47. package/dist/js/generated/HubbardVPropertySchemaMixin.js +18 -0
  48. package/dist/js/generated/IonizationPotentialElementalPropertySchemaMixin.d.ts +5 -0
  49. package/dist/js/generated/IonizationPotentialElementalPropertySchemaMixin.js +18 -0
  50. package/dist/js/generated/IsRelaxedPropertySchemaMixin.d.ts +5 -0
  51. package/dist/js/generated/IsRelaxedPropertySchemaMixin.js +18 -0
  52. package/dist/js/generated/JupyterNotebookEndpointPropertySchemaMixin.d.ts +5 -0
  53. package/dist/js/generated/JupyterNotebookEndpointPropertySchemaMixin.js +21 -0
  54. package/dist/js/generated/MagneticMomentsPropertySchemaMixin.d.ts +5 -0
  55. package/dist/js/generated/MagneticMomentsPropertySchemaMixin.js +18 -0
  56. package/dist/js/generated/MetaPropertyHolderSchemaMixin.d.ts +5 -0
  57. package/dist/js/generated/MetaPropertyHolderSchemaMixin.js +15 -0
  58. package/dist/js/generated/PhononDOSPropertySchemaMixin.d.ts +5 -0
  59. package/dist/js/generated/PhononDOSPropertySchemaMixin.js +24 -0
  60. package/dist/js/generated/PhononDispersionsPropertySchemaMixin.d.ts +5 -0
  61. package/dist/js/generated/PhononDispersionsPropertySchemaMixin.js +24 -0
  62. package/dist/js/generated/PotentialProfilePropertySchemaMixin.d.ts +5 -0
  63. package/dist/js/generated/PotentialProfilePropertySchemaMixin.js +24 -0
  64. package/dist/js/generated/PressurePropertySchemaMixin.d.ts +5 -0
  65. package/dist/js/generated/PressurePropertySchemaMixin.js +18 -0
  66. package/dist/js/generated/PropertyHolderSchemaMixin.d.ts +5 -0
  67. package/dist/js/generated/PropertyHolderSchemaMixin.js +30 -0
  68. package/dist/js/generated/ProtoPropertyHolderSchemaMixin.d.ts +5 -0
  69. package/dist/js/generated/ProtoPropertyHolderSchemaMixin.js +15 -0
  70. package/dist/js/generated/PseudopotentialMetaPropertySchemaMixin.d.ts +5 -0
  71. package/dist/js/generated/PseudopotentialMetaPropertySchemaMixin.js +45 -0
  72. package/dist/js/generated/ReactionEnergyBarrierPropertySchemaMixin.d.ts +5 -0
  73. package/dist/js/generated/ReactionEnergyBarrierPropertySchemaMixin.js +18 -0
  74. package/dist/js/generated/ReactionEnergyProfilePropertySchemaMixin.d.ts +5 -0
  75. package/dist/js/generated/ReactionEnergyProfilePropertySchemaMixin.js +24 -0
  76. package/dist/js/generated/StressTensorPropertySchemaMixin.d.ts +5 -0
  77. package/dist/js/generated/StressTensorPropertySchemaMixin.js +18 -0
  78. package/dist/js/generated/SurfaceEnergyPropertySchemaMixin.d.ts +5 -0
  79. package/dist/js/generated/SurfaceEnergyPropertySchemaMixin.js +18 -0
  80. package/dist/js/generated/TotalEnergyContributionsPropertySchemaMixin.d.ts +5 -0
  81. package/dist/js/generated/TotalEnergyContributionsPropertySchemaMixin.js +57 -0
  82. package/dist/js/generated/TotalEnergyPropertySchemaMixin.d.ts +5 -0
  83. package/dist/js/generated/TotalEnergyPropertySchemaMixin.js +18 -0
  84. package/dist/js/generated/TotalForcePropertySchemaMixin.d.ts +5 -0
  85. package/dist/js/generated/TotalForcePropertySchemaMixin.js +18 -0
  86. package/dist/js/generated/ValenceBandOffsetPropertySchemaMixin.d.ts +5 -0
  87. package/dist/js/generated/ValenceBandOffsetPropertySchemaMixin.js +18 -0
  88. package/dist/js/generated/WorkflowPropertySchemaMixin.d.ts +5 -0
  89. package/dist/js/generated/WorkflowPropertySchemaMixin.js +33 -0
  90. package/dist/js/generated/ZeroPointEnergyPropertySchemaMixin.d.ts +5 -0
  91. package/dist/js/generated/ZeroPointEnergyPropertySchemaMixin.js +18 -0
  92. package/dist/js/holders/MetaPropertyHolder.d.ts +10 -0
  93. package/dist/js/holders/MetaPropertyHolder.js +12 -0
  94. package/dist/js/holders/PropertyHolder.d.ts +10 -0
  95. package/dist/js/holders/PropertyHolder.js +12 -0
  96. package/dist/js/holders/ProtoPropertyHolder.d.ts +10 -0
  97. package/dist/js/holders/ProtoPropertyHolder.js +12 -0
  98. package/dist/js/holders/mixins/MetaPropertyHolderMixin.d.ts +12 -0
  99. package/dist/js/holders/mixins/MetaPropertyHolderMixin.js +18 -0
  100. package/dist/js/holders/mixins/PropertyHolderMixin.d.ts +16 -0
  101. package/dist/js/holders/mixins/PropertyHolderMixin.js +37 -0
  102. package/dist/js/holders/mixins/ProtoPropertyHolderMixin.d.ts +12 -0
  103. package/dist/js/holders/mixins/ProtoPropertyHolderMixin.js +18 -0
  104. package/dist/js/index.d.ts +20 -0
  105. package/dist/js/index.js +60 -0
  106. package/dist/js/meta_properties/PseudopotentialMetaProperty.d.ts +78 -0
  107. package/dist/js/meta_properties/PseudopotentialMetaProperty.js +157 -0
  108. package/dist/js/properties/include/mixins/2d_plot.d.ts +27 -0
  109. package/dist/js/properties/include/mixins/2d_plot.js +79 -0
  110. package/dist/js/properties/non-scalar/AveragePotentialProfileProperty.d.ts +38 -0
  111. package/dist/js/properties/non-scalar/AveragePotentialProfileProperty.js +54 -0
  112. package/dist/js/properties/non-scalar/BandGapsProperty.d.ts +59 -0
  113. package/dist/js/properties/non-scalar/BandGapsProperty.js +52 -0
  114. package/dist/js/properties/non-scalar/BandStructureProperty.d.ts +186 -0
  115. package/dist/js/properties/non-scalar/BandStructureProperty.js +218 -0
  116. package/dist/js/properties/non-scalar/ChargeDensityProfileProperty.d.ts +25 -0
  117. package/dist/js/properties/non-scalar/ChargeDensityProfileProperty.js +34 -0
  118. package/dist/js/properties/non-scalar/DensityOfStatesProperty.d.ts +145 -0
  119. package/dist/js/properties/non-scalar/DensityOfStatesProperty.js +126 -0
  120. package/dist/js/properties/non-scalar/DielectricTensorProperty.d.ts +49 -0
  121. package/dist/js/properties/non-scalar/DielectricTensorProperty.js +119 -0
  122. package/dist/js/properties/non-scalar/FileContentProperty.d.ts +15 -0
  123. package/dist/js/properties/non-scalar/FileContentProperty.js +18 -0
  124. package/dist/js/properties/non-scalar/FinalStructureProperty.d.ts +14 -0
  125. package/dist/js/properties/non-scalar/FinalStructureProperty.js +17 -0
  126. package/dist/js/properties/non-scalar/HubbardUProperty.d.ts +14 -0
  127. package/dist/js/properties/non-scalar/HubbardUProperty.js +17 -0
  128. package/dist/js/properties/non-scalar/HubbardVNNProperty.d.ts +14 -0
  129. package/dist/js/properties/non-scalar/HubbardVNNProperty.js +17 -0
  130. package/dist/js/properties/non-scalar/HubbardVProperty.d.ts +14 -0
  131. package/dist/js/properties/non-scalar/HubbardVProperty.js +17 -0
  132. package/dist/js/properties/non-scalar/IsRelaxedProperty.d.ts +15 -0
  133. package/dist/js/properties/non-scalar/IsRelaxedProperty.js +18 -0
  134. package/dist/js/properties/non-scalar/JupyterNotebookEndpointProperty.d.ts +14 -0
  135. package/dist/js/properties/non-scalar/JupyterNotebookEndpointProperty.js +17 -0
  136. package/dist/js/properties/non-scalar/PhononDOSProperty.d.ts +19 -0
  137. package/dist/js/properties/non-scalar/PhononDOSProperty.js +37 -0
  138. package/dist/js/properties/non-scalar/PhononDispersionsProperty.d.ts +21 -0
  139. package/dist/js/properties/non-scalar/PhononDispersionsProperty.js +28 -0
  140. package/dist/js/properties/non-scalar/PotentialProfileProperty.d.ts +38 -0
  141. package/dist/js/properties/non-scalar/PotentialProfileProperty.js +58 -0
  142. package/dist/js/properties/non-scalar/ReactionEnergyProfileProperty.d.ts +25 -0
  143. package/dist/js/properties/non-scalar/ReactionEnergyProfileProperty.js +34 -0
  144. package/dist/js/properties/non-scalar/WorkflowProperty.d.ts +14 -0
  145. package/dist/js/properties/non-scalar/WorkflowProperty.js +17 -0
  146. package/dist/js/properties/non-scalar/convergence/ConvergenceElectronicProperty.d.ts +17 -0
  147. package/dist/js/properties/non-scalar/convergence/ConvergenceElectronicProperty.js +63 -0
  148. package/dist/js/properties/non-scalar/convergence/ConvergenceIonicProperty.d.ts +17 -0
  149. package/dist/js/properties/non-scalar/convergence/ConvergenceIonicProperty.js +45 -0
  150. package/dist/js/properties/object/TotalEnergyContributionsProperty.d.ts +18 -0
  151. package/dist/js/properties/object/TotalEnergyContributionsProperty.js +20 -0
  152. package/dist/js/properties/scalar/FermiEnergyProperty.d.ts +14 -0
  153. package/dist/js/properties/scalar/FermiEnergyProperty.js +17 -0
  154. package/dist/js/properties/scalar/IonizationPotentialElementalProperty.d.ts +14 -0
  155. package/dist/js/properties/scalar/IonizationPotentialElementalProperty.js +17 -0
  156. package/dist/js/properties/scalar/PressureProperty.d.ts +15 -0
  157. package/dist/js/properties/scalar/PressureProperty.js +18 -0
  158. package/dist/js/properties/scalar/ReactionEnergyBarrierProperty.d.ts +15 -0
  159. package/dist/js/properties/scalar/ReactionEnergyBarrierProperty.js +18 -0
  160. package/dist/js/properties/scalar/SurfaceEnergyProperty.d.ts +15 -0
  161. package/dist/js/properties/scalar/SurfaceEnergyProperty.js +18 -0
  162. package/dist/js/properties/scalar/TotalEnergyProperty.d.ts +15 -0
  163. package/dist/js/properties/scalar/TotalEnergyProperty.js +18 -0
  164. package/dist/js/properties/scalar/TotalForceProperty.d.ts +14 -0
  165. package/dist/js/properties/scalar/TotalForceProperty.js +17 -0
  166. package/dist/js/properties/scalar/ValenceBandOffsetProperty.d.ts +15 -0
  167. package/dist/js/properties/scalar/ValenceBandOffsetProperty.js +18 -0
  168. package/dist/js/properties/scalar/ZeroPointEnergyProperty.d.ts +14 -0
  169. package/dist/js/properties/scalar/ZeroPointEnergyProperty.js +17 -0
  170. package/dist/js/properties/tensor/AtomicForcesProperty.d.ts +14 -0
  171. package/dist/js/properties/tensor/AtomicForcesProperty.js +17 -0
  172. package/dist/js/properties/tensor/MagneticMomentsProperty.d.ts +14 -0
  173. package/dist/js/properties/tensor/MagneticMomentsProperty.js +17 -0
  174. package/dist/js/properties/tensor/StressTensorProperty.d.ts +14 -0
  175. package/dist/js/properties/tensor/StressTensorProperty.js +17 -0
  176. package/dist/js/proto_properties/AtomicConstraintsProperty.d.ts +13 -0
  177. package/dist/js/proto_properties/AtomicConstraintsProperty.js +16 -0
  178. package/dist/js/proto_properties/BoundaryConditionsProperty.d.ts +13 -0
  179. package/dist/js/proto_properties/BoundaryConditionsProperty.js +16 -0
  180. package/dist/js/settings.d.ts +48 -0
  181. package/dist/js/settings.js +56 -0
  182. package/dist/js/types.d.ts +14 -0
  183. package/dist/js/types.js +2 -0
  184. package/package.json +101 -0
  185. package/src/js/MetaProperty.ts +3 -0
  186. package/src/js/Property.ts +49 -0
  187. package/src/js/PropertyFactory.ts +208 -0
  188. package/src/js/ProtoProperty.ts +6 -0
  189. package/src/js/charts/highcharts.ts +172 -0
  190. package/src/js/generated/AtomicConstraintsPropertySchemaMixin.ts +24 -0
  191. package/src/js/generated/AtomicForcesPropertySchemaMixin.ts +26 -0
  192. package/src/js/generated/AveragePotentialProfilePropertySchemaMixin.ts +37 -0
  193. package/src/js/generated/BandGapsPropertySchemaMixin.ts +26 -0
  194. package/src/js/generated/BandStructurePropertySchemaMixin.ts +35 -0
  195. package/src/js/generated/BoundaryConditionsPropertySchemaMixin.ts +27 -0
  196. package/src/js/generated/ChargeDensityProfilePropertySchemaMixin.ts +37 -0
  197. package/src/js/generated/ConvergenceElectronicPropertySchemaMixin.ts +27 -0
  198. package/src/js/generated/ConvergenceIonicPropertySchemaMixin.ts +30 -0
  199. package/src/js/generated/DensityOfStatesPropertySchemaMixin.ts +36 -0
  200. package/src/js/generated/DielectricTensorPropertySchemaMixin.ts +24 -0
  201. package/src/js/generated/FermiEnergyPropertySchemaMixin.ts +26 -0
  202. package/src/js/generated/FileContentPropertySchemaMixin.ts +32 -0
  203. package/src/js/generated/FinalStructurePropertySchemaMixin.ts +27 -0
  204. package/src/js/generated/HubbardUPropertySchemaMixin.ts +26 -0
  205. package/src/js/generated/HubbardVNNPropertySchemaMixin.ts +26 -0
  206. package/src/js/generated/HubbardVPropertySchemaMixin.ts +26 -0
  207. package/src/js/generated/IonizationPotentialElementalPropertySchemaMixin.ts +27 -0
  208. package/src/js/generated/IsRelaxedPropertySchemaMixin.ts +26 -0
  209. package/src/js/generated/JupyterNotebookEndpointPropertySchemaMixin.ts +30 -0
  210. package/src/js/generated/MagneticMomentsPropertySchemaMixin.ts +27 -0
  211. package/src/js/generated/MetaPropertyHolderSchemaMixin.ts +23 -0
  212. package/src/js/generated/PhononDOSPropertySchemaMixin.ts +36 -0
  213. package/src/js/generated/PhononDispersionsPropertySchemaMixin.ts +35 -0
  214. package/src/js/generated/PotentialProfilePropertySchemaMixin.ts +33 -0
  215. package/src/js/generated/PressurePropertySchemaMixin.ts +26 -0
  216. package/src/js/generated/PropertyHolderSchemaMixin.ts +38 -0
  217. package/src/js/generated/ProtoPropertyHolderSchemaMixin.ts +23 -0
  218. package/src/js/generated/PseudopotentialMetaPropertySchemaMixin.ts +54 -0
  219. package/src/js/generated/README.md +27 -0
  220. package/src/js/generated/ReactionEnergyBarrierPropertySchemaMixin.ts +27 -0
  221. package/src/js/generated/ReactionEnergyProfilePropertySchemaMixin.ts +37 -0
  222. package/src/js/generated/StressTensorPropertySchemaMixin.ts +26 -0
  223. package/src/js/generated/SurfaceEnergyPropertySchemaMixin.ts +26 -0
  224. package/src/js/generated/TotalEnergyContributionsPropertySchemaMixin.ts +80 -0
  225. package/src/js/generated/TotalEnergyPropertySchemaMixin.ts +26 -0
  226. package/src/js/generated/TotalForcePropertySchemaMixin.ts +26 -0
  227. package/src/js/generated/ValenceBandOffsetPropertySchemaMixin.ts +27 -0
  228. package/src/js/generated/WorkflowPropertySchemaMixin.ts +41 -0
  229. package/src/js/generated/ZeroPointEnergyPropertySchemaMixin.ts +27 -0
  230. package/src/js/holders/MetaPropertyHolder.ts +19 -0
  231. package/src/js/holders/PropertyHolder.ts +17 -0
  232. package/src/js/holders/ProtoPropertyHolder.ts +17 -0
  233. package/src/js/holders/mixins/MetaPropertyHolderMixin.ts +31 -0
  234. package/src/js/holders/mixins/PropertyHolderMixin.ts +55 -0
  235. package/src/js/holders/mixins/ProtoPropertyHolderMixin.ts +31 -0
  236. package/src/js/index.ts +21 -0
  237. package/src/js/meta_properties/PseudopotentialMetaProperty.ts +206 -0
  238. package/src/js/properties/include/mixins/2d_plot.ts +105 -0
  239. package/src/js/properties/non-scalar/AveragePotentialProfileProperty.ts +69 -0
  240. package/src/js/properties/non-scalar/BandGapsProperty.ts +65 -0
  241. package/src/js/properties/non-scalar/BandStructureProperty.ts +284 -0
  242. package/src/js/properties/non-scalar/ChargeDensityProfileProperty.ts +48 -0
  243. package/src/js/properties/non-scalar/DensityOfStatesProperty.ts +174 -0
  244. package/src/js/properties/non-scalar/DielectricTensorProperty.ts +153 -0
  245. package/src/js/properties/non-scalar/FileContentProperty.ts +27 -0
  246. package/src/js/properties/non-scalar/FinalStructureProperty.ts +25 -0
  247. package/src/js/properties/non-scalar/HubbardUProperty.ts +25 -0
  248. package/src/js/properties/non-scalar/HubbardVNNProperty.ts +25 -0
  249. package/src/js/properties/non-scalar/HubbardVProperty.ts +25 -0
  250. package/src/js/properties/non-scalar/IsRelaxedProperty.ts +27 -0
  251. package/src/js/properties/non-scalar/JupyterNotebookEndpointProperty.ts +26 -0
  252. package/src/js/properties/non-scalar/PhononDOSProperty.ts +57 -0
  253. package/src/js/properties/non-scalar/PhononDispersionsProperty.ts +46 -0
  254. package/src/js/properties/non-scalar/PotentialProfileProperty.ts +76 -0
  255. package/src/js/properties/non-scalar/ReactionEnergyProfileProperty.ts +48 -0
  256. package/src/js/properties/non-scalar/WorkflowProperty.ts +25 -0
  257. package/src/js/properties/non-scalar/convergence/ConvergenceElectronicProperty.ts +82 -0
  258. package/src/js/properties/non-scalar/convergence/ConvergenceIonicProperty.ts +62 -0
  259. package/src/js/properties/object/TotalEnergyContributionsProperty.ts +29 -0
  260. package/src/js/properties/scalar/FermiEnergyProperty.ts +25 -0
  261. package/src/js/properties/scalar/IonizationPotentialElementalProperty.ts +27 -0
  262. package/src/js/properties/scalar/PressureProperty.ts +27 -0
  263. package/src/js/properties/scalar/ReactionEnergyBarrierProperty.ts +29 -0
  264. package/src/js/properties/scalar/SurfaceEnergyProperty.ts +27 -0
  265. package/src/js/properties/scalar/TotalEnergyProperty.ts +27 -0
  266. package/src/js/properties/scalar/TotalForceProperty.ts +25 -0
  267. package/src/js/properties/scalar/ValenceBandOffsetProperty.ts +27 -0
  268. package/src/js/properties/scalar/ZeroPointEnergyProperty.ts +25 -0
  269. package/src/js/properties/tensor/AtomicForcesProperty.ts +27 -0
  270. package/src/js/properties/tensor/MagneticMomentsProperty.ts +27 -0
  271. package/src/js/properties/tensor/StressTensorProperty.ts +25 -0
  272. package/src/js/proto_properties/AtomicConstraintsProperty.ts +25 -0
  273. package/src/js/proto_properties/BoundaryConditionsProperty.ts +25 -0
  274. package/src/js/settings.ts +52 -0
  275. package/src/js/types.ts +24 -0
  276. package/tsconfig.json +3 -0
@@ -0,0 +1,18 @@
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
+ exports.protoPropertyHolderMixin = protoPropertyHolderMixin;
7
+ const ProtoPropertyHolderSchemaMixin_1 = require("../../generated/ProtoPropertyHolderSchemaMixin");
8
+ const PropertyFactory_1 = __importDefault(require("../../PropertyFactory"));
9
+ function protoPropertyHolderMixin(item) {
10
+ // @ts-expect-error - this is a workaround to allow the protoPropertyMixin to be used with any type of entity
11
+ const properties = {
12
+ get property() {
13
+ return PropertyFactory_1.default.createProtoProperty(this.data);
14
+ },
15
+ };
16
+ Object.defineProperties(item, Object.getOwnPropertyDescriptors(properties));
17
+ (0, ProtoPropertyHolderSchemaMixin_1.protoPropertyHolderSchemaMixin)(item);
18
+ }
@@ -0,0 +1,20 @@
1
+ export { default as PropertyFactory } from "./PropertyFactory";
2
+ export { PropertyName, PropertyType } from "./settings";
3
+ export { default as Property } from "./Property";
4
+ export { default as MetaProperty } from "./MetaProperty";
5
+ export { default as PseudopotentialMetaProperty } from "./meta_properties/PseudopotentialMetaProperty";
6
+ export { default as FinalStructureProperty } from "./properties/non-scalar/FinalStructureProperty";
7
+ export { default as BandGapsProperty } from "./properties/non-scalar/BandGapsProperty";
8
+ export { default as IsRelaxedProperty } from "./properties/non-scalar/IsRelaxedProperty";
9
+ export { default as PressureProperty } from "./properties/scalar/PressureProperty";
10
+ export { default as ReactionEnergyBarrierProperty } from "./properties/scalar/ReactionEnergyBarrierProperty";
11
+ export { default as SurfaceEnergyProperty } from "./properties/scalar/SurfaceEnergyProperty";
12
+ export { default as TotalEnergyProperty } from "./properties/scalar/TotalEnergyProperty";
13
+ export { default as BandStructureProperty } from "./properties/non-scalar/BandStructureProperty";
14
+ export { default as ChargeDensityProfileProperty } from "./properties/non-scalar/ChargeDensityProfileProperty";
15
+ export { default as PotentialProfileProperty } from "./properties/non-scalar/PotentialProfileProperty";
16
+ export { default as ReactionEnergyProfileProperty } from "./properties/non-scalar/ReactionEnergyProfileProperty";
17
+ export { protoPropertyHolderMixin } from "./holders/mixins/ProtoPropertyHolderMixin";
18
+ export { propertyHolderMixin } from "./holders/mixins/PropertyHolderMixin";
19
+ export { metaPropertyHolderMixin } from "./holders/mixins/MetaPropertyHolderMixin";
20
+ export * from "./types";
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.metaPropertyHolderMixin = exports.propertyHolderMixin = exports.protoPropertyHolderMixin = exports.ReactionEnergyProfileProperty = exports.PotentialProfileProperty = exports.ChargeDensityProfileProperty = exports.BandStructureProperty = exports.TotalEnergyProperty = exports.SurfaceEnergyProperty = exports.ReactionEnergyBarrierProperty = exports.PressureProperty = exports.IsRelaxedProperty = exports.BandGapsProperty = exports.FinalStructureProperty = exports.PseudopotentialMetaProperty = exports.MetaProperty = exports.Property = exports.PropertyType = exports.PropertyName = exports.PropertyFactory = void 0;
21
+ var PropertyFactory_1 = require("./PropertyFactory");
22
+ Object.defineProperty(exports, "PropertyFactory", { enumerable: true, get: function () { return __importDefault(PropertyFactory_1).default; } });
23
+ var settings_1 = require("./settings");
24
+ Object.defineProperty(exports, "PropertyName", { enumerable: true, get: function () { return settings_1.PropertyName; } });
25
+ Object.defineProperty(exports, "PropertyType", { enumerable: true, get: function () { return settings_1.PropertyType; } });
26
+ var Property_1 = require("./Property");
27
+ Object.defineProperty(exports, "Property", { enumerable: true, get: function () { return __importDefault(Property_1).default; } });
28
+ var MetaProperty_1 = require("./MetaProperty");
29
+ Object.defineProperty(exports, "MetaProperty", { enumerable: true, get: function () { return __importDefault(MetaProperty_1).default; } });
30
+ var PseudopotentialMetaProperty_1 = require("./meta_properties/PseudopotentialMetaProperty");
31
+ Object.defineProperty(exports, "PseudopotentialMetaProperty", { enumerable: true, get: function () { return __importDefault(PseudopotentialMetaProperty_1).default; } });
32
+ var FinalStructureProperty_1 = require("./properties/non-scalar/FinalStructureProperty");
33
+ Object.defineProperty(exports, "FinalStructureProperty", { enumerable: true, get: function () { return __importDefault(FinalStructureProperty_1).default; } });
34
+ var BandGapsProperty_1 = require("./properties/non-scalar/BandGapsProperty");
35
+ Object.defineProperty(exports, "BandGapsProperty", { enumerable: true, get: function () { return __importDefault(BandGapsProperty_1).default; } });
36
+ var IsRelaxedProperty_1 = require("./properties/non-scalar/IsRelaxedProperty");
37
+ Object.defineProperty(exports, "IsRelaxedProperty", { enumerable: true, get: function () { return __importDefault(IsRelaxedProperty_1).default; } });
38
+ var PressureProperty_1 = require("./properties/scalar/PressureProperty");
39
+ Object.defineProperty(exports, "PressureProperty", { enumerable: true, get: function () { return __importDefault(PressureProperty_1).default; } });
40
+ var ReactionEnergyBarrierProperty_1 = require("./properties/scalar/ReactionEnergyBarrierProperty");
41
+ Object.defineProperty(exports, "ReactionEnergyBarrierProperty", { enumerable: true, get: function () { return __importDefault(ReactionEnergyBarrierProperty_1).default; } });
42
+ var SurfaceEnergyProperty_1 = require("./properties/scalar/SurfaceEnergyProperty");
43
+ Object.defineProperty(exports, "SurfaceEnergyProperty", { enumerable: true, get: function () { return __importDefault(SurfaceEnergyProperty_1).default; } });
44
+ var TotalEnergyProperty_1 = require("./properties/scalar/TotalEnergyProperty");
45
+ Object.defineProperty(exports, "TotalEnergyProperty", { enumerable: true, get: function () { return __importDefault(TotalEnergyProperty_1).default; } });
46
+ var BandStructureProperty_1 = require("./properties/non-scalar/BandStructureProperty");
47
+ Object.defineProperty(exports, "BandStructureProperty", { enumerable: true, get: function () { return __importDefault(BandStructureProperty_1).default; } });
48
+ var ChargeDensityProfileProperty_1 = require("./properties/non-scalar/ChargeDensityProfileProperty");
49
+ Object.defineProperty(exports, "ChargeDensityProfileProperty", { enumerable: true, get: function () { return __importDefault(ChargeDensityProfileProperty_1).default; } });
50
+ var PotentialProfileProperty_1 = require("./properties/non-scalar/PotentialProfileProperty");
51
+ Object.defineProperty(exports, "PotentialProfileProperty", { enumerable: true, get: function () { return __importDefault(PotentialProfileProperty_1).default; } });
52
+ var ReactionEnergyProfileProperty_1 = require("./properties/non-scalar/ReactionEnergyProfileProperty");
53
+ Object.defineProperty(exports, "ReactionEnergyProfileProperty", { enumerable: true, get: function () { return __importDefault(ReactionEnergyProfileProperty_1).default; } });
54
+ var ProtoPropertyHolderMixin_1 = require("./holders/mixins/ProtoPropertyHolderMixin");
55
+ Object.defineProperty(exports, "protoPropertyHolderMixin", { enumerable: true, get: function () { return ProtoPropertyHolderMixin_1.protoPropertyHolderMixin; } });
56
+ var PropertyHolderMixin_1 = require("./holders/mixins/PropertyHolderMixin");
57
+ Object.defineProperty(exports, "propertyHolderMixin", { enumerable: true, get: function () { return PropertyHolderMixin_1.propertyHolderMixin; } });
58
+ var MetaPropertyHolderMixin_1 = require("./holders/mixins/MetaPropertyHolderMixin");
59
+ Object.defineProperty(exports, "metaPropertyHolderMixin", { enumerable: true, get: function () { return MetaPropertyHolderMixin_1.metaPropertyHolderMixin; } });
60
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,78 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { FileDataItem as Schema } from "@mat3ra/esse/dist/js/types";
3
+ import { type PseudopotentialMetaPropertySchemaMixin } from "../generated/PseudopotentialMetaPropertySchemaMixin";
4
+ import MetaProperty from "../MetaProperty";
5
+ import { PropertyName, PropertyType } from "../settings";
6
+ type RawDataObject = {
7
+ path: string;
8
+ };
9
+ declare enum CompatibleExchangeCorrelationKey {
10
+ hse06 = "hse06"
11
+ }
12
+ type Base = typeof MetaProperty & Constructor<PseudopotentialMetaPropertySchemaMixin>;
13
+ declare const PseudopotentialMetaProperty_base: Base;
14
+ export default class PseudopotentialMetaProperty extends PseudopotentialMetaProperty_base implements Schema {
15
+ static readonly propertyName = PropertyName.pseudopotential;
16
+ static readonly propertyType = PropertyType.non_scalar;
17
+ static readonly compatibleExchangeCorrelation: {
18
+ hse06: string[];
19
+ };
20
+ _json: Omit<Schema, "name">;
21
+ toJSON: () => Omit<Schema, "name">;
22
+ constructor(config: Omit<Schema, "name">);
23
+ get isCustom(): boolean;
24
+ /**
25
+ * @summary Attempts filtering raw data by search text, split by "," into multiple regular expressions,
26
+ * splitting to multiple regexps allows to control the order of filtered items
27
+ * if raw data is not empty but filtered data is, returns first element of raw data (assumed to be default)
28
+ * @note Filters by path!
29
+ */
30
+ static safelyFilterRawDataBySearchText(rawData: PseudopotentialMetaProperty[], searchText: string, separator?: string): PseudopotentialMetaProperty[];
31
+ static isCompatibleWithOther(functional: string): functional is CompatibleExchangeCorrelationKey;
32
+ /**
33
+ * @summary Exclusive filter of raw data by all fields of the passed object
34
+ */
35
+ static filterRawDataByExchangeCorrelation(rawData: PseudopotentialMetaProperty[], exchangeCorrelation: {
36
+ functional: string;
37
+ approximation: string;
38
+ }): PseudopotentialMetaProperty[];
39
+ static filterUnique(array: PseudopotentialMetaProperty[]): PseudopotentialMetaProperty[];
40
+ static filterUniqueByAppName(array: PseudopotentialMetaProperty[], appName: string): PseudopotentialMetaProperty[];
41
+ static filterRawDataByPath(rawData: RawDataObject[], pseudoPath?: string): RawDataObject[];
42
+ static filterByAppName(pseudos: PseudopotentialMetaProperty[], appName: string): PseudopotentialMetaProperty[];
43
+ static filterByElements(pseudos: PseudopotentialMetaProperty[], elements: string[]): PseudopotentialMetaProperty[];
44
+ /** Apply several filters at once.
45
+ * @example
46
+ * // filter object
47
+ * {
48
+ * exchangeCorrelation: {
49
+ * approximation: "gga",
50
+ * functional: "pbe"
51
+ * },
52
+ * searchText: "gbrv",
53
+ * appName: "vasp",
54
+ * elements: ["Si", "Ne", "Fe"],
55
+ * }
56
+ */
57
+ static applyPseudoFilters(pseudos: PseudopotentialMetaProperty[], pseudoFilter: {
58
+ searchText?: string;
59
+ appName?: string;
60
+ type?: string;
61
+ exchangeCorrelation?: {
62
+ functional: keyof typeof PseudopotentialMetaProperty.compatibleExchangeCorrelation;
63
+ approximation: string;
64
+ };
65
+ elements?: string[];
66
+ }): PseudopotentialMetaProperty[];
67
+ /**
68
+ * Sorts pseudos by the given pattern.
69
+ * NOTE: This is currently used to prioritize gbrv pseudopotentials over norm-conserving ones for QE.
70
+ */
71
+ static sortPseudosByPattern(pseudos: PseudopotentialMetaProperty[], pattern?: string): PseudopotentialMetaProperty[];
72
+ /**
73
+ * Prioritizes pseudos with 'default' and '5.2' (version) in path (VASP)
74
+ */
75
+ static sortByPathVASP(pseudos: PseudopotentialMetaProperty[], version?: string): PseudopotentialMetaProperty[];
76
+ static filterByType(pseudos: PseudopotentialMetaProperty[], pseudoType?: string): PseudopotentialMetaProperty[];
77
+ }
78
+ export {};
@@ -0,0 +1,157 @@
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 uniqBy_1 = __importDefault(require("lodash/uniqBy"));
7
+ const PseudopotentialMetaPropertySchemaMixin_1 = require("../generated/PseudopotentialMetaPropertySchemaMixin");
8
+ const MetaProperty_1 = __importDefault(require("../MetaProperty"));
9
+ const settings_1 = require("../settings");
10
+ var CompatibleExchangeCorrelationKey;
11
+ (function (CompatibleExchangeCorrelationKey) {
12
+ CompatibleExchangeCorrelationKey["hse06"] = "hse06";
13
+ })(CompatibleExchangeCorrelationKey || (CompatibleExchangeCorrelationKey = {}));
14
+ class PseudopotentialMetaProperty extends MetaProperty_1.default {
15
+ constructor(config) {
16
+ super({ ...config, name: PseudopotentialMetaProperty.propertyName });
17
+ }
18
+ get isCustom() {
19
+ return this.source === "user";
20
+ }
21
+ /**
22
+ * @summary Attempts filtering raw data by search text, split by "," into multiple regular expressions,
23
+ * splitting to multiple regexps allows to control the order of filtered items
24
+ * if raw data is not empty but filtered data is, returns first element of raw data (assumed to be default)
25
+ * @note Filters by path!
26
+ */
27
+ static safelyFilterRawDataBySearchText(rawData, searchText, separator = ",") {
28
+ if (!searchText)
29
+ return rawData;
30
+ const filteredData = [];
31
+ searchText.split(separator).forEach((txt) => {
32
+ const text = txt.trim(); // remove whitespace and do nothing if empty string
33
+ if (!text)
34
+ return;
35
+ try {
36
+ const regexp = new RegExp(text);
37
+ const filteredData_ = rawData.filter((el) => el.path.match(regexp));
38
+ filteredData.push(...filteredData_);
39
+ }
40
+ catch (e) {
41
+ if (e instanceof Error) {
42
+ console.error(e.message);
43
+ }
44
+ }
45
+ });
46
+ return filteredData.length ? filteredData : rawData.splice(0, 1);
47
+ }
48
+ static isCompatibleWithOther(functional) {
49
+ return Object.keys(this.compatibleExchangeCorrelation).includes(functional);
50
+ }
51
+ /**
52
+ * @summary Exclusive filter of raw data by all fields of the passed object
53
+ */
54
+ static filterRawDataByExchangeCorrelation(rawData, exchangeCorrelation) {
55
+ const { functional } = exchangeCorrelation;
56
+ return rawData.filter((item) => {
57
+ var _a, _b;
58
+ return this.isCompatibleWithOther(functional)
59
+ ? this.compatibleExchangeCorrelation[functional].includes(((_a = item.exchangeCorrelation) === null || _a === void 0 ? void 0 : _a.functional) || "")
60
+ : functional === ((_b = item.exchangeCorrelation) === null || _b === void 0 ? void 0 : _b.functional);
61
+ });
62
+ }
63
+ // filter unique (assuming that path is always unique)
64
+ static filterUnique(array) {
65
+ return (0, uniqBy_1.default)(array, (item) => item.path);
66
+ }
67
+ // filter unique by apps (assuming that path is always unique)
68
+ static filterUniqueByAppName(array, appName) {
69
+ return PseudopotentialMetaProperty.filterUnique(this.filterByAppName(array, appName));
70
+ }
71
+ static filterRawDataByPath(rawData, pseudoPath = "") {
72
+ const regexp = new RegExp(pseudoPath);
73
+ return rawData.filter((el) => el.path.match(regexp));
74
+ }
75
+ static filterByAppName(pseudos, appName) {
76
+ return pseudos.filter((pseudo) => pseudo.apps.includes(appName));
77
+ }
78
+ static filterByElements(pseudos, elements) {
79
+ return pseudos.filter((pseudo) => elements.includes(pseudo.element));
80
+ }
81
+ /** Apply several filters at once.
82
+ * @example
83
+ * // filter object
84
+ * {
85
+ * exchangeCorrelation: {
86
+ * approximation: "gga",
87
+ * functional: "pbe"
88
+ * },
89
+ * searchText: "gbrv",
90
+ * appName: "vasp",
91
+ * elements: ["Si", "Ne", "Fe"],
92
+ * }
93
+ */
94
+ static applyPseudoFilters(pseudos, pseudoFilter) {
95
+ let filteredPseudos = [...pseudos];
96
+ Object.entries(pseudoFilter).forEach(([fKey, fValue]) => {
97
+ if (typeof fValue === "string") {
98
+ if (fKey === "searchText") {
99
+ filteredPseudos = this.safelyFilterRawDataBySearchText(filteredPseudos, fValue);
100
+ }
101
+ else if (fKey === "appName") {
102
+ filteredPseudos = this.filterByAppName(filteredPseudos, fValue);
103
+ }
104
+ else if (fKey === "type") {
105
+ filteredPseudos = this.filterByType(filteredPseudos, fValue);
106
+ }
107
+ }
108
+ else if (typeof fValue === "object" &&
109
+ "functional" in fValue &&
110
+ "approximation" in fValue) {
111
+ filteredPseudos = this.filterRawDataByExchangeCorrelation(filteredPseudos, fValue);
112
+ }
113
+ else if (Array.isArray(fValue)) {
114
+ filteredPseudos = this.filterByElements(filteredPseudos, fValue);
115
+ }
116
+ else {
117
+ throw new Error(`Invalid filter value: ${fValue}`);
118
+ }
119
+ });
120
+ return filteredPseudos;
121
+ }
122
+ /**
123
+ * Sorts pseudos by the given pattern.
124
+ * NOTE: This is currently used to prioritize gbrv pseudopotentials over norm-conserving ones for QE.
125
+ */
126
+ static sortPseudosByPattern(pseudos, pattern = "/gbrv/") {
127
+ return pseudos.concat([]).sort((a, b) => {
128
+ return (b.path.includes(pattern) ? 1 : 0) - (a.path.includes(pattern) ? 1 : 0);
129
+ });
130
+ }
131
+ /**
132
+ * Prioritizes pseudos with 'default' and '5.2' (version) in path (VASP)
133
+ */
134
+ static sortByPathVASP(pseudos, version = "5.2") {
135
+ return pseudos.concat([]).sort((a, b) => {
136
+ if (a.path.includes("default") && a.path.includes(version)) {
137
+ return -1;
138
+ }
139
+ if (b.path.includes("default") && b.path.includes(version)) {
140
+ return 1;
141
+ }
142
+ return 0;
143
+ });
144
+ }
145
+ static filterByType(pseudos, pseudoType) {
146
+ if (pseudoType === undefined || pseudoType === "any")
147
+ return pseudos;
148
+ return pseudos.filter((pseudo) => pseudo.type.includes(pseudoType));
149
+ }
150
+ }
151
+ PseudopotentialMetaProperty.propertyName = settings_1.PropertyName.pseudopotential;
152
+ PseudopotentialMetaProperty.propertyType = settings_1.PropertyType.non_scalar;
153
+ PseudopotentialMetaProperty.compatibleExchangeCorrelation = {
154
+ hse06: ["pbe", "hse06"],
155
+ };
156
+ exports.default = PseudopotentialMetaProperty;
157
+ (0, PseudopotentialMetaPropertySchemaMixin_1.pseudopotentialMetaPropertySchemaMixin)(PseudopotentialMetaProperty.prototype);
@@ -0,0 +1,27 @@
1
+ import type { DimensionPlotSchema } from "@mat3ra/esse/dist/js/types";
2
+ import { type FormatterScope, type HighChartsConfigParams, HighChartsConfig } from "../../../charts/highcharts";
3
+ export type XDataArray = DimensionPlotSchema["xDataArray"];
4
+ export type XDataArraySimple = number[];
5
+ export type XDataArrayNested = XDataArraySimple[];
6
+ export type YDataSeries = DimensionPlotSchema["yDataSeries"];
7
+ export type TwoDimensionalHighChartConfigMixinParams = {
8
+ subtitle: string;
9
+ yAxisTitle: string;
10
+ xAxisTitle: string;
11
+ xDataArray: XDataArray;
12
+ yDataSeries: YDataSeries;
13
+ legend?: HighChartsConfigParams["legend"];
14
+ };
15
+ export declare class TwoDimensionalHighChartConfigMixin extends HighChartsConfig {
16
+ readonly xDataArray: XDataArray;
17
+ readonly yDataSeries: YDataSeries;
18
+ readonly tooltipXAxisName: string;
19
+ readonly tooltipYAxisName: string;
20
+ constructor(property: TwoDimensionalHighChartConfigMixinParams);
21
+ get series(): {
22
+ animation: boolean;
23
+ data: [number, number][];
24
+ }[];
25
+ tooltipFormatter(xDataArray?: XDataArray): (this: FormatterScope) => string;
26
+ get overrideConfig(): object;
27
+ }
@@ -0,0 +1,79 @@
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
+ exports.TwoDimensionalHighChartConfigMixin = void 0;
7
+ const zip_1 = __importDefault(require("lodash/zip"));
8
+ const highcharts_1 = require("../../../charts/highcharts");
9
+ class TwoDimensionalHighChartConfigMixin extends highcharts_1.HighChartsConfig {
10
+ constructor(property) {
11
+ super({
12
+ subtitle: property.subtitle,
13
+ yAxisTitle: property.yAxisTitle,
14
+ xAxisTitle: property.xAxisTitle,
15
+ yAxisType: "linear",
16
+ legend: property.legend || false,
17
+ });
18
+ // override upon inheritance
19
+ this.tooltipXAxisName = "";
20
+ // override upon inheritance
21
+ this.tooltipYAxisName = "";
22
+ this.xDataArray = property.xDataArray;
23
+ this.yDataSeries = property.yDataSeries;
24
+ }
25
+ get series() {
26
+ return this.yDataSeries.map((item) => {
27
+ return {
28
+ animation: false,
29
+ data: (0, zip_1.default)(this.xDataArray, item),
30
+ };
31
+ });
32
+ }
33
+ tooltipFormatter(xDataArray = []) {
34
+ const { tooltipXAxisName, tooltipYAxisName } = this;
35
+ // eslint-disable-next-line func-names
36
+ return function () {
37
+ const xValue = xDataArray[this.point.index];
38
+ return ("<b>" +
39
+ tooltipXAxisName +
40
+ "</b> " +
41
+ (Array.isArray(xValue) ? xValue.join(", ") : xValue.toFixed(4)) +
42
+ "<br><b>" +
43
+ tooltipYAxisName +
44
+ ": </b> " +
45
+ this.y.toFixed(4));
46
+ };
47
+ }
48
+ get overrideConfig() {
49
+ const { xDataArray } = this;
50
+ return {
51
+ chart: {
52
+ animation: false,
53
+ type: "spline",
54
+ zoomType: "xy",
55
+ },
56
+ plotOptions: {
57
+ spline: {
58
+ lineWidth: 2,
59
+ states: {
60
+ hover: {
61
+ lineWidth: 6,
62
+ },
63
+ },
64
+ marker: {
65
+ enabled: false,
66
+ },
67
+ },
68
+ },
69
+ tooltip: {
70
+ valueSuffix: "",
71
+ formatter: this.tooltipFormatter(xDataArray),
72
+ },
73
+ legend: {
74
+ enabled: false,
75
+ },
76
+ };
77
+ }
78
+ }
79
+ exports.TwoDimensionalHighChartConfigMixin = TwoDimensionalHighChartConfigMixin;
@@ -0,0 +1,38 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { AveragePotentialProfilePropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ import type { Options } from "highcharts";
4
+ import { type AveragePotentialProfilePropertySchemaMixin } from "../../generated/AveragePotentialProfilePropertySchemaMixin";
5
+ import Property from "../../Property";
6
+ import { PropertyName, PropertyType } from "../../settings";
7
+ import { TwoDimensionalHighChartConfigMixin } from "../include/mixins/2d_plot";
8
+ export declare class AveragePotentialProfileConfig extends TwoDimensionalHighChartConfigMixin {
9
+ readonly tooltipXAxisName: string;
10
+ readonly tooltipYAxisName: string;
11
+ get series(): {
12
+ animation: boolean;
13
+ name: string;
14
+ data: [number, number][];
15
+ }[];
16
+ get overrideConfig(): {
17
+ legend: {
18
+ layout: string;
19
+ align: string;
20
+ verticalAlign: string;
21
+ borderWidth: number;
22
+ };
23
+ };
24
+ }
25
+ type Schema = AveragePotentialProfilePropertySchema;
26
+ type Base = typeof Property<Schema> & Constructor<AveragePotentialProfilePropertySchemaMixin>;
27
+ declare const AveragePotentialProfileProperty_base: Base;
28
+ export default class AveragePotentialProfileProperty extends AveragePotentialProfileProperty_base implements Schema {
29
+ readonly subtitle: string;
30
+ readonly yAxisTitle: string;
31
+ readonly xAxisTitle: string;
32
+ readonly chartConfig: Options;
33
+ static readonly isRefined = true;
34
+ static readonly propertyName = PropertyName.average_potential_profile;
35
+ static readonly propertyType = PropertyType.non_scalar;
36
+ constructor(config: Omit<Schema, "name">);
37
+ }
38
+ export {};
@@ -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
+ exports.AveragePotentialProfileConfig = void 0;
7
+ const zip_1 = __importDefault(require("lodash/zip"));
8
+ const AveragePotentialProfilePropertySchemaMixin_1 = require("../../generated/AveragePotentialProfilePropertySchemaMixin");
9
+ const Property_1 = __importDefault(require("../../Property"));
10
+ const settings_1 = require("../../settings");
11
+ const _2d_plot_1 = require("../include/mixins/2d_plot");
12
+ const NAMES = ["planar average", "macroscopic average"];
13
+ class AveragePotentialProfileConfig extends _2d_plot_1.TwoDimensionalHighChartConfigMixin {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.tooltipXAxisName = "z coordinate";
17
+ this.tooltipYAxisName = "energy";
18
+ }
19
+ get series() {
20
+ return this.yDataSeries.map((item, index) => {
21
+ return {
22
+ animation: false,
23
+ name: NAMES[index],
24
+ data: (0, zip_1.default)(this.xDataArray, item),
25
+ };
26
+ });
27
+ }
28
+ get overrideConfig() {
29
+ return {
30
+ ...super.overrideConfig,
31
+ legend: {
32
+ layout: "horizontal",
33
+ align: "center",
34
+ verticalAlign: "bottom",
35
+ borderWidth: 0,
36
+ },
37
+ };
38
+ }
39
+ }
40
+ exports.AveragePotentialProfileConfig = AveragePotentialProfileConfig;
41
+ class AveragePotentialProfileProperty extends Property_1.default {
42
+ constructor(config) {
43
+ super({ ...config, name: AveragePotentialProfileProperty.propertyName });
44
+ this.subtitle = "Average Potential Profile";
45
+ this.yAxisTitle = `Energy (${this.yAxis.units})`;
46
+ this.xAxisTitle = `Coordinate (${this.xAxis.units})`;
47
+ this.chartConfig = new AveragePotentialProfileConfig(this).config;
48
+ }
49
+ }
50
+ AveragePotentialProfileProperty.isRefined = true;
51
+ AveragePotentialProfileProperty.propertyName = settings_1.PropertyName.average_potential_profile;
52
+ AveragePotentialProfileProperty.propertyType = settings_1.PropertyType.non_scalar;
53
+ exports.default = AveragePotentialProfileProperty;
54
+ (0, AveragePotentialProfilePropertySchemaMixin_1.averagePotentialProfilePropertySchemaMixin)(AveragePotentialProfileProperty.prototype);
@@ -0,0 +1,59 @@
1
+ import type { Constructor } from "@mat3ra/code/dist/js/utils/types";
2
+ import type { BandGapsPropertySchema } from "@mat3ra/esse/dist/js/types";
3
+ import { type BandGapsPropertySchemaMixin } from "../../generated/BandGapsPropertySchemaMixin";
4
+ import Property from "../../Property";
5
+ import { PropertyName, PropertyType } from "../../settings";
6
+ type Schema = BandGapsPropertySchema;
7
+ type Base = typeof Property<Schema> & Constructor<BandGapsPropertySchemaMixin>;
8
+ declare const BandGapsProperty_base: Base;
9
+ export default class BandGapsProperty extends BandGapsProperty_base implements Schema {
10
+ static readonly isRefined = true;
11
+ static readonly propertyName = PropertyName.band_gaps;
12
+ static readonly propertyType = PropertyType.non_scalar;
13
+ constructor(config: Omit<Schema, "name">);
14
+ toRowValues(group?: string): {
15
+ data: {
16
+ name: string;
17
+ kpointConduction?: [number, number, number];
18
+ kpointValence?: [number, number, number];
19
+ eigenvalueConduction?: number;
20
+ eigenvalueValence?: number;
21
+ spin?: number;
22
+ type?: "direct" | "indirect" | undefined;
23
+ units?: "kJ/mol" | "eV" | "J/mol" | "hartree" | "cm-1" | "Ry" | "eV/atom";
24
+ value?: number | undefined;
25
+ };
26
+ slug: string;
27
+ group: string | undefined;
28
+ name: "band_gaps";
29
+ values: {
30
+ kpointConduction?: [number, number, number];
31
+ kpointValence?: [number, number, number];
32
+ eigenvalueConduction?: number;
33
+ eigenvalueValence?: number;
34
+ spin?: number;
35
+ type: "direct" | "indirect";
36
+ units?: "kJ/mol" | "eV" | "J/mol" | "hartree" | "cm-1" | "Ry" | "eV/atom";
37
+ value: number;
38
+ }[];
39
+ eigenvalues?: {
40
+ kpoint?: [number, number, number];
41
+ weight?: number;
42
+ eigenvalues?: {
43
+ spin?: number;
44
+ energies?: unknown[];
45
+ occupations?: unknown[];
46
+ }[];
47
+ }[];
48
+ }[];
49
+ flattenProperties(): {
50
+ [x: string]: unknown;
51
+ }[];
52
+ /**
53
+ * @summary Gets specified band gap (direct/indirect) and returns it in simplified form (as pressure).
54
+ * Characteristic name will be `band_gaps:<type>`
55
+ * @param type {String}
56
+ */
57
+ private toJSONByType;
58
+ }
59
+ export {};
@@ -0,0 +1,52 @@
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 utils_1 = require("@mat3ra/code/dist/js/utils");
7
+ const BandGapsPropertySchemaMixin_1 = require("../../generated/BandGapsPropertySchemaMixin");
8
+ const Property_1 = __importDefault(require("../../Property"));
9
+ const settings_1 = require("../../settings");
10
+ class BandGapsProperty extends Property_1.default {
11
+ constructor(config) {
12
+ super({ ...config, name: BandGapsProperty.propertyName });
13
+ }
14
+ toRowValues(group) {
15
+ return [this.toJSONByType("direct", group), this.toJSONByType("indirect", group)];
16
+ }
17
+ flattenProperties() {
18
+ return this.values
19
+ .map((x) => {
20
+ return {
21
+ name: `${this.name}:${x.type}`,
22
+ value: x.value,
23
+ };
24
+ })
25
+ .map((x) => (0, utils_1.flattenObject)(x));
26
+ }
27
+ /**
28
+ * @summary Gets specified band gap (direct/indirect) and returns it in simplified form (as pressure).
29
+ * Characteristic name will be `band_gaps:<type>`
30
+ * @param type {String}
31
+ */
32
+ toJSONByType(type, group) {
33
+ const ch = this.toJSON();
34
+ const bandGapByType = (0, utils_1.deepClone)(ch);
35
+ const directData = this.values.find((x) => x.type === type);
36
+ const name = `band_gaps:${type}`;
37
+ return {
38
+ ...bandGapByType,
39
+ data: {
40
+ ...directData,
41
+ name,
42
+ },
43
+ slug: name,
44
+ group,
45
+ };
46
+ }
47
+ }
48
+ BandGapsProperty.isRefined = true;
49
+ BandGapsProperty.propertyName = settings_1.PropertyName.band_gaps;
50
+ BandGapsProperty.propertyType = settings_1.PropertyType.non_scalar;
51
+ exports.default = BandGapsProperty;
52
+ (0, BandGapsPropertySchemaMixin_1.bandGapsPropertySchemaMixin)(BandGapsProperty.prototype);