{"version":3,"sources":["calculator.js"],"names":["HCPVField","sName","value","vm","this","touched","newValue","get","el","$","set","setErrorBorder","floor","addClass","$el","FieldController","lName","removeErrorBorder","field","Field","Object","assign","lock","unlockable","slider","parseFloat","setLock","newVal","isLocked","isNotLocked","getLockStatusClass","toggleLock","$msg","closest","find","getMsg","setMsg","newMsg","html","showMsg","show","hideMsg","hide","morphInput","removeClass","disableSlider","disabled","enableReadonly","readOnly","disableFieldSystem","enableField","disbleReadonly","showSlider","css"],"mappings":"YAKA,IAAIA,WAAY,WAAhB,QAAIA,GAAYC,EAAAC,GAGZ,GAAIC,GAAKC,IAATD,GAAAE,SAAA,EAGAF,EAAGF,MAAQA,EADXE,EAAGE,MAAHH,GAAA,KACAC,EAAGF,IAAH,WAAA,MAAAE,GAAAD,OACAC,EAAGD,IAAH,SAAWA,GAAXC,EAAAD,MAAAI,GACAH,EAAGI,MAAM,KAA+BJ,EAAxCK,GAAAC,EAAA,cAAAN,EAAAF,MAAA,KAAA,GACAE,EAAGO,IAAMD,EAAA,cAAAN,EAAoBF,MAAA,KAAuBE,EAApDQ,eAAA,WACAR,EAAGS,IAAHC,SAAA,cAEAV,EAAGK,kBAAO,WACVL,EAAGW,IAAML,YAAE,cAIV,QAFDM,GAAAd,EAAAe,EAAAd,GAGAC,GAAGc,GAAAA,KAAHC,EAAA,GAAAC,GAAAlB,EAAAC,EAGDkB,QAAAC,OAAAlB,EAAAe,GAEDf,EAAAa,MAASD,EACPZ,EAAAmB,MAAS,EAOTnB,EAAGoB,YAAa,EALhBpB,EAAAqB,UAIArB,EAAGmB,IAAH,WACAnB,MAAGoB,GAAAA,OACSpB,EAAZO,IAAA,SAAAJ,GASEH,EAAGD,MAAQuB,WAAWnB,IAHvBH,EAFDuB,QAAA,SAAAC,GASExB,EAAGmB,KAAOK,GAHXxB,EAFDyB,SAAA,WASE,OAAe,IAAZzB,EAAGmB,MACJnB,EAAA0B,YAAA,WACD,OAAK,IAFN1B,EAEMmB,MAOJnB,EAAA2B,mBAAA,WACD,OAAM,IAFP3B,EAEOmB,KACE,SAJX,YAUInB,EAAA4B,WAAO,WAGR5B,EAAAoB,aAIDpB,EAAAyB,WACAzB,EAAAuB,SAAA,GAEEvB,EAAAuB,SAAA,KAIAvB,EAAAA,mBAAA,WACD,MAFDA,GAEOoB,WACFG,sBAVP,mBAgBIvB,EAAA6B,KAAA7B,EAAOW,IAAAmB,QAAA,eAAPC,KAAA,aACD/B,EAFDgC,OAEO,WAAA,MAAAhC,GAAA6B,MACL7B,EAAAiC,OAAO,SAAAC,GAAPlC,EAAA6B,KAAAM,KAAAD,IACDlC,EAAAoC,QAAA,WAAApC,EAAA6B,KAAAQ,QACFrC,EANDsC,QAAA,WAAAtC,EAAA6B,KAAAU,QAUAvC,EAAGiC,YAAS,WAAiBjC,OAA7Ba,MAAAb,EAAAF,MAAA,OACGsC,MAAUpC,EAAAmB,OACWnB,EAAAA,cAAA,WAAxBA,EAAAW,IAAAmB,QAAA,eAAApB,SAAA,oBAiBAV,EAAGwC,WAAa,WACdxC,EAAGW,IAAImB,QAAQ,eAAeW,YAAY,oBAVtC5B,EAAAA,aAAUf,WACVC,EAAAA,OAAOC,UAAGmB,GAEfnB,EALD0C,cAAA,WAoBE1C,EAAGqB,OAAOsB,UAAW,GAZrB3C,EAAAA,aAAe,WAChBA,EAFDK,GAAAsC,UAAA,GAIA3C,EAAGwC,YAAa,WACdxC,EAAGW,GAAHgC,UAAe,GAgBjB3C,EAAG4C,eAAiB,WAbpB5C,EAAAK,GAAAwC,UAAA,GAEE7C,EAAAA,eAAA,WADFA,EAAAK,GAAAwC,UAAA,GAQC7C,EAFD8C,mBAAA,WAGA9C,EAAG+C,GAAAA,UAAc,EACf/C,EAAGK,IAAGsC,QAAN,eAAAjC,SAAA,oBAGAV,EAAAA,kBAAA,WADFA,EAAAK,GAAAsC,UAAA,EAGA3C,EAAGgD,IAAAA,QAAH,eAA8BP,YAAA,oBAiB9BzC,EAAGiD,WAAa,WAbhBjD,EAAAW,IAAAuC,IAAA,UAAA,UAGAlD,EAAG8C,WAAAA,WACD9C,EAAGK,IAAGsC,IAAAA,UAAN,SAIF3C,OACEA,MAAAgB,EACAhB,gBAAeY","file":"calculator.min.js","sourcesContent":["/***\r\n * @author David Almanza\r\n * @desc reuse calculation class and object structures\r\n */\r\n\r\nvar HCPVField = function() {\r\n\r\n function Field (sName, value) {\r\n var vm = this;\r\n\r\n vm.touched = false;\r\n vm.sName = sName;\r\n vm.value = value || null;\r\n vm.get = function () { return vm.value };\r\n vm.set = function (newValue) { vm.value = newValue };\r\n vm.floor = null;\r\n\r\n vm.el = $('input[name=' + vm.sName + ']')[0];\r\n vm.$el = $('input[name=' + vm.sName + ']');\r\n\r\n vm.setErrorBorder = function () {\r\n vm.$el.addClass('api-error');\r\n };\r\n vm.removeErrorBorder = function () {\r\n vm.$el.removeClass('api-error');\r\n }\r\n }\r\n\r\n function FieldController (sName, lName, value) {\r\n let vm = this;\r\n\r\n const field = new Field(sName, value);\r\n Object.assign(vm, field);\r\n\r\n vm.lName = lName;\r\n vm.lock = false;\r\n vm.unlockable = false;\r\n vm.slider = {\r\n // will add options after instantiation\r\n };\r\n \r\n vm.get = function() {\r\n return vm.value;\r\n }\r\n\r\n vm.set = function(newValue) {\r\n vm.value = parseFloat(newValue);\r\n }\r\n\r\n vm.setLock = function(newVal) {\r\n vm.lock = newVal;\r\n }\r\n\r\n vm.isLocked = function() {\r\n if(vm.lock === true) {\r\n return true;\r\n }else {\r\n return false\r\n }\r\n };\r\n\r\n vm.isNotLocked = function() {\r\n if (vm.lock === false) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n vm.getLockStatusClass = function() {\r\n if (vm.lock === true) {\r\n return 'locked';\r\n } else {\r\n return 'unlocked';\r\n }\r\n };\r\n\r\n vm.toggleLock = function(){\r\n // if preventUnlock is true return and exit this function thus\r\n // preventing the user from unlocking\r\n if (vm.unlockable) {\r\n return;\r\n };\r\n\r\n if (vm.isLocked()){\r\n vm.setLock(false)\r\n } else {\r\n vm.setLock(true)\r\n }\r\n };\r\n\r\n vm.getUnlockableClass = function(){\r\n if (vm.unlockable) {\r\n return 'can-not-be-unlocked';\r\n } else {\r\n return 'can-be-unlocked';\r\n };\r\n };\r\n\r\n vm.$msg = vm.$el.closest('.calc-group').find('.msg span');\r\n vm.getMsg = function(){return vm.$msg};\r\n vm.setMsg = function(newMsg){vm.$msg.html(newMsg)};\r\n vm.showMsg = function(){vm.$msg.show()};\r\n vm.hideMsg = function(){vm.$msg.hide()};\r\n\r\n /**\r\n * returns an object with two params, using to pass lock info to consturctUrl\r\n * @returns {{lName: string, value: (*|boolean)}}\r\n */\r\n vm.getLockInfo = function(){\r\n return {\r\n lName: vm.sName + 'Lock',\r\n value: vm.lock\r\n };\r\n };\r\n\r\n vm.morphNonInput = function() {\r\n vm.$el.closest('.calc-group').addClass('morph-non-input');\r\n };\r\n\r\n vm.morphInput = function() {\r\n vm.$el.closest('.calc-group').removeClass('morph-non-input');\r\n };\r\n\r\n // slider functions\r\n vm.enableSlider = function(){\r\n vm.slider.disabled = false;\r\n };\r\n vm.disableSlider = function(){\r\n vm.slider.disabled = true;\r\n };\r\n vm.disableField = function(){\r\n vm.el.disabled = true;\r\n };\r\n vm.enableField = function(){\r\n vm.el.disabled = false;\r\n };\r\n vm.enableReadonly = function(){\r\n vm.el.readOnly = true;\r\n };\r\n vm.disbleReadonly = function(){\r\n vm.el.readOnly = false;\r\n };\r\n\r\n // enable/disable field as system\r\n // not user controlled\r\n // fields get grey background and disabled\r\n vm.disableFieldSystem = function(){\r\n vm.el.disabled = true;\r\n vm.$el.closest('.calc-group').addClass('system-disabled');\r\n };\r\n\r\n vm.enableFieldSystem = function(){\r\n vm.el.disabled = false;\r\n vm.$el.closest('.calc-group').removeClass('system-disabled');\r\n };\r\n\r\n vm.showSlider = function(){\r\n vm.$el.css('display','block');\r\n };\r\n\r\n vm.hideSlider = function(){\r\n vm.$el.css('display','none');\r\n }\r\n }\r\n\r\n return {\r\n Field: Field,\r\n FieldController: FieldController,\r\n }\r\n}();"]}