-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomponent---src-pages-connections-js-467c4a7b946906b916b1.js
More file actions
2 lines (2 loc) · 234 KB
/
component---src-pages-connections-js-467c4a7b946906b916b1.js
File metadata and controls
2 lines (2 loc) · 234 KB
1
2
(window.webpackJsonp=window.webpackJsonp||[]).push([[16,3,5,6],{151:function(e,t,o){"use strict";o.r(t);var a=o(173),n=o.n(a),r=o(0),s=o.n(r),i=o(4),l=o.n(i),c=o(214),p=o(186),u=o(189),d=(o(650),o(75),o(49),o(76),o(50),o(48),o(78),o(308),o(309),o(7)),y=o.n(d),k=o(162),m=o(175),g=o(651),h=o.n(g),b=o(662),f=o(177),_=o(176),v=o(336),w=o(154),x=function(e){function t(){return e.apply(this,arguments)||this}return y()(t,e),t.prototype.render=function(){var e=this.props,t=e.keys,o=e.matrix,a=e.getColor;return s.a.createElement(w.a,null,function(e){return s.a.createElement("div",{className:"chart-wrapper"},s.a.createElement(v.a,{ratio:1,maxHeight:800},s.a.createElement(b.ResponsiveChordCanvas,{margin:{top:100,right:80,bottom:100,left:80},colors:a,padAngle:.02,innerRadiusOffset:.01,keys:t,matrix:o,labelRotation:-90,ribbonHoverOthersOpacity:.1,label:function(t){return h()(Object(f.a)(t.id,e),{length:12})},labelTextColor:"inherit:brighter(1.6)",animate:!1,theme:_.a})))})},t}(r.Component);x.propTypes={keys:l.a.arrayOf(l.a.string).isRequired,matrix:l.a.arrayOf(l.a.array).isRequired,getColor:l.a.func.isRequired};var j=function(e){function t(t){var o;return(o=e.call(this,t)||this).handleSectionToggle=function(e){var t,a=o.state.sections;t=a.includes(e)?a.filter(function(t){return t!==e}):a.concat([e]),o.setState({sections:t})},o.state={sections:t.data.indexesBySection.map(function(e){return e.section})},o}return y()(t,e),t.prototype.render=function(){var e=this.props,t=e.data,o=e.chartId,a=this.state.sections.reduce(function(e,o){var a=t.indexesBySection.find(function(e){return e.section===o}).indexes;return e.concat(a)},[]),n=[],r=t.matrix.filter(function(e,o){var r=a.includes(o);return r&&n.push(t.keys[o]),r}).map(function(e){return e.filter(function(e,t){return a.includes(t)})});return s.a.createElement(m.a,{id:o,showDescription:!1,className:"Block--chart Block--connections"},s.a.createElement(x,{getColor:function(e){var o=t.keys.findIndex(function(t){return t===e}),a=t.indexesBySection.findIndex(function(e){return e.indexes.includes(o)});return k.b[a]},keys:n,matrix:r}))},t}(r.Component);j.propTypes={data:l.a.shape({matrix:l.a.arrayOf(l.a.arrayOf(l.a.number)).isRequired,keys:l.a.arrayOf(l.a.string).isRequired,indexesBySection:l.a.arrayOf(l.a.shape({section:l.a.string.isRequired,indexes:l.a.arrayOf(l.a.number).isRequired})).isRequired}).isRequired,chartId:l.a.string.isRequired},o.d(t,"query",function(){return z});var S=function(e){var t=e.data,o=n()(e,["data"]);return s.a.createElement(p.a,o,s.a.createElement("div",{className:"Section"},s.a.createElement(u.a,null),s.a.createElement(c.a,{text:t.introduction.html}),s.a.createElement(j,{data:t.connections,chartId:"connections"})))};S.propTypes={data:l.a.shape({connections:l.a.shape({matrix:l.a.arrayOf(l.a.arrayOf(l.a.number)).isRequired,keys:l.a.arrayOf(l.a.string).isRequired,indexesBySection:l.a.arrayOf(l.a.shape({section:l.a.string.isRequired,indexes:l.a.arrayOf(l.a.number).isRequired})).isRequired}).isRequired}).isRequired};t.default=S;var z="763590"},153:function(e,t,o){"use strict";o.d(t,"b",function(){return r}),o.d(t,"a",function(){return s});var a=o(0),n=Object(a.createContext)(),r=n.Provider,s=n.Consumer},154:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(160),l=o(178),c=function(e){var t=e.children;return n.a.createElement(i.a,null,function(e){return t(Object(l.a)(e))})};c.propTypes={children:s.a.func.isRequired},t.a=c},156:function(e,t,o){"use strict";o.d(t,"d",function(){return n}),o.d(t,"a",function(){return r}),o.d(t,"b",function(){return s}),o.d(t,"c",function(){return i}),o.d(t,"e",function(){return l});o(77),o(53),o(78),o(33),o(25);var a=o(177),n=function(e,t){var o={};return void 0!==e.section&&(o.section=t("section."+e.section)),void 0!==e.tool&&(o.tool=Object(a.a)(e.tool,t)),o},r=function(e,t,o){void 0===o&&(o="normal");var n="";if("custom"===e.type)n=t("page."+e.id);else if("section"===e.type){if("short"===o)return t("section."+e.id);n=t("page.section_overview",{values:{section:t("section."+e.id)}})}else if("overview"===e.type){if("short"===o)return t("page.section_overview.short");n=t("page.section_overview",{values:{section:t("section."+e.section)}})}else if("conclusion"===e.type){if("short"===o)return t("page.section_conclusion.short");n=t("page.section_conclusion",{values:{section:t("section."+e.section)}})}else if("other-libraries"===e.type){if("short"===o)return t("page.section_other_tools.short");n=t("page.section_other_tools",{values:{section:t("section."+e.section)}})}else if("tool"===e.type){if("short"===o)return Object(a.a)(e.tool,t);n=t("page.section_tool",{values:{section:t("section."+e.section),tool:Object(a.a)(e.tool,t)}})}return"full"===o&&(n="The State of JavaScript 2018: "+n),n},s=function(e,t,o){void 0===o&&(o={});var a=""+e.host+e.localePath+e.basePath,n=function(e){var t=e.host+"/images/";return void 0!==e.block?t+"captures/"+e.basePath.replace(/^\//,"").replace(/\/$/,"").replace(/\//g,"_")+"_"+e.block+".png":t+"stateofjs2018-social.png"}(e);return Object.assign({url:a,title:r(e,t,"full"),imageUrl:n},o)},i=function(e,t,o){void 0===o&&(o={});var a=s(e,t,o);return[{property:"og:type",content:"article"},{property:"og:url",content:a.url},{property:"og:image",content:a.imageUrl},{property:"og:title",content:a.title},{property:"og:description",content:a.description},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:image:src",content:a.imageUrl},{name:"twitter:title",content:a.title},{name:"twitter:description",content:a.description}].filter(function(e){return void 0!==e.content})},l=function(e,t){var o=!(!t||!t.search)&&-1!==t.search.indexOf("capture"),a=!(!t||!t.search)&&-1!==t.search.indexOf("debug"),n="https://2018.stateofjs.com";return t&&t.host&&t.protocol&&(n=t.protocol+"//"+t.host),Object.assign({},e,{host:n,currentPath:t?t.pathname:void 0,isCapturing:o,isDebugEnabled:a})}},157:function(e,t,o){"use strict";var a=o(79),n=o.n(a);t.a=function(e,t){return function(){n.a.event({category:e,action:t?t+" share":"site share"})}}},160:function(e,t,o){"use strict";o.d(t,"b",function(){return c}),o.d(t,"a",function(){return p});o(76),o(48);var a=o(210),n=o(0),r=o.n(n),s=o(169),i=o(153),l=Object(n.createContext)(),c=function(e){var t=e.children;return r.a.createElement(s.StaticQuery,{query:"741359812",data:a},function(e){var o=e.translations.edges.map(function(e){return e.node});return r.a.createElement(i.a,null,function(e){var a=o.find(function(t){return t.locale===e.locale});return r.a.createElement(l.Provider,{value:a},t)})})},p=l.Consumer},161:function(e,t,o){"use strict";o.d(t,"c",function(){return s}),o.d(t,"a",function(){return i}),o.d(t,"b",function(){return l});o(25),o(33),o(75),o(49);var a=o(226),n=o.n(a),r=o(156),s=function(e,t,o,a){var n=void 0===a?{}:a,s=n.format,i=void 0===s?"short":s,l=n.values,c=void 0===l?{}:l,p=o("block.title."+e,{values:Object.assign({},Object(r.d)(t,o),c)});"full"===i&&(p=Object(r.a)(t,o)+" - "+p);return p},i=function(e,t,o,a){var s=void 0===a?{}:a,i=s.isMarkdownEnabled,l=void 0===i||i,c=s.values,p=void 0===c?{}:c,u=o("block.description."+e,{values:Object.assign({},Object(r.d)(t,o),p)});return!0!==l&&(u=n()(u)),u},l=function(e,t,o){var a=""+t.host+t.basePath+e,n=(""+t.basePath+e).replace(/^\//,""),r=s(e,t,o);return{link:a,trackingId:n,title:r,twitterText:o("share.block.twitter_text",{values:{title:r,link:a}}),emailSubject:o("share.block.subject"),emailBody:o("share.block.body",{values:{title:r,link:a}})}}},162:function(e,t,o){"use strict";o.d(t,"d",function(){return a}),o.d(t,"c",function(){return n}),o.d(t,"b",function(){return r}),o.d(t,"i",function(){return s}),o.d(t,"h",function(){return i}),o.d(t,"e",function(){return l}),o.d(t,"j",function(){return c}),o.d(t,"f",function(){return p}),o.d(t,"g",function(){return u}),o.d(t,"a",function(){return d});var a={purpleLight:"#b4addc",purple:"#9688e4",purpleDark:"#786bc3",otherPurple:"#4500EE",yellowLight:"#fffec7",yellow:"#fbf34c",yellowDark:"#d2b924",greyLight:"#d8d8d8",greyDark:"#aeaeae",warmGrey:"#e4d6d9",redLighter:"#fbcaca",redLight:"#f89f9f",red:"#FE6A6A",redDark:"#ca4040",redDarker:"#a22528",blueDark:"#008888",blue:"#41c7c7",blueLight:"#8be7e7"},n=[a.red,a.redLight,a.blue,a.blueLight,a.greyLight],r=[a.red,a.red,a.red,a.red,a.red,a.red],s=["would_use","would_not_use","interested","not_interested","never_heard"],i=["work-for-free","0-10","10-30","30-50","50-100","100-200","more-than-200"],l=["1","1-5","5-10","10-20","20-50","50-100","100-1000","more-than-1000"],c=["less-than-1","1-2","2-5","5-10","10-20","more-than-20"],p=(a.purple,a.purple,a.purple,a.purple,a.purple,["js_moving_in_right_direction","building_js_apps_overly_complex","js_over_used_online","enjoy_building_js_apps","would_like_js_to_be_main_lang","js_ecosystem_changing_to_fast","survey_too_long"]),u={like:["elegant_programming_style_patterns","robust_less_error_prone_code","rich_package_ecosystem","fast_performance","well_established_option","easy_learning_curve","powerful_developer_tooling","good_documentation","backed_by_a_great_team_company","simple_lightweight","growing_momentum_popularity","full_featured_powerful","stable_backwards_compatible","other"],dislike:["clumsy_programming_style","buggy_error_prone_code","poor_performance","small_package_ecosystem","new_untested_option","hard_learning_curve","lacking_developer_tooling","bad_documentation","concerns_about_the_team_company","bloated_complex","diminishing_momentum_popularity","limited_lacking_in_features","fast_changing_breaks_often","other"]},d={layout:"horizontal",enableGridX:!0,enableGridY:!1,enableLabel:!1,reverse:!1,enableLabels:!1,padding:.8,borderRadius:2.5,margin:{top:30,right:10,bottom:30,left:150},axisTop:{format:".2s"}}},163:function(e,t,o){"use strict";var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=(o(158),o(33),o(48),o(155)),l=o.n(i),c=o(179),p=o.n(c),u=o(153),d=function(){return s.a.createElement(u.a,null,function(e){var t=p.a.map(function(t){return Object.assign({},t,{link:("default"===t.path?"":"/"+t.path)+e.basePath,isCurrent:t.locale===e.locale})});return s.a.createElement("div",{className:"Locales"},t.map(function(e){var t=e.label,o=e.locale,a=e.link,n=e.isCurrent;return s.a.createElement(l.a,{className:"Locales__Item Locales__Item--"+(n&&"current"),key:o,to:a},t)}))})};o.d(t,"a",function(){return y});var y=function(e){function t(){for(var t,o=arguments.length,a=new Array(o),n=0;n<o;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).state={open:!1},t.toggle=function(){t.setState({open:!t.state.open})},t}return n()(t,e),t.prototype.render=function(){var e=this,t=this.state.open,o=this.props.position,a=void 0===o?"bottom":o,n={top:s.a.createElement("polygon",{stroke:"#000",points:"0,50 100,50 50,0"}),bottom:s.a.createElement("polygon",{stroke:"#000",points:"0,0 100,0 50,50"})};return s.a.createElement(u.a,null,function(o){return s.a.createElement("div",{className:"LanguageSwitcher LanguageSwitcher--"+a+" LanguageSwitcher--"+(t?"open":"closed")},s.a.createElement("div",{className:"LanguageSwitcher__Inner"},s.a.createElement("div",{className:"LanguageSwitcher__Toggle",onClick:e.toggle},s.a.createElement("span",null,o.localeLabel),s.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 50"},n[a])),t&&s.a.createElement("div",{className:"LanguageSwitcher__Options"},s.a.createElement(d,null))))})},t}(r.Component)},164:function(e,t,o){"use strict";o(77),o(75),o(49),o(174),o(48);var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=function(e){var t=e.title,o=e.data;return n.a.createElement("div",{style:{marginBottom:20}},n.a.createElement("div",null,"[debug] ",t),n.a.createElement("div",{style:{fontSize:"12px"}},Object.keys(o).map(function(e){var t=o[e];return void 0!==t&&0===t.indexOf("http")&&(t=n.a.createElement("a",{href:t},t)),n.a.createElement("div",{key:e},e,": ",void 0===t?n.a.createElement("i",null,"undefined"):n.a.createElement("strong",null,t))})))};i.propTypes={title:s.a.string.isRequired,data:s.a.object.isRequired},t.a=i},165:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(157),l=function(e){var t=e.text,o=e.trackingId;return n.a.createElement("a",{onClick:Object(i.a)("Twitter",o),className:"share__link--twitter share__link",href:"https://twitter.com/intent/tweet/?text="+encodeURIComponent(t),target:"_blank",rel:"noopener noreferrer","aria-label":""},n.a.createElement("div",{className:"resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small"},n.a.createElement("div",{"aria-hidden":"true",className:"resp-sharing-button__icon resp-sharing-button__icon--solid"},n.a.createElement("svg",{version:"1.1",x:"0px",y:"0px",width:"24px",height:"24px",viewBox:"0 0 24 24",enableBackground:"new 0 0 24 24",xmlSpace:"preserve"},n.a.createElement("g",null,n.a.createElement("path",{d:"M23.444,4.834c-0.814,0.363-1.5,0.375-2.228,0.016c0.938-0.562,0.981-0.957,1.32-2.019c-0.878,0.521-1.851,0.9-2.886,1.104 C18.823,3.053,17.642,2.5,16.335,2.5c-2.51,0-4.544,2.036-4.544,4.544c0,0.356,0.04,0.703,0.117,1.036 C8.132,7.891,4.783,6.082,2.542,3.332C2.151,4.003,1.927,4.784,1.927,5.617c0,1.577,0.803,2.967,2.021,3.782 C3.203,9.375,2.503,9.171,1.891,8.831C1.89,8.85,1.89,8.868,1.89,8.888c0,2.202,1.566,4.038,3.646,4.456 c-0.666,0.181-1.368,0.209-2.053,0.079c0.579,1.804,2.257,3.118,4.245,3.155C5.783,18.102,3.372,18.737,1,18.459 C3.012,19.748,5.399,20.5,7.966,20.5c8.358,0,12.928-6.924,12.928-12.929c0-0.198-0.003-0.393-0.012-0.588 C21.769,6.343,22.835,5.746,23.444,4.834z"}))))))};l.propTypes={text:s.a.string.isRequired,trackingId:s.a.string},t.a=l},166:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(157),l=function(e){var t=e.subject,o=e.body,a=e.trackingId;return n.a.createElement("a",{onClick:Object(i.a)("Email",a),className:"share__link--email share__link",href:"mailto:?subject="+encodeURIComponent(t)+"&body="+encodeURIComponent(o),target:"_self","aria-label":""},n.a.createElement("div",{className:"resp-sharing-button resp-sharing-button--email resp-sharing-button--small"},n.a.createElement("div",{"aria-hidden":"true",className:"resp-sharing-button__icon resp-sharing-button__icon--solid"},n.a.createElement("svg",{version:"1.1",x:"0px",y:"0px",width:"24px",height:"24px",viewBox:"0 0 24 24",enableBackground:"new 0 0 24 24",xmlSpace:"preserve"},n.a.createElement("path",{d:"M22,4H2C0.897,4,0,4.897,0,6v12c0,1.103,0.897,2,2,2h20c1.103,0,2-0.897,2-2V6C24,4.897,23.103,4,22,4z M7.248,14.434 l-3.5,2C3.67,16.479,3.584,16.5,3.5,16.5c-0.174,0-0.342-0.09-0.435-0.252c-0.137-0.239-0.054-0.545,0.186-0.682l3.5-2 c0.24-0.137,0.545-0.054,0.682,0.186C7.571,13.992,7.488,14.297,7.248,14.434z M12,14.5c-0.094,0-0.189-0.026-0.271-0.08l-8.5-5.5 C2.997,8.77,2.93,8.46,3.081,8.229c0.15-0.23,0.459-0.298,0.691-0.147L12,13.405l8.229-5.324c0.232-0.15,0.542-0.084,0.691,0.147 c0.15,0.232,0.083,0.542-0.148,0.691l-8.5,5.5C12.189,14.474,12.095,14.5,12,14.5z M20.934,16.248 C20.842,16.41,20.673,16.5,20.5,16.5c-0.084,0-0.169-0.021-0.248-0.065l-3.5-2c-0.24-0.137-0.323-0.442-0.186-0.682 s0.443-0.322,0.682-0.186l3.5,2C20.988,15.703,21.071,16.009,20.934,16.248z"})))))};l.propTypes={subject:s.a.string.isRequired,body:s.a.string.isRequired,trackingId:s.a.string},t.a=l},167:function(e,t,o){"use strict";o(158);var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(157),l=function(e){var t=e.link,o=e.trackingId;return n.a.createElement("a",{onClick:Object(i.a)("Facebook",o),className:"share__link--facebook share__link",href:"https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(t),target:"_blank",rel:"noopener noreferrer","aria-label":""},n.a.createElement("div",{className:"resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small"},n.a.createElement("div",{"aria-hidden":"true",className:"resp-sharing-button__icon resp-sharing-button__icon--solid"},n.a.createElement("svg",{version:"1.1",x:"0px",y:"0px",width:"24px",height:"24px",viewBox:"0 0 24 24",enableBackground:"new 0 0 24 24",xmlSpace:"preserve"},n.a.createElement("g",null,n.a.createElement("path",{d:"M18.768,7.465H14.5V5.56c0-0.896,0.594-1.105,1.012-1.105s2.988,0,2.988,0V0.513L14.171,0.5C10.244,0.5,9.5,3.438,9.5,5.32 v2.145h-3v4h3c0,5.212,0,12,0,12h5c0,0,0-6.85,0-12h3.851L18.768,7.465z"}))))))};l.propTypes={link:s.a.string.isRequired,trackingId:s.a.string},t.a=l},168:function(e,t,o){"use strict";o(158);var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(157),l=function(e){var t=e.link,o=e.title,a=e.summary,r=void 0===a?"":a,s=e.trackingId;return n.a.createElement("a",{onClick:Object(i.a)("LinkedIn",s),className:"share__link--linkedin share__link",href:"https://www.linkedin.com/shareArticle?mini=true&url="+encodeURIComponent(t)+"&title="+o+"&summary="+r,target:"_blank",rel:"noopener noreferrer","aria-label":""},n.a.createElement("div",{className:"resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small"},n.a.createElement("div",{"aria-hidden":"true",className:"resp-sharing-button__icon resp-sharing-button__icon--solid"},n.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},n.a.createElement("path",{d:"M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"})))))};l.propTypes={link:s.a.string.isRequired,title:s.a.string.isRequired,summary:s.a.string,trackingId:s.a.string},t.a=l},169:function(e,t,o){"use strict";o.r(t),o.d(t,"graphql",function(){return k}),o.d(t,"StaticQueryContext",function(){return d}),o.d(t,"StaticQuery",function(){return y});var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(155),l=o.n(i);o.d(t,"Link",function(){return l.a}),o.d(t,"withPrefix",function(){return i.withPrefix}),o.d(t,"navigate",function(){return i.navigate}),o.d(t,"push",function(){return i.push}),o.d(t,"replace",function(){return i.replace}),o.d(t,"navigateTo",function(){return i.navigateTo});var c=o(182),p=o.n(c);o.d(t,"PageRenderer",function(){return p.a});var u=o(34);o.d(t,"parsePath",function(){return u.a});var d=n.a.createContext({}),y=function(e){return n.a.createElement(d.Consumer,null,function(t){return e.data||t[e.query]&&t[e.query].data?(e.render||e.children)(e.data?e.data.data:t[e.query].data):n.a.createElement("div",null,"Loading (StaticQuery)")})};function k(){throw new Error("It appears like Gatsby is misconfigured. Gatsby related `graphql` calls are supposed to only be evaluated at compile time, and then compiled away,. Unfortunately, something went wrong and the query was left in the compiled code.\n\n.Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.")}y.propTypes={data:s.a.object,query:s.a.string.isRequired,render:s.a.func,children:s.a.func}},171:function(e,t,o){"use strict";o(159);var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(169),l=function(e){var t=e.className,o=e.name,a=e.symbol,r=e.number,s=e.background,l=e.color,c=void 0===l?"#41c7c7":l,p=e.mode,u=void 0===p?"standalone":p,d=e.size,y=e.path,k=e.x,m=e.y,g=e.fire,h=void 0!==g&&g,b=e.hoverCoords,f=void 0===b?{}:b;return n.a.createElement("svg",{width:d||"100%",height:d,x:k,y:m,viewBox:"0 0 100 100",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:"PeriodicTableElement "+t,onClick:function(){y&&Object(i.navigate)(y)}},n.a.createElement("rect",{x:"0",y:"0",width:"100",height:"100",className:"PeriodicTableElement_Placeholder",fill:"red",fillOpacity:"0"}),n.a.createElement("g",{className:"PeriodicTableElement_Container",style:{"--dx":f.dx+"px","--dy":f.dy+"px"}},n.a.createElement("rect",{x:"0",y:"0",width:"100",height:"100",className:"PeriodicTableElement_Frame PeriodicTableElement_Frame--"+u,style:{fill:s}}),h&&n.a.createElement("image",{xlinkHref:"/images/pixel-fire.gif",x:"10%",height:"100",width:"100",opacity:"0.4"}),n.a.createElement("text",{className:"PeriodicTableElement_Number",x:10,y:20,fontSize:100*.14,fill:"white"},r),n.a.createElement("text",{className:"PeriodicTableElement_Symbol",x:50,y:o?100*.55:60,width:"100%",textAnchor:"middle",fontSize:36,fill:c},a),n.a.createElement("text",{className:"PeriodicTableElement_Label",x:50,y:78,fontSize:100*.14,fill:c,textAnchor:"middle"},o)))};l.propTypes={name:s.a.string,symbol:s.a.string.isRequired,background:s.a.string},t.a=l},175:function(e,t,o){"use strict";o.d(t,"a",function(){return u});o(75),o(49);var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=o(4),l=o.n(i),c=o(202),p=o(204),u=function(e){function t(){return e.apply(this,arguments)||this}return n()(t,e),t.prototype.render=function(){var e=this.props,t=e.id,o=e.showDescription,a=e.isShareable,n=e.className,r=e.values,i=e.children;return s.a.createElement("div",{id:t,className:"Block"+(void 0!==n?" "+n:"")},s.a.createElement(c.a,{id:t,showDescription:o,isShareable:a,values:r}),a&&s.a.createElement(p.a,{id:t}),i)},t}(r.Component);u.propTypes={id:l.a.string.isRequired,showDescription:l.a.bool.isRequired,isShareable:l.a.bool.isRequired,className:l.a.string,values:l.a.object},u.defaultProps={showDescription:!0,isShareable:!0}},176:function(e,t,o){"use strict";var a=o(162);t.a={name:"dark",background:"#212424",opinionColors:{would_use:a.d.red,would_not_use:a.d.redLight,interested:a.d.blue,not_interested:a.d.blueLight,never_heard:a.d.greyLight},opinionScaleColors:[a.d.red,a.d.redLight,a.d.greyLight,a.d.blueLight,a.d.blue],salaryColors:["#8b8de8","#b3b5e6","#dedfec","#e4d6d9","#dc9eaa","#e28194","#ea2149"],sourceColors:{Email:a.d.purple,Twitter:a.d.blue,Reddit:a.d.red,Slack:"rgb(110, 93, 133)","JavaScript Weekly":a.d.yellow,"Hacker News":"rgb(240, 128, 72)",Medium:"#48A57F",Facebook:"rgb(99, 130, 197)","Other/Unknown":a.d.greyLight},genderColors:{female:a.d.blue,male:a.d.red,"non-binary/ third gender":a.d.yellow,other:a.d.greyLight},reasonsColors:{like:a.d.blue,dislike:a.d.red},axis:{domain:{line:{strokeWidth:0,stroke:"#bbb"}},ticks:{line:{stroke:"#bbb"},text:{fill:"#bbb",fontSize:13}},legend:{text:{fill:"#eee",fontSize:12,fontWeight:500}}},streamTimelineAxis:{ticks:{line:{strokeWidth:2,stroke:"#e8e8e8"},text:{fontSize:16,fill:"#e8e8e8"}}},grid:{stroke:"#444",line:{stroke:"#444"}},legends:{text:{fontSize:12,fill:"#eee"}},tooltip:{container:{fontSize:13,background:"#000",color:"#ddd"}},labels:{text:{fill:"#ddd",fontSize:12,fontWeight:500,fontFamily:"'IBM Plex Mono', 'Space Grotesk', 'Roboto Slab', sans-serif"}},dots:{text:{fill:"#bbb",fontSize:12}}}},177:function(e,t,o){"use strict";o.d(t,"a",function(){return n});o(159),o(76);var a=o(198),n=function(e,t){var o=a.projects.find(function(t){return t.slug===e});return void 0!==o?o.name:t("tool."+e)}},178:function(e,t,o){"use strict";o.d(t,"a",function(){return n});o(76),o(75),o(49);var a=o(236),n=function(e){var t=e.locale,o=e.translations;return function(e,n){var r=(void 0===n?{}:n).values,s=o.find(function(t){return t.key===e});if(void 0===s)return"["+t+"] "+e;if(void 0===r)return s.t;try{return Object(a.template)(s.t)(r)}catch(o){return"["+t+"][ERR] "+e}}}},179:function(e,t){e.exports=[{locale:"en-US",path:"default",label:"English"},{locale:"fr-FR",path:"fr",label:"Français"},{locale:"zh-CN",path:"cn",label:"简体中文"},{locale:"hu-HU",path:"hu",label:"Magyar"},{locale:"es-ES",path:"es",label:"Español"}]},180:function(e,t,o){"use strict";o(75),o(49);var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(160),l=o(178),c=function(e){var t=e.id,o=e.values,a=void 0===o?{}:o;return n.a.createElement(i.a,null,function(e){return Object(l.a)(e)(t,{values:a})})};c.propTypes={id:s.a.string.isRequired,values:s.a.object},t.a=c},182:function(e,t,o){var a;e.exports=(a=o(211))&&a.default||a},183:function(e,t,o){"use strict";o(33),o(159),o(50);var a=o(0),n=o.n(a),r=o(153),s=o(154),i=o(164),l=o(156);t.a=function(e){var t=e.overrides,o=void 0===t?{}:t;return n.a.createElement(r.a,null,function(e){return e.isDebugEnabled?n.a.createElement(s.a,null,function(t){var a=Object(l.c)(e,t,o).reduce(function(e,t){var o,a=t.property||t.name;return Object.assign({},e,((o={})[a]=t.content,o))},{});return n.a.createElement(i.a,{title:"Page meta",data:a})}):null})}},184:function(e,t,o){"use strict";o(48),o(49),o(174),o(33),o(75),o(80);var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=o(155),l=o.n(i),c=o(171),p=o(153),u=o(154),d=100,y=1.1,k=10,m=2.5,g=10,h=1.1;function b(e){return+(Math.round(e+"e+2")+"e-2")}var f=[{x:0,y:0,symbol:"St"},{x:1,y:0,symbol:"At"},{x:2,y:0,symbol:"E"},{x:4,y:0,symbol:"Of"},{x:0,y:1,symbol:"Ja"},{x:1,y:1,symbol:"Va"},{x:2,y:1,symbol:"Sc"},{x:3,y:1,symbol:"Ri"},{x:4,y:1,symbol:"Pt"},{x:2,y:2,symbol:"20"},{x:3,y:2,symbol:"18"}],_=[{x:0,y:0,symbol:"St",number:1},{x:1,y:0,symbol:"Js",number:2},{x:2,y:0,symbol:"20",number:3},{x:4,y:0,symbol:"18",number:4}],v=function(){return Math.round(360*Math.random())},w=function(e){function t(){for(var t,o=arguments.length,a=new Array(o),n=0;n<o;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).state={t:0,ready:!1,stopped:!1},t.getLogoElements=function(){var e=t.props.variant;return"full"===(void 0===e?"full":e)?f:_},t.getOrigin=function(e,o){var a=t.props.variant,n=void 0===a?"full":a,r=t.getSize(o);return"full"===n?{x:o/2-5*r/2,y:e/2-3*r/2}:{x:1,y:1}},t.getSize=function(e){var o=t.props.size;if(o)return o;var a=(e-40)/5;return Math.min(a,d)},t.getInitPositions=function(e,o){var a={},n=t.getOrigin(e,o),r=t.getSize(o);return t.getLogoElements().forEach(function(e){var o=e.x,s=e.y,i=e.symbol;a[i]=Object.assign({x:n.x+o*r,y:n.y+s*r},t.getAngle())}),a},t.getAngle=function(){var e=v(),t=y+b(Math.random()*h),o=b(Math.cos(e)*t),a=b(Math.sin(e)*t);return{angle:e,baseXSpeed:o,baseYSpeed:a,xSpeed:o*g,ySpeed:a*g}},t.resetAngles=function(e){var o={};return Object.keys(e).forEach(function(a){o[a]=Object.assign({},e[a],t.getAngle())}),o},t.computePositions=function(e){var o=t.state,a=o.height,n=o.width,r=o.initPositions,s=o.stopped,i=t.getSize(n),l={};return Object.keys(e).forEach(function(t){var o=e[t],c=o.x,p=o.y,u=o.xSpeed,d=o.ySpeed,y=o.angle,g=o.baseXSpeed,h=o.baseYSpeed;if(s)u=(r[t].x-c)/k,d=(r[t].y-p)/k;else{var f=Math.pow(m,3),_=b((u-g)/f),v=b((d-h)/f);Math.abs(_)<.01&&(_=0),Math.abs(v)<.01&&(v=0),u-=_,d-=v,(c<=0||c>=n-i)&&(u=-u,g=-g),(p<=0||p>=a-i)&&(d=-d,h=-h)}c+=u,p+=d,l[t]={baseXSpeed:g,baseYSpeed:h,x:c,y:p,xSpeed:u,ySpeed:d,angle:y}}),l},t.stopAnimation=function(){t.setState(function(){return{stopped:!0}})},t.restartAnimation=function(){t.setState(function(e){var o=e.positions;return{stopped:!1,positions:t.resetAngles(o)}})},t}n()(t,e);var o=t.prototype;return o.componentDidMount=function(){var e=this,t=document.getElementById("LogoAnimation__Wrapper"),o=t.clientHeight-47,a=t.clientWidth,n=this.getInitPositions(o,a);this.setState({height:o,width:a,initPositions:n,positions:n,ready:!0}),setInterval(function(){e.setState(function(t){var o=t.positions;return{positions:e.computePositions(o)}})},10)},o.render=function(){var e=this,t=this.props.variant,o=void 0===t?"full":t,a=this.state,n=a.positions,r=a.height,i=a.width,d=a.ready,y=i&&this.getSize(i);return s.a.createElement("div",{className:"LogoAnimation__Wrapper LogoAnimation__Wrapper--"+o,id:"LogoAnimation__Wrapper"},d&&s.a.createElement("svg",{className:"LogoAnimation",id:"LogoAnimation",width:i,height:r,viewBox:"0 0 "+i+" "+r,fill:"none",xmlns:"http://www.w3.org/2000/svg"},this.getLogoElements().map(function(e,t){var o=e.symbol,a=e.number;return s.a.createElement(c.a,{key:o,number:a||t,className:"LogoAnimation__Element LogoAnimation__Element--"+o,x:n[o].x,y:n[o].y,symbol:o,size:y})}),"full"===o&&s.a.createElement(s.a.Fragment,null,s.a.createElement("foreignObject",{x:i/2-3*y/2,y:r/2+3*y/2+40,width:3*y,height:y},s.a.createElement(p.a,null,function(t){return s.a.createElement(u.a,null,function(o){return s.a.createElement(l.a,{onMouseEnter:e.stopAnimation,onMouseLeave:e.restartAnimation,className:"LogoAnimation__Button button",to:t.localePath+"/introduction"},s.a.createElement("span",null,o("start")))})})))))},t}(r.Component);t.a=w},185:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(215),s=o.n(r),i=o(153),l=o(156),c=o(154);t.a=function(){return n.a.createElement(i.a,null,function(e){return n.a.createElement(c.a,null,function(t){var o=Object(l.b)(e,t),r=Object(l.c)(e,t),i=[{charset:"utf-8"},{name:"description",content:"Discover the most popular JavaScript technologies of the year."},{name:"viewport",content:"width=device-width, initial-scale=1"},{name:"google-site-verification",content:"hrTRsz9fkGmQlVbLBWA4wmhn0qsI6_M3NKemTGCkpps"}].concat(r);return n.a.createElement(a.Fragment,null,n.a.createElement(s.a,{meta:i,defaultTitle:o.fullTitle},n.a.createElement("html",{lang:"en"}),n.a.createElement("title",null,o.title),n.a.createElement("link",{rel:"shortcut icon",href:"/images/favicon.png"}),n.a.createElement("link",{rel:"preconnect",href:"https://fonts.gstatic.com/",crossOrigin:!0}),n.a.createElement("link",{href:"https://fonts.googleapis.com/css?family=IBM+Plex+Mono:300,300i,600",rel:"stylesheet"})))})})}},186:function(e,t,o){"use strict";o(33);var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=o(4),l=o.n(i),c=o(170),p=o.n(c),u=(o(187),o(184)),d=function(){return s.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100",height:"100",viewBox:"0 0 100 100",className:"Hamburger"},s.a.createElement("g",{id:"Outline_Icons"},s.a.createElement("line",{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",strokeWidth:"8",x1:"15",y1:"25",x2:"85",y2:"25"}),s.a.createElement("line",{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",strokeWidth:"8",x1:"15",y1:"50",x2:"85",y2:"50"}),s.a.createElement("line",{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",strokeWidth:"8",x1:"15",y1:"75",x2:"85",y2:"75"})))},y=o(153),k=o(156),m=o(154),g=function(e){var t=e.page,o=e.mode,a=void 0===o?"short":o;return s.a.createElement(m.a,null,function(e){return Object(k.a)(t,e,a)})},h=o(173),b=o.n(h),f=o(155),_=o.n(f),v=function(e){var t=e.page,o=b()(e,["page"]);return s.a.createElement(y.a,null,function(e){return s.a.createElement(_.a,Object.assign({},o,{to:""+e.localePath+(t.path||t.basePath)}))})};v.propTypes={page:l.a.shape({basePath:l.a.string,path:l.a.string}).isRequired};var w=v,x=o(163),j=function(e){function t(){return e.apply(this,arguments)||this}return n()(t,e),t.prototype.render=function(){var e=this.props,t=e.position,o=e.toggleSidebar;return s.a.createElement(y.a,null,function(e){var a=s.a.createElement("span",null);void 0!==e.previous&&(a=s.a.createElement(w,{page:e.previous,className:"pagination__link pagination__previous"},s.a.createElement("span",{className:"pagination__link__symbol"},"<< "),s.a.createElement("span",{className:"pagination__link__label pagination__link__label--full"},s.a.createElement(g,{page:e.previous,mode:"long"})),s.a.createElement("span",{className:"pagination__link__label pagination__link__label--short"},s.a.createElement(g,{page:e.previous}))));var n=s.a.createElement("span",null);return void 0!==e.next&&(n=s.a.createElement(w,{page:e.next,className:"pagination__link pagination__next"},s.a.createElement("span",{className:"pagination__link__label pagination__link__label--full"},s.a.createElement(g,{page:e.next,mode:"long"})),s.a.createElement("span",{className:"pagination__link__label pagination__link__label--short"},s.a.createElement(g,{page:e.next})),s.a.createElement("span",{className:"pagination__link__symbol"}," >>"))),s.a.createElement("div",{className:"pagetitle__wrapper pagetitle__wrapper--pagination pagetitle__wrapper--"+t},s.a.createElement("div",{className:"pagetitle"},s.a.createElement("div",{className:"pagetitle__inner"},a,s.a.createElement("div",{className:"pagination__middle"},"top"===t&&s.a.createElement("span",{className:"PageTitle__Sidebar__Toggle"},s.a.createElement("button",{className:"Sidebar__Toggle",onClick:o},s.a.createElement("span",null,s.a.createElement(d,null)))),s.a.createElement(x.a,null)),n)))})},t}(s.a.PureComponent);j.defaultProps={mode:"title"};var S=j,z=(o(48),o(77),o(78),o(188)),E=o.n(z).a.filter(function(e){return!e.is_hidden}),C=function(e){var t=e.page,o=e.currentPath,a=e.closeSidebar,n=-1!==o.indexOf(t.id);return s.a.createElement("li",null,s.a.createElement("h3",{className:"nav-page"},s.a.createElement(w,{onClick:a,page:t},s.a.createElement(g,{page:t}))),"section"===t.type&&n&&s.a.createElement("div",{className:"nav-subpages"},t.children.map(function(e){return s.a.createElement(A,{key:e.id,page:e,closeSidebar:a})})))},A=function(e){var t=e.page,o=e.closeSidebar;return s.a.createElement(w,{className:"nav-subpage nav-subpage--"+t.type,activeClassName:"nav-subpage-active",page:t,onClick:o},s.a.createElement(g,{page:t})," ")},P=function(e){var t=e.closeSidebar;return s.a.createElement(y.a,null,function(e){return s.a.createElement("div",{className:"nav"},s.a.createElement("ul",null,s.a.createElement("li",null,s.a.createElement(x.a,null)),E.map(function(o,a){return s.a.createElement(C,{key:a,page:o,currentPath:e.currentPath,closeSidebar:t})})))})},$=function(e){var t=e.width;return s.a.createElement("svg",{width:t,viewBox:"0 0 390 100",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s.a.createElement("g",{clipPath:"url(#clip0)"},s.a.createElement("rect",{x:"293",y:"1",width:"98",height:"98",stroke:"#4D4F4F",strokeWidth:"2"}),s.a.createElement("path",{d:"M341.006 63V59.148H335.318V37.872H328.082L321.854 45.288L324.806 47.772L330.278 41.292H330.602V59.148H323.69V63H341.006ZM352.8 63.432C358.776 63.432 362.088 60.3 362.088 56.124C362.088 52.812 360.036 50.796 357.048 50.004V49.716C359.604 48.816 361.332 46.872 361.332 43.956C361.332 40.104 358.236 37.44 352.8 37.44C347.364 37.44 344.268 40.104 344.268 43.956C344.268 46.872 345.996 48.816 348.552 49.716V50.004C345.564 50.796 343.512 52.812 343.512 56.124C343.512 60.3 346.824 63.432 352.8 63.432ZM352.8 59.76C349.992 59.76 348.408 58.392 348.408 56.16V55.44C348.408 53.172 349.956 51.804 352.8 51.804C355.644 51.804 357.192 53.172 357.192 55.44V56.16C357.192 58.392 355.608 59.76 352.8 59.76ZM352.8 48.312C350.172 48.312 348.732 47.016 348.732 44.928V44.424C348.732 42.372 350.172 41.112 352.8 41.112C355.428 41.112 356.868 42.372 356.868 44.424V44.928C356.868 47.016 355.428 48.312 352.8 48.312Z",fill:"#FE6A6A"}),s.a.createElement("path",{opacity:"0.5",d:"M307.868 12.4L302.396 21.202V22.498H308.912V25H310.388V22.498H312.548V21.148H310.388V12.4H307.868ZM308.696 13.624H308.912V21.148H304.034L308.696 13.624Z",fill:"#fff"}),s.a.createElement("rect",{x:"-1",y:"1",width:"98",height:"98",stroke:"#4D4F4F",strokeWidth:"2"}),s.a.createElement("path",{d:"M36.9261 63.432C43.0101 63.432 46.2861 60.156 46.2861 55.476C46.2861 51.732 44.1621 49.248 39.8421 48.456L37.2141 47.988C34.4421 47.52 33.3981 46.584 33.3981 44.676C33.3981 42.444 34.8021 41.292 37.5021 41.292C40.0221 41.292 41.8941 42.3 43.2261 43.884L45.9981 40.932C44.2701 38.772 41.3901 37.44 37.4661 37.44C31.9941 37.44 28.6461 40.104 28.6461 44.892C28.6461 48.384 30.4461 51.192 35.0901 51.984L37.7541 52.416C40.4901 52.848 41.5341 53.82 41.5341 55.8C41.5341 58.212 39.9501 59.58 37.0701 59.58C34.5861 59.58 32.3901 58.572 30.5181 56.412L27.6741 59.364C29.5821 61.812 32.6421 63.432 36.9261 63.432ZM67.044 63V59.364H59.484V48.06H67.044V44.424H59.484V37.872H55.2V42.372C55.2 43.92 54.624 44.424 53.148 44.424H49.476V48.06H54.876V57.96C54.876 60.912 56.532 63 60.06 63H67.044Z",fill:"#D0D0D0"}),s.a.createElement("path",{opacity:"0.5",d:"M11.708 12.4L8.108 17.836H9.782L12.338 13.84H12.554V25H14.03L14.048 12.4H11.708Z",fill:"#fff"}),s.a.createElement("rect",{x:"195",y:"1",width:"98",height:"98",stroke:"#4D4F4F",strokeWidth:"2"}),s.a.createElement("path",{d:"M242.214 59.04H229.65L235.122 54.612C238.758 51.696 241.53 48.996 241.53 44.892C241.53 40.572 238.47 37.44 233.106 37.44C227.886 37.44 225.15 40.392 224.07 43.704L228.174 45.252C228.786 43.164 230.082 41.508 232.71 41.508C235.086 41.508 236.526 42.804 236.526 45.18V45.54C236.526 47.664 235.23 49.428 232.566 51.732L224.502 58.608V63H242.214V59.04ZM254.8 63.432C261.352 63.432 264.304 58.644 264.304 50.436C264.304 42.228 261.352 37.44 254.8 37.44C248.248 37.44 245.296 42.228 245.296 50.436C245.296 58.644 248.248 63.432 254.8 63.432ZM254.8 59.652C251.344 59.652 250.084 56.988 250.084 52.668V48.204C250.084 43.884 251.344 41.22 254.8 41.22C258.256 41.22 259.516 43.884 259.516 48.204V52.668C259.516 56.988 258.256 59.652 254.8 59.652ZM254.8 52.56C256.456 52.56 257.032 51.804 257.032 50.832V50.04C257.032 49.068 256.456 48.312 254.8 48.312C253.144 48.312 252.568 49.068 252.568 50.04V50.832C252.568 51.804 253.144 52.56 254.8 52.56Z",fill:"#FE6A6A"}),s.a.createElement("path",{opacity:"0.5",d:"M205.026 12.4V13.768H211.56L207.636 17.224V18.61H209.436C210.966 18.61 212.226 19.51 212.226 21.166C212.226 22.732 211.074 23.902 209.292 23.902C207.366 23.902 206.142 22.84 206.142 20.95V20.23H204.666V21.004C204.666 23.614 206.574 25.252 209.31 25.252C211.758 25.252 213.702 23.596 213.702 21.202C213.702 18.88 212.064 17.44 209.976 17.44H209.526V17.242L213.576 13.714V12.4H205.026Z",fill:"#fff"}),s.a.createElement("rect",{x:"97",y:"1",width:"98",height:"98",stroke:"#4D4F4F",strokeWidth:"2"}),s.a.createElement("path",{d:"M129.238 37.872V41.76H137.734V55.584C137.734 58.284 136.51 59.544 134.386 59.544C132.046 59.544 131.038 57.996 130.606 55.908L126.178 56.844C126.934 60.84 129.634 63.432 134.386 63.432C139.282 63.432 142.486 60.588 142.486 56.124V37.872H129.238ZM156.728 63.432C161.984 63.432 165.116 61.092 165.116 57.276C165.116 53.604 162.164 52.416 159.032 51.948L156.08 51.48C154.568 51.264 153.488 50.868 153.488 49.536C153.488 48.096 154.712 47.34 157.016 47.34C159.68 47.34 161.408 48.384 162.452 49.536L164.864 46.872C163.244 45.072 160.724 43.992 157.16 43.992C152.12 43.992 148.988 46.152 148.988 50.004C148.988 53.676 151.94 54.9 155.036 55.368L158.024 55.836C159.536 56.052 160.58 56.412 160.58 57.744C160.58 59.328 159.068 60.084 156.764 60.084C154.136 60.084 152.156 59.112 150.644 57.456L147.944 59.904C149.6 62.064 152.66 63.432 156.728 63.432Z",fill:"#72D7D1"}),s.a.createElement("path",{opacity:"0.5",d:"M106.882 16.432V16.9H108.358V16.522C108.358 14.578 109.528 13.498 111.436 13.498C113.056 13.498 114.244 14.47 114.244 16.144C114.244 17.962 112.948 18.754 110.806 19.384C108.412 20.086 106.864 21.04 106.864 23.542V25H115.648V23.65H108.358V23.362C108.358 21.634 109.438 21.184 111.454 20.572C113.92 19.816 115.72 18.736 115.72 16.198C115.72 13.768 113.938 12.148 111.436 12.148C108.772 12.148 106.882 13.786 106.882 16.432Z",fill:"#fff"})),s.a.createElement("defs",null,s.a.createElement("clipPath",{id:"clip0"},s.a.createElement("rect",{width:"390",height:"100",fill:"#fff"}))))},R=o(165),O=o(166),q=o(167),T=o(168),L=function(){return s.a.createElement(y.a,null,function(e){return s.a.createElement(m.a,null,function(t){var o=e.host,a={values:{link:o}},n=t("share.site.title",a),r=t("share.site.twitter_text",a),i=t("share.site.subject",a),l=t("share.site.body",a);return s.a.createElement("div",{className:"ShareSite"},s.a.createElement(R.a,{text:r}),s.a.createElement(q.a,{link:o}),s.a.createElement(T.a,{link:o,title:n}),s.a.createElement(O.a,{subject:i,body:l}))})})},J=function(){return s.a.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},s.a.createElement("g",{id:"Outline_Icons_1_"},s.a.createElement("g",{fill:"none",strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:"10",id:"Outline_Icons"},s.a.createElement("line",{x1:".5",y1:".5",x2:"23.5",y2:"23.5"}),s.a.createElement("line",{x1:"23.5",y1:".5",x2:".5",y2:"23.5"}))))},M=function(e){var t=e.sidebarClassName,o=e.closeSidebar,a=e.rest,n=e.showAnim;return s.a.createElement("div",{className:"Sidebar "+t},s.a.createElement("div",{className:"Sidebar__Fixed"},s.a.createElement("h1",{className:"Logo__Wrapper"},s.a.createElement("span",{className:"Logo Logo--mobile"},s.a.createElement($,null),s.a.createElement("span",{className:"Sidebar__Close"},s.a.createElement("button",{onClick:o},s.a.createElement(J,null)))),s.a.createElement("div",{onClick:n,className:"Logo Logo--desktop"},s.a.createElement($,null))),s.a.createElement("div",{className:"Sidebar__Inner"},s.a.createElement(P,Object.assign({},a,{closeSidebar:o}))),s.a.createElement("div",{className:"Sidebar__Footer"},s.a.createElement(L,null))))},N=o(185),B=o(160),I=o(183);o.d(t,"a",function(){return H});var H=function(e){function t(){var t;return(t=e.call(this)||this).toggleSidebar=function(){t.setState({showSidebar:!t.state.showSidebar})},t.openSidebar=function(){t.setState({showSidebar:!0})},t.closeSidebar=function(){t.setState({showSidebar:!1})},t.showAnim=function(){t.setState({showAnim:!0})},t.state={showSidebar:!1,showAnim:!1},t}return n()(t,e),t.prototype.render=function(){var e=this.props,t=e.showPagination,o=e.location,a=e.currentPage,n=e.pageContext,r=this.state,i=r.showAnim,l=r.showSidebar,c=l?"Sidebar--shown":"Sidebar--hidden",d=Object(k.e)(n,o);return s.a.createElement(y.b,{value:d},s.a.createElement(B.b,null,s.a.createElement("div",{className:p()("pageLayout","PageLayout--"+(a&&a.section.id),{"PageLayout--sidebar":l,"PageLayout--nosidebar":!l,"PageLayout--anim":i,"PageLayout--noanim":!i,capture:d.isCapturing,nocapture:!d.isCapturing})},s.a.createElement(N.a,null),i&&s.a.createElement(u.a,{showStart:!1,variant:"simple",size:70}),s.a.createElement("div",{className:"pagelayout__inner"},s.a.createElement(M,Object.assign({},this.props,{sidebarClassName:c,closeSidebar:this.closeSidebar,showAnim:this.showAnim})),s.a.createElement("div",{className:"pagelayout__content"},t&&s.a.createElement(S,{toggleSidebar:this.toggleSidebar,position:"top"}),s.a.createElement("div",{className:"pagelayout__main"},s.a.createElement(I.a,null),this.props.children),t&&s.a.createElement(S,{toggleSidebar:this.toggleSidebar,position:"bottom"}))))))},t}(r.PureComponent);H.propTypes={showPagination:l.a.bool.isRequired},H.defaultProps={showPagination:!0}},187:function(e,t,o){},188:function(e,t){e.exports=[{id:"home",path:"/",type:"custom",is_hidden:!0,next:{id:"introduction",type:"custom",basePath:"/introduction/"}},{id:"introduction",path:"/introduction/",type:"custom",is_hidden:!1,next:{id:"demographics",type:"custom",basePath:"/demographics/"}},{id:"demographics",path:"/demographics/",type:"custom",is_hidden:!1,blocks:["participation-by-country","gender-breakdown","salaries","salary-per-country","years-of-experience","company-size"],previous:{id:"introduction",type:"custom",basePath:"/introduction/"},next:{id:"connections",type:"custom",basePath:"/connections/"}},{id:"connections",path:"/connections/",type:"custom",is_hidden:!1,blocks:["connections"],previous:{id:"demographics",type:"custom",basePath:"/demographics/"},next:{id:"javascript-flavors",type:"section",basePath:"/javascript-flavors/overview/"}},{id:"javascript-flavors",path:"/javascript-flavors/overview/",type:"section",is_hidden:!1,children:[{id:"overview",path:"/javascript-flavors/overview/",type:"overview",section:"javascript-flavors",blocks:["overview","tools-salary-range","tools-company-size","tools-years-of-experience","happiness"],previous:{id:"connections",type:"custom",basePath:"/connections/"},next:{id:"es6",type:"tool",section:"javascript-flavors",tool:"es6",basePath:"/javascript-flavors/es6/"}},{id:"es6",path:"/javascript-flavors/es6/",type:"tool",section:"javascript-flavors",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"es6",previous:{id:"overview",type:"overview",section:"javascript-flavors",basePath:"/javascript-flavors/overview/"},next:{id:"typescript",type:"tool",section:"javascript-flavors",tool:"typescript",basePath:"/javascript-flavors/typescript/"}},{id:"typescript",path:"/javascript-flavors/typescript/",type:"tool",section:"javascript-flavors",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"typescript",previous:{id:"es6",type:"tool",section:"javascript-flavors",tool:"es6",basePath:"/javascript-flavors/es6/"},next:{id:"flow",type:"tool",section:"javascript-flavors",tool:"flow",basePath:"/javascript-flavors/flow/"}},{id:"flow",path:"/javascript-flavors/flow/",type:"tool",section:"javascript-flavors",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"flow",previous:{id:"typescript",type:"tool",section:"javascript-flavors",tool:"typescript",basePath:"/javascript-flavors/typescript/"},next:{id:"reason",type:"tool",section:"javascript-flavors",tool:"reason",basePath:"/javascript-flavors/reason/"}},{id:"reason",path:"/javascript-flavors/reason/",type:"tool",section:"javascript-flavors",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"reason",previous:{id:"flow",type:"tool",section:"javascript-flavors",tool:"flow",basePath:"/javascript-flavors/flow/"},next:{id:"elm",type:"tool",section:"javascript-flavors",tool:"elm",basePath:"/javascript-flavors/elm/"}},{id:"elm",path:"/javascript-flavors/elm/",type:"tool",section:"javascript-flavors",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"elm",previous:{id:"reason",type:"tool",section:"javascript-flavors",tool:"reason",basePath:"/javascript-flavors/reason/"},next:{id:"clojurescript",type:"tool",section:"javascript-flavors",tool:"clojurescript",basePath:"/javascript-flavors/clojurescript/"}},{id:"clojurescript",path:"/javascript-flavors/clojurescript/",type:"tool",section:"javascript-flavors",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"clojurescript",previous:{id:"elm",type:"tool",section:"javascript-flavors",tool:"elm",basePath:"/javascript-flavors/elm/"},next:{id:"other-libraries",type:"other-libraries",section:"javascript-flavors",basePath:"/javascript-flavors/other-libraries/"}},{id:"other-libraries",path:"/javascript-flavors/other-libraries/",type:"other-libraries",section:"javascript-flavors",blocks:["other-tools"],previous:{id:"clojurescript",type:"tool",section:"javascript-flavors",tool:"clojurescript",basePath:"/javascript-flavors/clojurescript/"},next:{id:"conclusion",type:"conclusion",section:"javascript-flavors",basePath:"/javascript-flavors/conclusion/"}},{id:"conclusion",path:"/javascript-flavors/conclusion/",type:"conclusion",section:"javascript-flavors",blocks:["quadrants"],previous:{id:"other-libraries",type:"other-libraries",section:"javascript-flavors",basePath:"/javascript-flavors/other-libraries/"},next:{id:"front-end-frameworks",type:"section",basePath:"/front-end-frameworks/overview/"}}],previous:{id:"connections",type:"custom",basePath:"/connections/"},next:{id:"es6",type:"tool",section:"javascript-flavors",tool:"es6",basePath:"/javascript-flavors/es6/"}},{id:"front-end-frameworks",path:"/front-end-frameworks/overview/",type:"section",is_hidden:!1,children:[{id:"overview",path:"/front-end-frameworks/overview/",type:"overview",section:"front-end-frameworks",blocks:["overview","tools-salary-range","tools-company-size","tools-years-of-experience","happiness"],previous:{id:"conclusion",type:"conclusion",section:"javascript-flavors",basePath:"/javascript-flavors/conclusion/"},next:{id:"react",type:"tool",section:"front-end-frameworks",tool:"react",basePath:"/front-end-frameworks/react/"}},{id:"react",path:"/front-end-frameworks/react/",type:"tool",section:"front-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"react",previous:{id:"overview",type:"overview",section:"front-end-frameworks",basePath:"/front-end-frameworks/overview/"},next:{id:"vuejs",type:"tool",section:"front-end-frameworks",tool:"vuejs",basePath:"/front-end-frameworks/vuejs/"}},{id:"vuejs",path:"/front-end-frameworks/vuejs/",type:"tool",section:"front-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"vuejs",previous:{id:"react",type:"tool",section:"front-end-frameworks",tool:"react",basePath:"/front-end-frameworks/react/"},next:{id:"angular",type:"tool",section:"front-end-frameworks",tool:"angular",basePath:"/front-end-frameworks/angular/"}},{id:"angular",path:"/front-end-frameworks/angular/",type:"tool",section:"front-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"angular",previous:{id:"vuejs",type:"tool",section:"front-end-frameworks",tool:"vuejs",basePath:"/front-end-frameworks/vuejs/"},next:{id:"preact",type:"tool",section:"front-end-frameworks",tool:"preact",basePath:"/front-end-frameworks/preact/"}},{id:"preact",path:"/front-end-frameworks/preact/",type:"tool",section:"front-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"preact",previous:{id:"angular",type:"tool",section:"front-end-frameworks",tool:"angular",basePath:"/front-end-frameworks/angular/"},next:{id:"ember",type:"tool",section:"front-end-frameworks",tool:"ember",basePath:"/front-end-frameworks/ember/"}},{id:"ember",path:"/front-end-frameworks/ember/",type:"tool",section:"front-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"ember",previous:{id:"preact",type:"tool",section:"front-end-frameworks",tool:"preact",basePath:"/front-end-frameworks/preact/"},next:{id:"polymer",type:"tool",section:"front-end-frameworks",tool:"polymer",basePath:"/front-end-frameworks/polymer/"}},{id:"polymer",path:"/front-end-frameworks/polymer/",type:"tool",section:"front-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"polymer",previous:{id:"ember",type:"tool",section:"front-end-frameworks",tool:"ember",basePath:"/front-end-frameworks/ember/"},next:{id:"other-libraries",type:"other-libraries",section:"front-end-frameworks",basePath:"/front-end-frameworks/other-libraries/"}},{id:"other-libraries",path:"/front-end-frameworks/other-libraries/",type:"other-libraries",section:"front-end-frameworks",blocks:["other-tools"],previous:{id:"polymer",type:"tool",section:"front-end-frameworks",tool:"polymer",basePath:"/front-end-frameworks/polymer/"},next:{id:"conclusion",type:"conclusion",section:"front-end-frameworks",basePath:"/front-end-frameworks/conclusion/"}},{id:"conclusion",path:"/front-end-frameworks/conclusion/",type:"conclusion",section:"front-end-frameworks",blocks:["quadrants"],previous:{id:"other-libraries",type:"other-libraries",section:"front-end-frameworks",basePath:"/front-end-frameworks/other-libraries/"},next:{id:"data-layer",type:"section",basePath:"/data-layer/overview/"}}],previous:{id:"conclusion",type:"conclusion",section:"javascript-flavors",basePath:"/javascript-flavors/conclusion/"},next:{id:"react",type:"tool",section:"front-end-frameworks",tool:"react",basePath:"/front-end-frameworks/react/"}},{id:"data-layer",path:"/data-layer/overview/",type:"section",is_hidden:!1,children:[{id:"overview",path:"/data-layer/overview/",type:"overview",section:"data-layer",blocks:["overview","tools-salary-range","tools-company-size","tools-years-of-experience","happiness"],previous:{id:"conclusion",type:"conclusion",section:"front-end-frameworks",basePath:"/front-end-frameworks/conclusion/"},next:{id:"redux",type:"tool",section:"data-layer",tool:"redux",basePath:"/data-layer/redux/"}},{id:"redux",path:"/data-layer/redux/",type:"tool",section:"data-layer",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"redux",previous:{id:"overview",type:"overview",section:"data-layer",basePath:"/data-layer/overview/"},next:{id:"graphql",type:"tool",section:"data-layer",tool:"graphql",basePath:"/data-layer/graphql/"}},{id:"graphql",path:"/data-layer/graphql/",type:"tool",section:"data-layer",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"graphql",previous:{id:"redux",type:"tool",section:"data-layer",tool:"redux",basePath:"/data-layer/redux/"},next:{id:"apollo",type:"tool",section:"data-layer",tool:"apollo",basePath:"/data-layer/apollo/"}},{id:"apollo",path:"/data-layer/apollo/",type:"tool",section:"data-layer",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"apollo",previous:{id:"graphql",type:"tool",section:"data-layer",tool:"graphql",basePath:"/data-layer/graphql/"},next:{id:"mobx",type:"tool",section:"data-layer",tool:"mobx",basePath:"/data-layer/mobx/"}},{id:"mobx",path:"/data-layer/mobx/",type:"tool",section:"data-layer",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"mobx",previous:{id:"apollo",type:"tool",section:"data-layer",tool:"apollo",basePath:"/data-layer/apollo/"},next:{id:"relay",type:"tool",section:"data-layer",tool:"relay",basePath:"/data-layer/relay/"}},{id:"relay",path:"/data-layer/relay/",type:"tool",section:"data-layer",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"relay",previous:{id:"mobx",type:"tool",section:"data-layer",tool:"mobx",basePath:"/data-layer/mobx/"},next:{id:"other-libraries",type:"other-libraries",section:"data-layer",basePath:"/data-layer/other-libraries/"}},{id:"other-libraries",path:"/data-layer/other-libraries/",type:"other-libraries",section:"data-layer",blocks:["other-tools"],previous:{id:"relay",type:"tool",section:"data-layer",tool:"relay",basePath:"/data-layer/relay/"},next:{id:"conclusion",type:"conclusion",section:"data-layer",basePath:"/data-layer/conclusion/"}},{id:"conclusion",path:"/data-layer/conclusion/",type:"conclusion",section:"data-layer",blocks:["quadrants"],previous:{id:"other-libraries",type:"other-libraries",section:"data-layer",basePath:"/data-layer/other-libraries/"},next:{id:"back-end-frameworks",type:"section",basePath:"/back-end-frameworks/overview/"}}],previous:{id:"conclusion",type:"conclusion",section:"front-end-frameworks",basePath:"/front-end-frameworks/conclusion/"},next:{id:"redux",type:"tool",section:"data-layer",tool:"redux",basePath:"/data-layer/redux/"}},{id:"back-end-frameworks",path:"/back-end-frameworks/overview/",type:"section",is_hidden:!1,children:[{id:"overview",path:"/back-end-frameworks/overview/",type:"overview",section:"back-end-frameworks",blocks:["overview","tools-salary-range","tools-company-size","tools-years-of-experience","happiness"],previous:{id:"conclusion",type:"conclusion",section:"data-layer",basePath:"/data-layer/conclusion/"},next:{id:"express",type:"tool",section:"back-end-frameworks",tool:"express",basePath:"/back-end-frameworks/express/"}},{id:"express",path:"/back-end-frameworks/express/",type:"tool",section:"back-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"express",previous:{id:"overview",type:"overview",section:"back-end-frameworks",basePath:"/back-end-frameworks/overview/"},next:{id:"nextjs",type:"tool",section:"back-end-frameworks",tool:"nextjs",basePath:"/back-end-frameworks/nextjs/"}},{id:"nextjs",path:"/back-end-frameworks/nextjs/",type:"tool",section:"back-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"nextjs",previous:{id:"express",type:"tool",section:"back-end-frameworks",tool:"express",basePath:"/back-end-frameworks/express/"},next:{id:"koa",type:"tool",section:"back-end-frameworks",tool:"koa",basePath:"/back-end-frameworks/koa/"}},{id:"koa",path:"/back-end-frameworks/koa/",type:"tool",section:"back-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"koa",previous:{id:"nextjs",type:"tool",section:"back-end-frameworks",tool:"nextjs",basePath:"/back-end-frameworks/nextjs/"},next:{id:"meteor",type:"tool",section:"back-end-frameworks",tool:"meteor",basePath:"/back-end-frameworks/meteor/"}},{id:"meteor",path:"/back-end-frameworks/meteor/",type:"tool",section:"back-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"meteor",previous:{id:"koa",type:"tool",section:"back-end-frameworks",tool:"koa",basePath:"/back-end-frameworks/koa/"},next:{id:"sails",type:"tool",section:"back-end-frameworks",tool:"sails",basePath:"/back-end-frameworks/sails/"}},{id:"sails",path:"/back-end-frameworks/sails/",type:"tool",section:"back-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"sails",previous:{id:"meteor",type:"tool",section:"back-end-frameworks",tool:"meteor",basePath:"/back-end-frameworks/meteor/"},next:{id:"feathers",type:"tool",section:"back-end-frameworks",tool:"feathers",basePath:"/back-end-frameworks/feathers/"}},{id:"feathers",path:"/back-end-frameworks/feathers/",type:"tool",section:"back-end-frameworks",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"feathers",previous:{id:"sails",type:"tool",section:"back-end-frameworks",tool:"sails",basePath:"/back-end-frameworks/sails/"},next:{id:"other-libraries",type:"other-libraries",section:"back-end-frameworks",basePath:"/back-end-frameworks/other-libraries/"}},{id:"other-libraries",path:"/back-end-frameworks/other-libraries/",type:"other-libraries",section:"back-end-frameworks",blocks:["other-tools"],previous:{id:"feathers",type:"tool",section:"back-end-frameworks",tool:"feathers",basePath:"/back-end-frameworks/feathers/"},next:{id:"conclusion",type:"conclusion",section:"back-end-frameworks",basePath:"/back-end-frameworks/conclusion/"}},{id:"conclusion",path:"/back-end-frameworks/conclusion/",type:"conclusion",section:"back-end-frameworks",blocks:["quadrants"],previous:{id:"other-libraries",type:"other-libraries",section:"back-end-frameworks",basePath:"/back-end-frameworks/other-libraries/"},next:{id:"testing",type:"section",basePath:"/testing/overview/"}}],previous:{id:"conclusion",type:"conclusion",section:"data-layer",basePath:"/data-layer/conclusion/"},next:{id:"express",type:"tool",section:"back-end-frameworks",tool:"express",basePath:"/back-end-frameworks/express/"}},{id:"testing",path:"/testing/overview/",type:"section",is_hidden:!1,children:[{id:"overview",path:"/testing/overview/",type:"overview",section:"testing",blocks:["overview","tools-salary-range","tools-company-size","tools-years-of-experience","happiness"],previous:{id:"conclusion",type:"conclusion",section:"back-end-frameworks",basePath:"/back-end-frameworks/conclusion/"},next:{id:"jest",type:"tool",section:"testing",tool:"jest",basePath:"/testing/jest/"}},{id:"jest",path:"/testing/jest/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"jest",previous:{id:"overview",type:"overview",section:"testing",basePath:"/testing/overview/"},next:{id:"mocha",type:"tool",section:"testing",tool:"mocha",basePath:"/testing/mocha/"}},{id:"mocha",path:"/testing/mocha/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"mocha",previous:{id:"jest",type:"tool",section:"testing",tool:"jest",basePath:"/testing/jest/"},next:{id:"jasmine",type:"tool",section:"testing",tool:"jasmine",basePath:"/testing/jasmine/"}},{id:"jasmine",path:"/testing/jasmine/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"jasmine",previous:{id:"mocha",type:"tool",section:"testing",tool:"mocha",basePath:"/testing/mocha/"},next:{id:"enzyme",type:"tool",section:"testing",tool:"enzyme",basePath:"/testing/enzyme/"}},{id:"enzyme",path:"/testing/enzyme/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"enzyme",previous:{id:"jasmine",type:"tool",section:"testing",tool:"jasmine",basePath:"/testing/jasmine/"},next:{id:"karma",type:"tool",section:"testing",tool:"karma",basePath:"/testing/karma/"}},{id:"karma",path:"/testing/karma/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"karma",previous:{id:"enzyme",type:"tool",section:"testing",tool:"enzyme",basePath:"/testing/enzyme/"},next:{id:"storybook",type:"tool",section:"testing",tool:"storybook",basePath:"/testing/storybook/"}},{id:"storybook",path:"/testing/storybook/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"storybook",previous:{id:"karma",type:"tool",section:"testing",tool:"karma",basePath:"/testing/karma/"},next:{id:"ava",type:"tool",section:"testing",tool:"ava",basePath:"/testing/ava/"}},{id:"ava",path:"/testing/ava/",type:"tool",section:"testing",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"ava",previous:{id:"storybook",type:"tool",section:"testing",tool:"storybook",basePath:"/testing/storybook/"},next:{id:"other-libraries",type:"other-libraries",section:"testing",basePath:"/testing/other-libraries/"}},{id:"other-libraries",path:"/testing/other-libraries/",type:"other-libraries",section:"testing",blocks:["other-tools"],previous:{id:"ava",type:"tool",section:"testing",tool:"ava",basePath:"/testing/ava/"},next:{id:"conclusion",type:"conclusion",section:"testing",basePath:"/testing/conclusion/"}},{id:"conclusion",path:"/testing/conclusion/",type:"conclusion",section:"testing",blocks:["quadrants"],previous:{id:"other-libraries",type:"other-libraries",section:"testing",basePath:"/testing/other-libraries/"},next:{id:"mobile-and-desktop",type:"section",basePath:"/mobile-and-desktop/overview/"}}],previous:{id:"conclusion",type:"conclusion",section:"back-end-frameworks",basePath:"/back-end-frameworks/conclusion/"},next:{id:"jest",type:"tool",section:"testing",tool:"jest",basePath:"/testing/jest/"}},{id:"mobile-and-desktop",path:"/mobile-and-desktop/overview/",type:"section",is_hidden:!1,children:[{id:"overview",path:"/mobile-and-desktop/overview/",type:"overview",section:"mobile-and-desktop",blocks:["overview","tools-salary-range","tools-company-size","tools-years-of-experience","happiness"],previous:{id:"conclusion",type:"conclusion",section:"testing",basePath:"/testing/conclusion/"},next:{id:"electron",type:"tool",section:"mobile-and-desktop",tool:"electron",basePath:"/mobile-and-desktop/electron/"}},{id:"electron",path:"/mobile-and-desktop/electron/",type:"tool",section:"mobile-and-desktop",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"electron",previous:{id:"overview",type:"overview",section:"mobile-and-desktop",basePath:"/mobile-and-desktop/overview/"},next:{id:"react-native",type:"tool",section:"mobile-and-desktop",tool:"react-native",basePath:"/mobile-and-desktop/react-native/"}},{id:"react-native",path:"/mobile-and-desktop/react-native/",type:"tool",section:"mobile-and-desktop",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"react-native",previous:{id:"electron",type:"tool",section:"mobile-and-desktop",tool:"electron",basePath:"/mobile-and-desktop/electron/"},next:{id:"native-apps",type:"tool",section:"mobile-and-desktop",tool:"native-apps",basePath:"/mobile-and-desktop/native-apps/"}},{id:"native-apps",path:"/mobile-and-desktop/native-apps/",type:"tool",section:"mobile-and-desktop",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"native-apps",previous:{id:"react-native",type:"tool",section:"mobile-and-desktop",tool:"react-native",basePath:"/mobile-and-desktop/react-native/"},next:{id:"phonegap-cordova",type:"tool",section:"mobile-and-desktop",tool:"phonegap-cordova",basePath:"/mobile-and-desktop/phonegap-cordova/"}},{id:"phonegap-cordova",path:"/mobile-and-desktop/phonegap-cordova/",type:"tool",section:"mobile-and-desktop",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"phonegap-cordova",previous:{id:"native-apps",type:"tool",section:"mobile-and-desktop",tool:"native-apps",basePath:"/mobile-and-desktop/native-apps/"},next:{id:"ionic",type:"tool",section:"mobile-and-desktop",tool:"ionic",basePath:"/mobile-and-desktop/ionic/"}},{id:"ionic",path:"/mobile-and-desktop/ionic/",type:"tool",section:"mobile-and-desktop",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"ionic",previous:{id:"phonegap-cordova",type:"tool",section:"mobile-and-desktop",tool:"phonegap-cordova",basePath:"/mobile-and-desktop/phonegap-cordova/"},next:{id:"nativescript",type:"tool",section:"mobile-and-desktop",tool:"nativescript",basePath:"/mobile-and-desktop/nativescript/"}},{id:"nativescript",path:"/mobile-and-desktop/nativescript/",type:"tool",section:"mobile-and-desktop",blocks:["results-over-time","likes","dislikes","tool-pairing","tool-usage-by-country"],tool:"nativescript",previous:{id:"ionic",type:"tool",section:"mobile-and-desktop",tool:"ionic",basePath:"/mobile-and-desktop/ionic/"},next:{id:"other-libraries",type:"other-libraries",section:"mobile-and-desktop",basePath:"/mobile-and-desktop/other-libraries/"}},{id:"other-libraries",path:"/mobile-and-desktop/other-libraries/",type:"other-libraries",section:"mobile-and-desktop",blocks:["other-tools"],previous:{id:"nativescript",type:"tool",section:"mobile-and-desktop",tool:"nativescript",basePath:"/mobile-and-desktop/nativescript/"},next:{id:"conclusion",type:"conclusion",section:"mobile-and-desktop",basePath:"/mobile-and-desktop/conclusion/"}},{id:"conclusion",path:"/mobile-and-desktop/conclusion/",type:"conclusion",section:"mobile-and-desktop",blocks:["quadrants"],previous:{id:"other-libraries",type:"other-libraries",section:"mobile-and-desktop",basePath:"/mobile-and-desktop/other-libraries/"},next:{id:"other-tools",type:"custom",basePath:"/other-tools/"}}],previous:{id:"conclusion",type:"conclusion",section:"testing",basePath:"/testing/conclusion/"},next:{id:"electron",type:"tool",section:"mobile-and-desktop",tool:"electron",basePath:"/mobile-and-desktop/electron/"}},{id:"other-tools",path:"/other-tools/",type:"custom",is_hidden:!1,blocks:["other_languages","browser_apis","build_tools","utility_libraries","text_editors"],previous:{id:"conclusion",type:"conclusion",section:"mobile-and-desktop",basePath:"/mobile-and-desktop/conclusion/"},next:{id:"opinions",type:"custom",basePath:"/opinions/"}},{id:"opinions",path:"/opinions/",type:"custom",is_hidden:!1,blocks:["opinion-js_moving_in_right_direction","opinion-building_js_apps_overly_complex","opinion-js_over_used_online","opinion-enjoy_building_js_apps","opinion-would_like_js_to_be_main_lang","opinion-js_ecosystem_changing_to_fast","opinion-survey_too_long"],previous:{id:"other-tools",type:"custom",basePath:"/other-tools/"},next:{id:"awards",type:"custom",basePath:"/awards/"}},{id:"awards",path:"/awards/",type:"custom",is_hidden:!1,blocks:["highest_satisfaction","highest_interest","highest_usage","most_mentioned","prediction","special"],previous:{id:"opinions",type:"custom",basePath:"/opinions/"},next:{id:"conclusion",type:"custom",basePath:"/conclusion/"}},{id:"conclusion",path:"/conclusion/",type:"custom",is_hidden:!1,blocks:["quadrants"],previous:{id:"awards",type:"custom",basePath:"/awards/"}},{id:"support",path:"/support/",type:"custom",is_hidden:!0,previous:{id:"conclusion",type:"custom",basePath:"/conclusion/"}}]},189:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(153),s=o(154),i=o(156);t.a=function(e){var t=e.showIntro,o=void 0!==t&&t,a=e.introduction;return n.a.createElement(r.a,null,function(e){return n.a.createElement(s.a,null,function(t){var r=Object(i.a)(e,t);return n.a.createElement("div",{className:"PageHeader"},n.a.createElement("div",{className:"PageHeader__Header"},n.a.createElement("h2",{className:"PageHeader__Title"},r)),o&&n.a.createElement("div",{dangerouslySetInnerHTML:{__html:a}}))})})}},193:function(e,t,o){var a=o(11),n=o(194).set;e.exports=function(e,t,o){var r,s=t.constructor;return s!==o&&"function"==typeof s&&(r=s.prototype)!==o.prototype&&a(r)&&n&&n(e,r),e}},194:function(e,t,o){var a=o(11),n=o(10),r=function(e,t){if(n(e),!a(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,a){try{(a=o(19)(Function.call,o(195).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,o){return r(e,o),t?e.__proto__=o:a(e,o),e}}({},!1):void 0),check:r}},195:function(e,t,o){var a=o(85),n=o(51),r=o(35),s=o(83),i=o(28),l=o(82),c=Object.getOwnPropertyDescriptor;t.f=o(17)?c:function(e,t){if(e=r(e),t=s(t,!0),l)try{return c(e,t)}catch(e){}if(i(e,t))return n(!a.f.call(e,t),e[t])}},196:function(e,t,o){var a=o(84),n=o(52).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return a(e,n)}},197:function(e,t,o){"use strict";var a=o(10);e.exports=function(){var e=a(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},198:function(e){e.exports={count:123,updated_at:"2018-11-19T13:13:22.307Z",projects:[{name:"TypeScript",description:"TypeScript is a superset of JavaScript that compiles to clean JavaScript output.",homepage:"http://www.typescriptlang.org",slug:"typescript",github:"Microsoft/TypeScript",stars:41368},{name:"Flow",description:"Adds static typing to JavaScript to improve developer productivity and code quality.",homepage:"https://flow.org/",slug:"flow",github:"facebook/flow",stars:18307},{name:"Elm",description:"Compiler for Elm, a functional language for reliable webapps.",homepage:"http://elm-lang.org/",slug:"elm",github:"elm/compiler",stars:4864},{name:"ClojureScript",description:"Clojure to JS compiler",homepage:"http://clojurescript.org/",slug:"clojurescript",github:"clojure/clojurescript",stars:7887},{name:"Reason",description:"Simple, fast & type safe code that leverages the JavaScript & OCaml ecosystems",homepage:"http://reasonml.github.io",slug:"reason",github:"facebook/reason",stars:6694},{name:"PureScript",description:"A strongly-typed language that compiles to Javascript",homepage:"http://purescript.org",slug:"purescript",github:"purescript/purescript",stars:5298},{name:"CoffeeScript",description:"Unfancy JavaScript",homepage:"http://coffeescript.org/",slug:"coffeescript",github:"jashkenas/coffeescript",stars:14970},{name:"React",description:"A declarative, efficient, and flexible JavaScript library for building user interfaces.",homepage:"https://reactjs.org",slug:"react",github:"facebook/react",stars:115733},{name:"Angular 1",description:"AngularJS - HTML enhanced for web apps!",homepage:"https://angularjs.org",slug:"angular-1",github:"angular/angular.js",stars:59267},{name:"Ember",description:"Ember.js - A JavaScript framework for creating ambitious web applications",homepage:"http://www.emberjs.com",slug:"ember",github:"emberjs/ember.js",stars:20187},{name:"Vue.js",description:"🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web.",homepage:"http://vuejs.org",slug:"vuejs",github:"vuejs/vue",stars:119344},{name:"Backbone",description:"Give your JS App some Backbone with Models, Views, Collections, and Events",homepage:"http://backbonejs.org",slug:"backbone",github:"jashkenas/backbone",stars:27333},{name:"Polymer",description:"Our original Web Component library.",homepage:"https://www.polymer-project.org/",slug:"polymer",github:"Polymer/polymer",stars:20421},{name:"Aurelia",description:"The aurelia framework brings together all the required core aurelia libraries into a ready-to-go application-building platform.",homepage:"http://aurelia.io/",slug:"aurelia",github:"aurelia/framework",stars:10679},{name:"Preact",description:"⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM.",homepage:"https://preactjs.com",slug:"preact",github:"developit/preact",stars:20698},{name:"Knockout",description:"Knockout makes it easier to create rich, responsive UIs with JavaScript",homepage:"http://knockoutjs.com/",slug:"knockout",github:"knockout/knockout",stars:9206},{name:"jQuery",description:"jQuery JavaScript Library",homepage:"https://jquery.com/",slug:"jquery",github:"jquery/jquery",stars:50362},{name:"Cycle.js",description:"A functional and reactive JavaScript framework for predictable code",homepage:"http://cycle.js.org",slug:"cyclejs",github:"cyclejs/cyclejs",stars:8841},{name:"Mithril",description:"A Javascript Framework for Building Brilliant Applications",homepage:"http://mithril.js.org",slug:"mithril",github:"MithrilJS/mithril.js",stars:10089},{name:"Inferno",description:":fire: An extremely fast, React-like JavaScript library for building modern user interfaces",homepage:"http://infernojs.org",slug:"inferno",github:"infernojs/inferno",stars:13217},{name:"Svelte",description:"The magical disappearing UI framework",homepage:"https://svelte.technology",slug:"svelte",github:"sveltejs/svelte",stars:8390},{name:"Hyperapp",description:"1 kB JavaScript micro-framework for building declarative web applications",slug:"hyperapp",github:"jorgebucaran/hyperapp",stars:15723},{name:"Choo",description:":steam_locomotive::train: - sturdy 4kb frontend framework",homepage:"https://choo.io/",slug:"choo",github:"choojs/choo",stars:5775},{name:"Marionette",description:"The Backbone Framework",homepage:"http://marionettejs.com",slug:"marionette",github:"marionettejs/backbone.marionette",stars:7164},{name:"Marko",description:"A friendly (and fast!) UI library from eBay that makes building web apps fun",homepage:"https://markojs.com/",slug:"marko",github:"marko-js/marko",stars:7628},{name:"Riot",description:"Simple and elegant component-based UI library",homepage:"https://riot.js.org",slug:"riotjs",github:"riot/riot",stars:13330},{name:"Dojo",description:":rocket: Dojo 2 - language helpers and utilities.",homepage:"http://dojo.io",slug:"dojo",github:"dojo/core",stars:224},{name:"CanJS",description:"JS framework providing state management, templates & custom elements. Helps you build the impossible while keeping the common stuff easy.",homepage:"https://canjs.com/",slug:"canjs",github:"canjs/canjs",stars:1699},{name:"Glimmer.js",description:"A fast and lightweight UI component library from the Ember.js team",homepage:"https://glimmerjs.com",slug:"glimmerjs",github:"glimmerjs/glimmer.js",stars:412},{name:"Web Components",description:"A suite of polyfills supporting the HTML Web Components specs",homepage:"http://webcomponents.org/polyfills/",slug:"web-components",github:"webcomponents/webcomponentsjs",stars:3203},{name:"Reagent",description:"A minimalistic ClojureScript interface to React.js",homepage:"http://reagent-project.github.io/",slug:"reagent",github:"reagent-project/reagent",stars:3213},{name:"Meteor",description:"Meteor, the JavaScript App Platform",homepage:"https://www.meteor.com",slug:"meteor",github:"meteor/meteor",stars:40491},{name:"Express",description:"Fast, unopinionated, minimalist web framework for node.",homepage:"https://expressjs.com",slug:"express",github:"expressjs/express",stars:41082},{name:"Koa",description:"Expressive middleware for node.js using ES2017 async functions",homepage:"https://koajs.com",slug:"koa",github:"koajs/koa",stars:23913},{name:"Hapi",description:"Server Framework for Node.js",homepage:"hapijs.com",slug:"hapi",github:"hapijs/hapi",stars:10379},{name:"FeathersJS",description:"A REST and realtime API layer for modern applications.",homepage:"https://feathersjs.com",slug:"feathers",github:"feathersjs/feathers",stars:10020},{name:"Sails",description:"Realtime MVC Framework for Node.js",homepage:"https://sailsjs.com",slug:"sails",github:"balderdashy/sails",stars:19881},{name:"Loopback",description:"LoopBack makes it easy to build modern applications that require complex integrations.",homepage:"http://loopback.io",slug:"loopback",github:"strongloop/loopback",stars:11977},{name:"Keystone",description:"Node.js CMS and web app framework",homepage:"http://www.keystonejs.com",slug:"keystone",github:"keystonejs/keystone",stars:13621},{name:"Node.js",description:"Node.js JavaScript runtime :sparkles::turtle::rocket::sparkles:",homepage:"https://nodejs.org",slug:"nodejs",github:"nodejs/node",stars:55493},{name:"Restify",description:"The future of Node.js REST development",homepage:"http://restify.com",slug:"restify",github:"restify/node-restify",stars:8790},{name:"Adonis",description:"NodeJs Web Application Framework. Makes it easy for you to write webapps with less code :smiley:",homepage:"https://adonisjs.com",slug:"adonis",github:"adonisjs/adonis-framework",stars:5053},{name:"Next.js",description:"The React Framework",homepage:"https://nextjs.org",slug:"nextjs",github:"zeit/next.js",stars:31550},{name:"Serverless",description:"Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! – ",homepage:"https://serverless.com",slug:"serverless",github:"serverless/serverless",stars:26547},{name:"Socket.io",description:"Realtime application framework (Node.JS server)",homepage:"http://socket.io",slug:"socketio",github:"socketio/socket.io",stars:44287},{name:"Micro",description:"Asynchronous HTTP microservices",homepage:"https://zeit.co/blog/micro-8",slug:"micro",github:"zeit/micro",stars:7632},{name:"Kraken",description:"An express-based Node.js web application bootstrapping module.",homepage:"http://krakenjs.com",slug:"kraken",github:"krakenjs/kraken-js",stars:4689},{name:"Redux",description:"Predictable state container for JavaScript apps",homepage:"http://redux.js.org",slug:"redux",github:"reduxjs/redux",stars:45177},{name:"MobX",description:"Simple, scalable state management.",homepage:"http://mobx.js.org",slug:"mobx",github:"mobxjs/mobx",stars:17506},{name:"GraphQL",description:"GraphQL is a query language and execution engine tied to any backend service.",homepage:"https://graphql.org/",slug:"graphql",github:"facebook/graphql",stars:10138},{name:"Relay/Relay Modern",description:"Relay is a JavaScript framework for building data-driven React applications.",homepage:"https://facebook.github.io/relay/",slug:"relay",github:"facebook/relay",stars:11679},{name:"Falcor",description:"A JavaScript library for efficient data fetching",homepage:"http://netflix.github.io/falcor",slug:"falcor",github:"Netflix/falcor",stars:9048},{name:"Apollo",description:":rocket: A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server",homepage:"https://www.apollographql.com/client/",slug:"apollo-client",github:"apollographql/apollo-client",stars:9145},{name:"VueX",description:"🗃️ Centralized State Management for Vue.js.",homepage:"https://vuex.vuejs.org",slug:"vuex",github:"vuejs/vuex",stars:17748},{name:"Flux",description:"Application Architecture for Building User Interfaces",homepage:"http://facebook.github.io/flux/",slug:"flux",github:"facebook/flux",stars:15734},{name:"PouchDB",description:":koala: - PouchDB is a pocket-sized database.",homepage:"https://pouchdb.com/",slug:"pouchdb",github:"pouchdb/pouchdb",stars:11285},{name:"RxJS",description:"The Reactive Extensions for JavaScript",homepage:"http://reactivex.io",slug:"rxjs",github:"Reactive-Extensions/RxJS",stars:19446},{name:"Realm",description:" Realm is a mobile database: an alternative to SQLite & key-value stores",homepage:"https://realm.io",slug:"realm",github:"realm/realm-js",stars:3213},{name:"Gun.js",description:"A realtime, decentralized, offline-first, graph database engine.",homepage:"https://gun.eco/docs",slug:"gun",github:"amark/gun",stars:9094},{name:"Cerebral",description:"Declarative state and side effects management for popular JavaScript frameworks",homepage:"http://cerebraljs.com",slug:"cerebral",github:"cerebral/cerebral",stars:1667},{name:"ember-data",description:"A data persistence library for Ember.js.",slug:"ember-data",github:"emberjs/data",stars:2896},{name:"NgRx",description:"Reactive libraries for Angular",homepage:"https://ngrx.io",slug:"ngrx",github:"ngrx/platform",stars:3963},{name:"MongoDB",description:"Mongo DB Native NodeJS Driver",homepage:"http://mongodb.github.com/node-mongodb-native/",slug:"mongodb",github:"mongodb/node-mongodb-native",stars:7443},{name:"Mocha",description:"☕️ simple, flexible, fun javascript test framework for node.js & the browser",homepage:"https://mochajs.org",slug:"mocha",github:"mochajs/mocha",stars:16629},{name:"Jasmine",description:"Simple JavaScript testing framework for browsers and node.js",homepage:"http://jasmine.github.io/",slug:"jasmine",github:"jasmine/jasmine",stars:13986},{name:"Enzyme",description:"JavaScript Testing utilities for React",homepage:"https://airbnb.io/enzyme/",slug:"enzyme",github:"airbnb/enzyme",stars:15785},{name:"Jest",description:"Delightful JavaScript Testing.",homepage:"https://jestjs.io",slug:"jest",github:"facebook/jest",stars:21657},{name:"Tape",description:"tap-producing test harness for node and browsers",slug:"tape",github:"substack/tape",stars:4810},{name:"Ava",description:"🚀 Futuristic JavaScript test runner",slug:"ava",github:"avajs/ava",stars:15093},{name:"Karma",description:"Spectacular Test Runner for JavaScript",homepage:"http://karma-runner.github.io",slug:"karma",github:"karma-runner/karma",stars:10307},{name:"Chai",description:"BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.",homepage:"http://chaijs.com",slug:"chai",github:"chaijs/chai",stars:5850},{name:"Nightwatch",description:"Automated testing and continuous integration framework based on Node.js and using the Webdriver protocol",homepage:"http://nightwatchjs.org",slug:"nightwatch",github:"nightwatchjs/nightwatch",stars:8719},{name:"Tap",description:"Test Anything Protocol tools for node",homepage:"https://www.node-tap.org/",slug:"node-tap",github:"tapjs/node-tap",stars:1276},{name:"Cypress",description:"Fast, easy and reliable testing for anything that runs in a browser.",homepage:"https://www.cypress.io",slug:"cypress",github:"cypress-io/cypress",stars:8701},{name:"Intern",description:"A next-generation code testing stack for JavaScript.",homepage:"https://theintern.io/",slug:"intern",github:"theintern/intern",stars:4065},{name:"PhantomJS",description:"Scriptable Headless Browser",homepage:"http://phantomjs.org",slug:"phantomjs",github:"ariya/phantomjs",stars:26209},{name:"Nightmare",description:"A high-level browser automation library.",homepage:"https://open.segment.com",slug:"nightmare",github:"segmentio/nightmare",stars:16464},{name:"Sinon",description:"Test spies, stubs and mocks for JavaScript.",homepage:"https://sinonjs.org/",slug:"sinonjs",github:"sinonjs/sinon",stars:6602},{name:"TestCafe",description:"A Node.js tool to automate end-to-end web testing.",homepage:"https://devexpress.github.io/testcafe/",slug:"testcafe",github:"DevExpress/testcafe",stars:5710},{name:"QUnit",description:"An easy-to-use JavaScript Unit Testing framework.",homepage:"https://qunitjs.com",slug:"qunit",github:"qunitjs/qunit",stars:3794},{name:"Protractor",description:"E2E test framework for Angular apps",homepage:"http://www.protractortest.org",slug:"protractor",github:"angular/protractor",stars:7895},{name:"Cucumber.js",description:"Cucumber for JavaScript",homepage:"https://cucumber.io/",slug:"cucumberjs",github:"cucumber/cucumber-js",stars:3323},{name:"Storybook",description:"Interactive UI component dev & test: React, React Native, Vue, Angular, Ember",homepage:"https://storybook.js.org",slug:"storybook",github:"storybooks/storybook",stars:31060},{name:"SASS/SCSS",description:":rainbow: Node.js bindings to libsass",slug:"sass",github:"sass/node-sass",stars:5696},{name:"Stylus",description:"Expressive, robust, feature-rich CSS language built for nodejs",homepage:"http://stylus-lang.com/",slug:"stylus",github:"stylus/stylus",stars:9562},{name:"LESS",description:"Less. The dynamic stylesheet language.",homepage:"http://lesscss.org",slug:"less",github:"less/less.js",stars:15832},{name:"Bootstrap",description:"The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.",homepage:"http://getbootstrap.com",slug:"bootstrap",github:"twbs/bootstrap",stars:128767},{name:"Foundation",description:"The most advanced responsive front-end framework in the world. Quickly create prototypes and production code for sites that work on any kind of device.",homepage:"http://foundation.zurb.com",slug:"foundation",github:"zurb/foundation-sites",stars:27801},{name:"PostCSS",description:"Transforming styles with JS plugins",homepage:"https://postcss.org/",slug:"postcss",github:"postcss/postcss",stars:19668},{name:"Bulma",description:"Modern CSS framework based on Flexbox",homepage:"https://bulma.io",slug:"bulma",github:"jgthms/bulma",stars:31198},{name:"Semantic UI",description:"Semantic is a UI component framework based around useful principles from natural language.",homepage:"http://www.semantic-ui.com",slug:"semanticui",github:"Semantic-Org/Semantic-UI",stars:43491},{name:"Materialize",description:"Materialize, a CSS Framework based on Material Design",homepage:"https://materializecss.com",slug:"materialize-css",github:"Dogfalo/materialize",stars:34413},{name:"CSS modules",description:"Documentation about css-modules",slug:"css-modules",github:"css-modules/css-modules",stars:10917},{name:"Material Design",description:"Material Design Components in HTML/CSS/JS",homepage:"https://getmdl.io",slug:"material-design-lite",github:"google/material-design-lite",stars:30780},{name:"PureCSS",description:"A set of small, responsive CSS modules that you can use in every web project.",homepage:"http://purecss.io/",slug:"purecss",github:"pure-css/pure",stars:19296},{name:"Material UI",description:"React components that implement Google's Material Design.",homepage:"https://material-ui.com/",slug:"material-ui",github:"mui-org/material-ui",stars:42034},{name:"UIKit",description:"A lightweight and modular front-end framework for developing fast and powerful web interfaces",homepage:"http://getuikit.com",slug:"uikit",github:"uikit/uikit",stars:13443},{name:"Tachyons",description:"Functional css for humans",homepage:"https://tachyons.io",slug:"tachyons",github:"tachyons-css/tachyons",stars:8053},{name:"Skeleton",description:"Skeleton: A Dead Simple, Responsive Boilerplate for Mobile-Friendly Development",homepage:"http://www.getskeleton.com",slug:"skeleton",github:"dhg/Skeleton",stars:16207},{name:"styled-components",description:"Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress 💅",homepage:"https://styled-components.com",slug:"styled-components",github:"styled-components/styled-components",stars:20365},{name:"CSSnext",description:"`postcss-cssnext` has been deprecated in favor of `postcss-preset-env`.",homepage:"https://moox.io/blog/deprecating-cssnext/",slug:"cssnext",github:"MoOx/postcss-cssnext",stars:5393},{name:"Webpack",description:'A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows to load parts for the application on demand. Through "loaders," modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.',homepage:"https://webpack.js.org",slug:"webpack",github:"webpack/webpack",stars:45239},{name:"Grunt",description:"Grunt: The JavaScript Task Runner",homepage:"http://gruntjs.com/",slug:"grunt",github:"gruntjs/grunt",stars:11881},{name:"Gulp",description:"The streaming build system",homepage:"http://gulpjs.com",slug:"gulp",github:"gulpjs/gulp",stars:30570},{name:"Browserify",description:"browser-side require() the node.js way",homepage:"http://browserify.org/",slug:"browserify",github:"browserify/browserify",stars:12312},{name:"Rollup",description:"Next-generation ES module bundler",homepage:"https://rollupjs.org",slug:"rollup",github:"rollup/rollup",stars:14118},{name:"Brunch",description:":fork_and_knife: Fast front-end web app build tool with simple declarative config, seamless incremental compilation for rapid development, an opinionated pipeline and workflow, and core support for source maps.",homepage:"http://brunch.io",slug:"brunch",github:"brunch/brunch",stars:6535},{name:"Broccoli",description:"Browser compilation library – an asset pipeline for applications that run in the browser",slug:"broccoli",github:"broccolijs/broccoli",stars:3151},{name:"Jspm",description:"Package management CLI",homepage:"https://jspm.org",slug:"jspm",github:"jspm/jspm-cli",stars:3667},{name:"Fusebox",description:"A blazing fast js bundler/loader with a comprehensive API :fire:",homepage:"http://fuse-box.org",slug:"fusebox",github:"fuse-box/fuse-box",stars:3559},{name:"SystemJS",description:"Dynamic ES module loader",slug:"systemjs",github:"systemjs/systemjs",stars:9338},{name:"StealJS",description:"Gets JavaScript",homepage:"https://stealjs.com",slug:"steal",github:"stealjs/steal",stars:1301},{name:"Babel",description:":tropical_fish: Babel is a compiler for writing next generation JavaScript.",homepage:"https://babeljs.io/",slug:"babel",github:"babel/babel",stars:30541},{name:"React Native",description:"A framework for building native apps with React.",homepage:"https://facebook.github.io/react-native/",slug:"react-native",github:"facebook/react-native",stars:71036},{name:"Ionic",description:"Build amazing native and progressive web apps with open web technologies. One app running on everything 🎉",homepage:"https://ionicframework.com/",slug:"ionic",github:"ionic-team/ionic",stars:35857},{name:"NativeScript",description:"NativeScript is an open source framework for building truly native mobile apps with JavaScript. Use web skills, like Angular and Vue.js, FlexBox and CSS, and get native UI and performance on iOS and Android.",homepage:"https://www.nativescript.org",slug:"nativescript",github:"NativeScript/NativeScript",stars:15450},{name:"Electron",description:":electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS",homepage:"https://electronjs.org",slug:"electron",github:"electron/electron",stars:66683},{name:"Weex",description:"Apache Weex (Incubating)",homepage:"https://weex.apache.org",slug:"weex",github:"apache/incubator-weex",stars:11091},{name:"NW.js",description:"Call all Node.js modules directly from DOM/WebWorker and enable a new way of writing applications with all Web technologies.",homepage:"https://nwjs.io",slug:"nwjs",github:"nwjs/nw.js",stars:34568},{name:"Quasar",description:"Quasar Framework",homepage:"https://quasar-framework.org",slug:"quasar",github:"quasarframework/quasar",stars:7798},{name:"Expo",description:"The Expo platform for making cross-platform mobile apps",homepage:"https://docs.expo.io/",slug:"expo",github:"expo/expo",stars:4523},{name:"Yarn",description:"📦🐈 Fast, reliable, and secure dependency management.",homepage:"https://yarnpkg.com",slug:"yarn",github:"yarnpkg/yarn",stars:33764},{name:"NPM",description:"A package manager for JavaScript",homepage:"https://npm.community",slug:"npm",github:"npm/cli",stars:824}]}},202:function(e,t,o){"use strict";o(75),o(49);var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=o(4),l=o.n(i),c=o(244),p=o.n(c),u=o(203),d=o(180),y=o(154),k=o(153),m=o(161),g=function(e){function t(){for(var t,o=arguments.length,a=new Array(o),n=0;n<o;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).state={showOptions:!1},t.toggleClass=function(){t.setState({showOptions:!t.state.showOptions})},t}return n()(t,e),t.prototype.render=function(){var e=this,t=this.props,o=t.id,a=t.showDescription,n=t.isShareable,r=t.values,i=this.state.showOptions;return s.a.createElement(k.a,null,function(t){return s.a.createElement(y.a,null,function(l){var c=Object(m.c)(o,t,l,{values:r}),y="";return!0===a&&(y=Object(m.a)(o,t,l,{values:r})),s.a.createElement("div",{className:"Block__Heading Block__Heading--"+o},s.a.createElement("div",{className:"Block__Title Block__Title--"+(i?"open":"closed")},s.a.createElement("h3",{className:"Block__Title__Text Block__Title__Text--short"},c),s.a.createElement("h3",{className:"Block__Title__Text Block__Title__Text--full"},c||s.a.createElement(d.a,{id:"fullcharts."+o,values:r})),n&&s.a.createElement(u.a,{id:o,className:"Block__Title__Share",values:r,toggleClass:e.toggleClass})),a&&s.a.createElement("div",{className:"Block__Description"},s.a.createElement(p.a,{source:y})))})})},t}(r.Component);g.propTypes={id:l.a.string.isRequired,showDescription:l.a.bool.isRequired,isShareable:l.a.bool.isRequired},g.defaultProps={showDescription:!0,isShareable:!0},t.a=g},203:function(e,t,o){"use strict";o.d(t,"a",function(){return _});o(158);var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=o(4),l=o.n(i),c=o(170),p=o.n(c),u=o(79),d=o.n(u),y=o(154),k=o(161),m=o(153),g=o(165),h=o(168),b=o(167),f=o(166),_=function(e){function t(){var t;return(t=e.call(this)||this).toggleOptions=function(e){e.preventDefault(),t.props.toggleClass&&t.props.toggleClass(),t.setState({showOptions:!t.state.showOptions}),d.a.event({category:"Clicks",action:t.props.section+" chart toggle"})},t.state={showOptions:!1},t}return n()(t,e),t.prototype.render=function(){var e=this;return s.a.createElement(m.a,null,function(t){return s.a.createElement(y.a,null,function(o){var a=e.props,n=a.id,r=a.className,i=Object(k.b)(n,t,o);return s.a.createElement("div",{className:p()(r,"share-wrapper",{"share-popup-visible":e.state.showOptions})},s.a.createElement("div",{className:"share"},s.a.createElement("div",{className:"share-button button",onClick:e.toggleOptions},o("share"))),s.a.createElement("div",{className:"share-popup"},s.a.createElement("div",{className:"share-options"},s.a.createElement(g.a,{text:i.twitterText,trackingId:i.trackingId}),s.a.createElement(b.a,{link:i.link,trackingId:i.trackingId}),s.a.createElement(h.a,{link:i.link,title:i.title,trackingId:i.trackingId}),s.a.createElement(f.a,{subject:i.emailSubject,body:i.emailBody,trackingId:i.trackingId}))))})})},t}(r.Component);_.propTypes={id:l.a.string.isRequired}},204:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(153),l=o(154),c=o(161),p=o(164),u=function(e){var t=e.id;return n.a.createElement(i.a,null,function(e){return e.isDebugEnabled?n.a.createElement(l.a,null,function(o){var a=Object(c.b)(t,e,o);return n.a.createElement(p.a,{title:"Block sharing",data:a})}):null})};u.propTypes={id:s.a.string.isRequired},t.a=u},206:function(e,t,o){var a=o(5),n=o(193),r=o(27).f,s=o(196).f,i=o(81),l=o(197),c=a.RegExp,p=c,u=c.prototype,d=/a/g,y=/a/g,k=new c(d)!==d;if(o(17)&&(!k||o(16)(function(){return y[o(3)("match")]=!1,c(d)!=d||c(y)==y||"/a/i"!=c(d,"i")}))){c=function(e,t){var o=this instanceof c,a=i(e),r=void 0===t;return!o&&a&&e.constructor===c&&r?e:n(k?new p(a&&!r?e.source:e,t):p((a=e instanceof c)?e.source:e,a&&r?l.call(e):t),o?this:u,c)};for(var m=function(e){e in c||r(c,e,{configurable:!0,get:function(){return p[e]},set:function(t){p[e]=t}})},g=s(p),h=0;g.length>h;)m(g[h++]);u.constructor=c,c.prototype=u,o(18)(a,"RegExp",c)}o(86)("RegExp")},210:function(e){e.exports={data:{translations:{edges:[{node:{locale:"en-US",translations:[{key:"start",t:"Start"},{key:"share",t:"Share"},{key:"average",t:"Average"},{key:"conclusion",t:"Conclusion"},{key:"tools_salary_range_average",t:"Average salary"},{key:"tools_company_size_average",t:"Average company size"},{key:"tools_years_of_experience_average",t:"Average years of experience"},{key:"users_percentage",t:"percentage of users"},{key:"salary_range_axis_legend",t:"salary range"},{key:"years_of_experience_axis_legend",t:"years of experience"},{key:"company_size_axis_legend",t:"number of employees"},{key:"percents_display_mode",t:"Percents"},{key:"counts_display_mode",t:"Counts"},{key:"awards_runner_ups",t:"Runner-Ups"},{key:"tool_homepage",t:"Homepage"},{key:"from_to_short",t:"${from} to ${to}"},{key:"users_count",t:"${count} users"},{key:"percentage_of_respondents",t:"${percentage} of respondents"},{key:"partners.premium_partners",t:"Our 2018 Premium Partners"},{key:"partners.become_partner",t:"Become a partner"},{key:"partners.thanks",t:'Thanks to our partners for supporting this project.\n<a href="/support">Learn more</a> about supporting The State of JS.\n'},{key:"stay_tuned",t:"Stay Tuned"},{key:"leave_your_email",t:"If you'd like to know when we release additional results or announce next year's edition, just leave us your email below:"},{key:"your_email",t:"Your Email"},{key:"notify_me",t:"Notify Me"},{key:"opinions.legends.never_heard",t:"I've never heard of it"},{key:"opinions.legends_short.never_heard",t:"Never heard of it"},{key:"opinions.legends.not_interested",t:"I've HEARD of it, and am NOT interested"},{key:"opinions.legends_short.not_interested",t:"Heard of it, not interested"},{key:"opinions.legends.interested",t:"I've HEARD of it, and WOULD like to learn it"},{key:"opinions.legends_short.interested",t:"Heard of it, would like to learn"},{key:"opinions.legends.would_use",t:"I've USED it before, and WOULD use it again"},{key:"opinions.legends_short.would_use",t:"Used it, would use again"},{key:"opinions.legends.would_not_use",t:"I've USED it before, and would NOT use it again"},{key:"opinions.legends_short.would_not_use",t:"Used it, would not use again"},{key:"opinion_scale.0",t:"Strongly Disagree"},{key:"opinion_scale.1",t:"Disagree"},{key:"opinion_scale.2",t:"Neutral"},{key:"opinion_scale.3",t:"Agree"},{key:"opinion_scale.4",t:"Strongly Agree"},{key:"salary_range.work-for-free.long",t:"I work for free"},{key:"salary_range.work-for-free.short",t:"work for free"},{key:"salary_range.0-10.long",t:"$0k-$10k"},{key:"salary_range.0-10.short",t:"$0k-$10k"},{key:"salary_range.10-30.long",t:"$10k-$30k"},{key:"salary_range.10-30.short",t:"$10k-$30k"},{key:"salary_range.30-50.long",t:"$30k-$50k"},{key:"salary_range.30-50.short",t:"$30k-$50k"},{key:"salary_range.50-100.long",t:"$50k-$100k"},{key:"salary_range.50-100.short",t:"$50k-$100k"},{key:"salary_range.100-200.long",t:"$100k-$200k"},{key:"salary_range.100-200.short",t:"$100k-$200k"},{key:"salary_range.more-than-200.long",t:"more than $200k"},{key:"salary_range.more-than-200.short",t:"$200k+"},{key:"company_size.1.long",t:"One employee"},{key:"company_size.1.short",t:"one"},{key:"company_size.1-5.long",t:"1 to 5 employees"},{key:"company_size.1-5.short",t:"1~5"},{key:"company_size.5-10.long",t:"5 to 10 employees"},{key:"company_size.5-10.short",t:"5~10"},{key:"company_size.10-20.long",t:"10 to 20 employees"},{key:"company_size.10-20.short",t:"10~20"},{key:"company_size.20-50.long",t:"20 to 50 employees"},{key:"company_size.20-50.short",t:"20~50"},{key:"company_size.50-100.long",t:"50 to 100 employees"},{key:"company_size.50-100.short",t:"50~100"},{key:"company_size.100-1000.long",t:"100 to 1000 employees"},{key:"company_size.100-1000.short",t:"100~1000"},{key:"company_size.more-than-1000.long",t:"More than 1000 employees"},{key:"company_size.more-than-1000.short",t:"1000+"},{key:"years_of_experience.less-than-1.long",t:"Less than one year"},{key:"years_of_experience.less-than-1.short",t:"<1 year"},{key:"years_of_experience.1-2.long",t:"1 to 2 years"},{key:"years_of_experience.1-2.short",t:"1~2 years"},{key:"years_of_experience.2-5.long",t:"2 to 5 years"},{key:"years_of_experience.2-5.short",t:"2~5 years"},{key:"years_of_experience.5-10.long",t:"5 to 10 years"},{key:"years_of_experience.5-10.short",t:"5~10 years"},{key:"years_of_experience.10-20.long",t:"10 to 20 years"},{key:"years_of_experience.10-20.short",t:"10~20 years"},{key:"years_of_experience.more-than-20.long",t:"More than 20 years"},{key:"years_of_experience.more-than-20.short",t:">20 years"},{key:"section.javascript-flavors",t:"JavaScript Flavors"},{key:"section.front-end-frameworks",t:"Front-end Frameworks"},{key:"section.data-layer",t:"Data Layer"},{key:"section.back-end-frameworks",t:"Back-end Frameworks"},{key:"section.testing",t:"Testing"},{key:"section.mobile-and-desktop",t:"Mobile & Desktop"},{key:"tool.es6",t:"ES6"},{key:"tool.es6.description",t:"ES6 and its descendants are the newer versions of JavaScript, usually run through Babel.\n"},{key:"tool.angular",t:"Angular"},{key:"tool.angular.description",t:'Angular is a TypeScript-based open-source front-end web application platform. Note that from\nthis year on we are not be making a distinction between Angular and Angular.js anymore, while datapoints for \n2016 and 2017 correspond to Angular (a.k.a. "Angular 2").\n'},{key:"tool.apollo",t:"Apollo"},{key:"tool.apollo.description",t:"A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server.\n"},{key:"tool.native-apps",t:"Native Apps"},{key:"tool.native-apps.description",t:"The majority of mobile and desktop apps are still built with native languages like Java, Kotlin, Objective-C, or Swift.\n"},{key:"tool.phonegap-cordova",t:"Cordova"},{key:"tool.phonegap-cordova.description",t:"Apache Cordova is a mobile application development framework.\n"},{key:"tool.vanilla-js",t:"Vanilla JS"},{key:"tool.extjs",t:"Ext JS"},{key:"tool.web-assembly",t:"WebAssembly"},{key:"tool.firebase",t:"Firebase"},{key:"tool.dotnet",t:".NET"},{key:"tool.rails",t:"Rails"},{key:"tool.php",t:"PHP"},{key:"tool.python",t:"Python"},{key:"tool.laravel",t:"Laravel"},{key:"tool.ruby",t:"Ruby"},{key:"tool.elixir",t:"Elixir"},{key:"tool.django",t:"Django"},{key:"tool.golang",t:"Go"},{key:"tool.C#",t:"C#"},{key:"tool.java",t:"Java"},{key:"tool.rust",t:"Rust"},{key:"tool.haskell",t:"Haskell"},{key:"tool.scala",t:"Scala"},{key:"tool.selenium",t:"Selenium"},{key:"tool.elm-test",t:"elm-test"},{key:"tool.flutter",t:"Flutter"},{key:"tool.pwa",t:"Progressive Web Apps"},{key:"tool.weex",t:"weex"},{key:"tool.xamarin",t:"xamarin"},{key:"tool.appcelerator",t:"Appcelerator"},{key:"tool.c-cplusplus",t:"C/C++"},{key:"tool.swift",t:"Swift"},{key:"tool.objective-c",t:"Objective-C"},{key:"tool.ocaml",t:"OCaml"},{key:"tool.parcel",t:"Parcel"},{key:"tool.make",t:"Make"},{key:"tool.lodash",t:"lodash"},{key:"tool.moment",t:"moment"},{key:"tool.underscore",t:"underscore"},{key:"tool.date-fns",t:"Date-fns"},{key:"tool.ramda",t:"Ramda"},{key:"tool.luxon",t:"luxon"},{key:"tool.visual-studio",t:"VS Code"},{key:"tool.sublime-text",t:"Sublime Text"},{key:"tool.webstorm",t:"WebStorm"},{key:"tool.atom",t:"Atom"},{key:"tool.emacs",t:"emacs"},{key:"tool.intellij",t:"IntelliJ"},{key:"tool.phpstorm",t:"PhpStorm"},{key:"tool.notepad++",t:"notepad++"},{key:"tool.brackets",t:"Brackets"},{key:"tool.nano",t:"nano"},{key:"tool.pycharm",t:"PyCharm"},{key:"tool.vim",t:"Vim"},{key:"tool.service-workers",t:"Service Workers"},{key:"tool.webrtc",t:"WebRTC"},{key:"tool.webvr",t:"WebVR"},{key:"tool.webgl",t:"WebGL"},{key:"tool.web-animations-api",t:"Web Animations API"},{key:"tool.web-audio-api",t:"Web Audio API"},{key:"tool.web-speech-api",t:"Web Speech API"},{key:"tool.dart",t:"Dart"},{key:"tool.kotlin",t:"Kotlin"},{key:"tool.haxe",t:"Haxe"},{key:"page.introduction",t:"Introduction"},{key:"page.demographics",t:"Demographics"},{key:"page.connections",t:"Connections"},{key:"page.section_overview",t:"${section} - Overview"},{key:"page.section_tool",t:"${section} - ${tool}"},{key:"page.section_overview.short",t:"Overview"},{key:"page.section_other_tools",t:"${section} – Other Libraries"},{key:"page.section_other_tools.short",t:"Other Libraries"},{key:"page.section_conclusion",t:"${section} - Conclusion"},{key:"page.section_conclusion.short",t:"Conclusion"},{key:"page.other-tools",t:"Other Tools"},{key:"page.opinions",t:"Opinions"},{key:"page.awards",t:"Awards 🏆"},{key:"page.conclusion",t:"Conclusion"},{key:"page.support",t:"Support Us"},{key:"block.title.participation-by-country",t:"Participation by Country"},{key:"block.description.participation-by-country",t:"Survey participants by Country."},{key:"block.title.salaries",t:"Salaries"},{key:"block.description.salaries",t:"Salary range breakdown."},{key:"block.title.salary-per-country",t:"Average Salary per Country"},{key:"block.description.salary-per-country",t:"Average Salary per Country."},{key:"block.title.years-of-experience",t:"Years of Experience"},{key:"block.description.years-of-experience",t:"Years of experience breakdown."},{key:"block.title.company-size",t:"Company Size"},{key:"block.description.company-size",t:"Company size breakdown."},{key:"block.title.gender-breakdown",t:"Gender Breakdown"},{key:"block.title.source-breakdown",t:"Source Breakdown"},{key:"block.description.gender-breakdown",t:"Gender breakdown."},{key:"block.title.connections",t:"Connections Between Technologies"},{key:"block.description.connections",t:"Connections between all libraries & technologies."},{key:"block.title.overview",t:"Overall Results"},{key:"block.description.overview",t:"Overall ${section} results.\n"},{key:"block.title.results-over-time",t:"${tool}'s Popularity Over Time"},{key:"block.description.results-over-time",t:"${tool}'s popularity evolution over time."},{key:"block.results-over-time.empty",t:"Sorry, we don't have enough data to display\nthe evolution of this library's popularity over time. \n"},{key:"block.title.happiness",t:"Overall Happiness"},{key:"block.description.happiness",t:"On a scale of one (very unhappy) to five (very happy), how happy are developers\nwith the current overall state of this category?\n"},{key:"block.title.tools-salary-range",t:"Salary Breakdown"},{key:"block.description.tools-salary-range",t:"Salary breakdown for developers who picked “used it, would use again” for a given option. \n\n\nEach cell shows the percentage of users in a given salary range,\ndarker means higher usage.\n"},{key:"block.title.tools-company-size",t:"Company Size Breakdown"},{key:"block.description.tools-company-size",t:"Company size breakdown for developers who picked “used it, would use again” for a given option. \n\n\nEach cell shows the percentage of users in a given company size range,\ndarker means higher usage.\n"},{key:"block.title.tools-years-of-experience",t:"Years Of Experience Breakdown"},{key:"block.description.tools-years-of-experience",t:"Years of experience breakdown for developers who picked “used it, would use again” for a given option. \n\n\nEach cell shows the percentage of users in a given years of experience range,\ndarker means higher usage.\n"},{key:"block.title.likes",t:"Most Liked Aspects of ${tool}"},{key:"block.description.likes",t:"Most liked aspects of ${tool} among developers who picked “used it and would use again”.\n"},{key:"block.title.dislikes",t:"Most Disliked Aspects of ${tool}"},{key:"block.description.dislikes",t:"Most disliked aspects of ${tool} among developers who picked “used it and would *not* use again”.\n"},{key:"block.title.tool-pairing",t:"Which Tools Are Used Alongside ${tool}?"},{key:"block.description.tool-pairing",t:"Libraries most likely to be used by developers who picked “used it and would use again” for ${tool}. \nDarker color means a stronger correlation.\n"},{key:"block.title.tool-usage-by-country",t:"${tool} Usage by Country"},{key:"block.description.tool-usage-by-country",t:"On average, **${percentage}%** of respondents have used **${tool}** and \nwould be happy to use it again.\n\n\nCountries where this ratio is higher are shown in red, those where it's lower\nare displayed in blue (countries with fewer than 20 total survey respondents are\nomitted).\n"},{key:"block.tool-usage-by-country.legend",t:"Percentage of\nhappy ${tool} users:\n"},{key:"block.title.other-tools",t:"Other Libraries"},{key:"block.description.other-tools",t:"Other answers mentioned by survey respondents, ranked by mention count.\n"},{key:"block.title.quadrants",t:"Quadrant Chart"},{key:"block.description.quadrants",t:"This chart shows each technology’s **satisfaction ratio** over its **total usage**.\n\n\nAdditionally, technologies that have an **interest ratio** \n(percentage of non-users interested in learning it) over 50% are displayed as “on fire”.\n"},{key:"block.title.other_languages",t:"Other Languages"},{key:"block.description.other_languages",t:"Other languages, ranked by mention count."},{key:"block.title.browser_apis",t:"Browser APIs"},{key:"block.description.browser_apis",t:"Browser APIs, ranked by mention count."},{key:"block.title.build_tools",t:"Build Tools"},{key:"block.description.build_tools",t:"Build tools, ranked by mention count."},{key:"block.title.utility_libraries",t:"Utility Libraries"},{key:"block.description.utility_libraries",t:"Utility libraries, ranked by mention count."},{key:"block.title.text_editors",t:"Text Editors"},{key:"block.description.text_editors",t:"Text editors, ranked by mention count."},{key:"block.title.recommended_resources",t:"Recommended Resources"},{key:"block.title.opinion-js_moving_in_right_direction",t:"JavaScript is moving in the right direction"},{key:"block.description.opinion-js_moving_in_right_direction",t:"JavaScript is moving in the right direction."},{key:"block.title.opinion-building_js_apps_overly_complex",t:"Building JavaScript apps is overly complex right now"},{key:"block.description.opinion-building_js_apps_overly_complex",t:"Building JavaScript apps is overly complex right now."},{key:"block.title.opinion-js_over_used_online",t:"JavaScript is over-used online"},{key:"block.description.opinion-js_over_used_online",t:"JavaScript is over-used online."},{key:"block.title.opinion-enjoy_building_js_apps",t:"I enjoy building JavaScript apps"},{key:"block.description.opinion-enjoy_building_js_apps",t:"I enjoy building JavaScript apps."},{key:"block.title.opinion-would_like_js_to_be_main_lang",t:"I would like JavaScript to be my main programming language"},{key:"block.description.opinion-would_like_js_to_be_main_lang",t:"I would like JavaScript to be my main programming language."},{key:"block.title.opinion-js_ecosystem_changing_to_fast",t:"The JavaScript ecosystem is changing too fast"},{key:"block.description.opinion-js_ecosystem_changing_to_fast",t:"The JavaScript ecosystem is changing too fast."},{key:"block.title.opinion-survey_too_long",t:"This survey is too damn long!"},{key:"block.description.opinion-survey_too_long",t:"This survey is too damn long!"},{key:"reason.elegant_programming_style_patterns.long",t:"⚙️ Elegant programming style & patterns"},{key:"reason.elegant_programming_style_patterns.short",t:"⚙️ Programming style"},{key:"reason.robust_less_error_prone_code.long",t:"🐞 Robust, less error-prone code"},{key:"reason.robust_less_error_prone_code.short",t:"🐞 Robust code"},{key:"reason.rich_package_ecosystem.long",t:"🎁 Rich package ecosystem"},{key:"reason.rich_package_ecosystem.short",t:"🎁 Package ecosystem"},{key:"reason.fast_performance.long",t:"⚡ Fast performance"},{key:"reason.fast_performance.short",t:"⚡ Fast performance"},{key:"reason.well_established_option.long",t:"🏛️ Well-established option"},{key:"reason.well_established_option.short",t:"🏛️ Well-established"},{key:"reason.easy_learning_curve.long",t:"👶 Easy learning curve"},{key:"reason.easy_learning_curve.short",t:"👶 Easy to learn"},{key:"reason.powerful_developer_tooling.long",t:"🔧 Powerful developer tooling"},{key:"reason.powerful_developer_tooling.short",t:"🔧 Tooling"},{key:"reason.good_documentation.long",t:"📖 Good documentation"},{key:"reason.good_documentation.short",t:"📖 Documentation"},{key:"reason.backed_by_a_great_team_company.long",t:"👫 Backed by a great team/company"},{key:"reason.backed_by_a_great_team_company.short",t:"👫 Team/company"},{key:"reason.simple_lightweight.long",t:"🎈 Simple & lightweight"},{key:"reason.simple_lightweight.short",t:"🎈 Lightweight"},{key:"reason.growing_momentum_popularity.long",t:"📉 Growing momentum/popularity"},{key:"reason.growing_momentum_popularity.short",t:"📉 Momentum"},{key:"reason.full_featured_powerful.long",t:"🕹️ Full-featured & powerful"},{key:"reason.full_featured_powerful.short",t:"🕹️ Full-featured"},{key:"reason.stable_backwards_compatible.long",t:"⚖️ Stable & backwards-compatible"},{key:"reason.stable_backwards_compatible.short",t:"⚖️ Stability"},{key:"reason.clumsy_programming_style.long",t:"⚙️ Clumsy programming style"},{key:"reason.clumsy_programming_style.short",t:"⚙️ Clumsy"},{key:"reason.buggy_error_prone_code.long",t:"🐞 Buggy, error-prone code"},{key:"reason.buggy_error_prone_code.short",t:"🐞 Buggy code"},{key:"reason.poor_performance.long",t:"⚡ Poor performance"},{key:"reason.poor_performance.short",t:"⚡ Poor performance"},{key:"reason.small_package_ecosystem.long",t:"🎁 Small package ecosystem"},{key:"reason.small_package_ecosystem.short",t:"🎁 Few packages"},{key:"reason.new_untested_option.long",t:"🏛️ New untested option"},{key:"reason.new_untested_option.short",t:"🏛️ New & untested"},{key:"reason.hard_learning_curve.long",t:"👶 Hard learning curve"},{key:"reason.hard_learning_curve.short",t:"👶 Hard to learn"},{key:"reason.lacking_developer_tooling.long",t:"🔧 Lacking developer tooling"},{key:"reason.lacking_developer_tooling.short",t:"🔧 Lacking tooling"},{key:"reason.bad_documentation.long",t:"📖 Bad documentation"},{key:"reason.bad_documentation.short",t:"📖 Bad documentation"},{key:"reason.concerns_about_the_team_company.long",t:"👫 Concerns about the team/company"},{key:"reason.concerns_about_the_team_company.short",t:"👫 Bad team/company"},{key:"reason.bloated_complex.long",t:"🎈 Bloated & complex"},{key:"reason.bloated_complex.short",t:"🎈 Bloated & complex"},{key:"reason.diminishing_momentum_popularity.long",t:"📉 Diminishing momentum/popularity"},{key:"reason.diminishing_momentum_popularity.short",t:"📉 Low momentum"},{key:"reason.limited_lacking_in_features.long",t:"🕹️ Limited & lacking in features"},{key:"reason.limited_lacking_in_features.short",t:"🕹️ Limited"},{key:"reason.fast_changing_breaks_often.long",t:"⚖️ Fast-changing & breaks often"},{key:"reason.fast_changing_breaks_often.short",t:"⚖️ Fast-changing"},{key:"reason.other.long",t:"Other"},{key:"reason.other.short",t:"Other"},{key:"quadrant.satisfaction_legend",t:"Satisfaction %"},{key:"quadrant.users_legend",t:"Users"},{key:"quadrant.assess.label",t:"Assess"},{key:"quadrant.assess.description",t:"Low usage, high satisfaction.\nTechnologies worth keeping an eye on.\n"},{key:"quadrant.adopt.label",t:"Adopt"},{key:"quadrant.adopt.description",t:"High usage, high satisfaction. Safe technologies to adopt.\n"},{key:"quadrant.avoid.label",t:"Avoid"},{key:"quadrant.avoid.description",t:"Low usage, low satisfaction.\nTechnologies probably best avoided currently.\n"},{key:"quadrant.analyze.label",t:"Analyze"},{key:"quadrant.analyze.description",t:"High usage, low satisfaction.\nReassess these technologies if you're currently using them.\n"},{key:"block.title.highest_satisfaction",t:"Highest Satisfaction"},{key:"block.description.highest_satisfaction",t:"Awarded to the library with the highest percentage of satisfied users.\n"},{key:"award.highest_satisfaction.comment",t:"With **${tools[0].percentage}%** of users willing to use it again,\n${tools[0].label} proves it’s not kidding around.\n"},{key:"award.highest_satisfaction.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_interest",t:"Highest Interest"},{key:"block.description.highest_interest",t:"Awarded to the technology developers are most interested in learning.\n"},{key:"award.highest_interest.comment",t:"**${tools[0].percentage}%** of developers who have heard about\n${tools[0].label} want to learn it.\nThat’s some serious interest!\n"},{key:"award.highest_interest.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_usage",t:"Most Used"},{key:"block.description.highest_usage",t:"Awarded to technology with the largest user base.\n"},{key:"award.highest_usage.comment",t:"With **${tools[0].count}** users ${tools[0].label}\nis the most used library this year. \n"},{key:"award.highest_usage.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.most_mentioned",t:"Most Mentioned"},{key:"block.description.most_mentioned",t:"Awarded to the library mentioned the most in the “other libraries” answer. \n"},{key:"award.most_mentioned.comment",t:"${tools[0].label} collected **${tools[0].count}** mentions,\nmaking it the most submitted freeform answer by far.\n"},{key:"award.most_mentioned.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.prediction",t:"Prediction Award"},{key:"block.description.prediction",t:"Awarded to an up-and-coming technology that might take over… or not?\n"},{key:"award.prediction.comment",t:"The Facebook team is two for two with React and GraphQL.\nWill Reason follow the same path?\n"},{key:"award.prediction.runner_up",t:"${tool.label}"},{key:"block.title.special",t:"Special Award"},{key:"block.description.special",t:"Awarded to a technology that we just fell in love with this year.\n"},{key:"award.special.comment",t:"${tools[0].label} has become the leading JavaScript text editor, and we can definitely see why!\n"},{key:"award.special.runner_up",t:"${tool.label}"},{key:"share.site.title",t:"Discover the StateOf JavaScript 2018 results"},{key:"share.site.twitter_text",t:"Discover the State Of JavaScript 2018 results ${link} #StateOfJS"},{key:"share.site.subject",t:"State Of JavaScript Survey Results"},{key:"share.site.body",t:"Here are some interesting JavaScript survey results: ${link}"},{key:"share.block.twitter_text",t:"#StateOfJS 2018: ${title} ${link}"},{key:"share.block.subject",t:"State Of JavaScript Survey Results"},{key:"share.block.body",t:"Here are some interesting JavaScript survey results (${title}): ${link}"}]}},{node:{locale:"fr-FR",translations:[{key:"start",t:"Démarrer"},{key:"share",t:"Partager"},{key:"average",t:"Moyenne"},{key:"conclusion",t:"Conclusion"},{key:"tools_salary_range_average",t:"Salaire moyen"},{key:"tools_company_size_average",t:"Nombre d'employés en moyenne"},{key:"tools_years_of_experience_average",t:"Années d'expérience en moyenne"},{key:"users_percentage",t:"pourcentage d'utilisateurs"},{key:"salary_range_axis_legend",t:"tranche de salaire"},{key:"years_of_experience_axis_legend",t:"années d'expérience"},{key:"company_size_axis_legend",t:"nombre d'employés"},{key:"percents_display_mode",t:"Pourcent"},{key:"counts_display_mode",t:"Comptes"},{key:"awards_runner_ups",t:"Argent/Bronze"},{key:"tool_homepage",t:"Page d'accueil"},{key:"from_to_short",t:"${from} à ${to}"},{key:"users_count",t:"${count} utilisateurs"},{key:"percentage_of_respondents",t:"${percentage} des participants"},{key:"partners.premium_partners",t:"Nos partenaires premium en 2018"},{key:"partners.become_partner",t:"Devenir partenaire"},{key:"partners.thanks",t:'Merci à nos partenaires pour leur support.\n<a href="/support">Apprenez en plus</a> sur comment soutenir The State of JS.\n'},{key:"stay_tuned",t:"Restez au Courant"},{key:"leave_your_email",t:"Si vous souhaitez savoir quand nous publions d'autres résultats ou annonçons le prochain sondage, laissez-nous votre email ci-dessous:"},{key:"your_email",t:"Votre Email"},{key:"notify_me",t:"Inscription"},{key:"opinions.legends.never_heard",t:"Je n'en ai jamais entendu parler"},{key:"opinions.legends_short.never_heard",t:"Jamais entendu parler"},{key:"opinions.legends.not_interested",t:"J'en ai entendu parler, mais je ne suis pas intéressé"},{key:"opinions.legends_short.not_interested",t:"Entendu parler, pas intéressé"},{key:"opinions.legends.interested",t:"J'en ai entendu parler et je souhaiterais apprendre"},{key:"opinions.legends_short.interested",t:"Entendu parler, souhaiterais apprendre"},{key:"opinions.legends.would_use",t:"Je l'ai utilisé, et souhaiterais l'utiliser de nouveau"},{key:"opinions.legends_short.would_use",t:"L'ai utilisé, l'utiliserai de nouveau"},{key:"opinions.legends.would_not_use",t:"Utilisé, et ne souhaite pas l'utiliser de nouveau"},{key:"opinions.legends_short.would_not_use",t:"Utilisé, ne l'utiliserai plus"},{key:"opinion_scale.0",t:"Pas d'accord du tout"},{key:"opinion_scale.1",t:"Pas d'accord"},{key:"opinion_scale.2",t:"Neutre"},{key:"opinion_scale.3",t:"D'accord"},{key:"opinion_scale.4",t:"Tout à fait d'accord"},{key:"salary_range.work-for-free.long",t:"travaille gratuitement"},{key:"salary_range.work-for-free.short",t:"0"},{key:"salary_range.0-10.long",t:"de plus de 0 à 10k$"},{key:"salary_range.0-10.short",t:"> 0 à 10k$"},{key:"salary_range.10-30.long",t:"de plus de 10k$ à 30k$"},{key:"salary_range.10-30.short",t:"> 10k$ à 30k$"},{key:"salary_range.30-50.long",t:"de plus de 30k$ à 50k$"},{key:"salary_range.30-50.short",t:"> 30k$ à 50k$"},{key:"salary_range.50-100.long",t:"de plus de 50k$ à 100k$"},{key:"salary_range.50-100.short",t:"> 50k$ à 100k$"},{key:"salary_range.100-200.long",t:"de plus de 100k$ à 200k$"},{key:"salary_range.100-200.short",t:"> 100k$ à 200k$"},{key:"salary_range.more-than-200.long",t:"plus de 200k$"},{key:"salary_range.more-than-200.short",t:"> 200k$"},{key:"company_size.1.long",t:"un employé"},{key:"company_size.1.short",t:"un"},{key:"company_size.1-5.long",t:"de plus de 1 à 5 employés"},{key:"company_size.1-5.short",t:"> 1 à 5"},{key:"company_size.5-10.long",t:"de plus de 5 à 10 employés"},{key:"company_size.5-10.short",t:"> 5 à 10"},{key:"company_size.10-20.long",t:"de plus de 10 à 20 employés"},{key:"company_size.10-20.short",t:"> 10 à 20"},{key:"company_size.20-50.long",t:"de plus de 20 à 50 employés"},{key:"company_size.20-50.short",t:"> 20 à 50"},{key:"company_size.50-100.long",t:"de plus de 50 à 100 employés"},{key:"company_size.50-100.short",t:"> 50 à 100"},{key:"company_size.100-1000.long",t:"de plus de 100 à 1000 employés"},{key:"company_size.100-1000.short",t:"> 100 à 1000"},{key:"company_size.more-than-1000.long",t:"plus de 1000 employés"},{key:"company_size.more-than-1000.short",t:"1000+"},{key:"years_of_experience.less-than-1.long",t:"moins d'un an"},{key:"years_of_experience.less-than-1.short",t:"< 1 year"},{key:"years_of_experience.1-2.long",t:"de plus de 1 à 2 ans"},{key:"years_of_experience.1-2.short",t:"> 1 à 2 ans"},{key:"years_of_experience.2-5.long",t:"de plus de 2 à 5 ans"},{key:"years_of_experience.2-5.short",t:"> 2 à 5 ans"},{key:"years_of_experience.5-10.long",t:"de plus de 5 à 10 ans"},{key:"years_of_experience.5-10.short",t:"> 5 à 10 ans"},{key:"years_of_experience.10-20.long",t:"de plus de 10 à 20 ans"},{key:"years_of_experience.10-20.short",t:"> 10 à 20 ans"},{key:"years_of_experience.more-than-20.long",t:"plus de 20 ans"},{key:"years_of_experience.more-than-20.short",t:"> 20 ans"},{key:"section.javascript-flavors",t:"Dialectes"},{key:"section.front-end-frameworks",t:"Frameworks Front-end"},{key:"section.data-layer",t:"Gestion de données"},{key:"section.back-end-frameworks",t:"Frameworks Back-end"},{key:"section.testing",t:"Tests"},{key:"section.mobile-and-desktop",t:"Mobile & Desktop"},{key:"tool.es6",t:"ES6"},{key:"tool.es6.description",t:"ES6 et ses descendants représentent les dernières versions de Javascript, généralement compilées via Babel.\n"},{key:"tool.angular",t:"Angular"},{key:"tool.angular.description",t:'Angular est un framework front-end opensource basé sur Typescript. A partir de cette année, nous ne faisons\nplus la distinction entre Angular et AngularJs, alors que les données de 2016 et 2017 correspondent\nà Angular (a.k.a "Angular 2").\n'},{key:"tool.apollo",t:"Apollo"},{key:"tool.apollo.description",t:"Un client complet de cache GraphQL prêt pour la prod pour n'importe quel framework UI ou serveur GraphQL.\n"},{key:"tool.native-apps",t:"Apps natives"},{key:"tool.native-apps.description",t:"La majorité des applications mobile et desktop sont encore développées avec des langages natifs tels que\nJava, Kotlin, Objective-C ou Swift.\n"},{key:"tool.phonegap-cordova",t:"Cordova"},{key:"tool.phonegap-cordova.description",t:"Apache Cordova un un framework de développement d'applications mobiles.\n"},{key:"tool.vanilla-js",t:"Vanilla JS"},{key:"tool.extjs",t:"Ext JS"},{key:"tool.web-assembly",t:"WebAssembly"},{key:"tool.firebase",t:"Firebase"},{key:"tool.dotnet",t:".NET"},{key:"tool.rails",t:"Rails"},{key:"tool.php",t:"PHP"},{key:"tool.python",t:"Python"},{key:"tool.laravel",t:"Laravel"},{key:"tool.ruby",t:"Ruby"},{key:"tool.elixir",t:"Elixir"},{key:"tool.django",t:"Django"},{key:"tool.golang",t:"Go"},{key:"tool.C#",t:"C#"},{key:"tool.java",t:"Java"},{key:"tool.rust",t:"Rust"},{key:"tool.haskell",t:"Haskell"},{key:"tool.scala",t:"Scala"},{key:"tool.selenium",t:"Selenium"},{key:"tool.elm-test",t:"elm-test"},{key:"tool.flutter",t:"Flutter"},{key:"tool.pwa",t:"Progressive Web Apps"},{key:"tool.weex",t:"weex"},{key:"tool.xamarin",t:"xamarin"},{key:"tool.appcelerator",t:"Appcelerator"},{key:"tool.c-cplusplus",t:"C/C++"},{key:"tool.swift",t:"Swift"},{key:"tool.objective-c",t:"Objective-C"},{key:"tool.ocaml",t:"OCaml"},{key:"tool.parcel",t:"Parcel"},{key:"tool.make",t:"Make"},{key:"tool.lodash",t:"lodash"},{key:"tool.moment",t:"moment"},{key:"tool.underscore",t:"underscore"},{key:"tool.date-fns",t:"Date-fns"},{key:"tool.ramda",t:"Ramda"},{key:"tool.luxon",t:"luxon"},{key:"tool.visual-studio",t:"VS Code"},{key:"tool.sublime-text",t:"Sublime Text"},{key:"tool.webstorm",t:"WebStorm"},{key:"tool.atom",t:"Atom"},{key:"tool.emacs",t:"emacs"},{key:"tool.intellij",t:"IntelliJ"},{key:"tool.phpstorm",t:"PhpStorm"},{key:"tool.notepad++",t:"notepad++"},{key:"tool.brackets",t:"Brackets"},{key:"tool.nano",t:"nano"},{key:"tool.pycharm",t:"PyCharm"},{key:"tool.vim",t:"Vim"},{key:"tool.service-workers",t:"Service Workers"},{key:"tool.webrtc",t:"WebRTC"},{key:"tool.webvr",t:"WebVR"},{key:"tool.webgl",t:"WebGL"},{key:"tool.web-animations-api",t:"Web Animations API"},{key:"tool.web-audio-api",t:"Web Audio API"},{key:"tool.web-speech-api",t:"Web Speech API"},{key:"tool.dart",t:"Dart"},{key:"tool.kotlin",t:"Kotlin"},{key:"tool.haxe",t:"Haxe"},{key:"page.introduction",t:"Introduction"},{key:"page.demographics",t:"Démographie"},{key:"page.connections",t:"Connexions"},{key:"page.section_overview",t:"${section} - Vue d'ensemble"},{key:"page.section_tool",t:"${section} - ${tool}"},{key:"page.section_overview.short",t:"Vue d'ensemble"},{key:"page.section_other_tools",t:"${section} – Autres librairies"},{key:"page.section_other_tools.short",t:"Autres librairies"},{key:"page.section_conclusion",t:"${section} - Conclusion"},{key:"page.section_conclusion.short",t:"Conclusion"},{key:"page.other-tools",t:"Autres outils"},{key:"page.opinions",t:"Opinions"},{key:"page.awards",t:"Récompenses 🏆"},{key:"page.conclusion",t:"Conclusion"},{key:"page.support",t:"Nous soutenir"},{key:"block.title.participation-by-country",t:"Participation par pays"},{key:"block.description.participation-by-country",t:"Participation par pays."},{key:"block.title.salaries",t:"Salaires"},{key:"block.description.salaries",t:"Salaires."},{key:"block.title.salary-per-country",t:"Salaire moyen par pays"},{key:"block.description.salary-per-country",t:"Salaire moyen par pays."},{key:"block.title.years-of-experience",t:"Années d'expérience"},{key:"block.description.years-of-experience",t:"Années d'expérience."},{key:"block.title.company-size",t:"Nombre d'employés"},{key:"block.description.company-size",t:"Nombre d'employés."},{key:"block.title.gender-breakdown",t:"Genres"},{key:"block.title.source-breakdown",t:"Sources"},{key:"block.description.gender-breakdown",t:"Genres."},{key:"block.title.connections",t:"Connexions entre les différentes technologies"},{key:"block.description.connections",t:"Connexions entre les différentes technologies."},{key:"block.title.overview",t:"Résultats globaux"},{key:"block.description.overview",t:'Résultats globaux pour la section "${section}".\n'},{key:"block.title.results-over-time",t:"Évolution de la popularité de ${tool}"},{key:"block.description.results-over-time",t:"Évolution de la popularité de ${tool}\nau fil du temps.\n"},{key:"block.results-over-time.empty",t:"Désolé, nous ne disposons pas de suffisamment de données\npour calculer l'évolution de cette librarie au fil du temps.\n"},{key:"block.title.happiness",t:"Sentiment global"},{key:"block.description.happiness",t:"Sur une échelle de un (très mécontent) à cinq (très content),\nquel est le sentiment des dévelopeurs vis à vis de cette catégorie ?\n"},{key:"block.title.tools-salary-range",t:"Salaires"},{key:"block.description.tools-salary-range",t:"Répartition des tranches de salaire pour les dévelopeurs ayant sélectionné\n\"je l'ai utilisé et l'utiliserai de nouveau\" pour une option donnée.\n\n\nChaque cellule montre le pourcentage/nombre d'utilisateurs dans une tranche\nde salaire donnée, une couleur plus foncée démontre une plus grande utilisation\ndans cette tranche.\n"},{key:"block.title.tools-company-size",t:"Nombre d'employés"},{key:"block.description.tools-company-size",t:"Répartition du nombre d'employés pour les dévelopeurs ayant sélectionné\n\"je l'ai utilisé et l'utiliserai de nouveau\" pour une option donnée.\n\n\nChaque cellule montre le pourcentage/nombre d'utilisateurs dans une tranche\ndonnée, une couleur plus foncée démontre une plus grande utilisation\ndans cette tranche.\n"},{key:"block.title.tools-years-of-experience",t:"Années d'expérience"},{key:"block.description.tools-years-of-experience",t:"Répartition des années d'expérience pour les dévelopeurs ayant sélectionné\n\"je l'ai utilisé et l'utiliserai de nouveau\" pour une option donnée.\n\n\nChaque cellule montre le pourcentage/nombre d'utilisateurs dans une tranche\ndonnée, une couleur plus foncée démontre une plus grande utilisation\ndans cette tranche.\n"},{key:"block.title.likes",t:"Aspects les plus appréciés de ${tool}"},{key:"block.description.likes",t:"Aspects les plus appréciés de ${tool} parmi les dévelopeurs ayant\nchoisi l'option “je l'ai utilisé et l'utiliserai de nouveau”.\n"},{key:"block.title.dislikes",t:"Aspects les plus critiqués de ${tool}"},{key:"block.description.dislikes",t:"Aspects les plus critiqués de ${tool} parmi les dévelopeurs ayant\nchoisi l'option “je l'ai utilisé et ne l'utiliserai plus”.\n"},{key:"block.title.tool-pairing",t:"Quels outils sont utilisés avec ${tool} ?"},{key:"block.description.tool-pairing",t:"Probabilité d'utilisation conjointe de librairies pour les dévelopeurs\nayant choisi l'option \"je l'ai utilisé et l'utiliserai de nouveau\"\nconcernant ${tool}.\nUne couleur plus foncée démontre une corrélation plus forte.\n"},{key:"block.title.tool-usage-by-country",t:"Utilisation de ${tool} par pays"},{key:"block.description.tool-usage-by-country",t:"En moyenne, **${percentage}%** des participants ont utilisé **${tool}** et\nseraient heureux de l'utiliser de nouveau.\n\n\nLes pays où son utilisation est plus importante sont affichés en rouge,\nceux où elle est plus faible sont quant à eux affichés en bleu\n(nous avons exclu les pays avec moins de 20 participants).\n"},{key:"block.tool-usage-by-country.legend",t:"Pourcentage d'utilisateurs\nde ${tool} satisfaits:\n"},{key:"block.title.other-tools",t:"Autres librairies"},{key:"block.description.other-tools",t:"Autres librairies mentionnées par les participants,\ntriés par nombre de mentions.\n"},{key:"block.title.quadrants",t:"Quadrants"},{key:"block.description.quadrants",t:"Ce graphe montre le **taux de satisfaction** pour chaque outil\nainsi que son **utilisation totale**.\n\n\nLes outils qui ont un **taux d'intérêt**\n(pourcentage de non utilisateurs intéressés)\nau delà de 50% sont “en feu”.\n"},{key:"block.title.other_languages",t:"Autres langages"},{key:"block.description.other_languages",t:"Autres langages, triés par nombre de mentions."},{key:"block.title.browser_apis",t:"APIs navigateur"},{key:"block.description.browser_apis",t:"APIs navigateur, triées par nombre de mentions."},{key:"block.title.build_tools",t:"Outils de build"},{key:"block.description.build_tools",t:"Outils de build, triés par nombre de mentions."},{key:"block.title.utility_libraries",t:"Librairies utilitaires"},{key:"block.description.utility_libraries",t:"Librairies utilitaires, triées par nombre de mentions."},{key:"block.title.text_editors",t:"Éditeurs de texte"},{key:"block.description.text_editors",t:"Éditeurs de texte, triés par nombre de mentions."},{key:"block.title.recommended_resources",t:"Ressources recommandées"},{key:"block.title.opinion-js_moving_in_right_direction",t:"JavaScript évolue dans la bonne direction"},{key:"block.description.opinion-js_moving_in_right_direction",t:"JavaScript évolue dans la bonne direction."},{key:"block.title.opinion-building_js_apps_overly_complex",t:"Coder des applications en JavaScript est bien trop complexe"},{key:"block.description.opinion-building_js_apps_overly_complex",t:"Coder des applications en JavaScript est bien trop complexe."},{key:"block.title.opinion-js_over_used_online",t:"JavaScript est bien trop utilisé sur le web"},{key:"block.description.opinion-js_over_used_online",t:"JavaScript est bien trop utilisé sur le web."},{key:"block.title.opinion-enjoy_building_js_apps",t:"J'aime coder des applications en JavaScript"},{key:"block.description.opinion-enjoy_building_js_apps",t:"J'aime coder des applications en JavaScript."},{key:"block.title.opinion-would_like_js_to_be_main_lang",t:"J'aimerais faire de JavaScript mon langage principal"},{key:"block.description.opinion-would_like_js_to_be_main_lang",t:"J'aimerais faire de JavaScript mon langage principal."},{key:"block.title.opinion-js_ecosystem_changing_to_fast",t:"L'écosystème JavaScript change trop rapidement"},{key:"block.description.opinion-js_ecosystem_changing_to_fast",t:"Sentiment des participants sur le fait que\nl'écosystème JavaScript change trop rapidement.\n"},{key:"block.title.opinion-survey_too_long",t:"Ce sondage est bien trop long !"},{key:"block.description.opinion-survey_too_long",t:"Ce sondage est bien trop long !"},{key:"reason.elegant_programming_style_patterns.long",t:"⚙️ Style de programmation élégant"},{key:"reason.elegant_programming_style_patterns.short",t:"⚙️ Style de programmation"},{key:"reason.robust_less_error_prone_code.long",t:"🐞 Robustesse, code moins sujet aux erreurs"},{key:"reason.robust_less_error_prone_code.short",t:"🐞 Robustesse"},{key:"reason.rich_package_ecosystem.long",t:"🎁 Écosystème riche"},{key:"reason.rich_package_ecosystem.short",t:"🎁 Écosystème riche"},{key:"reason.fast_performance.long",t:"⚡ Bonnes performances"},{key:"reason.fast_performance.short",t:"⚡ Bonnes performances"},{key:"reason.well_established_option.long",t:"🏛️ Option bien établie"},{key:"reason.well_established_option.short",t:"🏛️ Option bien établie"},{key:"reason.easy_learning_curve.long",t:"👶 Courbe d'apprentissage aisée"},{key:"reason.easy_learning_curve.short",t:"👶 Facile à appréhender"},{key:"reason.powerful_developer_tooling.long",t:"🔧 Outillage puissant"},{key:"reason.powerful_developer_tooling.short",t:"🔧 Outillage"},{key:"reason.good_documentation.long",t:"📖 Bonne documentation"},{key:"reason.good_documentation.short",t:"📖 Documentation"},{key:"reason.backed_by_a_great_team_company.long",t:"👫 Soutenu par une super société/équipe"},{key:"reason.backed_by_a_great_team_company.short",t:"👫 Société/équipe"},{key:"reason.simple_lightweight.long",t:"🎈 Simple & léger"},{key:"reason.simple_lightweight.short",t:"🎈 Léger"},{key:"reason.growing_momentum_popularity.long",t:"📉 Dynamisme/popularité croissante"},{key:"reason.growing_momentum_popularity.short",t:"📉 Populaire"},{key:"reason.full_featured_powerful.long",t:"🕹️ Complet et puissant"},{key:"reason.full_featured_powerful.short",t:"🕹️ Complet"},{key:"reason.stable_backwards_compatible.long",t:"⚖️ Stable & rétro-compatible"},{key:"reason.stable_backwards_compatible.short",t:"⚖️ Stabilité"},{key:"reason.clumsy_programming_style.long",t:"⚙️ Style de développement inélégant"},{key:"reason.clumsy_programming_style.short",t:"⚙️ Inélégant"},{key:"reason.buggy_error_prone_code.long",t:"🐞 Plein de bugs, sujet aux erreurs"},{key:"reason.buggy_error_prone_code.short",t:"🐞 Plein de bugs"},{key:"reason.poor_performance.long",t:"⚡ Faibles performances"},{key:"reason.poor_performance.short",t:"⚡ Faibles performances"},{key:"reason.small_package_ecosystem.long",t:"🎁 Écosystème limité"},{key:"reason.small_package_ecosystem.short",t:"🎁 Écosystème limité"},{key:"reason.new_untested_option.long",t:"🏛️ Nouvelle option non testée"},{key:"reason.new_untested_option.short",t:"🏛️ Nouveau & non testé"},{key:"reason.hard_learning_curve.long",t:"👶 Courbe d'apprentissage élevée"},{key:"reason.hard_learning_curve.short",t:"👶 Difficile à appréhender"},{key:"reason.lacking_developer_tooling.long",t:"🔧 Manque d'outillage"},{key:"reason.lacking_developer_tooling.short",t:"🔧 Outillage"},{key:"reason.bad_documentation.long",t:"📖 Mauvaise documentation"},{key:"reason.bad_documentation.short",t:"📖 Mauvaise documentation"},{key:"reason.concerns_about_the_team_company.long",t:"👫 Inquiétudes vis à vis de l'équipe/société"},{key:"reason.concerns_about_the_team_company.short",t:"👫 Mauvaise équipe/société"},{key:"reason.bloated_complex.long",t:"🎈 Complexe"},{key:"reason.bloated_complex.short",t:"🎈 Complexe"},{key:"reason.diminishing_momentum_popularity.long",t:"📉 Dynamisme/popularité en baisse"},{key:"reason.diminishing_momentum_popularity.short",t:"📉 Perte de popularité"},{key:"reason.limited_lacking_in_features.long",t:"🕹️ Limité, manque de fonctionnalités"},{key:"reason.limited_lacking_in_features.short",t:"🕹️ Limité"},{key:"reason.fast_changing_breaks_often.long",t:"⚖️ Changements rapides et non rétro-compatibles"},{key:"reason.fast_changing_breaks_often.short",t:"⚖️ Changements rapides"},{key:"reason.other.long",t:"Autre"},{key:"reason.other.short",t:"Autre"},{key:"quadrant.satisfaction_legend",t:"Satisfaction %"},{key:"quadrant.users_legend",t:"Utilisateurs"},{key:"quadrant.assess.label",t:"Considérer"},{key:"quadrant.assess.description",t:"Faible utilisation, taux de satisfaction important.\nDes technologies sur lesquelles il faut garder un œil.\n"},{key:"quadrant.adopt.label",t:"Adopter"},{key:"quadrant.adopt.description",t:"Utilisation importante, taux élevé de satisfaction.\nDes technologies qu'il semble sûr d'adopter.\n"},{key:"quadrant.avoid.label",t:"Éviter"},{key:"quadrant.avoid.description",t:"Faible usage et faible taux de satisfaction.\nDes technologies qu'il vaut mieux éviter pour le moment.\n"},{key:"quadrant.analyze.label",t:"Analyser"},{key:"quadrant.analyze.description",t:"Utilisation importante, faible taux de satisfaction.\nIl serait probablement pertinent de considérer d'autres\noptions si vous utilisez cette technologie.\n"},{key:"block.title.highest_satisfaction",t:"Satisfaction"},{key:"block.description.highest_satisfaction",t:"Récompense la librairie ayant le plus haut pourcentage\nd'utilisateurs satisfaits.\n"},{key:"award.highest_satisfaction.comment",t:"Avec **${tools[0].percentage}%** d'utilisateurs souhaitant continuer\nà l'utiliser, ${tools[0].label} ne plaisante pas !\n"},{key:"award.highest_satisfaction.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_interest",t:"Intérêt"},{key:"block.description.highest_interest",t:"Récompense la technologie que les participants souhaitent\nle plus apprendre.\n"},{key:"award.highest_interest.comment",t:"**${tools[0].percentage}%** des dévelopeurs ayant entendu parler\nde ${tools[0].label} souhaitent l'apprendre.\nC'est un intérêt indéniable!\n"},{key:"award.highest_interest.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_usage",t:"Utilisation"},{key:"block.description.highest_usage",t:"Récompense la technologie ayant le plus grand nombre\nd'utilisateurs.\n"},{key:"award.highest_usage.comment",t:"Avec **${tools[0].count}** utilisateurs ${tools[0].label}\nest la librairie la plus utilisée cette année.\n"},{key:"award.highest_usage.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.most_mentioned",t:"Mentions"},{key:"block.description.most_mentioned",t:'Récompense la librairie la plus mentionnée pour la\nquestion "autres librairies".\n'},{key:"award.most_mentioned.comment",t:"${tools[0].label} a récolté **${tools[0].count}** mentions,\nfaisant d'elle la plus mentionnée cette année.\n"},{key:"award.most_mentioned.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.prediction",t:"Prédiction"},{key:"block.description.prediction",t:"Récompense la technologie risquant d'émerger prochainement… ou pas ?\n"},{key:"award.prediction.comment",t:"L'équipe de Facebook réalise un score parfait avec\nReact et GraphQL, en sera-t-il de même pour Reason ?\n"},{key:"award.prediction.runner_up",t:"${tool.label}"},{key:"block.title.special",t:"Mentions spéciales"},{key:"block.description.special",t:"Les technologies que nous avons particulièrement aimées cette année :)\n"},{key:"award.special.comment",t:"${tools[0].label} est devenu l'éditeur de référence pour JavaScript,\net nous pouvons aisément voir pourquoi !\n"},{key:"award.special.runner_up",t:"${tool.label}"},{key:"share.site.title",t:"Découvrez les résultats du State Of JavaScript 2018"},{key:"share.site.twitter_text",t:"Découvrez les résultats du State Of JavaScript 2018 ${link} #StateOfJS"},{key:"share.site.subject",t:"Résultats du State Of JavaScript 2018"},{key:"share.site.body",t:"Des résultats intéressants dans le sondage State Of JavaScript 2018: ${link}"},{key:"share.block.twitter_text",t:"#StateOfJS 2018: ${title} ${link}"},{key:"share.block.subject",t:"Résultats du sondage : State Of JavaScript"},{key:"share.block.body",t:"Quelques résultats intéressants concernant ce sondage (${title}): ${link}"}]}},{node:{locale:"zh-CN",translations:[{key:"start",t:"开始"},{key:"share",t:"分享"},{key:"average",t:"平均"},{key:"conclusion",t:"结论"},{key:"tools_salary_range_average",t:"平均薪资"},{key:"tools_company_size_average",t:"平均公司雇员数"},{key:"tools_years_of_experience_average",t:"平均工龄"},{key:"users_percentage",t:"用户百分比"},{key:"salary_range_axis_legend",t:"薪资"},{key:"years_of_experience_axis_legend",t:"工龄"},{key:"company_size_axis_legend",t:"公司雇员数"},{key:"percents_display_mode",t:"百分比"},{key:"counts_display_mode",t:"数量"},{key:"awards_runner_ups",t:"亚军"},{key:"tool_homepage",t:"主页"},{key:"from_to_short",t:"${from} 至 ${to}"},{key:"users_count",t:"${count} 位用户"},{key:"percentage_of_respondents",t:"${percentage} 的受访者"},{key:"partners.premium_partners",t:"2018 年合作伙伴"},{key:"partners.become_partner",t:"与我们合作"},{key:"partners.thanks",t:'感谢我们的合作伙伴对本项目的大力支持。\n如果您有合作意向,请点击<a href="/support">这里</a>查看详情。\n'},{key:"stay_tuned",t:"订阅我们的邮件"},{key:"leave_your_email",t:"如果你想获取我们的内容更新,或者想让我们在发布下一次调查时第一时间通知你,请在下方留下你的邮箱:"},{key:"your_email",t:"你的邮箱"},{key:"notify_me",t:"通知我"},{key:"opinions.legends.never_heard",t:"我从来没有听说过这个技术"},{key:"opinions.legends_short.never_heard",t:"从来没听说过"},{key:"opinions.legends.not_interested",t:"我听说过这个技术,但我不感兴趣"},{key:"opinions.legends_short.not_interested",t:"听说过,但不感兴趣"},{key:"opinions.legends.interested",t:"我听说过这个技术,且有学习的意向"},{key:"opinions.legends_short.interested",t:"听说过,且打算学习"},{key:"opinions.legends.would_use",t:"我使用过这个技术,以后也愿意再次使用"},{key:"opinions.legends_short.would_use",t:"使用过,以后也愿意用"},{key:"opinions.legends.would_not_use",t:"我使用过这个技术,但以后不愿意再用"},{key:"opinions.legends_short.would_not_use",t:"使用过,以后不愿意用"},{key:"opinion_scale.0",t:"强烈反对"},{key:"opinion_scale.1",t:"反对"},{key:"opinion_scale.2",t:"中立"},{key:"opinion_scale.3",t:"同意"},{key:"opinion_scale.4",t:"十分同意"},{key:"salary_range.work-for-free.long",t:"我没有收入"},{key:"salary_range.work-for-free.short",t:"没有收入"},{key:"salary_range.0-10.long",t:"0 美元 - 1 万美元"},{key:"salary_range.0-10.short",t:"0 美元 - 1 万美元"},{key:"salary_range.10-30.long",t:"1 万美元 - 3 万美元"},{key:"salary_range.10-30.short",t:"1 万美元 - 3 万美元"},{key:"salary_range.30-50.long",t:"3 万美元 - 5 万美元"},{key:"salary_range.30-50.short",t:"3 万美元 - 5 万美元"},{key:"salary_range.50-100.long",t:"5 万美元 - 10 万美元"},{key:"salary_range.50-100.short",t:"5 万美元 - 10 万美元"},{key:"salary_range.100-200.long",t:"10 万美元 - 20 万美元"},{key:"salary_range.100-200.short",t:"10 万美元 - 20 万美元"},{key:"salary_range.more-than-200.long",t:"大于 20 万美元"},{key:"salary_range.more-than-200.short",t:"大于 20 万美元"},{key:"company_size.1.long",t:"1 个雇员"},{key:"company_size.1.short",t:"1"},{key:"company_size.1-5.long",t:"1 至 5 个雇员"},{key:"company_size.1-5.short",t:"1~5"},{key:"company_size.5-10.long",t:"5 至 10 个雇员"},{key:"company_size.5-10.short",t:"5~10"},{key:"company_size.10-20.long",t:"10 至 20 个雇员"},{key:"company_size.10-20.short",t:"10~20"},{key:"company_size.20-50.long",t:"20 至 50 个雇员"},{key:"company_size.20-50.short",t:"20~50"},{key:"company_size.50-100.long",t:"50 至 100 个雇员"},{key:"company_size.50-100.short",t:"50~100"},{key:"company_size.100-1000.long",t:"100 至 1000 个雇员"},{key:"company_size.100-1000.short",t:"100~1000"},{key:"company_size.more-than-1000.long",t:"1000+ 个雇员"},{key:"company_size.more-than-1000.short",t:"1000+"},{key:"years_of_experience.less-than-1.long",t:"少于 1 年"},{key:"years_of_experience.less-than-1.short",t:"<1 年"},{key:"years_of_experience.1-2.long",t:"1 至 2 年"},{key:"years_of_experience.1-2.short",t:"1~2 年"},{key:"years_of_experience.2-5.long",t:"2 至 5 年"},{key:"years_of_experience.2-5.short",t:"2~5 年"},{key:"years_of_experience.5-10.long",t:"5 至 10 年"},{key:"years_of_experience.5-10.short",t:"5~10 年"},{key:"years_of_experience.10-20.long",t:"10 至 20 年"},{key:"years_of_experience.10-20.short",t:"10~20 年"},{key:"years_of_experience.more-than-20.long",t:"20 年以上"},{key:"years_of_experience.more-than-20.short",t:">20 年"},{key:"section.javascript-flavors",t:"JavaScript 偏好"},{key:"section.front-end-frameworks",t:"前端框架"},{key:"section.data-layer",t:"数据层"},{key:"section.back-end-frameworks",t:"后端框架"},{key:"section.testing",t:"测试"},{key:"section.mobile-and-desktop",t:"移动端与桌面端"},{key:"tool.es6",t:"ES6"},{key:"tool.es6.description",t:"ES6 及其后续都是较新版本的 JavaScript,习惯上,我们会用 Babel 对他们进行编译。\n"},{key:"tool.angular",t:"Angular"},{key:"tool.angular.description",t:"Angular 是基于 TypeScript 的前端开源平台。注意,从今年起,我们不再区分 Angular 与 Angular.js。\n然而,2016 和 2017 年的数据是基于 Angular(也叫 “Angular 2+”)的。\n"},{key:"tool.apollo",t:"Apollo"},{key:"tool.apollo.description",t:"Apollo 是一个功能完善、生产环境友好、集成了缓存机制的 GraphQL 客户端。它可以与几乎所有的前端框架和支持 GraphQL 的服务器搭配使用。\n"},{key:"tool.native-apps",t:"Native Apps"},{key:"tool.native-apps.description",t:"目前,大部分移动端和桌面端应用依旧采用平台原生语言(如 Java、Kotlin、Objective-C、Swift)搭建。\n"},{key:"tool.phonegap-cordova",t:"Cordova"},{key:"tool.phonegap-cordova.description",t:"Apache 公司出品的 Cordova 是一个适用于移动端开发的框架\n"},{key:"tool.vanilla-js",t:"原生 JS"},{key:"tool.extjs",t:"Ext JS"},{key:"tool.web-assembly",t:"WebAssembly"},{key:"tool.firebase",t:"Firebase"},{key:"tool.dotnet",t:".NET"},{key:"tool.rails",t:"Rails"},{key:"tool.php",t:"PHP"},{key:"tool.python",t:"Python"},{key:"tool.laravel",t:"Laravel"},{key:"tool.ruby",t:"Ruby"},{key:"tool.elixir",t:"Elixir"},{key:"tool.django",t:"Django"},{key:"tool.golang",t:"Go"},{key:"tool.C#",t:"C#"},{key:"tool.java",t:"Java"},{key:"tool.rust",t:"Rust"},{key:"tool.haskell",t:"Haskell"},{key:"tool.scala",t:"Scala"},{key:"tool.selenium",t:"Selenium"},{key:"tool.elm-test",t:"elm-test"},{key:"tool.flutter",t:"Flutter"},{key:"tool.pwa",t:"Progressive Web Apps"},{key:"tool.weex",t:"weex"},{key:"tool.xamarin",t:"xamarin"},{key:"tool.appcelerator",t:"Appcelerator"},{key:"tool.c-cplusplus",t:"C/C++"},{key:"tool.swift",t:"Swift"},{key:"tool.objective-c",t:"Objective-C"},{key:"tool.ocaml",t:"OCaml"},{key:"tool.parcel",t:"Parcel"},{key:"tool.make",t:"Make"},{key:"tool.lodash",t:"lodash"},{key:"tool.moment",t:"moment"},{key:"tool.underscore",t:"underscore"},{key:"tool.date-fns",t:"Date-fns"},{key:"tool.ramda",t:"Ramda"},{key:"tool.luxon",t:"luxon"},{key:"tool.visual-studio",t:"VS Code"},{key:"tool.sublime-text",t:"Sublime Text"},{key:"tool.webstorm",t:"WebStorm"},{key:"tool.atom",t:"Atom"},{key:"tool.emacs",t:"emacs"},{key:"tool.intellij",t:"IntelliJ"},{key:"tool.phpstorm",t:"PhpStorm"},{key:"tool.notepad++",t:"notepad++"},{key:"tool.brackets",t:"Brackets"},{key:"tool.nano",t:"nano"},{key:"tool.pycharm",t:"PyCharm"},{key:"tool.vim",t:"Vim"},{key:"tool.service-workers",t:"Service Workers"},{key:"tool.webrtc",t:"WebRTC"},{key:"tool.webvr",t:"WebVR"},{key:"tool.webgl",t:"WebGL"},{key:"tool.web-animations-api",t:"Web Animations API"},{key:"tool.web-audio-api",t:"Web Audio API"},{key:"tool.web-speech-api",t:"Web Speech API"},{key:"tool.dart",t:"Dart"},{key:"tool.kotlin",t:"Kotlin"},{key:"tool.haxe",t:"Haxe"},{key:"page.introduction",t:"简介"},{key:"page.demographics",t:"从业者统计"},{key:"page.connections",t:"技术栈关联"},{key:"page.section_overview",t:"${section} - 概览"},{key:"page.section_tool",t:"${section} - ${tool}"},{key:"page.section_overview.short",t:"概览"},{key:"page.section_other_tools",t:"${section} – 其他工具"},{key:"page.section_other_tools.short",t:"其他工具"},{key:"page.section_conclusion",t:"${section} - 结论"},{key:"page.section_conclusion.short",t:"结论"},{key:"page.other-tools",t:"其他工具"},{key:"page.opinions",t:"观点"},{key:"page.awards",t:"颁奖台 🏆"},{key:"page.conclusion",t:"结论"},{key:"page.support",t:"支持我们"},{key:"block.title.participation-by-country",t:"参与者所在国家分布"},{key:"block.description.participation-by-country",t:"参与者所在国家分布。"},{key:"block.title.salaries",t:"薪资"},{key:"block.description.salaries",t:"薪资分布。"},{key:"block.title.salary-per-country",t:"每个国家的平均薪资"},{key:"block.description.salary-per-country",t:"每个国家的平均薪资。"},{key:"block.title.years-of-experience",t:"工龄"},{key:"block.description.years-of-experience",t:"工龄分布。"},{key:"block.title.company-size",t:"公司雇员数"},{key:"block.description.company-size",t:"公司雇员数分布。"},{key:"block.title.gender-breakdown",t:"性别分布"},{key:"block.title.source-breakdown",t:"来源分布"},{key:"block.description.gender-breakdown",t:"性别分布。"},{key:"block.title.connections",t:"技术栈关联"},{key:"block.description.connections",t:"所有工具与技术的关联使用情况。"},{key:"block.title.overview",t:"概览"},{key:"block.description.overview",t:"${section} 概览。\n"},{key:"block.title.results-over-time",t:"${tool} 不同年份的调查结果"},{key:"block.description.results-over-time",t:"${tool} 不同年份的调查结果。"},{key:"block.results-over-time.empty",t:"抱歉,由于数据不足,我们无法展示这个技术随时间变化的调查结果。\n"},{key:"block.title.happiness",t:"整体满意度"},{key:"block.description.happiness",t:"开发者对这一类技术栈的现状有什么感受呢?其中 1 分表示非常不满意,5 分表示非常满意。\n"},{key:"block.title.tools-salary-range",t:"薪资分布"},{key:"block.description.tools-salary-range",t:"薪资分布基于在这个技术中选择了“使用过,以后也愿意用”的开发者。\n\n\n每个格子代表对应的薪资范围中,使用此项技术的开发者占比。颜色越深则占比越高。\n"},{key:"block.title.tools-company-size",t:"公司雇员数分布"},{key:"block.description.tools-company-size",t:"公司雇员数分布基于在这个技术中选择了“使用过,以后也愿意用”的开发者。\n\n\n每个格子代表对应的公司雇员数范围中,使用此项技术的开发者占比。颜色越深则占比越高。\n"},{key:"block.title.tools-years-of-experience",t:"工龄分布"},{key:"block.description.tools-years-of-experience",t:"工龄分布基于在这个技术中选择了“使用过,以后也愿意用”的开发者。\n\n\n每个格子代表对应的工龄范围中,使用此项技术的开发者占比。颜色越深则占比越高。\n"},{key:"block.title.likes",t:"喜欢 ${tool} 的原因"},{key:"block.description.likes",t:"选择了“使用过,以后也愿意用” ${tool} 的开发者,喜欢这项技术的原因。\n"},{key:"block.title.dislikes",t:"不喜欢 ${tool} 的原因"},{key:"block.description.dislikes",t:"选择了“使用过,以后*不*愿意用” ${tool} 的开发者,不喜欢这项技术的原因。\n"},{key:"block.title.tool-pairing",t:"使用 ${tool} 的开发者还会用什么?"},{key:"block.description.tool-pairing",t:"选择了“使用过,以后也愿意用” ${tool} 的开发者,还会用到以下技术。\n颜色越深则关联度越大。\n"},{key:"block.title.tool-usage-by-country",t:"${tool} 在不同国家的使用情况"},{key:"block.description.tool-usage-by-country",t:"平均来看,**${percentage}%** 的 **${tool}** 用户愿意再次使用这项技术。\n\n\n下图展示了不同国家的开发者对继续使用这项技术的倾向。“以后也愿意用”占比高的国家以红色表示,低的国家以蓝色表示;参与人数小于 20 的国家会显示成灰色。\n"},{key:"block.tool-usage-by-country.legend",t:"愿意继续使用\n${tool} 的开发者比例:\n"},{key:"block.title.other-tools",t:"其他工具"},{key:"block.description.other-tools",t:"参与调查的受访者提及的其他同类工具,依照提及次数排名。\n"},{key:"block.title.quadrants",t:"象限图"},{key:"block.description.quadrants",t:"以下图表展示了**满意度**与**用户数量**的对比。\n\n\n额外地,对于**感兴趣程度**(非用户,但有兴趣学习此项技术)高于 50% 的技术,会在技术图标背后出现“火焰🔥”标识。\n"},{key:"block.title.other_languages",t:"其他语言"},{key:"block.description.other_languages",t:"其他语言,依照提及次数排名。"},{key:"block.title.browser_apis",t:"浏览器 API"},{key:"block.description.browser_apis",t:"浏览器 API,依照提及次数排名"},{key:"block.title.build_tools",t:"构建工具"},{key:"block.description.build_tools",t:"构建工具,依照提及次数排名"},{key:"block.title.utility_libraries",t:"工具类库"},{key:"block.description.utility_libraries",t:"工具类库,依照提及次数排名"},{key:"block.title.text_editors",t:"编辑器"},{key:"block.description.text_editors",t:"编辑器,依照提及次数排名"},{key:"block.title.recommended_resources",t:"推荐资源"},{key:"block.title.opinion-js_moving_in_right_direction",t:"JavaScript 正在朝着好的方向发展"},{key:"block.description.opinion-js_moving_in_right_direction",t:"JavaScript 正在朝着好的方向发展。"},{key:"block.title.opinion-building_js_apps_overly_complex",t:"现在,开发 JavaScript 应用实在是太复杂了"},{key:"block.description.opinion-building_js_apps_overly_complex",t:"现在,开发 JavaScript 应用实在是太复杂了。"},{key:"block.title.opinion-js_over_used_online",t:"JavaScript 在开发中被过度地使用了"},{key:"block.description.opinion-js_over_used_online",t:"JavaScript 在开发中被过度地使用了。"},{key:"block.title.opinion-enjoy_building_js_apps",t:"我很享受开发 JavaScript 应用的过程"},{key:"block.description.opinion-enjoy_building_js_apps",t:"我很享受开发 JavaScript 应用的过程。"},{key:"block.title.opinion-would_like_js_to_be_main_lang",t:"我想让 JavaScript 成为我的主要编程语言"},{key:"block.description.opinion-would_like_js_to_be_main_lang",t:"我想让 JavaScript 成为我的主要编程语言。"},{key:"block.title.opinion-js_ecosystem_changing_to_fast",t:"JavaScript 生态圈变化地太快了"},{key:"block.description.opinion-js_ecosystem_changing_to_fast",t:"JavaScript 生态圈变化地太快了。"},{key:"block.title.opinion-survey_too_long",t:"这份调查实在是太长了!"},{key:"block.description.opinion-survey_too_long",t:"这份调查实在是太长了!"},{key:"reason.elegant_programming_style_patterns.long",t:"⚙️ 优雅的编程范式"},{key:"reason.elegant_programming_style_patterns.short",t:"⚙️ 编程范式"},{key:"reason.robust_less_error_prone_code.long",t:"🐞 较高的容错性"},{key:"reason.robust_less_error_prone_code.short",t:"🐞 容错性高"},{key:"reason.rich_package_ecosystem.long",t:"🎁 丰富的生态圈"},{key:"reason.rich_package_ecosystem.short",t:"🎁 生态圈"},{key:"reason.fast_performance.long",t:"⚡ 速度快,性能好"},{key:"reason.fast_performance.short",t:"⚡ 优秀的性能"},{key:"reason.well_established_option.long",t:"🏛️ 完善,构建良好"},{key:"reason.well_established_option.short",t:"🏛️ 完善"},{key:"reason.easy_learning_curve.long",t:"👶 平缓的学习曲线"},{key:"reason.easy_learning_curve.short",t:"👶 易于上手"},{key:"reason.powerful_developer_tooling.long",t:"🔧 强大的开发工具"},{key:"reason.powerful_developer_tooling.short",t:"🔧 开发工具"},{key:"reason.good_documentation.long",t:"📖 良好的文档"},{key:"reason.good_documentation.short",t:"📖 文档"},{key:"reason.backed_by_a_great_team_company.long",t:"👫 背后有坚实的团队/公司支持"},{key:"reason.backed_by_a_great_team_company.short",t:"👫 团队/公司支持"},{key:"reason.simple_lightweight.long",t:"🎈 简单且轻量"},{key:"reason.simple_lightweight.short",t:"🎈 轻量"},{key:"reason.growing_momentum_popularity.long",t:"📉 日趋火热"},{key:"reason.growing_momentum_popularity.short",t:"📉 热门"},{key:"reason.full_featured_powerful.long",t:"🕹️ 功能完备且强大"},{key:"reason.full_featured_powerful.short",t:"🕹️ 功能完备"},{key:"reason.stable_backwards_compatible.long",t:"⚖️ 稳定且向后兼容"},{key:"reason.stable_backwards_compatible.short",t:"⚖️ 稳定"},{key:"reason.clumsy_programming_style.long",t:"⚙️ 不优雅的编程范式"},{key:"reason.clumsy_programming_style.short",t:"⚙️ 不优雅"},{key:"reason.buggy_error_prone_code.long",t:"🐞 较低的容错性"},{key:"reason.buggy_error_prone_code.short",t:"🐞 容错性低"},{key:"reason.poor_performance.long",t:"⚡ 性能差"},{key:"reason.poor_performance.short",t:"⚡ 性能差"},{key:"reason.small_package_ecosystem.long",t:"🎁 有限的生态圈"},{key:"reason.small_package_ecosystem.short",t:"🎁 有限的生态圈"},{key:"reason.new_untested_option.long",t:"🏛️ 不完善"},{key:"reason.new_untested_option.short",t:"🏛️ 不完善"},{key:"reason.hard_learning_curve.long",t:"👶 陡峭的学习曲线"},{key:"reason.hard_learning_curve.short",t:"👶 不易入门"},{key:"reason.lacking_developer_tooling.long",t:"🔧 缺乏开发工具"},{key:"reason.lacking_developer_tooling.short",t:"🔧 缺乏开发工具"},{key:"reason.bad_documentation.long",t:"📖 较差的文档"},{key:"reason.bad_documentation.short",t:"📖 较差的文档"},{key:"reason.concerns_about_the_team_company.long",t:"👫 背后的团队/公司不稳定"},{key:"reason.concerns_about_the_team_company.short",t:"👫 背后的团队/公司不稳定"},{key:"reason.bloated_complex.long",t:"🎈 复杂"},{key:"reason.bloated_complex.short",t:"🎈 复杂"},{key:"reason.diminishing_momentum_popularity.long",t:"📉 火热程度日渐衰退"},{key:"reason.diminishing_momentum_popularity.short",t:"📉 过时"},{key:"reason.limited_lacking_in_features.long",t:"🕹️ 有限或缺少功能"},{key:"reason.limited_lacking_in_features.short",t:"🕹️ 有限的功能"},{key:"reason.fast_changing_breaks_often.long",t:"⚖️ 更新太快且向后兼容性差"},{key:"reason.fast_changing_breaks_often.short",t:"⚖️ 更新太快"},{key:"reason.other.long",t:"其他"},{key:"reason.other.short",t:"其他"},{key:"quadrant.satisfaction_legend",t:"满意度 %"},{key:"quadrant.users_legend",t:"用户数量"},{key:"quadrant.assess.label",t:"评估阶段"},{key:"quadrant.assess.description",t:"使用率低,但满意度高。\n值得关注的技术。\n"},{key:"quadrant.adopt.label",t:"采用"},{key:"quadrant.adopt.description",t:"使用率高,满意度也高。可以放心地使用。\n"},{key:"quadrant.avoid.label",t:"避免"},{key:"quadrant.avoid.description",t:"使用率低,且满意度低。\n建议避免使用的技术。\n"},{key:"quadrant.analyze.label",t:"分析阶段"},{key:"quadrant.analyze.description",t:"使用率高,但满意度低。\n如果你正在使用这个技术,建议重新对它们进行评估。\n"},{key:"block.title.highest_satisfaction",t:"最满意的技术"},{key:"block.description.highest_satisfaction",t:"此为今年调查中,用户满意度最高的技术。\n"},{key:"award.highest_satisfaction.comment",t:"**${tools[0].percentage}%** 的受访者表示愿意再次使用它。\n${tools[0].label} 果然不是吹的,是真的很好用。\n"},{key:"award.highest_satisfaction.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_interest",t:"开发者最想学的技术"},{key:"block.description.highest_interest",t:"此为今年调查中,开发者最想学的技术。\n"},{key:"award.highest_interest.comment",t:"在听说过 ${tools[0].label} 的受访者中,**${tools[0].percentage}%** 的人愿意学习它。\n看来,这项技术的吸睛指数真的很高。\n"},{key:"award.highest_interest.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_usage",t:"使用最多的技术"},{key:"block.description.highest_usage",t:"此为今年调查中,使用人数最多的技术。\n"},{key:"award.highest_usage.comment",t:"在今年的调查中,${tools[0].label} 拥有 **${tools[0].count}** 的用户,获此殊荣。\n"},{key:"award.highest_usage.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.most_mentioned",t:"最多提及的技术"},{key:"block.description.most_mentioned",t:"此为今年调查中,在“其他工具”中被提及次数最多的。\n"},{key:"award.most_mentioned.comment",t:"${tools[0].label} 收获了 **${tools[0].count}** 次提名,当之无愧。\n"},{key:"award.most_mentioned.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.prediction",t:"最具潜力奖"},{key:"block.description.prediction",t:"颁发给在不远的将来,有可能会替代……嗯,应该不会替代,只是未来一片光明。\n"},{key:"award.prediction.comment",t:"Facebook(脸书)团队创建并捧红了 React 和 GraphQL。\nReason 会是下一个么?让我们拭目以待。\n"},{key:"award.prediction.runner_up",t:"${tool.label}"},{key:"block.title.special",t:"特别贡献奖"},{key:"block.description.special",t:"颁发给直到今年今年,我们才突然意识到它的好的工具。\n"},{key:"award.special.comment",t:"${tools[0].label} 已经成为 JavaScript 最热门的编辑器,至于原因,大家都懂。\n"},{key:"award.special.runner_up",t:"${tool.label}"},{key:"share.site.title",t:"来看看 State Of JavaScript 2018 的调查结果吧"},{key:"share.site.twitter_text",t:"来看看 State Of JavaScript 2018 的调查结果吧:${link} #StateOfJS"},{key:"share.site.subject",t:"State Of JavaScript 调查结果"},{key:"share.site.body",t:"与你分享有意思的 JavaScript 调查结果:${link}"},{key:"share.block.twitter_text",t:"#StateOfJS 2018 调查结果:${title} ${link}"},{key:"share.block.subject",t:"State Of JavaScript 调查结果"},{key:"share.block.body",t:"与你分享有意思的 JavaScript 调查结果 (${title}): ${link}"}]}},{node:{locale:"hu-HU",translations:[{key:"start",t:"Indulás"},{key:"share",t:"Megosztás"},{key:"average",t:"Átlag"},{key:"conclusion",t:"Konklúzió"},{key:"tools_salary_range_average",t:"Átlagos kereset"},{key:"tools_company_size_average",t:"Átlagos cégméret"},{key:"tools_years_of_experience_average",t:"Átlag tapasztalat (év)"},{key:"users_percentage",t:"Felhasználók százalékos aránya"},{key:"salary_range_axis_legend",t:"Fizetési tartomány (év)"},{key:"years_of_experience_axis_legend",t:"Tapasztalat (év)"},{key:"company_size_axis_legend",t:"Alkalmazottak száma"},{key:"percents_display_mode",t:"Százalék"},{key:"counts_display_mode",t:"Fő"},{key:"awards_runner_ups",t:"Befutók"},{key:"tool_homepage",t:"Főoldal"},{key:"from_to_short",t:"${from}-tól ${to}-ig"},{key:"users_count",t:"${count} felhasználó"},{key:"percentage_of_respondents",t:"${percentage} válaszadó"},{key:"partners.premium_partners",t:"2018-as Prémium Partnereink"},{key:"partners.become_partner",t:"Légy te is partner"},{key:"partners.thanks",t:'Minden partnerünknek köszönjük, hogy a támogatják ezt a projektet.\n<a href="/support">További információ</a> a The State of JS támogatásáról.\n'},{key:"opinions.legends.never_heard",t:"Soha nem hallottam róla"},{key:"opinions.legends_short.never_heard",t:"Soha nem hallott róla"},{key:"opinions.legends.not_interested",t:"HALLOTTAM róla, de NEM érdekel"},{key:"opinions.legends_short.not_interested",t:"Hallott róla, nem érdekli"},{key:"opinions.legends.interested",t:"HALLOTTAM róla, és ÉRDEKEL is"},{key:"opinions.legends_short.interested",t:"Hallott róla, érdekli"},{key:"opinions.legends.would_use",t:"HASZNÁLTAM korábban, használnám megint"},{key:"opinions.legends_short.would_use",t:"Használta korábban, használná megint"},{key:"opinions.legends.would_not_use",t:"HASZNÁLTAM korábban, NEM használnám megint"},{key:"opinions.legends_short.would_not_use",t:"Használta korábban, nem használná megint"},{key:"opinion_scale.0",t:"Egyáltalán nem ért egyet"},{key:"opinion_scale.1",t:"Nem ért egyet"},{key:"opinion_scale.2",t:"Neutrális"},{key:"opinion_scale.3",t:"Egyet ért"},{key:"opinion_scale.4",t:"Teljesen egyet ért"},{key:"salary_range.work-for-free.long",t:"Ingyen dolgozom"},{key:"salary_range.work-for-free.short",t:"ingyen dolgozik"},{key:"salary_range.0-10.long",t:"$0k-$10k"},{key:"salary_range.0-10.short",t:"$0k-$10k"},{key:"salary_range.10-30.long",t:"$10k-$30k"},{key:"salary_range.10-30.short",t:"$10k-$30k"},{key:"salary_range.30-50.long",t:"$30k-$50k"},{key:"salary_range.30-50.short",t:"$30k-$50k"},{key:"salary_range.50-100.long",t:"$50k-$100k"},{key:"salary_range.50-100.short",t:"$50k-$100k"},{key:"salary_range.100-200.long",t:"$100k-$200k"},{key:"salary_range.100-200.short",t:"$100k-$200k"},{key:"salary_range.more-than-200.long",t:"több mint $200k"},{key:"salary_range.more-than-200.short",t:"$200k+"},{key:"company_size.1.long",t:"Egy alkalmazott"},{key:"company_size.1.short",t:"egy"},{key:"company_size.1-5.long",t:"1-5 alkalmazott"},{key:"company_size.1-5.short",t:"1~5"},{key:"company_size.5-10.long",t:"5-10 alkalmazott"},{key:"company_size.5-10.short",t:"5~10"},{key:"company_size.10-20.long",t:"10-20 alkalmazott"},{key:"company_size.10-20.short",t:"10~20"},{key:"company_size.20-50.long",t:"20-50 alkalmazott"},{key:"company_size.20-50.short",t:"20~50"},{key:"company_size.50-100.long",t:"50-100 alkalmazott"},{key:"company_size.50-100.short",t:"50~100"},{key:"company_size.100-1000.long",t:"100-1000 alkalmazott"},{key:"company_size.100-1000.short",t:"100~1000"},{key:"company_size.more-than-1000.long",t:"Több mint 1000 alkalmazott"},{key:"company_size.more-than-1000.short",t:"1000+"},{key:"years_of_experience.less-than-1.long",t:"Kevesebb mint egy év"},{key:"years_of_experience.less-than-1.short",t:"<1 év"},{key:"years_of_experience.1-2.long",t:"1-2 év"},{key:"years_of_experience.1-2.short",t:"1~2 év"},{key:"years_of_experience.2-5.long",t:"2-5 év"},{key:"years_of_experience.2-5.short",t:"2~5 év"},{key:"years_of_experience.5-10.long",t:"5-10 év"},{key:"years_of_experience.5-10.short",t:"5~10 év"},{key:"years_of_experience.10-20.long",t:"10-20 év"},{key:"years_of_experience.10-20.short",t:"10~20 év"},{key:"years_of_experience.more-than-20.long",t:"Több mint 20 év"},{key:"years_of_experience.more-than-20.short",t:">20 év"},{key:"section.javascript-flavors",t:"Nyelvek"},{key:"section.front-end-frameworks",t:"Front-end keretrendszerek"},{key:"section.data-layer",t:"Adat réteg"},{key:"section.back-end-frameworks",t:"Back-end keretrendszerek"},{key:"section.testing",t:"Tesztelés"},{key:"section.mobile-and-desktop",t:"Mobil & Asztali"},{key:"tool.es6",t:"ES6"},{key:"tool.es6.description",t:"Az ES6 és utódai a JavaScript új generációja, általában Babel segítségével fordítva.\n"},{key:"tool.angular",t:"Angular"},{key:"tool.angular.description",t:'Az Angular egy TypeScript-en alapuló, nyílt forráskódú front-end web alkalmazás platform.\nFigyelem! Az idei évtől nem teszünk különbséget az Angular és Angular.js között, míg az adatok\na 2016-os és 2017-es felmérésben az Angular-re (a.k.a "Angular 2") vontakoznak.\n'},{key:"tool.apollo",t:"Apollo"},{key:"tool.apollo.description",t:"Egy teljes értékű, használatra kész cachelő GraphQL kliens, akármilyen UI keretrendszerhez és GraphQL szerverhez.\n"},{key:"tool.native-apps",t:"Native Apps"},{key:"tool.native-apps.description",t:"A legtöbb mobil és asztali alkalmazás még mindig natív nyelvekkel (mint Java, Kotlin, Objective-C, vagy Swift) készülnek.\n"},{key:"tool.phonegap-cordova",t:"Cordova"},{key:"tool.phonegap-cordova.description",t:"Az Apache Cordova egy mobil alkalmazás fejlesztői keretrendszer.\n"},{key:"tool.vanilla-js",t:"Vanília JS"},{key:"tool.extjs",t:"Ext JS"},{key:"tool.web-assembly",t:"WebAssembly"},{key:"tool.firebase",t:"Firebase"},{key:"tool.dotnet",t:".NET"},{key:"tool.rails",t:"Rails"},{key:"tool.php",t:"PHP"},{key:"tool.python",t:"Python"},{key:"tool.laravel",t:"Laravel"},{key:"tool.ruby",t:"Ruby"},{key:"tool.elixir",t:"Elixir"},{key:"tool.django",t:"Django"},{key:"tool.golang",t:"Go"},{key:"tool.C#",t:"C#"},{key:"tool.java",t:"Java"},{key:"tool.rust",t:"Rust"},{key:"tool.haskell",t:"Haskell"},{key:"tool.scala",t:"Scala"},{key:"tool.selenium",t:"Selenium"},{key:"tool.elm-test",t:"elm-test"},{key:"tool.flutter",t:"Flutter"},{key:"tool.pwa",t:"PWA"},{key:"tool.weex",t:"weex"},{key:"tool.xamarin",t:"xamarin"},{key:"tool.appcelerator",t:"Appcelerator"},{key:"tool.c-cplusplus",t:"C/C++"},{key:"tool.swift",t:"Swift"},{key:"tool.objective-c",t:"Objective-C"},{key:"tool.ocaml",t:"OCaml"},{key:"tool.parcel",t:"Parcel"},{key:"tool.make",t:"Make"},{key:"tool.lodash",t:"lodash"},{key:"tool.moment",t:"moment"},{key:"tool.underscore",t:"underscore"},{key:"tool.date-fns",t:"Date-fns"},{key:"tool.ramda",t:"Ramda"},{key:"tool.luxon",t:"luxon"},{key:"tool.visual-studio",t:"VS Code"},{key:"tool.sublime-text",t:"Sublime Text"},{key:"tool.webstorm",t:"WebStorm"},{key:"tool.atom",t:"Atom"},{key:"tool.emacs",t:"emacs"},{key:"tool.intellij",t:"IntelliJ"},{key:"tool.phpstorm",t:"PhpStorm"},{key:"tool.notepad++",t:"notepad++"},{key:"tool.brackets",t:"Brackets"},{key:"tool.nano",t:"nano"},{key:"tool.pycharm",t:"PyCharm"},{key:"tool.vim",t:"Vim"},{key:"tool.service-workers",t:"Service Worker-ök"},{key:"tool.webrtc",t:"WebRTC"},{key:"tool.webvr",t:"WebVR"},{key:"tool.webgl",t:"WebGL"},{key:"tool.web-animations-api",t:"Web Animáció API"},{key:"tool.web-audio-api",t:"Web Audio API"},{key:"tool.web-speech-api",t:"Web Beszéd API"},{key:"tool.dart",t:"Dart"},{key:"tool.kotlin",t:"Kotlin"},{key:"tool.haxe",t:"Haxe"},{key:"page.introduction",t:"Bemutatkozás"},{key:"page.demographics",t:"Társadalom"},{key:"page.connections",t:"Kapcsolatok"},{key:"page.section_overview",t:"${section} - Összesítés"},{key:"page.section_tool",t:"${section} - ${tool}"},{key:"page.section_overview.short",t:"Összesítés"},{key:"page.section_other_tools",t:"${section} – Egyéb eszközök"},{key:"page.section_other_tools.short",t:"Egyéb eszközök"},{key:"page.section_conclusion",t:"${section} - Következtetések"},{key:"page.section_conclusion.short",t:"Következtetések"},{key:"page.other-tools",t:"Egyéb eszközök"},{key:"page.opinions",t:"Vélemények"},{key:"page.awards",t:"Díjak 🏆"},{key:"page.conclusion",t:"Következtetés"},{key:"page.support",t:"Támogass minket"},{key:"block.title.participation-by-country",t:"Résztvevők száma országonként"},{key:"block.description.participation-by-country",t:"Felmérésben résztvett országok."},{key:"block.title.salaries",t:"Éves fizetések"},{key:"block.description.salaries",t:"Fizetések éves lebontása"},{key:"block.title.salary-per-country",t:"Átlagos fizetés országonként"},{key:"block.description.salary-per-country",t:"Átlagos fizetés országonként."},{key:"block.title.years-of-experience",t:"Tapasztalat"},{key:"block.description.years-of-experience",t:"Tapasztalat éves lebontása."},{key:"block.title.company-size",t:"Cégméret"},{key:"block.description.company-size",t:"Cégméret lebontása."},{key:"block.title.gender-breakdown",t:"Nemek lebontása"},{key:"block.title.source-breakdown",t:"Források szerinti megoszlás"},{key:"block.description.gender-breakdown",t:"Nemek szerinti megoszlás"},{key:"block.title.connections",t:"Kapcsolatok technológiák között"},{key:"block.description.connections",t:"Kapcsolatok minden könyvtár & technológia között."},{key:"block.title.overview",t:"Összesített eredmények"},{key:"block.description.overview",t:"${section} összesített eredménye.\n"},{key:"block.title.results-over-time",t:"${tool} népszerűségének változása"},{key:"block.description.results-over-time",t:"Hogyan változott a(z) ${tool} népszerűsége az idő elteltével."},{key:"block.results-over-time.empty",t:"Sajnáljuk, de nem áll rendelkezésre elég adat, hogy ennek\na könyvtárnak a népszerűségi változását meg tudjuk jeleníteni.\n"},{key:"block.title.happiness",t:"Összesített elégedettség"},{key:"block.description.happiness",t:"Egy listán 1-től (nagyon nem elégedett) 5-ig (nagyon elégedett),\nmennyire elégedettek a fejlesztők ennek a kategóriának a\njelenlegi állásával?\n"},{key:"block.title.tools-salary-range",t:"Éves fizetés lebontása"},{key:"block.description.tools-salary-range",t:'Azon fejlesztők éves fizetésének lebontása, akik a "használta, használná megint" választ adták\naz egyes nyelvekhez.\n\nMinden cella a válaszadók adott százalékát reprezentálja egy bizonyos fizetési szegmensben,\na sötétebb szín több embert jelent.\n'},{key:"block.title.tools-company-size",t:"Cégméret lebontása"},{key:"block.description.tools-company-size",t:'Azon fejlesztők cégméretének lebontása, akik a "használta, használná megint" választ adták\naz egyes nyelvekhez.\n\nMinden cella a válaszadók adott százalékát reprezentálja egy bizonyos fizetési szegmensben,\na sötétebb szín több embert jelent.\n'},{key:"block.title.tools-years-of-experience",t:"Tapasztalat lebontása"},{key:"block.description.tools-years-of-experience",t:'Azon fejlesztők években mért tapasztalatának lebontása, akik a "használta, használná megint" választ adták\naz egyes nyelvekhez.\n\nMinden cella a válaszadók adott százalékát reprezentálja egy bizonyos fizetési szegmensben,\na sötétebb szín több embert jelent.\n'},{key:"block.title.likes",t:"A(z) ${tool} leginkább kedvelt aspektusai"},{key:"block.description.likes",t:'A(z) ${tool} leginkább kedvelt aspektusai azon fejlesztők között, akik "használta, használná megint"-t válaszoltak.\n'},{key:"block.title.dislikes",t:"A(z) ${tool} legkevésbé kedvelt aspektusai"},{key:"block.description.dislikes",t:'A(z) ${tool} legkevésbé kedvelt aspektusai azon fejlesztők között, akik "használta, *nem* használná megint"-t válaszoltak.\n'},{key:"block.title.tool-pairing",t:"A(z) ${tool} melyik eszközökkel van együtt használva?"},{key:"block.description.tool-pairing",t:"Mely könyvtárak vannak legnagyobb eséllyel együtt használva a(z) ${tool}-val/vel azon fejlesztők között, akik “használta, használta megint”-t válaszoltak. A sötétebb szín erősebb kapcsolatot jelent.\n"},{key:"block.title.tool-usage-by-country",t:"${tool} használat országok szerint"},{key:"block.description.tool-usage-by-country",t:"Átlagosan, a válaszadók **${percentage}%**-a használta a(z) **${tool}**-t és boldogan használná megint.\n\n\nPirossal jelöltük azokat az átlag fölötti országokat, az alattiakat pedig kékkel. (A kevesebb mint 20 válaszadóval rendelkező nem lettek feltüntetve)\n"},{key:"block.tool-usage-by-country.legend",t:"${tool} boldog felhasználóinak százaléka:\n"},{key:"block.title.other-tools",t:"Egyéb könyvtárak"},{key:"block.description.other-tools",t:"Egyéb olyan válaszok, amiket a válaszadók adtak, említés száma szerint rangsorolva.\n"},{key:"block.title.quadrants",t:"Negyed diagram"},{key:"block.description.quadrants",t:"Ez a diagram minden technológia **elégedettségi arányát** mutatja a **teljes felhasználás** tekintetében.\n\nEmellett azon technológiák, amiknek az **érdeklődési aránya** (azon kitöltők akik még nem használják, de szeretnék megtanulni) 50% feletti, tűzzel vannak megjelölve.\n"},{key:"block.title.other_languages",t:"Egyéb nyelvek"},{key:"block.description.other_languages",t:"Egyéb nyelvek, említés száma szerint rangsorolva"},{key:"block.title.browser_apis",t:"Böngésző API-k"},{key:"block.description.browser_apis",t:"Böngésző API-k, említés száma szerint rangsorolva."},{key:"block.title.build_tools",t:"Build eszközök"},{key:"block.description.build_tools",t:"Build eszközök, említés száma szerint rangsorolva."},{key:"block.title.utility_libraries",t:"Segédkönyvtárak"},{key:"block.description.utility_libraries",t:"Segédkönyvtárak, említés száma szerint rangsorolva."},{key:"block.title.text_editors",t:"Szövegszerkesztők"},{key:"block.description.text_editors",t:"Szövegszerkesztők, említés száma szerint rangsorolva."},{key:"block.title.recommended_resources",t:"Ajánlott források"},{key:"block.title.opinion-js_moving_in_right_direction",t:"A JavaScript a megfelelő irányban halad"},{key:"block.description.opinion-js_moving_in_right_direction",t:"A JavaScript a megfelelő irányban halad."},{key:"block.title.opinion-building_js_apps_overly_complex",t:"JavaScript alkalmazásokat jelenleg túl bonyolult készíteni"},{key:"block.description.opinion-building_js_apps_overly_complex",t:"JavaScript alkalmazásokat jelenleg túl bonyolult készíteni."},{key:"block.title.opinion-js_over_used_online",t:"A JavaScript túl van használva online"},{key:"block.description.opinion-js_over_used_online",t:"A JavaScript túl van használva online ."},{key:"block.title.opinion-enjoy_building_js_apps",t:"Szeretek JavaScript alkalmazásokat készíteni"},{key:"block.description.opinion-enjoy_building_js_apps",t:"Szeretek JavaScript alkalmazásokat készíteni."},{key:"block.title.opinion-would_like_js_to_be_main_lang",t:"Szeretném, ha a JavaScript lenne a fő programozási nyelvem"},{key:"block.description.opinion-would_like_js_to_be_main_lang",t:"Szeretném, ha a JavaScript lenne a fő programozási nyelvem."},{key:"block.title.opinion-js_ecosystem_changing_to_fast",t:"A JavaScript ökoszisztéma túl gyorsan változik"},{key:"block.description.opinion-js_ecosystem_changing_to_fast",t:"A JavaScript ökoszisztéma túl gyorsan változik."},{key:"block.title.opinion-survey_too_long",t:"Ez a felmérés túl hosszú!"},{key:"block.description.opinion-survey_too_long",t:"Ez a felmérés túl hosszú!"},{key:"reason.elegant_programming_style_patterns.long",t:"⚙️ Elegáns programozói stílus & minták"},{key:"reason.elegant_programming_style_patterns.short",t:"⚙️ Programozói stílus"},{key:"reason.robust_less_error_prone_code.long",t:"🐞 Robosztus, hibára kevésbé hajlamos kód"},{key:"reason.robust_less_error_prone_code.short",t:"🐞 Robosztus kód"},{key:"reason.rich_package_ecosystem.long",t:"🎁 Gazdag kiegészítő ökoszisztéma"},{key:"reason.rich_package_ecosystem.short",t:"🎁 Kiegészítő ökoszisztéma"},{key:"reason.fast_performance.long",t:"⚡ Gyors teljesítmény"},{key:"reason.fast_performance.short",t:"⚡ Gyors teljesítmény"},{key:"reason.well_established_option.long",t:"🏛️ Jól megalapozott alternatíva"},{key:"reason.well_established_option.short",t:"🏛️ Jól megalapozott"},{key:"reason.easy_learning_curve.long",t:"👶 Egyszerű megtanulni"},{key:"reason.easy_learning_curve.short",t:"👶 Könnyű elsajátítani"},{key:"reason.powerful_developer_tooling.long",t:"🔧 Erőteljes fejlesztői eszköztár"},{key:"reason.powerful_developer_tooling.short",t:"🔧 Eszközök"},{key:"reason.good_documentation.long",t:"📖 Jól dokumentált"},{key:"reason.good_documentation.short",t:"📖 Dokmentáció"},{key:"reason.backed_by_a_great_team_company.long",t:"👫 Nagyszerű csapat/cég támogatja"},{key:"reason.backed_by_a_great_team_company.short",t:"👫 Csapat/cég"},{key:"reason.simple_lightweight.long",t:"🎈 Egyszerű & pehelysúlyú"},{key:"reason.simple_lightweight.short",t:"🎈 Pehelysúlyú"},{key:"reason.growing_momentum_popularity.long",t:"📉 Növekvő lendület/népszerűség"},{key:"reason.growing_momentum_popularity.short",t:"📉 Lendület"},{key:"reason.full_featured_powerful.long",t:"🕹️ Teljesértékű & erőteljes"},{key:"reason.full_featured_powerful.short",t:"🕹️ Teljesértékű"},{key:"reason.stable_backwards_compatible.long",t:"⚖️ Stabil és visszafelé kompatibilis"},{key:"reason.stable_backwards_compatible.short",t:"⚖️ Stabilitás"},{key:"reason.clumsy_programming_style.long",t:"⚙️ Nehézkes programozói stílus"},{key:"reason.clumsy_programming_style.short",t:"⚙️ Nehézkes"},{key:"reason.buggy_error_prone_code.long",t:"🐞 Bugos, hibára hajlamos kód"},{key:"reason.buggy_error_prone_code.short",t:"🐞 Bugos kód"},{key:"reason.poor_performance.long",t:"⚡ Gyenge teljesítmény"},{key:"reason.poor_performance.short",t:"⚡ Gyenge teljesítmény"},{key:"reason.small_package_ecosystem.long",t:"🎁 Kevés kiegészítő ökoszisztéma"},{key:"reason.small_package_ecosystem.short",t:"🎁 Kevés kiegészítő"},{key:"reason.new_untested_option.long",t:"🏛️ Új, még nem tesztelt alternatíva"},{key:"reason.new_untested_option.short",t:"🏛️ Új, még nem tesztelt"},{key:"reason.hard_learning_curve.long",t:"👶 Nehezen tanulható"},{key:"reason.hard_learning_curve.short",t:"👶 Nehéz elsajátítani"},{key:"reason.lacking_developer_tooling.long",t:"🔧 Hiányos fejlesztői eszközök"},{key:"reason.lacking_developer_tooling.short",t:"🔧 Hiányos eszköztár"},{key:"reason.bad_documentation.long",t:"📖 Rossz dokumentáció"},{key:"reason.bad_documentation.short",t:"📖 Rossz dokumentáció"},{key:"reason.concerns_about_the_team_company.long",t:"👫 A csapattal/céggel kapcsolatos aggodalmak"},{key:"reason.concerns_about_the_team_company.short",t:"👫 Rossz csapat/cég"},{key:"reason.bloated_complex.long",t:"🎈 Felfújt & komplex"},{key:"reason.bloated_complex.short",t:"🎈 Felfújt & komplex"},{key:"reason.diminishing_momentum_popularity.long",t:"📉 Csökkenő momentum/népszerűség"},{key:"reason.diminishing_momentum_popularity.short",t:"📉 Alacsony momentum"},{key:"reason.limited_lacking_in_features.long",t:"🕹️ Korlátozott & hiányos funkciók"},{key:"reason.limited_lacking_in_features.short",t:"🕹️ Korlátozott"},{key:"reason.fast_changing_breaks_often.long",t:"⚖️ Gyorsan változik & gyakran elromlik"},{key:"reason.fast_changing_breaks_often.short",t:"⚖️ Gyorsan változik"},{key:"reason.other.long",t:"Egyéb"},{key:"reason.other.short",t:"Egyéb"},{key:"quadrant.satisfaction_legend",t:"Elégedettség %"},{key:"quadrant.users_legend",t:"Felhasználók"},{key:"quadrant.assess.label",t:"Mérd fel"},{key:"quadrant.assess.description",t:"Kevesen használják, de magas elégedettséggel.\nTechnológiák amiket érdemes nyomon követned.\n"},{key:"quadrant.adopt.label",t:"Használd"},{key:"quadrant.adopt.description",t:"Sokan használják magas elégedettséggel. Nyugodtan adoptálható technológiák.\n"},{key:"quadrant.avoid.label",t:"Kerüld el"},{key:"quadrant.avoid.description",t:"Kevesen használják, alacsony elégedettséggel.\nTechnológiák amiket jelenleg érdemes elkerülni.\n"},{key:"quadrant.analyze.label",t:"Elemezd"},{key:"quadrant.analyze.description",t:"Sokan használják, alacsony elégedettséggel.\nHa használod ezeket a technológiákat, érdemes lehet más alternatívákat keresned.\n"},{key:"block.title.highest_satisfaction",t:"Legmagasabb elégedettség"},{key:"block.description.highest_satisfaction",t:"Ezt a díjat a legmagasabb százalékos elégedettséget elért könyvtár kapja.\n"},{key:"award.highest_satisfaction.comment",t:"Azzal, hogy a felhasználók **${tools[0].percentage}%**-a újra használná,\na(z) ${tools[0].label} bebizonyította, hogy nem viccel.\n"},{key:"award.highest_satisfaction.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_interest",t:"Legmagasabb érdeklődés"},{key:"block.description.highest_interest",t:"Ezt a díjat az a technológia kapja, amit a fejlesztők leginkább szeretnének megtanulni.\n"},{key:"award.highest_interest.comment",t:"Azon fejlesztőknek a **${tools[0].percentage}%**-a aki hallott a\n${tools[0].label}-ról/ről, szeretné megtanulni.\nEz elég komoly érdeklődés!\n"},{key:"award.highest_interest.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_usage",t:"Leghasználtabb"},{key:"block.description.highest_usage",t:"Ezt a díjat a legnagyobb felhasználóbázissal rendelkező technológia kapja.\n"},{key:"award.highest_usage.comment",t:"Összesen **${tools[0].count}** felhasználóval, a(z) ${tools[0].label}\nlett az év leghasználtabb könyvtára.\n"},{key:"award.highest_usage.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.most_mentioned",t:"Legtöbbet említett"},{key:"block.description.most_mentioned",t:'Ezt a díjat az a könyvtár kapja, amit a legtöbben említettek "egyéb könyvtárak" címszó alatt.\n'},{key:"award.most_mentioned.comment",t:"A(z) ${tools[0].label} **${tools[0].count}** említést gyűjtött össze, ezzel messze\na legtöbbet szabad formában beküldött válasz lett.\n"},{key:"award.most_mentioned.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.prediction",t:"Előrejelzés díj"},{key:"block.description.prediction",t:"Ezt a díjat olyan feltörekvő technológia érdemelte ki, ami talán egyzer átveszi a vezetést… Vagy mégsem?\n"},{key:"award.prediction.comment",t:"A Facebook csapata eddig kettőből kétszer betalált a Reacttel és a GraphQL-el.\nVajon a Reason a következő?\n"},{key:"award.prediction.runner_up",t:"${tool.label}"},{key:"block.title.special",t:"Különdíj"},{key:"block.description.special",t:"Ezt a díjat az a technológia kapja, amit egyszerűen megimádtunk ebben az évben.\n"},{key:"award.special.comment",t:"A(z) ${tools[0].label} idén a vezető JavaScript szövegszerkesztővé vált, és egyértelműen látjuk, hogy miért!\n"},{key:"award.special.runner_up",t:"${tool.label}"},{key:"share.site.title",t:"Fedezd fel a StateOf JavaScript 2018 eredményeit"},{key:"share.site.twitter_text",t:"Fedezd fel a State Of JavaScript 2018 eredményeit ${link} #StateOfJS"},{key:"share.site.subject",t:"A State Of JavaScript felmérés eredményei"},{key:"share.site.body",t:"Íme néhány érdekes JavaScript felmérés eredmény: ${link}"},{key:"share.block.twitter_text",t:"#StateOfJS 2018: ${title} ${link}"},{key:"share.block.subject",t:"State Of JavaScript felmérés eredményei"},{key:"share.block.body",t:"Íme néhány érdekes JavaScript felmérés eredmény (${title}): ${link}"}]}},{node:{locale:"es-ES",translations:[{key:"start",t:"Iniciar"},{key:"share",t:"Compartir"},{key:"average",t:"Promedio"},{key:"conclusion",t:"Conclusión"},{key:"tools_salary_range_average",t:"Salario promedio"},{key:"tools_company_size_average",t:"Tamaño promedio de la empresa"},{key:"tools_years_of_experience_average",t:"Promedio de años de experiencia"},{key:"users_percentage",t:"porcentaje de usuarios"},{key:"salary_range_axis_legend",t:"rango salarial"},{key:"years_of_experience_axis_legend",t:"años de experiencia"},{key:"company_size_axis_legend",t:"número de empleados"},{key:"percents_display_mode",t:"Porcentaje"},{key:"counts_display_mode",t:"Conteo"},{key:"awards_runner_ups",t:"Finalistas"},{key:"tool_homepage",t:"Página principal"},{key:"from_to_short",t:"${from} a ${to}"},{key:"users_count",t:"${count} usuarios"},{key:"percentage_of_respondents",t:"${percentage} de los encuestados"},{key:"partners.premium_partners",t:"Nuestros Socios Premium 2018"},{key:"partners.become_partner",t:"Conviértete en un socio"},{key:"partners.thanks",t:'Gracias a nuestros socios por apoyar este proyecto.\n<a href="/support">Aprender más</a> sobre cómo apoyar The State of JS.\n'},{key:"opinions.legends.never_heard",t:"Nunca oí hablar de eso"},{key:"opinions.legends_short.never_heard",t:"Nunca oí de eso"},{key:"opinions.legends.not_interested",t:"He oído de eso, y no estoy interesado"},{key:"opinions.legends_short.not_interested",t:"Oí de eso, no me interesa"},{key:"opinions.legends.interested",t:"He oído de eso, y me interesaría aprender a usarlo"},{key:"opinions.legends_short.interested",t:"Oí de eso, me gustaría aprender"},{key:"opinions.legends.would_use",t:"Lo he usado antes, y lo usaría de nuevo"},{key:"opinions.legends_short.would_use",t:"Lo usé, y lo volvería a usar"},{key:"opinions.legends.would_not_use",t:"Lo usé, y no lo volvería a usar"},{key:"opinions.legends_short.would_not_use",t:"Lo usé, no lo usaré de nuevo"},{key:"opinion_scale.0",t:"Muy en desacuerdo"},{key:"opinion_scale.1",t:"En desacuerdo"},{key:"opinion_scale.2",t:"Neutral"},{key:"opinion_scale.3",t:"De acuerdo"},{key:"opinion_scale.4",t:"Totalmente de acuerdo"},{key:"salary_range.work-for-free.long",t:"Trabajo gratis"},{key:"salary_range.work-for-free.short",t:"trabajo gratis"},{key:"salary_range.0-10.long",t:"De $0 a $10.000 dólares"},{key:"salary_range.0-10.short",t:"$0-$10 mil"},{key:"salary_range.10-30.long",t:"De $10.000 a $30.000 dólares"},{key:"salary_range.10-30.short",t:"$10-$30 mil"},{key:"salary_range.30-50.long",t:"De $30.000 a $50.000 dólares"},{key:"salary_range.30-50.short",t:"$30-$50 mil"},{key:"salary_range.50-100.long",t:"De $50.000 a $100.000 dólares"},{key:"salary_range.50-100.short",t:"$50-$100 mil"},{key:"salary_range.100-200.long",t:"De $100.000 a $200.000 dólares"},{key:"salary_range.100-200.short",t:"$100-$200 mil"},{key:"salary_range.more-than-200.long",t:"Más de $200.000 dólares"},{key:"salary_range.more-than-200.short",t:"+ de $200 mil"},{key:"company_size.1.long",t:"Un empleado"},{key:"company_size.1.short",t:"uno"},{key:"company_size.1-5.long",t:"1 a 5 empleados"},{key:"company_size.1-5.short",t:"1~5"},{key:"company_size.5-10.long",t:"5 a 10 empleados"},{key:"company_size.5-10.short",t:"5~10"},{key:"company_size.10-20.long",t:"10 a 20 empleados"},{key:"company_size.10-20.short",t:"10~20"},{key:"company_size.20-50.long",t:"20 a 50 empleados"},{key:"company_size.20-50.short",t:"20~50"},{key:"company_size.50-100.long",t:"50 a 100 empleados"},{key:"company_size.50-100.short",t:"50~100"},{key:"company_size.100-1000.long",t:"100 a 1.000 empleados"},{key:"company_size.100-1000.short",t:"100~1000"},{key:"company_size.more-than-1000.long",t:"Más de 1.000 empleados"},{key:"company_size.more-than-1000.short",t:"1000+"},{key:"years_of_experience.less-than-1.long",t:"Menos de un año"},{key:"years_of_experience.less-than-1.short",t:"<1 año"},{key:"years_of_experience.1-2.long",t:"1 a 2 años"},{key:"years_of_experience.1-2.short",t:"1~2 años"},{key:"years_of_experience.2-5.long",t:"2 a 5 años"},{key:"years_of_experience.2-5.short",t:"2~5 años"},{key:"years_of_experience.5-10.long",t:"5 a 10 años"},{key:"years_of_experience.5-10.short",t:"5~10 años"},{key:"years_of_experience.10-20.long",t:"10 a 20 años"},{key:"years_of_experience.10-20.short",t:"10~20 años"},{key:"years_of_experience.more-than-20.long",t:"Más de 20 años"},{key:"years_of_experience.more-than-20.short",t:">20 años"},{key:"section.javascript-flavors",t:"Variantes de JavaScript"},{key:"section.front-end-frameworks",t:"Frameworks de Front-end"},{key:"section.data-layer",t:"Capa de Datos"},{key:"section.back-end-frameworks",t:"Frameworks de Back-end"},{key:"section.testing",t:"Testing"},{key:"section.mobile-and-desktop",t:"Mobile & Desktop"},{key:"tool.es6",t:"ES6"},{key:"tool.es6.description",t:"ES6 y sus descendientes son las versiones más nuevas de JavaScript, usualmente ejecutadas a través de Babel.\n"},{key:"tool.angular",t:"Angular"},{key:"tool.angular.description",t:'Angular es una plataforma de aplicaciones web orientada al front-end, de código abierto, basada en TypeScript.\nVale aclarar que desde este año no vamos a hacer más una distinción entre Angular y Angular.js; sin embargo,\nlos puntos de datos para 2016 y 2017 corresponden a Angular (también conocido como "Angular 2").\n'},{key:"tool.apollo",t:"Apollo"},{key:"tool.apollo.description",t:"Un cliente de GraphQL, con almacenamiento en caché, listo para producción y con todas las funciones\npara todo framework de interfaz de usuario y servidor de GraphQL.\n"},{key:"tool.native-apps",t:"Native Apps"},{key:"tool.native-apps.description",t:"La mayoría de las aplicaciones móviles y de escritorio todavía se construyen con lenguajes nativos\ncomo Java, Kotlin, Objective-C o Swift.\n"},{key:"tool.phonegap-cordova",t:"Cordova"},{key:"tool.phonegap-cordova.description",t:"Apache Cordova es un framework para desarrollar aplicaciones móviles.\n"},{key:"tool.vanilla-js",t:"Vanilla JS"},{key:"tool.extjs",t:"Ext JS"},{key:"tool.web-assembly",t:"WebAssembly"},{key:"tool.firebase",t:"Firebase"},{key:"tool.dotnet",t:".NET"},{key:"tool.rails",t:"Rails"},{key:"tool.php",t:"PHP"},{key:"tool.python",t:"Python"},{key:"tool.laravel",t:"Laravel"},{key:"tool.ruby",t:"Ruby"},{key:"tool.elixir",t:"Elixir"},{key:"tool.django",t:"Django"},{key:"tool.golang",t:"Go"},{key:"tool.C#",t:"C#"},{key:"tool.java",t:"Java"},{key:"tool.rust",t:"Rust"},{key:"tool.haskell",t:"Haskell"},{key:"tool.scala",t:"Scala"},{key:"tool.selenium",t:"Selenium"},{key:"tool.elm-test",t:"elm-test"},{key:"tool.flutter",t:"Flutter"},{key:"tool.pwa",t:"Progressive Web Apps"},{key:"tool.weex",t:"weex"},{key:"tool.xamarin",t:"xamarin"},{key:"tool.appcelerator",t:"Appcelerator"},{key:"tool.c-cplusplus",t:"C/C++"},{key:"tool.swift",t:"Swift"},{key:"tool.objective-c",t:"Objective-C"},{key:"tool.ocaml",t:"OCaml"},{key:"tool.parcel",t:"Parcel"},{key:"tool.make",t:"Make"},{key:"tool.lodash",t:"lodash"},{key:"tool.moment",t:"moment"},{key:"tool.underscore",t:"underscore"},{key:"tool.date-fns",t:"Date-fns"},{key:"tool.ramda",t:"Ramda"},{key:"tool.luxon",t:"luxon"},{key:"tool.visual-studio",t:"VS Code"},{key:"tool.sublime-text",t:"Sublime Text"},{key:"tool.webstorm",t:"WebStorm"},{key:"tool.atom",t:"Atom"},{key:"tool.emacs",t:"emacs"},{key:"tool.intellij",t:"IntelliJ"},{key:"tool.phpstorm",t:"PhpStorm"},{key:"tool.notepad++",t:"notepad++"},{key:"tool.brackets",t:"Brackets"},{key:"tool.nano",t:"nano"},{key:"tool.pycharm",t:"PyCharm"},{key:"tool.vim",t:"Vim"},{key:"tool.service-workers",t:"Service Workers"},{key:"tool.webrtc",t:"WebRTC"},{key:"tool.webvr",t:"WebVR"},{key:"tool.webgl",t:"WebGL"},{key:"tool.web-animations-api",t:"Web Animations API"},{key:"tool.web-audio-api",t:"Web Audio API"},{key:"tool.web-speech-api",t:"Web Speech API"},{key:"page.introduction",t:"Introducción"},{key:"page.demographics",t:"Demográfica"},{key:"page.connections",t:"Conexiones"},{key:"page.section_overview",t:"${section} - Generalidades"},{key:"page.section_tool",t:"${section} - ${tool}"},{key:"page.section_overview.short",t:"Generalidades"},{key:"page.section_other_tools",t:"${section} – Otras Librerías"},{key:"page.section_other_tools.short",t:"Otras Librerías"},{key:"page.section_conclusion",t:"${section} - Conclusión"},{key:"page.section_conclusion.short",t:"Conclusión"},{key:"page.other-tools",t:"Otras Herramientas"},{key:"page.opinions",t:"Opiniones"},{key:"page.awards",t:"Premios 🏆"},{key:"page.conclusion",t:"Conclusión"},{key:"page.support",t:"¡Danos tu apoyo!"},{key:"block.title.participation-by-country",t:"Participación por País"},{key:"block.description.participation-by-country",t:"Participantes de la encuesta, por país."},{key:"block.title.salaries",t:"Salarios"},{key:"block.description.salaries",t:"Segmentación por rangos de salario."},{key:"block.title.salary-per-country",t:"Salario Promedio por País"},{key:"block.description.salary-per-country",t:"Salario Promedio por País."},{key:"block.title.years-of-experience",t:"Años de Experiencia"},{key:"block.description.years-of-experience",t:"Segmentación por años de experiencia."},{key:"block.title.company-size",t:"Tamaño de organización"},{key:"block.description.company-size",t:"Segmentación por tamaño de organización."},{key:"block.title.gender-breakdown",t:"Segmentación por género"},{key:"block.title.source-breakdown",t:"Segmentación por fuente"},{key:"block.description.gender-breakdown",t:"Segmentación por género."},{key:"block.title.connections",t:"Conexiones entre Tecnologías"},{key:"block.description.connections",t:"Cómo se relacionan todas las librerías y tecnologías."},{key:"block.title.overview",t:"Resultados generales"},{key:"block.description.overview",t:"Resultados generales - ${section}\n"},{key:"block.title.results-over-time",t:"Popularidad de ${tool} en el transcurso del tiempo"},{key:"block.description.results-over-time",t:"Evolución de la popularidad de ${tool} en el transcurso del tiempo."},{key:"block.results-over-time.empty",t:"Lo sentimos, pero no tenemos suficientes datos\npara mostrar la evolución de la popularidad de esta\nlibrería en el transcurso del tiempo.\n"},{key:"block.title.happiness",t:"Satisfacción General"},{key:"block.description.happiness",t:"En una escala de uno (mucha insatisfacción) a cinco (mucha satisfación), ¿qué tanta\nsatisfacción siente la comunidad de desarrollo con el estado general y actual\nde esta categoría?\n"},{key:"block.title.tools-salary-range",t:"Segmentación por Salario"},{key:"block.description.tools-salary-range",t:'Segmentación por salario para personas que eligieron "lo usé, lo usaría de nuevo"\npara una opción dada.\n\n\nCada celda muestra el porcentaje de personas en un rango dado de salarios. Los colores\nmás oscuros representan el mayor uso.\n'},{key:"block.title.tools-company-size",t:"Segmentación por Tamaño de Organización"},{key:"block.description.tools-company-size",t:'Segmentación por tamaño de organización para personas que eligieron "lo usé, lo usaría de nuevo"\npara una opción dada.\n\n\nCada celda muestra el porcentaje de personas en un rango dado de tamaños de organización. Los colores\nmás oscuros representan el mayor uso.\n'},{key:"block.title.tools-years-of-experience",t:"Segmentación por Años de Experiencia"},{key:"block.description.tools-years-of-experience",t:'Segmentación por años de experiencia para personas que eligieron "lo usé, lo usaría de nuevo"\npara una opción dada.\n\n\nCada celda muestra el porcentaje de personas en un rango dado de tamaños de experiencia. Los colores\nmás oscuros representan el mayor uso.\n'},{key:"block.title.likes",t:"Características más favorecidas de ${tool}"},{key:"block.description.likes",t:'Las características que más les gustan de ${tool} a las personas que eligieron "lo usé, lo usaría de nuevo".\n'},{key:"block.title.dislikes",t:"Características menos favorecidas de ${tool}"},{key:"block.description.dislikes",t:'Las características que menos les gustan de ${tool} a las personas que eligieron "lo usé y *no* volvería a usarlo".\n'},{key:"block.title.tool-pairing",t:"¿Qué herramientas se usan en conjunto con ${tool}?"},{key:"block.description.tool-pairing",t:'Librerías frecuentemente utilizadas en conjunto con ${tool} por las personas que eligieron "lo usé, lo usaría de nuevo".\nLos colores más oscuros representan una correlación más fuerte.\n'},{key:"block.title.tool-usage-by-country",t:"Uso de ${tool} por País"},{key:"block.description.tool-usage-by-country",t:"En promedio, **${percentage}%** de las personas encuestadas han usado **${tool}** y\nvolverían a usarlo.\n\n\nLos países en los que esta proporción es mayor se muestran en rojo; donde es menor, se muestra en azul.\nOmitimos aquellos países con menos de 20 respuestas en total.\n"},{key:"block.tool-usage-by-country.legend",t:"Porcentaje de\npersonas felices con ${tool}:\n"},{key:"block.title.other-tools",t:"Otras Librerías"},{key:"block.description.other-tools",t:"Otras respuestas mencionadas por las personas encuestadas, ordenadas por cantidad de menciones.\n"},{key:"block.title.quadrants",t:"Gráfico de cuadrantes"},{key:"block.description.quadrants",t:'Este gráfico muestra la **proporción de satisfacción** de cada tecnología respecto a su **uso total**.\n\n\nAdicionalmente, las tecnologías que tienen una **proporción de interés**\n(porcentaje de personas que no las usan pero están interesadas en aprender sobre ellas)\nmayor al 50% se muestran "en llamas".\n'},{key:"block.title.other_languages",t:"Otros Lenguajes"},{key:"block.description.other_languages",t:"Otros lenguajes, ordenados por cantidad de menciones."},{key:"block.title.browser_apis",t:"APIs de navegador"},{key:"block.description.browser_apis",t:"APIs de navegador, ordenadas por cantidad de menciones."},{key:"block.title.build_tools",t:"Herramientas de Compilación"},{key:"block.description.build_tools",t:"Herramientas de compilación, ordenadas por cantidad de menciones."},{key:"block.title.utility_libraries",t:"Librerías Utilitarias"},{key:"block.description.utility_libraries",t:"Librerías utilitarias, ordenadas por cantidad de menciones."},{key:"block.title.text_editors",t:"Editores de Texto"},{key:"block.description.text_editors",t:"Editores de texto, ordenados por cantidad de menciones."},{key:"block.title.recommended_resources",t:"Recursos Recomendados"},{key:"block.title.opinion-js_moving_in_right_direction",t:"JavaScript está yendo en la dirección correcta"},{key:"block.description.opinion-js_moving_in_right_direction",t:"JavaScript está yendo en la dirección correcta."},{key:"block.title.opinion-building_js_apps_overly_complex",t:"Desarrollar aplicaciones JavaScript es demasiado complejo hoy en día"},{key:"block.description.opinion-building_js_apps_overly_complex",t:"Desarrollar aplicaciones JavaScript es demasiado complejo hoy en día."},{key:"block.title.opinion-js_over_used_online",t:"JavaScript es sobreutilizado en línea"},{key:"block.description.opinion-js_over_used_online",t:"JavaScript es sobreutilizado en línea."},{key:"block.title.opinion-enjoy_building_js_apps",t:"Disfruto de desarrollar aplicaciones JavaScript."},{key:"block.description.opinion-enjoy_building_js_apps",t:"Disfruto de desarrollar aplicaciones JavaScript."},{key:"block.title.opinion-would_like_js_to_be_main_lang",t:"Me gustaría que JavaScript fuera mi principal lenguaje de programación"},{key:"block.description.opinion-would_like_js_to_be_main_lang",t:"Me gustaría que JavaScript fuera mi principal lenguaje de programación."},{key:"block.title.opinion-js_ecosystem_changing_to_fast",t:"El ecosistema de JavaScript está cambiando demasiado rápido"},{key:"block.description.opinion-js_ecosystem_changing_to_fast",t:"el ecosistema de JavaScript está cambiando demasiado rápido."},{key:"block.title.opinion-survey_too_long",t:"¡Esta encuesta es demasiado extensa!"},{key:"block.description.opinion-survey_too_long",t:"¡Esta encuesta es demasiado extensa!"},{key:"reason.elegant_programming_style_patterns.long",t:"⚙️ Estilos de programación y patrones de desarollo elegantes"},{key:"reason.elegant_programming_style_patterns.short",t:"⚙️ Estilo de programación"},{key:"reason.robust_less_error_prone_code.long",t:"🐞 Código robusto, menos propenso a errores"},{key:"reason.robust_less_error_prone_code.short",t:"🐞 Código robusto"},{key:"reason.rich_package_ecosystem.long",t:"🎁 Ecosistema rico en paquetes"},{key:"reason.rich_package_ecosystem.short",t:"🎁 Ecosistema de paquetes"},{key:"reason.fast_performance.long",t:"⚡ Performance rápida"},{key:"reason.fast_performance.short",t:"⚡ Performance rápida"},{key:"reason.well_established_option.long",t:"🏛️ Alternativa bien establecida"},{key:"reason.well_established_option.short",t:"🏛️ Bien establecido"},{key:"reason.easy_learning_curve.long",t:"👶 Curva de aprendizaje fácil"},{key:"reason.easy_learning_curve.short",t:"👶 Fácil de aprender"},{key:"reason.powerful_developer_tooling.long",t:"🔧 Poderosas herramientas de desarrollo"},{key:"reason.powerful_developer_tooling.short",t:"🔧 Herramientas"},{key:"reason.good_documentation.long",t:"📖 Beuna documentación"},{key:"reason.good_documentation.short",t:"📖 Documentación"},{key:"reason.backed_by_a_great_team_company.long",t:"👫 Respaldada por un gran equipo/organización"},{key:"reason.backed_by_a_great_team_company.short",t:"👫 Eequipo/organización"},{key:"reason.simple_lightweight.long",t:"🎈 Simple y ligera"},{key:"reason.simple_lightweight.short",t:"🎈 Ligera"},{key:"reason.growing_momentum_popularity.long",t:"📉 Creciendo en popularidad e impulso"},{key:"reason.growing_momentum_popularity.short",t:"📉 Impulso"},{key:"reason.full_featured_powerful.long",t:"🕹️ Completa en funcionalidad y poderosa"},{key:"reason.full_featured_powerful.short",t:"🕹️ Completa en funcionalidad"},{key:"reason.stable_backwards_compatible.long",t:"⚖️ Estable y retrocompatible"},{key:"reason.stable_backwards_compatible.short",t:"⚖️ Estabilidad"},{key:"reason.clumsy_programming_style.long",t:"⚙️ Estilo de programación torpe"},{key:"reason.clumsy_programming_style.short",t:"⚙️ Torpe"},{key:"reason.buggy_error_prone_code.long",t:"🐞 Defectuosa, propensa a errores"},{key:"reason.buggy_error_prone_code.short",t:"🐞 Defectuosa"},{key:"reason.poor_performance.long",t:"⚡ Pobre en performance"},{key:"reason.poor_performance.short",t:"⚡ Pobre en performance"},{key:"reason.small_package_ecosystem.long",t:"🎁 Ecosistema pequeño de paquetes"},{key:"reason.small_package_ecosystem.short",t:"🎁 Pocos paquetes"},{key:"reason.new_untested_option.long",t:"🏛️ Nueva alternativa, no probada"},{key:"reason.new_untested_option.short",t:"🏛️ Nueva, no probada"},{key:"reason.hard_learning_curve.long",t:"👶 Curva de aprendizaje difícil"},{key:"reason.hard_learning_curve.short",t:"👶 Difícil de aprender"},{key:"reason.lacking_developer_tooling.long",t:"🔧 Herramientas de desarrollo incompletas"},{key:"reason.lacking_developer_tooling.short",t:"🔧 Herramientas incompletas"},{key:"reason.bad_documentation.long",t:"📖 Mala documentación"},{key:"reason.bad_documentation.short",t:"📖 Mala documentación"},{key:"reason.concerns_about_the_team_company.long",t:"👫 Preocupaciones por el equipo/organización"},{key:"reason.concerns_about_the_team_company.short",t:"👫 Mal equipo/organización"},{key:"reason.bloated_complex.long",t:"🎈 Sobrecargada y compleja"},{key:"reason.bloated_complex.short",t:"🎈 Sovrecargada y compleja"},{key:"reason.diminishing_momentum_popularity.long",t:"📉 Popularidad e impulso decreciendo"},{key:"reason.diminishing_momentum_popularity.short",t:"📉 Perdiendo impulso"},{key:"reason.limited_lacking_in_features.long",t:"🕹️ Limitada, con funcionalidades faltantes"},{key:"reason.limited_lacking_in_features.short",t:"🕹️ Limitada"},{key:"reason.fast_changing_breaks_often.long",t:"⚖️ Cambiante, se rompe con frecuencia"},{key:"reason.fast_changing_breaks_often.short",t:"⚖️ Cambiante"},{key:"reason.other.long",t:"Otras"},{key:"reason.other.short",t:"Otras"},{key:"quadrant.satisfaction_legend",t:"% de satisfacción"},{key:"quadrant.users_legend",t:"Usuarios"},{key:"quadrant.assess.label",t:"Valora"},{key:"quadrant.assess.description",t:"Poco uso, mucha satisfacción.\nTecnologías que vale la pena tener en vista.\n"},{key:"quadrant.adopt.label",t:"Adopta"},{key:"quadrant.adopt.description",t:"Mucho uso, mucha satisfacción.\nTecnologías que es seguro adoptar.\n"},{key:"quadrant.avoid.label",t:"Evita"},{key:"quadrant.avoid.description",t:"Poco uso, poca satisfacción.\nTecnologías que probablemente es mejor evitar por ahora.\n"},{key:"quadrant.analyze.label",t:"Analiza"},{key:"quadrant.analyze.description",t:"Mucho uso, poca satisfacción.\nRe-evalúa estas tecnologías si las estás usando actualmente.\n"},{key:"block.title.highest_satisfaction",t:"Mayor Satisfacción"},{key:"block.description.highest_satisfaction",t:"Otorgado a la librería con el mayor porcentaje de personas satisfechas.\n"},{key:"award.highest_satisfaction.comment",t:"Con un **${tools[0].percentage}%** de personas dispuestas a usarla nuevamente,\n${tools[0].label} demuestra que va en serio.\n"},{key:"award.highest_satisfaction.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_interest",t:"Mayor Interés"},{key:"block.description.highest_interest",t:"Otorgado a la tecnología que las personas están más interesadas en aprender.\n"},{key:"award.highest_interest.comment",t:"**${tools[0].percentage}%** de personas que han oído hablar de \n${tools[0].label} quieren aprender sobre ella.\n¡Eso sí que es interés!\n"},{key:"award.highest_interest.runner_up",t:"${tool.label} ${tool.percentage}%"},{key:"block.title.highest_usage",t:"Mayor Uso"},{key:"block.description.highest_usage",t:"Otorgado a la tecnología con la mayor cantidad de personas utilizándola.\n"},{key:"award.highest_usage.comment",t:"Con **${tools[0].count}** personas, ${tools[0].label}\nes la librería más usada este año.\n"},{key:"award.highest_usage.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.most_mentioned",t:"Mayor Cantidad de Menciones"},{key:"block.description.most_mentioned",t:'Otorgado a la librería más mencionada en la respuesta sobre "otras librerías".\n'},{key:"award.most_mentioned.comment",t:"${tools[0].label} reunió **${tools[0].count}** menciones,\nhaciéndola la respuesta libre más mencionada por lejos.\n"},{key:"award.most_mentioned.runner_up",t:"${tool.label} ${tool.count}"},{key:"block.title.prediction",t:"Premio a la Predicción"},{key:"block.description.prediction",t:"Otorgado a una tecnología creciente que podría volverse relevante... ¿o no?\n"},{key:"award.prediction.comment",t:"El equipo de Facebook ya logró esto con React y GraphQL.\n¿Será Reason la próxima en este camino?\n"},{key:"award.prediction.runner_up",t:"${tool.label}"},{key:"block.title.special",t:"Premio Especial"},{key:"block.description.special",t:"Otorgado a una tecnología de la que nos enamoramos este año.\n"},{key:"award.special.comment",t:"${tools[0].label} se ha convertido en el editor de texto líder para JavaScript,\n¡y claramente se entiende el por qué!\n"},{key:"award.special.runner_up",t:"${tool.label}"},{key:"share.site.title",t:"Descubre los resultados de 2018 de StateOf JavaScript"},{key:"share.site.twitter_text",t:"Descubre los resultados de State Of JavaScript 2018 ${link} #StateOfJS"},{key:"share.site.subject",t:"Resultados de la encuesta State Of JavaScript"},{key:"share.site.body",t:"Aquí hay algunos resultados interesantes de la encuesta de JavaScript: ${link}"},{key:"share.block.twitter_text",t:"#StateOfJS 2018: ${title} ${link}"},{key:"share.block.subject",t:"Resultados de la encuesta State Of JavaScript"},{key:"share.block.body",t:"Aquí hay algunos resultados interesantes de la encuesta de JavaScript (${title}): ${link}"}]}}]}}}},211:function(e,t,o){"use strict";o.r(t);o(33);var a=o(0),n=o.n(a),r=o(4),s=o.n(r),i=o(54),l=o(2),c=function(e){var t=e.location,o=l.default.getResourcesForPathnameSync(t.pathname);return n.a.createElement(i.a,Object.assign({location:t,pageResources:o},o.json))};c.propTypes={location:s.a.shape({pathname:s.a.string.isRequired}).isRequired},t.default=c},212:function(e,t,o){"use strict";o(206),o(25);t.a=function(e,t,o){return e.replace(new RegExp(t,"g"),o)}},214:function(e,t,o){"use strict";var a=o(0),n=o.n(a),r=o(212),s=function(e){return"<p>"+Object(r.a)(e,"\n\n","</p><p>")+"</p>"},i=(o(25),function(e){return e.replace(/\*([^*]+)\*/g,"<b>$1</b>")});t.a=function(e){var t=e.text,o=e.title,a=e.children;return a?n.a.createElement("div",{className:"block block--text"},a):n.a.createElement("div",{className:"block block--text"},o&&n.a.createElement("h3",{className:"Block__Title block__title"},o),t&&n.a.createElement("div",{className:"block__content",dangerouslySetInnerHTML:{__html:i(s(t))}}))}},234:function(e,t,o){var a=o(205);e.exports=function(e){return e==e&&!a(e)}},235:function(e,t){e.exports=function(e,t){return function(o){return null!=o&&o[e]===t&&(void 0!==t||e in Object(o))}}},259:function(e,t,o){"use strict";t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},n=o(0);r(o(172)),r(o(219));function r(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}t.default=function(e,t,o){return function(r){var i=(0,n.createFactory)(r);return function(n){function r(){var e,t;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,r);for(var a=arguments.length,i=Array(a),l=0;l<a;l++)i[l]=arguments[l];return e=t=s(this,n.call.apply(n,[this].concat(i))),t.state={stateValue:"function"==typeof o?o(t.props):o},t.updateStateValue=function(e,o){return t.setState(function(t){var o=t.stateValue;return{stateValue:"function"==typeof e?e(o):e}},o)},s(t,e)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(r,n),r.prototype.render=function(){var o;return i(a({},this.props,((o={})[e]=this.state.stateValue,o[t]=this.updateStateValue,o)))},r}(n.Component)}}},260:function(e,t,o){var a=o(273),n=o(276),r=o(192),s=o(181),i=o(277);e.exports=function(e){return"function"==typeof e?e:null==e?r:"object"==typeof e?s(e)?n(e[0],e[1]):a(e):i(e)}},264:function(e,t){e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},273:function(e,t,o){var a=o(274),n=o(275),r=o(235);e.exports=function(e){var t=n(e);return 1==t.length&&t[0][2]?r(t[0][0],t[0][1]):function(o){return o===e||a(o,e,t)}}},274:function(e,t,o){var a=o(263),n=o(255),r=1,s=2;e.exports=function(e,t,o,i){var l=o.length,c=l,p=!i;if(null==e)return!c;for(e=Object(e);l--;){var u=o[l];if(p&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++l<c;){var d=(u=o[l])[0],y=e[d],k=u[1];if(p&&u[2]){if(void 0===y&&!(d in e))return!1}else{var m=new a;if(i)var g=i(y,k,d,e,t,m);if(!(void 0===g?n(k,y,r|s,i,m):g))return!1}}return!0}},275:function(e,t,o){var a=o(234),n=o(223);e.exports=function(e){for(var t=n(e),o=t.length;o--;){var r=t[o],s=e[r];t[o]=[r,s,a(s)]}return t}},276:function(e,t,o){var a=o(255),n=o(289),r=o(298),s=o(254),i=o(234),l=o(235),c=o(231),p=1,u=2;e.exports=function(e,t){return s(e)&&i(t)?l(c(e),t):function(o){var s=n(o,e);return void 0===s&&s===t?r(o,e):a(t,s,p|u)}}},277:function(e,t,o){var a=o(264),n=o(278),r=o(254),s=o(231);e.exports=function(e){return r(e)?a(s(e)):n(e)}},278:function(e,t,o){var a=o(282);e.exports=function(e){return function(t){return a(t,e)}}},279:function(e,t,o){var a=o(296),n=o(223);e.exports=function(e,t){return e&&a(e,t,n)}},308:function(e,t,o){"use strict";var a=o(6),n=o(56)(!0);a(a.P,"Array",{includes:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}}),o(55)("includes")},309:function(e,t,o){"use strict";var a=o(6),n=o(310);a(a.P+a.F*o(311)("includes"),"String",{includes:function(e){return!!~n(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},310:function(e,t,o){var a=o(81),n=o(26);e.exports=function(e,t,o){if(a(t))throw TypeError("String#"+o+" doesn't accept regex!");return String(n(e))}},311:function(e,t,o){var a=o(3)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(o){try{return t[a]=!1,!"/./"[e](t)}catch(e){}}return!0}},336:function(e,t,o){"use strict";var a=o(7),n=o.n(a),r=o(0),s=o.n(r),i=function(e){function t(t){var o;return(o=e.call(this,t)||this).getHeight=function(e){var t=o.props,a=t.ratio,n=t.maxHeight,r=void 0===n?999999:n;if(e){var s=e*a;return Math.min(s,r)}},o.containerRef=s.a.createRef(),o.state={height:null,width:null},o}n()(t,e);var o=t.prototype;return o.componentDidMount=function(){var e=this.containerRef.current.clientWidth;this.setState({width:e,height:this.getHeight(e)})},o.render=function(){var e=this.props.children,t=this.state.height;return s.a.createElement("div",{className:"Chart__RatioContainer",ref:this.containerRef},t&&s.a.createElement("div",{style:{height:t}},e))},t}(r.Component);t.a=i},396:function(e,t){var o=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return o.test(e)}},397:function(e,t,o){var a=o(262),n=o(362),r=o(294),s=o(283),i=a(function(e,t){var o=s(t,r(i));return n(e,32,void 0,t,o)});i.placeholder={},e.exports=i},650:function(e,t,o){"use strict";var a=o(6),n=o(22)(6),r="findIndex",s=!0;r in[]&&Array(1)[r](function(){s=!1}),a(a.P+a.F*s,"Array",{findIndex:function(e){return n(this,e,arguments.length>1?arguments[1]:void 0)}}),o(55)(r)},651:function(e,t,o){var a=o(418),n=o(652),r=o(396),s=o(205),i=o(654),l=o(656),c=o(659),p=o(268),u=o(417),d=30,y="...",k=/\w*$/;e.exports=function(e,t){var o=d,m=y;if(s(t)){var g="separator"in t?t.separator:g;o="length"in t?p(t.length):o,m="omission"in t?a(t.omission):m}var h=(e=u(e)).length;if(r(e)){var b=c(e);h=b.length}if(o>=h)return e;var f=o-l(m);if(f<1)return m;var _=b?n(b,0,f).join(""):e.slice(0,f);if(void 0===g)return _+m;if(b&&(f+=_.length-f),i(g)){if(e.slice(f).search(g)){var v,w=_;for(g.global||(g=RegExp(g.source,u(k.exec(g))+"g")),g.lastIndex=0;v=g.exec(w);)var x=v.index;_=_.slice(0,void 0===x?f:x)}}else if(e.indexOf(a(g),f)!=f){var j=_.lastIndexOf(g);j>-1&&(_=_.slice(0,j))}return _+m}},652:function(e,t,o){var a=o(653);e.exports=function(e,t,o){var n=e.length;return o=void 0===o?n:o,!t&&o>=n?e:a(e,t,o)}},653:function(e,t){e.exports=function(e,t,o){var a=-1,n=e.length;t<0&&(t=-t>n?0:n+t),(o=o>n?n:o)<0&&(o+=n),n=t>o?0:o-t>>>0,t>>>=0;for(var r=Array(n);++a<n;)r[a]=e[a+t];return r}},654:function(e,t,o){var a=o(655),n=o(232),r=o(270),s=r&&r.isRegExp,i=s?n(s):a;e.exports=i},655:function(e,t,o){var a=o(237),n=o(207),r="[object RegExp]";e.exports=function(e){return n(e)&&a(e)==r}},656:function(e,t,o){var a=o(657),n=o(396),r=o(658);e.exports=function(e){return n(e)?r(e):a(e)}},657:function(e,t,o){var a=o(264)("length");e.exports=a},658:function(e,t){var o="[\\ud800-\\udfff]",a="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",s="(?:\\ud83c[\\udde6-\\uddff]){2}",i="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+a+"|"+n+")"+"?",c="[\\ufe0e\\ufe0f]?"+l+("(?:\\u200d(?:"+[r,s,i].join("|")+")[\\ufe0e\\ufe0f]?"+l+")*"),p="(?:"+[r+a+"?",a,s,i,o].join("|")+")",u=RegExp(n+"(?="+n+")|"+p+c,"g");e.exports=function(e){for(var t=u.lastIndex=0;u.test(e);)++t;return t}},659:function(e,t,o){var a=o(660),n=o(396),r=o(661);e.exports=function(e){return n(e)?r(e):a(e)}},660:function(e,t){e.exports=function(e){return e.split("")}},661:function(e,t){var o="[\\ud800-\\udfff]",a="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",n="\\ud83c[\\udffb-\\udfff]",r="[^\\ud800-\\udfff]",s="(?:\\ud83c[\\udde6-\\uddff]){2}",i="[\\ud800-\\udbff][\\udc00-\\udfff]",l="(?:"+a+"|"+n+")"+"?",c="[\\ufe0e\\ufe0f]?"+l+("(?:\\u200d(?:"+[r,s,i].join("|")+")[\\ufe0e\\ufe0f]?"+l+")*"),p="(?:"+[r+a+"?",a,s,i,o].join("|")+")",u=RegExp(n+"(?="+n+")|"+p+c,"g");e.exports=function(e){return e.match(u)||[]}},662:function(e,t,o){e.exports=o(663)},663:function(e,t,o){"use strict";(function(e){function a(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(t,"__esModule",{value:!0});var n=a(o(4)),r=o(191),s=o(241),i=a(o(199)),l=a(o(222)),c=a(o(259)),p=a(o(190)),u=a(o(200)),d=o(242),y=o(673),k=o(0),m=a(k),g=a(o(230)),h=a(o(664)),b=o(208),f=o(220),_=a(o(172)),v=a(o(397)),w={matrix:n.arrayOf(n.arrayOf(n.number)).isRequired,keys:n.arrayOf(n.string).isRequired,padAngle:n.number.isRequired,innerRadiusRatio:n.number.isRequired,innerRadiusOffset:n.number.isRequired,arcOpacity:n.number.isRequired,arcBorderWidth:n.number.isRequired,arcBorderColor:n.any.isRequired,getArcBorderColor:n.func.isRequired,ribbonOpacity:n.number.isRequired,ribbonBorderWidth:n.number.isRequired,ribbonBorderColor:n.any.isRequired,ribbonBlendMode:r.blendModePropType.isRequired,getRibbonBorderColor:n.func.isRequired,enableLabel:n.bool.isRequired,label:n.oneOfType([n.string,n.func]).isRequired,getLabel:n.func.isRequired,labelOffset:n.number.isRequired,labelRotation:n.number.isRequired,labelTextColor:n.oneOfType([n.string,n.func]).isRequired,getLabelTextColor:n.func.isRequired,colors:n.any.isRequired,isInteractive:n.bool.isRequired,arcHoverOpacity:n.number.isRequired,arcHoverOthersOpacity:n.number.isRequired,ribbonHoverOpacity:n.number.isRequired,ribbonHoverOthersOpacity:n.number.isRequired,tooltipFormat:n.oneOfType([n.func,n.string]),pixelRatio:n.number.isRequired,legends:n.arrayOf(n.shape(s.LegendPropShape)).isRequired},x={padAngle:0,innerRadiusRatio:.9,innerRadiusOffset:0,arcOpacity:1,arcBorderWidth:1,arcBorderColor:"inherit:darker(0.4)",ribbonOpacity:.5,ribbonBorderWidth:1,ribbonBorderColor:"inherit:darker(0.4)",ribbonBlendMode:"normal",enableLabel:!0,label:"id",labelOffset:12,labelRotation:0,labelTextColor:"inherit:darker(1)",colors:"nivo",isInteractive:!0,arcHoverOpacity:1,arcHoverOthersOpacity:.15,ribbonHoverOpacity:.85,ribbonHoverOthersOpacity:.15,pixelRatio:e.window&&e.window.devicePixelRatio?e.window.devicePixelRatio:1,legends:[]},j=function(e){return i(l(x),c("currentArc","setCurrentArc",null),c("currentRibbon","setCurrentRibbon",null),r.withMotion(),r.withTheme(),r.withDimensions(),p(["label"],function(e){var t=e.label;return{getLabel:r.getLabelGenerator(t)}}),p(["padAngle"],function(e){var t=e.padAngle;return{chord:y.chord().padAngle(t)}}),p(["labelTextColor"],function(e){var t=e.labelTextColor;return{getLabelTextColor:r.getInheritedColorGenerator(t,"labels.textColor")}}),p(["colors","keys"],function(e){var t=e.colors,o=e.keys,a=r.getColorRange(t);return{colorById:o.reduce(function(e,t){return e[t]=a(t),e},{})}}),p(["width","height","innerRadiusRatio","innerRadiusOffset"],function(e){var t=e.width,o=e.height,a=e.innerRadiusRatio,n=e.innerRadiusOffset,r=Math.min(t,o)/2,s=r*a,i=r*(a-n);return{radius:r,innerRadius:s,arcGenerator:d.arc().outerRadius(r).innerRadius(s),ribbonGenerator:y.ribbon().radius(i)}}),p(["arcOpacity","ribbonOpacity"],function(e){var t=e.arcOpacity,o=e.ribbonOpacity;return{getArcOpacity:function(){return t},getRibbonOpacity:function(){return o}}}),p(["isInteractive","currentArc","arcHoverOpacity","arcHoverOthersOpacity","currentRibbon","ribbonHoverOpacity","ribbonHoverOthersOpacity"],function(e){var t=e.isInteractive,o=e.currentArc,a=e.arcHoverOpacity,n=e.arcHoverOthersOpacity,r=e.currentRibbon,s=e.ribbonHoverOpacity,i=e.ribbonHoverOthersOpacity;if(!t||!o&&!r)return null;var l=void 0,c=void 0;return t&&(o?(l=function(e){return e.id===o.id?a:n},c=function(e){return e.source.id===o.id||e.target.id===o.id?s:i}):r&&(l=function(e){return e.id===r.source.id||e.id===r.target.id?a:n},c=function(e){return e.source.id===r.source.id&&e.target.id===r.target.id?s:i})),{getArcOpacity:l,getRibbonOpacity:c}}),p(["chord","colorById","matrix","keys"],function(e){var t=e.chord,o=e.colorById,a=e.matrix,n=e.keys,r=t(a);r.forEach(function(e){e.source.id=n[e.source.index],e.source.color=o[e.source.id],e.target.id=n[e.target.index],e.target.color=o[e.target.id];var t=[e.source.id,e.target.id];t.sort(),e.key=t.sort().join(".")});var s=r.groups.map(function(e){return e.key=e.id=n[e.index],e.color=o[e.id],e});return{ribbons:r,arcs:s}}),p(["arcBorderColor"],function(e){var t=e.arcBorderColor;return{getArcBorderColor:r.getInheritedColorGenerator(t)}}),p(["ribbonBorderColor"],function(e){var t=e.ribbonBorderColor;return{getRibbonBorderColor:r.getInheritedColorGenerator(t)}}),u)(e)},S=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},z=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(e[a]=o[a])}return e},E=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t},C=function(e,t,o){var a=e.source,n=e.target,s=void 0,i=void 0;a.startAngle<n.startAngle?(s=a,i=n):(s=n,i=a);var l=void 0;if(!0===t){var c=r.midAngle(s),p=r.midAngle(i);l={sourceStartAngle:c,sourceEndAngle:c,targetStartAngle:p,targetEndAngle:p}}else l={sourceStartAngle:s.startAngle,sourceEndAngle:s.endAngle,targetStartAngle:i.startAngle,targetEndAngle:i.endAngle};return o?h(l,function(e){return b.spring(e,o)}):l},A=function(e){var t=e.data;return z({},C(t,!0),{opacity:0},r.colorMotionSpring(t.source.color))},P=function(e){var t=e.ribbons,o=e.shapeGenerator,a=e.borderWidth,n=e.getBorderColor,s=e.getOpacity,i=e.blendMode,l=e.theme,c=e.tooltipFormat,p=e.setCurrent,u=e.showTooltip,d=e.hideTooltip,y=e.animate,k=e.motionDamping,g=e.motionStiffness,h=function(e){var t=m.createElement(r.TableTooltip,{theme:l,rows:[[m.createElement(r.Chip,{key:"chip",color:e.source.color}),m.createElement("strong",{key:"id"},e.source.id),c?c(e.source.value):e.source.value],[m.createElement(r.Chip,{key:"chip",color:e.target.color}),m.createElement("strong",{key:"id"},e.target.id),c?c(e.target.value):e.target.value]]});return{strokeWidth:a,onMouseEnter:function(o){p(e),u(t,o)},onMouseMove:function(e){u(t,e)},onMouseLeave:function(){p(null),d()}}};if(!0!==y)return m.createElement("g",null,t.map(function(e){var t=s(e);return m.createElement("path",z({key:e.key,d:o(e),fill:e.source.color,fillOpacity:t,stroke:n(z({},e,{color:e.source.color})),strokeOpacity:t,style:{mixBlendMode:i}},h(e)))}));var f={damping:k,stiffness:g,precision:.001};return m.createElement(b.TransitionMotion,{willEnter:A,willLeave:function(e){return function(t){var o=t.data;return z({},C(o,!0,e),{opacity:0},r.colorMotionSpring(o.source.color,e))}}(f),styles:t.map(function(e){return{key:e.key,data:e,style:z({},C(e,!1,f),{opacity:b.spring(s(e),f)},r.colorMotionSpring(e.source.color,f))}})},function(e){return m.createElement("g",null,e.map(function(e){var t=e.key,a=e.style,s=e.data,l=r.getInterpolatedColor(a);return m.createElement("path",z({key:t,d:o({source:{startAngle:a.sourceStartAngle,endAngle:Math.max(a.sourceEndAngle,a.sourceStartAngle)},target:{startAngle:a.targetStartAngle,endAngle:Math.max(a.targetEndAngle,a.targetStartAngle)}}),fill:l,fillOpacity:a.opacity,stroke:n(z({},s,{color:l})),strokeOpacity:a.opacity,style:{mixBlendMode:i}},h(s)))}))})};P.propTypes=z({ribbons:n.array.isRequired,shapeGenerator:n.func.isRequired,borderWidth:n.number.isRequired,getBorderColor:n.func.isRequired,getOpacity:n.func.isRequired,blendMode:r.blendModePropType.isRequired,setCurrent:n.func.isRequired,theme:n.object.isRequired,showTooltip:n.func.isRequired,hideTooltip:n.func.isRequired,tooltipFormat:n.oneOfType([n.func,n.string])},r.motionPropTypes);var $=i(p(["tooltipFormat"],function(e){var t=e.tooltipFormat;return!t||g(t)?{tooltipFormat:t}:{tooltipFormat:f.format(t)}}),u)(P),R=function(e){var t=e.arc,o=e.theme,a=e.format;return m.createElement(r.BasicTooltip,{id:t.id,value:t.value,color:t.color,enableChip:!0,theme:o,format:a})};R.propTypes={arc:n.object.isRequired,theme:n.object.isRequired,format:n.func};var O=u(R),q=function(e){var t=e.arcs,o=e.borderWidth,a=e.getBorderColor,n=e.getOpacity,s=e.shapeGenerator,i=e.theme,l=e.tooltipFormat,c=e.setCurrent,p=e.showTooltip,u=e.hideTooltip,d=e.animate,y=e.motionDamping,k=e.motionStiffness,g=function(e){var t=m.createElement(O,{arc:e,theme:i,format:l});return{strokeWidth:o,onMouseEnter:function(o){c(e),p(t,o)},onMouseMove:function(e){p(t,e)},onMouseLeave:function(){c(null),u()}}};if(!0!==d)return m.createElement("g",null,t.map(function(e){var t=n(e);return m.createElement("path",z({key:e.key,d:s(e),fill:e.color,fillOpacity:t,stroke:a(e),strokeOpacity:t},g(e)))}));var h={damping:y,stiffness:k,precision:.001};return m.createElement(b.TransitionMotion,{styles:t.map(function(e){return{key:e.key,data:e,style:z({startAngle:b.spring(e.startAngle,h),endAngle:b.spring(e.endAngle,h),opacity:b.spring(n(e),h)},r.colorMotionSpring(e.color,h))}})},function(e){return m.createElement("g",null,e.map(function(e){var t=e.key,o=e.style,n=e.data,i=r.getInterpolatedColor(o);return m.createElement("path",z({key:t,d:s({startAngle:o.startAngle,endAngle:o.endAngle}),fill:i,fillOpacity:o.opacity,stroke:a(z({},n,{color:i})),strokeOpacity:o.opacity},g(n)))}))})};q.propTypes=z({arcs:n.array.isRequired,shapeGenerator:n.func.isRequired,borderWidth:n.number.isRequired,getBorderColor:n.func.isRequired,getOpacity:n.func.isRequired,setCurrent:n.func.isRequired,theme:n.object.isRequired,showTooltip:n.func.isRequired,hideTooltip:n.func.isRequired,tooltipFormat:n.oneOfType([n.func,n.string])},r.motionPropTypes);var T=u(q),L=function(e){var t=e.arcs,o=e.radius,a=e.rotation,n=e.getLabel,s=e.getColor,i=e.theme,l=e.animate,c=e.motionDamping,p=e.motionStiffness;if(!0!==l)return m.createElement("g",null,t.map(function(e){var t=s(e,i),l=r.midAngle(e),c=r.getPolarLabelProps(o,l,a);return m.createElement("text",{key:e.key,transform:"translate("+c.x+", "+c.y+") rotate("+c.rotate+")",style:z({},i.labels.text,{pointerEvents:"none",fill:t}),textAnchor:c.align,alignmentBaseline:c.baseline},n(e))}));var u={damping:c,stiffness:p};return m.createElement(b.TransitionMotion,{styles:t.map(function(e){var t=r.midAngle(e);return{key:e.key,data:e,style:{angle:b.spring(t,u)}}})},function(e){return m.createElement("g",null,e.map(function(e){var t=e.key,l=e.style,c=e.data,p=s(c,i),u=r.getPolarLabelProps(o,l.angle,a);return m.createElement("text",{key:t,transform:"translate("+u.x+", "+u.y+") rotate("+u.rotate+")",style:z({},i.labels.text,{pointerEvents:"none",fill:p}),textAnchor:u.align,alignmentBaseline:u.baseline},n(c))}))})};L.propTypes=z({arcs:n.array.isRequired,radius:n.number.isRequired,rotation:n.number.isRequired,getLabel:n.func.isRequired,getColor:n.func.isRequired,theme:n.object.isRequired},r.motionPropTypes);var J=function(e){var t=e.margin,o=e.width,a=e.height,n=e.outerWidth,i=e.outerHeight,l=e.arcBorderWidth,c=e.getArcBorderColor,p=e.ribbonBorderWidth,u=e.ribbonBlendMode,d=e.getRibbonBorderColor,y=e.enableLabel,k=e.getLabel,g=e.labelOffset,h=e.labelRotation,b=e.getLabelTextColor,f=e.arcGenerator,_=e.ribbonGenerator,v=e.theme,w=e.isInteractive,x=e.tooltipFormat,j=e.animate,S=e.motionDamping,E=e.motionStiffness,C=e.ribbons,A=e.arcs,P=e.radius,R=e.setCurrentArc,O=e.setCurrentRibbon,q=e.getArcOpacity,J=e.getRibbonOpacity,M=e.legends,N=o/2,B=a/2,I={animate:j,motionDamping:S,motionStiffness:E},H=A.map(function(e){return{id:e.id,label:e.id,color:e.color}});return m.createElement(r.Container,{isInteractive:w,theme:v},function(e){var w=e.showTooltip,j=e.hideTooltip;return m.createElement(r.SvgWrapper,{width:n,height:i,margin:t,theme:v},P>0&&m.createElement("g",{transform:"translate("+N+", "+B+")"},P>0&&m.createElement($,z({ribbons:C,shapeGenerator:_,borderWidth:p,getBorderColor:d,getOpacity:J,blendMode:u,setCurrent:O,theme:v,tooltipFormat:x,showTooltip:w,hideTooltip:j},I)),m.createElement(T,z({arcs:A,shapeGenerator:f,borderWidth:l,getBorderColor:c,getOpacity:q,setCurrent:R,theme:v,tooltipFormat:x,showTooltip:w,hideTooltip:j},I)),y&&m.createElement(L,z({arcs:A,radius:P+g,rotation:h,getLabel:k,getColor:b,theme:v},I))),M.map(function(e,t){return m.createElement(s.BoxLegendSvg,z({key:t},e,{containerWidth:o,containerHeight:a,data:H,theme:v}))}))})};J.propTypes=w;var M=_("Chord")(j(J)),N=function(e){function t(){var o,a;S(this,t);for(var n=arguments.length,s=Array(n),i=0;i<n;i++)s[i]=arguments[i];return o=a=E(this,e.call.apply(e,[this].concat(s))),a.handleMouseHover=function(e,t,o){if(!0===a.props.isInteractive){var n=r.getRelativeCursor(a.surface,o),s=n[0],i=n[1],l=a.props,c=l.width,p=l.height,u=l.margin,d=l.radius,y=l.innerRadius,k=l.arcs,g=l.setCurrentArc,h=l.theme,b=c/2+u.left,f=p/2+u.top,_=r.getHoveredArc(b,f,d,y,k,s,i);_?(g(_),e(m.createElement(O,{arc:_,theme:h}),o)):(g(null),t())}},a.handleMouseLeave=function(e){!0===a.props.isInteractive&&(a.props.setCurrentArc(null),e())},E(a,o)}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.componentDidMount=function(){this.ctx=this.surface.getContext("2d"),this.draw(this.props)},t.prototype.shouldComponentUpdate=function(e){return this.props.outerWidth!==e.outerWidth||this.props.outerHeight!==e.outerHeight||this.props.isInteractive!==e.isInteractive||this.props.theme!==e.theme||(this.draw(e),!1)},t.prototype.componentDidUpdate=function(){this.ctx=this.surface.getContext("2d"),this.draw(this.props)},t.prototype.draw=function(e){var t=this,o=e.pixelRatio,a=e.width,n=e.height,s=e.margin,i=e.outerWidth,l=e.outerHeight,c=e.enableLabel,p=e.getLabel,u=e.labelOffset,d=e.labelRotation,y=e.getLabelTextColor,k=e.arcGenerator,m=e.ribbonGenerator,g=e.theme,h=e.ribbons,b=e.arcs,f=e.radius,_=e.getArcOpacity,v=e.getRibbonOpacity;this.surface.width=i*o,this.surface.height=l*o,this.ctx.scale(o,o);var w=a/2+s.left,x=n/2+s.top;this.ctx.fillStyle=g.background,this.ctx.fillRect(0,0,i,l),f<=0||(this.ctx.translate(w,x),this.ctx.font=g.labels.text.fontSize+"px "+(g.labels.text.fontFamily||"sans-serif"),m.context(this.ctx),h.forEach(function(e){t.ctx.save(),t.ctx.globalAlpha=v(e),t.ctx.beginPath(),m(e),t.ctx.fillStyle=e.source.color,t.ctx.fill(),t.ctx.restore()}),k.context(this.ctx),b.forEach(function(e){if(t.ctx.save(),t.ctx.globalAlpha=_(e),t.ctx.beginPath(),k(e),t.ctx.fillStyle=e.color,t.ctx.fill(),t.ctx.restore(),c){var o=y(e,g),a=r.midAngle(e),n=r.getPolarLabelProps(f+u,a,d);t.ctx.save(),t.ctx.translate(n.x,n.y),t.ctx.rotate(r.degreesToRadians(n.rotate)),t.ctx.textAlign=n.align,t.ctx.textBaseline=n.baseline,t.ctx.fillStyle=o,t.ctx.fillText(p(e),0,0),t.ctx.restore()}}))},t.prototype.render=function(){var e=this,t=this.props,o=t.outerWidth,a=t.outerHeight,n=t.pixelRatio,s=t.isInteractive,i=t.theme;return m.createElement(r.Container,{isInteractive:s,theme:i},function(t){var r=t.showTooltip,s=t.hideTooltip;return m.createElement("canvas",{ref:function(t){e.surface=t},width:o*n,height:a*n,style:{width:o,height:a},onMouseEnter:v(e.handleMouseHover,r,s),onMouseMove:v(e.handleMouseHover,r,s),onMouseLeave:v(e.handleMouseLeave,s)})})},t}(k.Component);N.propTypes=w;var B=j(N);t.Chord=M,t.ChordCanvas=B,t.ResponsiveChord=function(e){return m.createElement(r.ResponsiveWrapper,null,function(t){var o=t.width,a=t.height;return m.createElement(M,z({width:o,height:a},e))})},t.ResponsiveChordCanvas=function(e){return m.createElement(r.ResponsiveWrapper,null,function(t){var o=t.width,a=t.height;return m.createElement(B,z({width:o,height:a},e))})},t.ChordPropTypes=w,t.ChordDefaultProps=x}).call(this,o(216))},664:function(e,t,o){var a=o(295),n=o(279),r=o(260);e.exports=function(e,t){var o={};return t=r(t,3),n(e,function(e,n,r){a(o,n,t(e,n,r))}),o}},673:function(e,t,o){"use strict";o.r(t);var a=o(209),n=Math.cos,r=Math.sin,s=Math.PI,i=s/2,l=2*s,c=Math.max;var p=function(){var e=0,t=null,o=null,n=null;function r(r){var s,i,p,u,d,y,k=r.length,m=[],g=Object(a.f)(k),h=[],b=[],f=b.groups=new Array(k),_=new Array(k*k);for(s=0,d=-1;++d<k;){for(i=0,y=-1;++y<k;)i+=r[d][y];m.push(i),h.push(Object(a.f)(k)),s+=i}for(t&&g.sort(function(e,o){return t(m[e],m[o])}),o&&h.forEach(function(e,t){e.sort(function(e,a){return o(r[t][e],r[t][a])})}),u=(s=c(0,l-e*k)/s)?e:l/k,i=0,d=-1;++d<k;){for(p=i,y=-1;++y<k;){var v=g[d],w=h[v][y],x=r[v][w],j=i,S=i+=x*s;_[w*k+v]={index:v,subindex:w,startAngle:j,endAngle:S,value:x}}f[v]={index:v,startAngle:p,endAngle:i,value:m[v]},i+=u}for(d=-1;++d<k;)for(y=d-1;++y<k;){var z=_[y*k+d],E=_[d*k+y];(z.value||E.value)&&b.push(z.value<E.value?{source:E,target:z}:{source:z,target:E})}return n?b.sort(n):b}return r.padAngle=function(t){return arguments.length?(e=c(0,t),r):e},r.sortGroups=function(e){return arguments.length?(t=e,r):t},r.sortSubgroups=function(e){return arguments.length?(o=e,r):o},r.sortChords=function(e){return arguments.length?(null==e?n=null:(t=e,n=function(e,o){return t(e.source.value+e.target.value,o.source.value+o.target.value)})._=e,r):n&&n._;var t},r},u=Array.prototype.slice,d=function(e){return function(){return e}},y=o(286);function k(e){return e.source}function m(e){return e.target}function g(e){return e.radius}function h(e){return e.startAngle}function b(e){return e.endAngle}var f=function(){var e=k,t=m,o=g,a=h,s=b,l=null;function c(){var c,p=u.call(arguments),d=e.apply(this,p),k=t.apply(this,p),m=+o.apply(this,(p[0]=d,p)),g=a.apply(this,p)-i,h=s.apply(this,p)-i,b=m*n(g),f=m*r(g),_=+o.apply(this,(p[0]=k,p)),v=a.apply(this,p)-i,w=s.apply(this,p)-i;if(l||(l=c=Object(y.a)()),l.moveTo(b,f),l.arc(0,0,m,g,h),g===v&&h===w||(l.quadraticCurveTo(0,0,_*n(v),_*r(v)),l.arc(0,0,_,v,w)),l.quadraticCurveTo(0,0,b,f),l.closePath(),c)return l=null,c+""||null}return c.radius=function(e){return arguments.length?(o="function"==typeof e?e:d(+e),c):o},c.startAngle=function(e){return arguments.length?(a="function"==typeof e?e:d(+e),c):a},c.endAngle=function(e){return arguments.length?(s="function"==typeof e?e:d(+e),c):s},c.source=function(t){return arguments.length?(e=t,c):e},c.target=function(e){return arguments.length?(t=e,c):t},c.context=function(e){return arguments.length?(l=null==e?null:e,c):l},c};o.d(t,"chord",function(){return p}),o.d(t,"ribbon",function(){return f})}}]);
//# sourceMappingURL=component---src-pages-connections-js-467c4a7b946906b916b1.js.map