UNPKG

trello-sprinter

Version:

Provides summarizations of sprint activity in a Trello project

1 lines 48.2 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.TrelloSprinter=t():e.TrelloSprinter=t()}(self,(()=>(()=>{"use strict";var e,t,r={729:(e,t,r)=>{r.d(t,{default:()=>M});r(970);var n={sel:"#trello",version:1,apiEndpoint:"https://api.trello.com",authEndpoint:"https://trello.com",intentEndpoint:"https://trello.com",key:"",localPrefix:"",board:"",after:null,views:{board:{},sprint:{}},name:"TrelloSprinter",cards:["Design","Risks","Meetings","To Do","This Sprint Active","This Sprint Completed","Completed"]};function o(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return i(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 i(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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 a,s=!0,l=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){l=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(l)throw a}}}}function i(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var a=function(){};a.merge=function(e,t){var r={};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);for(var o in t)t.hasOwnProperty(o)&&(r[o]=t[o]);return r},a.strip_tags=function(e){return e.replace(/<(?:.|\n)*?>/gm,"")},a.createElement=function(e,t){var r=document.createElement(e);return void 0!==t&&a.addClass(r,t),r},a.addClass=function(e,t){var r,n=o(t.split(" "));try{for(n.s();!(r=n.n()).done;){var i=r.value;e.classList?e.classList.add(i):e.className+=" "+i}}catch(e){n.e(e)}finally{n.f()}},a.removeClass=function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")},a.ready=function(e){(document.attachEvent?"complete"===document.readyState:"loading"!==document.readyState)?e():document.addEventListener("DOMContentLoaded",e)},a.formatDatetime=function(e,t){function r(e,t){for(var r=""+e;r.length<t;)r="0"+r;return r}void 0===t&&(t="n-d-Y h:ia");var n=e.getHours(),o=n,i="a";0==n?o=12:12==n?i="p":n>12&&(o=n-12,i="p");for(var a="",s=0;s<t.length;s++)switch(t.charAt(s)){case"n":a+=e.getMonth()+1;break;case"m":a+=r(e.getMonth()+1,2);break;case"d":a+=r(e.getDate(),2);break;case"Y":a+=e.getFullYear();break;case"g":a+=o;break;case"h":a+=r(o,2);break;case"i":a+=r(e.getMinutes(),2);break;case"s":a+=r(e.getSeconds(),2);break;case"a":a+=i;break;default:a+=t.charAt(s)}return a};var s=function(e,t,r){e.innerHTML="";var n=document.createElement("div");e.appendChild(n),a.addClass(n,"trello-sprinter");var o=document.createElement("p");n.appendChild(o),a.addClass(o,"center");var i=document.createElement("button");o.appendChild(i),i.innerText="Connect to Trello",i.addEventListener("click",(function(e){e.preventDefault(),t.authorize()}))},l=function(e,t){this.board=e,this.id=t.id,this.name=t.fullName,this.data=t},d=function(e,t,r){var n=this;this.board=e,this.list=t,this.id=r.id,this.name=a.strip_tags(r.name),this.data=r,this.desc="<p>"+a.strip_tags(r.desc).replace(/\n/gm,"<p>")+"</p>",this.created=new Date(1e3*parseInt(r.id.substr(0,8),16)),this.members=[],r.idMembers.forEach((function(e){n.members.push(e)})),this.comments=[],this.updates=[]};d.prototype.sort_updates=function(){this.updates.sort((function(e,t){return e.date<t.date?-1:e.date==t.date?0:1}))},d.prototype.final_time=function(){return this.updates.length>0?this.updates[this.updates.length-1].date:this.created},d.count_members=function(e,t){var r={};return t.forEach((function(t){t.members.forEach((function(t){var n=e.members[t];r.hasOwnProperty(n.id)?r[n.id].cnt++:r[n.id]={cnt:1,member:n}}))})),r};var c=function(e,t){this.board=e,this.id=t.id,this.name=t.name,this.data=t,this.cards=[],this.cards_by_id={}};c.prototype.add_card=function(e){this.cards.push(e),this.cards_by_id[e.id]=e},c.prototype.find_card=function(e){return this.cards_by_id.hasOwnProperty(e)?this.cards_by_id[e]:null},c.prototype.count_members=function(){return d.count_members(this.board,this.cards)};var p=function(e,t,r){this.board=e,this.card=t,this.data=r,this.member=r.idMemberCreator,this.listBefore=r.data.listBefore.name,this.listAfter=r.data.listAfter.name,this.date=new Date(Date.parse(r.date))},f=function(e,t,r){this.board=e,this.card=t,this.member=r.idMemberCreator,this.text="<p>"+a.strip_tags(r.data.text).replace(/\n/gm,"<p>")+"</p>",this.data=r,this.date=new Date(Date.parse(r.date))},u=function(e,t){this.data=e,this.id=e.id,this.name=e.name,this.lists=[],this.members={},this.options=t,this.find_card=function(e){for(var t=0;t<this.lists.length;t++){var r=this.lists[t].find_card(e);if(null!==r)return r}return null},this.add_member=function(e){this.members[e.id]=e}};u.fetch=function(e,t,r,n,o,i){n.innerText="Fetching board "+t;var a=0,s=null;function m(t){v(),e.get("/board/"+t.id+"/members?fields=all",(function(e){e.forEach((function(e){var r=new l(t,e);t.add_member(r)})),g()}),(function(e){i("Unable to fetch Trello membership")}),n)}function h(o){n.innerText="Fetching lists for "+t,v(),e.get("/boards/"+o.id+"/lists?filter=open",(function(t){t.forEach((function(e){if(!e.closed){var t=new c(o,e);o.lists.push(t)}})),function(t){n.innerText="Fetching cards";for(var o="",a=0;a<t.lists.length;a++){var s=t.lists[a];o.length>0&&(o+=","),o+="/lists/"+s.id+"/cards/open"}v(),e.get("/batch?urls="+o,(function(o){for(var a=function(e){var n=t.lists[e];o[e][200].forEach((function(e){if(!e.closed){var o=new d(t,n,e);null!==r.after?o.created.getTime()/1e3>r.after&&n.add_card(o):n.add_card(o)}}))},s=0;s<o.length&&s<t.lists.length;s++)a(s);!function(t){v(),e.get("/board/"+t.id+"/actions?filter=commentCard,updateCard:idList&limit=1000",(function(e){e.forEach((function(e){if(!e.closed)if("commentCard"===e.type){var r=t.find_card(e.data.card.id);if(null!==r){var n=new f(t,r,e);r.comments.push(n)}}else if("updateCard"===e.type){var o=t.find_card(e.data.card.id);if(null!==o){var i=new p(t,o,e);o.updates.push(i)}}})),t.lists.forEach((function(e){e.cards.forEach((function(e){e.sort_updates()}))})),g()}),(function(e){i("Unable to fetch Trello card information")}),n)}(t),g()}),(function(e){i("Unable to fetch Trello cards")}),n)}(o),g()}),(function(e){i("Unable to fetch Trello lists")}),n)}function v(){a++}function g(){0===--a&&o(s)}v(),e.get("/member/me/boards?fields=all",(function(e){for(var n=0;n<e.length;n++){var o=e[n];if(o.name.toLowerCase()===t.toLowerCase()&&!o.closed){m(s=new u(o,r)),h(s);break}}null!==s?g():i("Unable to find Trello board "+t)}),(function(e){i("Unable to fetch Trello boards")}),n)},u.prototype.find_list=function(e){e=e.toLowerCase();for(var t=0;t<this.lists.length;t++){var r=this.lists[t];if(r.name.toLowerCase()===e)return r}return null};var m=function(){};function h(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return v(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 v(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}m.prototype.present=function(e,t){};var g=function(e,t){m.call(this),this.present=function(){var n=a.createElement("div","trello-view");e.appendChild(n);var o,i=h(t.lists);try{for(i.s();!(o=i.n()).done;){var s=o.value;r(n,s)}}catch(e){i.e(e)}finally{i.f()}};var r=function(e,t){var r=a.createElement("h3","trello-plus");r.innerText=t.name,e.appendChild(r);var o=a.createElement("div","trello-expand");o.style.display="none",e.appendChild(o),r.addEventListener("click",(function(e){"none"===o.style.display?(o.style.display="block",a.removeClass(r,"trello-plus"),a.addClass(r,"trello-minus")):(o.style.display="none",a.removeClass(r,"trello-minus"),a.addClass(r,"trello-plus"))}));var i=t.count_members(),s="<em>Cards:</em>["+t.cards.length+"] ";for(var l in i)i.hasOwnProperty(l)&&(s+=i[l].member.name+":["+i[l].cnt+"]&nbsp;&nbsp;");var d=a.createElement("p","trello-count");o.appendChild(d),d.innerHTML=s;var c,p=h(t.cards);try{for(p.s();!(c=p.n()).done;){var f=c.value;n(o,f)}}catch(e){p.e(e)}finally{p.f()}},n=function(e,t){var r=a.formatDatetime(t.created),n=a.createElement("div","trello-card");e.appendChild(n),n.innerHTML='<h4><span class="trello-date">'.concat(r,"</span>").concat(t.name,"</h4>");var s,l="",d=h(t.members);try{for(d.s();!(s=d.n()).done;){var c=s.value,p=t.board.members[c];l.length>0&&(l+=" / "),l+="<span>"+p.name+"</span>"}}catch(e){d.e(e)}finally{d.f()}var f=a.createElement("p","trello-card-members");n.appendChild(f),f.innerHTML=l;var u=a.createElement("div","trello-description");n.appendChild(u),u.innerHTML=t.desc,o(n,t),i(n,t)};this.presentCard=n;var o=function(e,t){if(0!==t.comments.length){var r=a.createElement("div","trello-comments");e.appendChild(r);var n,o=h(t.comments);try{for(o.s();!(n=o.n()).done;){var i=n.value,s=t.board.members[i.member],l=void 0!==s?s.name:"undefined",d=a.formatDatetime(i.date),c=a.createElement("h5");r.appendChild(c),c.innerHTML='<span class="trello-date">'.concat(d,"</span>").concat(l);var p=a.createElement("div");r.appendChild(p),p.innerHTML=i.text}}catch(e){o.e(e)}finally{o.f()}}},i=function(e,t){if(0!==t.updates.length){var r=a.createElement("div","trello-updates");e.appendChild(r);var n,o=h(t.updates);try{for(o.s();!(n=o.n()).done;){var i=n.value,s=t.board.members[i.member],l=void 0!==s?s.name:"undefined",d=a.formatDatetime(i.date),c=document.createElement("p");r.appendChild(c),c.innerHTML='<span class="date">'+d+"</span> "+l+' moved from <span class="list">'+i.listBefore+'</span> to <span class="list">'+i.listAfter+"</span>"}}catch(e){o.e(e)}finally{o.f()}}}};(g.prototype=Object.create(m.prototype)).constructor=g;var b=function(e,t,r){this.sprints=e,this.start_meeting=t,this.end_meeting=r,this.completed=[]};b.prototype.end_time=function(){return new Date(this.end_meeting.created.getTime()+1e3*this.sprints.sprint_time_slop)};var y=function(e,t){this.member=t,this.sprints=e,this.meetings_count=0,this.meetings_attended=0,this.completed_count=0,this.completed_total=0,this.reviews_count=0,this.reviews_total=0};function w(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return _(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 _(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function _(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}y.prototype.meetings_percentage=function(){if(this.meetings_count<=this.sprints.meetings_slop)return"(insufficient meetings)";var e=this.meetings_attended/(this.meetings_count-this.sprints.meetings_slop);return e>1&&(e=1),e.toFixed(2)},y.prototype.completed_factor=function(e){if(0===this.completed_total)return 0;var t=this.completed_count/(this.completed_total/e*this.sprints.completed_factor);return t>1&&(t=1),t.toFixed(2)},y.prototype.reviewing_factor=function(e){if(0===this.reviews_total)return 0;var t=this.reviews_count/(this.reviews_total/e*this.sprints.reviewing_factor);return t>1&&(t=1),t.toFixed(2)};var E=function(e){for(var t in this.meetings_slop=1,this.sprint_time_slop=18e3,this.completed_factor=.8,this.reviewing_factor=.8*.9,this.board=e,this.errors=[],this.warnings=[],this.members={},this.sprints=[],this.design=null,this.risks=null,this.meetings=null,this.todo=null,this.sprint_active=null,this.sprint_completed=null,this.completed=null,e.members){var r=e.members[t];"cse335"!==r.name.toLowerCase()&&(this.members[t]=new y(this,r))}this.find_lists(),this.errors.length>0?this.error("e900"):(this.order_test(),this.meeting_attendance(),this.create_sprints(),this.sort_completed(),this.completed_statistics())};function C(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=function(e,t){if(!e)return;if("string"==typeof e)return A(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 A(e,t)}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},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,a=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw i}}}}function A(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}E.prototype.find_lists=function(){this.design=this.board.find_list("Design"),null===this.design&&this.error("e001"),this.risks=this.board.find_list("Risks"),null===this.risks&&this.error("e002"),this.meetings=this.board.find_list("Meetings"),null===this.meetings&&this.error("e003"),this.todo=this.board.find_list("To Do"),null===this.todo&&this.error("e004"),this.sprint_active=this.board.find_list("This Sprint Active"),null===this.sprint_active&&this.error("e005"),this.sprint_completed=this.board.find_list("This Sprint Completed"),null===this.sprint_completed&&this.error("e006"),this.completed=this.board.find_list("Completed"),null===this.completed&&this.error("e007")},E.prototype.order_test=function(){for(var e=this.board.options.cards,t=0;t<e.length;t++)if(this.board.lists[t].name.toLowerCase()!==e[t].toLowerCase())return void this.warning("w001")},E.prototype.meeting_attendance=function(){var e=this,t=this.meetings.cards.length;for(var r in this.members){var n=this.members[r];n.meetings_count=t,n.meetings_attended=0}this.meetings.cards.forEach((function(t){t.members.forEach((function(t){var r=e.find_member(t);null!==r&&r.meetings_attended++}))}))},E.prototype.create_sprints=function(){var e=this.meetings.cards.slice();e.sort((function(e,t){return e.created<t.created?-1:e.created===t.created?0:1}));for(var t=0;t<e.length-1;t++)this.sprints.push(new b(this,e[t],e[t+1]))},E.prototype.sort_completed=function(){var e=this,t=this.completed.cards.slice();t.sort((function(e,t){var r=e.final_time(),n=t.final_time();return r===n?0:r<n?-1:1})),t.forEach((function(t){var r,n=!1,o=w(t.updates);try{for(o.s();!(r=o.n()).done;){"Risk"===r.value.listBefore&&(n=!0)}}catch(e){o.e(e)}finally{o.f()}if(!n){for(var i=t.final_time(),a=0;a<e.sprints.length;a++){if(i<=e.sprints[a].end_time())break}a>=e.sprints.length&&(a=e.sprints.length-1),e.sprints[a].completed.push(t)}}))},E.prototype.completed_statistics=function(){for(var e=0,t=0,r=0;r<this.sprints.length;r++){var n=this.sprints[r];e+=n.completed.length;for(var o=0;o<n.completed.length;o++){var i=n.completed[o];if(1===i.members.length){var a=i.members[0],s=this.find_member(a);null!==s&&s.completed_count++}else 0===i.members.length?this.warning("w002","Completed task <em>"+i.name+"</em> has no team members assigned. Nobody will get credit for that task."):this.warning("w003","Completed task <em>"+i.name+"</em> has more than one team member assigned. Nobody will get credit for that task.");if(i.comments.length>0){t++;var l=i.comments[0].member,d=this.find_member(l);null!==d&&d.reviews_count++}}}for(var c in this.members)this.members[c].completed_total=e,this.members[c].reviews_total=t},E.prototype.find_member=function(e){return this.members.hasOwnProperty(e)?this.members[e]:null},E.prototype.num_members=function(){var e=0;for(var t in this.members)this.members.hasOwnProperty(t)&&e++;return e},E.prototype.error=function(e){for(var t=0;t<this.errors.length;t++){if(this.errors[t].code===e)return}switch(e){case"e001":this.errors.push({code:e,msg:"There is no list named 'Design'"});break;case"e002":this.errors.push({code:e,msg:"There is no list named 'Risks'"});break;case"e003":this.errors.push({code:e,msg:"There is no list named 'Meetings'"});break;case"e004":this.errors.push({code:e,msg:"There is no list named 'To Do'"});break;case"e005":this.errors.push({code:e,msg:"There is no list named 'This Sprint Active'"});break;case"e006":this.errors.push({code:e,msg:"There is no list named 'This Sprint Completed'"});break;case"e007":this.errors.push({code:e,msg:"There is no list named 'Completed'"});break;case"e900":this.errors.push({code:e,msg:"Fatal errors, unable to proceed with sprints analysis"})}},E.prototype.warning=function(e,t){if(void 0===t){if("w001"===e){t="Your lists are not in the correct order. The exact order should be:";var r,n=!0,o=w(this.board.options.cards);try{for(o.s();!(r=o.n()).done;){var i=r.value;n?n=!1:t+=",",t+=" "+i}}catch(e){o.e(e)}finally{o.f()}this.warnings.push({code:e,msg:t})}}else this.warnings.push({code:e,msg:t})};var T=function(e,t){m.call(this);var r=new g(e,t);this.present=function(){var r=new E(t),s=a.createElement("div","trello-sprints");e.appendChild(s);var d=a.createElement("h2");d.innerText="Sprints Analysis",s.appendChild(d),n(s,r),o(s,r),r.errors.length>0||(i(s,r),l(s,r))};var n=function(e,t){if(0!==t.errors.length){var r=a.createElement("div","trello-errors");e.appendChild(r),r.innerHTML="<h3>Errors</h3>";var n,o=C(t.errors);try{for(o.s();!(n=o.n()).done;){var i=n.value,s=a.createElement("p");r.appendChild(s),s.innerHTML='<span class="trello-code">'+i.code+":</span> "+i.msg}}catch(e){o.e(e)}finally{o.f()}}},o=function(e,t){if(0!==t.warnings.length){var r=a.createElement("div","trello-warnings");e.appendChild(r),r.innerHTML="<h3>Warnings</h3>";var n,o=C(t.warnings);try{for(o.s();!(n=o.n()).done;){var i=n.value,s=a.createElement("p");r.appendChild(s),s.innerHTML='<span class="trello-code">'+i.code+":</span> "+i.msg}}catch(e){o.e(e)}finally{o.f()}}},i=function(e,t){var r=a.createElement("div","trello-view");e.appendChild(r);for(var n=1;n<=t.sprints.length;n++){var o=t.sprints[n-1];s(r,t,n,o)}},s=function(e,t,n,o){var i,s=a.formatDatetime(o.start_meeting.created),l=a.formatDatetime(o.end_meeting.created),c=o.completed.length,p=d.count_members(t.board,o.completed),f=0,u=C(t.sprints);try{for(u.s();!(i=u.n()).done;){f+=i.value.completed.length}}catch(e){u.e(e)}finally{u.f()}var m=0;f>0&&(m=c/(f/t.sprints.length*.8))>1&&(m=1),m=m.toFixed(2);var h=a.createElement("h3","trello-plus");e.appendChild(h),h.innerHTML='<span class="date">'+c+" tasks "+m+" / "+s+" to "+l+"</span>Sprint: "+n;var v=a.createElement("div","trello-expand");v.style.display="none",e.appendChild(v),h.addEventListener("click",(function(e){"none"===v.style.display?(v.style.display="block",a.removeClass(h,"trello-plus"),a.addClass(h,"trello-minus")):(v.style.display="none",a.removeClass(h,"trello-minus"),a.addClass(h,"trello-plus"))})),r.presentCard(v,o.start_meeting),r.presentCard(v,o.end_meeting);var g=a.createElement("p","trello-completed-header");v.appendChild(g),g.innerText="Sprint Completed Tasks";var b=a.createElement("p","trello-count");v.appendChild(b);var y="<em>Completed:</em>["+o.completed.length+"] ";for(var w in p)p.hasOwnProperty(w)&&(y+=p[w].member.name+":["+p[w].cnt+"]&nbsp;&nbsp;");b.innerHTML=y;for(var _=0;_<o.completed.length;_++){var E=o.completed[_];r.presentCard(v,E)}},l=function(e,t){var r=a.createElement("div","trello-members");for(var n in e.appendChild(r),t.members)if(t.members.hasOwnProperty(n)){var o=t.members[n];c(r,t,o)}p(r,t)},c=function(e,t,r){var n=a.createElement("div","trello-member");e.appendChild(n);var o=1===t.meetings_slop?" meeting":" meetings",i=t.num_members();n.innerHTML="<h4>"+r.member.name+"</h4><p>Meetings attended: "+r.meetings_attended+"/"+r.meetings_count+" percentage: "+r.meetings_percentage()+" <em>You are allowed to miss "+t.meetings_slop+o+"</em></p><p>Tasks completed: "+r.completed_count+"/"+(r.completed_total/i).toFixed(2)+" for a completion factor of: "+r.completed_factor(i)+"</p><p>Reviews completed: "+r.reviews_count+" for a reviewing factor of: "+r.reviewing_factor(i)+"</p>"},p=function(e,t){var r=a.createElement("div","trello-info");e.appendChild(r),r.innerHTML="<p>The completion factor for tasks is based on a metric that every team member is expected to complete "+(100*t.completed_factor).toFixed(0)+"% of an equal distribution of tasks. Values less than 1.00 indicate that you will be losing points on the assignment.</p><p>The reviewing factor for tasks is based on a metric that every team member is expected to review "+(100*t.reviewing_factor).toFixed(0)+"% of an equal distribution of tasks. This factor is based on a metric that 90% of tasks should be programming tasks. Values less than 1.00 indicate that you will be losing points on the assignment.</p>"}};(T.prototype=Object.create(m.prototype)).constructor=T;var k=function(e,t,r){m.call(this);var n=!0;void 0!==r.addHeadings&&(n=r.addHeadings),this.present=function(){var i=a.createElement("div","trello-sprint-table");e.appendChild(i);var s=a.createElement("table");i.appendChild(s),void 0!==r.class&&a.addClass(s,r.class);var l=new E(t),d=l.num_members();n&&o(s,t,l);var c="";function p(e){c+="<td>"+e+"</td>"}for(var f in l.members)if(l.members.hasOwnProperty(f)){var u=l.members[f];f=u.member.id;if(c="",p(t.name),p(d),p(u.member.name),p(u.meetings_attended),p(u.meetings_count),p(u.meetings_percentage()),p(u.completed_count),p(u.completed_total),p(u.completed_factor(d)),p(u.reviews_count),p(u.reviews_total),p(u.reviewing_factor(d)),p(l.sprints.length),l.sprints.forEach((function(e){var t=0;e.completed.forEach((function(e){1==e.members.length&&e.members[0]==f&&t++})),p(t),p(e.completed.length)})),!isNaN(n))for(var m=l.sprints.length;m<n;m++)p("&nbsp;"),p("&nbsp;");var h=a.createElement("tr");h.innerHTML=c,s.appendChild(h)}};var o=function(e,t,o){var i=a.createElement("tr");e.appendChild(i),void 0!==r.tr1class&&a.addClass(i,r.tr1class);var s="";function l(e){s+="<th><div>"+e+"</div></th>"}if(l("Team"),l("#"),l("Member"),l("Attended"),l("Total"),l("%"),l("Completed"),l("Total"),l("%"),l("Reviews"),l("Total"),l("%"),l("Sprints"),!0===n)for(var d=1;d<=o.sprints.length;d++)l(d),l("#");else for(d=1;d<=n;d++)l(d),l("#");i.innerHTML=s}};(k.prototype=Object.create(m.prototype)).constructor=k,k.prototype.table_headings=function(e,t){};var x=function(e,t,r){e.innerHTML="";var n=document.createElement("div");e.appendChild(n),a.addClass(n,"trello-sprinter");var o=document.createElement("p");n.appendChild(o),a.addClass(o,"center");var i=document.createElement("button");o.appendChild(i),i.innerText="Disconnect",i.addEventListener("click",(function(n){n.preventDefault(),t.disconnect(),new s(e,t,r)}));var l=a.createElement("p","trello-status");l.innerText="Connecting to Trello...",n.appendChild(l);var d=a.createElement("p","trello-msg");n.appendChild(d),u.fetch(t,r.board,r,d,(function(e){for(var t in l.innerText="Trello Board: "+e.name,d.parentNode.removeChild(d),r.views)switch(t){case"board":new g(n,e).present();break;case"sprint":new T(n,e,r.views.sprint).present();break;case"sprintTable":new k(n,e,r.views.sprintTable).present()}}),(function(e){d.parentNode.removeChild(d),l.innerText=e}))};const S={version:1,apiEndpoint:"https://api.trello.com",authEndpoint:"https://trello.com",intentEndpoint:"https://trello.com",key:"",localPrefix:""},I="_n9s5Ryg8wa",D=function(e){var t=this;e=function(e,t){var r={};for(const t in e)e.hasOwnProperty(t)&&(r[t]=e[t]);for(const e in t)t.hasOwnProperty(e)&&(r[e]=t[e]);return r}(S,e);let r="";this.authorize=function(){const t=encodeURIComponent(window.location.href),r=`${e.authEndpoint}/${e.version}/authorize?expiration=never&name=${e.name}&callback_method=fragment&scope=read&response_type=token&key=${e.key}&return_url=${t}`;window.location=r},this.disconnect=function(){window.localStorage.removeItem(e.localPrefix+I),r=""},this.get=function(t,n,o,i){let a=1,s=10;!function l(){var d=new XMLHttpRequest;d.open("GET",`${e.apiEndpoint}/${e.version}/${t}&key=${e.key}&token=${r}`,!0),d.onload=function(){if(d.status>=200&&d.status<400){const e=JSON.parse(d.responseText);n(e)}else o()},d.onerror=function(){429==+d.status&&a<5?(a++,void 0!==i&&(i.innerText="Rate limited, attempt "+a+" after "+s.toFixed(0)+" seconds",setTimeout((function(){l()}),1e3*s),s*=1.25)):o()},d.send()}()},function(){t.state=D.DISCONNECTED;const n=window.location.href.match(/#token=(.*)$/);if(null!==n&&n.length>1){r=n[1];window.localStorage.setItem(e.localPrefix+I,r),window.location=window.location.origin+window.location.pathname+window.location.search}const o=window.localStorage;r=o.getItem(e.localPrefix+I,r),null!==r&&r.length>0&&(t.state=D.CONNECTED)}()};D.DISCONNECTED="D",D.CONNECTED="C";const M=function(e){var t=a.merge(n,e),r=new D(t);a.ready((function(){var e;e=t.sel.nodeType?[t.sel]:document.querySelectorAll(t.sel);for(var n=0;n<e.length;n++)if(r.state===D.DISCONNECTED)new s(e[n],r,t);else new x(e[n],r,t)}))}},955:(e,t,r)=>{r.r(t),r.d(t,{default:()=>m});var n=r(291),o=r.n(n),i=r(821),a=r.n(i),s=r(555),l=r.n(s),d=new URL(r(487),r.b),c=new URL(r(454),r.b),p=a()(o()),f=l()(d),u=l()(c);p.push([e.id,"div.trello-sprinter{margin:0}div.trello-sprinter h2{text-align:center;padding:.25em 0;background:#026aa7;color:#fff;font-size:1em;margin:0}div.trello-sprinter p.trello-status{text-align:center;padding:.25em 0;background:#026aa7;color:#fff}div.trello-sprinter p.trello-msg{text-align:center;font-style:italic;font-size:.9em;padding:.25em 0;background:#026aa7;color:#fff}div.trello-sprinter p.center{text-align:center}div.trello-sprinter div.trello-view{background:#fff;color:#000}div.trello-sprinter div.trello-view h3{border-top:2px solid #000;margin:0;padding:.25em 0 .25em 20px}div.trello-sprinter div.trello-view h3 span.date{font-weight:normal;font-style:normal;font-size:.7em;float:right;padding-top:.25em}div.trello-sprinter div.trello-view p.trello-completed-header{text-align:center;font-weight:bold;background:#000;color:#00bfff}div.trello-sprinter .trello-plus{background-image:url("+f+")}div.trello-sprinter .trello-minus{background-image:url("+u+")}div.trello-sprinter .trello-plus,div.trello-sprinter .trello-minus{background-repeat:no-repeat;background-position:left center;background-size:16px 16px;cursor:pointer}div.trello-sprinter div.trello-expand{position:relative;display:none;overflow:auto;background:#f0f0f0;padding:.25em;margin-bottom:6pt;border:1pt solid gray;word-wrap:normal}div.trello-sprinter div.trello-expand,div.trello-sprinter .trello-errors{-moz-box-shadow:6pt 6px 10pt #888;-webkit-box-shadow:6pt 6px 10pt #888;box-shadow:6pt 6px 10pt #888}div.trello-sprinter p.trello-count{margin:0 0 1em 0;text-align:center;font-size:.85em}div.trello-sprinter div.trello-card{padding-left:2em;padding-right:2em}div.trello-sprinter div.trello-card h4{background-color:#81d0fd;margin:.5em 0 0 0;padding:0 .25em}div.trello-sprinter div.trello-card h4 span.trello-date{font-weight:normal;font-size:.9em;float:right;padding-top:.25em}div.trello-sprinter div.trello-card .trello-card-members{margin:0 .25em;font-size:.85em;font-style:italic}div.trello-sprinter div.trello-description{margin:.5em 1em}div.trello-sprinter div.trello-description p{margin:0 0 .25em 0;font-size:.9em}div.trello-sprinter div.trello-comments{margin:0 2em}div.trello-sprinter div.trello-comments h5{margin:0;padding:0 .25em;background-color:#ccc;font-size:.8em;font-weight:normal;font-style:italic}div.trello-sprinter div.trello-comments h5 span.trello-date{font-weight:normal;font-style:normal;float:right}div.trello-sprinter div.trello-comments p{margin:0 .25em;font-size:.9em}div.trello-sprinter div.trello-updates{margin:1em 2em}div.trello-sprinter div.trello-updates p{margin:0;padding:0 .25em;font-size:.8em;font-style:italic}div.trello-sprinter div.trello-updates p span.trello-date{font-weight:normal;font-style:normal;float:right}div.trello-sprinter div.trello-updates p span.list{font-style:normal;font-weight:bold}div.trello-sprinter div.trello-sprints{background:#fff;color:#000}div.trello-sprinter div.trello-sprints div.trello-errors{background:#c41425;color:#fff}div.trello-sprinter div.trello-sprints div.trello-warnings{background:#ff80df;color:#000}div.trello-sprinter div.trello-sprints div.trello-members{background:#f0f0f0;color:#000}div.trello-sprinter div.trello-sprints div.trello-members div.trello-member{margin-bottom:1em}div.trello-sprinter div.trello-sprints div.trello-errors,div.trello-sprinter div.trello-sprints div.trello-warnings,div.trello-sprinter div.trello-sprints div.trello-members{position:relative;overflow:auto;padding:0 1em 1em 1em;margin:1em 3em 6pt 3em;border:1pt solid gray;word-wrap:normal;font-size:.9em}div.trello-sprinter div.trello-sprints div.trello-errors p,div.trello-sprinter div.trello-sprints div.trello-warnings p,div.trello-sprinter div.trello-sprints div.trello-members p{font-size:1.1em;margin:0}div.trello-sprinter div.trello-sprints div.trello-errors span.trello-code,div.trello-sprinter div.trello-sprints div.trello-warnings span.trello-code,div.trello-sprinter div.trello-sprints div.trello-members span.trello-code{font-weight:bold}div.trello-sprinter div.trello-sprints div.trello-errors h3,div.trello-sprinter div.trello-sprints div.trello-errors h4,div.trello-sprinter div.trello-sprints div.trello-warnings h3,div.trello-sprinter div.trello-sprints div.trello-warnings h4,div.trello-sprinter div.trello-sprints div.trello-members h3,div.trello-sprinter div.trello-sprints div.trello-members h4{margin:0;padding:.25em 0;text-align:center}div.trello-sprinter div.trello-sprints div.trello-errors div.trello-info,div.trello-sprinter div.trello-sprints div.trello-warnings div.trello-info,div.trello-sprinter div.trello-sprints div.trello-members div.trello-info{border-top:1px solid #000}div.trello-sprinter div.trello-sprints div.trello-errors div.trello-info p,div.trello-sprinter div.trello-sprints div.trello-warnings div.trello-info p,div.trello-sprinter div.trello-sprints div.trello-members div.trello-info p{margin:1em 0}div.trello-sprinter div.trello-sprint-table{overflow:auto}",""]);const m=p},821:e=>{e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var r="",n=void 0!==t[5];return t[4]&&(r+="@supports (".concat(t[4],") {")),t[2]&&(r+="@media ".concat(t[2]," {")),n&&(r+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),r+=e(t),n&&(r+="}"),t[2]&&(r+="}"),t[4]&&(r+="}"),r})).join("")},t.i=function(e,r,n,o,i){"string"==typeof e&&(e=[[null,e,void 0]]);var a={};if(n)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(a[l]=!0)}for(var d=0;d<e.length;d++){var c=[].concat(e[d]);n&&a[c[0]]||(void 0!==i&&(void 0===c[5]||(c[1]="@layer".concat(c[5].length>0?" ".concat(c[5]):""," {").concat(c[1],"}")),c[5]=i),r&&(c[2]?(c[1]="@media ".concat(c[2]," {").concat(c[1],"}"),c[2]=r):c[2]=r),o&&(c[4]?(c[1]="@supports (".concat(c[4],") {").concat(c[1],"}"),c[4]=o):c[4]="".concat(o)),t.push(c))}},t}},555:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},291:e=>{e.exports=function(e){return e[1]}},970:(e,t,r)=>{var n=r(714),o=r.n(n),i=r(709),a=r.n(i),s=r(644),l=r.n(s),d=r(262),c=r.n(d),p=r(552),f=r.n(p),u=r(613),m=r.n(u),h=r(955),v={};v.styleTagTransform=m(),v.setAttributes=c(),v.insert=l().bind(null,"head"),v.domAPI=a(),v.insertStyleElement=f();var g=o()(h.default,v);if(!h.default.locals||e.hot.invalidate){var b=!h.default.locals,y=b?h:h.default.locals;e.hot.accept(955,(t=>{h=r(955),function(e,t,r){if(!e&&t||e&&!t)return!1;var n;for(n in e)if((!r||"default"!==n)&&e[n]!==t[n])return!1;for(n in t)if(!(r&&"default"===n||e[n]))return!1;return!0}(y,b?h:h.default.locals,b)?(y=b?h:h.default.locals,g(h.default)):e.hot.invalidate()}))}e.hot.dispose((function(){g()}));h.default&&h.default.locals&&h.default.locals},714:e=>{var t=[];function r(e){for(var r=-1,n=0;n<t.length;n++)if(t[n].identifier===e){r=n;break}return r}function n(e,n){for(var i={},a=[],s=0;s<e.length;s++){var l=e[s],d=n.base?l[0]+n.base:l[0],c=i[d]||0,p="".concat(d," ").concat(c);i[d]=c+1;var f=r(p),u={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==f)t[f].references++,t[f].updater(u);else{var m=o(u,n);n.byIndex=s,t.splice(s,0,{identifier:p,updater:m,references:1})}a.push(p)}return a}function o(e,t){var r=t.domAPI(t);r.update(e);return function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;r.update(e=t)}else r.remove()}}e.exports=function(e,o){var i=n(e=e||[],o=o||{});return function(e){e=e||[];for(var a=0;a<i.length;a++){var s=r(i[a]);t[s].references--}for(var l=n(e,o),d=0;d<i.length;d++){var c=r(i[d]);0===t[c].references&&(t[c].updater(),t.splice(c,1))}i=l}}},644:e=>{var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},552:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},262:(e,t,r)=>{e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},709:e=>{e.exports=function(e){var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var o=void 0!==r.layer;o&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,o&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var i=r.sourceMap;i&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(i))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},613:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},454:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAZ1JREFUeNqkkr1OAkEQx+fuhkPgkK8ghYZYGPzo7GjFxMJeQ7TQzljhGxhs9A2MhY0V2muMifoAJpaQGB+Aw0NPjuOA+3J34eg8ME7yT2Y3+/vv7OxwruvCfwL3T+rA83wMEctkXSTKjGFkooplWceO43yj49hAVF7NBUrFjWlIxwVf+kO1M5WHVumlatLlEa/rOhAVt9cjkJBcIM6+ome2CmHGUBY1TaNOmVSMZwcmiVRMAMKxp2K73WKb5D0TG9DGexzqeocltm0zeWGaJi0TOh2D5bY9MBcEBEmSwOOw2+2OKqDK7zz53n5zloNerwceh5bljsoyjB5kswX/f8cG+XYBPA45DlliGH1SVh+uT8O+BooyRQw48DgyPyGW9PsOBAIitFodXwNRDA7BAYeiGB02R6TLiUfY4zAYZImsqHwmnRAnguWmCYST2cW68gqzS7tzXxrkF+dDEI0ga9JvUlSAq9s21Jv8Ze1x754jJslIPLewsnZxKCWXNwG4mTFj1Gh/1u6qzwfnuvr2Tg1oN6J/asAg6GRpPwIMAFcAzawVzQR4AAAAAElFTkSuQmCC"},487:e=>{e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdtJREFUeNqkUzsvBFEUPjNzZhY7az3CFh4RkfWqNKJFolDoyIaCTlR0SqGhEp0oNKqlEgkRCX6ARIdEZLWWwdrZsY95ufeuO3Zssgon+XLP6ztz7jl3BNd14T+Cc2tPIIpiGBFXiR0jiPzBSRLELctacRznAx3HBoLVgai8GBurhaY6qSL7JWVH4mfpxatbk5pLomEYQBCbGg1CveoCqVwRNGdypIZxKBd1XaeVIo1hkSWUysTSDTuPtvp9/sawBITHroqZTJo5yX3KCvDYbz8dPI+hYXwyxbZtBi6maQKPJRKPJFYsIkkIqqp6Mczlcl4HFEPTF2WDm1y+9/SDjSjk83ngPLQs12srm81De/uIl5xInLOzs3P0Z+/4TNYuAeehICBTstkCaasA++s1XvJgrBjbX/9ZraZVkQICcB55P9VMKRQckGUF0unPkq8VY6U+RQn4Yqgooe/hKNT03b2tbZCdsiyUzYXzMBBgSlJLiZGmesWXdLgpf6/T9L/lVxMIL8k+bGjX0NIz0/quw1B3RzWEgsiGVBwUMHCbQksB7B1n4OlV3L07nz2lvTUE66JdfcM7C2pD7ziA0Fz5X3KfM293J7eX89tG6v6BFqDTCJUN4G+hL0v/EmAAoNXlG97vnHoAAAAASUVORK5CYII="}},n={};function o(e){var t=n[e];if(void 0!==t){if(void 0!==t.error)throw t.error;return t.exports}var i=n[e]={id:e,exports:{}};try{var a={id:e,module:i,factory:r[e],require:o};o.i.forEach((function(e){e(a)})),i=a.module,a.factory.call(i.exports,i,i.exports,a.require)}catch(e){throw i.error=e,e}return i.exports}o.m=r,o.c=n,o.i=[],o.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return o.d(t,{a:t}),t},o.d=(e,t)=>{for(var r in t)o.o(t,r)&&!o.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o.hu=e=>e+"."+o.h()+".hot-update.js",o.hmrF=()=>"TrelloSprinter."+o.h()+".hot-update.json",o.h=()=>"ea6ec75b2312110f1461",o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="TrelloSprinter:",o.l=(r,n,i,a)=>{if(e[r])e[r].push(n);else{var s,l;if(void 0!==i)for(var d=document.getElementsByTagName("script"),c=0;c<d.length;c++){var p=d[c];if(p.getAttribute("src")==r||p.getAttribute("data-webpack")==t+i){s=p;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,o.nc&&s.setAttribute("nonce",o.nc),s.setAttribute("data-webpack",t+i),s.src=r),e[r]=[n];var f=(t,n)=>{s.onerror=s.onload=null,clearTimeout(u);var o=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach((e=>e(n))),t)return t(n)},u=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),l&&document.head.appendChild(s)}},o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e,t,r,n={},i=o.c,a=[],s=[],l="idle",d=0,c=[];function p(e){l=e;for(var t=[],r=0;r<s.length;r++)t[r]=s[r].call(null,e);return Promise.all(t)}function f(){0==--d&&p("ready").then((function(){if(0===d){var e=c;c=[];for(var t=0;t<e.length;t++)e[t]()}}))}function u(e){if("idle"!==l)throw new Error("check() is only allowed in idle status");return p("check").then(o.hmrM).then((function(r){return r?p("prepare").then((function(){var n=[];return t=[],Promise.all(Object.keys(o.hmrC).reduce((function(e,i){return o.hmrC[i](r.c,r.r,r.m,e,t,n),e}),[])).then((function(){return t=function(){return e?h(e):p("ready").then((function(){return n}))},0===d?t():new Promise((function(e){c.push((function(){e(t())}))}));var t}))})):p(v()?"ready":"idle").then((function(){return null}))}))}function m(e){return"ready"!==l?Promise.resolve().then((function(){throw new Error("apply() is only allowed in ready status (state: "+l+")")})):h(e)}function h(e){e=e||{},v();var n=t.map((function(t){return t(e)}));t=void 0;var o=n.map((function(e){return e.error})).filter(Boolean);if(o.length>0)return p("abort").then((function(){throw o[0]}));var i=p("dispose");n.forEach((function(e){e.dispose&&e.dispose()}));var a,s=p("apply"),l=function(e){a||(a=e)},d=[];return n.forEach((function(e){if(e.apply){var t=e.apply(l);if(t)for(var r=0;r<t.length;r++)d.push(t[r])}})),Promise.all([i,s]).then((function(){return a?p("fail").then((function(){throw a})):r?h(e).then((function(e){return d.forEach((function(t){e.indexOf(t)<0&&e.push(t)})),e})):p("idle").then((function(){return d}))}))}function v(){if(r)return t||(t=[]),Object.keys(o.hmrI).forEach((function(e){r.forEach((function(r){o.hmrI[e](r,t)}))})),r=void 0,!0}o.hmrD=n,o.i.push((function(c){var h,v,g,b,y=c.module,w=function(t,r){var n=i[r];if(!n)return t;var o=function(o){if(n.hot.active){if(i[o]){var s=i[o].parents;-1===s.indexOf(r)&&s.push(r)}else a=[r],e=o;-1===n.children.indexOf(o)&&n.children.push(o)}else console.warn("[HMR] unexpected require("+o+") from disposed module "+r),a=[];return t(o)},s=function(e){return{configurable:!0,enumerable:!0,get:function(){return t[e]},set:function(r){t[e]=r}}};for(var c in t)Object.prototype.hasOwnProperty.call(t,c)&&"e"!==c&&Object.defineProperty(o,c,s(c));return o.e=function(e){return function(e){switch(l){case"ready":p("prepare");case"prepare":return d++,e.then(f,f),e;default:return e}}(t.e(e))},o}(c.require,c.id);y.hot=(h=c.id,v=y,b={_acceptedDependencies:{},_acceptedErrorHandlers:{},_declinedDependencies:{},_selfAccepted:!1,_selfDeclined:!1,_selfInvalidated:!1,_disposeHandlers:[],_main:g=e!==h,_requireSelf:function(){a=v.parents.slice(),e=g?void 0:h,o(h)},active:!0,accept:function(e,t,r){if(void 0===e)b._selfAccepted=!0;else if("function"==typeof e)b._selfAccepted=e;else if("object"==typeof e&&null!==e)for(var n=0;n<e.length;n++)b._acceptedDependencies[e[n]]=t||function(){},b._acceptedErrorHandlers[e[n]]=r;else b._acceptedDependencies[e]=t||function(){},b._acceptedErrorHandlers[e]=r},decline:function(e){if(void 0===e)b._selfDeclined=!0;else if("object"==typeof e&&null!==e)for(var t=0;t<e.length;t++)b._declinedDependencies[e[t]]=!0;else b._declinedDependencies[e]=!0},dispose:function(e){b._disposeHandlers.push(e)},addDisposeHandler:function(e){b._disposeHandlers.push(e)},removeDisposeHandler:function(e){var t=b._disposeHandlers.indexOf(e);t>=0&&b._disposeHandlers.splice(t,1)},invalidate:function(){switch(this._selfInvalidated=!0,l){case"idle":t=[],Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](h,t)})),p("ready");break;case"ready":Object.keys(o.hmrI).forEach((function(e){o.hmrI[e](h,t)}));break;case"prepare":case"check":case"dispose":case"apply":(r=r||[]).push(h)}},check:u,apply:m,status:function(e){if(!e)return l;s.push(e)},addStatusHandler:function(e){s.push(e)},removeStatusHandler:function(e){var t=s.indexOf(e);t>=0&&s.splice(t,1)},data:n[h]},e=void 0,b),y.parents=a,y.children=[],a=[],c.require=w})),o.hmrC={},o.hmrI={}})(),o.p="",(()=>{o.b=document.baseURI||self.location.href;var e,t,r,n,i,a=o.hmrS_jsonp=o.hmrS_jsonp||{130:0},s={};function l(t,r){return e=r,new Promise(((e,r)=>{s[t]=e;var n=o.p+o.hu(t),i=new Error;o.l(n,(e=>{if(s[t]){s[t]=void 0;var n=e&&("load"===e.type?"missing":e.type),o=e&&e.target&&e.target.src;i.message="Loading hot update chunk "+t+" failed.\n("+n+": "+o+")",i.name="ChunkLoadError",i.type=n,i.request=o,r(i)}}))}))}function d(e){function s(e){for(var t=[e],r={},n=t.map((function(e){return{chain:[e],id:e}}));n.length>0;){var i=n.pop(),a=i.id,s=i.chain,d=o.c[a];if(d&&(!d.hot._selfAccepted||d.hot._selfInvalidated)){if(d.hot._selfDeclined)return{type:"self-declined",chain:s,moduleId:a};if(d.hot._main)return{type:"unaccepted",chain:s,moduleId:a};for(var c=0;c<d.parents.length;c++){var p=d.parents[c],f=o.c[p];if(f){if(f.hot._declinedDependencies[a])return{type:"declined",chain:s.concat([p]),moduleId:a,parentId:p};-1===t.indexOf(p)&&(f.hot._acceptedDependencies[a]?(r[p]||(r[p]=[]),l(r[p],[a])):(delete r[p],t.push(p),n.push({chain:s.concat([p]),id:p})))}}}}return{type:"accepted",moduleId:e,outdatedModules:t,outdatedDependencies:r}}function l(e,t){for(var r=0;r<t.length;r++){var n=t[r];-1===e.indexOf(n)&&e.push(n)}}o.f&&delete o.f.jsonpHmr,t=void 0;var d={},c=[],p={},f=function(e){console.warn("[HMR] unexpected require("+e.id+") to disposed module")};for(var u in r)if(o.o(r,u)){var m,h=r[u],v=!1,g=!1,b=!1,y="";switch((m=h?s(u):{type:"disposed",moduleId:u}).chain&&(y="\nUpdate propagation: "+m.chain.join(" -> ")),m.type){case"self-declined":e.onDeclined&&e.onDeclined(m),e.ignoreDeclined||(v=new Error("Aborted because of self decline: "+m.moduleId+y));break;case"declined":e.onDeclined&&e.onDeclined(m),e.ignoreDeclined||(v=new Error("Aborted because of declined dependency: "+m.moduleId+" in "+m.parentId+y));break;case"unaccepted":e.onUnaccepted&&e.onUnaccepted(m),e.ignoreUnaccepted||(v=new Error("Aborted because "+u+" is not accepted"+y));break;case"accepted":e.onAccepted&&e.onAccepted(m),g=!0;break;case"disposed":e.onDisposed&&e.onDisposed(m),b=!0;break;default:throw new Error("Unexception type "+m.type)}if(v)return{error:v};if(g)for(u in p[u]=h,l(c,m.outdatedModules),m.outdatedDependencies)o.o(m.outdatedDependencies,u)&&(d[u]||(d[u]=[]),l(d[u],m.outdatedDependencies[u]));b&&(l(c,[m.moduleId]),p[u]=f)}r=void 0;for(var w,_=[],E=0;E<c.length;E++){var C=c[E],A=o.c[C];A&&(A.hot._selfAccepted||A.hot._main)&&p[C]!==f&&!A.hot._selfInvalidated&&_.push({module:C,require:A.hot._requireSelf,errorHandler:A.hot._selfAccepted})}return{dispose:function(){var e;n.forEach((function(e){delete a[e]})),n=void 0;for(var t,r=c.slice();r.length>0;){var i=r.pop(),s=o.c[i];if(s){var l={},p=s.hot._disposeHandlers;for(E=0;E<p.length;E++)p[E].call(null,l);for(o.hmrD[i]=l,s.hot.active=!1,delete o.c[i],delete d[i],E=0;E<s.children.length;E++){var f=o.c[s.children[E]];f&&((e=f.parents.indexOf(i))>=0&&f.parents.splice(e,1))}}}for(var u in d)if(o.o(d,u)&&(s=o.c[u]))for(w=d[u],E=0;E<w.length;E++)t=w[E],(e=s.children.indexOf(t))>=0&&s.children.splice(e,1)},apply:function(t){for(var r in p)o.o(p,r)&&(o.m[r]=p[r]);for(var n=0;n<i.length;n++)i[n](o);for(var a in d)if(o.o(d,a)){var s=o.c[a];if(s){w=d[a];for(var l=[],f=[],u=[],m=0;m<w.length;m++){var h=w[m],v=s.hot._acceptedDependencies[h],g=s.hot._acceptedErrorHandlers[h];if(v){if(-1!==l.indexOf(v))continue;l.push(v),f.push(g),u.push(h)}}for(var b=0;b<l.length;b++)try{l[b].call(null,w)}catch(r){if("function"==typeof f[b])try{f[b](r,{moduleId:a,dependencyId:u[b]})}catch(n){e.onErrored&&e.onErrored({type:"accept-error-handler-errored",moduleId:a,dependencyId:u[b],error:n,originalError:r}),e.ignoreErrored||(t(n),t(r))}else e.onErrored&&e.onErrored({type:"accept-errored",moduleId:a,dependencyId:u[b],error:r}),e.ignoreErrored||t(r)}}}for(var y=0;y<_.length;y++){var E=_[y],C=E.module;try{E.require(C)}catch(r){if("function"==typeof E.errorHandler)try{E.errorHandler(r,{moduleId:C,module:o.c[C]})}catch(n){e.onErrored&&e.onErrored({type:"self-accept-error-handler-errored",moduleId:C,error:n,originalError:r}),e.ignoreErrored||(t(n),t(r))}else e.onErrored&&e.onErrored({type:"self-accept-errored",moduleId:C,error:r}),e.ignoreErrored||t(r)}}return c}}}self.webpackHotUpdateTrelloSprinter=(t,n,a)=>{for(var l in n)o.o(n,l)&&(r[l]=n[l],e&&e.push(l));a&&i.push(a),s[t]&&(s[t](),s[t]=void 0)},o.hmrI.jsonp=function(e,t){r||(r={},i=[],n=[],t.push(d)),o.o(r,e)||(r[e]=o.m[e])},o.hmrC.jsonp=function(e,s,c,p,f,u){f.push(d),t={},n=s,r=c.reduce((function(e,t){return e[t]=!1,e}),{}),i=[],e.forEach((function(e){o.o(a,e)&&void 0!==a[e]?(p.push(l(e,u)),t[e]=!0):t[e]=!1})),o.f&&(o.f.jsonpHmr=function(e,r){t&&o.o(t,e)&&!t[e]&&(r.push(l(e)),t[e]=!0)})},o.hmrM=()=>{if("undefined"==typeof fetch)throw new Error("No browser support: need fetch API");return fetch(o.p+o.hmrF()).then((e=>{if(404!==e.status){if(!e.ok)throw new Error("Failed to fetch update manifest "+e.statusText);return e.json()}}))}})(),o.nc=void 0;var i=o(729);return i=i.default})()));