@chemistry/formula 2.7.0 → 3.0.1

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/README.md CHANGED
@@ -1,29 +1,48 @@
1
- # @chemistry/formula
2
- [![npm version](https://badge.fury.io/js/%40chemistry%2Fcrystal.svg)](https://badge.fury.io/js/%40chemistry%2Fformula)
3
- [![Build Status](https://travis-ci.com/chemistry/chem-js-lib.svg?branch=master)](https://travis-ci.org/chemistry/chem-js-lib)
4
- [![codecov](https://codecov.io/gh/chemistry/chem-js-lib/branch/master/graph/badge.svg)](https://codecov.io/gh/chemistry/chem-js-lib)
5
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
-
7
- Library for working with chemical formula
8
-
9
- ## Install
10
- ```bash
11
- npm install @chemistry/formula
12
- ```
13
-
14
- ## Include following clases:
15
- * Formula
16
-
17
- ## Getting started:
18
- ```javascript
19
- import { Formula } from "@chemistry/formula";
20
-
21
- const formula = Formula.parse('C2H5OH');
22
- console.log(formula); // { C: 2, H: 6, O:1 }
23
-
24
- const str = Formula.convertToString(formula);
25
- console.log(str); // C2H6O
26
- ```
27
-
28
- ## Commands:
29
- * Build project: `npm run build`
1
+ # @chemistry/formula
2
+
3
+ [![npm version](https://badge.fury.io/js/%40chemistry%2Fformula.svg)](https://badge.fury.io/js/%40chemistry%2Fformula)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-gren.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ Library for parsing and formatting chemical formulas.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ npm install @chemistry/formula
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ```typescript
17
+ import { Formula } from '@chemistry/formula';
18
+
19
+ // Parse a chemical formula into element counts
20
+ const formula = Formula.parse('C2H5OH');
21
+ console.log(formula); // { C: 2, H: 6, O: 1 }
22
+
23
+ // Convert element counts back to a formula string
24
+ const str = Formula.convertToString(formula);
25
+ console.log(str); // C2H6O
26
+
27
+ // Calculate molecular weight
28
+ const weight = Formula.convertToWeight(formula);
29
+ console.log(weight); // 46.069...
30
+ ```
31
+
32
+ ## API
33
+
34
+ ### `Formula.parse(formula: string): Record<string, number>`
35
+
36
+ Parses a chemical formula string and returns an object mapping element symbols to their counts.
37
+
38
+ ### `Formula.convertToString(formula: Record<string, number>): string`
39
+
40
+ Converts an element count object back to a formatted formula string (Hill system order: C first, H second, then alphabetical).
41
+
42
+ ### `Formula.convertToWeight(formula: Record<string, number>): number`
43
+
44
+ Calculates the molecular weight from an element count object using standard atomic masses.
45
+
46
+ ## License
47
+
48
+ MIT
package/dist/formula.d.ts CHANGED
@@ -1,7 +1,8 @@
1
- export interface ChemComposition {
2
- [element: string]: number;
3
- }
4
- export declare class Formula {
5
- static parse(formula: string): ChemComposition;
6
- static convertToString(formula: ChemComposition): string;
7
- }
1
+ export interface ChemComposition {
2
+ [element: string]: number;
3
+ }
4
+ export declare class Formula {
5
+ static parse(formula: string): ChemComposition;
6
+ static convertToString(formula: ChemComposition): string;
7
+ }
8
+ //# sourceMappingURL=formula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../src/formula.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC9B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAED,qBAAa,OAAO;WACJ,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe;WAmBvC,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;CAuBhE"}
package/dist/formula.js CHANGED
@@ -1,2 +1,60 @@
1
- !function(o,s){"object"==typeof exports&&"object"==typeof module?module.exports=s():"function"==typeof define&&define.amd?define("formula",[],s):"object"==typeof exports?exports.formula=s():o.formula=s()}("undefined"!=typeof self?self:this,function(){return function(o){var s={};function m(n){if(s[n])return s[n].exports;var r=s[n]={i:n,l:!1,exports:{}};return o[n].call(r.exports,r,r.exports,m),r.l=!0,r.exports}return m.m=o,m.c=s,m.d=function(o,s,n){m.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:n})},m.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},m.t=function(o,s){if(1&s&&(o=m(o)),8&s)return o;if(4&s&&"object"==typeof o&&o&&o.__esModule)return o;var n=Object.create(null);if(m.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:o}),2&s&&"string"!=typeof o)for(var r in o)m.d(n,r,function(s){return o[s]}.bind(null,r));return n},m.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return m.d(s,"a",s),s},m.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},m.p="",m(m.s=0)}([function(o,s,m){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),function(o){for(var m in o)s.hasOwnProperty(m)||(s[m]=o[m])}(m(1))},function(o,s,m){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var n=m(2).ChemElements.getAllSymbols(),r="("+n.slice(0).sort(function(o,s){return s.length-o.length}).join("|")+"){1,1}([*0-9]{0,20})",l=function(){function o(){}return o.parse=function(o){for(var s,m={},n=new RegExp(r,"g");s=n.exec(o);){var l=s[1],a=""===s[2]?1:parseFloat(s[2]);m[l]?m[l]=m[l]+a:m[l]=a}return m},o.convertToString=function(o){var s=Object.keys(o).filter(function(o){return-1!==n.indexOf(o)}).map(function(s){return{element:s,count:o[s]}});return s.sort(function(o,s){return function(o,s){if("C"===o||"H"===o||"C"===s||"H"===s){var m=["H","C"].indexOf(o),n=["H","C"].indexOf(s);return m===n?0:m>n?-1:1}if(o===s)return 0;return o<s?-1:1}(o.element,s.element)}),s.map(function(o){return o.element+(1===o.count?"":o.count)}).join("")},o}();s.Formula=l},function(o,s,m){"undefined"!=typeof self&&self,o.exports=function(o){var s={};function m(n){if(s[n])return s[n].exports;var r=s[n]={i:n,l:!1,exports:{}};return o[n].call(r.exports,r,r.exports,m),r.l=!0,r.exports}return m.m=o,m.c=s,m.d=function(o,s,n){m.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:n})},m.r=function(o){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(o,"__esModule",{value:!0})},m.t=function(o,s){if(1&s&&(o=m(o)),8&s)return o;if(4&s&&"object"==typeof o&&o&&o.__esModule)return o;var n=Object.create(null);if(m.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:o}),2&s&&"string"!=typeof o)for(var r in o)m.d(n,r,function(s){return o[s]}.bind(null,r));return n},m.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return m.d(s,"a",s),s},m.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},m.p="",m(m.s=1)}([function(o,s,m){"use strict";Object.defineProperty(s,"__esModule",{value:!0}),s.ChemElementData=[{id:0,symbol:"Q",RCow:.77,RVdW:0,maxBonds:0,mass:0,name:"Dummy",posX:1,posY:7,color:"#FFFFFF",color2:"#808080"},{id:1,symbol:"H",RCow:.37,RVdW:1.2,maxBonds:1,mass:1.00794,name:"Hydrogen",posX:1,posY:1,color:"#FFFFFF",color2:"#808080"},{id:1,symbol:"D",RCow:.37,RVdW:1.2,maxBonds:1,mass:2,name:"Diyterium",posX:1,posY:8,color:"#FFFFFF",color2:"#808080"},{id:2,symbol:"He",RCow:.32,RVdW:1.4,maxBonds:0,mass:4.002602,name:"Helium",posX:1,posY:18,color:"#D9FFFF",color2:"#849B9B"},{id:3,symbol:"Li",RCow:1.34,RVdW:2.2,maxBonds:1,mass:6.941,name:"Lithium",posX:2,posY:1,color:"#CC80FF",color2:"#C87EFA"},{id:4,symbol:"Be",RCow:.9,RVdW:1.9,maxBonds:2,mass:9.012182,name:"Beryllium",posX:2,posY:2,color:"#C2FF00",color2:"#82AB00"},{id:5,symbol:"B",RCow:.82,RVdW:1.8,maxBonds:3,mass:10.811,name:"Boron",posX:2,posY:13,color:"#FFB5B5",color2:"#F090A0"},{id:6,symbol:"C",RCow:.77,RVdW:1.7,maxBonds:4,mass:12.0107,name:"Carbon",posX:2,posY:14,color:"#909090",color2:"#000000"},{id:7,symbol:"N",RCow:.75,RVdW:1.6,maxBonds:4,mass:14.0067,name:"Nitrogen",posX:2,posY:15,color:"#3050F8",color2:"#304FF7"},{id:8,symbol:"O",RCow:.73,RVdW:1.55,maxBonds:2,mass:15.9994,name:"Oxygen",posX:2,posY:16,color:"#FF0D0D",color2:"#FF0D0D"},{id:9,symbol:"F",RCow:.71,RVdW:1.5,maxBonds:1,mass:18.9984032,name:"Fluorine",posX:2,posY:17,color:"#90E050",color2:"#228B22"},{id:10,symbol:"Ne",RCow:.69,RVdW:1.54,maxBonds:0,mass:20.1797,name:"Neon",posX:2,posY:18,color:"#B3E3F5",color2:"#7B9CA8"},{id:11,symbol:"Na",RCow:1.54,RVdW:2.4,maxBonds:1,mass:22.98977,name:"Sodium",posX:3,posY:1,color:"#AB5CF2",color2:"#AB5CF2"},{id:12,symbol:"Mg",RCow:1.3,RVdW:2.2,maxBonds:2,mass:24.305,name:"Magnesium",posX:3,posY:2,color:"#8AFF00",color2:"#61B400"},{id:13,symbol:"Al",RCow:1.18,RVdW:2.1,maxBonds:6,mass:26.981538,name:"Aluminium",posX:3,posY:13,color:"#BFA6A6",color2:"#A79191"},{id:14,symbol:"Si",RCow:1.11,RVdW:2.1,maxBonds:6,mass:28.0855,name:"Silicon",posX:3,posY:14,color:"#F0C8A0",color2:"#B09276"},{id:15,symbol:"P",RCow:1.06,RVdW:1.95,maxBonds:5,mass:30.973761,name:"Phosphorus",posX:3,posY:15,color:"#FF8000",color2:"#FF8000"},{id:16,symbol:"S",RCow:1.02,RVdW:1.8,maxBonds:6,mass:32.065,name:"Sulfur",posX:3,posY:16,color:"#FFFF30",color2:"#FFC832"},{id:17,symbol:"Cl",RCow:.99,RVdW:1.8,maxBonds:1,mass:35.453,name:"Chlorine",posX:3,posY:17,color:"#1FF01F",color2:"#1DC51D"},{id:18,symbol:"Ar",RCow:.97,RVdW:1.88,maxBonds:0,mass:39.948,name:"Argon",posX:3,posY:18,color:"#80D1E3",color2:"#63A2B0"},{id:19,symbol:"K",RCow:1.96,RVdW:2.8,maxBonds:1,mass:39.0983,name:"Potassium",posX:4,posY:1,color:"#8F40D4",color2:"#8F40D4"},{id:20,symbol:"Ca",RCow:1.74,RVdW:2.4,maxBonds:2,mass:40.078,name:"Calcium",posX:4,posY:2,color:"#3DFF00",color2:"#2FC300"},{id:21,symbol:"Sc",RCow:1.44,RVdW:2.3,maxBonds:6,mass:44.95591,name:"Scandium",posX:4,posY:3,color:"#E6E6E6",color2:"#969696"},{id:22,symbol:"Ti",RCow:1.36,RVdW:2.15,maxBonds:6,mass:47.867,name:"Titanium",posX:4,posY:4,color:"#BFC2C7",color2:"#94969A"},{id:23,symbol:"V",RCow:1.25,RVdW:2.05,maxBonds:6,mass:50.9415,name:"Vanadium",posX:4,posY:5,color:"#A6A6AB",color2:"#96969A"},{id:24,symbol:"Cr",RCow:1.27,RVdW:2.05,maxBonds:6,mass:51.9961,name:"Chromium",posX:4,posY:6,color:"#8A99C7",color2:"#8796C3"},{id:25,symbol:"Mn",RCow:1.39,RVdW:2.05,maxBonds:8,mass:54.938049,name:"Manganese",posX:4,posY:7,color:"#9C7AC7",color2:"#9C7AC7"},{id:26,symbol:"Fe",RCow:1.25,RVdW:2.05,maxBonds:6,mass:55.845,name:"Iron",posX:4,posY:8,color:"#E06633",color2:"#E06633"},{id:27,symbol:"Co",RCow:1.26,RVdW:2,maxBonds:6,mass:58.9332,name:"Cobalt",posX:4,posY:9,color:"#F090A0",color2:"#DB8293"},{id:28,symbol:"Ni",RCow:1.21,RVdW:2,maxBonds:6,mass:58.6934,name:"Nickel",posX:4,posY:10,color:"#50D050",color2:"#45B645"},{id:29,symbol:"Cu",RCow:1.38,RVdW:2,maxBonds:6,mass:63.546,name:"Copper",posX:4,posY:11,color:"#C88033",color2:"#C78033"},{id:30,symbol:"Zn",RCow:1.31,RVdW:2.1,maxBonds:6,mass:65.409,name:"Zinc",posX:4,posY:12,color:"#7D80B0",color2:"#7D80B0"},{id:31,symbol:"Ga",RCow:1.26,RVdW:2.1,maxBonds:3,mass:69.723,name:"Gallium",posX:4,posY:13,color:"#C28F8F",color2:"#BD8C8C"},{id:32,symbol:"Ge",RCow:1.22,RVdW:2.1,maxBonds:4,mass:72.64,name:"Germanium",posX:4,posY:14,color:"#668F8F",color2:"#668F8F"},{id:33,symbol:"As",RCow:1.19,RVdW:2.05,maxBonds:3,mass:74.9216,name:"Arsenic",posX:4,posY:15,color:"#BD80E3",color2:"#BD80E3"},{id:34,symbol:"Se",RCow:1.16,RVdW:1.9,maxBonds:2,mass:78.96,name:"Selenium",posX:4,posY:16,color:"#FFA100",color2:"#E28F00"},{id:35,symbol:"Br",RCow:1.14,RVdW:1.9,maxBonds:1,mass:79.904,name:"Bromine",posX:4,posY:17,color:"#A62929",color2:"#A62929"},{id:36,symbol:"Kr",RCow:1.1,RVdW:2.02,maxBonds:0,mass:83.798,name:"Krypton",posX:4,posY:18,color:"#5CB8D1",color2:"#53A6BC"},{id:37,symbol:"Rb",RCow:2.11,RVdW:2.9,maxBonds:1,mass:85.4678,name:"Rubidium",posX:5,posY:1,color:"#702EB0",color2:"#702EB0"},{id:38,symbol:"Sr",RCow:1.92,RVdW:2.55,maxBonds:2,mass:87.62,name:"Strontium",posX:5,posY:2,color:"#00FF00",color2:"#00D000"},{id:39,symbol:"Y",RCow:1.62,RVdW:2.4,maxBonds:6,mass:88.90585,name:"Yttrium",posX:5,posY:3,color:"#94FFFF",color2:"#5FA4A4"},{id:40,symbol:"Zr",RCow:1.48,RVdW:2.3,maxBonds:6,mass:91.224,name:"Zirconium",posX:5,posY:4,color:"#94E0E0",color2:"#6BA2A2"},{id:41,symbol:"Nb",RCow:1.37,RVdW:2.15,maxBonds:6,mass:92.90638,name:"Niobium",posX:5,posY:5,color:"#73C2C9",color2:"#61A4A9"},{id:42,symbol:"Mo",RCow:1.45,RVdW:2.1,maxBonds:6,mass:95.94,name:"Molybdenum",posX:5,posY:6,color:"#54B5B5",color2:"#4EA9A9"},{id:43,symbol:"Tc",RCow:1.56,RVdW:2.05,maxBonds:6,mass:98,name:"Technetium",posX:5,posY:7,color:"#3B9E9E",color2:"#4EA9A9"},{id:44,symbol:"Ru",RCow:1.26,RVdW:2.05,maxBonds:6,mass:101.07,name:"Ruthenium",posX:5,posY:8,color:"#248F8F",color2:"#248F8F"},{id:45,symbol:"Rh",RCow:1.35,RVdW:2,maxBonds:6,mass:102.9055,name:"Rhodium",posX:5,posY:9,color:"#0A7D8C",color2:"#0A7D8C"},{id:46,symbol:"Pd",RCow:1.31,RVdW:2.05,maxBonds:6,mass:106.42,name:"Palladium",posX:5,posY:10,color:"#006985",color2:"#006985"},{id:47,symbol:"Ag",RCow:1.53,RVdW:2.1,maxBonds:6,mass:107.8682,name:"Silver",posX:5,posY:11,color:"#C0C0C0",color2:"#969696"},{id:48,symbol:"Cd",RCow:1.48,RVdW:2.2,maxBonds:6,mass:112.411,name:"Cadmium",posX:5,posY:12,color:"#FFD98F",color2:"#AE9462"},{id:49,symbol:"In",RCow:1.44,RVdW:2.2,maxBonds:3,mass:114.818,name:"Indium",posX:5,posY:13,color:"#A67573",color2:"#A67573"},{id:50,symbol:"Sn",RCow:1.41,RVdW:2.25,maxBonds:4,mass:118.71,name:"Tin",posX:5,posY:14,color:"#668080",color2:"#668080"},{id:51,symbol:"Sb",RCow:1.38,RVdW:2.2,maxBonds:3,mass:121.76,name:"Antimony",posX:5,posY:15,color:"#9E63B5",color2:"#9E63B5"},{id:52,symbol:"Te",RCow:1.35,RVdW:2.1,maxBonds:2,mass:127.6,name:"Tellurium",posX:5,posY:16,color:"#D47A00",color2:"#D47A00"},{id:53,symbol:"I",RCow:1.33,RVdW:2.1,maxBonds:1,mass:126.90447,name:"Iodine",posX:5,posY:17,color:"#940094",color2:"#940094"},{id:54,symbol:"Xe",RCow:1.3,RVdW:2.16,maxBonds:0,mass:131.293,name:"Xenon",posX:5,posY:18,color:"#429EB0",color2:"#429EB0"},{id:55,symbol:"Cs",RCow:2.25,RVdW:3,maxBonds:1,mass:132.90545,name:"Cesium",posX:6,posY:1,color:"#57178F",color2:"#57178F"},{id:56,symbol:"Ba",RCow:1.98,RVdW:2.7,maxBonds:2,mass:137.327,name:"Barium",posX:6,posY:2,color:"#00C900",color2:"#00C900"},{id:57,symbol:"La",RCow:1.69,RVdW:2.5,maxBonds:12,mass:138.9055,name:"Lanthanum",posX:9,posY:3,color:"#70D4FF",color2:"#57A4C5"},{id:58,symbol:"Ce",RCow:1.6,RVdW:2.48,maxBonds:6,mass:140.116,name:"Cerium",posX:9,posY:4,color:"#FFFFC7",color2:"#989877"},{id:59,symbol:"Pr",RCow:1.6,RVdW:2.47,maxBonds:6,mass:140.90765,name:"Praseodymium",posX:9,posY:5,color:"#D9FFC7",color2:"#869D7B"},{id:60,symbol:"Nd",RCow:1.6,RVdW:2.45,maxBonds:6,mass:144.24,name:"Neodymium",posX:9,posY:6,color:"#C7FFC7",color2:"#7DA07D"},{id:61,symbol:"Pm",RCow:1.6,RVdW:2.43,maxBonds:6,mass:145,name:"Promethium",posX:9,posY:7,color:"#A3FFC7",color2:"#69A581"},{id:62,symbol:"Sm",RCow:1.6,RVdW:2.42,maxBonds:6,mass:150.36,name:"Samarium",posX:9,posY:8,color:"#8FFFC7",color2:"#5EA883"},{id:63,symbol:"Eu",RCow:1.6,RVdW:2.4,maxBonds:6,mass:151.964,name:"Europium",posX:9,posY:9,color:"#61FFC7",color2:"#43B089"},{id:64,symbol:"Gd",RCow:1.6,RVdW:2.38,maxBonds:6,mass:157.25,name:"Gadolinium",posX:9,posY:10,color:"#45FFC7",color2:"#31B48D"},{id:65,symbol:"Tb",RCow:1.6,RVdW:2.37,maxBonds:6,mass:158.92534,name:"Terbium",posX:9,posY:11,color:"#30FFC7",color2:"#23B890"},{id:66,symbol:"Dy",RCow:1.6,RVdW:2.35,maxBonds:6,mass:162.5,name:"Dysprosium",posX:9,posY:12,color:"#1FFFC7",color2:"#17BB92"},{id:67,symbol:"Ho",RCow:1.6,RVdW:2.33,maxBonds:6,mass:164.93032,name:"Holmium",posX:9,posY:13,color:"#00FF9C",color2:"#00C578"},{id:68,symbol:"Er",RCow:1.6,RVdW:2.32,maxBonds:6,mass:167.259,name:"Erbium",posX:9,posY:14,color:"#00E675",color2:"#00C765"},{id:69,symbol:"Tm",RCow:1.6,RVdW:2.3,maxBonds:6,mass:168.93421,name:"Thulium",posX:9,posY:15,color:"#00D452",color2:"#00C94E"},{id:70,symbol:"Yb",RCow:1.6,RVdW:2.28,maxBonds:6,mass:173.04,name:"Ytterbium",posX:9,posY:16,color:"#00BF38",color2:"#00BF38"},{id:71,symbol:"Lu",RCow:1.6,RVdW:2.27,maxBonds:6,mass:174.967,name:"Lutetium",posX:9,posY:17,color:"#00AB24",color2:"#00AB24"},{id:72,symbol:"Hf",RCow:1.5,RVdW:2.25,maxBonds:6,mass:178.49,name:"Hafnium",posX:6,posY:4,color:"#4DC2FF",color2:"#42A8DC"},{id:73,symbol:"Ta",RCow:1.38,RVdW:2.2,maxBonds:6,mass:180.9479,name:"Tantalum",posX:6,posY:5,color:"#4DA6FF",color2:"#4BA2F9"},{id:74,symbol:"W",RCow:1.46,RVdW:2.1,maxBonds:6,mass:183.84,name:"Tungsten",posX:6,posY:6,color:"#2194D6",color2:"#2194D6"},{id:75,symbol:"Re",RCow:1.59,RVdW:2.05,maxBonds:6,mass:186.207,name:"Rhenium",posX:6,posY:7,color:"#267DAB",color2:"#267DAB"},{id:76,symbol:"Os",RCow:1.28,RVdW:2,maxBonds:6,mass:190.23,name:"Osmium",posX:6,posY:8,color:"#266696",color2:"#266696"},{id:77,symbol:"Ir",RCow:1.37,RVdW:2,maxBonds:6,mass:192.217,name:"Iridium",posX:6,posY:9,color:"#175487",color2:"#175487"},{id:78,symbol:"Pt",RCow:1.28,RVdW:2.05,maxBonds:6,mass:195.078,name:"Platinum",posX:6,posY:10,color:"#D0D0E0",color2:"#9595A0"},{id:79,symbol:"Au",RCow:1.44,RVdW:2.1,maxBonds:6,mass:196.96655,name:"Gold",posX:6,posY:11,color:"#FFD123",color2:"#B9981A"},{id:80,symbol:"Hg",RCow:1.49,RVdW:2.05,maxBonds:6,mass:200.59,name:"Mercury",posX:6,posY:12,color:"#B8B8D0",color2:"#9595A9"},{id:81,symbol:"Tl",RCow:1.48,RVdW:2.2,maxBonds:3,mass:204.3833,name:"Thallium",posX:6,posY:13,color:"#A6544D",color2:"#A6544D"},{id:82,symbol:"Pb",RCow:1.47,RVdW:2.3,maxBonds:4,mass:207.2,name:"Lead",posX:6,posY:14,color:"#575961",color2:"#575961"},{id:83,symbol:"Bi",RCow:1.46,RVdW:2.3,maxBonds:3,mass:208.98038,name:"Bismuth",posX:6,posY:15,color:"#9E4FB5",color2:"#9E4FB5"},{id:84,symbol:"Po",RCow:1.6,RVdW:2,maxBonds:2,mass:209,name:"Polonium",posX:6,posY:16,color:"#AB5C00",color2:"#AB5C00"},{id:85,symbol:"At",RCow:1.6,RVdW:2,maxBonds:1,mass:210,name:"Astatine",posX:6,posY:17,color:"#754F45",color2:"#754F45"},{id:86,symbol:"Rn",RCow:1.45,RVdW:2,maxBonds:0,mass:222,name:"Radon",posX:6,posY:18,color:"#428296",color2:"#428296"},{id:87,symbol:"Fr",RCow:1.6,RVdW:2,maxBonds:1,mass:223,name:"Francium",posX:7,posY:1,color:"#420066",color2:"#420066"},{id:88,symbol:"Ra",RCow:1.6,RVdW:2,maxBonds:2,mass:226,name:"Radium",posX:7,posY:2,color:"#007D00",color2:"#007D00"},{id:89,symbol:"Ac",RCow:1.6,RVdW:2,maxBonds:6,mass:227,name:"Actinium",posX:10,posY:3,color:"#70ABFA",color2:"#669CE4"},{id:90,symbol:"Th",RCow:1.6,RVdW:2.4,maxBonds:6,mass:232.0381,name:"Thorium",posX:10,posY:4,color:"#00BAFF",color2:"#00B8FC"},{id:91,symbol:"Pa",RCow:1.6,RVdW:2,maxBonds:6,mass:231.03588,name:"Protactinium",posX:10,posY:5,color:"#00A1FF",color2:"#00A1FF"},{id:92,symbol:"U",RCow:1.6,RVdW:2.3,maxBonds:6,mass:238.02891,name:"Uranium",posX:10,posY:6,color:"#008FFF",color2:"#008FFF"},{id:93,symbol:"Np",RCow:1.6,RVdW:2,maxBonds:6,mass:237,name:"Neptunium",posX:10,posY:7,color:"#0080FF",color2:"#0080FF"},{id:94,symbol:"Pu",RCow:1.6,RVdW:2,maxBonds:6,mass:244,name:"Plutonium",posX:10,posY:8,color:"#006BFF",color2:"#006BFF"},{id:95,symbol:"Am",RCow:1.6,RVdW:2,maxBonds:6,mass:243,name:"Americium",posX:10,posY:9,color:"#545CF2",color2:"#545CF2"},{id:96,symbol:"Cm",RCow:1.6,RVdW:2,maxBonds:6,mass:247,name:"Curium",posX:10,posY:10,color:"#785CE3",color2:"#785CE3"},{id:97,symbol:"Bk",RCow:1.6,RVdW:2,maxBonds:6,mass:247,name:"Berkelium",posX:10,posY:11,color:"#8A4FE3",color2:"#8A4FE3"},{id:98,symbol:"Cf",RCow:1.6,RVdW:2,maxBonds:6,mass:251,name:"Californium",posX:10,posY:12,color:"#A136D4",color2:"#A136D4"},{id:99,symbol:"Es",RCow:1.6,RVdW:2,maxBonds:6,mass:252,name:"Einsteinium",posX:10,posY:13,color:"#B31FD4",color2:"#B31FD4"},{id:100,symbol:"Fm",RCow:1.6,RVdW:2,maxBonds:6,mass:257,name:"Fermium",posX:10,posY:14,color:"#B31FBA",color2:"#B31FBA"},{id:101,symbol:"Md",RCow:1.6,RVdW:2,maxBonds:6,mass:258,name:"Mendelevium",posX:10,posY:15,color:"#B30DA6",color2:"#B30DA6"},{id:102,symbol:"No",RCow:1.6,RVdW:2,maxBonds:6,mass:259,name:"Nobelium",posX:10,posY:16,color:"#BD0D87",color2:"#BD0D87"},{id:103,symbol:"Lr",RCow:1.6,RVdW:2,maxBonds:6,mass:262,name:"Lawrencium",posX:10,posY:17,color:"#C70066",color2:"#C70066"},{id:104,symbol:"Rf",RCow:1.6,RVdW:2,maxBonds:6,mass:261,name:"Rutherfordium",posX:7,posY:4,color:"#CC0059",color2:"#42A8DC"},{id:105,symbol:"Db",RCow:1.6,RVdW:2,maxBonds:6,mass:262,name:"Dubnium",posX:7,posY:5,color:"#D1004F",color2:"#4BA2F9"},{id:106,symbol:"Sg",RCow:1.6,RVdW:2,maxBonds:6,mass:266,name:"Seaborgium",posX:7,posY:6,color:"#D90045",color2:"#2194D6"},{id:107,symbol:"Bh",RCow:1.6,RVdW:2,maxBonds:6,mass:264,name:"Bohrium",posX:7,posY:7,color:"#E00038",color2:"#267DAB"},{id:108,symbol:"Hs",RCow:1.6,RVdW:2,maxBonds:6,mass:277,name:"Hassium",posX:7,posY:8,color:"#E6002E",color2:"#266696"},{id:109,symbol:"Mt",RCow:1.6,RVdW:2,maxBonds:6,mass:268,name:"Meitnerium",posX:7,posY:9,color:"#EB0026",color2:"#175487"},{id:110,symbol:"Ds",RCow:1.6,RVdW:2,maxBonds:6,mass:281,name:"Darmstadtium",posX:7,posY:10,color:"#FF1493",color2:"#9595A0"},{id:111,symbol:"Rg",RCow:1.6,RVdW:2,maxBonds:6,mass:272,name:"Roentgenium",posX:7,posY:11,color:"#FF1494",color2:"#B9981A"},{id:112,symbol:"Cn",RCow:1.6,RVdW:2,maxBonds:6,mass:277,name:"Copernicium",posX:7,posY:12,color:"#FF1495",color2:"#9595A9"}]},function(o,s,m){"use strict";function n(o){for(var m in o)s.hasOwnProperty(m)||(s[m]=o[m])}Object.defineProperty(s,"__esModule",{value:!0}),n(m(2)),n(m(0))},function(o,s,m){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var n=m(0),r=function(){function o(){}return o.getById=function(o){for(var s=0,m=n.ChemElementData;s<m.length;s++){var r=m[s];if(r.id===o)return r}return null},o.getBySymbol=function(o){for(var s=(o||"").replace(/[^a-z]/gim,"").toLowerCase(),m=s.charAt(0).toUpperCase()+s.slice(1),r=0,l=n.ChemElementData;r<l.length;r++){var a=l[r];if(a.symbol===m)return a}return null},o.getAll=function(){return n.ChemElementData.filter(function(o){return"Q"!==o.symbol&&"D"!==o.symbol})},o.getAllSymbols=function(){return o.getAll().map(function(o){return o.symbol})},o}();s.ChemElements=r}])}])});
1
+ import { ChemElements } from '@chemistry/elements';
2
+ const ELEMENTS = ChemElements.getAllSymbols();
3
+ const ELEMENTS_LIST = ELEMENTS.slice(0)
4
+ .sort((a, b) => b.length - a.length)
5
+ .join('|');
6
+ const FORMULA_QUERY_REGEX_STR = `(${ELEMENTS_LIST}){1,1}([*0-9]{0,20})`;
7
+ export class Formula {
8
+ static parse(formula) {
9
+ let found;
10
+ const formulaObj = {};
11
+ const FORMULA_QUERY_REGEX = new RegExp(FORMULA_QUERY_REGEX_STR, 'g');
12
+ while ((found = FORMULA_QUERY_REGEX.exec(formula))) {
13
+ const element = found[1];
14
+ const count = found[2] === '' ? 1 : parseFloat(found[2]);
15
+ if (formulaObj[element]) {
16
+ formulaObj[element] = formulaObj[element] + count;
17
+ }
18
+ else {
19
+ formulaObj[element] = count;
20
+ }
21
+ }
22
+ return formulaObj;
23
+ }
24
+ static convertToString(formula) {
25
+ const formulaDataArray = Object.keys(formula)
26
+ .filter((key) => {
27
+ return ELEMENTS.includes(key);
28
+ })
29
+ .map((key) => {
30
+ return {
31
+ element: key,
32
+ count: formula[key],
33
+ };
34
+ });
35
+ // sorted formula
36
+ formulaDataArray.sort((a, b) => {
37
+ return elementCompare(a.element, b.element);
38
+ });
39
+ return formulaDataArray
40
+ .map((item) => {
41
+ return item.element + (item.count === 1 ? '' : item.count);
42
+ })
43
+ .join('');
44
+ }
45
+ }
46
+ function elementCompare(a, b) {
47
+ if (a === 'C' || a === 'H' || b === 'C' || b === 'H') {
48
+ const a1 = ['H', 'C'].indexOf(a); // C => 2, H=> 1, ? =>-1
49
+ const b1 = ['H', 'C'].indexOf(b); // C => 2, H=> 1, ? =>-1
50
+ if (a1 === b1) {
51
+ return 0;
52
+ }
53
+ return a1 > b1 ? -1 : 1;
54
+ }
55
+ if (a === b) {
56
+ return 0;
57
+ }
58
+ return a < b ? -1 : 1;
59
+ }
2
60
  //# sourceMappingURL=formula.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://formula/webpack/universalModuleDefinition","webpack://formula/webpack/bootstrap","webpack://formula/./src/index.ts","webpack://formula/./src/formula.ts","webpack://formula/../elements/dist/chem-elements.js"],"names":["root","factory","exports","module","define","amd","self","this","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__export","ELEMENTS","ChemElements","getAllSymbols","FORMULA_QUERY_REGEX_STR","slice","sort","a","b","length","join","Formula","parse","formula","found","formulaObj","FORMULA_QUERY_REGEX","RegExp","exec","element","count","parseFloat","convertToString","formulaDataArray","keys","filter","indexOf","map","a1","b1","elementCompare","item","default","ChemElementData","id","symbol","RCow","RVdW","maxBonds","mass","posX","posY","color","color2","getById","getBySymbol","replace","toLowerCase","charAt","toUpperCase","getAll"],"mappings":"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","file":"formula.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"formula\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"formula\"] = factory();\n\telse\n\t\troot[\"formula\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","export * from \"./formula\";\r\n","import { ChemElements } from \"@chemistry/elements\";\r\n\r\nconst ELEMENTS: string[] = ChemElements.getAllSymbols();\r\nconst ELEMENTS_LIST = ELEMENTS.slice(0).sort((a, b) => b.length - a.length).join(\"|\");\r\nconst FORMULA_QUERY_REGEX_STR = `(${ELEMENTS_LIST}){1,1}([*0-9]{0,20})`;\r\n\r\nexport interface ChemComposition {\r\n [element: string]: number;\r\n}\r\n\r\nexport class Formula {\r\n\r\n public static parse(formula: string): ChemComposition {\r\n let found;\r\n const formulaObj: ChemComposition = {};\r\n const FORMULA_QUERY_REGEX = new RegExp(FORMULA_QUERY_REGEX_STR, \"g\");\r\n\r\n // tslint:disable-next-line\r\n while ((found = FORMULA_QUERY_REGEX.exec(formula))) {\r\n const element = found[1];\r\n const count = (found[2] === \"\") ? 1 : parseFloat(found[2]);\r\n\r\n if (formulaObj[element]) {\r\n formulaObj[element] = formulaObj[element] + count;\r\n } else {\r\n formulaObj[element] = count;\r\n }\r\n }\r\n\r\n return formulaObj;\r\n }\r\n\r\n public static convertToString(formula: ChemComposition): string {\r\n const formulaDataArray = Object.keys(formula)\r\n .filter((key) => {\r\n return ELEMENTS.indexOf(key) !== -1;\r\n })\r\n .map((key) => {\r\n return {\r\n element: key,\r\n count: formula[key],\r\n };\r\n });\r\n\r\n // sorted formula\r\n formulaDataArray.sort((a, b) => {\r\n return elementCompare(a.element, b.element);\r\n });\r\n\r\n return formulaDataArray.map((item) => {\r\n return item.element + ((item.count === 1) ? \"\" : item.count);\r\n }).join(\"\");\r\n }\r\n}\r\n\r\nfunction elementCompare(a: string, b: string): number {\r\n if (a === \"C\" || a === \"H\" || b === \"C\" || b === \"H\") {\r\n const a1 = [\"H\", \"C\"].indexOf(a); // C => 2, H=> 1, ? =>-1\r\n const b1 = [\"H\", \"C\"].indexOf(b); // C => 2, H=> 1, ? =>-1\r\n\r\n if (a1 === b1) {\r\n return 0;\r\n }\r\n return (a1 > b1) ? -1 : 1;\r\n }\r\n\r\n if (a === b) {\r\n return 0;\r\n }\r\n return (a < b) ? -1 : 1;\r\n}\r\n","!function(o,s){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=s():\"function\"==typeof define&&define.amd?define(\"chem-elements\",[],s):\"object\"==typeof exports?exports[\"chem-elements\"]=s():o[\"chem-elements\"]=s()}(\"undefined\"!=typeof self?self:this,function(){return function(o){var s={};function m(l){if(s[l])return s[l].exports;var a=s[l]={i:l,l:!1,exports:{}};return o[l].call(a.exports,a,a.exports,m),a.l=!0,a.exports}return m.m=o,m.c=s,m.d=function(o,s,l){m.o(o,s)||Object.defineProperty(o,s,{enumerable:!0,get:l})},m.r=function(o){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(o,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(o,\"__esModule\",{value:!0})},m.t=function(o,s){if(1&s&&(o=m(o)),8&s)return o;if(4&s&&\"object\"==typeof o&&o&&o.__esModule)return o;var l=Object.create(null);if(m.r(l),Object.defineProperty(l,\"default\",{enumerable:!0,value:o}),2&s&&\"string\"!=typeof o)for(var a in o)m.d(l,a,function(s){return o[s]}.bind(null,a));return l},m.n=function(o){var s=o&&o.__esModule?function(){return o.default}:function(){return o};return m.d(s,\"a\",s),s},m.o=function(o,s){return Object.prototype.hasOwnProperty.call(o,s)},m.p=\"\",m(m.s=1)}([function(o,s,m){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0}),s.ChemElementData=[{id:0,symbol:\"Q\",RCow:.77,RVdW:0,maxBonds:0,mass:0,name:\"Dummy\",posX:1,posY:7,color:\"#FFFFFF\",color2:\"#808080\"},{id:1,symbol:\"H\",RCow:.37,RVdW:1.2,maxBonds:1,mass:1.00794,name:\"Hydrogen\",posX:1,posY:1,color:\"#FFFFFF\",color2:\"#808080\"},{id:1,symbol:\"D\",RCow:.37,RVdW:1.2,maxBonds:1,mass:2,name:\"Diyterium\",posX:1,posY:8,color:\"#FFFFFF\",color2:\"#808080\"},{id:2,symbol:\"He\",RCow:.32,RVdW:1.4,maxBonds:0,mass:4.002602,name:\"Helium\",posX:1,posY:18,color:\"#D9FFFF\",color2:\"#849B9B\"},{id:3,symbol:\"Li\",RCow:1.34,RVdW:2.2,maxBonds:1,mass:6.941,name:\"Lithium\",posX:2,posY:1,color:\"#CC80FF\",color2:\"#C87EFA\"},{id:4,symbol:\"Be\",RCow:.9,RVdW:1.9,maxBonds:2,mass:9.012182,name:\"Beryllium\",posX:2,posY:2,color:\"#C2FF00\",color2:\"#82AB00\"},{id:5,symbol:\"B\",RCow:.82,RVdW:1.8,maxBonds:3,mass:10.811,name:\"Boron\",posX:2,posY:13,color:\"#FFB5B5\",color2:\"#F090A0\"},{id:6,symbol:\"C\",RCow:.77,RVdW:1.7,maxBonds:4,mass:12.0107,name:\"Carbon\",posX:2,posY:14,color:\"#909090\",color2:\"#000000\"},{id:7,symbol:\"N\",RCow:.75,RVdW:1.6,maxBonds:4,mass:14.0067,name:\"Nitrogen\",posX:2,posY:15,color:\"#3050F8\",color2:\"#304FF7\"},{id:8,symbol:\"O\",RCow:.73,RVdW:1.55,maxBonds:2,mass:15.9994,name:\"Oxygen\",posX:2,posY:16,color:\"#FF0D0D\",color2:\"#FF0D0D\"},{id:9,symbol:\"F\",RCow:.71,RVdW:1.5,maxBonds:1,mass:18.9984032,name:\"Fluorine\",posX:2,posY:17,color:\"#90E050\",color2:\"#228B22\"},{id:10,symbol:\"Ne\",RCow:.69,RVdW:1.54,maxBonds:0,mass:20.1797,name:\"Neon\",posX:2,posY:18,color:\"#B3E3F5\",color2:\"#7B9CA8\"},{id:11,symbol:\"Na\",RCow:1.54,RVdW:2.4,maxBonds:1,mass:22.98977,name:\"Sodium\",posX:3,posY:1,color:\"#AB5CF2\",color2:\"#AB5CF2\"},{id:12,symbol:\"Mg\",RCow:1.3,RVdW:2.2,maxBonds:2,mass:24.305,name:\"Magnesium\",posX:3,posY:2,color:\"#8AFF00\",color2:\"#61B400\"},{id:13,symbol:\"Al\",RCow:1.18,RVdW:2.1,maxBonds:6,mass:26.981538,name:\"Aluminium\",posX:3,posY:13,color:\"#BFA6A6\",color2:\"#A79191\"},{id:14,symbol:\"Si\",RCow:1.11,RVdW:2.1,maxBonds:6,mass:28.0855,name:\"Silicon\",posX:3,posY:14,color:\"#F0C8A0\",color2:\"#B09276\"},{id:15,symbol:\"P\",RCow:1.06,RVdW:1.95,maxBonds:5,mass:30.973761,name:\"Phosphorus\",posX:3,posY:15,color:\"#FF8000\",color2:\"#FF8000\"},{id:16,symbol:\"S\",RCow:1.02,RVdW:1.8,maxBonds:6,mass:32.065,name:\"Sulfur\",posX:3,posY:16,color:\"#FFFF30\",color2:\"#FFC832\"},{id:17,symbol:\"Cl\",RCow:.99,RVdW:1.8,maxBonds:1,mass:35.453,name:\"Chlorine\",posX:3,posY:17,color:\"#1FF01F\",color2:\"#1DC51D\"},{id:18,symbol:\"Ar\",RCow:.97,RVdW:1.88,maxBonds:0,mass:39.948,name:\"Argon\",posX:3,posY:18,color:\"#80D1E3\",color2:\"#63A2B0\"},{id:19,symbol:\"K\",RCow:1.96,RVdW:2.8,maxBonds:1,mass:39.0983,name:\"Potassium\",posX:4,posY:1,color:\"#8F40D4\",color2:\"#8F40D4\"},{id:20,symbol:\"Ca\",RCow:1.74,RVdW:2.4,maxBonds:2,mass:40.078,name:\"Calcium\",posX:4,posY:2,color:\"#3DFF00\",color2:\"#2FC300\"},{id:21,symbol:\"Sc\",RCow:1.44,RVdW:2.3,maxBonds:6,mass:44.95591,name:\"Scandium\",posX:4,posY:3,color:\"#E6E6E6\",color2:\"#969696\"},{id:22,symbol:\"Ti\",RCow:1.36,RVdW:2.15,maxBonds:6,mass:47.867,name:\"Titanium\",posX:4,posY:4,color:\"#BFC2C7\",color2:\"#94969A\"},{id:23,symbol:\"V\",RCow:1.25,RVdW:2.05,maxBonds:6,mass:50.9415,name:\"Vanadium\",posX:4,posY:5,color:\"#A6A6AB\",color2:\"#96969A\"},{id:24,symbol:\"Cr\",RCow:1.27,RVdW:2.05,maxBonds:6,mass:51.9961,name:\"Chromium\",posX:4,posY:6,color:\"#8A99C7\",color2:\"#8796C3\"},{id:25,symbol:\"Mn\",RCow:1.39,RVdW:2.05,maxBonds:8,mass:54.938049,name:\"Manganese\",posX:4,posY:7,color:\"#9C7AC7\",color2:\"#9C7AC7\"},{id:26,symbol:\"Fe\",RCow:1.25,RVdW:2.05,maxBonds:6,mass:55.845,name:\"Iron\",posX:4,posY:8,color:\"#E06633\",color2:\"#E06633\"},{id:27,symbol:\"Co\",RCow:1.26,RVdW:2,maxBonds:6,mass:58.9332,name:\"Cobalt\",posX:4,posY:9,color:\"#F090A0\",color2:\"#DB8293\"},{id:28,symbol:\"Ni\",RCow:1.21,RVdW:2,maxBonds:6,mass:58.6934,name:\"Nickel\",posX:4,posY:10,color:\"#50D050\",color2:\"#45B645\"},{id:29,symbol:\"Cu\",RCow:1.38,RVdW:2,maxBonds:6,mass:63.546,name:\"Copper\",posX:4,posY:11,color:\"#C88033\",color2:\"#C78033\"},{id:30,symbol:\"Zn\",RCow:1.31,RVdW:2.1,maxBonds:6,mass:65.409,name:\"Zinc\",posX:4,posY:12,color:\"#7D80B0\",color2:\"#7D80B0\"},{id:31,symbol:\"Ga\",RCow:1.26,RVdW:2.1,maxBonds:3,mass:69.723,name:\"Gallium\",posX:4,posY:13,color:\"#C28F8F\",color2:\"#BD8C8C\"},{id:32,symbol:\"Ge\",RCow:1.22,RVdW:2.1,maxBonds:4,mass:72.64,name:\"Germanium\",posX:4,posY:14,color:\"#668F8F\",color2:\"#668F8F\"},{id:33,symbol:\"As\",RCow:1.19,RVdW:2.05,maxBonds:3,mass:74.9216,name:\"Arsenic\",posX:4,posY:15,color:\"#BD80E3\",color2:\"#BD80E3\"},{id:34,symbol:\"Se\",RCow:1.16,RVdW:1.9,maxBonds:2,mass:78.96,name:\"Selenium\",posX:4,posY:16,color:\"#FFA100\",color2:\"#E28F00\"},{id:35,symbol:\"Br\",RCow:1.14,RVdW:1.9,maxBonds:1,mass:79.904,name:\"Bromine\",posX:4,posY:17,color:\"#A62929\",color2:\"#A62929\"},{id:36,symbol:\"Kr\",RCow:1.1,RVdW:2.02,maxBonds:0,mass:83.798,name:\"Krypton\",posX:4,posY:18,color:\"#5CB8D1\",color2:\"#53A6BC\"},{id:37,symbol:\"Rb\",RCow:2.11,RVdW:2.9,maxBonds:1,mass:85.4678,name:\"Rubidium\",posX:5,posY:1,color:\"#702EB0\",color2:\"#702EB0\"},{id:38,symbol:\"Sr\",RCow:1.92,RVdW:2.55,maxBonds:2,mass:87.62,name:\"Strontium\",posX:5,posY:2,color:\"#00FF00\",color2:\"#00D000\"},{id:39,symbol:\"Y\",RCow:1.62,RVdW:2.4,maxBonds:6,mass:88.90585,name:\"Yttrium\",posX:5,posY:3,color:\"#94FFFF\",color2:\"#5FA4A4\"},{id:40,symbol:\"Zr\",RCow:1.48,RVdW:2.3,maxBonds:6,mass:91.224,name:\"Zirconium\",posX:5,posY:4,color:\"#94E0E0\",color2:\"#6BA2A2\"},{id:41,symbol:\"Nb\",RCow:1.37,RVdW:2.15,maxBonds:6,mass:92.90638,name:\"Niobium\",posX:5,posY:5,color:\"#73C2C9\",color2:\"#61A4A9\"},{id:42,symbol:\"Mo\",RCow:1.45,RVdW:2.1,maxBonds:6,mass:95.94,name:\"Molybdenum\",posX:5,posY:6,color:\"#54B5B5\",color2:\"#4EA9A9\"},{id:43,symbol:\"Tc\",RCow:1.56,RVdW:2.05,maxBonds:6,mass:98,name:\"Technetium\",posX:5,posY:7,color:\"#3B9E9E\",color2:\"#4EA9A9\"},{id:44,symbol:\"Ru\",RCow:1.26,RVdW:2.05,maxBonds:6,mass:101.07,name:\"Ruthenium\",posX:5,posY:8,color:\"#248F8F\",color2:\"#248F8F\"},{id:45,symbol:\"Rh\",RCow:1.35,RVdW:2,maxBonds:6,mass:102.9055,name:\"Rhodium\",posX:5,posY:9,color:\"#0A7D8C\",color2:\"#0A7D8C\"},{id:46,symbol:\"Pd\",RCow:1.31,RVdW:2.05,maxBonds:6,mass:106.42,name:\"Palladium\",posX:5,posY:10,color:\"#006985\",color2:\"#006985\"},{id:47,symbol:\"Ag\",RCow:1.53,RVdW:2.1,maxBonds:6,mass:107.8682,name:\"Silver\",posX:5,posY:11,color:\"#C0C0C0\",color2:\"#969696\"},{id:48,symbol:\"Cd\",RCow:1.48,RVdW:2.2,maxBonds:6,mass:112.411,name:\"Cadmium\",posX:5,posY:12,color:\"#FFD98F\",color2:\"#AE9462\"},{id:49,symbol:\"In\",RCow:1.44,RVdW:2.2,maxBonds:3,mass:114.818,name:\"Indium\",posX:5,posY:13,color:\"#A67573\",color2:\"#A67573\"},{id:50,symbol:\"Sn\",RCow:1.41,RVdW:2.25,maxBonds:4,mass:118.71,name:\"Tin\",posX:5,posY:14,color:\"#668080\",color2:\"#668080\"},{id:51,symbol:\"Sb\",RCow:1.38,RVdW:2.2,maxBonds:3,mass:121.76,name:\"Antimony\",posX:5,posY:15,color:\"#9E63B5\",color2:\"#9E63B5\"},{id:52,symbol:\"Te\",RCow:1.35,RVdW:2.1,maxBonds:2,mass:127.6,name:\"Tellurium\",posX:5,posY:16,color:\"#D47A00\",color2:\"#D47A00\"},{id:53,symbol:\"I\",RCow:1.33,RVdW:2.1,maxBonds:1,mass:126.90447,name:\"Iodine\",posX:5,posY:17,color:\"#940094\",color2:\"#940094\"},{id:54,symbol:\"Xe\",RCow:1.3,RVdW:2.16,maxBonds:0,mass:131.293,name:\"Xenon\",posX:5,posY:18,color:\"#429EB0\",color2:\"#429EB0\"},{id:55,symbol:\"Cs\",RCow:2.25,RVdW:3,maxBonds:1,mass:132.90545,name:\"Cesium\",posX:6,posY:1,color:\"#57178F\",color2:\"#57178F\"},{id:56,symbol:\"Ba\",RCow:1.98,RVdW:2.7,maxBonds:2,mass:137.327,name:\"Barium\",posX:6,posY:2,color:\"#00C900\",color2:\"#00C900\"},{id:57,symbol:\"La\",RCow:1.69,RVdW:2.5,maxBonds:12,mass:138.9055,name:\"Lanthanum\",posX:9,posY:3,color:\"#70D4FF\",color2:\"#57A4C5\"},{id:58,symbol:\"Ce\",RCow:1.6,RVdW:2.48,maxBonds:6,mass:140.116,name:\"Cerium\",posX:9,posY:4,color:\"#FFFFC7\",color2:\"#989877\"},{id:59,symbol:\"Pr\",RCow:1.6,RVdW:2.47,maxBonds:6,mass:140.90765,name:\"Praseodymium\",posX:9,posY:5,color:\"#D9FFC7\",color2:\"#869D7B\"},{id:60,symbol:\"Nd\",RCow:1.6,RVdW:2.45,maxBonds:6,mass:144.24,name:\"Neodymium\",posX:9,posY:6,color:\"#C7FFC7\",color2:\"#7DA07D\"},{id:61,symbol:\"Pm\",RCow:1.6,RVdW:2.43,maxBonds:6,mass:145,name:\"Promethium\",posX:9,posY:7,color:\"#A3FFC7\",color2:\"#69A581\"},{id:62,symbol:\"Sm\",RCow:1.6,RVdW:2.42,maxBonds:6,mass:150.36,name:\"Samarium\",posX:9,posY:8,color:\"#8FFFC7\",color2:\"#5EA883\"},{id:63,symbol:\"Eu\",RCow:1.6,RVdW:2.4,maxBonds:6,mass:151.964,name:\"Europium\",posX:9,posY:9,color:\"#61FFC7\",color2:\"#43B089\"},{id:64,symbol:\"Gd\",RCow:1.6,RVdW:2.38,maxBonds:6,mass:157.25,name:\"Gadolinium\",posX:9,posY:10,color:\"#45FFC7\",color2:\"#31B48D\"},{id:65,symbol:\"Tb\",RCow:1.6,RVdW:2.37,maxBonds:6,mass:158.92534,name:\"Terbium\",posX:9,posY:11,color:\"#30FFC7\",color2:\"#23B890\"},{id:66,symbol:\"Dy\",RCow:1.6,RVdW:2.35,maxBonds:6,mass:162.5,name:\"Dysprosium\",posX:9,posY:12,color:\"#1FFFC7\",color2:\"#17BB92\"},{id:67,symbol:\"Ho\",RCow:1.6,RVdW:2.33,maxBonds:6,mass:164.93032,name:\"Holmium\",posX:9,posY:13,color:\"#00FF9C\",color2:\"#00C578\"},{id:68,symbol:\"Er\",RCow:1.6,RVdW:2.32,maxBonds:6,mass:167.259,name:\"Erbium\",posX:9,posY:14,color:\"#00E675\",color2:\"#00C765\"},{id:69,symbol:\"Tm\",RCow:1.6,RVdW:2.3,maxBonds:6,mass:168.93421,name:\"Thulium\",posX:9,posY:15,color:\"#00D452\",color2:\"#00C94E\"},{id:70,symbol:\"Yb\",RCow:1.6,RVdW:2.28,maxBonds:6,mass:173.04,name:\"Ytterbium\",posX:9,posY:16,color:\"#00BF38\",color2:\"#00BF38\"},{id:71,symbol:\"Lu\",RCow:1.6,RVdW:2.27,maxBonds:6,mass:174.967,name:\"Lutetium\",posX:9,posY:17,color:\"#00AB24\",color2:\"#00AB24\"},{id:72,symbol:\"Hf\",RCow:1.5,RVdW:2.25,maxBonds:6,mass:178.49,name:\"Hafnium\",posX:6,posY:4,color:\"#4DC2FF\",color2:\"#42A8DC\"},{id:73,symbol:\"Ta\",RCow:1.38,RVdW:2.2,maxBonds:6,mass:180.9479,name:\"Tantalum\",posX:6,posY:5,color:\"#4DA6FF\",color2:\"#4BA2F9\"},{id:74,symbol:\"W\",RCow:1.46,RVdW:2.1,maxBonds:6,mass:183.84,name:\"Tungsten\",posX:6,posY:6,color:\"#2194D6\",color2:\"#2194D6\"},{id:75,symbol:\"Re\",RCow:1.59,RVdW:2.05,maxBonds:6,mass:186.207,name:\"Rhenium\",posX:6,posY:7,color:\"#267DAB\",color2:\"#267DAB\"},{id:76,symbol:\"Os\",RCow:1.28,RVdW:2,maxBonds:6,mass:190.23,name:\"Osmium\",posX:6,posY:8,color:\"#266696\",color2:\"#266696\"},{id:77,symbol:\"Ir\",RCow:1.37,RVdW:2,maxBonds:6,mass:192.217,name:\"Iridium\",posX:6,posY:9,color:\"#175487\",color2:\"#175487\"},{id:78,symbol:\"Pt\",RCow:1.28,RVdW:2.05,maxBonds:6,mass:195.078,name:\"Platinum\",posX:6,posY:10,color:\"#D0D0E0\",color2:\"#9595A0\"},{id:79,symbol:\"Au\",RCow:1.44,RVdW:2.1,maxBonds:6,mass:196.96655,name:\"Gold\",posX:6,posY:11,color:\"#FFD123\",color2:\"#B9981A\"},{id:80,symbol:\"Hg\",RCow:1.49,RVdW:2.05,maxBonds:6,mass:200.59,name:\"Mercury\",posX:6,posY:12,color:\"#B8B8D0\",color2:\"#9595A9\"},{id:81,symbol:\"Tl\",RCow:1.48,RVdW:2.2,maxBonds:3,mass:204.3833,name:\"Thallium\",posX:6,posY:13,color:\"#A6544D\",color2:\"#A6544D\"},{id:82,symbol:\"Pb\",RCow:1.47,RVdW:2.3,maxBonds:4,mass:207.2,name:\"Lead\",posX:6,posY:14,color:\"#575961\",color2:\"#575961\"},{id:83,symbol:\"Bi\",RCow:1.46,RVdW:2.3,maxBonds:3,mass:208.98038,name:\"Bismuth\",posX:6,posY:15,color:\"#9E4FB5\",color2:\"#9E4FB5\"},{id:84,symbol:\"Po\",RCow:1.6,RVdW:2,maxBonds:2,mass:209,name:\"Polonium\",posX:6,posY:16,color:\"#AB5C00\",color2:\"#AB5C00\"},{id:85,symbol:\"At\",RCow:1.6,RVdW:2,maxBonds:1,mass:210,name:\"Astatine\",posX:6,posY:17,color:\"#754F45\",color2:\"#754F45\"},{id:86,symbol:\"Rn\",RCow:1.45,RVdW:2,maxBonds:0,mass:222,name:\"Radon\",posX:6,posY:18,color:\"#428296\",color2:\"#428296\"},{id:87,symbol:\"Fr\",RCow:1.6,RVdW:2,maxBonds:1,mass:223,name:\"Francium\",posX:7,posY:1,color:\"#420066\",color2:\"#420066\"},{id:88,symbol:\"Ra\",RCow:1.6,RVdW:2,maxBonds:2,mass:226,name:\"Radium\",posX:7,posY:2,color:\"#007D00\",color2:\"#007D00\"},{id:89,symbol:\"Ac\",RCow:1.6,RVdW:2,maxBonds:6,mass:227,name:\"Actinium\",posX:10,posY:3,color:\"#70ABFA\",color2:\"#669CE4\"},{id:90,symbol:\"Th\",RCow:1.6,RVdW:2.4,maxBonds:6,mass:232.0381,name:\"Thorium\",posX:10,posY:4,color:\"#00BAFF\",color2:\"#00B8FC\"},{id:91,symbol:\"Pa\",RCow:1.6,RVdW:2,maxBonds:6,mass:231.03588,name:\"Protactinium\",posX:10,posY:5,color:\"#00A1FF\",color2:\"#00A1FF\"},{id:92,symbol:\"U\",RCow:1.6,RVdW:2.3,maxBonds:6,mass:238.02891,name:\"Uranium\",posX:10,posY:6,color:\"#008FFF\",color2:\"#008FFF\"},{id:93,symbol:\"Np\",RCow:1.6,RVdW:2,maxBonds:6,mass:237,name:\"Neptunium\",posX:10,posY:7,color:\"#0080FF\",color2:\"#0080FF\"},{id:94,symbol:\"Pu\",RCow:1.6,RVdW:2,maxBonds:6,mass:244,name:\"Plutonium\",posX:10,posY:8,color:\"#006BFF\",color2:\"#006BFF\"},{id:95,symbol:\"Am\",RCow:1.6,RVdW:2,maxBonds:6,mass:243,name:\"Americium\",posX:10,posY:9,color:\"#545CF2\",color2:\"#545CF2\"},{id:96,symbol:\"Cm\",RCow:1.6,RVdW:2,maxBonds:6,mass:247,name:\"Curium\",posX:10,posY:10,color:\"#785CE3\",color2:\"#785CE3\"},{id:97,symbol:\"Bk\",RCow:1.6,RVdW:2,maxBonds:6,mass:247,name:\"Berkelium\",posX:10,posY:11,color:\"#8A4FE3\",color2:\"#8A4FE3\"},{id:98,symbol:\"Cf\",RCow:1.6,RVdW:2,maxBonds:6,mass:251,name:\"Californium\",posX:10,posY:12,color:\"#A136D4\",color2:\"#A136D4\"},{id:99,symbol:\"Es\",RCow:1.6,RVdW:2,maxBonds:6,mass:252,name:\"Einsteinium\",posX:10,posY:13,color:\"#B31FD4\",color2:\"#B31FD4\"},{id:100,symbol:\"Fm\",RCow:1.6,RVdW:2,maxBonds:6,mass:257,name:\"Fermium\",posX:10,posY:14,color:\"#B31FBA\",color2:\"#B31FBA\"},{id:101,symbol:\"Md\",RCow:1.6,RVdW:2,maxBonds:6,mass:258,name:\"Mendelevium\",posX:10,posY:15,color:\"#B30DA6\",color2:\"#B30DA6\"},{id:102,symbol:\"No\",RCow:1.6,RVdW:2,maxBonds:6,mass:259,name:\"Nobelium\",posX:10,posY:16,color:\"#BD0D87\",color2:\"#BD0D87\"},{id:103,symbol:\"Lr\",RCow:1.6,RVdW:2,maxBonds:6,mass:262,name:\"Lawrencium\",posX:10,posY:17,color:\"#C70066\",color2:\"#C70066\"},{id:104,symbol:\"Rf\",RCow:1.6,RVdW:2,maxBonds:6,mass:261,name:\"Rutherfordium\",posX:7,posY:4,color:\"#CC0059\",color2:\"#42A8DC\"},{id:105,symbol:\"Db\",RCow:1.6,RVdW:2,maxBonds:6,mass:262,name:\"Dubnium\",posX:7,posY:5,color:\"#D1004F\",color2:\"#4BA2F9\"},{id:106,symbol:\"Sg\",RCow:1.6,RVdW:2,maxBonds:6,mass:266,name:\"Seaborgium\",posX:7,posY:6,color:\"#D90045\",color2:\"#2194D6\"},{id:107,symbol:\"Bh\",RCow:1.6,RVdW:2,maxBonds:6,mass:264,name:\"Bohrium\",posX:7,posY:7,color:\"#E00038\",color2:\"#267DAB\"},{id:108,symbol:\"Hs\",RCow:1.6,RVdW:2,maxBonds:6,mass:277,name:\"Hassium\",posX:7,posY:8,color:\"#E6002E\",color2:\"#266696\"},{id:109,symbol:\"Mt\",RCow:1.6,RVdW:2,maxBonds:6,mass:268,name:\"Meitnerium\",posX:7,posY:9,color:\"#EB0026\",color2:\"#175487\"},{id:110,symbol:\"Ds\",RCow:1.6,RVdW:2,maxBonds:6,mass:281,name:\"Darmstadtium\",posX:7,posY:10,color:\"#FF1493\",color2:\"#9595A0\"},{id:111,symbol:\"Rg\",RCow:1.6,RVdW:2,maxBonds:6,mass:272,name:\"Roentgenium\",posX:7,posY:11,color:\"#FF1494\",color2:\"#B9981A\"},{id:112,symbol:\"Cn\",RCow:1.6,RVdW:2,maxBonds:6,mass:277,name:\"Copernicium\",posX:7,posY:12,color:\"#FF1495\",color2:\"#9595A9\"}]},function(o,s,m){\"use strict\";function l(o){for(var m in o)s.hasOwnProperty(m)||(s[m]=o[m])}Object.defineProperty(s,\"__esModule\",{value:!0}),l(m(2)),l(m(0))},function(o,s,m){\"use strict\";Object.defineProperty(s,\"__esModule\",{value:!0});var l=m(0),a=function(){function o(){}return o.getById=function(o){for(var s=0,m=l.ChemElementData;s<m.length;s++){var a=m[s];if(a.id===o)return a}return null},o.getBySymbol=function(o){for(var s=(o||\"\").replace(/[^a-z]/gim,\"\").toLowerCase(),m=s.charAt(0).toUpperCase()+s.slice(1),a=0,n=l.ChemElementData;a<n.length;a++){var d=n[a];if(d.symbol===m)return d}return null},o.getAll=function(){return l.ChemElementData.filter(function(o){return\"Q\"!==o.symbol&&\"D\"!==o.symbol})},o.getAllSymbols=function(){return o.getAll().map(function(o){return o.symbol})},o}();s.ChemElements=a}])});\n//# sourceMappingURL=chem-elements.js.map"],"sourceRoot":""}
1
+ {"version":3,"file":"formula.js","sourceRoot":"","sources":["../src/formula.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1 +1,2 @@
1
- export * from "./formula";
1
+ export * from './formula';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './formula';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,39 +1,50 @@
1
1
  {
2
- "name": "@chemistry/formula",
3
- "version": "2.7.0",
4
- "description": "Chemical formula parser",
5
- "author": {
6
- "name": "Volodymyr Vreshch",
7
- "url": "http://vreshch.com/"
8
- },
9
- "license": "MIT",
10
- "keywords": [
11
- "formula",
12
- "chemical composition",
13
- "cheminformatics"
14
- ],
15
- "engines": {
16
- "node": ">=6.0.0"
17
- },
18
- "repository": "https://github.com/chemistry/chem-js-lib/tree/master/packages/formula",
19
- "publishConfig": {
20
- "registry": "https://registry.npmjs.org/",
21
- "access": "public"
22
- },
23
- "private": false,
24
- "files": [
25
- "package-lock.json",
26
- "package.json",
27
- "dist",
28
- "README.md"
29
- ],
30
- "main": "dist/formula.js",
31
- "typings": "dist/index.d.ts",
32
- "scripts": {
33
- "build": "webpack-cli --config webpack.config.js --mode production"
34
- },
35
- "dependencies": {
36
- "@chemistry/elements": "^2.7.0"
37
- },
38
- "gitHead": "58b10639212f9973109134f9d98edac2cfa97da2"
2
+ "name": "@chemistry/formula",
3
+ "version": "3.0.1",
4
+ "description": "Chemical formula parser",
5
+ "type": "module",
6
+ "author": {
7
+ "name": "Volodymyr Vreshch",
8
+ "url": "https://vreshch.com/"
9
+ },
10
+ "license": "MIT",
11
+ "keywords": [
12
+ "formula",
13
+ "chemical composition",
14
+ "cheminformatics"
15
+ ],
16
+ "engines": {
17
+ "node": ">=20.0.0"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "https://github.com/chemistry/chemical-libraries.git",
22
+ "directory": "packages/formula"
23
+ },
24
+ "publishConfig": {
25
+ "registry": "https://registry.npmjs.org/",
26
+ "access": "public"
27
+ },
28
+ "private": false,
29
+ "sideEffects": false,
30
+ "files": [
31
+ "package.json",
32
+ "dist",
33
+ "README.md"
34
+ ],
35
+ "main": "./dist/index.js",
36
+ "types": "./dist/index.d.ts",
37
+ "exports": {
38
+ ".": {
39
+ "types": "./dist/index.d.ts",
40
+ "import": "./dist/index.js"
41
+ }
42
+ },
43
+ "scripts": {
44
+ "build": "tsc",
45
+ "type-check": "tsc --noEmit"
46
+ },
47
+ "dependencies": {
48
+ "@chemistry/elements": "^3.0.0"
49
+ }
39
50
  }
package/LICENSE.md DELETED
@@ -1,22 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2018 Volodymyr Vreshch
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/package-lock.json DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "name": "@chemistry/formula",
3
- "version": "2.5.1",
4
- "lockfileVersion": 1,
5
- "requires": true,
6
- "dependencies": {
7
- "@chemistry/elements": {
8
- "version": "2.5.1"
9
- }
10
- }
11
- }