UNPKG

wc-byor

Version:

[![Thoughtworks](https://circleci.com/gh/thoughtworks/build-your-own-radar.svg?style=shield)](https://circleci.com/gh/thoughtworks/build-your-own-radar) [![Stars](https://badgen.net/github/stars/thoughtworks/build-your-own-radar)](https://github.com/thoug

2 lines 1.56 MB
/*! For license information please see main.js.LICENSE.txt */ var t={12227:(t,e,n)=>{n(80341),n(63324),n(59333),n(69016),n(79462)},9828:t=>{var e=function(t){this.message=t};Object.setPrototypeOf(e,Error),(e.prototype=Object.create(Error.prototype)).name="MalformedDataError",e.prototype.message="",e.prototype.constructor=e,t.exports=e},79323:t=>{var e=function(t){this.message=t};Object.setPrototypeOf(e,Error),(e.prototype=Object.create(Error.prototype)).name="SheetNotFoundError",e.prototype.message="",e.prototype.constructor=e,t.exports=e},90067:t=>{var e=function(t){this.message=t};Object.setPrototypeOf(e,Error),(e.prototype=Object.create(Error.prototype)).name="UnauthorizedError",e.prototype.message="",e.prototype.constructor=e,t.exports=e},15057:(t,e,n)=>{function r(t){return function(t){if(Array.isArray(t))return i(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return i(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?i(t,e):void 0}}(t)||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 i(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var o=n(82893),a=n(32383),s=n(20714),u=n(60990),c=n(84825).ROOT_ELEMENT,l=n(31740),f=n(74914),h=n(33392),p=1e3;t.exports=function(t,e){var n,i,d,m,g,v,y,b=a().attr("class","d3-tip").html((function(t){return t}));b.direction((function(){if(o.select(c()).select(".quadrant-table.selected").node()){var t=o.select(c()).select(".quadrant-table.selected");return t.classed("first")||t.classed("fourth")?"ne":"nw"}return"n"}));var w,_=new l(e.rings().length,A()),x={};function A(){return Math.round(t/2)}function M(t){return Math.PI*t/180}function C(t,e,n,r,i){var o=Math.sin(M(i))-Math.cos(M(i)),a=-Math.cos(M(i))-Math.sin(M(i)),s=e.floating({min:n+t.width/2,max:r-t.width/2}),u=180*Math.asin(t.width/2/s)/(Math.PI-1.25);u=u>45?45:u;var c=M(e.integer({min:u,max:90-u}));return[A()+s*Math.cos(c)*o,A()+s*Math.sin(c)*a]}function S(t,e,n){return n.some((function(n){return Math.abs(n[0]-e[0])<t.width&&Math.abs(n[1]-e[1])<t.width}))}function T(t,i,a){var u,l,f,h;l=a.quadrant,f=a.startAngle,h=a.order,o.select(c()).select(".quadrant-table."+h).append("h2").attr("class","quadrant-table__name").text(l.name()),u=l.blips(),i.forEach((function(i,a){var p=u.filter((function(t){return t.ring()===i}));if(0!==p.length){var d,m;m=_.getRadius(a),d=_.getRadius(a+1);var g=i.name().split("").reduce((function(t,e){return t+e.charCodeAt(0)}),0),v=l.name().split("").reduce((function(t,e){return t+e.charCodeAt(0)}),0);w=new s(Math.PI*g*i.name().length*v*l.name().length);var y=function(t,e){var n=o.select(c()).select(".quadrant-table."+e);return n.append("h3").text(t),n.append("ul")}(i.name(),h),x=[];p.forEach((function(i){var a=E(i,m,d,f,x);x.push(a),function(t,e,i,a,s){var u=e[0],l=e[1],f="context_".concat(r(i).indexOf(t.context())),h=a.append("g").attr("class","blip-link "+f).attr("id","blip-link-"+t.number());(function(t,e,r,i,o){(o||n).append("path").attr("d","M420.084,282.092c-1.073,0-2.16,0.103-3.243,0.313c-6.912,1.345-13.188,8.587-11.423,16.874c1.732,8.141,8.632,13.711,17.806,13.711c0.025,0,0.052,0,0.074-0.003c0.551-0.025,1.395-0.011,2.225-0.109c4.404-0.534,8.148-2.218,10.069-6.487c1.747-3.886,2.114-7.993,0.913-12.118C434.379,286.944,427.494,282.092,420.084,282.092").attr("transform","scale("+t.width/34+") translate("+(e*(34/t.width)-404-17)+", "+(r*(34/t.width)-282-17)+")").attr("class",i)})(t,u,l,f,h),h.append("text").attr("x",u).attr("y",l+4).attr("class","blip-text").style("font-size",10*t.width/22+"px").attr("text-anchor","middle").text(t.number());var p=s.append("li"),d=t.number()+". "+t.name()+(t.topic()?". - "+t.topic():"");p.append("div").attr("class","blip-list-item "+f).attr("id","blip-list-item-"+t.number()).text(d);var m=p.append("div").attr("id","blip-description-"+t.number()).attr("class","blip-item-description");t.description()&&m.append("p").html(t.description());var g=function(){o.select(c()).selectAll("g.blip-link").attr("opacity",.3),h.attr("opacity",1),p.selectAll(".blip-list-item").classed("highlight",!0),b.show(t.name(),h.node())},v=function(){o.select(c()).selectAll("g.blip-link").attr("opacity",1),p.selectAll(".blip-list-item").classed("highlight",!1),b.hide().style("left",0).style("top",0)};p.on("mouseover",g).on("mouseout",v),h.on("mouseover",g).on("mouseout",v);p.on("click",(function(){o.select(c()).select(".blip-item-description.expanded").node()!==m.node()&&o.select(c()).select(".blip-item-description.expanded").classed("expanded",!1),m.classed("expanded",!m.classed("expanded")),m.on("click",(function(){o.event.stopPropagation()}))}))}(i,a,e.contexts(),t,y)}))}}))}function E(t,e,n,r,i){for(var o=C(t,w,e,n,r),a=0,s=!1;a<200;){if(!S(t,o,i)){s=!0;break}o=C(t,w,e,n,r),a++}return!s&&t.width>12?(t.width=t.width-1,E(t,e,n,r,i)):o}function k(){o.select(c()).select(".home-link").remove(),o.select(c()).select(".legend").remove(),b.hide(),o.select(c()).selectAll("g.blip-link").attr("opacity",1),n.style("left",0).style("right",0),o.select(c()).selectAll(".button").classed("selected",!1).classed("full-view",!0),o.select(c()).selectAll(".quadrant-table").classed("selected",!1),o.select(c()).selectAll(".home-link").classed("selected",!1),o.select(c()).selectAll(".quadrant-group").transition().duration(p).attr("transform","scale(1)"),o.select(c()).selectAll(".quadrant-group .blip-link").transition().duration(p).attr("transform","scale(1)"),o.select(c()).selectAll(".quadrant-group").style("pointer-events","auto")}function N(t,e){var n=e.item,r=n.blip,i=n.quadrant,a=o.select(c()).select("div.button."+i.order).classed("selected");O.bind({},i.order,i.startAngle)();var s=o.select(c()).select("#blip-description-"+r.number());o.select(c()).select(".blip-item-description.expanded").node()!==s.node()&&o.select(c()).select(".blip-item-description.expanded").classed("expanded",!1),s.classed("expanded",!0),o.select(c()).selectAll("g.blip-link").attr("opacity",.3);var u=o.select(c()).select("#blip-link-"+r.number());u.attr("opacity",1),o.select(c()).selectAll(".blip-list-item").classed("highlight",!1),o.select(c()).select("#blip-list-item-"+r.number()).classed("highlight",!0),a?b.show(r.name(),u.node()):(b.hide(),setTimeout((function(){b.show(r.name(),u.node())}),p))}function I(t){var e=v.append("div").attr("class","context-btn--group");function n(t,n){i.append("div").attr("class","contexts-table context_"+n),e.append("div").attr("class","button context_"+n+" full-view").text(t).on("click",L.bind({},n))}e.append("div").attr("class","button full-view").text("All").on("click",R.bind({})),r(t).forEach((function(t,e){return n(t,e)}))}function P(t){o.select(c()).select(".quadrant-group-"+t).style("opacity",1),o.select(c()).selectAll(".quadrant-group:not(.quadrant-group-"+t+")").style("opacity",.3)}function D(t){o.select(c()).selectAll(".quadrant-group:not(.quadrant-group-"+t+")").style("opacity",1)}function R(t){o.select(c()).selectAll(".quadrant-group .blip-link").style("opacity",1),o.select(c()).selectAll(".quadrant-table .blip-list-item").style("opacity",1)}function L(t){y=".context_".concat(t),o.select(c()).selectAll(".quadrant-group .blip-link:not(".concat(y,")")).style("opacity",.1),o.select(c()).selectAll(".quadrant-group .blip-link".concat(y)).style("opacity",1),o.select(c()).selectAll(".quadrant-table .blip-list-item:not(".concat(y,")")).style("opacity",.1),o.select(c()).selectAll(".quadrant-table .blip-list-item".concat(y)).style("opacity",1)}function O(e,r){var i;o.select(c()).selectAll(".home-link").classed("selected",!1),(i=o.select(c()).select("header")).select(".home-link").empty()&&i.insert("div","div#alternative-buttons").html("&#171; Back to Radar home").classed("home-link",!0).classed("selected",!0).on("click",k).append("g").attr("fill","#626F87").append("path").attr("d","M27.6904224,13.939279 C27.6904224,13.7179572 27.6039633,13.5456925 27.4314224,13.4230122 L18.9285959,6.85547454 C18.6819796,6.65886965 18.410898,6.65886965 18.115049,6.85547454 L9.90776939,13.4230122 C9.75999592,13.5456925 9.68592041,13.7179572 9.68592041,13.939279 L9.68592041,25.7825947 C9.68592041,25.979501 9.74761224,26.1391059 9.87092041,26.2620876 C9.99415306,26.3851446 10.1419265,26.4467108 10.3145429,26.4467108 L15.1946918,26.4467108 C15.391698,26.4467108 15.5518551,26.3851446 15.6751633,26.2620876 C15.7984714,26.1391059 15.8600878,25.979501 15.8600878,25.7825947 L15.8600878,18.5142424 L21.4794061,18.5142424 L21.4794061,25.7822933 C21.4794061,25.9792749 21.5410224,26.1391059 21.6643306,26.2620876 C21.7876388,26.3851446 21.9477959,26.4467108 22.1448776,26.4467108 L27.024951,26.4467108 C27.2220327,26.4467108 27.3821898,26.3851446 27.505498,26.2620876 C27.6288061,26.1391059 27.6904224,25.9792749 27.6904224,25.7822933 L27.6904224,13.939279 Z M18.4849735,0.0301425662 C21.0234,0.0301425662 23.4202449,0.515814664 25.6755082,1.48753564 C27.9308469,2.45887984 29.8899592,3.77497963 31.5538265,5.43523218 C33.2173918,7.09540937 34.5358755,9.05083299 35.5095796,11.3015031 C36.4829061,13.5518717 36.9699469,15.9439104 36.9699469,18.4774684 C36.9699469,20.1744196 36.748098,21.8101813 36.3044755,23.3844521 C35.860551,24.9584216 35.238498,26.4281731 34.4373347,27.7934053 C33.6362469,29.158336 32.6753041,30.4005112 31.5538265,31.5197047 C30.432349,32.6388982 29.1876388,33.5981853 27.8199224,34.3973401 C26.4519041,35.1968717 24.9791531,35.8176578 23.4016694,36.2606782 C21.8244878,36.7033971 20.1853878,36.9247943 18.4849735,36.9247943 C16.7841816,36.9247943 15.1453837,36.7033971 13.5679755,36.2606782 C11.9904918,35.8176578 10.5180429,35.1968717 9.15002449,34.3973401 C7.78223265,33.5978839 6.53752245,32.6388982 5.41612041,31.5197047 C4.29464286,30.4005112 3.33339796,29.158336 2.53253673,27.7934053 C1.73144898,26.4281731 1.10909388,24.9584216 0.665395918,23.3844521 C0.22184898,21.8101813 0,20.1744196 0,18.4774684 C0,16.7801405 0.22184898,15.1446802 0.665395918,13.5704847 C1.10909388,11.9962138 1.73144898,10.5267637 2.53253673,9.16153157 C3.33339796,7.79652546 4.29464286,6.55435031 5.41612041,5.43523218 C6.53752245,4.3160387 7.78223265,3.35675153 9.15002449,2.55752138 C10.5180429,1.75806517 11.9904918,1.13690224 13.5679755,0.694183299 C15.1453837,0.251464358 16.7841816,0.0301425662 18.4849735,0.0301425662 L18.4849735,0.0301425662 Z"),o.select(c()).selectAll(".quadrant-btn--group .button").classed("selected",!1).classed("full-view",!1),o.select(c()).selectAll(".quadrant-btn--group .button."+e).classed("selected",!0),o.select(c()).selectAll(".quadrant-table").classed("selected",!1),o.select(c()).selectAll(".quadrant-table."+e).classed("selected",!0),o.select(c()).selectAll(".blip-item-description").classed("expanded",!1);var a=Math.sin(M(r))-Math.cos(M(r)),s=Math.cos(M(r))+Math.sin(M(r)),u=-1*(1+a)*t/2*1+0*-a*t,l=-1*(1-s)*(t/2-7)*1-(1-s)/2*0*t,f=(1-a)/2*t*2/2+(1-a)/2*0*t,h=(1+s)/2*t*2/2,d=(1+a)*(.8*window.innerWidth-t)/2,m=(1-a)*(.8*window.innerWidth-t)/2,g=.25/(3/4);n.style("left",m+"px").style("right",d+"px"),o.select(c()).select(".quadrant-group-"+e).transition().duration(p).attr("transform","translate("+u+","+l+")scale(2)"),o.select(c()).selectAll(".quadrant-group-"+e+" .blip-link text").each((function(){var t=o.select(this).attr("x"),e=o.select(this).attr("y");o.select(this.parentNode).transition().duration(p).attr("transform","scale(0.75)translate("+g*t+","+g*e+")")})),o.select(c()).selectAll(".quadrant-group").style("pointer-events","auto"),o.select(c()).selectAll(".quadrant-group:not(.quadrant-group-"+e+")").transition().duration(p).style("pointer-events","none").attr("transform","translate("+f+","+h+") scale(0)")}return x.init=function(){return i=o.select(c()).append("div").attr("id","radar"),x},x.plot=function(){var r,a,s,l;r=e.rings(),a=e.quadrants(),contexts=e.contexts(),s=e.getAlternatives(),l=e.getCurrentSheet(),g=o.select(c()).insert("header","#radar"),m=g.append("div").classed("buttons-group",!0),d=m.append("div").classed("quadrant-btn--group",!0),v=g.append("div").attr("id","alternative-buttons"),s.length&&function(t,e){var n=v.append("div").classed("multiple-sheet-button-group",!0);n.append("p").text("Choose a sheet to populate radar"),t.forEach((function(t){var r;n.append("div:a").attr("class","first full-view alternative multiple-sheet-button").attr("href",(r=t,window.location.href.substring(0,window.location.href.indexOf(window.location.search))+"?sheetId="+f(window.location.search.substring(1)).sheetId+"&sheetName="+encodeURIComponent(r))).text(t),t===e&&o.select(c()).selectAll(".alternative").filter((function(){return o.select(c()).select(this).text()===t})).attr("class","highlight multiple-sheet-button")}))}(s,l),I(contexts),function(t){u.each([0,1,2,3],(function(e){var n;n=t[e],i.append("div").attr("class","quadrant-table "+n.order),d.append("div").attr("class","button "+n.order+" full-view").text(n.quadrant.name()).on("mouseover",P.bind({},n.order)).on("mouseout",D.bind({},n.order)).on("click",O.bind({},n.order,n.startAngle))})),m.append("div").classed("print-radar-btn",!0).append("div").classed("print-radar button no-capitalize",!0).text("Print this radar").on("click",window.print.bind(window)),v.append("div").classed("search-box",!0).append("input").attr("id","auto-complete").attr("placeholder","Search").classed("search-radar",!0),h(c().querySelector("#auto-complete"),t,N)}(a),i.style("height",t+14+"px"),(n=i.append("svg").call(b)).attr("id","radar-plot").attr("width",t).attr("height",t+14),u.each(a,(function(e){var i=function(t,e){var r=n.append("g").attr("class","quadrant-group quadrant-group-"+e.order).on("mouseover",P.bind({},e.order)).on("mouseout",D.bind({},e.order)).on("click",O.bind({},e.order,e.startAngle));return t.forEach((function(t,n){var i=o.arc().innerRadius(_.getRadius(n)).outerRadius(_.getRadius(n+1)).startAngle(M(e.startAngle)).endAngle(M(e.startAngle-90));r.append("path").attr("d",i).attr("class","ring-arc-"+t.order()).attr("transform","translate("+A()+", "+A()+")")})),r}(r,e);!function(e,n){var r=t*(1-(1-Math.sin(M(n.startAngle)))/2),i=t*(1-(1-Math.sin(M(n.startAngle-90)))/2),o=t*(1-(Math.cos(M(n.startAngle))+1)/2),a=t*(1-(Math.cos(M(n.startAngle-90))+1)/2);if(o>a){var s=a;a=o,o=s}e.append("line").attr("x1",A()).attr("x2",A()).attr("y1",o-2).attr("y2",a+2).attr("stroke-width",10),e.append("line").attr("x1",i).attr("y1",A()).attr("x2",r).attr("y2",A()).attr("stroke-width",10)}(i,e),function(t,e,n){e.forEach((function(e,r){"first"===n.order||"fourth"===n.order?t.append("text").attr("class","line-text").attr("y",A()+4).attr("x",A()+(_.getRadius(r)+_.getRadius(r+1))/2).attr("text-anchor","middle").text(e.name()):t.append("text").attr("class","line-text").attr("y",A()+4).attr("x",A()-(_.getRadius(r)+_.getRadius(r+1))/2).attr("text-anchor","middle").text(e.name())}))}(i,r,e),T(i,r,e)})),o.select(c()).insert("div","#radar-plot + *").attr("id","footer").append("div").attr("class","footer-content").append("p").html('Powered by <a href="https://www.thoughtworks.com"> Thoughtworks</a>. By using this service you agree to <a href="https://www.thoughtworks.com/radar/tos">Thoughtworks\' terms of use</a>. You also agree to our <a href="https://www.thoughtworks.com/privacy-policy">privacy policy</a>, which describes how we will gather, use and protect any personal data contained in your public Google Sheet. This software is <a href="https://github.com/thoughtworks/build-your-own-radar">open source</a> and available for download and self-hosting.')},x}},34106:()=>{},51269:t=>{t.exports=function(t,e,n,r,i){var o,a;return a=-1,(o={}).width=22,o.name=function(){return t},o.topic=function(){return r||""},o.description=function(){return i||""},o.context=function(){return n},o.ring=function(){return e},o.number=function(){return a},o.setNumber=function(t){a=t},o}},35788:t=>{t.exports=function(t){var e,n;return n=[],(e={}).name=function(){return t},e.add=function(t){Array.isArray(t)?n=n.concat(t):n.push(t)},e.blips=function(){return n.slice(0)},e}},60266:(t,e,n)=>{var r=n(9828),i=n(1232),o={map:n(35161),uniqBy:n(45578),sortBy:n(89734)};t.exports=function(){var t,e,n,a,s,u;function c(){return function(){if(a<4)throw new r(i.LESS_THAN_FOUR_QUADRANTS);return o.map(e,"quadrant")}().reduce((function(t,e){return t.concat(e.blips())}),[])}return n=0,a=0,e=[{order:"first",startAngle:90},{order:"second",startAngle:0},{order:"third",startAngle:-90},{order:"fourth",startAngle:-180}],s=[],u="",(t={}).addAlternative=function(t){s.push(t)},t.getAlternatives=function(){return s},t.setCurrentSheet=function(t){u=t},t.getCurrentSheet=function(){return u},t.addQuadrant=function(t){if(a>=4)throw new r(i.TOO_MANY_QUADRANTS);e[a].quadrant=t,t.blips().forEach((function(t){t.setNumber(++n)})),a++},t.rings=function(){return o.sortBy(o.map(o.uniqBy(c(),(function(t){return t.ring().name()})),(function(t){return t.ring()})),(function(t){return t.order()}))},t.quadrants=function(){return e},t.contexts=function(){return c().reduce((function(t,e){return t.add(e.context()),t}),new Set)},t}},12929:t=>{t.exports=function(t,e){return{name:function(){return t},order:function(){return e}}}},33392:(t,e,n)=>{function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?i(Object(n),!0).forEach((function(e){var i,o,a;i=t,o=e,a=n[e],(o=function(t){var e=function(t,e){if("object"!==r(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,"string");if("object"!==r(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"===r(e)?e:String(e)}(o))in i?Object.defineProperty(i,o,{value:a,enumerable:!0,configurable:!0,writable:!0}):i[o]=a})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function a(t){return function(t){if(Array.isArray(t))return s(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return s(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s(t,e):void 0}}(t)||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 s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var u=n(98942);n(92993),u.widget("custom.radarcomplete",u.ui.autocomplete,{_create:function(){this._super(),this.widget().menu("option","items","> :not(.ui-autocomplete-quadrant)")},_renderMenu:function(t,e){var n=this,r="";e.forEach((function(e){var i=e.quadrant.quadrant.name();i!==r&&(t.append("<li class='ui-autocomplete-quadrant'>".concat(i,"</li>")),r=i);var o=n._renderItemData(t,e);i&&o.attr("aria-label","".concat(i,":").concat(e.value))}))}}),t.exports=function(t,e,n){var r=e.reduce((function(t,e){return[].concat(a(t),a(e.quadrant.blips().map((function(t){return{blip:t,quadrant:e}}))))}),[]);u(t).radarcomplete({source:function(t,e){e(r.filter((function(e){var n=e.blip,r="".concat(n.name()," ").concat(n.description()).toLowerCase();return t.term.split(" ").every((function(t){return r.includes(t.toLowerCase())}))})).map((function(t){return o(o({},t),{},{value:t.blip.name()})})))},select:n.bind({})})}},11863:(t,e,n)=>{var r={map:n(35161),uniqBy:n(45578),capitalize:n(48403),each:n(66073)},i=n(9828),o=n(1232);t.exports=function(t){var e={};return t=t.map((function(t){return t.trim()})),e.verifyContent=function(){if(0===t.length)throw new i(o.MISSING_CONTENT)},e.verifyHeaders=function(){r.each(["name","ring","quadrant","context","description"],(function(e){if(-1===t.indexOf(e))throw new i(o.MISSING_HEADERS)}))},e}},87201:t=>{function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function n(){n=function(){return r};var t,r={},i=Object.prototype,o=i.hasOwnProperty,a=Object.defineProperty||function(t,e,n){t[e]=n.value},s="function"==typeof Symbol?Symbol:{},u=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",l=s.toStringTag||"@@toStringTag";function f(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{f({},"")}catch(t){f=function(t,e,n){return t[e]=n}}function h(t,e,n,r){var i=e&&e.prototype instanceof b?e:b,o=Object.create(i.prototype),s=new P(r||[]);return a(o,"_invoke",{value:E(t,n,s)}),o}function p(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}r.wrap=h;var d="suspendedStart",m="suspendedYield",g="executing",v="completed",y={};function b(){}function w(){}function _(){}var x={};f(x,u,(function(){return this}));var A=Object.getPrototypeOf,M=A&&A(A(D([])));M&&M!==i&&o.call(M,u)&&(x=M);var C=_.prototype=b.prototype=Object.create(x);function S(t){["next","throw","return"].forEach((function(e){f(t,e,(function(t){return this._invoke(e,t)}))}))}function T(t,n){function r(i,a,s,u){var c=p(t[i],t,a);if("throw"!==c.type){var l=c.arg,f=l.value;return f&&"object"==e(f)&&o.call(f,"__await")?n.resolve(f.__await).then((function(t){r("next",t,s,u)}),(function(t){r("throw",t,s,u)})):n.resolve(f).then((function(t){l.value=t,s(l)}),(function(t){return r("throw",t,s,u)}))}u(c.arg)}var i;a(this,"_invoke",{value:function(t,e){function o(){return new n((function(n,i){r(t,e,n,i)}))}return i=i?i.then(o,o):o()}})}function E(e,n,r){var i=d;return function(o,a){if(i===g)throw new Error("Generator is already running");if(i===v){if("throw"===o)throw a;return{value:t,done:!0}}for(r.method=o,r.arg=a;;){var s=r.delegate;if(s){var u=k(s,r);if(u){if(u===y)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===d)throw i=v,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=g;var c=p(e,n,r);if("normal"===c.type){if(i=r.done?v:m,c.arg===y)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(i=v,r.method="throw",r.arg=c.arg)}}}function k(e,n){var r=n.method,i=e.iterator[r];if(i===t)return n.delegate=null,"throw"===r&&e.iterator.return&&(n.method="return",n.arg=t,k(e,n),"throw"===n.method)||"return"!==r&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+r+"' method")),y;var o=p(i,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,y;var a=o.arg;return a?a.done?(n[e.resultName]=a.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,y):a:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,y)}function N(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function I(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function P(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(N,this),this.reset(!0)}function D(n){if(n||""===n){var r=n[u];if(r)return r.call(n);if("function"==typeof n.next)return n;if(!isNaN(n.length)){var i=-1,a=function e(){for(;++i<n.length;)if(o.call(n,i))return e.value=n[i],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(e(n)+" is not iterable")}return w.prototype=_,a(C,"constructor",{value:_,configurable:!0}),a(_,"constructor",{value:w,configurable:!0}),w.displayName=f(_,l,"GeneratorFunction"),r.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===w||"GeneratorFunction"===(e.displayName||e.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,_):(t.__proto__=_,f(t,l,"GeneratorFunction")),t.prototype=Object.create(C),t},r.awrap=function(t){return{__await:t}},S(T.prototype),f(T.prototype,c,(function(){return this})),r.AsyncIterator=T,r.async=function(t,e,n,i,o){void 0===o&&(o=Promise);var a=new T(h(t,e,n,i),o);return r.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},S(C),f(C,l,"Generator"),f(C,u,(function(){return this})),f(C,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var e=Object(t),n=[];for(var r in e)n.push(r);return n.reverse(),function t(){for(;n.length;){var r=n.pop();if(r in e)return t.value=r,t.done=!1,t}return t.done=!0,t}},r.values=D,P.prototype={constructor:P,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(I),!e)for(var n in this)"t"===n.charAt(0)&&o.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(r,i){return s.type="throw",s.arg=e,n.next=r,i&&(n.method="next",n.arg=t),!!i}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],s=a.completion;if("root"===a.tryLoc)return r("end");if(a.tryLoc<=this.prev){var u=o.call(a,"catchLoc"),c=o.call(a,"finallyLoc");if(u&&c){if(this.prev<a.catchLoc)return r(a.catchLoc,!0);if(this.prev<a.finallyLoc)return r(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return r(a.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return r(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&o.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var i=r;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),I(n),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;I(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,n,r){return this.delegate={iterator:D(e),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=t),y}},r}function r(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}function i(t){return function(){var e=this,n=arguments;return new Promise((function(i,o){var a=t.apply(e,n);function s(t){r(a,i,o,s,u,"next",t)}function u(t){r(a,i,o,s,u,"throw",t)}s(void 0)}))}}function o(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return a(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}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 o,s=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return s=t.done,t},e:function(t){u=!0,o=t},f:function(){try{s||null==n.return||n.return()}finally{if(u)throw o}}}}function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var s="#!includes",u=function(t){return t&&t.includes&&t.includes(s)},c=function(t,e){return""===e.trim()||(t+=e+"\n"),t},l=function(){var t,e=[],n="",r=!1,i=!1,a=o(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"");try{for(a.s();!(t=a.n()).done;){var s=t.value;r&&!i&&'"'===s?r=!1:"\\"===s?(n+=s,i=!0):i?(n+=s,i=!1):'"'===s?r=!0:r||","!==s?n+=s:(e.push(n.trim()),n="")}}catch(t){a.e(t)}finally{a.f()}return e.push(n.trim()),e},f=function(t){var e=t.line,n=void 0===e?"":e;if(!n.includes("!transforms"))return{apply:!1,line:n};for(var r="",i=function(t){var e=r;return l(t).forEach((function(t,n){e=e.replace(new RegExp("\\$\\[".concat(n,"\\]"),"gi"),function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return t.includes(",")?'"'.concat(t.trim(),'"'):t.trim()}(t))})),e},o="SEARCH",a=0,s=0;s<n.length;s++){var u=n[s];switch(o){case"SEARCH":"!"===u&&"transforms"===n.substr(s+1,10)&&(o="BLOCK:START",s+=10);break;case"BLOCK:START":"("===u&&(o="BLOCK");break;case"BLOCK":if("("===u)r+=u,a++;else if(")"===u&&a>0)r+=u,a=Math.max(a-1,0);else{if(")"===u)return{line:n=n.substr(s+1).trim(),apply:i};r+=u}}}return{line:n,apply:i}},h=function(){var t=i(n().mark((function t(e,r){var i,a,s,u,c,l;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=[f].reduce((function(t,e){var n=e({line:t.line});return t.line=n.line,t.directives.push(n),t}),{line:e,directives:[]}),t.next=4,r(i.line);case 4:a=t.sent,s=[],u=o(a.split("\n").filter((function(t){return""!==t.trim()})));try{for(u.s();!(c=u.n()).done;)l=c.value,s.push(i.directives.reduce((function(t,e){return!1===e.apply?t:e.apply(t)}),l))}catch(t){u.e(t)}finally{u.f()}return t.abrupt("return",s.join("\n"));case 9:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}();function p(){return d.apply(this,arguments)}function d(){return d=i(n().mark((function t(){var e,r,a,f,d,m,g,v=arguments;return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=v.length>0&&void 0!==v[0]?v[0]:"",r=v.length>1&&void 0!==v[1]?v[1]:{loader:function(){var t=i(n().mark((function t(){return n().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return","");case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()},a="",f=o(e.split("\n")),t.prev=4,f.s();case 6:if((d=f.n()).done){t.next=22;break}if((m=d.value).includes(s)){t.next=11;break}return a=c(a,m),t.abrupt("continue",20);case 11:return m=l(m.replace(s,"").trim()).join(","),t.next=14,h(m,r.loader);case 14:if(g=t.sent,!u(g)){t.next=19;break}return t.next=18,p(g,r);case 18:g=t.sent;case 19:a=c(a,g);case 20:t.next=6;break;case 22:t.next=27;break;case 24:t.prev=24,t.t0=t.catch(4),f.e(t.t0);case 27:return t.prev=27,f.f(),t.finish(27);case 30:return t.abrupt("return",a.trim());case 31:case"end":return t.stop()}}),t,null,[[4,24,27,30]])}))),d.apply(this,arguments)}t.exports={canParse:u,split:l,load:p,transform:f}},1232:t=>{t.exports={TOO_MANY_QUADRANTS:"There are more than 4 quadrant names listed in your data. Check the quadrant column for errors.",TOO_MANY_RINGS:"More than 4 rings.",MISSING_HEADERS:'Document is missing one or more required headers or they are misspelled. Check that your document contains headers for "name", "ring", "quadrant", "context", "description".',MISSING_CONTENT:"Document is missing content.",LESS_THAN_FOUR_QUADRANTS:"There are less than 4 quadrant names listed in your data. Check the quadrant column for errors.",SHEET_NOT_FOUND:"Oops! We can’t find the Google Sheet you’ve entered. Can you check the URL?",UNAUTHORIZED:"UNAUTHORIZED"}},8821:(t,e,n)=>{var r=n(82893),i={map:n(35161),uniqBy:n(45578),capitalize:n(48403),each:n(66073)},o=n(87201),a=n(30548),s=n(60266),u=n(35788),c=n(12929),l=n(51269),f=n(15057),h=n(74914),p=n(9828),d=n(79323),m=n(11863),g=n(30885),v=n(1232),y=n(52514),b=n(84825).ROOT_ELEMENT,w=function(t,e,n,o){t.endsWith(".csv")&&(t=t.substring(0,t.length-4)),t.endsWith(".json")&&(t=t.substring(0,t.length-5)),document.title=t,r.select(b()).selectAll(".loading").remove();var a=i.map(i.uniqBy(e,"ring"),"ring"),h={};i.each(a,(function(t,e){if(4===e)throw new p(v.TOO_MANY_RINGS+JSON.stringify(a));h[t]=new c(t,e)}));var d={};i.each(e,(function(t){d[t.quadrant]||(d[t.quadrant]=new u(i.capitalize(t.quadrant))),d[t.quadrant].add(new l(t.name,h[t.ring],t.context,t.topic,t.description))}));var m=new s;i.each(d,(function(t){m.addQuadrant(t)})),o.forEach((function(t){m.addAlternative(t)})),m.setCurrentSheet(n);var g=window.innerHeight-133<620?620:window.innerHeight-133;new f(g,m).init().plot()},_=function(t,e){var n={};function r(t,n,r){e||(e=r[0]),n.forEach((function(){var t=new m(n[0]);t.verifyContent(),t.verifyHeaders()}));var o=n,s=o.shift(),u=i.map(o,(function(t){return(new a).sanitizeForProtectedSheet(t,s)}));w(t+" - "+e,u,e,r)}return n.build=function(){new g(t).validate((function(t,e){t instanceof d?E(t):n.authenticate(!1,e)}))},n.authenticate=function(){var n=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=arguments.length>2?arguments[2]:void 0;(arguments.length>1?arguments[1]:void 0)?y.loadGoogle((function(){new g(t).processSheetResponse(e,r,(function(t){403===t.status?k():E(t)})),i&&i()})):y.loadGoogle((function(){y.login((function(){new g(t).processSheetResponse(e,r,(function(t){403===t.status?k():E(t)})),i&&i()}),n)}))},n.init=function(){return M(),n},n},x=function(t){var e=/([^\\/]+)$/.exec(decodeURIComponent(t.replace(/\+/g," ")));return null!=e?e[1]:t};function A(){document.title="Build your own Radar"}function M(t){t=r.select(b()).append("div").attr("class","loading").append("div").attr("class","input-sheet"),A(),C(t),T(t,"<h1>Building your radar...</h1><p>Your Technology Radar will be available in just a few seconds</p>"),S(t)}function C(t){t.append("div").attr("class","input-sheet__logo").html('<a href="https://www.thoughtworks.com"><img src="images/tw-logo.png" / ></a>')}function S(t){t.append("div").attr("id","footer").append("div").attr("class","footer-content").append("p").html('Powered by <a href="https://www.thoughtworks.com"> Thoughtworks</a>. By using this service you agree to <a href="https://www.thoughtworks.com/radar/tos">Thoughtworks\' terms of use</a>. You also agree to our <a href="https://www.thoughtworks.com/privacy-policy">privacy policy</a>, which describes how we will gather, use and protect any personal data contained in your public Google Sheet. This software is <a href="https://github.com/thoughtworks/build-your-own-radar">open source</a> and available for download and self-hosting.')}function T(t,e){t.append("div").attr("class","input-sheet__banner").html(e)}function E(t){var e="Oops! It seems like there are some problems with loading your data. ",n=r.select(b()).append("div").attr("class","input-sheet");A(),C(n),T(n,'<div><h1>Build your own radar</h1><p>Once you\'ve <a href ="https://www.thoughtworks.com/radar/byor">created your Radar</a>, you can use this service to generate an <br />interactive version of your Technology Radar. Not sure how? <a href ="https://www.thoughtworks.com/radar/how-to-byor">Read this first.</a></p></div>'),r.select(b()).selectAll(".loading").remove(),e="Oops! We can't find the Google Sheet you've entered",t instanceof p?e=e.concat(t.message):t instanceof d?e=t.message:console.error(t);var i=n.append("div").attr("class","error-container").append("div").attr("class","error-container__message");i.append("div").append("p").html(e),i.append("div").append("p").html('Please check <a href="https://www.thoughtworks.com/radar/how-to-byor">FAQs</a> for possible solutions.');var o=window.location.protocol+"//"+window.location.hostname,a="<a href="+(o+=""===window.location.port?"":":"+window.location.port)+">GO BACK</a>";i.append("div").append("p").html(a),S(n)}function k(){var t=r.select(b()).append("div").attr("class","input-sheet");A(),C(t),T(t,"<div><h1>Build your own radar</h1></div>"),r.select(b()).selectAll(".loading").remove();var e=y.geEmail(),n=window.location.protocol+"//"+window.location.hostname,i="<a href="+(n+=""===window.location.port?"":":"+window.location.port)+">GO BACK</a>",o="<strong>Oops!</strong> Looks like you are accessing this sheet using <b>".concat(e,"</b>, which does not have permission.Try switching to another account."),a=t.append("div").attr("class","error-container").append("div").attr("class","error-container__message");a.append("div").append("p").attr("class","error-title").html(o);var s=a.append("button").attr("class","button switch-account-button").text("SWITCH ACCOUNT");a.append("div").append("p").attr("class","error-subtitle").html("or ".concat(i," to try a different sheet.")),s.on("click",(function(){var e=window.location.href.match(/sheetId(.*)/),n=e?h(e[0]):{};_(n.sheetId,n.sheetName).authenticate(!0,!1,(function(){t.remove()}))}))}t.exports=function(){var t={};return t.build=function(t){var e,n,s=(e=t||window.location.search.substring(1),null==(n=/.+:\/\/([^\\/]+)/.exec(decodeURIComponent(e.replace(/\+/g," "))))?null:n[1]),u=window.location.href.match(/sheetId(.*)/),c=u?h(u[0]):{},l=t||c.sheetId;if(console.log("Loading",s,l,"..."),s&&l.endsWith(".csv"))console.log("Creating csv document..."),t=function(t){var e={},n=new URL(t),s=n.pathname,u=s.substring(0,s.indexOf(function(t){return t.split("/").pop()}(s)));e.build=function(){var e=new Headers({"Content-Type":"text/csv"});r.text(t,{headers:e}).then((function(t){return o.canParse(t)?o.load(t,{loader:function(t){return r.text(new URL(u+t,n),{headers:e})}}).then((function(t){return r.csvParse(t)})):r.csvParse(t)})).then(c)};var c=function(e){try{var n=e.columns;delete e.columns;var r=new m(n);r.verifyContent(),r.verifyHeaders();var o=i.map(e,(new a).sanitize);w(x(t),o,"CSV File",[])}catch(t){E(t)}};return e.init=function(){return M(),e},e}(l),t.init().build();else if(s&&l.endsWith(".json"))t=function(t){var e={build:function(){r.json(t).then(n)}},n=function(e){try{var n=Object.keys(e[0]),r=new m(n);r.verifyContent(),r.verifyHeaders();var o=i.map(e,(new a).sanitize);w(x(t),o,"JSON File",[])}catch(t){E(t)}};return e.init=function(){return M(),e},e}(l),t.init().build();else if(s&&s.endsWith("google.com")&&l)t=_(l,c.sheetName),console.log(c.sheetName),t.init().build();else{var f=r.select(b()).append("div").attr("class","input-sheet");A(),C(f),T(f,'<div><h1>Build your own radar</h1><p>Once you\'ve <a href ="https://www.thoughtworks.com/radar/byor">created your Radar</a>, you can use this service to generate an <br />interactive version of your Technology Radar. Not sure how? <a href ="https://www.thoughtworks.com/radar/how-to-byor">Read this first.</a></p></div>'),function(t){t.append("div").attr("class","input-sheet__form").append("p").html('<strong>Enter the URL of your <a href="https://www.thoughtworks.com/radar/how-to-byor" target="_blank">Google Sheet, CSV or JSON</a> file below…</strong>');var e=t.select(".input-sheet__form").append("form").attr("method","get");e.append("input").attr("type","text").attr("name","sheetId").attr("placeholder","e.g. https://docs.google.com/spreadsheets/d/<sheetid> or hosted CSV/JSON file").attr("required",""),e.append("button").attr("type","submit").append("a").attr("class","button").text("Build my radar"),e.append("p").html("<a href='https://www.thoughtworks.com/radar/how-to-byor'>Need help?</a>")}(f),S(f)}},t}},52514:(t,e,n)=>{var r=n(82893),i=n(84825).ROOT_ELEMENT,o=["https://sheets.googleapis.com/$discovery/rest?version=v4"];t.exports=new function(){var t={isAuthorizedCallbacks:[],isLoggedIn:void 0,_updateProfile:function(){var e=gapi.auth2.getAuthInstance().currentUser.get().getBasicProfile();e&&(t.profile={id:e.getId(),fullName:e.getName(),givenName:e.getGivenName(),familyName:e.getFamilyName(),imageUrl:e.getImageUrl(),email:e.getEmail()})},loadGoogle:function(e){t.loadedCallback=e,r.select(i()).append("script").attr("src","https://apis.google.com/js/api.js").on("load",(function(){t.handleClientLoad()}))},isLoggedInCallback:function(e){t.isLoggedIn=e,t._updateProfile(),t.isAuthorizedCallbacks.forEach((function(t){t(e)}))},handleClientLoad:function(){gapi.load("client:auth2",(function(){t.initClient()}))},updateSigninStatus:function(e){t.isLoggedInCallback(e)},isAuthorized:function(e){t.isAuthorizedCallbacks.push(e),void 0!==t.isLoggedIn&&e(t.isLoggedIn)},initClient:function(){gapi.client.init({apiKey:void 0,clientId:void 0,discoveryDocs:o,scope:"https://www.googleapis.com/auth/spreadsheets.readonly"}).then((function(){t.loadedCallback(),gapi.auth2.getAuthInstance().isSignedIn.listen((function(e){t.updateSigninStatus(e)})),t.updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get())}))},logout:function(){gapi.auth2.getAuthInstance().signOut()},geEmail:function(){if(gapi.auth2.getAuthInstance().isSignedIn.get())return gapi.auth2.getAuthInstance().currentUser.get().getBasicProfile().getEmail()},login:function(t){arguments.length>1&&void 0!==arguments[1]&&arguments[1]?gapi.auth2.getAuthInstance().signIn({prompt:"select_account"}).then(t):gapi.auth2.getAuthInstance().isSignedIn.get()?t():gapi.auth2.getAuthInstance().signIn().then(t)}};return t}},30548:(t,e,n)=>{var r=n(91036),i={forOwn:n(2525)};t.exports=function(){var t={allowedTags:["b","i","em","strong","a","h1","h2","h3","h4","h5","h6","li","ul","br","p","u"],allowedAttributes:{a:["href"]}},e={allowedTags:[],allowedAttributes:{},textFilter:function(t){return t.replace(/&amp;/,"&")}};function n(t){var e={};return i.forOwn(t,(function(t,n){e[n.trim()]=t.trim()})),e}return{sanitize:function(i){var o=n(i);return o.description=r(o.description,t),o.name=r(o.name,e),o.context=r(o.context,e),o.ring=r(o.ring,e),o.quadrant=r(o.quadrant,e),o},sanitizeForProtectedSheet:function(i,o){var a=n(i),s=o.indexOf("description"),u=o.indexOf("name"),c=o.indexOf("context"),l=o.indexOf("quadrant"),f=o.indexOf("ring"),h=-1===s?"":a[s],p=-1===u?"":a[u],d=-1===c?"":a[c],m=-1===f?"":a[f],g=-1===l?"":a[l];return a.description=r(h,t),a.name=r(p,e),a.context=r(d,e),a.ring=r(m,e),a.quadrant=r(g,e),a}}}},84825:t=>{t.exports={ROOT_ELEMENT:function(){return document.querySelector("technology-radar").shadowRoot.getElementById("technology-radar")}}},74914:t=>{t.exports=function(t){for(var e,n=function(t){return decodeURIComponent(t.replace(/\+/g," "))},r=/([^&=]+)=?([^&]*)/g,i={};e=r.exec(t);)i[n(e[1])]=n(e[2]);return i}},31740:t=>{t.exports=function(t,e){var n=[0,6,5,3,2,1,1,1],r={sum:function(t){return n.slice(0,t+1).reduce((function(t,e){return t+e}),0)},getRadius:function(n){var i=r.sum(t),o=r.sum(n);return e*o/i}};return r}},30885:(t,e,n)=>{var r=n(79323),i=n(90067),o=n(1232);t.exports=function(t){var e,n={};return e=t.match("https:\\/\\/docs.google.com\\/spreadsheets\\/d\\/(.*?)($|\\/$|\\/.*|\\?.*)"),n.id=null!==e?e[1]:t,n.validate=function(t){var e=!1,a="https://docs.google.com/spreadsheets/d/"+n.id,s=new XMLHttpRequest;s.open("GET",a,!0),s.onreadystatechange=function(){if(4===s.readyState)return 200===s.status?t(null,e):404===s.status?t(new r(o.SHEET_NOT_FOUND,e)):t(new i(o.UNAUTHORIZED,e))},s.send(null)},n.getSheet=function(){return gapi.client.sheets.spreadsheets.get({spreadsheetId:n.id})},n.getData=function(t){return gapi.client.sheets.spreadsheets.values.get({spreadsheetId:n.id,range:t})},n.processSheetResponse=function(t,e,r){n.getSheet().then((function(i){return function(t,e,r,i){var o=e.result.sheets.map((function(t){return t.properties.title}));t=t||o[0],n.getData(t+"!A1:E").then((function(t){return r(e.result.properties.title,t.result.values,o)})).catch(i)}(t,i,e,r)})).catch(r)},n}},20714:(t,e)=>{var n;!function(){var r=9007199254740992,i="0123456789",o="abcdefghijklmnopqrstuvwxyz",a=o.toUpperCase(),s=i+"abcdef";function u(t){this.name="UnsupportedError",this.message=t||"This feature is not supported on this platform"}u.prototype=new Error,u.prototype.constructor=u;var c=Array.prototype.slice;function l(t){if(!(this instanceof l))return t||(t=null),null===t?new l:new l(t);if("function"==typeof t)return this.random=t,this;arguments.length&&(this.seed=0);for(var e=0;e<arguments.length;e++){var n=0;if("[object String]"===Object.prototype.toString.call(arguments[e]))for(var r=0;r<arguments[e].length;r++){for(var i=0,o=0;o<arguments[e].length;o++)i=arguments[e].charCodeAt(o)+(i<<6)+(i<<16)-i;n+=i}else n=arguments[e];this.seed+=(arguments.length-e)*n}return this.mt=this.mersenne_twister(this.seed),this.bimd5=this.blueimp_md5(),this.random=function(){return this.mt.random(this.seed)},this}function f(t,e){if(t=t||{},e)for(var n in e)void 0===t[n]&&(t[n]=e[n]);return t}function h(t,e){if(t)throw new RangeError(e)}l.prototype.VERSION="1.1.11";var p=function(){throw new Error("No Base64 encoder available.")};function d(t){this.c=t}function m(t){this.c=t}function g(t){this.c=t}function v(t){return function(){return this.natural(t)}}"function"==typeof btoa?p=btoa:"function"==typeof Buffer&&(p=function(t){return new Buffer(t).toString("base64")}),l.prototype.bool=function(t){return h((t=f(t,{likelihood:50})).likelihood<0||t.likelihood>100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()<t.likelihood},l.prototype.falsy=function(t){var e=(t=f(t,{pool:[!1,null,0,NaN,"",void 0]})).pool;return e[this.integer({min:0,max:e.length-1})]},l.prototype.animal=function(t){return void 0!==(t=f(t)).type?(h(!this.get("animals")[t.type.toLowerCase()],"Please pick from desert, ocean, grassland, forest, zoo, pets, farm."),this.pick(this.get("animals")[t.type.toLowerCase()])):this.pick(this.get("animals")[this.pick(["desert","forest","ocean","zoo","farm","pet","grassland"])])},l.prototype.character=function(t){var e,n,r="!@#$%^&*()[]";return e="lower"===(t=f(t)).casing?o:"upper"===t.casing?a:o+a,t.pool?n=t.pool:(n="",t.alpha&&(n+=e),t.numeric&&(n+=i),t.symbols&&(n+=r),n||(n=e+i+r)),n.charAt(this.natural({max:n.length-1}))},l.prototype.floating=function(t){h((t=f(t,{fixed:4})).fixed&&t.precision,"Chance: Cannot specify both fixed and precision.");var e=Math.pow(10,t.fixed),n=r/e,i=-n;h(t.min&&t.fixed&&t.min<i,"Chance: Min specified is out of range with fixed. Min should be, at least, "+i),h(t.max&&t.fixed&&t.max>n,"Chance: Max specified is out of range with fixed. Max should be, at most, "+n),t=f(t,{min:i,max:n});var o=(this.integer({min:t.min*e,max:t.max*e})/e).toFixed(t.fixed);return parseFloat(o)},l.prototype.integer=function(t){return h((t=f(t,{min:-9007199254740992,max:r})).min>t.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(t.max-t.min+1)+t.min)},l.prototype.natural=function(t){if("number"==typeof(t=f(t,{min:0,max:r})).numerals&&(h(t.numerals<1,"Chance: Numerals cannot be less than one."),t.min=Math.pow(10,t.numerals-1),t.max=Math.pow(10,t.numerals)-1),h(t.min<0,"Chance: Min cannot be less than zero."),t.exclude){for(var e in h(!Array.isArray(t.exclude),"Chance: exclude must be an array."),t.exclude)h(!Number.isInteger(t.exclude[e]),"Chance: exclude must be numbers.");var n=t.min+this.natural({max:t.max-t.min-t.exclude.length}),i=t.exclude.sort();for(var o in i){if(n<i[o])break;n++}return n}return this.integer(t)},l.prototype.prime=function(t){h((t=f(t,{min:0,max:1e4})).min<0,"Chance: Min cannot be less than zero."),h(t.min>t.max,"Chance: Min cannot be greater than Max.");var e=y.primes[y.primes.length-1];if(t.max>e)for(var n=e+2;n<=t.max;++n)this.is_prime(n)&&y.primes.push(n);var r=y.primes.filter((function(e){return e>=t.min&&e<=t.max}));return this.pick(r)},l.prototype.is_prime=function(t){if(t%1||t<2)return!1;if(t%2==0)return 2===t;if(t%3==0)return 3===t;for(var e=Math.sqrt(t),n=5;n<=e;n+=6)if(t%n==0||t%(n+2)==0)return!1;return!0},l.prototype.hex=function(t){h((t=f(t,{min:0,max:r,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var e=this.natural({min:t.min,max:t.max});return"upper"===t.casing?e.toString(16).toUpperCase():e.toString(16)},l.prototype.letter=function(t){t=f(t,{casing:"lower"});var e=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===t.casing&&(e=e.toUpperCase()),e},l.prototype.string=function(t){0===(t=f(t,{min:5,max:20})).length||t.length||(t.length=this.natural({min:t.min,max:t.max})),h(t.length<0,"Chance: Length cannot be less than zero.");var e=t.length;return this.n(this.character,e,t).join("")},d.prototype={substitute:function(){return this.c}},m.prototype={substitute:function(){if(!/[{}\\]/.test(this.c))throw new Error('Invalid escape sequence: "\\'+this.c+'".');return this.c}},g.prototype={replacers:{"#":function(t){return t.character({pool:i})},A:function(t){return t.character({pool:a})},a:function(t){return t.character({pool:o})}},substitute:function(t){var e=this.replacers[this.c];if(!e)throw new Error('Invalid replacement character: "'+this.c+'".');return e(t)}},l.prototype.template=function(t){if(!t)throw new Error("Template string is required");var e=this;return function(t){for(var e=[],n="identity",r=0;r<t.length;r++){var i=t[r];switch(n){case"escape":e.push(new m(i)),n="identity";break;case"identity":"{"===i?n="replace":"\\"===i?n="escape":e.push(new d(i));break;case"replace":"}"===i?n="identity":e.push(new g(i))}}return e}(t).map((function(t){return t.substitute(e)})).join("")},l.prototype.buffer=function(t){if("undefined"=