UNPKG

measurement

Version:

A flexible library for handling unit conversions

1 lines 6.05 kB
!function t(i,n,r){function e(o,u){if(!n[o]){if(!i[o]){var a="function"==typeof require&&require;if(!u&&a)return a(o,!0);if(s)return s(o,!0);throw new Error("Cannot find module '"+o+"'")}var p=n[o]={exports:{}};i[o][0].call(p.exports,function(t){var n=i[o][1][t];return e(n?n:t)},p,p.exports,t,i,n,r)}return n[o].exports}for(var s="function"==typeof require&&require,o=0;o<r.length;o++)e(r[o]);return e}({1:[function(t,i){"use strict";function n(t){var i=1;if(t.length){i=t[0].getMultiplier();for(var n=1;n<t.length;++n)i/=t[n].getMultiplier()}return i}var r=t("./units"),e=t("./unit-types"),s=function(){this.subUnits=arguments.length?Array.prototype.slice.call(arguments):[],"[object Array]"===Object.prototype.toString.call(this.subUnits[0])&&(this.subUnits=this.subUnits[0]),this.type=e.COMPOUND};s.prototype.addUnit=function(t){return this.subUnits.push(t),this},s.prototype.getMultiplier=function(){return n(this.subUnits)},s.prototype.toString=function(){var t="";return t+=this.subUnits.join("/")},s.prototype.makeBase=r.prototype.makeBase,i.exports=s},{"./unit-types":6,"./units":7}],2:[function(t,i){"use strict";var n=t("./scalar"),r=t("./unit-types"),e=t("./units"),s=function(){this.units={};for(var t=[{prefix:"Y",factor:24},{prefix:"Z",factor:21},{prefix:"E",factor:18},{prefix:"P",factor:15},{prefix:"T",factor:12},{prefix:"G",factor:9},{prefix:"M",factor:6},{prefix:"k",factor:3},{prefix:"h",factor:2},{prefix:"da",factor:1},{prefix:"",factor:0},{prefix:"d",factor:-1},{prefix:"c",factor:-2},{prefix:"m",factor:-3},{prefix:"u",factor:-6},{prefix:"n",factor:-9},{prefix:"p",factor:-12},{prefix:"f",factor:-15},{prefix:"a",factor:-18},{prefix:"z",factor:-21},{prefix:"y",factor:-24}],i=[{base:"g",type:r.MASS},{base:"m",type:r.LENGTH},{base:"l",type:r.VOLUME},{base:"b",type:r.MEMORY},{base:"s",type:r.TIME}],s=0;s<i.length;s++)for(var o=i[s],u=0;u<t.length;u++){var a=t[u],p=new e(o.base,a.prefix,Math.pow(10,a.factor),o.type);this.addUnit(p)}var f=new e("in","",.0254,r.LENGTH);this.addUnit(f);var c=new e("ft","",.3048,r.LENGTH);this.addUnit(c);var h=new e("yd","",.9144,r.LENGTH);this.addUnit(h);var y=new e("mi","",1609.34,r.LENGTH);this.addUnit(y);var d=new e("au","",149597870700,r.LENGTH);this.addUnit(d);var v=new e("ly","",9460730472580800,r.LENGTH);this.addUnit(v);var l=new e("oz","",.0295735,r.VOLUME);this.addUnit(l);var U=new e("c","",.236588,r.VOLUME);this.addUnit(U);var g=new e("pt","",.473176,r.VOLUME);this.addUnit(g);var m=new e("qt","",.946353,r.VOLUME);this.addUnit(m);var M=new e("gal","",3.78541,r.VOLUME);this.addUnit(M);var x=new e("min","",60,r.TIME);this.addUnit(x);var w=new e("h","",3600,r.TIME);this.addUnit(w),this.addUnit(w,"hr");var E=new e("d","",86400,r.TIME);this.addUnit(E),n.prototype.units=this.units};s.prototype.measure=s.prototype.measurement=s.prototype.scalar=function(){var t=arguments[0],i=arguments[1];if(1==arguments.length){var r=/[a-z]+/gi,e=t.search(r);i=t.substring(e),t=t.substring(0,e)}return"string"==typeof i&&(i=this.units[i]),new n(t,i)},s.prototype.addUnit=function(t,i){return void 0===i&&(i=t+""),void 0===this.units[i]&&(this.units[i]=t),void 0===n.prototype[i]&&(n.prototype[i]=function(t){return function(i){return this.as(t,i)}}(t)),void 0===this[i]&&(this[i]=function(t){return function(i){return void 0===i&&(i=1),new n(i,t)}}(t)),this},s.prototype.createUnit=s.prototype.newUnit=function(){var t=function(t){return e.apply(this,t)};t.prototype=e.prototype;var i=new t(arguments);return this.addUnit(i),i},i.exports=s},{"./scalar":5,"./unit-types":6,"./units":7}],3:[function(t){!function(t,i){"use strict";t.measurement=i()}(window,function(){"use strict";return t("./measurement")})},{"./measurement":4}],4:[function(t,i,n){"use strict";var r=n;r.Factory=t("./factory"),r.Scalar=t("./scalar"),r.UnitTypes=t("./unit-types"),r.Unit=t("./units"),r.CompoundUnit=t("./compound-units")},{"./compound-units":1,"./factory":2,"./scalar":5,"./unit-types":6,"./units":7}],5:[function(t,i){"use strict";function n(t,i,n){void 0==n&&(n=0);var e=t.subUnits.slice(0);if(i.type!=e[n].type)throw new Error("Invalid Units: a unit of type `"+e[n].type+"` cannot be converted to a unit of type `"+i.type+"`");return e[n]=i,new r(e)}var r=t("./compound-units"),e=t("./unit-types"),s=function(t,i){this.value=t,this.unit=i};s.prototype.getValue=function(t,i){return"string"==typeof t&&(t=this.units[t]),void 0!==t&&this.unit.type===e.COMPOUND&&(t=n(this.unit,t,i)),void 0===t&&(t=this.unit),this.value*(this.unit.getMultiplier()/t.getMultiplier())},s.prototype.as=function(t,i){"string"==typeof t&&(t=this.units[t]);var r=this.getValue(t,i);if(this.unit.type==e.COMPOUND&&(t=n(this.unit,t,i)),t.type!=this.unit.type)throw new Error("Invalid Units: a unit of type `"+this.unit+"` cannot be converted to a unit of type `"+t+"`");return new s(r,t)},s.prototype.to=function(t,i){"string"==typeof t&&(t=this.units[t]);var n=this.as(t,i);return this.value=n.value,this.unit=n.unit,this},s.prototype.per=function(t){if("string"==typeof t&&(t=this.units[t]),this.unit.type!=e.COMPOUND){var i=new r;i.addUnit(this.unit),this.unit=i}return this.unit.addUnit(t),this},s.prototype.toString=function(){return this.value+this.unit},i.exports=s},{"./compound-units":1,"./unit-types":6}],6:[function(t,i){var n={MASS:"MASS",LENGTH:"LENGTH",VOLUME:"VOLUME",MEMORY:"MEMORY",TIME:"TIME",COMPOUND:"COMPOUND",VOID:void 0};i.exports=n},{}],7:[function(t,i){"use strict";var n=t("./unit-types"),r=function(){this.base=arguments[0]||"",arguments.length>=3?(this.prefix=arguments[1]||"",this.multiplier=isNaN(arguments[2])?1:+arguments[2],this.type=arguments[3]||n.VOID):(this.prefix="",this.multiplier=1,this.type=arguments[1]||n.VOID)};r.prototype.getMultiplier=function(){var t=1;return this.baseUnit&&(t=this.baseUnit.getMultiplier()),this.multiplier*t},r.prototype.makeBase=function(t,i,n){t=""||t,i=void 0!==i?i:1,n=void 0!==n?n:this.type;var e=new r(t,"",i,n);return e.baseUnit=this,e},r.prototype.toString=function(){return this.prefix+this.base||this.type},i.exports=r},{"./unit-types":6}]},{},[3]);