"use strict" function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}define("kredits-web/app",["exports","ember-resolver","ember-load-initializers","kredits-web/config/environment"],(function(e,t,n,r){function o(e,t){for(var n=0;ne.length)&&(t=e.length) for(var n=0,r=new Array(t);n0})),isValidDescription:Ember.computed.notEmpty("description"),isValidUrl:Ember.computed.notEmpty("url"),isValid:Ember.computed.and("isValidContributor","isValidKind","isValidAmount","isValidDescription"),init:function(){this._super.apply(this,arguments),this.set("defaultDate",(0,t.default)().startOf("hour").toDate()),this.set("defaultAttr",{contributorId:null,kind:null,date:this.defaultDate,amount:null,description:null,url:null,details:null}),this.set("attributes",Ember.assign({},this.defaultAttr,this.attributes)),this.reset()},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(e){var t=this if(e.preventDefault(),this.isValid){var r=this.getProperties(Object.keys(this.attributes)) r.contributorId=parseInt(this.contributorId) var o=n((r.date instanceof Array?r.date[0]:r.date).toISOString().split("T"),2),i=[o[0],o[1]] r.date=i[0],r.time=i[1],this.set("inProgress",!0),this.save(r).then((function(){t.reset()}),(function(e){console.warn(e),window.alert("Something went wrong. Check the browser console for details.")})).finally((function(){return t.set("inProgress",!1)}))}else alert("Invalid data. Please review and try again.")}}}) e.default=o})),define("kredits-web/components/add-contribution/template",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.HTMLBars.template({id:"Ht3NNTLA",block:'{"symbols":["contributor"],"statements":[[10,"form"],[15,"onsubmit",[30,[36,1],[[32,0],"submit"],null]],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Contributor:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"select"],[14,"required",""],[15,"onchange",[30,[36,1],[[32,0],[30,[36,2],[[32,0,["contributorId"]]],null]],[["value"],["target.value"]]]],[12],[2,"\\n "],[10,"option"],[14,2,""],[14,"selected",""],[14,"disabled",""],[14,"hidden",""],[12],[13],[2,"\\n"],[6,[37,4],[[30,[36,3],[[30,[36,3],[[32,0,["contributors"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"option"],[15,2,[32,1,["id"]]],[15,"selected",[30,[36,0],[[32,0,["contributorId"]],[32,1,["id"]]],null]],[12],[1,[32,1,["name"]]],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Kind:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"select"],[14,"required",""],[15,"onchange",[30,[36,1],[[32,0],[30,[36,2],[[32,0,["kind"]]],null]],[["value"],["target.value"]]]],[12],[2,"\\n "],[10,"option"],[14,2,""],[14,"selected",""],[14,"disabled",""],[14,"hidden",""],[12],[13],[2,"\\n "],[10,"option"],[14,2,"bureaucracy"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"bureaucracy"],null]],[12],[2,"Bureaucracy"],[13],[2,"\\n "],[10,"option"],[14,2,"community"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"community"],null]],[12],[2,"Community"],[13],[2,"\\n "],[10,"option"],[14,2,"design"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"design"],null]],[12],[2,"Design"],[13],[2,"\\n "],[10,"option"],[14,2,"dev"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"dev"],null]],[12],[2,"Development"],[13],[2,"\\n "],[10,"option"],[14,2,"docs"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"docs"],null]],[12],[2,"Documentation"],[13],[2,"\\n "],[10,"option"],[14,2,"ops"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"ops"],null]],[12],[2,"IT Operations"],[13],[2,"\\n "],[10,"option"],[14,2,"outreach"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"outreach"],null]],[12],[2,"Outreach"],[13],[2,"\\n "],[10,"option"],[14,2,"qa"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"qa"],null]],[12],[2,"Quality Assurance"],[13],[2,"\\n "],[10,"option"],[14,2,"special"],[15,"selected",[30,[36,0],[[32,0,["kind"]],"special"],null]],[12],[2,"Special"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Date:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,5],null,[["date","defaultDate","maxDate","enableTime","time_24hr","onChange"],[[32,0,["date"]],[32,0,["defaultDate"]],[32,0,["defaultDate"]],true,true,[30,[36,1],[[32,0],[30,[36,2],[[32,0,["date"]]],null]],null]]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Amount:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,7],null,[["type","placeholder","value","class"],["text","500",[32,0,["amount"]],[30,[36,6],[[32,0,["isValidAmount"]],"valid",""],null]]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Description:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,7],null,[["type","value","class"],["text",[32,0,["description"]],[30,[36,6],[[32,0,["isValidDescription"]],"valid",""],null]]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"URL (optional):"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[1,[30,[36,7],null,[["type","value","class"],["text",[32,0,["url"]],[30,[36,6],[[32,0,["isValidUrl"]],"valid",""],null]]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,6],[[32,0,["details"]]],null,[["default"],[{"statements":[[2," "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Details:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"pre"],[12],[2," "],[1,[32,0,["details"]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[10,"p"],[14,0,"actions"],[12],[2,"\\n "],[1,[30,[36,7],null,[["type","disabled","value"],["submit",[32,0,["inProgress"]],[30,[36,6],[[32,0,["inProgress"]],"Processing","Save"],null]]]]],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"]],"hasEval":false,"upvars":["eq","action","mut","-track-array","each","ember-flatpickr","if","input"]}',meta:{moduleName:"kredits-web/components/add-contribution/template.hbs"}}) e.default=t})),define("kredits-web/components/add-contributor/component",["exports","web3-utils"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var n=Ember.Component.extend({router:Ember.inject.service(),kredits:Ember.inject.service(),attributes:null,isValidAccount:Ember.computed("account",(function(){return(0,t.isAddress)(this.account)})),isValidName:Ember.computed.notEmpty("name"),isValidURL:Ember.computed.notEmpty("url"),isValidGithubUID:Ember.computed.notEmpty("github_uid"),isValidGithubUsername:Ember.computed.notEmpty("github_username"),isValidGiteaUsername:Ember.computed.notEmpty("gitea_username"),isValidWikiUsername:Ember.computed.notEmpty("wiki_username"),isValidZoomDisplayName:Ember.computed.notEmpty("zoom_display_name"),isValid:Ember.computed.and("isValidAccount","isValidName","isValidGithubUID"),inProgress:!1,init:function(){this._super.apply(this,arguments),this.setDefaultAttributes(),this.reset()},setDefaultAttributes:function(){Ember.isPresent(this.attributes)||this.set("attributes",{account:null,name:null,kind:"person",url:null,github_username:null,github_uid:null,gitea_username:null,wiki_username:null,zoom_display_name:null})},reset:function(){this.setProperties(this.attributes)},actions:{submit:function(e){var t=this if(e.preventDefault(),this.kredits.currentUserIsCore)if(this.isValid){var n=Object.keys(this.attributes),r=this.getProperties(n) this.set("inProgress",!0),this.save(r).then((function(){t.reset()})).catch((function(e){console.warn(e),window.alert("Something went wrong. Please check the browser console.")})).finally((function(){t.set("inProgress",!1),t.router.transitionTo("dashboard")}))}else window.alert("Invalid data. Please review and try again.") else window.alert("Only core team members can edit profiles. Please ask someone to set you up.")}}}) e.default=n})),define("kredits-web/components/add-contributor/template",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.HTMLBars.template({id:"sjEfCFXi",block:'{"symbols":[],"statements":[[10,"form"],[15,"onsubmit",[30,[36,0],[[32,0],"submit"],null]],[12],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-account"],[12],[2,"Rootstock account"],[13],[2,"\\n "],[8,"input",[[24,3,"account"],[24,1,"c-account"],[24,"placeholder","0xF18E631Ea191aE4ebE70046Fcb01a436554421BA4"],[16,0,[30,[36,1],[[32,0,["isValidAccount"]],"valid",""],null]]],[["@type","@value"],["text",[32,0,["account"]]]],null],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-kind"],[12],[2,"Kind"],[13],[2,"\\n "],[10,"select"],[14,"required",""],[15,"onchange",[30,[36,0],[[32,0],[30,[36,2],[[32,0,["kind"]]],null]],[["value"],["target.value"]]]],[14,1,"c-kind"],[12],[2,"\\n "],[10,"option"],[14,2,"person"],[15,"selected",[30,[36,3],[[32,0,["kind"]],"person"],null]],[12],[2,"Person"],[13],[2,"\\n "],[10,"option"],[14,2,"organization"],[15,"selected",[30,[36,3],[[32,0,["kind"]],"organization"],null]],[12],[2,"Organization"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-name"],[12],[2,"Name"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["name","text",[32,0,["name"]],"Zero Cool",[30,[36,1],[[32,0,["isValidName"]],"valid",""],null],"c-name"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-url"],[12],[2,"URL"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["url","text",[32,0,["url"]],"http://zerocool.bit",[30,[36,1],[[32,0,["isValidURL"]],"valid",""],null],"c-url"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-github-uid"],[12],[2,"GitHub UID"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["github_uid","text",[32,0,["github_uid"]],"2342",[30,[36,1],[[32,0,["isValidGithubUID"]],"valid",""],null],"c-github-uid"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-github-username"],[12],[2,"GitHub username"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["github_username","text",[32,0,["github_username"]],"zerocool",[30,[36,1],[[32,0,["isValidGithubUsername"]],"valid",""],null],"c-github-username"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-gitea-username"],[12],[2,"Gitea username"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["gitea_username","text",[32,0,["gitea_username"]],"zerocool",[30,[36,1],[[32,0,["isValidGiteaUsername"]],"valid",""],null],"c-gitea-username"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-wiki-username"],[12],[2,"Wiki username"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["wiki_username","text",[32,0,["wiki_username"]],"ZeroCool",[30,[36,1],[[32,0,["isValidWikiUsername"]],"valid",""],null],"c-wiki-username"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"label"],[14,"for","c-zoom-display-name"],[12],[2,"Zoom display name"],[13],[2,"\\n "],[1,[30,[36,4],null,[["name","type","value","placeholder","class","id"],["zoom_display_name","text",[32,0,["zoom_display_name"]],"Zero Cool",[30,[36,1],[[32,0,["isValidZoomDisplayName"]],"valid",""],null],"c-zoom-display-name"]]]],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[14,0,"actions"],[12],[2,"\\n "],[1,[30,[36,4],null,[["type","disabled","value"],["submit",[32,0,["inProgress"]],[30,[36,1],[[32,0,["inProgress"]],"Processing","Save"],null]]]]],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["action","if","mut","eq","input"]}',meta:{moduleName:"kredits-web/components/add-contributor/template.hbs"}}) e.default=t})),define("kredits-web/components/add-expense-item/component",["exports","@glimmer/component","moment","kredits-web/utils/is-valid-amount"],(function(e,t,n,r){var o,i,u,a,s,c,l,f,d,p,b,m,y,h,v,g,w function k(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"] if(null==n)return var r,o,i=[],u=!0,a=!1 try{for(n=n.call(e);!(u=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);u=!0);}catch(s){a=!0,o=s}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||function(e,t){if(!e)return if("string"==typeof e)return O(e,t) var n=Object.prototype.toString.call(e).slice(8,-1) "Object"===n&&e.constructor&&(n=e.constructor.name) if("Map"===n||"Set"===n)return Array.from(e) if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return O(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function O(e,t){(null==t||t>e.length)&&(t=e.length) for(var n=0,r=new Array(t);n0}))),this.args.addExpenseItem(o)}}])&&x(t.prototype,o),i&&x(t,i),Object.defineProperty(t,"prototype",{writable:!1}),a}(t.default),b=M(p.prototype,"amount",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"0"}}),m=M(p.prototype,"currency",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"EUR"}}),y=M(p.prototype,"date",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return(0,n.default)().startOf("hour").toDate()}}),h=M(p.prototype,"title",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),v=M(p.prototype,"description",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),g=M(p.prototype,"url",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),w=M(p.prototype,"tags",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),M(p.prototype,"updateCurrency",[f],Object.getOwnPropertyDescriptor(p.prototype,"updateCurrency"),p.prototype),M(p.prototype,"submit",[d],Object.getOwnPropertyDescriptor(p.prototype,"submit"),p.prototype),p) e.default=B})),define("kredits-web/components/add-expense-item/template",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.HTMLBars.template({id:"xrdEJbVd",block:'{"symbols":["currency"],"statements":[[11,"form"],[24,1,"add-expense-item"],[24,"novalidate",""],[4,[38,1],["submit",[32,0,["submit"]]],null],[12],[2,"\\n "],[10,"fieldset"],[14,0,"horizontal"],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Amount:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@name","@type","@placeholder","@value","@required","@pattern","@class"],["expense-amount","text","10",[32,0,["amount"]],true,"([0-9]*[.])?[0-9]+",[32,0,["amountInputClass"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Currency:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[11,"select"],[24,"required",""],[24,3,"expense-currency"],[4,[38,1],["change",[32,0,["updateCurrency"]]],null],[12],[2,"\\n "],[10,"option"],[14,2,""],[14,"selected",""],[14,"disabled",""],[14,"hidden",""],[12],[13],[2,"\\n"],[6,[37,3],[[30,[36,2],[[30,[36,2],[[32,0,["currencies"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"option"],[15,2,[32,1,["code"]]],[15,"selected",[30,[36,0],[[32,0,["currency"]],[32,1,["code"]]],null]],[12],[1,[32,1,["code"]]],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Date:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"ember-flatpickr",[],[["@date","@defaultDate","@maxDate","@enableTime","@onChange"],[[32,0,["date"]],[32,0,["defaultDate"]],[32,0,["defaultDate"]],false,[30,[36,5],[[30,[36,4],[[32,0,["date"]]],null]],null]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Title:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@name","@type","@value","@required"],["expense-title","text",[32,0,["title"]],true]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Description (optional):"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@name","@type","@value"],["expense-description","text",[32,0,["description"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"URL (optional):"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@name","@type","@value"],["expense-url","url",[32,0,["url"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Tags (comma-separated, optional):"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@name","@type","@value"],["expense-tags","text",[32,0,["tags"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"p"],[14,0,"actions"],[12],[2,"\\n "],[8,"input",[],[["@type","@value","@class","@title"],["submit","Add","green","Add item to reimbursement"]],null],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["eq","on","-track-array","each","mut","fn"]}',meta:{moduleName:"kredits-web/components/add-expense-item/template.hbs"}}) e.default=t})),define("kredits-web/components/add-reimbursement/component",["exports","@glimmer/component","kredits-web/utils/is-valid-amount","kredits-web/utils/read-file-content","kredits-web/config/environment"],(function(e,t,n,r,o){var i,u,a,s,c,l,f,d,p,b,m,y,h,v,g,w,k,O,_,j,x,P,E,C,R function S(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"] if(!n){if(Array.isArray(e)||(n=function(e,t){if(!e)return if("string"==typeof e)return z(e,t) var n=Object.prototype.toString.call(e).slice(8,-1) "Object"===n&&e.constructor&&(n=e.constructor.name) if("Map"===n||"Set"===n)return Array.from(e) if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return z(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n) var r=0,o=function(){} return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,a=!1 return{s:function(){n=n.call(e)},n:function(){var e=n.next() return u=e.done,e},e:function(e){a=!0,i=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw i}}}}function z(e,t){(null==t||t>e.length)&&(t=e.length) for(var n=0,r=new Array(t);n0?e.mapBy("amount").reduce((function(e,t){return e+t})):0}},{key:"totalUSD",get:function(){var e=this.expenses.filterBy("currency","USD") return e.length>0?e.mapBy("amount").reduce((function(e,t){return e+t})):0}},{key:"submitButtonEnabled",get:function(){return this.isValidTotal&&this.expenses.length>0}},{key:"submitButtonDisabled",get:function(){return!this.submitButtonEnabled}},{key:"scrollToExpenseItemForm",value:function(){document.getElementById("new-expense-item").scrollIntoView()}},{key:"updateTotalAmountFromFiat",value:function(){var e=0 this.exchangeRates.btceur>0&&this.totalEUR>0&&(e+=this.totalEUR/this.exchangeRates.btceur),this.exchangeRates.btcusd>0&&this.totalUSD>0&&(e+=this.totalUSD/this.exchangeRates.btcusd),0===this.totalUSD&&0===this.totalEUR&&(e=0),this.total=e.toFixed(8)}},{key:"addExpensesFromFile",value:(a=regeneratorRuntime.mark((function e(t){var n,o,i,u,a return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,r.default)(t.target.files[0]) case 2:if(n=e.sent,(o=JSON.parse(n))instanceof Array){i=S(o) try{for(i.s();!(u=i.n()).done;)a=u.value,this.addExpenseItem(a)}catch(s){i.e(s)}finally{i.f()}}else console.warn("Expenses in file must be a list of items:"),console.debug(n) case 5:case"end":return e.stop()}}),e,this)})),s=function(){var e=this,t=arguments return new Promise((function(n,r){var o=a.apply(e,t) function i(e){M(o,n,r,i,u,"next",e)}function u(e){M(o,n,r,i,u,"throw",e)}i(void 0)}))},function(e){return s.apply(this,arguments)})},{key:"updateContributor",value:function(e){this.recipientId=parseInt(e.target.value)}},{key:"showExpenseForm",value:function(){this.expenseFormVisible=!0,Ember.run.scheduleOnce("afterRender",this,this.scrollToExpenseItemForm)}},{key:"addExpenseItem",value:function(e){this.expenses.pushObject(e),this.updateTotalAmountFromFiat(),this.expenseFormVisible=!1}},{key:"removeExpenseItem",value:function(e){this.expenses.removeObject(e),this.updateTotalAmountFromFiat(),0===this.expenses.length&&(this.expenseFormVisible=!0)}},{key:"submit",value:function(e){var t=this if(e.preventDefault(),!this.kredits.currentUser)return window.alert("You need to connect your RSK account first."),!1 if(!this.kredits.currentUserIsCore)return window.alert("Only core contributors can submit reimbursements."),!1 var n=this.contributors.findBy("id",this.contributorId),r={amount:parseInt(1e8*parseFloat(this.total)),token:o.default.tokens.BTC,recipientId:this.contributorId,title:"Expenses covered by ".concat(n.name),description:this.description,url:this.url,expenses:JSON.parse(JSON.stringify(this.expenses))} this.inProgress=!0,this.kredits.addReimbursement(r).then((function(){t.router.transitionTo("budget")})).catch((function(e){console.error("Could not add reimbursement:",e),window.alert("Something went wrong. Please check the browser console.")})).finally((function(){t.inProgress=!1}))}}])&&I(t.prototype,i),u&&I(t,u),Object.defineProperty(t,"prototype",{writable:!1}),l}(t.default),k=L(w.prototype,"router",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=L(w.prototype,"kredits",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=L(w.prototype,"exchangeRates",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=L(w.prototype,"contributors",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=L(w.prototype,"recipientId",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),P=L(w.prototype,"title",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),E=L(w.prototype,"total",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"0"}}),C=L(w.prototype,"expenses",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return Ember.A([])}}),R=L(w.prototype,"expenseFormVisible",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),L(w.prototype,"addExpensesFromFile",[b],Object.getOwnPropertyDescriptor(w.prototype,"addExpensesFromFile"),w.prototype),L(w.prototype,"updateContributor",[m],Object.getOwnPropertyDescriptor(w.prototype,"updateContributor"),w.prototype),L(w.prototype,"showExpenseForm",[y],Object.getOwnPropertyDescriptor(w.prototype,"showExpenseForm"),w.prototype),L(w.prototype,"addExpenseItem",[h],Object.getOwnPropertyDescriptor(w.prototype,"addExpenseItem"),w.prototype),L(w.prototype,"removeExpenseItem",[v],Object.getOwnPropertyDescriptor(w.prototype,"removeExpenseItem"),w.prototype),L(w.prototype,"submit",[g],Object.getOwnPropertyDescriptor(w.prototype,"submit"),w.prototype),w) e.default=H})),define("kredits-web/components/add-reimbursement/template",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.HTMLBars.template({id:"ZACtElUk",block:'{"symbols":["contributor"],"statements":[[11,"form"],[24,"novalidate",""],[4,[38,1],["submit",[32,0,["submit"]]],null],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Contributor:"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[11,"select"],[24,1,"contributor"],[24,"required",""],[4,[38,1],["change",[32,0,["updateContributor"]]],null],[12],[2,"\\n"],[6,[37,4],[[30,[36,3],[[30,[36,3],[[32,0,["contributors"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"option"],[15,2,[32,1,["id"]]],[15,"selected",[30,[36,2],[[32,0,["contributorId"]],[32,1,["id"]]],null]],[12],[1,[32,1,["name"]]],[13],[2,"\\n"]],"parameters":[1]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"fieldset"],[14,0,"horizontal thirds total-amounts"],[12],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"Total amount (BTC):"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@type","@name","@placeholder","@value","@required","@pattern","@class"],["text","total-btc","0.0015",[32,0,["total"]],true,"([0-9]*[.])?[0-9]+",[32,0,["totalInputClass"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"EUR total"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@type","@name","@value","@disabled"],["text","total-eur",[32,0,["totalEUR"]],true]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"label"],[12],[2,"\\n "],[10,"p"],[14,0,"label"],[12],[2,"USD total"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[8,"input",[],[["@type","@name","@value","@disabled"],["text","total-usd",[32,0,["totalUSD"]],true]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"h3"],[12],[2,"Expense items"],[13],[2,"\\n"],[6,[37,5],[[32,0,["expenses"]]],null,[["default","else"],[{"statements":[[2," "],[8,"expense-list",[],[["@expenses","@removeExpenseItem","@deletable"],[[32,0,["expenses"]],[32,0,["removeExpenseItem"]],true]],null],[2,"\\n\\n "],[10,"p"],[14,0,"actions"],[12],[2,"\\n "],[11,"button"],[24,1,"add-another-item"],[24,0,"green small"],[24,4,"button"],[4,[38,1],["click",[32,0,["showExpenseForm"]]],null],[12],[2,"\\n + Add another item\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[12],[2,"No line items yet."],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[10,"p"],[14,0,"actions"],[12],[2,"\\n"],[6,[37,5],[[32,0,["inProgress"]]],null,[["default","else"],[{"statements":[[2," "],[8,"input",[],[["@type","@value","@disabled","@title"],["submit","Submitting...",true,"Submit/propose this reimbursement"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"input",[],[["@type","@value","@disabled","@title"],["submit","Submit",[32,0,["submitButtonDisabled"]],"Submit/propose this reimbursement"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n"],[6,[37,5],[[32,0,["expenseFormVisible"]]],null,[["default"],[{"statements":[[2," "],[10,"h3"],[14,1,"new-expense-item"],[12],[2,"New expense item"],[13],[2,"\\n "],[8,"add-expense-item",[],[["@addExpenseItem"],[[30,[36,0],[[32,0,["addExpenseItem"]]],null]]],null],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"],[10,"form"],[14,1,"add-expenses-from-file"],[12],[2,"\\n "],[10,"h3"],[12],[2,"Add expense items from file"],[13],[2,"\\n "],[10,"input"],[14,"multiple","false"],[15,"onchange",[30,[36,0],[[32,0,["addExpensesFromFile"]]],null]],[14,"accept","application/json"],[14,4,"file"],[12],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["fn","on","eq","-track-array","each","if"]}',meta:{moduleName:"kredits-web/components/add-reimbursement/template.hbs"}}) e.default=t})),define("kredits-web/components/budget-balances/component",["exports","@glimmer/component"],(function(e,t){var n,r,o function i(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function u(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){for(var n=0;n1&&(t+=" - "+r.default.compute(e.lastObject)),t}},{key:"toggleExpenseDetails",value:function(){this.showExpenseDetails=!this.showExpenseDetails}},{key:"veto",value:function(e){this.kredits.vetoReimbursement(e).then((function(e){console.debug("[controllers:budget] Veto submitted to chain: "+e.hash)}))}}])&&d(t.prototype,o),i&&d(t,i),Object.defineProperty(t,"prototype",{writable:!1}),a}(t.default),c=v(s.prototype,"kredits",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=v(s.prototype,"showExpenseDetails",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),v(s.prototype,"toggleExpenseDetails",[u],Object.getOwnPropertyDescriptor(s.prototype,"toggleExpenseDetails"),s.prototype),v(s.prototype,"veto",[a],Object.getOwnPropertyDescriptor(s.prototype,"veto"),s.prototype),s) e.default=g})) define("kredits-web/components/reimbursement-item/template",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.HTMLBars.template({id:"yNXLphZT",block:'{"symbols":["@reimbursement"],"statements":[[11,"li"],[16,"data-reimbursement-id",[32,1,["id"]]],[16,0,[31,[[30,[36,3],[[32,1]],null]]]],[24,"role","button"],[4,[38,1],["click",[32,0,["toggleExpenseDetails"]]],null],[12],[2,"\\n "],[10,"p"],[14,0,"meta"],[12],[2,"\\n "],[10,"span"],[14,0,"recipient"],[12],[2,"\\n "],[8,"user-avatar",[],[["@contributor"],[[32,1,["contributor"]]]],null],[2,"\\n "],[13],[2,"\\n "],[10,"span"],[14,0,"title"],[12],[2,"\\n Expenses covered by "],[1,[32,1,["contributor","name"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[14,0,"token-amount"],[12],[2,"\\n "],[10,"span"],[14,0,"amount"],[12],[2,"\\n "],[1,[30,[36,4],[[32,1,["amount"]]],null]],[13],[2," "],[10,"span"],[14,0,"symbol"],[12],[2,"BTC"],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,5],[[32,0,["showExpenseDetails"]]],null,[["default"],[{"statements":[[2," "],[8,"expense-list",[],[["@expenses"],[[32,1,["expenses"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[10,"div"],[14,0,"meta"],[12],[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,5],[[32,0,["showConfirmedIn"]]],null,[["default","else"],[{"statements":[[2," "],[8,"confirmed-in",[],[["@confirmedAtBlock"],[[32,1,["confirmedAt"]]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[6,[37,2],[[32,0,["isVetoed"]]],null,[["default"],[{"statements":[[1,[32,0,["expensesDateRange"]]]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[14,0,"actions"],[12],[2,"\\n "],[10,"a"],[15,6,[31,[[32,0,["ipfsGatewayUrl"]],"/",[32,1,["ipfsHash"]]]]],[14,0,"button small"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"\\n Inspect IPFS data\\n "],[13],[2,"\\n"],[6,[37,5],[[32,0,["showVetoButton"]]],null,[["default"],[{"statements":[[2," "],[11,"button"],[16,"disabled",[32,1,["vetoed"]]],[24,0,"button small danger"],[24,4,"button"],[4,[38,1],["click",[30,[36,0],[[32,0,["veto"]],[32,1,["id"]]],null]],null],[12],[2,"veto"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["fn","on","unless","item-status","sats-to-btc","if"]}',meta:{moduleName:"kredits-web/components/reimbursement-item/template.hbs"}}) e.default=t})),define("kredits-web/components/reimbursement-list/component",["exports","@glimmer/component"],(function(e,t){var n,r,o,i,u function a(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function s(e,t){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},o=t.default.APP.version,i=r.versionOnly||r.hideSha,u=r.shaOnly||r.hideVersion,a=null return i&&(r.showExtended&&(a=o.match(n.versionExtendedRegExp)),a||(a=o.match(n.versionRegExp))),u&&(a=o.match(n.shaRegExp)),a?a[0]:o}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0 var o=Ember.Helper.helper(r) e.default=o})),define("kredits-web/helpers/await",["exports","ember-promise-helpers/helpers/await"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/cancel-all",["exports","ember-concurrency/helpers/cancel-all"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/capitalize-string",["exports"],(function(e){function t(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"] if(null==n)return var r,o,i=[],u=!0,a=!1 try{for(n=n.call(e);!(u=(r=n.next()).done)&&(i.push(r.value),!t||i.length!==t);u=!0);}catch(s){a=!0,o=s}finally{try{u||null==n.return||n.return()}finally{if(a)throw o}}return i}(e,t)||function(e,t){if(!e)return if("string"==typeof e)return n(e,t) var r=Object.prototype.toString.call(e).slice(8,-1) "Object"===r&&e.constructor&&(r=e.constructor.name) if("Map"===r||"Set"===r)return Array.from(e) if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return n(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function n(e,t){(null==t||t>e.length)&&(t=e.length) for(var n=0,r=new Array(t);ne.length)&&(t=e.length) for(var n=0,r=new Array(t);ne.length)&&(t=e.length) for(var n=0,r=new Array(t);ne.length)&&(t=e.length) for(var n=0,r=new Array(t);nthis.currentBlock?r.push("unconfirmed"):r.push("confirmed"),n.hasPendingChanges&&r.push("pending"),r.join(" ")},destroy:function(){this.teardown&&this.teardown(),this._super.apply(this,arguments)},setupRecompute:function(e){var t=this this.teardown&&this.teardown(),e.addObserver("vetoed",this,this.triggerRecompute),e.addObserver("confirmedAt",this,this.triggerRecompute),e.addObserver("currentBlock",this,this.triggerRecompute),e.addObserver("hasPendingChanges",this,this.triggerRecompute),this.teardown=function(){e.removeObserver("vetoed",t,t.triggerRecompute),e.removeObserver("confirmedAt",t,t.triggerRecompute),e.removeObserver("currentBlock",t,t.triggerRecompute),e.removeObserver("hasPendingChanges",t,t.triggerRecompute)}},triggerRecompute:function(){Ember.run.once(this,this.recompute)}}) e.default=r})),define("kredits-web/helpers/lt",["exports","ember-truth-helpers/helpers/lt"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lt",{enumerable:!0,get:function(){return t.lt}})})),define("kredits-web/helpers/lte",["exports","ember-truth-helpers/helpers/lte"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"lte",{enumerable:!0,get:function(){return t.lte}})})),define("kredits-web/helpers/moment-add",["exports","ember-moment/helpers/moment-add"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-calendar",["exports","ember-moment/helpers/moment-calendar"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-diff",["exports","ember-moment/helpers/moment-diff"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-duration",["exports","ember-moment/helpers/moment-duration"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-format",["exports","ember-moment/helpers/moment-format"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-from-now",["exports","ember-moment/helpers/moment-from-now"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-from",["exports","ember-moment/helpers/moment-from"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-subtract",["exports","ember-moment/helpers/moment-subtract"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-to-date",["exports","ember-moment/helpers/moment-to-date"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-to-now",["exports","ember-moment/helpers/moment-to-now"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-to",["exports","ember-moment/helpers/moment-to"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment-unix",["exports","ember-moment/helpers/unix"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/moment",["exports","ember-moment/helpers/moment"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})) function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}define("kredits-web/helpers/not-eq",["exports","ember-truth-helpers/helpers/not-equal"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"notEqualHelper",{enumerable:!0,get:function(){return t.notEqualHelper}})})),define("kredits-web/helpers/not",["exports","ember-truth-helpers/helpers/not"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"not",{enumerable:!0,get:function(){return t.not}})})),define("kredits-web/helpers/now",["exports","ember-moment/helpers/now"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/or",["exports","ember-truth-helpers/helpers/or"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"or",{enumerable:!0,get:function(){return t.or}})})),define("kredits-web/helpers/perform",["exports","ember-concurrency/helpers/perform"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/promise-all",["exports","ember-promise-helpers/helpers/promise-all"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/promise-hash",["exports","ember-promise-helpers/helpers/promise-hash"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/promise-rejected-reason",["exports","ember-promise-helpers/helpers/promise-rejected-reason"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/sats-to-btc",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.Helper.helper((function(e){return e/1e8})) e.default=t})),define("kredits-web/helpers/task",["exports","ember-concurrency/helpers/task"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/unix",["exports","ember-moment/helpers/unix"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/helpers/utc",["exports","ember-moment/helpers/utc"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"utc",{enumerable:!0,get:function(){return t.utc}})})),define("kredits-web/helpers/xor",["exports","ember-truth-helpers/helpers/xor"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"xor",{enumerable:!0,get:function(){return t.xor}})})),define("kredits-web/initializers/app-version",["exports","ember-cli-app-version/initializer-factory","kredits-web/config/environment"],(function(e,t,n){var r,o Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,n.default.APP&&(r=n.default.APP.name,o=n.default.APP.version) var i={name:"App Version",initialize:(0,t.default)(r,o)} e.default=i})),define("kredits-web/initializers/container-debug-adapter",["exports","ember-resolver/resolvers/classic/container-debug-adapter"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var n={name:"container-debug-adapter",initialize:function(){var e=arguments[1]||arguments[0] e.register("container-debug-adapter:main",t.default)}} e.default=n})),define("kredits-web/initializers/ember-concurrency",["exports","ember-concurrency/initializers/ember-concurrency"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})),define("kredits-web/initializers/export-application-global",["exports","kredits-web/config/environment"],(function(e,t){function n(){var e=arguments[1]||arguments[0] if(!1!==t.default.exportApplicationGlobal){var n if("undefined"!=typeof window)n=window else if("undefined"!=typeof global)n=global else{if("undefined"==typeof self)return n=self}var r,o=t.default.exportApplicationGlobal r="string"==typeof o?o:Ember.String.classify(t.default.modulePrefix),n[r]||(n[r]=e,e.reopen({willDestroy:function(){this._super.apply(this,arguments),delete n[r]}}))}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.initialize=n var r={name:"export-application-global",initialize:n} e.default=r})),define("kredits-web/models/contribution",["exports","moment"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var n=Ember.Object.extend({id:null,contributorId:null,amount:null,confirmedAt:null,vetoed:null,ipfsHash:null,contributor:null,kind:null,description:null,details:null,url:null,date:null,time:null,pendingTx:null,init:function(){this._super.apply(this,arguments),Ember.isEmpty(this.details)&&this.set("details",{})},iso8601Date:Ember.computed("date","time",(function(){return this.time?"".concat(this.date,"T").concat(this.time):this.date})),jsDate:Ember.computed("iso8601Date",(function(){return(0,t.default)(this.iso8601Date).toDate()})),hasPendingChanges:Ember.computed("pendingTx",(function(){return Ember.isPresent(this.pendingTx)})),serialize:function(){return JSON.stringify(this)}}) e.default=n})),define("kredits-web/models/contributor",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var t=Ember.Object.extend({id:null,account:null,balance:0,totalKreditsEarned:0,contributionsCount:0,isCore:!1,ipfsHash:null,kind:null,name:null,url:null,github_username:null,github_uid:null,wiki_username:null,zoom_display_name:null,serialize:function(){return JSON.stringify(this)}}) e.default=t})),define("kredits-web/models/reimbursement",["exports","moment"],(function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0 var n=Ember.Object.extend({id:null,recipientId:null,token:null,amount:null,confirmedAt:null,vetoed:null,ipfsHash:null,recipient:null,expenses:null,pendingTx:null,iso8601Date:Ember.computed("date","time",(function(){return this.time?"".concat(this.date,"T").concat(this.time):this.date})),jsDate:Ember.computed("iso8601Date",(function(){return(0,t.default)(this.iso8601Date).toDate()})),hasPendingChanges:Ember.computed("pendingTx",(function(){return Ember.isPresent(this.pendingTx)})),pendingStatus:Ember.computed("pendingTx",(function(){return Ember.isPresent(this.pendingTx)?"isPending":"notPending"})),serialize:function(){return JSON.stringify(this)}}) e.default=n})),define("kredits-web/router",["exports","kredits-web/config/environment"],(function(e,t){function n(e,t){for(var n=0;n0)){e.next=14 break}return e.next=11,this.kredits.loadObjectsFromCache("Reimbursement") case 11:this.kredits.set("reimbursementsNeedSync",!0),e.next=16 break case 14:return e.next=16,this.kredits.fetchObjects("Reimbursement",{page:{size:10}}) case 16:case"end":return e.stop()}}),e,this)})),b=function(){var e=this,t=arguments return new Promise((function(n,r){var o=d.apply(e,t) function i(e){u(o,n,r,i,a,"next",e)}function a(e){u(o,n,r,i,a,"throw",e)}i(void 0)}))},function(){return b.apply(this,arguments)})},{key:"afterModel",value:function(){this.kredits.reimbursementsNeedSync&&Ember.run.schedule("afterRender",this.kredits.syncReimbursements,this.kredits.syncReimbursements.perform),Ember.run.schedule("afterRender",this.kredits.fetchMissingReimbursements,this.kredits.fetchMissingReimbursements.perform)}}])&&c(t.prototype,n),r&&c(t,r),Object.defineProperty(t,"prototype",{writable:!1}),y}()).prototype,"browserCache",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),i=m(r.prototype,"kredits",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r) e.default=y})),define("kredits-web/routes/budget/expenses",["exports"],(function(e){function t(e,t){for(var n=0;n0&&void 0!==n[0]?n[0]:"bitstamp",!this.exchangeRatesLoaded){e.next=3 break}return e.abrupt("return") case 3:e.t0=t,e.next="bitstamp"===e.t0?6:12 break case 6:return e.next=8,g("btceur") case 8:return this.btceur=e.sent,e.next=11,g("btcusd") case 11:this.btcusd=e.sent case 12:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})}])&&c(t.prototype,n),r&&c(t,r),Object.defineProperty(t,"prototype",{writable:!1}),b}()).prototype,"btceur",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),u=m(o.prototype,"btcusd",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),o) e.default=k})),define("kredits-web/services/kredits",["exports","ethers","@kredits/contracts","ember-concurrency","kredits-web/utils/group-by","kredits-web/utils/process-contributor-data","kredits-web/utils/process-contribution-data","kredits-web/utils/process-reimbursement-data","kredits-web/utils/format-kredits","kredits-web/utils/switch-network","kredits-web/config/environment","kredits-web/models/contributor","kredits-web/models/contribution","kredits-web/models/reimbursement"],(function(e,t,n,r,o,i,u,a,s,c,l,f,d,p){function b(e){return function(e){if(Array.isArray(e))return h(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||y(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function m(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"] if(!n){if(Array.isArray(e)||(n=y(e))||t&&e&&"number"==typeof e.length){n&&(e=n) var r=0,o=function(){} return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,a=!1 return{s:function(){n=n.call(e)},n:function(){var e=n.next() return u=e.done,e},e:function(e){a=!0,i=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw i}}}}function y(e,t){if(e){if("string"==typeof e)return h(e,t) var n=Object.prototype.toString.call(e).slice(8,-1) return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length) for(var n=0,r=new Array(t);n0&&e.getCurrentUser.then((function(t){e.set("currentUser",t)})),t.abrupt("return",r) case 14:case"end":return t.stop()}}),t)})))()},getCurrentUser:Ember.computed("kredits.provider","currentUserAccounts.[]",(function(){var e=this return Ember.isEmpty(this.currentUserAccounts)?Promise.resolve():this.kredits.Contributor.functions.getContributorIdByAddress(this.currentUserAccounts.firstObject).then((function(t){return 0===t?Promise.resolve():e.kredits.Contributor.getById(t)}))})),totalSupply:Ember.computed((function(){return this.kredits.Token.functions.totalSupply().then((function(e){return(0,s.default)(e)}))})),totalKreditsEarned:Ember.computed((function(){return this.kredits.Contribution.functions.totalKreditsEarned(!0)})),kreditsByContributor:Ember.computed("contributionsUnconfirmed.@each.vetoed","contributors.[]",(function(){var e=this,t=this.contributionsUnconfirmed.filterBy("vetoed",!1),n=(0,o.default)(t,"contributorId"),r=n.map((function(e){return e.value})),i=this.contributors.reject((function(e){return r.includes(e.id)})),u=n.map((function(t){var n=t.items.mapBy("amount").reduce((function(e,t){return e+t})),r=e.contributors.findBy("id",t.value) return Ember.Object.create({contributor:r,amountUnconfirmed:n,amountConfirmed:r.totalKreditsEarned,amountTotal:r.totalKreditsEarned+n})})) return i.forEach((function(e){u.push(Ember.Object.create({contributor:e,amountUnconfirmed:0,amountConfirmed:e.totalKreditsEarned,amountTotal:e.totalKreditsEarned}))})),u})),contributionsUnconfirmed:Ember.computed("contributions.[]","currentBlock",(function(){var e=this return this.contributions.filter((function(t){return t.confirmedAt>e.currentBlock}))})),contributionsConfirmed:Ember.computed("contributions.[]","currentBlock",(function(){var e=this return this.contributions.filterBy("vetoed",!1).filter((function(t){return t.confirmedAt<=e.currentBlock}))})),reimbursementsUnconfirmed:Ember.computed("reimbursements.[]","currentBlock",(function(){var e=this return this.reimbursements.filter((function(t){return t.confirmedAt>e.currentBlock}))})),reimbursementsConfirmed:Ember.computed("reimbursements.[]","currentBlock",(function(){var e=this return this.reimbursements.filterBy("vetoed",!1).filter((function(t){return t.confirmedAt<=e.currentBlock}))})),reimbursementsPending:Ember.computed("reimbursements.[]","pendingTx",(function(){return this.reimbursements.filter((function(e){return!e.id}))})),loadInitialData:function(){var e=this return g(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.browserCache.contributors.length() case 2:if(!(t.sent>0)){t.next=9 break}return t.next=6,e.loadObjectsFromCache("Contributor") case 6:e.set("contributorsNeedSync",!0),t.next=11 break case 9:return t.next=11,e.fetchContributors() case 11:return t.next=13,e.browserCache.contributions.length() case 13:if(!(t.sent>0)){t.next=20 break}return t.next=17,e.loadObjectsFromCache("Contribution") case 17:e.set("contributionsNeedSync",!0),t.next=22 break case 20:return t.next=22,e.fetchContributions({page:{size:40}}) case 22:return t.next=24,e.updateMissingHistoricContributionsCount() case 24:return t.abrupt("return",Promise.resolve()) case 25:case"end":return t.stop()}}),t)})))()},updateMissingHistoricContributionsCount:function(){var e=this return g(regeneratorRuntime.mark((function t(){var n return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.kredits.Contribution.count case 2:n=t.sent,e.set("missingHistoricContributionsCount",n-e.contributions.length),console.debug("Missing ".concat(e.missingHistoricContributionsCount," historic contributions (out of ").concat(n," overall)")) case 5:case"end":return t.stop()}}),t)})))()},addContributor:function(e){if(e.github_uid){var t=parseInt(e.github_uid) e.github_uid=t}return console.debug("[kredits] add contributor",e),this.kredits.Contributor.add(e,{gasLimit:35e4}).then((function(e){console.debug("[kredits] add contributor response",e)}))},updateContributor:function(e,t){if(t.github_uid){var n=parseInt(t.github_uid) t.github_uid=n}return console.debug("[kredits] update contributor",t),this.kredits.Contributor.updateProfile(e,t,{gasLimit:35e4}).then((function(e){console.debug("[kredits] updateProfile response",e)}))},fetchContributor:function(e){var t=this return g(regeneratorRuntime.mark((function n(){return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return console.debug("[kredits] Fetching contributor from the network"),n.abrupt("return",t.kredits.Contributor.getById(e).then((function(e){return t.loadContributorFromData(e)}))) case 2:case"end":return n.stop()}}),n)})))()},fetchContributors:function(){var e=this return console.debug("[kredits] Fetching all contributors from the network"),this.kredits.Contributor.all().then((function(t){return t.forEach((function(t){e.loadContributorFromData(t)}))})).then((function(){return e.cacheLoadedContributors()}))},loadContributorFromData:function(e){var t=f.default.create((0,i.default)(e)),n=this.contributors.findBy("id",t.id) return n&&this.contributors.removeObject(n),this.contributors.pushObject(t),t},cacheLoadedContributors:function(){var e=this return g(regeneratorRuntime.mark((function t(){var n,r,o return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=m(e.contributors),t.prev=1,n.s() case 3:if((r=n.n()).done){t.next=9 break}return o=r.value,t.next=7,e.browserCache.contributors.setItem(o.id.toString(),o.serialize()) case 7:t.next=3 break case 9:t.next=14 break case 11:t.prev=11,t.t0=t.catch(1),n.e(t.t0) case 14:return t.prev=14,n.f(),t.finish(14) case 17:return console.debug("[kredits] Cached ".concat(e.contributors.length," contributors in browser storage")),t.abrupt("return",Promise.resolve()) case 19:case"end":return t.stop()}}),t,null,[[1,11,14,17]])})))()},loadContributorsFromCache:function(){var e=this return g(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.browserCache.contributors.iterate((function(t){e.contributors.pushObject(f.default.create(JSON.parse(t)))})).then((function(){console.debug("[kredits] Loaded ".concat(e.contributors.length," contributors from cache"))}))) case 1:case"end":return t.stop()}}),t)})))()},syncContributors:(0,r.task)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetchContributors() case 2:this.set("contributorsNeedSync",!1) case 3:case"end":return e.stop()}}),e,this)}))),addContribution:function(e){var t=this return console.debug("[kredits] Adding contribution",e),this.kredits.Contribution.add(e,{gasLimit:3e5}).then((function(n){console.debug("[kredits] Contribution.add response",n),e.contributor=t.contributors.findBy("id",e.contributorId) var r=d.default.create(e) return r.set("pendingTx",n),r.set("confirmedAtBlock",t.currentBlock+40320),t.contributions.pushObject(r),r}))},fetchContributions:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{page:{size:200}} return console.debug("[kredits] Fetching contributions from the network"),this.kredits.Contribution.all(t).then((function(t){return t.map((function(t){return e.loadContributionFromData(t)}))})).then((function(t){var n=t.map((function(t){return e.browserCache.contributions.setItem(t.id.toString(),t.serialize())})) return Promise.all(n).then((function(){console.debug("[kredits] Cached ".concat(t.length," contributions in browser storage"))}))}))},loadContributionFromData:function(e){var t=d.default.create((0,u.default)(e)) t.set("contributor",this.contributors.findBy("id",e.contributorId)) var n=this.contributions.findBy("id",t.id) return n&&this.contributions.removeObject(n),this.contributions.pushObject(t),t},cacheLoadedContributions:function(){var e=this return g(regeneratorRuntime.mark((function t(){var n,r,o return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:n=m(e.contributions),t.prev=1,n.s() case 3:if((r=n.n()).done){t.next=9 break}return o=r.value,t.next=7,e.browserCache.contributions.setItem(o.id.toString(),o.serialize()) case 7:t.next=3 break case 9:t.next=14 break case 11:t.prev=11,t.t0=t.catch(1),n.e(t.t0) case 14:return t.prev=14,n.f(),t.finish(14) case 17:return console.debug("[kredits] Cached ".concat(e.contributions.length," contributions in browser storage")),t.abrupt("return",Promise.resolve()) case 19:case"end":return t.stop()}}),t,null,[[1,11,14,17]])})))()},loadContributionsFromCache:function(){var e=this return g(regeneratorRuntime.mark((function t(){return regeneratorRuntime.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.browserCache.contributions.iterate((function(t){e.contributions.pushObject(d.default.create(JSON.parse(t)))})).then((function(){console.debug("[kredits] Loaded ".concat(e.contributions.length," contributions from cache"))}))) case 1:case"end":return t.stop()}}),t)})))()},contributionTasks:(0,r.taskGroup)().enqueue(),syncContributions:(0,r.task)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetchNewContributions.perform() case 2:return e.next=4,this.syncUnconfirmedContributions.perform() case 4:return e.next=6,this.updateMissingHistoricContributionsCount() case 6:this.set("contributionsNeedSync",!1) case 7:case"end":return e.stop()}}),e,this)}))).group("contributionTasks"),fetchNewContributions:(0,r.task)(regeneratorRuntime.mark((function e(){var t,n,r,o,i,u return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.kredits.Contribution.count case 2:if(t=e.sent,n=Math.max.apply(null,this.contributions.mapBy("id")),!((r=t-n)>0)){e.next=20 break}console.debug("[kredits] Fetching ".concat(r," new contributions")),o=n case 8:if(!(o<=t)){e.next=18 break}return e.next=11,this.kredits.Contribution.getById(o) case 11:return i=e.sent,u=this.loadContributionFromData(i),e.next=15,this.browserCache.contributions.setItem(u.id.toString(),u.serialize()) case 15:o++,e.next=8 break case 18:e.next=21 break case 20:console.debug("[kredits] No new contributions to fetch") case 21:case"end":return e.stop()}}),e,this)}))),fetchMissingContributions:(0,r.task)(regeneratorRuntime.mark((function e(){var t,n,r,o,i,u,a,s return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.kredits.Contribution.count case 2:if(t=e.sent,(n=b(Array(t+1).keys())).shift(),r=new Set(this.contributions.mapBy("id")),0!==(o=n.filter((function(e){return!r.has(e)}))).length){e.next=10 break}return console.debug("[kredits] No contributions left to fetch"),e.abrupt("return") case 10:console.debug("[kredits] Fetching ".concat(o.length," past contributions")),i=0,u=t case 13:if(!(u>0)){e.next=29 break}if(!r.has(u)){e.next=18 break}return e.abrupt("continue",26) case 18:return e.next=20,this.kredits.Contribution.getById(u) case 20:return a=e.sent,s=this.loadContributionFromData(a),e.next=24,this.browserCache.contributions.setItem(s.id.toString(),s.serialize()) case 24:++i%20==0&&console.debug("[kredits] Fetched ".concat(i," more contributions")) case 26:u--,e.next=13 break case 29:console.debug("[kredits] Cached ".concat(i," past contributions")) case 30:case"end":return e.stop()}}),e,this)}))).group("contributionTasks"),syncUnconfirmedContributions:(0,r.task)(regeneratorRuntime.mark((function e(){var t,n,r,o,i return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(this.contributionsUnconfirmed.length>0)){e.next=25 break}console.debug("[kredits] Syncing unconfirmed contributions"),t=m(this.contributionsUnconfirmed),e.prev=3,t.s() case 5:if((n=t.n()).done){e.next=15 break}return r=n.value,e.next=9,this.kredits.Contribution.getById(r.id) case 9:return o=e.sent,i=this.loadContributionFromData(o),e.next=13,this.browserCache.contributions.setItem(r.id.toString(),i.serialize()) case 13:e.next=5 break case 15:e.next=20 break case 17:e.prev=17,e.t0=e.catch(3),t.e(e.t0) case 20:return e.prev=20,t.f(),e.finish(20) case 23:e.next=26 break case 25:console.debug("[kredits] No unconfirmed contributions to sync") case 26:case"end":return e.stop()}}),e,this,[[3,17,20,23]])}))),veto:function(e){console.debug("[kredits] veto against",e) var t=this.contributions.findBy("id",e) return this.kredits.Contribution.functions.veto(e,{gasLimit:3e5}).then((function(e){return console.debug("[kredits] veto response",e),t.set("pendingTx",e),e}))},fetchObjects:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{page:{size:200}},r=e.toLowerCase() return console.debug("[kredits] Fetching ".concat(r,"s from the network")),this.kredits[e].all(n).then((function(n){return n.map((function(n){return t["load".concat(e,"FromData")](n)}))})).then((function(e){var n=e.map((function(e){return t.browserCache[r+"s"].setItem(e.id.toString(),e.serialize())})) return Promise.all(n).then((function(){console.debug("[kredits] Cached ".concat(e.length," ").concat(r+"s"," in browser storage"))}))}))},removeObjectFromCollectionIfLoaded:function(e,t){var n=this[e].findBy("id",t) n&&this[e].removeObject(n)},cacheLoadedObjects:function(e){var t=this return g(regeneratorRuntime.mark((function n(){var r,o,i return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:r=m(t[e]),n.prev=1,r.s() case 3:if((o=r.n()).done){n.next=9 break}return i=o.value,n.next=7,t.browserCache[e].setItem(i.id,i.serialize()) case 7:n.next=3 break case 9:n.next=14 break case 11:n.prev=11,n.t0=n.catch(1),r.e(n.t0) case 14:return n.prev=14,r.f(),n.finish(14) case 17:console.debug("[kredits] Cached ".concat(t[e].length," ").concat(e," in browser storage")) case 18:case"end":return n.stop()}}),n,null,[[1,11,14,17]])})))()},loadObjectsFromCache:function(e){var t=this return g(regeneratorRuntime.mark((function n(){var r return regeneratorRuntime.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return r=e.toLowerCase()+"s",n.abrupt("return",t.browserCache[r].iterate((function(n){var o=w[e].create(JSON.parse(n)) t.removeObjectFromCollectionIfLoaded(r,o.id),t[r].pushObject(o)})).then((function(){console.debug("[kredits] Loaded ".concat(t[r].length," ").concat(r," from cache"))}))) case 2:case"end":return n.stop()}}),n)})))()},syncTaskGroup:(0,r.taskGroup)().enqueue(),fetchNewObjects:(0,r.task)(regeneratorRuntime.mark((function e(t){var n,r,o,i,u,a,s return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.toLowerCase()+"s",e.next=3,this.kredits[t].functions["".concat(n,"Count")]() case 3:if(r=e.sent,o=Math.max.apply(null,this[n].mapBy("id")),!((i=r-o)>0)){e.next=21 break}console.debug("[kredits] Fetching ".concat(i," new ").concat(n)),u=o case 9:if(!(u<=r)){e.next=19 break}return e.next=12,this.kredits[t].getById(u) case 12:return a=e.sent,s=this["load".concat(t,"FromData")](a),e.next=16,this.browserCache[n].setItem(s.id.toString(),s.serialize()) case 16:u++,e.next=9 break case 19:e.next=22 break case 21:console.debug("[kredits] No new ".concat(n," to fetch")) case 22:case"end":return e.stop()}}),e,this)}))),fetchMissingObjects:(0,r.task)(regeneratorRuntime.mark((function e(t){var n,r,o,i,u,a,s,c,l return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.toLowerCase()+"s",e.next=3,this.kredits[t].functions["".concat(n,"Count")]() case 3:if(r=e.sent,(o=b(Array(r+1).keys())).shift(),i=new Set(this[n].mapBy("id")),0!==(u=o.filter((function(e){return!i.has(e)}))).length){e.next=11 break}return console.debug("[kredits] No ".concat(n," left to fetch")),e.abrupt("return") case 11:console.debug("[kredits] Fetching ".concat(u.length," past ").concat(n)),a=0,s=r case 14:if(!(s>0)){e.next=30 break}if(!i.has(s)){e.next=19 break}return e.abrupt("continue",27) case 19:return e.next=21,this.kredits[t].getById(s) case 21:return c=e.sent,l=this["load".concat(t,"FromData")](c),e.next=25,this.browserCache[n].setItem(l.id.toString(),l.serialize()) case 25:++a%20==0&&console.debug("[kredits] Fetched ".concat(a," more ").concat(n)) case 27:s--,e.next=14 break case 30:console.debug("[kredits] Cached ".concat(a," past ").concat(n)) case 31:case"end":return e.stop()}}),e,this)}))),syncUnconfirmedObjects:(0,r.task)(regeneratorRuntime.mark((function e(t){var n,r,o,i,u,a return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.toLowerCase()+"s",!(this.get("".concat(n,"Unconfirmed")).length>0)){e.next=28 break}console.debug("[kredits] Syncing unconfirmed ".concat(n)),r=m(this["".concat(n,"Unconfirmed")]),e.prev=4,r.s() case 6:if((o=r.n()).done){e.next=18 break}if(i=o.value,!Ember.isEmpty(i.id)){e.next=10 break}return e.abrupt("return") case 10:return e.next=12,this.kredits[t].getById(i.id) case 12:return u=e.sent,a=this["load".concat(t,"FromData")](u),e.next=16,this.browserCache[n].setItem(i.id.toString(),a.serialize()) case 16:e.next=6 break case 18:e.next=23 break case 20:e.prev=20,e.t0=e.catch(4),r.e(e.t0) case 23:return e.prev=23,r.f(),e.finish(23) case 26:e.next=29 break case 28:console.debug("[kredits] No unconfirmed ".concat(n," to sync")) case 29:case"end":return e.stop()}}),e,this,[[4,20,23,26]])}))),vetoAgainstObject:function(e,t){console.debug("[kredits] veto against ".concat(e.toLowerCase()),t) var n=this[e.toLowerCase()+"s"].findBy("id",t) return this.kredits[e].functions.veto(t,{gasLimit:3e5}).then((function(e){return console.debug("[kredits] veto response",e),n.set("pendingTx",e),e}))},loadReimbursementFromData:function(e){var t=p.default.create((0,a.default)(e)) return t.set("contributor",this.contributors.findBy("id",e.recipientId)),this.removeObjectFromCollectionIfLoaded("reimbursements",t.id),this.reimbursements.pushObject(t),t},addReimbursement:function(e){var t=this return console.debug("[kredits] add reimbursement",e),this.kredits.Reimbursement.add(e,{gasLimit:3e5}).then((function(n){console.debug("[kredits] add reimbursement response",n) var r=p.default.create(e) return r.setProperties({contributor:t.contributors.findBy("id",e.recipientId),pendingTx:n,confirmedAt:t.currentBlock+40320}),t.reimbursements.pushObject(r),n.wait().then((function(e){return console.debug("[kredits] tx successful",e)})).catch((function(e){window.alert("The transaction failed to execute. Please check the browser console."),console.log("[kredits] tx error",e)})),r}))},syncReimbursements:(0,r.task)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetchNewObjects.perform("Reimbursement") case 2:return e.next=4,this.syncUnconfirmedObjects.perform("Reimbursement") case 4:this.set("reimbursementsNeedSync",!1) case 5:case"end":return e.stop()}}),e,this)}))).group("syncTaskGroup"),fetchMissingReimbursements:(0,r.task)(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.fetchMissingObjects.perform("Reimbursement") case 2:case"end":return e.stop()}}),e,this)}))).group("syncTaskGroup"),vetoReimbursement:function(e){console.debug("[kredits] veto against reimbursement",e) var t=this.reimbursements.findBy("id",e) return this.kredits.Reimbursement.functions.veto(e,{gasLimit:3e5}).then((function(e){return console.debug("[kredits] veto response",e),t.set("pendingTx",e),e}))},addContractEventHandlers:function(){this.kredits.Contributor.on("ContributorProfileUpdated",this.handleContributorChange.bind(this)).on("ContributorAccountUpdated",this.handleContributorChange.bind(this)).on("ContributorAdded",this.handleContributorChange.bind(this)),this.kredits.Contribution.on("ContributionAdded",this.handleContributionAdded.bind(this)).on("ContributionVetoed",this.handleContributionVetoed.bind(this)),this.kredits.Reimbursement.on("ReimbursementAdded",this.handleReimbursementAdded.bind(this)).on("ReimbursementVetoed",this.handleReimbursementVetoed.bind(this)),this.kredits.Token.on("Transfer",this.handleTransfer.bind(this))},handleContributorChange:function(e){var t=arguments,n=this return g(regeneratorRuntime.mark((function r(){var o,i,u,a,s,c return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:for(console.debug("[kredits] Contributor add/update event received for ID",e),o=t.length,i=new Array(o>1?o-1:0),u=1;u1&&void 0!==arguments[1]?arguments[1]:{},r=t.default.utils.formatEther(e) n.decimals||(r=parseInt(r).toString()) return r}})),define("kredits-web/utils/get-locale",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language}})),define("kredits-web/utils/group-by",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){var n=Ember.A(),r=e r&&r.forEach((function(e){var r=e[t],o=n.findBy("value",r) Ember.isPresent(o)?o.items.push(e):(o={property:t,value:r,items:[e]},n.push(o))})) return n}})),define("kredits-web/utils/is-valid-amount",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var t=parseFloat(e) return!Number.isNaN(t)&&t>0}})),define("kredits-web/utils/process-contribution-data",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={} e.confirmedAtBlock&&"function"==typeof e.confirmedAtBlock.toNumber?n.confirmedAt=e.confirmedAtBlock.toNumber():"undefined"!==e.confirmedAt&&(n.confirmedAt=e.confirmedAt) var r=["id","contributorId","amount","vetoed","ipfsHash","kind","description","url","date","time","pendingTx"] r.forEach((function(t){n[t]=e[t]})),t.includeDetails&&(n.details=e.details) return n}})),define("kredits-web/utils/process-contributor-data",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var t,n={balance:e.balanceInt,totalKreditsEarned:e.totalKreditsEarned,contributionsCount:null===(t=e.contributionsCount)||void 0===t?void 0:t.toNumber()} return["id","account","accounts","ipfsHash","isCore","kind","name","url","github_username","github_uid","wiki_username","zoom_display_name"].forEach((function(t){n[t]=e[t]})),n}})),define("kredits-web/utils/process-reimbursement-data",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var t={amount:e.amount.toNumber()} e.confirmedAtBlock&&"function"==typeof e.confirmedAtBlock.toNumber?t.confirmedAt=e.confirmedAtBlock.toNumber():"undefined"!==e.confirmedAt&&(t.confirmedAt=e.confirmedAt) return["id","recipientId","token","vetoed","ipfsHash","expenses","pendingTx"].forEach((function(n){t[n]=e[n]})),t}})),define("kredits-web/utils/read-file-content",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){var t=new FileReader return new Promise((function(n,r){t.onload=function(e){return n(e.target.result)},t.onerror=function(e){return r(e)},t.readAsText(e)}))}})),define("kredits-web/utils/switch-network",["exports","kredits-web/config/environment"],(function(e,t){function n(e,t,n,r,o,i,u){try{var a=e[i](u),s=a.value}catch(c){return void n(c)}a.done?t(s):Promise.resolve(s).then(r,o)}function r(e){return function(){var t=this,r=arguments return new Promise((function(o,i){var u=e.apply(t,r) function a(e){n(u,o,i,a,s,"next",e)}function s(e){n(u,o,i,a,s,"throw",e)}a(void 0)}))}}function o(){return(o=r(regeneratorRuntime.mark((function e(){var n,r,o return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.default.web3NetworkName,r=t.default.web3ChainId,o="0x".concat(Number(r).toString(16)),e.prev=3,e.next=6,window.ethereum.request({method:"wallet_switchEthereumChain",params:[{chainId:o}]}) case 6:e.next=16 break case 8:if(e.prev=8,e.t0=e.catch(3),4902!==e.t0.code){e.next=15 break}return e.next=13,window.ethereum.request({method:"wallet_addEthereumChain",params:[{chainId:o,chainName:n,rpcUrls:[t.default.web3ProviderUrl],nativeCurrency:{name:"tRBTC",symbol:"tRBTC",decimals:18}}]}) case 13:e.next=16 break case 15:console.warn("Failed to switch chains:",e.t0.message) case 16:case"end":return e.stop()}}),e,null,[[3,8]])})))).apply(this,arguments)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){return o.apply(this,arguments)}})),define("kredits-web/config/environment",[],(function(){try{var e="kredits-web/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),n={default:JSON.parse(decodeURIComponent(t))} return Object.defineProperty(n,"__esModule",{value:!0}),n}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}})),runningTests||require("kredits-web/app").default.create({name:"kredits-web",version:"2.2.1+b32f805c"}) //# sourceMappingURL=kredits-web-6e9680db1dd23d824c8c839af814f850.map