diff --git a/index.html b/index.html index 1843959..d4b4217 100644 --- a/index.html +++ b/index.html @@ -5,4 +5,4 @@ new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); - })(window,document,'script','dataLayer','GTM-PLTRSCB');Victor Mono
\ No newline at end of file + })(window,document,'script','dataLayer','GTM-PLTRSCB');Victor Mono
\ No newline at end of file diff --git a/js/app.08afe459.js b/js/app.316cd042.js similarity index 99% rename from js/app.08afe459.js rename to js/app.316cd042.js index 4034a22..52ed283 100644 --- a/js/app.08afe459.js +++ b/js/app.316cd042.js @@ -1,2 +1,2 @@ -(function(t){function e(e){for(var n,r,i=e[0],l=e[1],c=e[2],h=0,d=[];h /> ~- -~ ~@\n <~ <~> <~~ ~> ~~ ~~>\n >= <= \x3c!-- ## ### #### |- -| |-> <-| >-| |-<\n |= |=> >- <- <-- --\x3e -> -<\n >-> >>- <<- <-> ->> -<< <-<\n ==> => =/= !== != <==\n >>= =>> >=> <=> <=< <<= =<<\n .- .= =:= =!= == === :: := :> :< >: ;;\n <| <|> |> <>\n <$ <$> $> <+ <+> +>\n ?= /= /== /\\ \\/ __ && ++ +++\n ")]),n("h1",{staticClass:"no-margin centre crossfade hidden no-ligatures"},[t._v("\n /> ~- -~ ~@\n <~ <~> <~~ ~> ~~ ~~>\n >= <= \x3c!-- ## ### #### |- -| |-> <-| >-| |-<\n |= |=> >- <- <-- --\x3e -> -<\n >-> >>- <<- <-> ->> -<< <-<\n ==> => =/= !== != <==\n >>= =>> >=> <=> <=< <<= =<<\n .- .= =:= =!= == === :: := :> :< >: ;;\n <| <|> |> <>\n <$ <$> $> <+ <+> +>\n ?= /= /== /\\ \\/ __ && ++ +++\n ")])])])],1)],1),n("HeroImage",{attrs:{image:"powerline",theme:t.theme}}),n("div",{staticClass:"content alternate-bg"},[n("div",{staticClass:"scroll-head",attrs:{id:"why"}}),n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("Why")])])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:18}},[n("p",{staticClass:"columns"},[t._v("\n When it comes to programming fonts, I prefer something thin and\n relatively condensed,\n but with a more "),n("em",[t._v("informal, flowing and human style")]),t._v("\n for standouts like comments and certain keywords.\n "),n("br"),n("br"),t._v("\n In the past, I always ended up looking for something else after\n using a font for a while, because something didn't look right to me.\n So I started sketching and designing something myself.\n I wanted something that:\n "),n("ul",[n("li",[t._v("had friendly and distinct italics")]),n("li",[t._v("had a strict, geometric and readable regular style")]),n("li",[t._v("had programming symbol ligatures")]),n("li",[t._v("was slender and elegant")]),n("li",[t._v("narrow enough to fit a lot of text")]),n("li",[t._v("wide enough to be scannable")]),n("li",[t._v("looked consistent and professional")])]),t._v("\n Other stuff (like having a million alternative glyphs or as many\n ligatures as possible) wasn't (and isn't) important.\n Victor Mono is the result. You might like it as well.\n That's brilliant! You might not. That's also fine: use a font\n that works for you. 😛\n ")])])],1)],1),n("div",{staticClass:"content"},[n("div",{staticClass:"scroll-head",attrs:{id:"compare"}}),n("Compare",{attrs:{theme:t.theme}})],1),n("div",{staticClass:"alternate-bg"},[n("HeroImage",{attrs:{image:"keyboard",theme:t.theme,suffix:"jpg"}}),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{sm:18}},[n("div",{staticClass:"right caption"},[t._v("\n Designs submitted to\n "),n("a",{attrs:{href:"http://wasdkeyboards.com",target:"_blank"}},[t._v("\n WASD Keyboards\n ")])])])],1)],1),n("div",{staticClass:"content alternate-bg"},[n("div",{staticClass:"scroll-head",attrs:{id:"download"}}),n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("Get it")])])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:18}},[n("p",[t._v("\n If you try it out and like it, I would be very grateful for any\n donations. It means I can cover some costs for software and time\n spent - and keep refining and extending the font.\n ")])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{staticClass:"centre"},[n("a",{staticClass:"donate"},[n("el-button",{staticClass:"double-line margin-bottom",attrs:{icon:"el-icon-medal-1",type:"success"},on:{click:t.paypal}},[t._v("\n Donate"),n("br"),n("em",[t._v("via PayPal")])])],1),t._v("\n  \n "),n("a",{staticClass:"donate"},[n("el-button",{staticClass:"double-line margin-bottom",attrs:{icon:"el-icon-medal-1",type:"success"},on:{click:t.patreon}},[t._v("\n Support"),n("br"),n("em",[t._v("via Patreon")])])],1),t._v("\n  \n "),n("a",{staticClass:"download-link",attrs:{href:"VictorMonoAll.zip"}},[n("el-button",{staticClass:"double-line margin-bottom",attrs:{icon:"el-icon-download",type:"info"}},[t._v("\n Download"),n("br"),n("em",[t._v("~8MB ZIP")])])],1)])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:12,lg:10}},[n("p",{staticClass:"small centre"},[n("em",[t._v("With\n "),n("a",{attrs:{target:"_blank",href:"https://github.com/Homebrew/homebrew-cask-fonts"}},[t._v("\n homebrew-cask-fonts")]),t._v(",\n just run\n ")]),n("br"),n("code",[t._v("brew tap homebrew/cask-fonts")]),n("br"),n("code",[t._v("brew install --cask font-victor-mono")])])]),n("el-col",{attrs:{xs:22,sm:12,lg:10}},[n("p",{staticClass:"small centre"},[n("em",[t._v("For use in apps, web pages or other projects:")]),n("br"),n("code",[t._v("npm i victormono")]),t._v("\n ->\n "),n("code",[t._v("import 'victormono'")]),n("br"),t._v("\n Style elements with "),n("code",[t._v("font-family: 'Victor Mono'")])])])],1)],1),n("div",[n("a",{attrs:{href:"https://shop.spreadshirt.com/victor-mono/",target:"_blank"}},[n("HeroImage",{attrs:{image:"merch",theme:t.theme,suffix:"jpg"}})],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{sm:18}},[n("div",{staticClass:"right caption"},[t._v("\n Buy cool merch at Victor Mono Merch Store:\n "),n("a",{attrs:{href:"https://shop.spreadshirt.com/victor-mono/",target:"_blank"}},[t._v("\n North America")]),t._v("\n /\n "),n("a",{attrs:{href:"https://shop.spreadshirt.net/victor-mono/",target:"_blank"}},[t._v("\n Europe")])])])],1)],1),n("div",{staticClass:"scroll-head",attrs:{id:"how"}}),n("div",{staticClass:"content"},[n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("How to use")])])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:18}},[n("p",{},[t._v("\n 1) "),n("a",{staticClass:"download-link",attrs:{href:"VictorMonoAll.zip"}},[t._v("Download")]),t._v(" the font"),n("br"),t._v("\n 2) Unpack the ZIP"),n("br"),t._v("\n 3) "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+install+fonts",target:"_blank"}},[t._v("Install")]),t._v(" the font (all styles or the ones you want)"),n("br"),t._v("\n 4) "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+change+font+settings+in+VS+Code",target:"_blank"}},[t._v("Change the font settings in your code editor / IDE of choice")]),t._v(' to "Victor\n Mono"'),n("br"),t._v("\n 5) "),n("em",[t._v("Optional")]),t._v(" · "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+change+theme+in+VS+Code",target:"_blank"}},[t._v("Set the code theme")]),t._v(" to one you like\n (try\n "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo",target:"_blank"}},[t._v("this one")]),t._v(",\n for example)\n "),n("br"),t._v("\n 6) "),n("em",[t._v("Optional")]),t._v(" · "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+modify+themes+in+VS+Code",target:"_blank"}},[t._v("Modify the theme")]),t._v(" colours and its application of normal/italic/bold styles\n ")])])],1)],1),n("div",{staticClass:"content alternate-bg"},[n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("Supporters")])])])],1),n("el-row",{attrs:{justify:"center"}},[n("el-col",{staticClass:"margin-bottom",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("94f2")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Bronze"),n("br"),n("div",{staticClass:"small"},[t._v("\n Fan\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$1/month or - $9.99 in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to everyone contributing! ❤️\n ")]),n("p")]),n("el-col",{staticClass:"margin-bottom",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("2231")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Silver"),n("br"),n("div",{staticClass:"small"},[t._v("\n Supporter\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$2/month or $10-24.99 in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to everyone contributing! ❤️\n ")]),n("p")]),n("el-col",{staticClass:"gold bottom-margin",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("3964")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Gold"),n("br"),n("div",{staticClass:"small"},[t._v("\n Patron\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$5/month or $25-45 in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to:\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Diogo Almeida\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Dieter Auracher\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Emerson Beltrán\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Colton Borg\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Dion Bridger\n ")]),n("div",{staticClass:"centre supporter"},[n("a",{attrs:{href:"https://github.com/datarootsio",target:"_blank"}},[t._v("\n datarootsio\n ")])]),n("div",{staticClass:"centre supporter"},[t._v("\n Julien Durillon\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Michael Huggett\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Igor Harden\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n K. Bruce Jones\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n kmwallio\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Josh Kraker\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Stuart Morris\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n RKC\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Lars Rönnbäck\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Michael Schore\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Robert Ruf\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Christoph Siedentop\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Spiritualminded\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n thief#0001\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Ashley Kaine Towns\n ")]),n("p")]),n("el-col",{staticClass:"rainbow bottom-margin",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("478e")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Rainbow"),n("br"),n("div",{staticClass:"small"},[t._v("\n Champion Guardian Unicorn\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$10/month or $45+ in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to:\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Matthew Anderson\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Parker Ault\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n April Collier\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Matthew A Drover\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Élise Duverdier\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Lady Isak Grozny\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Sven Koschnicke\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Elizabeth Marston\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Matthew O'Gorman\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Poudingue\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Emily Price\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Alex Simons\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Justin Slepak\n ")]),n("p")])],1)],1),n("Testimonials",{attrs:{theme:t.theme}}),n("HeroImage",{attrs:{image:"specimen",theme:t.theme}}),n("Faq"),n("HeroImage",{attrs:{image:"glyphs",theme:t.theme}}),n("Credits")],1)},m=[],f=(a("ac6a"),a("f3e2"),a("78ce"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:"el-zoom-in-top"}},[n("div",{staticClass:"navbar",class:{visible:t.show}},[n("canvas",{ref:"gradients",staticClass:"navbar-gradients"}),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#app",expression:"'#app'"}],class:{collapsed:!t.showGoToTop},attrs:{href:"#"}},[n("i",{staticClass:"el-icon-arrow-up"})]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#try",expression:"'#try'"}],attrs:{href:"#"}},[t._v("\n Try")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#why",expression:"'#why'"}],attrs:{href:"#"}},[t._v("\n Why")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#download",expression:"'#download'"}],attrs:{href:"#"}},[t._v("\n Get")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#how",expression:"'#how'"}],staticClass:"hidden-xs-only",attrs:{href:"#"}},[t._v("\n How")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#faq",expression:"'#faq'"}],attrs:{href:"#"}},[t._v("\n FAQ")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#credits",expression:"'#credits'"}],staticClass:"hidden-xs-only",attrs:{href:"#"}},[t._v("\n Credits")]),n("a",{attrs:{href:"https://github.com/rubjo/victor-mono",target:"_blank"}},[n("img",{staticClass:"octocat",attrs:{src:a("d677"),alt:"Octocat"}})]),n("a",{ref:"themeIcon",staticClass:"themeIcon",attrs:{href:"javascript:void(0)"},on:{click:t.toggleTheme}},[n("div",{directives:[{name:"show",rawName:"v-show",value:"light"===t.theme,expression:"theme === 'light'"}],staticClass:"moon theme"},[n("svg",{attrs:{height:"52",width:"38",xmlns:"http://www.w3.org/2000/svg"}},[n("path",{attrs:{d:"M26.01 1A25.02 25.02 0 0 0 1 26.01a25.03 25.03 0 0 0 35.01 22.91 1.2 1.2 0 0 0 0-2.18 22.62 22.62 0 0 1 0-41.46 1.2 1.2 0 0 0 0-2.18 24.93 24.93 0 0 0-10-2.1z",fill:"none",stroke:t.textColour,"stroke-width":"2"}})])]),n("div",{directives:[{name:"show",rawName:"v-show",value:"dark"===t.theme,expression:"theme === 'dark'"}],staticClass:"sun theme"},[n("svg",{attrs:{height:"53",width:"53",xmlns:"http://www.w3.org/2000/svg"}},[n("g",{attrs:{fill:"none","fill-rule":"evenodd",stroke:t.textColour,"stroke-width":"2"}},[n("circle",{attrs:{cx:"26.58",cy:"26.62",r:"9.44"}}),n("path",{attrs:{d:"M26.58 11.78V1.7M26.58 51.85v-10.1M41.09 26.25H51.2M1.64 26.25h10.13"}}),n("path",{attrs:{d:"M15.85 15.9L8.7 8.76M44.18 44.23l-7.14-7.14M36.34 15.86l7.16-7.15M8.45 43.76l7.16-7.16"}}),n("path",{attrs:{d:"M32.38 12.6l3.86-9.32M17.05 49.62l3.86-9.32M40.25 31.53l9.35 3.87M3.8 16.43l9.36 3.88"}}),n("path",{attrs:{d:"M20.77 12.6l-3.86-9.32M36.1 49.62l-3.86-9.32M39.72 20.42l9.35-3.87M3.28 35.51l9.35-3.87"}})])])])])])])}),p=[],g=a("1209"),v=a("01bf"),b=a.n(v);function y(t,e){var a=[["#2b76b9","#35eb93"],["#cc6622","#8c1bab"],["#380036","#0cbaba"],["#85d797","#5d4257"],["#0250c5","#d43f8d"],["#13547a","#60b0b7"],["#a40606","#d98324"]],n=[["#8af094","#ffd1ff"],["#f6d365","#fda085"],["#84fab0","#8fd3f4"],["#fa709a","#fee140"],["#4facfe","#00f2fe"],["#43e97b","#38c9f7"],["#f83600","#f9d423"]];return new b.a({element:t,direction:"diagonal",states:{"default-state":{gradients:"dark"===e?a:n,transitionSpeed:7500},dark:{gradients:a,transitionSpeed:7500},light:{gradients:n,transitionSpeed:7500}}})}var w={name:"NavBar",props:{showGoToTop:Boolean,show:Boolean},data:function(){return{granim:null,theme:localStorage.getItem("theme")||"dark",backgroundColour:"#595959",textColour:"#eee"}},watch:{show:function(){this.spin()},theme:function(t,e){this.granim.changeState(t)}},mounted:function(){this.spin(),this.setAppearance(),this.granim=y(".navbar-gradients",this.theme),this.granim.changeState(this.theme)},methods:{spin:function(){Object(g["a"])({targets:".themeIcon svg",rotate:[-45,315],scale:[.75,1.25,1,1],strokeColor:["#f0f","#000"],delay:1500,duration:2e3,easing:"easeInOutSine"})},toggleTheme:function(){var t=this;this.$refs.themeIcon.style.transform="scale(0)",Object(g["a"])({targets:".themeIcon circle",scale:[0,1],duration:1500,easing:"easeInOutSine"}),Object(g["a"])({targets:".themeIcon path",strokeDashoffset:[g["a"].setDashoffset,0],easing:"easeInOutSine",duration:2500,delay:function(t,e){return 250*e+250},direction:"normal",loop:!1}),Object(g["a"])({targets:".themeIcon svg",rotate:[0,315],strokeColor:["#f0f","#000"],delay:500,duration:3e3,easing:"easeInOutSine"}),setTimeout((function(){t.theme="dark"===t.theme?"light":"dark",localStorage.setItem("theme",t.theme),t.setAppearance(),t.$refs.themeIcon.style.transform="scale(0.5)"}),100)},setAppearance:function(){"dark"===this.theme?(this.$emit("darkTheme"),this.backgroundColour="#2a2a2a",this.alternateBackgroundColour="#333",this.textColour="#eee"):(this.$emit("lightTheme"),this.backgroundColour="#fff",this.alternateBackgroundColour="#f2f2f2",this.textColour="#222");var t=document.documentElement;t.dataset.theme=this.theme,t.style.setProperty("--background-color-base",this.backgroundColour),t.style.setProperty("--background-color-alternate",this.alternateBackgroundColour),t.style.setProperty("--color-text-primary",this.textColour)}}},k=w,_=(a("e18a"),a("2877")),C=Object(_["a"])(k,f,p,!1,null,"3df62adc",null),x=C.exports,I=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"header"},[n("div",{ref:"videoBg",staticClass:"video-bg"},[n("video",{ref:"video",attrs:{autobuffer:"",autoplay:"",muted:"",autoloop:"",playsinline:"",loop:""},domProps:{muted:!0}},[n("source",{attrs:{src:a("f2c0"),type:"video/mp4"}}),n("source",{attrs:{src:a("9276"),type:"video/webm"}})])]),n("canvas",{ref:"gradients",staticClass:"header-gradients"}),n("div",{staticClass:"text"},[n("h1",{ref:"mainTitle"},[t._v("\n Victor Mono\n ")]),t._m(0),n("el-row",{staticClass:"row-bg actions no-break",attrs:{type:"flex",justify:"center"}},[n("el-col",[n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#download",expression:"'#download'"}]},[n("el-button",{attrs:{icon:"el-icon-download"}},[t._v("\n Download\n ")])],1),t._v("\n  \n "),n("a",{on:{click:function(e){t.showSharing=!t.showSharing}}},[n("el-button",{attrs:{icon:"el-icon-share"}},[t._v("\n Share\n ")])],1),n("transition",{attrs:{name:"el-fade-in"}},[n("span",{directives:[{name:"show",rawName:"v-show",value:t.showSharing,expression:"showSharing"}],staticClass:"share"},[n("social-sharing",{attrs:{url:"https://rubjo.github.io/victor-mono/",title:"Victor Mono: free programming font with italics and ligatures",description:"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.",quote:"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.",hashtags:"free,font,italics,ligatures"},inlineTemplate:{render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("network",{attrs:{network:"twitter"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M24 4.6c-1 .4-1.9.6-2.9.7a5 5 0 0 0 2.2-2.7c-1 .6-2 1-3.1 1.2-1-1-2.2-1.6-3.6-1.6a5 5 0 0 0-4.8 6 14 14 0 0 1-10.2-5c-.4.7-.6 1.5-.6 2.4a5 5 0 0 0 2.2 4.1c-.8 0-1.6-.2-2.3-.6A5 5 0 0 0 5 14a5 5 0 0 1-2.2 0 5 5 0 0 0 4.6 3.5 9.9 9.9 0 0 1-7.3 2 14 14 0 0 0 7.6 2.3c9 0 14-7.5 14-14V7A10 10 0 0 0 24 4.6z"}})])])]),a("network",{attrs:{network:"facebook"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M24 12a12 12 0 1 0-13.9 11.9v-8.4h-3V12h3V9.4c0-3 1.8-4.7 4.6-4.7l2.6.2v3h-1.5c-1.5 0-2 .9-2 1.8V12h3.4l-.5 3.5h-2.8v8.4A12 12 0 0 0 24 12z"}})])])]),a("network",{attrs:{network:"reddit"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M2.2 14v.9c0 3.4 4.3 6.2 9.7 6.2 5.4 0 9.8-2.8 9.8-6.2v-.8-.2a5.7 5.7 0 0 0-2.5-3.2c-1.9-1.3-4.4-2-7.3-2a13 13 0 0 0-7.3 2A5.8 5.8 0 0 0 2.2 14zm9.8 5.5c-1.8 0-3-.4-3.9-1.2a.4.4 0 0 1 0-.6c.2-.2.5-.2.6 0 .7.6 1.7.9 3.3.9 1.5 0 2.6-.3 3.2-1h.6c.2.3.2.5 0 .7-.8.8-2 1.2-3.8 1.2zm-3.6-7.6a1.7 1.7 0 1 0 0 3.3c.9 0 1.6-.7 1.6-1.6 0-1-.7-1.7-1.6-1.7zm7.2 0a1.7 1.7 0 1 0 0 3.3c1 0 1.7-.7 1.7-1.6 0-1-.8-1.7-1.7-1.7zm4.6-1.6c1 .9 1.8 1.8 2.1 3 .5-.4.8-1 .8-1.5a1.8 1.8 0 0 0-3-1.5zM2.7 10a1.8 1.8 0 0 0-1.2 3.2c.4-1.1 1.2-2 2.3-3l-1-.2zM12 22C6 22 1.2 18.8 1.2 15v-.8a2.7 2.7 0 1 1 3.3-4.4c1.9-1.1 4.4-1.9 7.1-2l1.8-5.5.4.1 4.3 1c.3-.8 1.1-1.3 2-1.3a2.2 2.2 0 0 1 0 4.4c-1.2 0-2.2-1-2.2-2.2l-3.8-1-1.5 4.6c2.7 0 5 .8 6.8 2 .5-.5 1.2-.7 1.9-.7a2.7 2.7 0 0 1 1.3 5v.8c0 4-4.7 7.1-10.6 7.1zM20.1 3a1.3 1.3 0 1 0 0 2.6 1.3 1.3 0 1 0 0-2.6z"}})])])]),a("network",{attrs:{network:"weibo"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M10.1 20.3c-4 .4-7.4-1.4-7.7-4-.2-2.6 2.8-5 6.8-5.4 4-.4 7.4 1.4 7.6 4 .3 2.6-2.7 5-6.7 5.4zm-1-3c-.4.5-1.3.8-1.9.5-.6-.3-.8-1-.4-1.6.4-.6 1.2-.8 1.8-.6.6.3.8 1 .5 1.6zm1.2-1.7c-.1.2-.4.3-.7.2-.2 0-.3-.3-.1-.5 0-.3.4-.4.6-.3.3.1.3.4.2.6zm.2-2.7c-1.9-.5-4 .4-4.9 2-.8 1.8 0 3.7 2 4.3 2 .6 4.2-.3 5-2.2.9-1.8-.1-3.6-2.1-4.1zm7.6-1.3c-.4 0-.6-.1-.4-.6.3-1 .4-1.8 0-2.4-.8-1-3-1-5.4 0 0 0-.8.3-.6-.3.4-1.2.3-2.2-.3-2.8-1.3-1.3-4.8 0-7.8 3.1C1.3 10.9 0 13.3 0 15.3c0 4 5.1 6.4 10 6.4 6.6 0 11-3.8 11-6.8 0-1.8-1.6-2.8-3-3.3zm1.9-5c-.8-.9-2-1.2-3-1-.4 0-.7.5-.6 1 0 .3.5.6 1 .5a1.5 1.5 0 0 1 1.7 2c-.2.4 0 .8.5 1 .4 0 .8-.1 1-.6.3-1 .1-2.1-.7-3zm2.4-2.2a6.4 6.4 0 0 0-6-2 1 1 0 0 0-.8 1c.1.6.6.9 1.1.8A4.5 4.5 0 0 1 22 10c-.2.5 0 1 .5 1.1.5.2 1 0 1.2-.5.7-2.1.2-4.5-1.3-6.3z"}})])])])],1)},staticRenderFns:[]}})],1)])],1)],1)],1)])},T=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("h2",[t._v("\n The "),a("em",{staticClass:"property"}),a("br",{staticClass:"hidden-sm-and-up"}),t._v("\n programming font\n ")])}],j=(a("96cf"),a("3b8d")),M=a("10b3"),S=a.n(M),A={name:"Header",props:{theme:{type:String,default:localStorage.getItem("theme")||"dark"}},data:function(){return{granim:null,showSharing:!1}},watch:{theme:{handler:function(){var t=Object(j["a"])(regeneratorRuntime.mark((function t(e,a){var n,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return this.granim&&this.granim.changeState(e),n="dark"===this.theme?.2:.5,r="dark"===this.theme?.5:.2,t.next=5,Object(g["a"])({targets:this.$refs.videoBg,opacity:[n,0],duration:250,easing:"linear"}).finished;case 5:return"light"===e?(this.$refs.gradients.style.mixBlendMode="multiply",this.$refs.videoBg.style.filter="invert(1)"):(this.$refs.gradients.style.mixBlendMode="screen",this.$refs.videoBg.style.filter="invert(0)"),Object(g["a"])({targets:this.$refs.videoBg,opacity:[0,r],duration:250,easing:"linear"}),t.abrupt("return",Promise.resolve());case 8:case"end":return t.stop()}}),t,this)})));function e(e,a){return t.apply(this,arguments)}return e}(),immediate:!0}},mounted:function(){this.granim=y(".header-gradients",this.theme),this.granim.changeState(this.theme),this.initTyped()},methods:{initTyped:function(){var t={strings:['"#%§§##/&*!',"peachy",'modest',"==>",">=<=-><-=>><<=","A1","appealing","attractive","awesome","be-all and end-all","beautiful","best","break-the-wheel","brilliant","budget-friendly","charming","classy","clever","concise","consistent","cool","cozy","crisp","cursive","cute","dainty","dashing","de facto","decent","definitive","delicate","democratic","distinguished","donate-what-it's-worth","effective","efficient","elegant","enjoyable","essential","experimental","exquisite","fancy","fine","foxy","free","friendly","go-to","good-looking","gorgeous","graceful","grand","great","happy","hip(ster)","ideal","invaluable","inviting","lovely","magic","mind-blowing","must-have","neat","nice","nice-looking","no-compromise","one true","opulent","perfect","plush","polished","poor man’s","pretty","ravishing","readable","real aesthete’s","real","refined","retina-ready","scannable","slanted","slender","slick","slightly whimsical","slim","smart","smashing","sophisticated","sterling","suave","sublime","sumptuous","super","supreme","svelte","sweet","sylphlike","tasteful","top-notch","trustworthy","victorious","warm","wicked","willowy","wonderful","ανέξοδος","ελληνιστικός","κυριλλικό","πανεμορφη","отличный","прекрасный"],startDelay:1e3,typeSpeed:50,backSpeed:10,smartBackspace:!0,backDelay:1500,loop:!0,shuffle:!0};return new S.a(".property",t)}}},O=A,V=(a("6c19"),Object(_["a"])(O,I,T,!1,null,"03e524b7",null)),B=V.exports;function E(t){var e,a=t.componentFactory,n=t.background,r=t.height,s=t.maxHeight,o=t.loading,i=t.loadingData;return function(){return{component:new Promise((function(t){e=t})),loading:{mounted:function(){var t=Object(j["a"])(regeneratorRuntime.mark((function t(){var o,i=this;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(this.$el.style.backgroundColor=n||"#595959",this.$el.style.height=r||0,this.$el.style.maxHeight=s||"auto","IntersectionObserver"in window){t.next=6;break}return a().then(e),t.abrupt("return");case 6:return t.next=8,new Promise((function(t){setTimeout((function(){t()}),1)}));case 8:o=new IntersectionObserver((function(t){t[0].intersectionRatio<=0||(o.unobserve(i.$el),a().then(e))})),o.observe(this.$el);case 10:case"end":return t.stop()}}),t,this)})));function o(){return t.apply(this,arguments)}return o}(),render:function(t){return t(o,i)}}}}}var z=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("span",{staticClass:"loader",style:{height:t.height,width:t.computedWidth}})},D=[],N=(a("c5f6"),{name:"Loader",props:{maxWidth:{default:100,type:Number},minWidth:{default:100,type:Number},height:{default:"1em",type:String},width:{default:null,type:String}},computed:{computedWidth:function(){return this.width||"".concat(Math.floor(Math.random()*(this.maxWidth-this.minWidth)+this.minWidth),"%")}}}),H=N,F=(a("a071"),Object(_["a"])(H,z,D,!1,null,null,null)),G=F.exports,Y=a("6bf6"),W=(a("7af8"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("div",{staticClass:"scroll-head",attrs:{id:"faq"}}),a("el-row",[a("el-col",[a("h1",{staticClass:"centre",on:{mouseenter:function(e){t.revealFaq=!0},touchstart:function(e){t.revealFaq=!0},mouseleave:function(e){t.revealFaq=!1}}},[a("em",[t._v("FAQ*")])]),a("transition",{attrs:{name:"el-zoom-in-top"}},[a("div",{staticClass:"caption centre full-width"},[t._v("\n  \n "),a("em",{directives:[{name:"show",rawName:"v-show",value:t.revealFaq,expression:"revealFaq"}]},[t._v("Frequently Anticipated Questions")])])])],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{xs:22,sm:18}},[a("VueFaqAccordion",{attrs:{items:t.faqItems,"border-color":"transparent"}})],1)],1)],1)}),R=[],Z=a("744c"),J={name:"Credits",components:{VueFaqAccordion:Z["a"]},data:function(){return{revealFaq:!1,faqItems:[{title:"There’s a feature of the font that I don’t like. Could you change it?",value:'Probably not. You can always use a different font. 😛 (Or open an issue and describe what needs changing.)',category:"Design & features"},{title:"Will you add some stylistic variations, like a slashed zero, sharper brackets etc.?",value:'I might.',category:"Design & features"},{title:"Will you make a custom style generator, where one can pick the preferred stylistic alternatives and download the corresponding font files?",value:'Probably not. It depends on the reception and , as this is something I do in my spare time.',category:"Design & features"},{title:"Can I use the font for anything?",value:'Yes. If you\'d like to say thanks, you can . I\'d also appreciate it if you referred others to this web site rather than serving the font files from elsewhere.',category:"Usage"},{title:"I found a bug. Where do I report it?",value:'Please open an issue.',category:"Usage"},{title:"Since it’s called Victor Mono, will a Victor Sans or Serif be released in the future?",value:"Probably not.",category:"Other"},{title:"How does one simply make a font?",value:"Trial and error, some research, good software, patience and time.",category:"Other"},{title:"Why are you giving it away?",value:'I originally planned on selling it for some (smaller or much larger) sum, like others do. But I eventually decided against it: I couldn’t be bothered to set up hosting, payment, EULAs etc, nor do I have time for the level of support I feel should accompany a commercial product. This typeface isn’t meant to be the perfect font for everyone - I just made the one perfect for me. If you’re unemployed or struggle to make ends meet, download the font with a clear conscience. If you work in a corporate setting or are relatively well off, consider the hours spent designing this font. If you want to and are able to donate anything: thank you!',category:"Other"},{title:"Did you know that the [insert typeface property here] violates some 500-year old font design convention?",value:"I might. If I did, I didn’t care, or I deliberately chose to go a different direction.",category:"Design & features"},{title:"The font is missing an obscure ligature symbol used for indicating an infinite loop in the language Goskell when writing in ancient Ghiscari. Would you be willing to add it?",value:'Not very likely, but I might.',category:"Design & features"},{title:"A programming font with cursive italics and ligatures is the worst idea in the world. This is absolutely horrible. BTW, I am really angry.",value:"Not really a question, but anyway: It's OK if someone else prefers a different font for code than you do. We don't have to use the same one. ❤️",category:"Design & features"}]}}},L=J,P=(a("b671"),Object(_["a"])(L,W,R,!1,null,null,null)),X=P.exports,Q=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content alternate-bg"},[a("div",{staticClass:"scroll-head",attrs:{id:"credits"}}),a("el-row",[a("el-col",[a("h1",{staticClass:"centre"},[a("em",[t._v("Credits")])])])],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{xs:22,sm:18}},[a("p",{staticClass:"small centre"},[t._v("\n A number of frameworks/packages have been used to make this web site.\n Big thanks to the following:\n "),a("br"),a("br"),a("br"),a("em",[t._v("Lovely gradients")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://sarcadass.github.io/granim.js/"}},[t._v("\n Granim.js")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://twitter.com/Sarcadass"}},[t._v("\n Benjamin Blonde")]),a("br"),a("br"),a("em",[t._v("Cool animated typing")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/mattboldt/typed.js/"}},[t._v("\n Typed.js")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://mattboldt.com"}},[t._v("\n Matt Boldt")]),a("br"),a("br"),a("em",[t._v("Code editor")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/surmon-china/vue-codemirror"}},[t._v("\n Vue-Codemirror")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/surmon-china"}},[t._v("\n Surmon")]),t._v(" and\n "),a("a",{attrs:{target:"_blank",href:"https://codemirror.net"}},[t._v("\n codemirror.net")]),a("br"),a("br"),a("em",[t._v("Animations here & there")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://animejs.com"}},[t._v("\n Anime.js")]),a("br"),a("br"),a("em",[t._v("Smooth scrolling")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://vue-scrollto.netlify.com"}},[t._v("\n vue-scrollto")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/rigor789"}},[t._v("\n Igor Randjelovic")]),a("br"),a("br"),a("em",[t._v("Image comparison component")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/mhayes/vue-twentytwenty"}},[t._v("\n vue-twentytwenty")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/mhayes"}},[t._v("\n Mark Hayes")]),a("br"),a("br"),a("em",[t._v("FAQ component")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/gerasimvol/vue-faq-accordion"}},[t._v("\n vue-faq-accordion")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/gerasimvol"}},[t._v("\n Vladimir Gerasimenko")]),a("br"),a("br"),a("em",[t._v("Thank-you-confetti")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://www.npmjs.com/package/dom-confetti"}},[t._v("\n dom-confetti")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://twitter.com/danielundin"}},[t._v("\n Daniel Lundin")]),a("br"),a("br"),a("em",[t._v("CSS framework / component library")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://element.eleme.io/#/en-US"}},[t._v("\n Element")]),a("br"),a("br"),a("em",[t._v("Sharing component")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/nicolasbeauvais/vue-social-sharing"}},[t._v("\n vue-social-sharing")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/nicolasbeauvais"}},[t._v("\n Nicolas Beauvais")]),a("br"),a("br"),a("em",[t._v("Supporter tier medal design")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://psdblast.com"}},[t._v("\n Andy (psdblast.com)")]),a("br"),a("br"),a("em",[t._v("First-class apps for compressing images")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://pngmini.com"}},[t._v("\n ImageAlpha")]),t._v("\n and\n "),a("a",{attrs:{target:"_blank",href:"https://imageoptim.com/mac"}},[t._v("\n ImageOptim")]),t._v("\n by (mostly)\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/kornelski"}},[t._v("\n Kornel Lesinski")]),a("br"),a("br"),a("em",[t._v("Article on lazily loading components when visible")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://markus.oberlehner.net/blog/skeleton-loading-animation-with-vue/"}},[t._v("\n Skeleton Loading Animation with Vue.js")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://markus.oberlehner.net"}},[t._v("\n Markus Oberlehner")]),a("br"),a("br"),a("em",[t._v("Embed tweets in Vue apps")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/tonickkozlov/vue-tweet-embed"}},[t._v("\n vue-tweet-embed")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/tonickkozlov"}},[t._v("\n Anton Kozlov\n ")]),a("br"),a("br"),a("em",[t._v("The nice JS framework")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://vuejs.org"}},[t._v("\n Vue.js")]),a("br"),a("br"),a("em",[t._v("Supercool scaffolding and tools for Vue.js development")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://cli.vuejs.org"}},[t._v("\n Vue CLI")]),a("br"),a("br"),a("em",[t._v("Automated building and deployment of web site from source")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://travis-ci.org"}},[t._v("\n Travis CI")]),a("br"),a("br"),a("em",[t._v("Very nice (and rather expensive) font design software")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://glyphsapp.com"}},[t._v("\n Glyphs")]),a("br"),a("br"),a("em",[t._v("Hosted by the nice folks at")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/about"}},[t._v("\n GitHub")]),a("br"),a("br"),a("em",[t._v("Font and web site")]),a("br"),a("a",{attrs:{target:"_blank",href:"mailto:victor.mono.font@gmail.com?subject=Thanks for making such a nice font"}},[t._v("\n Rune B")])])])],1)],1)},U=[],K={name:"Credits"},q=K,$=Object(_["a"])(q,Q,U,!1,null,null,null),tt=$.exports,et={name:"Home",components:{NavBar:x,Header:B,CodeView:E({componentFactory:function(){return a.e("chunk-64d01f97").then(a.bind(null,"5456"))},background:"light"===localStorage.getItem("theme")?"#f2f2f2":"#304148",height:"20vw",loading:G}),HeroImage:E({componentFactory:function(){return a.e("chunk-2684151d").then(a.bind(null,"2b4f"))},background:"light"===localStorage.getItem("theme")?"#f5f5f5":"#515151",height:"50vw",maxHeight:"350px",loading:G}),Compare:E({componentFactory:function(){return a.e("chunk-60daec7d").then(a.bind(null,"f6f1"))},background:"light"===localStorage.getItem("theme")?"#f5f5f5":"#515151",height:"927px",maxHeight:"calc(100vw + 48px)",loading:G}),Testimonials:E({componentFactory:function(){return Promise.resolve().then(a.bind(null,"7af8"))},background:"light"===localStorage.getItem("theme")?"#f5f5f5":"#515151",height:"50px",loading:G}),Faq:X,Credits:tt},data:function(){return{showNav:!1,showGoToTop:!1,theme:localStorage.getItem("theme")||"dark"}},computed:{stylesDarkThumb:function(){return a("2210")},stylesLightThumb:function(){return a("178f")},stylesDark:function(){return a("b2d7")},stylesLight:function(){return a("0f35")}},mounted:function(){this.initScrollWatcher()},methods:{initScrollWatcher:function(){var t=this;function e(t,e){var a=Date.now();return function(){a+e-Date.now()<0&&(setTimeout(t,e),a=Date.now())}}["scroll","resize"].forEach((function(a){window.addEventListener(a,e(t.scrollHandler,100))}))},scrollHandler:function(){var t=this.$refs.header.$el.querySelector("h1"),e=parseInt(window.getComputedStyle(t).marginTop),a=t.offsetTop-e,n=this.$refs.header.$el.offsetHeight,r=n-a;this.showNav=window.scrollY>r,this.showGoToTop=window.scrollY>0},celebrate:function(t){Object(Y["confetti"])(t,{angle:90,spread:60,startVelocity:50,elementCount:250,dragFriction:.125,duration:3e3,stagger:2,width:"10px",height:"10px",colors:["#393939","#747369","#515151","#a09f93","#2b2b2b","#ffffff","#e2e0d7","#ff7a7f","#f99157","#dd99dd","#66aadd","#ffee66","#6699cc","#66ffdd","#99dd99","#99cc99","#ff332a","#66cccc","#d27b53","#f92672","#a6e22e","#967efb","#565656"]}),window.removeEventListener("focus",this.celebrate)},paypal:function(t){var e=this;window.open("https://paypal.me/runbjo"),setTimeout((function(){window.addEventListener("focus",e.celebrate(t.target))}),1e3)},patreon:function(t){var e=this;window.open("https://www.patreon.com/rune_b"),setTimeout((function(){window.addEventListener("focus",e.celebrate(t.target))}),1e3)},toggleLigatures:function(t){t.target.innerText="enabled"===t.target.innerText?"disabled":"enabled",this.$refs.ligatures.querySelectorAll(".crossfade").forEach((function(t){t.classList.toggle("hidden")}))}}},at=et,nt=(a("5c0b"),Object(_["a"])(at,u,m,!1,null,null,null)),rt=nt.exports,st=a("c259"),ot=a.n(st),it=a("8f94"),lt=a.n(it),ct=(a("a7be"),a("5299")),ht=a.n(ct);d["default"].config.productionTip=!1,d["default"].use(ot.a,{container:"body",duration:1e4,easing:"ease",offset:-200,force:!0,cancelable:!0,onStart:!1,onDone:!1,onCancel:!1,x:!1,y:!0}),d["default"].use(lt.a),d["default"].use(ht.a),window.application=new d["default"]({render:function(t){return t(rt)}}).$mount("#app")},"5c0b":function(t,e,a){"use strict";a("e332")},"6c19":function(t,e,a){"use strict";a("7c96")},"7af8":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("div",{staticClass:"scroll-head",attrs:{id:"testimonials"}}),a("el-row",[a("el-col",[a("h1",{staticClass:"centre"},[a("em",[t._v("What people are saying")])])])],1),a("el-row",{attrs:{justify:"center",gutter:20}},t._l(t.selectedTestimonials,(function(e){return a("el-col",{key:e+t.theme,attrs:{xs:24,lg:6}},[a("Tweet",{attrs:{id:e,options:{theme:t.theme,conversation:"none",align:"center"}}})],1)})),1)],1)},r=[],s=(a("55dd"),a("7397")),o={name:"Testimonials",components:{Tweet:s["Tweet"]},props:{theme:{type:String,default:localStorage.getItem("theme")||"dark"}},data:function(){return{testimonials:["1144627524078571521","1142187688751071233","1395599234531946496","1149023631835635713","1359508666446094336","1438499728937795593","1249238897994780672","1430565916815855624","1340083805370134531","1159431742245261313","1188221984959676416","1201505985984110592","1188916442902626304","1344488694804201472","1178698424109195265"],selectedTestimonials:[]}},mounted:function(){var t=this.testimonials.sort((function(){return.5-Math.random()}));this.selectedTestimonials=t.slice(0,4)}},i=o,l=(a("5156"),a("2877")),c=Object(l["a"])(i,n,r,!1,null,"ba50133e",null);e["default"]=c.exports},"7c96":function(t,e,a){},"7fc2":function(t,e,a){},9276:function(t,e,a){t.exports=a.p+"media/headerbg.0d4d3836.webm"},9412:function(t,e,a){},"94f2":function(t,e,a){t.exports=a.p+"img/bronze.6c902090.png"},a071:function(t,e,a){"use strict";a("2593")},b2d7:function(t,e,a){t.exports=a.p+"img/styles-dark.42978ce3.png"},b671:function(t,e,a){"use strict";a("7fc2")},d677:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwQTM4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwQTI4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTMyOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBNDE0QUJDOTlBMTExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8kSqyAAADD5JREFUeNrsXQ2Q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"},e18a:function(t,e,a){"use strict";a("9412")},e332:function(t,e,a){},f2c0:function(t,e,a){t.exports=a.p+"media/headerbg.d1fdad00.mp4"},f46e:function(t,e,a){}}); -//# sourceMappingURL=app.08afe459.js.map \ No newline at end of file +(function(t){function e(e){for(var n,r,i=e[0],l=e[1],c=e[2],h=0,d=[];h /> ~- -~ ~@\n <~ <~> <~~ ~> ~~ ~~>\n >= <= \x3c!-- ## ### #### |- -| |-> <-| >-| |-<\n |= |=> >- <- <-- --\x3e -> -<\n >-> >>- <<- <-> ->> -<< <-<\n ==> => =/= !== != <==\n >>= =>> >=> <=> <=< <<= =<<\n .- .= =:= =!= == === :: := :> :< >: ;;\n <| <|> |> <>\n <$ <$> $> <+ <+> +>\n ?= /= /== /\\ \\/ __ && ++ +++\n ")]),n("h1",{staticClass:"no-margin centre crossfade hidden no-ligatures"},[t._v("\n /> ~- -~ ~@\n <~ <~> <~~ ~> ~~ ~~>\n >= <= \x3c!-- ## ### #### |- -| |-> <-| >-| |-<\n |= |=> >- <- <-- --\x3e -> -<\n >-> >>- <<- <-> ->> -<< <-<\n ==> => =/= !== != <==\n >>= =>> >=> <=> <=< <<= =<<\n .- .= =:= =!= == === :: := :> :< >: ;;\n <| <|> |> <>\n <$ <$> $> <+ <+> +>\n ?= /= /== /\\ \\/ __ && ++ +++\n ")])])])],1)],1),n("HeroImage",{attrs:{image:"powerline",theme:t.theme}}),n("div",{staticClass:"content alternate-bg"},[n("div",{staticClass:"scroll-head",attrs:{id:"why"}}),n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("Why")])])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:18}},[n("p",{staticClass:"columns"},[t._v("\n When it comes to programming fonts, I prefer something thin and\n relatively condensed,\n but with a more "),n("em",[t._v("informal, flowing and human style")]),t._v("\n for standouts like comments and certain keywords.\n "),n("br"),n("br"),t._v("\n In the past, I always ended up looking for something else after\n using a font for a while, because something didn't look right to me.\n So I started sketching and designing something myself.\n I wanted something that:\n "),n("ul",[n("li",[t._v("had friendly and distinct italics")]),n("li",[t._v("had a strict, geometric and readable regular style")]),n("li",[t._v("had programming symbol ligatures")]),n("li",[t._v("was slender and elegant")]),n("li",[t._v("narrow enough to fit a lot of text")]),n("li",[t._v("wide enough to be scannable")]),n("li",[t._v("looked consistent and professional")])]),t._v("\n Other stuff (like having a million alternative glyphs or as many\n ligatures as possible) wasn't (and isn't) important.\n Victor Mono is the result. You might like it as well.\n That's brilliant! You might not. That's also fine: use a font\n that works for you. 😛\n ")])])],1)],1),n("div",{staticClass:"content"},[n("div",{staticClass:"scroll-head",attrs:{id:"compare"}}),n("Compare",{attrs:{theme:t.theme}})],1),n("div",{staticClass:"alternate-bg"},[n("HeroImage",{attrs:{image:"keyboard",theme:t.theme,suffix:"jpg"}}),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{sm:18}},[n("div",{staticClass:"right caption"},[t._v("\n Designs submitted to\n "),n("a",{attrs:{href:"http://wasdkeyboards.com",target:"_blank"}},[t._v("\n WASD Keyboards\n ")])])])],1)],1),n("div",{staticClass:"content alternate-bg"},[n("div",{staticClass:"scroll-head",attrs:{id:"download"}}),n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("Get it")])])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:18}},[n("p",[t._v("\n If you try it out and like it, I would be very grateful for any\n donations. It means I can cover some costs for software and time\n spent - and keep refining and extending the font.\n ")])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{staticClass:"centre"},[n("a",{staticClass:"donate"},[n("el-button",{staticClass:"double-line margin-bottom",attrs:{icon:"el-icon-medal-1",type:"success"},on:{click:t.paypal}},[t._v("\n Donate"),n("br"),n("em",[t._v("via PayPal")])])],1),t._v("\n  \n "),n("a",{staticClass:"donate"},[n("el-button",{staticClass:"double-line margin-bottom",attrs:{icon:"el-icon-medal-1",type:"success"},on:{click:t.patreon}},[t._v("\n Support"),n("br"),n("em",[t._v("via Patreon")])])],1),t._v("\n  \n "),n("a",{staticClass:"download-link",attrs:{href:"VictorMonoAll.zip"}},[n("el-button",{staticClass:"double-line margin-bottom",attrs:{icon:"el-icon-download",type:"info"}},[t._v("\n Download"),n("br"),n("em",[t._v("~8MB ZIP")])])],1)])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:12,lg:10}},[n("p",{staticClass:"small centre"},[n("em",[t._v("With\n "),n("a",{attrs:{target:"_blank",href:"https://github.com/Homebrew/homebrew-cask-fonts"}},[t._v("\n homebrew-cask-fonts")]),t._v(",\n just run\n ")]),n("br"),n("code",[t._v("brew tap homebrew/cask-fonts")]),n("br"),n("code",[t._v("brew install --cask font-victor-mono")])])]),n("el-col",{attrs:{xs:22,sm:12,lg:10}},[n("p",{staticClass:"small centre"},[n("em",[t._v("For use in apps, web pages or other projects:")]),n("br"),n("code",[t._v("npm i victormono")]),t._v("\n ->\n "),n("code",[t._v("import 'victormono'")]),n("br"),t._v("\n Style elements with "),n("code",[t._v("font-family: 'Victor Mono'")])])])],1)],1),n("div",[n("a",{attrs:{href:"https://shop.spreadshirt.com/victor-mono/",target:"_blank"}},[n("HeroImage",{attrs:{image:"merch",theme:t.theme,suffix:"jpg"}})],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{sm:18}},[n("div",{staticClass:"right caption"},[t._v("\n Buy cool merch at Victor Mono Merch Store:\n "),n("a",{attrs:{href:"https://shop.spreadshirt.com/victor-mono/",target:"_blank"}},[t._v("\n North America")]),t._v("\n /\n "),n("a",{attrs:{href:"https://shop.spreadshirt.net/victor-mono/",target:"_blank"}},[t._v("\n Europe")])])])],1)],1),n("div",{staticClass:"scroll-head",attrs:{id:"how"}}),n("div",{staticClass:"content"},[n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("How to use")])])])],1),n("el-row",{attrs:{type:"flex",justify:"center"}},[n("el-col",{attrs:{xs:22,sm:18}},[n("p",{},[t._v("\n 1) "),n("a",{staticClass:"download-link",attrs:{href:"VictorMonoAll.zip"}},[t._v("Download")]),t._v(" the font"),n("br"),t._v("\n 2) Unpack the ZIP"),n("br"),t._v("\n 3) "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+install+fonts",target:"_blank"}},[t._v("Install")]),t._v(" the font (all styles or the ones you want)"),n("br"),t._v("\n 4) "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+change+font+settings+in+VS+Code",target:"_blank"}},[t._v("Change the font settings in your code editor / IDE of choice")]),t._v(' to "Victor\n Mono"'),n("br"),t._v("\n 5) "),n("em",[t._v("Optional")]),t._v(" · "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+change+theme+in+VS+Code",target:"_blank"}},[t._v("Set the code theme")]),t._v(" to one you like\n (try\n "),n("a",{attrs:{href:"https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo",target:"_blank"}},[t._v("this one")]),t._v(",\n for example)\n "),n("br"),t._v("\n 6) "),n("em",[t._v("Optional")]),t._v(" · "),n("a",{attrs:{href:"https://www.google.com/search?q=how+to+modify+themes+in+VS+Code",target:"_blank"}},[t._v("Modify the theme")]),t._v(" colours and its application of normal/italic/bold styles\n ")])])],1)],1),n("div",{staticClass:"content alternate-bg"},[n("el-row",[n("el-col",[n("h1",{staticClass:"centre"},[n("em",[t._v("Supporters")])])])],1),n("el-row",{attrs:{justify:"center"}},[n("el-col",{staticClass:"margin-bottom",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("94f2")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Bronze"),n("br"),n("div",{staticClass:"small"},[t._v("\n Fan\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$1/month or - $9.99 in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to everyone contributing! ❤️\n ")]),n("p")]),n("el-col",{staticClass:"margin-bottom",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("2231")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Silver"),n("br"),n("div",{staticClass:"small"},[t._v("\n Supporter\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$2/month or $10-24.99 in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to everyone contributing! ❤️\n ")]),n("p")]),n("el-col",{staticClass:"gold bottom-margin",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("3964")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Gold"),n("br"),n("div",{staticClass:"small"},[t._v("\n Patron\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$5/month or $25-45 in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to:\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Diogo Almeida\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Dieter Auracher\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Emerson Beltrán\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Colton Borg\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Dion Bridger\n ")]),n("div",{staticClass:"centre supporter"},[n("a",{attrs:{href:"https://github.com/datarootsio",target:"_blank"}},[t._v("\n datarootsio\n ")])]),n("div",{staticClass:"centre supporter"},[t._v("\n Julien Durillon\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Michael Huggett\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Igor Harden\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n K. Bruce Jones\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n kmwallio\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Josh Kraker\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Stuart Morris\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n RKC\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Lars Rönnbäck\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Michael Schore\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Robert Ruf\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Christoph Siedentop\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Spiritualminded\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n thief#0001\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Ashley Kaine Towns\n ")]),n("p")]),n("el-col",{staticClass:"rainbow bottom-margin",attrs:{xs:24,sm:12,md:6}},[n("p",{staticClass:"centre no-padding no-margin-bottom"},[n("img",{staticClass:"medal",attrs:{src:a("478e")}})]),n("h2",{staticClass:"centre no-margin"},[t._v("\n Rainbow"),n("br"),n("div",{staticClass:"small"},[t._v("\n Champion Guardian Unicorn\n ")])]),n("p",{staticClass:"small centre no-padding"},[n("em",[t._v("$10/month or $45+ in total")])]),n("div",{staticClass:"centre"},[t._v("\n Thank you to:\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Matthew Anderson\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Parker Ault\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n April Collier\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Matthew A Drover\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Élise Duverdier\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Lady Isak Grozny\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Sven Koschnicke\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Elizabeth Marston\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Matthew O'Gorman\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Poudingue\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Emily Price\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Alex Simons\n ")]),n("div",{staticClass:"centre supporter"},[t._v("\n Justin Slepak\n ")]),n("p")])],1)],1),n("Testimonials",{attrs:{theme:t.theme}}),n("HeroImage",{attrs:{image:"specimen",theme:t.theme}}),n("Faq"),n("HeroImage",{attrs:{image:"glyphs",theme:t.theme}}),n("Credits")],1)},m=[],f=(a("ac6a"),a("f3e2"),a("78ce"),function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("transition",{attrs:{name:"el-zoom-in-top"}},[n("div",{staticClass:"navbar",class:{visible:t.show}},[n("canvas",{ref:"gradients",staticClass:"navbar-gradients"}),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#app",expression:"'#app'"}],class:{collapsed:!t.showGoToTop},attrs:{href:"#"}},[n("i",{staticClass:"el-icon-arrow-up"})]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#try",expression:"'#try'"}],attrs:{href:"#"}},[t._v("\n Try")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#why",expression:"'#why'"}],attrs:{href:"#"}},[t._v("\n Why")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#download",expression:"'#download'"}],attrs:{href:"#"}},[t._v("\n Get")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#how",expression:"'#how'"}],staticClass:"hidden-xs-only",attrs:{href:"#"}},[t._v("\n How")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#faq",expression:"'#faq'"}],attrs:{href:"#"}},[t._v("\n FAQ")]),n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#credits",expression:"'#credits'"}],staticClass:"hidden-xs-only",attrs:{href:"#"}},[t._v("\n Credits")]),n("a",{attrs:{href:"https://github.com/rubjo/victor-mono",target:"_blank"}},[n("img",{staticClass:"octocat",attrs:{src:a("d677"),alt:"Octocat"}})]),n("a",{ref:"themeIcon",staticClass:"themeIcon",attrs:{href:"javascript:void(0)"},on:{click:t.toggleTheme}},[n("div",{directives:[{name:"show",rawName:"v-show",value:"light"===t.theme,expression:"theme === 'light'"}],staticClass:"moon theme"},[n("svg",{attrs:{height:"52",width:"38",xmlns:"http://www.w3.org/2000/svg"}},[n("path",{attrs:{d:"M26.01 1A25.02 25.02 0 0 0 1 26.01a25.03 25.03 0 0 0 35.01 22.91 1.2 1.2 0 0 0 0-2.18 22.62 22.62 0 0 1 0-41.46 1.2 1.2 0 0 0 0-2.18 24.93 24.93 0 0 0-10-2.1z",fill:"none",stroke:t.textColour,"stroke-width":"2"}})])]),n("div",{directives:[{name:"show",rawName:"v-show",value:"dark"===t.theme,expression:"theme === 'dark'"}],staticClass:"sun theme"},[n("svg",{attrs:{height:"53",width:"53",xmlns:"http://www.w3.org/2000/svg"}},[n("g",{attrs:{fill:"none","fill-rule":"evenodd",stroke:t.textColour,"stroke-width":"2"}},[n("circle",{attrs:{cx:"26.58",cy:"26.62",r:"9.44"}}),n("path",{attrs:{d:"M26.58 11.78V1.7M26.58 51.85v-10.1M41.09 26.25H51.2M1.64 26.25h10.13"}}),n("path",{attrs:{d:"M15.85 15.9L8.7 8.76M44.18 44.23l-7.14-7.14M36.34 15.86l7.16-7.15M8.45 43.76l7.16-7.16"}}),n("path",{attrs:{d:"M32.38 12.6l3.86-9.32M17.05 49.62l3.86-9.32M40.25 31.53l9.35 3.87M3.8 16.43l9.36 3.88"}}),n("path",{attrs:{d:"M20.77 12.6l-3.86-9.32M36.1 49.62l-3.86-9.32M39.72 20.42l9.35-3.87M3.28 35.51l9.35-3.87"}})])])])])])])}),p=[],g=a("1209"),v=a("01bf"),b=a.n(v);function y(t,e){var a=[["#2b76b9","#35eb93"],["#cc6622","#8c1bab"],["#380036","#0cbaba"],["#85d797","#5d4257"],["#0250c5","#d43f8d"],["#13547a","#60b0b7"],["#a40606","#d98324"]],n=[["#8af094","#ffd1ff"],["#f6d365","#fda085"],["#84fab0","#8fd3f4"],["#fa709a","#fee140"],["#4facfe","#00f2fe"],["#43e97b","#38c9f7"],["#f83600","#f9d423"]];return new b.a({element:t,direction:"diagonal",states:{"default-state":{gradients:"dark"===e?a:n,transitionSpeed:7500},dark:{gradients:a,transitionSpeed:7500},light:{gradients:n,transitionSpeed:7500}}})}var w={name:"NavBar",props:{showGoToTop:Boolean,show:Boolean},data:function(){return{granim:null,theme:localStorage.getItem("theme")||"dark",backgroundColour:"#595959",textColour:"#eee"}},watch:{show:function(){this.spin()},theme:function(t,e){this.granim.changeState(t)}},mounted:function(){this.spin(),this.setAppearance(),this.granim=y(".navbar-gradients",this.theme),this.granim.changeState(this.theme)},methods:{spin:function(){Object(g["a"])({targets:".themeIcon svg",rotate:[-45,315],scale:[.75,1.25,1,1],strokeColor:["#f0f","#000"],delay:1500,duration:2e3,easing:"easeInOutSine"})},toggleTheme:function(){var t=this;this.$refs.themeIcon.style.transform="scale(0)",Object(g["a"])({targets:".themeIcon circle",scale:[0,1],duration:1500,easing:"easeInOutSine"}),Object(g["a"])({targets:".themeIcon path",strokeDashoffset:[g["a"].setDashoffset,0],easing:"easeInOutSine",duration:2500,delay:function(t,e){return 250*e+250},direction:"normal",loop:!1}),Object(g["a"])({targets:".themeIcon svg",rotate:[0,315],strokeColor:["#f0f","#000"],delay:500,duration:3e3,easing:"easeInOutSine"}),setTimeout((function(){t.theme="dark"===t.theme?"light":"dark",localStorage.setItem("theme",t.theme),t.setAppearance(),t.$refs.themeIcon.style.transform="scale(0.5)"}),100)},setAppearance:function(){"dark"===this.theme?(this.$emit("darkTheme"),this.backgroundColour="#2a2a2a",this.alternateBackgroundColour="#333",this.textColour="#eee"):(this.$emit("lightTheme"),this.backgroundColour="#fff",this.alternateBackgroundColour="#f2f2f2",this.textColour="#222");var t=document.documentElement;t.dataset.theme=this.theme,t.style.setProperty("--background-color-base",this.backgroundColour),t.style.setProperty("--background-color-alternate",this.alternateBackgroundColour),t.style.setProperty("--color-text-primary",this.textColour)}}},k=w,_=(a("e18a"),a("2877")),C=Object(_["a"])(k,f,p,!1,null,"3df62adc",null),x=C.exports,I=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"header"},[n("div",{ref:"videoBg",staticClass:"video-bg"},[n("video",{ref:"video",attrs:{autobuffer:"",autoplay:"",muted:"",autoloop:"",playsinline:"",loop:""},domProps:{muted:!0}},[n("source",{attrs:{src:a("f2c0"),type:"video/mp4"}}),n("source",{attrs:{src:a("9276"),type:"video/webm"}})])]),n("canvas",{ref:"gradients",staticClass:"header-gradients"}),n("div",{staticClass:"text"},[n("h1",{ref:"mainTitle"},[t._v("\n Victor Mono\n ")]),t._m(0),n("el-row",{staticClass:"row-bg actions no-break",attrs:{type:"flex",justify:"center"}},[n("el-col",[n("a",{directives:[{name:"scroll-to",rawName:"v-scroll-to",value:"#download",expression:"'#download'"}]},[n("el-button",{attrs:{icon:"el-icon-download"}},[t._v("\n Download\n ")])],1),t._v("\n  \n "),n("a",{on:{click:function(e){t.showSharing=!t.showSharing}}},[n("el-button",{attrs:{icon:"el-icon-share"}},[t._v("\n Share\n ")])],1),n("transition",{attrs:{name:"el-fade-in"}},[n("span",{directives:[{name:"show",rawName:"v-show",value:t.showSharing,expression:"showSharing"}],staticClass:"share"},[n("social-sharing",{attrs:{url:"https://rubjo.github.io/victor-mono/",title:"Victor Mono: free programming font with italics and ligatures",description:"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.",quote:"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.",hashtags:"free,font,italics,ligatures"},inlineTemplate:{render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("network",{attrs:{network:"twitter"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M24 4.6c-1 .4-1.9.6-2.9.7a5 5 0 0 0 2.2-2.7c-1 .6-2 1-3.1 1.2-1-1-2.2-1.6-3.6-1.6a5 5 0 0 0-4.8 6 14 14 0 0 1-10.2-5c-.4.7-.6 1.5-.6 2.4a5 5 0 0 0 2.2 4.1c-.8 0-1.6-.2-2.3-.6A5 5 0 0 0 5 14a5 5 0 0 1-2.2 0 5 5 0 0 0 4.6 3.5 9.9 9.9 0 0 1-7.3 2 14 14 0 0 0 7.6 2.3c9 0 14-7.5 14-14V7A10 10 0 0 0 24 4.6z"}})])])]),a("network",{attrs:{network:"facebook"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M24 12a12 12 0 1 0-13.9 11.9v-8.4h-3V12h3V9.4c0-3 1.8-4.7 4.6-4.7l2.6.2v3h-1.5c-1.5 0-2 .9-2 1.8V12h3.4l-.5 3.5h-2.8v8.4A12 12 0 0 0 24 12z"}})])])]),a("network",{attrs:{network:"reddit"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M2.2 14v.9c0 3.4 4.3 6.2 9.7 6.2 5.4 0 9.8-2.8 9.8-6.2v-.8-.2a5.7 5.7 0 0 0-2.5-3.2c-1.9-1.3-4.4-2-7.3-2a13 13 0 0 0-7.3 2A5.8 5.8 0 0 0 2.2 14zm9.8 5.5c-1.8 0-3-.4-3.9-1.2a.4.4 0 0 1 0-.6c.2-.2.5-.2.6 0 .7.6 1.7.9 3.3.9 1.5 0 2.6-.3 3.2-1h.6c.2.3.2.5 0 .7-.8.8-2 1.2-3.8 1.2zm-3.6-7.6a1.7 1.7 0 1 0 0 3.3c.9 0 1.6-.7 1.6-1.6 0-1-.7-1.7-1.6-1.7zm7.2 0a1.7 1.7 0 1 0 0 3.3c1 0 1.7-.7 1.7-1.6 0-1-.8-1.7-1.7-1.7zm4.6-1.6c1 .9 1.8 1.8 2.1 3 .5-.4.8-1 .8-1.5a1.8 1.8 0 0 0-3-1.5zM2.7 10a1.8 1.8 0 0 0-1.2 3.2c.4-1.1 1.2-2 2.3-3l-1-.2zM12 22C6 22 1.2 18.8 1.2 15v-.8a2.7 2.7 0 1 1 3.3-4.4c1.9-1.1 4.4-1.9 7.1-2l1.8-5.5.4.1 4.3 1c.3-.8 1.1-1.3 2-1.3a2.2 2.2 0 0 1 0 4.4c-1.2 0-2.2-1-2.2-2.2l-3.8-1-1.5 4.6c2.7 0 5 .8 6.8 2 .5-.5 1.2-.7 1.9-.7a2.7 2.7 0 0 1 1.3 5v.8c0 4-4.7 7.1-10.6 7.1zM20.1 3a1.3 1.3 0 1 0 0 2.6 1.3 1.3 0 1 0 0-2.6z"}})])])]),a("network",{attrs:{network:"weibo"}},[a("span",{staticClass:"icon"},[a("svg",{attrs:{height:"30",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"}},[a("path",{attrs:{d:"M10.1 20.3c-4 .4-7.4-1.4-7.7-4-.2-2.6 2.8-5 6.8-5.4 4-.4 7.4 1.4 7.6 4 .3 2.6-2.7 5-6.7 5.4zm-1-3c-.4.5-1.3.8-1.9.5-.6-.3-.8-1-.4-1.6.4-.6 1.2-.8 1.8-.6.6.3.8 1 .5 1.6zm1.2-1.7c-.1.2-.4.3-.7.2-.2 0-.3-.3-.1-.5 0-.3.4-.4.6-.3.3.1.3.4.2.6zm.2-2.7c-1.9-.5-4 .4-4.9 2-.8 1.8 0 3.7 2 4.3 2 .6 4.2-.3 5-2.2.9-1.8-.1-3.6-2.1-4.1zm7.6-1.3c-.4 0-.6-.1-.4-.6.3-1 .4-1.8 0-2.4-.8-1-3-1-5.4 0 0 0-.8.3-.6-.3.4-1.2.3-2.2-.3-2.8-1.3-1.3-4.8 0-7.8 3.1C1.3 10.9 0 13.3 0 15.3c0 4 5.1 6.4 10 6.4 6.6 0 11-3.8 11-6.8 0-1.8-1.6-2.8-3-3.3zm1.9-5c-.8-.9-2-1.2-3-1-.4 0-.7.5-.6 1 0 .3.5.6 1 .5a1.5 1.5 0 0 1 1.7 2c-.2.4 0 .8.5 1 .4 0 .8-.1 1-.6.3-1 .1-2.1-.7-3zm2.4-2.2a6.4 6.4 0 0 0-6-2 1 1 0 0 0-.8 1c.1.6.6.9 1.1.8A4.5 4.5 0 0 1 22 10c-.2.5 0 1 .5 1.1.5.2 1 0 1.2-.5.7-2.1.2-4.5-1.3-6.3z"}})])])])],1)},staticRenderFns:[]}})],1)])],1)],1)],1)])},T=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("h2",[t._v("\n The "),a("em",{staticClass:"property"}),a("br",{staticClass:"hidden-sm-and-up"}),t._v("\n programming font\n ")])}],j=(a("96cf"),a("3b8d")),M=a("10b3"),S=a.n(M),A={name:"Header",props:{theme:{type:String,default:localStorage.getItem("theme")||"dark"}},data:function(){return{granim:null,showSharing:!1}},watch:{theme:{handler:function(){var t=Object(j["a"])(regeneratorRuntime.mark((function t(e,a){var n,r;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return this.granim&&this.granim.changeState(e),n="dark"===this.theme?.2:.5,r="dark"===this.theme?.5:.2,t.next=5,Object(g["a"])({targets:this.$refs.videoBg,opacity:[n,0],duration:250,easing:"linear"}).finished;case 5:return"light"===e?(this.$refs.gradients.style.mixBlendMode="multiply",this.$refs.videoBg.style.filter="invert(1)"):(this.$refs.gradients.style.mixBlendMode="screen",this.$refs.videoBg.style.filter="invert(0)"),Object(g["a"])({targets:this.$refs.videoBg,opacity:[0,r],duration:250,easing:"linear"}),t.abrupt("return",Promise.resolve());case 8:case"end":return t.stop()}}),t,this)})));function e(e,a){return t.apply(this,arguments)}return e}(),immediate:!0}},mounted:function(){this.granim=y(".header-gradients",this.theme),this.granim.changeState(this.theme),this.initTyped()},methods:{initTyped:function(){var t={strings:['"#%§§##/&*!',"peachy",'modest',"==>",">=<=-><-=>><<=","A1","appealing","attractive","awesome","be-all and end-all","beautiful","best","break-the-wheel","brilliant","budget-friendly","charming","classy","clever","concise","consistent","cool","cozy","crisp","cursive","cute","dainty","dashing","de facto","decent","definitive","delicate","democratic","distinguished","donate-what-it's-worth","effective","efficient","elegant","enjoyable","essential","experimental","exquisite","fancy","fine","foxy","free","friendly","go-to","good-looking","gorgeous","graceful","grand","great","happy","hip(ster)","ideal","invaluable","inviting","lovely","magic","mind-blowing","must-have","neat","nice","nice-looking","no-compromise","one true","opulent","perfect","plush","polished","poor man’s","pretty","ravishing","readable","real aesthete’s","real","refined","retina-ready","scannable","slanted","slender","slick","slightly whimsical","slim","smart","smashing","sophisticated","sterling","suave","sublime","sumptuous","super","supreme","svelte","sweet","sylphlike","tasteful","top-notch","trustworthy","victorious","warm","wicked","willowy","wonderful","ανέξοδος","ελληνιστικός","κυριλλικό","πανεμορφη","отличный","прекрасный"],startDelay:1e3,typeSpeed:50,backSpeed:10,smartBackspace:!0,backDelay:1500,loop:!0,shuffle:!0};return new S.a(".property",t)}}},O=A,V=(a("6c19"),Object(_["a"])(O,I,T,!1,null,"03e524b7",null)),B=V.exports;function E(t){var e,a=t.componentFactory,n=t.background,r=t.height,s=t.maxHeight,o=t.loading,i=t.loadingData;return function(){return{component:new Promise((function(t){e=t})),loading:{mounted:function(){var t=Object(j["a"])(regeneratorRuntime.mark((function t(){var o,i=this;return regeneratorRuntime.wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(this.$el.style.backgroundColor=n||"#595959",this.$el.style.height=r||0,this.$el.style.maxHeight=s||"auto","IntersectionObserver"in window){t.next=6;break}return a().then(e),t.abrupt("return");case 6:return t.next=8,new Promise((function(t){setTimeout((function(){t()}),1)}));case 8:o=new IntersectionObserver((function(t){t[0].intersectionRatio<=0||(o.unobserve(i.$el),a().then(e))})),o.observe(this.$el);case 10:case"end":return t.stop()}}),t,this)})));function o(){return t.apply(this,arguments)}return o}(),render:function(t){return t(o,i)}}}}}var z=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("span",{staticClass:"loader",style:{height:t.height,width:t.computedWidth}})},D=[],N=(a("c5f6"),{name:"Loader",props:{maxWidth:{default:100,type:Number},minWidth:{default:100,type:Number},height:{default:"1em",type:String},width:{default:null,type:String}},computed:{computedWidth:function(){return this.width||"".concat(Math.floor(Math.random()*(this.maxWidth-this.minWidth)+this.minWidth),"%")}}}),H=N,F=(a("a071"),Object(_["a"])(H,z,D,!1,null,null,null)),G=F.exports,Y=a("6bf6"),W=(a("7af8"),function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("div",{staticClass:"scroll-head",attrs:{id:"faq"}}),a("el-row",[a("el-col",[a("h1",{staticClass:"centre",on:{mouseenter:function(e){t.revealFaq=!0},touchstart:function(e){t.revealFaq=!0},mouseleave:function(e){t.revealFaq=!1}}},[a("em",[t._v("FAQ*")])]),a("transition",{attrs:{name:"el-zoom-in-top"}},[a("div",{staticClass:"caption centre full-width"},[t._v("\n  \n "),a("em",{directives:[{name:"show",rawName:"v-show",value:t.revealFaq,expression:"revealFaq"}]},[t._v("Frequently Anticipated Questions")])])])],1)],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{xs:22,sm:18}},[a("VueFaqAccordion",{attrs:{items:t.faqItems,"border-color":"transparent"}})],1)],1)],1)}),R=[],Z=a("744c"),J={name:"Credits",components:{VueFaqAccordion:Z["a"]},data:function(){return{revealFaq:!1,faqItems:[{title:"There’s a feature of the font that I don’t like. Could you change it?",value:'Probably not. You can always use a different font. 😛 (Or open an issue and describe what needs changing.)',category:"Design & features"},{title:"Will you add some stylistic variations, like a slashed zero, sharper brackets etc.?",value:'I might.',category:"Design & features"},{title:"Will you make a custom style generator, where one can pick the preferred stylistic alternatives and download the corresponding font files?",value:'Probably not. It depends on the reception and , as this is something I do in my spare time.',category:"Design & features"},{title:"Can I use the font for anything?",value:'Yes. If you\'d like to say thanks, you can . I\'d also appreciate it if you referred others to this web site rather than serving the font files from elsewhere.',category:"Usage"},{title:"I found a bug. Where do I report it?",value:'Please open an issue.',category:"Usage"},{title:"Since it’s called Victor Mono, will a Victor Sans or Serif be released in the future?",value:"Probably not.",category:"Other"},{title:"How does one simply make a font?",value:"Trial and error, some research, good software, patience and time.",category:"Other"},{title:"Why are you giving it away?",value:'I originally planned on selling it for some (smaller or much larger) sum, like others do. But I eventually decided against it: I couldn’t be bothered to set up hosting, payment, EULAs etc, nor do I have time for the level of support I feel should accompany a commercial product. This typeface isn’t meant to be the perfect font for everyone - I just made the one perfect for me. If you’re unemployed or struggle to make ends meet, download the font with a clear conscience. If you work in a corporate setting or are relatively well off, consider the hours spent designing this font. If you want to and are able to donate anything: thank you!',category:"Other"},{title:"Did you know that the [insert typeface property here] violates some 500-year old font design convention?",value:"I might. If I did, I didn’t care, or I deliberately chose to go a different direction.",category:"Design & features"},{title:"The font is missing an obscure ligature symbol used for indicating an infinite loop in the language Goskell when writing in ancient Ghiscari. Would you be willing to add it?",value:'Not very likely, but I might.',category:"Design & features"},{title:"A programming font with cursive italics and ligatures is the worst idea in the world. This is absolutely horrible. BTW, I am really angry.",value:"Not really a question, but anyway: It's OK if someone else prefers a different font for code than you do. We don't have to use the same one. ❤️",category:"Design & features"}]}}},L=J,P=(a("b671"),Object(_["a"])(L,W,R,!1,null,null,null)),X=P.exports,Q=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content alternate-bg"},[a("div",{staticClass:"scroll-head",attrs:{id:"credits"}}),a("el-row",[a("el-col",[a("h1",{staticClass:"centre"},[a("em",[t._v("Credits")])])])],1),a("el-row",{attrs:{type:"flex",justify:"center"}},[a("el-col",{attrs:{xs:22,sm:18}},[a("p",{staticClass:"small centre"},[t._v("\n A number of frameworks/packages have been used to make this web site.\n Big thanks to the following:\n "),a("br"),a("br"),a("br"),a("em",[t._v("Lovely gradients")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://sarcadass.github.io/granim.js/"}},[t._v("\n Granim.js")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://twitter.com/Sarcadass"}},[t._v("\n Benjamin Blonde")]),a("br"),a("br"),a("em",[t._v("Cool animated typing")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/mattboldt/typed.js/"}},[t._v("\n Typed.js")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://mattboldt.com"}},[t._v("\n Matt Boldt")]),a("br"),a("br"),a("em",[t._v("Code editor")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/surmon-china/vue-codemirror"}},[t._v("\n Vue-Codemirror")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/surmon-china"}},[t._v("\n Surmon")]),t._v(" and\n "),a("a",{attrs:{target:"_blank",href:"https://codemirror.net"}},[t._v("\n codemirror.net")]),a("br"),a("br"),a("em",[t._v("Animations here & there")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://animejs.com"}},[t._v("\n Anime.js")]),a("br"),a("br"),a("em",[t._v("Smooth scrolling")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://vue-scrollto.netlify.com"}},[t._v("\n vue-scrollto")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/rigor789"}},[t._v("\n Igor Randjelovic")]),a("br"),a("br"),a("em",[t._v("Image comparison component")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/mhayes/vue-twentytwenty"}},[t._v("\n vue-twentytwenty")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/mhayes"}},[t._v("\n Mark Hayes")]),a("br"),a("br"),a("em",[t._v("FAQ component")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/gerasimvol/vue-faq-accordion"}},[t._v("\n vue-faq-accordion")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/gerasimvol"}},[t._v("\n Vladimir Gerasimenko")]),a("br"),a("br"),a("em",[t._v("Thank-you-confetti")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://www.npmjs.com/package/dom-confetti"}},[t._v("\n dom-confetti")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://twitter.com/danielundin"}},[t._v("\n Daniel Lundin")]),a("br"),a("br"),a("em",[t._v("CSS framework / component library")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://element.eleme.io/#/en-US"}},[t._v("\n Element")]),a("br"),a("br"),a("em",[t._v("Sharing component")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/nicolasbeauvais/vue-social-sharing"}},[t._v("\n vue-social-sharing")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/nicolasbeauvais"}},[t._v("\n Nicolas Beauvais")]),a("br"),a("br"),a("em",[t._v("Supporter tier medal design")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://psdblast.com"}},[t._v("\n Andy (psdblast.com)")]),a("br"),a("br"),a("em",[t._v("First-class apps for compressing images")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://pngmini.com"}},[t._v("\n ImageAlpha")]),t._v("\n and\n "),a("a",{attrs:{target:"_blank",href:"https://imageoptim.com/mac"}},[t._v("\n ImageOptim")]),t._v("\n by (mostly)\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/kornelski"}},[t._v("\n Kornel Lesinski")]),a("br"),a("br"),a("em",[t._v("Article on lazily loading components when visible")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://markus.oberlehner.net/blog/skeleton-loading-animation-with-vue/"}},[t._v("\n Skeleton Loading Animation with Vue.js")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://markus.oberlehner.net"}},[t._v("\n Markus Oberlehner")]),a("br"),a("br"),a("em",[t._v("Embed tweets in Vue apps")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/tonickkozlov/vue-tweet-embed"}},[t._v("\n vue-tweet-embed")]),t._v("\n by\n "),a("a",{attrs:{target:"_blank",href:"https://github.com/tonickkozlov"}},[t._v("\n Anton Kozlov\n ")]),a("br"),a("br"),a("em",[t._v("The nice JS framework")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://vuejs.org"}},[t._v("\n Vue.js")]),a("br"),a("br"),a("em",[t._v("Supercool scaffolding and tools for Vue.js development")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://cli.vuejs.org"}},[t._v("\n Vue CLI")]),a("br"),a("br"),a("em",[t._v("Automated building and deployment of web site from source")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://travis-ci.org"}},[t._v("\n Travis CI")]),a("br"),a("br"),a("em",[t._v("Very nice (and rather expensive) font design software")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://glyphsapp.com"}},[t._v("\n Glyphs")]),a("br"),a("br"),a("em",[t._v("Hosted by the nice folks at")]),a("br"),a("a",{attrs:{target:"_blank",href:"https://github.com/about"}},[t._v("\n GitHub")]),a("br"),a("br"),a("em",[t._v("Font and web site")]),a("br"),a("a",{attrs:{target:"_blank",href:"mailto:victor.mono.font@gmail.com?subject=Thanks for making such a nice font"}},[t._v("\n Rune B")])])])],1)],1)},U=[],K={name:"Credits"},q=K,$=Object(_["a"])(q,Q,U,!1,null,null,null),tt=$.exports,et={name:"Home",components:{NavBar:x,Header:B,CodeView:E({componentFactory:function(){return a.e("chunk-64d01f97").then(a.bind(null,"5456"))},background:"light"===localStorage.getItem("theme")?"#f2f2f2":"#304148",height:"20vw",loading:G}),HeroImage:E({componentFactory:function(){return a.e("chunk-2684151d").then(a.bind(null,"2b4f"))},background:"light"===localStorage.getItem("theme")?"#f5f5f5":"#515151",height:"50vw",maxHeight:"350px",loading:G}),Compare:E({componentFactory:function(){return a.e("chunk-60daec7d").then(a.bind(null,"f6f1"))},background:"light"===localStorage.getItem("theme")?"#f5f5f5":"#515151",height:"927px",maxHeight:"calc(100vw + 48px)",loading:G}),Testimonials:E({componentFactory:function(){return Promise.resolve().then(a.bind(null,"7af8"))},background:"light"===localStorage.getItem("theme")?"#f5f5f5":"#515151",height:"50px",loading:G}),Faq:X,Credits:tt},data:function(){return{showNav:!1,showGoToTop:!1,theme:localStorage.getItem("theme")||"dark"}},computed:{stylesDarkThumb:function(){return a("2210")},stylesLightThumb:function(){return a("178f")},stylesDark:function(){return a("b2d7")},stylesLight:function(){return a("0f35")}},mounted:function(){this.initScrollWatcher()},methods:{initScrollWatcher:function(){var t=this;function e(t,e){var a=Date.now();return function(){a+e-Date.now()<0&&(setTimeout(t,e),a=Date.now())}}["scroll","resize"].forEach((function(a){window.addEventListener(a,e(t.scrollHandler,100))}))},scrollHandler:function(){var t=this.$refs.header.$el.querySelector("h1"),e=parseInt(window.getComputedStyle(t).marginTop),a=t.offsetTop-e,n=this.$refs.header.$el.offsetHeight,r=n-a;this.showNav=window.scrollY>r,this.showGoToTop=window.scrollY>0},celebrate:function(t){Object(Y["confetti"])(t,{angle:90,spread:60,startVelocity:50,elementCount:250,dragFriction:.125,duration:3e3,stagger:2,width:"10px",height:"10px",colors:["#393939","#747369","#515151","#a09f93","#2b2b2b","#ffffff","#e2e0d7","#ff7a7f","#f99157","#dd99dd","#66aadd","#ffee66","#6699cc","#66ffdd","#99dd99","#99cc99","#ff332a","#66cccc","#d27b53","#f92672","#a6e22e","#967efb","#565656"]}),window.removeEventListener("focus",this.celebrate)},paypal:function(t){var e=this;window.open("https://paypal.me/runbjo"),setTimeout((function(){window.addEventListener("focus",e.celebrate(t.target))}),1e3)},patreon:function(t){var e=this;window.open("https://www.patreon.com/rune_b"),setTimeout((function(){window.addEventListener("focus",e.celebrate(t.target))}),1e3)},toggleLigatures:function(t){t.target.innerText="enabled"===t.target.innerText?"disabled":"enabled",this.$refs.ligatures.querySelectorAll(".crossfade").forEach((function(t){t.classList.toggle("hidden")}))}}},at=et,nt=(a("5c0b"),Object(_["a"])(at,u,m,!1,null,null,null)),rt=nt.exports,st=a("c259"),ot=a.n(st),it=a("8f94"),lt=a.n(it),ct=(a("a7be"),a("5299")),ht=a.n(ct);d["default"].config.productionTip=!1,d["default"].use(ot.a,{container:"body",duration:1e4,easing:"ease",offset:-200,force:!0,cancelable:!0,onStart:!1,onDone:!1,onCancel:!1,x:!1,y:!0}),d["default"].use(lt.a),d["default"].use(ht.a),window.application=new d["default"]({render:function(t){return t(rt)}}).$mount("#app")},"5c0b":function(t,e,a){"use strict";a("e332")},"6c19":function(t,e,a){"use strict";a("7c96")},"7af8":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"content"},[a("div",{staticClass:"scroll-head",attrs:{id:"testimonials"}}),a("el-row",[a("el-col",[a("h1",{staticClass:"centre"},[a("em",[t._v("What people are saying")])])])],1),a("el-row",{attrs:{justify:"center",gutter:20}},t._l(t.selectedTestimonials,(function(e){return a("el-col",{key:e+t.theme,attrs:{xs:24,lg:6}},[a("Tweet",{attrs:{id:e,options:{theme:t.theme,conversation:"none",align:"center"}}})],1)})),1)],1)},r=[],s=(a("55dd"),a("7397")),o={name:"Testimonials",components:{Tweet:s["Tweet"]},props:{theme:{type:String,default:localStorage.getItem("theme")||"dark"}},data:function(){return{testimonials:["1144627524078571521","1142187688751071233","1395599234531946496","1149023631835635713","1359508666446094336","1438499728937795593","1249238897994780672","1430565916815855624","1340083805370134531","1159431742245261313","1188221984959676416","1201505985984110592","1188916442902626304","1344488694804201472","1178698424109195265"],selectedTestimonials:[]}},mounted:function(){var t=this.testimonials.sort((function(){return.5-Math.random()}));this.selectedTestimonials=t.slice(0,4)}},i=o,l=(a("5156"),a("2877")),c=Object(l["a"])(i,n,r,!1,null,"ba50133e",null);e["default"]=c.exports},"7c96":function(t,e,a){},"7fc2":function(t,e,a){},9276:function(t,e,a){t.exports=a.p+"media/headerbg.0d4d3836.webm"},9412:function(t,e,a){},"94f2":function(t,e,a){t.exports=a.p+"img/bronze.6c902090.png"},a071:function(t,e,a){"use strict";a("2593")},b2d7:function(t,e,a){t.exports=a.p+"img/styles-dark.42978ce3.png"},b671:function(t,e,a){"use strict";a("7fc2")},d677:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwQTM4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwQTI4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTMyOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBNDE0QUJDOTlBMTExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8kSqyAAADD5JREFUeNrsXQ2QlVUZfllYUBe2YCuQFNel9Q9EcVEQSA3xB2pTSVcESjELnZomBW0ya5w0m1GyzKSmtEYDc6hGohRDrUGQZUko0EARCAXK+FEwXFz2yvY+fO/d+fbu/fm++533+7n3PDPPwC6Xc77zPvc7P+95z3t6dHR0kEXpoleJtGMwcwTzE8w6Zi1zELNG2JfZJ+P/tDEPMPcK32JuY25lbmauZ/476YbpkcA3+BjmucxxwlHMAUp1vc18ifmisJnZagU2jyHMKcxJzPOzvI1hAW/9MuYS5pPMN6zAxeNjzOnMq5mjY/qMLcyFzPnMXVZgb7iQOYt5ObMyIT1hO/MPzJ8xn7cCZ5/sTWXeKpOlJAOTs/uYTzBT5S4whJ3BvIM5tMRWKFuYd0v3nSpHgT/NnMs8pcSXoq8xZzOfKheBT2I+wLy0zHwOzzC/LoKHhooQ68KE6XYZo8pNXJI2rxMbVJbaG3wa83HmGWRBIvQ05oakv8E9mF9hrrHidsEZYpOvio0S+QbD//tL5lVWz7z4HXMmOX7xxAhcz1wkXbNFYWxkXsZ8PQld9HjmKiuuL5wqNhsfd4GbyHHVDbCa+cYAsV1TXAXGOPIbZm+rVdHoLTa8Pm4C3yQTqgqrkRFNHhGbxmKSNVPEtTCPLwa1bVCBm6RLsW+uDg4zryFnzzl0gcfLpMCOubo4RM4e+YowBa6Xab2dLYcDxIaNKWadXIzA8FCtlrWbRXiAM+Qc8unx8jt2wm/6KytuJDhVbN9DU2BsHFwZ8EH3keNof1n+XurYJ21Fm/cHLOtK0UCli4brcS0FD1n9DHWNbjhOJhHYL4U/9uiEC3qQnAC8Z2QSusP1b43MxQHLR+huA/OfJgXGBvXfKPiWHyYLOHHQnuPfq8mJ0UJUZdKC7/CWIqoSMVjv5rHjf5n9A9aF/eSz89jRdxd9G5nZz11S4KFgmHlSF4LcWxIg7Gp51hHy7O/m+Wy72CAoYJ9vmBqDT2Z+25AxXvDxWXRxOKLyOXLOC8UNW2VMHCPP6hXLDdV/h2gTuIv+M/NiQw/VIOO4X2DcnyNftFxzgDdkXHqVuZOcg2MgDpa9J2Njm6s8jPVV5BxOGyz8ODlRnsOYJ+QZA+9h3st8v0gbvGTInkuZlwQRGKGtfzL0MO1i0PYAZcDBAkf8cOZK6RGWy/hnOiIC6/3TyfHYnUfOQTd8gW6gYJGRlfKFMxV4lzlp9SxwL2nQSYYe5M08b4XftTh4OOQuOT2cmah3u6weTOB1WeGk/I7BMwyKC7xlqJyOCMRNC2uq3v8YfK560crXJKtSBnHT60MLB6bPGEOr3n4ExkGwoVaHxABaXe1H4DkKD3GU1aETGt66W70KPJF0vEgnWF07MUShzNNFu4IC36jUqIHMflbbIzYYqFT2TYUERtqEzypVjqXNWVbfIzbQOq7SKBrmFHgG6Z58m2j1VbVBZeaSKVPgJuXGNVp91W3QlEtgJBDTzmZzt9VX3Qaj3Utct8CXK1d8Fzkn6codsMF3leu4LJvAkxQrXBVCo5KEu8QmWpjcObOVzQakB0S0hUYGuQ9kjbbR6toF2JbELphGvlBsaSKkuTX9Bo8jvfSAD1lxs+JVsY0G+oimnV30WKWKsCH+PatlTtxDxQUNeMFYt8DjlCr5NcU0h2NMsEtspIFx7jF4L+kcQ8GUfbXVMS9wWkEjuBBzqhoIjDikHQoVbCW75egVW8QPYRrHoYvWij9+2urmGUuUyh0BgeuVCl9hdYvcVvUQuFapcDv2Rm+rWi2BERr7ptXNM2CrlJbAgxQKRljoB1Y3z4C4OxXKHQSBaxQK/p/VzDc0jtLWaAm83+rlGwe0BNaIk+pp9fINjU2HfhBYI0tOX6uXb2iEFffWym9VZfXyjWqNQrUEtrmzYmIz+KI1EkYfki7HXm3q/UXDtmGlRsEppW/jYKubZwwmnXDlVIXikuZEq5tn1CmVu7+C9HJV1VndIn8Z9kHg3UqFj7K6ecbZSuXuhsA7lQofa3WL3FY7NQU+k5xwXIvCPoMRmgJvVioc7soJVr+CmEB6rt3NEHiT4sNPsfoVxBWKZW+CowPpfLYrVYBtQ+w3t1odswJDGLIPaR2MPx5vMCIq9ypVgAefbnXMiemK4iJsdkfaF71GsRG3kL20Ixt6iW20cCRdYtrwKxUrwiGra62e3fB50r39vNkt8IvKjcEZnGqraSeqxSaaWOEWGD+0KVaGidb9VtdO/Ih0gh3TaMsUGFtVy5UbhVu8plltjyRJmalcx3LRtMvk548hNO5hcpJ8lytw4u/nIdTTmQLanU4Ymei2hVA5Ut4jwXhLmYmLk5ZLQ5qL1JKTIL3LG4xfhHHcpFoaenEZiYv8J8+GJO7qtLiUZX26IMRZJE7U3UmlHWKLtiFt0lMUXhrHx90/ZGZ8/yg5u0uVIRoBSzRc9rSuxMRFysJ5pJ97zA2cCYPreVeuNxib/4simHjAk/YT0snCGjYQnfELcjxJo0OuexFlpMzIdmfDBcy/+ii0WWZtKBjZArB5jS2wXkV+AzFM/JSSdfwUyUU/SU6m3qYIh50JmdrlupQDV9+M9FAgbg/5EHU/SYiu/mbmbCo+3hepl56QL8/fKX4huD1lyYekY1Mp+iBDDHFndvvm5RAYi3Gv2V9uZ34/y0IbnpTH5I0cGfDhcR3cC9Jb4Iq9Vyj8iy0xtuE6n1HSS0HcD8foCwff9nyvAqN7RaIur0lUHiDnqrU215pvgMyUEZKykFzp9QwB25xbZD39TTJ/Ewsmmj+WttRJTxVXwA7YuOge4w6Bc/DaDn/YyByZUcYVzGXMY+VP0ziQpU6TbGC+3xF/XJerDfkaV8Fc77OiVuYlrjKGMXczJzFrmNsNN2yWorhpfi3m4r4sWmV9/kJX28ED4zcdEu5HQlbzbHvMkynPNWxFTCrOIv1LsjCZQtLQuN56PpnypGEqFGmxhPzfXYgrY35PXe8OqBJXHcaIRw017D4K5wY0rBDujam4T1OBHFtebh/FRAt3GPrNRovdqfQFH8fIpAj37OG2TORKPjlAwxDMN5DCu02trziB4nT3Eya0w2SCRcW+wekZ2neKeIBG18y5VTxWt8nyppGCBdz/hcK9Ku+A1Bkn3FlIXK8CA/dTcXfe/sBVBxwXy6S7xloSV9duKLJxKyMwaJwy98G1O9fLB70KnBLnh9+35hTqfssI7uPFjseD5By6wpfgkI8yEai/NAKjxiWp+UHRImVSYOA1cT/6xeyMn58jJ7LjoHTdc8TN9y1ydpYyg+T3iGcM9xyMkS/NPyIw7LaYCHyzOKG8oYh14fwi1mrn5invROazzAeZR8nv+jOHMPu5PjeKOZd5fghr32ysjcGad4Hf5y6moVXMdT4frJnZM0d5dcw98rkG+d158rsNIjZ+t1Y+Mz8igT8SsbhwOvX1+9zFnDh4T5Y/fg6Oj5FZXzYgcfjx5ISRrnGNM0jQ+S+Xfxt3AV3KvD6irjEVYbe8R2zuOxuel3VwLmA35XnydxcuIjfmUTKBnaN3IppUTSx25RDkzBC27qb69CY9JNP7ygQKHMUzw7bTgiwLgx4KW8z8gk+RMatGQMFFCRO4KgJxYdtAIVQmTv0tkHHRj8jDZS2Lvdwbyd8xjmOp9JOdwpazyECUa5AxOBM46/pYgC8N3G6vyHpzn6yHEeuEdMfYuKgl54o8BBL0p/AjOmpl0hfWm2skhNlkCls8EJKqLfQ58UpjKHmPIOlTom/uQZnXLDZVoOmD2dha/BTp33Z2dAmKC5tdaFJcDYFJxtVzInInJhXrxWbNpgvWSq2AszHYVHjUalcQiF4dS67zREkQGIDH6zrmDfJ3i+72+ZJMqNTsE0ZylEfICchusZp2GcYQT/awdkVhZb9BNj1EdNxC4UZixHGWPEdssSmMCsNMb4TgtR+SE534ZBmKizafRk6AQ2iXhkWRvwqTiSmyJFhbBsLiXNVF0uZtYVceZYIyBLEhNusa8h8Ok4SUTBulbWjjc1E9RNQZ6OAnxQlC+KZx7HKVx//3dgTP6jXNVIu0Zbi07XCUBjbpizYFBAekz9lm81itoeiyySOytCGH+L8l51zzyjgZM44Cp4EN9qvI2cRAcAE2HnC4+ctaTgEPqCXn9P4F8maix1kg4r4TRyPGWWCLEhiDLZTxfwEGAIg2ItsKhKpcAAAAAElFTkSuQmCC"},e18a:function(t,e,a){"use strict";a("9412")},e332:function(t,e,a){},f2c0:function(t,e,a){t.exports=a.p+"media/headerbg.d1fdad00.mp4"},f46e:function(t,e,a){}}); +//# sourceMappingURL=app.316cd042.js.map \ No newline at end of file diff --git a/js/app.08afe459.js.map b/js/app.316cd042.js.map similarity index 99% rename from js/app.08afe459.js.map rename to js/app.316cd042.js.map index b640a64..fcf627a 100644 --- a/js/app.08afe459.js.map +++ b/js/app.316cd042.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/img/styles-light.png","webpack:///./src/assets/img/styles-light-thumb.png","webpack:///./src/assets/img/styles-dark-thumb.png","webpack:///./src/assets/img/silver.png","webpack:///./src/assets/img/gold.png","webpack:///./src/assets/img/unicorn.png","webpack:///./src/components/Testimonials.vue?c5e4","webpack:///./src/plugins/element.js","webpack:///./src/App.vue?0420","webpack:///./src/components/NavBar.vue?f99b","webpack:///./src/utils/init-gradients.js","webpack:///src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?12ab","webpack:///./src/components/NavBar.vue","webpack:///./src/components/Header.vue?25b6","webpack:///src/components/Header.vue","webpack:///./src/components/Header.vue?4a23","webpack:///./src/components/Header.vue","webpack:///./src/utils/lazy-load-component.js","webpack:///./src/components/Loader.vue?274b","webpack:///src/components/Loader.vue","webpack:///./src/components/Loader.vue?6ef5","webpack:///./src/components/Loader.vue","webpack:///./src/components/Faq.vue?f271","webpack:///src/components/Faq.vue","webpack:///./src/components/Faq.vue?63dc","webpack:///./src/components/Faq.vue","webpack:///./src/components/Credits.vue?2368","webpack:///src/components/Credits.vue","webpack:///./src/components/Credits.vue?e514","webpack:///./src/components/Credits.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a37b","webpack:///./src/App.vue","webpack:///./src/main.js","webpack:///./src/App.vue?df62","webpack:///./src/components/Header.vue?4057","webpack:///./src/components/Testimonials.vue?e0e8","webpack:///src/components/Testimonials.vue","webpack:///./src/components/Testimonials.vue?d893","webpack:///./src/components/Testimonials.vue","webpack:///./src/assets/video/headerbg.webm","webpack:///./src/assets/img/bronze.png","webpack:///./src/components/Loader.vue?6c5b","webpack:///./src/assets/img/styles-dark.png","webpack:///./src/components/Faq.vue?8f50","webpack:///./src/assets/img/github.png","webpack:///./src/components/NavBar.vue?d264","webpack:///./src/assets/video/headerbg.mp4"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Vue","use","_vm","this","_h","$createElement","_c","_self","attrs","ref","showNav","showGoToTop","on","$event","theme","staticClass","stylesDark","stylesDarkThumb","stylesLight","stylesLightThumb","_v","toggleLigatures","paypal","patreon","staticRenderFns","class","show","directives","rawName","expression","toggleTheme","textColour","initGradients","element","darkGradients","lightGradients","Granim","direction","states","gradients","transitionSpeed","props","Boolean","granim","localStorage","getItem","backgroundColour","watch","spin","changeState","newVal","mounted","setAppearance","methods","targets","rotate","scale","strokeColor","delay","duration","easing","$refs","themeIcon","style","transform","strokeDashoffset","loop","setItem","$emit","alternateBackgroundColour","root","dataset","setProperty","component","domProps","_m","showSharing","inlineTemplate","render","String","default","immediate","initTyped","strings","startDelay","typeSpeed","backSpeed","smartBackspace","backDelay","shuffle","lazyLoadComponent","resolveComponent","componentFactory","background","height","maxHeight","loading","loadingData","$el","backgroundColor","observer","IntersectionObserver","entries","intersectionRatio","unobserve","observe","width","computedWidth","maxWidth","Number","minWidth","computed","revealFaq","faqItems","components","VueFaqAccordion","NavBar","Header","CodeView","Loader","HeroImage","Compare","Testimonials","Faq","Credits","initScrollWatcher","throttle","fn","wait","time","Date","now","forEach","addEventListener","scrollHandler","scrollY","triggerHeight","celebrate","angle","spread","startVelocity","elementCount","dragFriction","stagger","colors","removeEventListener","open","innerText","ligatures","querySelectorAll","sample","classList","toggle","config","productionTip","VueScrollTo","container","offset","force","cancelable","onStart","onDone","onCancel","x","y","VueCodemirror","SocialSharing","application","h","App","$mount","_l","testimonial","conversation","align","testimonials","selectedTestimonials","shuffled"],"mappings":"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9ChK,KARF,WASI,MAAO,CACL8J,OAAQ,KACRiC,aAAa,IAGjB7B,MAAO,CACLjC,MAAO,CACL,QADN,oEACA,KADA,gGAEA,wCAEA,4BACA,4BALA,SAOA,gBACA,2BACA,cACA,aACA,kBACA,SAZA,aAcA,aACA,mDACA,8CAEA,iDACA,6CAGA,gBACA,2BACA,cACA,aACA,kBA1BA,kBA6BA,mBA7BA,2GA+BMmE,WAAW,IAGf9B,QAjDF,WAkDIhD,KAAKwC,OAAS,EAAlB,gCACIxC,KAAKwC,OAAOM,YAAY9C,KAAKW,OAC7BX,KAAK+E,aAEP7B,QAAS,CACP6B,UADJ,WAEM,IAAN,GACQC,QAAS,CACjB,cACA,SACA,6DACA,MACA,iBACA,KACA,YACA,aACA,UACA,qBACA,YACA,OACA,kBACA,YACA,kBACA,WACA,SACA,SACA,UACA,aACA,OACA,OACA,QACA,UACA,OACA,SACA,UACA,WACA,SACA,aACA,WACA,aACA,gBACA,yBACA,YACA,YACA,UACA,YACA,YACA,eACA,YACA,QACA,OACA,OACA,OACA,WACA,QACA,eACA,WACA,WACA,QACA,QACA,QACA,YACA,QACA,aACA,WACA,SACA,QACA,eACA,YACA,OACA,OACA,eACA,gBACA,WACA,UACA,UACA,QACA,WACA,aACA,SACA,YACA,WACA,kBACA,OACA,UACA,eACA,YACA,UACA,UACA,QACA,qBACA,OACA,QACA,WACA,gBACA,WACA,QACA,UACA,YACA,QACA,UACA,SACA,QACA,YACA,WACA,YACA,cACA,aACA,OACA,SACA,UACA,YACA,WACA,eACA,YACA,YACA,WACA,cAEQC,WAAY,IACZC,UAAW,GACXC,UAAW,GACXC,gBAAgB,EAChBC,UAAW,KACXtB,MAAM,EACNuB,SAAS,GAGX,OAAO,IAAI,EAAjB,oBC3TgV,ICQ5U,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBA,SAASC,EAAT,GAOZ,IACGC,EAPJC,EAMC,EANDA,iBACAC,EAKC,EALDA,WACAC,EAIC,EAJDA,OACAC,EAGC,EAHDA,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","file":"js/app.08afe459.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2684151d\":\"e6ab8fae\",\"chunk-60daec7d\":\"babc1a84\",\"chunk-64d01f97\":\"0ffa81d2\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-2684151d\":1,\"chunk-60daec7d\":1,\"chunk-64d01f97\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2684151d\":\"1a1a5e8a\",\"chunk-60daec7d\":\"4720ab7c\",\"chunk-64d01f97\":\"77c23192\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/victor-mono/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/styles-light.a371a6a8.png\";","module.exports = __webpack_public_path__ + \"img/styles-light-thumb.13bbf4d0.png\";","module.exports = __webpack_public_path__ + \"img/styles-dark-thumb.c1970fa8.png\";","module.exports = __webpack_public_path__ + \"img/silver.b4b645bb.png\";","module.exports = __webpack_public_path__ + \"img/gold.f6747703.png\";","module.exports = __webpack_public_path__ + \"img/unicorn.f5208ffb.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Testimonials.vue?vue&type=style&index=0&id=ba50133e&lang=scss&scoped=true&\"","import Vue from 'vue'\nimport { Row, Col, Button, ButtonGroup } from 'element-ui'\n\nimport 'element-ui/lib/theme-chalk/display.css'\n\nVue.use(Row)\nVue.use(Col)\nVue.use(Button)\nVue.use(ButtonGroup)\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('NavBar',{ref:\"navbar\",attrs:{\"show\":_vm.showNav,\"show-go-to-top\":_vm.showGoToTop},on:{\"darkTheme\":function($event){_vm.theme = 'dark'},\"lightTheme\":function($event){_vm.theme = 'light'}}}),_c('Header',{ref:\"header\",attrs:{\"theme\":_vm.theme}}),_c('div',{staticClass:\"initial content\"},[_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',[(_vm.theme === 'dark')?_c('a',{attrs:{\"href\":_vm.stylesDark,\"target\":\"_blank\"}},[_c('img',{staticClass:\"styles-image dark\",attrs:{\"src\":_vm.stylesDarkThumb}})]):_c('a',{attrs:{\"href\":_vm.stylesLight,\"target\":\"_blank\"}},[_c('img',{staticClass:\"styles-image light\",attrs:{\"src\":_vm.stylesLightThumb}})]),_vm._v(\"\\n Victor Mono is an open-source monospaced font with optional\\n \"),_c('em',[_vm._v(\"semi-connected cursive italics\")]),_vm._v(\" and programming\\n symbol ligatures.\\n \"),_c('br'),_c('br'),_vm._v(\"\\n The typeface is slender, crisp and narrow, with a large x-height\\n and clear punctuation, making it legible and ideal for code.\\n It comes in seven weights and Roman, \"),_c('em',[_vm._v(\"Italic\")]),_vm._v(\" and\\n \"),_c('em',{staticClass:\"alt\"},[_vm._v(\"Oblique\")]),_vm._v(\" styles.\\n \")])])],1)],1),_c('div',{staticClass:\"content code-segment\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"try\"}}),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Try it\")])])])],1),_c('el-row',{staticClass:\"negative-margins\",attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"sm\":18}},[_c('CodeView',{attrs:{\"theme\":_vm.theme}})],1)],1)],1),_c('div',{ref:\"ligatures\",staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"ligatures\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Ligatures \")]),_c('el-button',{staticClass:\"normal\",attrs:{\"type\":\"\"},on:{\"click\":_vm.toggleLigatures}},[_c('em',[_vm._v(\"enabled\")])])],1)])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('div',{staticClass:\"ligature-samples\"},[_c('h1',{staticClass:\"no-margin centre crossfade visible\"},[_vm._v(\"\\n /> ~- -~ ~@\\n <~ <~> <~~ ~> ~~ ~~>\\n >= <= -> -<\\n >-> >>- <<- <-> ->> -<< <-<\\n ==> => =/= !== != <==\\n >>= =>> >=> <=> <=< <<= =<<\\n .- .= =:= =!= == === :: := :> :< >: ;;\\n <| <|> |> <>\\n <$ <$> $> <+ <+> +>\\n ?= /= /== /\\\\ \\\\/ __ && ++ +++\\n \")]),_c('h1',{staticClass:\"no-margin centre crossfade hidden no-ligatures\"},[_vm._v(\"\\n /> ~- -~ ~@\\n <~ <~> <~~ ~> ~~ ~~>\\n >= <= -> -<\\n >-> >>- <<- <-> ->> -<< <-<\\n ==> => =/= !== != <==\\n >>= =>> >=> <=> <=< <<= =<<\\n .- .= =:= =!= == === :: := :> :< >: ;;\\n <| <|> |> <>\\n <$ <$> $> <+ <+> +>\\n ?= /= /== /\\\\ \\\\/ __ && ++ +++\\n \")])])])],1)],1),_c('HeroImage',{attrs:{\"image\":\"powerline\",\"theme\":_vm.theme}}),_c('div',{staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"why\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Why\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',{staticClass:\"columns\"},[_vm._v(\"\\n When it comes to programming fonts, I prefer something thin and\\n relatively condensed,\\n but with a more \"),_c('em',[_vm._v(\"informal, flowing and human style\")]),_vm._v(\"\\n for standouts like comments and certain keywords.\\n \"),_c('br'),_c('br'),_vm._v(\"\\n In the past, I always ended up looking for something else after\\n using a font for a while, because something didn't look right to me.\\n So I started sketching and designing something myself.\\n I wanted something that:\\n \"),_c('ul',[_c('li',[_vm._v(\"had friendly and distinct italics\")]),_c('li',[_vm._v(\"had a strict, geometric and readable regular style\")]),_c('li',[_vm._v(\"had programming symbol ligatures\")]),_c('li',[_vm._v(\"was slender and elegant\")]),_c('li',[_vm._v(\"narrow enough to fit a lot of text\")]),_c('li',[_vm._v(\"wide enough to be scannable\")]),_c('li',[_vm._v(\"looked consistent and professional\")])]),_vm._v(\"\\n Other stuff (like having a million alternative glyphs or as many\\n ligatures as possible) wasn't (and isn't) important.\\n Victor Mono is the result. You might like it as well.\\n That's brilliant! You might not. That's also fine: use a font\\n that works for you. 😛\\n \")])])],1)],1),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"compare\"}}),_c('Compare',{attrs:{\"theme\":_vm.theme}})],1),_c('div',{staticClass:\"alternate-bg\"},[_c('HeroImage',{attrs:{\"image\":\"keyboard\",\"theme\":_vm.theme,\"suffix\":\"jpg\"}}),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"sm\":18}},[_c('div',{staticClass:\"right caption\"},[_vm._v(\"\\n Designs submitted to\\n \"),_c('a',{attrs:{\"href\":\"http://wasdkeyboards.com\",\"target\":\"_blank\"}},[_vm._v(\"\\n WASD Keyboards\\n \")])])])],1)],1),_c('div',{staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"download\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Get it\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',[_vm._v(\"\\n If you try it out and like it, I would be very grateful for any\\n donations. It means I can cover some costs for software and time\\n spent - and keep refining and extending the font.\\n \")])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{staticClass:\"centre\"},[_c('a',{staticClass:\"donate\"},[_c('el-button',{staticClass:\"double-line margin-bottom\",attrs:{\"icon\":\"el-icon-medal-1\",\"type\":\"success\"},on:{\"click\":_vm.paypal}},[_vm._v(\"\\n Donate\"),_c('br'),_c('em',[_vm._v(\"via PayPal\")])])],1),_vm._v(\"\\n  \\n \"),_c('a',{staticClass:\"donate\"},[_c('el-button',{staticClass:\"double-line margin-bottom\",attrs:{\"icon\":\"el-icon-medal-1\",\"type\":\"success\"},on:{\"click\":_vm.patreon}},[_vm._v(\"\\n Support\"),_c('br'),_c('em',[_vm._v(\"via Patreon\")])])],1),_vm._v(\"\\n  \\n \"),_c('a',{staticClass:\"download-link\",attrs:{\"href\":\"VictorMonoAll.zip\"}},[_c('el-button',{staticClass:\"double-line margin-bottom\",attrs:{\"icon\":\"el-icon-download\",\"type\":\"info\"}},[_vm._v(\"\\n Download\"),_c('br'),_c('em',[_vm._v(\"~8MB ZIP\")])])],1)])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":12,\"lg\":10}},[_c('p',{staticClass:\"small centre\"},[_c('em',[_vm._v(\"With\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/Homebrew/homebrew-cask-fonts\"}},[_vm._v(\"\\n homebrew-cask-fonts\")]),_vm._v(\",\\n just run\\n \")]),_c('br'),_c('code',[_vm._v(\"brew tap homebrew/cask-fonts\")]),_c('br'),_c('code',[_vm._v(\"brew install --cask font-victor-mono\")])])]),_c('el-col',{attrs:{\"xs\":22,\"sm\":12,\"lg\":10}},[_c('p',{staticClass:\"small centre\"},[_c('em',[_vm._v(\"For use in apps, web pages or other projects:\")]),_c('br'),_c('code',[_vm._v(\"npm i victormono\")]),_vm._v(\"\\n ->\\n \"),_c('code',[_vm._v(\"import 'victormono'\")]),_c('br'),_vm._v(\"\\n Style elements with \"),_c('code',[_vm._v(\"font-family: 'Victor Mono'\")])])])],1)],1),_c('div',[_c('a',{attrs:{\"href\":\"https://shop.spreadshirt.com/victor-mono/\",\"target\":\"_blank\"}},[_c('HeroImage',{attrs:{\"image\":\"merch\",\"theme\":_vm.theme,\"suffix\":\"jpg\"}})],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"sm\":18}},[_c('div',{staticClass:\"right caption\"},[_vm._v(\"\\n Buy cool merch at Victor Mono Merch Store:\\n \"),_c('a',{attrs:{\"href\":\"https://shop.spreadshirt.com/victor-mono/\",\"target\":\"_blank\"}},[_vm._v(\"\\n North America\")]),_vm._v(\"\\n /\\n \"),_c('a',{attrs:{\"href\":\"https://shop.spreadshirt.net/victor-mono/\",\"target\":\"_blank\"}},[_vm._v(\"\\n Europe\")])])])],1)],1),_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"how\"}}),_c('div',{staticClass:\"content\"},[_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"How to use\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',{},[_vm._v(\"\\n 1) \"),_c('a',{staticClass:\"download-link\",attrs:{\"href\":\"VictorMonoAll.zip\"}},[_vm._v(\"Download\")]),_vm._v(\" the font\"),_c('br'),_vm._v(\"\\n 2) Unpack the ZIP\"),_c('br'),_vm._v(\"\\n 3) \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+install+fonts\",\"target\":\"_blank\"}},[_vm._v(\"Install\")]),_vm._v(\" the font (all styles or the ones you want)\"),_c('br'),_vm._v(\"\\n 4) \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+change+font+settings+in+VS+Code\",\"target\":\"_blank\"}},[_vm._v(\"Change the font settings in your code editor / IDE of choice\")]),_vm._v(\" to \\\"Victor\\n Mono\\\"\"),_c('br'),_vm._v(\"\\n 5) \"),_c('em',[_vm._v(\"Optional\")]),_vm._v(\" · \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+change+theme+in+VS+Code\",\"target\":\"_blank\"}},[_vm._v(\"Set the code theme\")]),_vm._v(\" to one you like\\n (try\\n \"),_c('a',{attrs:{\"href\":\"https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo\",\"target\":\"_blank\"}},[_vm._v(\"this one\")]),_vm._v(\",\\n for example)\\n \"),_c('br'),_vm._v(\"\\n 6) \"),_c('em',[_vm._v(\"Optional\")]),_vm._v(\" · \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+modify+themes+in+VS+Code\",\"target\":\"_blank\"}},[_vm._v(\"Modify the theme\")]),_vm._v(\" colours and its application of normal/italic/bold styles\\n \")])])],1)],1),_c('div',{staticClass:\"content alternate-bg\"},[_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Supporters\")])])])],1),_c('el-row',{attrs:{\"justify\":\"center\"}},[_c('el-col',{staticClass:\"margin-bottom\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/bronze.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Bronze\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Fan\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$1/month or - $9.99 in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to everyone contributing! ❤️\\n \")]),_c('p')]),_c('el-col',{staticClass:\"margin-bottom\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/silver.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Silver\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Supporter\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$2/month or $10-24.99 in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to everyone contributing! ❤️\\n \")]),_c('p')]),_c('el-col',{staticClass:\"gold bottom-margin\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/gold.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Gold\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Patron\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$5/month or $25-45 in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to:\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Diogo Almeida\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Dieter Auracher\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Emerson Beltrán\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Colton Borg\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Dion Bridger\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_c('a',{attrs:{\"href\":\"https://github.com/datarootsio\",\"target\":\"_blank\"}},[_vm._v(\"\\n datarootsio\\n \")])]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Julien Durillon\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Michael Huggett\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Igor Harden\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n K. Bruce Jones\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n kmwallio\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Josh Kraker\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Stuart Morris\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n RKC\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Lars Rönnbäck\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Michael Schore\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Robert Ruf\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Christoph Siedentop\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Spiritualminded\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n thief#0001\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Ashley Kaine Towns\\n \")]),_c('p')]),_c('el-col',{staticClass:\"rainbow bottom-margin\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/unicorn.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Rainbow\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Champion Guardian Unicorn\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$10/month or $45+ in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to:\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Matthew Anderson\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Parker Ault\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n April Collier\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Matthew A Drover\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Élise Duverdier\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Lady Isak Grozny\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Sven Koschnicke\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Elizabeth Marston\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Matthew O'Gorman\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Poudingue\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Emily Price\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Alex Simons\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Justin Slepak\\n \")]),_c('p')])],1)],1),_c('Testimonials',{attrs:{\"theme\":_vm.theme}}),_c('HeroImage',{attrs:{\"image\":\"specimen\",\"theme\":_vm.theme}}),_c('Faq'),_c('HeroImage',{attrs:{\"image\":\"glyphs\",\"theme\":_vm.theme}}),_c('Credits')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[_c('div',{staticClass:\"navbar\",class:{ 'visible': _vm.show }},[_c('canvas',{ref:\"gradients\",staticClass:\"navbar-gradients\"}),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#app'),expression:\"'#app'\"}],class:{ 'collapsed': !_vm.showGoToTop },attrs:{\"href\":\"#\"}},[_c('i',{staticClass:\"el-icon-arrow-up\"})]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#try'),expression:\"'#try'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Try\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#why'),expression:\"'#why'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Why\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#download'),expression:\"'#download'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Get\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#how'),expression:\"'#how'\"}],staticClass:\"hidden-xs-only\",attrs:{\"href\":\"#\"}},[_vm._v(\"\\n How\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#faq'),expression:\"'#faq'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n FAQ\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#credits'),expression:\"'#credits'\"}],staticClass:\"hidden-xs-only\",attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Credits\")]),_c('a',{attrs:{\"href\":\"https://github.com/rubjo/victor-mono\",\"target\":\"_blank\"}},[_c('img',{staticClass:\"octocat\",attrs:{\"src\":require(\"../assets/img/github.png\"),\"alt\":\"Octocat\"}})]),_c('a',{ref:\"themeIcon\",staticClass:\"themeIcon\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.toggleTheme}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.theme === 'light'),expression:\"theme === 'light'\"}],staticClass:\"moon theme\"},[_c('svg',{attrs:{\"height\":\"52\",\"width\":\"38\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M26.01 1A25.02 25.02 0 0 0 1 26.01a25.03 25.03 0 0 0 35.01 22.91 1.2 1.2 0 0 0 0-2.18 22.62 22.62 0 0 1 0-41.46 1.2 1.2 0 0 0 0-2.18 24.93 24.93 0 0 0-10-2.1z\",\"fill\":\"none\",\"stroke\":_vm.textColour,\"stroke-width\":\"2\"}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.theme === 'dark'),expression:\"theme === 'dark'\"}],staticClass:\"sun theme\"},[_c('svg',{attrs:{\"height\":\"53\",\"width\":\"53\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":_vm.textColour,\"stroke-width\":\"2\"}},[_c('circle',{attrs:{\"cx\":\"26.58\",\"cy\":\"26.62\",\"r\":\"9.44\"}}),_c('path',{attrs:{\"d\":\"M26.58 11.78V1.7M26.58 51.85v-10.1M41.09 26.25H51.2M1.64 26.25h10.13\"}}),_c('path',{attrs:{\"d\":\"M15.85 15.9L8.7 8.76M44.18 44.23l-7.14-7.14M36.34 15.86l7.16-7.15M8.45 43.76l7.16-7.16\"}}),_c('path',{attrs:{\"d\":\"M32.38 12.6l3.86-9.32M17.05 49.62l3.86-9.32M40.25 31.53l9.35 3.87M3.8 16.43l9.36 3.88\"}}),_c('path',{attrs:{\"d\":\"M20.77 12.6l-3.86-9.32M36.1 49.62l-3.86-9.32M39.72 20.42l9.35-3.87M3.28 35.51l9.35-3.87\"}})])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Granim from 'granim'\n\nexport default function initGradients (element, theme) {\n const darkGradients = [\n ['#2b76b9', '#35eb93'],\n ['#cc6622', '#8c1bab'],\n ['#380036', '#0cbaba'],\n ['#85d797', '#5d4257'],\n ['#0250c5', '#d43f8d'],\n ['#13547a', '#60b0b7'],\n ['#a40606', '#d98324']\n ]\n\n const lightGradients = [\n ['#8af094', '#ffd1ff'],\n ['#f6d365', '#fda085'],\n ['#84fab0', '#8fd3f4'],\n ['#fa709a', '#fee140'],\n ['#4facfe', '#00f2fe'],\n ['#43e97b', '#38c9f7'],\n ['#f83600', '#f9d423']\n ]\n\n return new Granim({\n element,\n direction: 'diagonal',\n states: {\n 'default-state': {\n gradients: theme === 'dark' ? darkGradients : lightGradients,\n transitionSpeed: 7500\n },\n 'dark': {\n gradients: darkGradients,\n transitionSpeed: 7500\n },\n 'light': {\n gradients: lightGradients,\n transitionSpeed: 7500\n }\n }\n })\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavBar.vue?vue&type=template&id=3df62adc&scoped=true&\"\nimport script from \"./NavBar.vue?vue&type=script&lang=js&\"\nexport * from \"./NavBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavBar.vue?vue&type=style&index=0&id=3df62adc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3df62adc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\"},[_c('div',{ref:\"videoBg\",staticClass:\"video-bg\"},[_c('video',{ref:\"video\",attrs:{\"autobuffer\":\"\",\"autoplay\":\"\",\"muted\":\"\",\"autoloop\":\"\",\"playsinline\":\"\",\"loop\":\"\"},domProps:{\"muted\":true}},[_c('source',{attrs:{\"src\":require(\"../assets/video/headerbg.mp4\"),\"type\":\"video/mp4\"}}),_c('source',{attrs:{\"src\":require(\"../assets/video/headerbg.webm\"),\"type\":\"video/webm\"}})])]),_c('canvas',{ref:\"gradients\",staticClass:\"header-gradients\"}),_c('div',{staticClass:\"text\"},[_c('h1',{ref:\"mainTitle\"},[_vm._v(\"\\n Victor Mono\\n \")]),_vm._m(0),_c('el-row',{staticClass:\"row-bg actions no-break\",attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',[_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#download'),expression:\"'#download'\"}]},[_c('el-button',{attrs:{\"icon\":\"el-icon-download\"}},[_vm._v(\"\\n Download\\n \")])],1),_vm._v(\"\\n  \\n \"),_c('a',{on:{\"click\":function($event){_vm.showSharing = !_vm.showSharing}}},[_c('el-button',{attrs:{\"icon\":\"el-icon-share\"}},[_vm._v(\"\\n Share\\n \")])],1),_c('transition',{attrs:{\"name\":\"el-fade-in\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showSharing),expression:\"showSharing\"}],staticClass:\"share\"},[_c('social-sharing',{attrs:{\"url\":\"https://rubjo.github.io/victor-mono/\",\"title\":\"Victor Mono: free programming font with italics and ligatures\",\"description\":\"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.\",\"quote\":\"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.\",\"hashtags\":\"free,font,italics,ligatures\"},inlineTemplate:{render:function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('network',{attrs:{\"network\":\"twitter\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M24 4.6c-1 .4-1.9.6-2.9.7a5 5 0 0 0 2.2-2.7c-1 .6-2 1-3.1 1.2-1-1-2.2-1.6-3.6-1.6a5 5 0 0 0-4.8 6 14 14 0 0 1-10.2-5c-.4.7-.6 1.5-.6 2.4a5 5 0 0 0 2.2 4.1c-.8 0-1.6-.2-2.3-.6A5 5 0 0 0 5 14a5 5 0 0 1-2.2 0 5 5 0 0 0 4.6 3.5 9.9 9.9 0 0 1-7.3 2 14 14 0 0 0 7.6 2.3c9 0 14-7.5 14-14V7A10 10 0 0 0 24 4.6z\"}})])])]),_c('network',{attrs:{\"network\":\"facebook\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M24 12a12 12 0 1 0-13.9 11.9v-8.4h-3V12h3V9.4c0-3 1.8-4.7 4.6-4.7l2.6.2v3h-1.5c-1.5 0-2 .9-2 1.8V12h3.4l-.5 3.5h-2.8v8.4A12 12 0 0 0 24 12z\"}})])])]),_c('network',{attrs:{\"network\":\"reddit\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M2.2 14v.9c0 3.4 4.3 6.2 9.7 6.2 5.4 0 9.8-2.8 9.8-6.2v-.8-.2a5.7 5.7 0 0 0-2.5-3.2c-1.9-1.3-4.4-2-7.3-2a13 13 0 0 0-7.3 2A5.8 5.8 0 0 0 2.2 14zm9.8 5.5c-1.8 0-3-.4-3.9-1.2a.4.4 0 0 1 0-.6c.2-.2.5-.2.6 0 .7.6 1.7.9 3.3.9 1.5 0 2.6-.3 3.2-1h.6c.2.3.2.5 0 .7-.8.8-2 1.2-3.8 1.2zm-3.6-7.6a1.7 1.7 0 1 0 0 3.3c.9 0 1.6-.7 1.6-1.6 0-1-.7-1.7-1.6-1.7zm7.2 0a1.7 1.7 0 1 0 0 3.3c1 0 1.7-.7 1.7-1.6 0-1-.8-1.7-1.7-1.7zm4.6-1.6c1 .9 1.8 1.8 2.1 3 .5-.4.8-1 .8-1.5a1.8 1.8 0 0 0-3-1.5zM2.7 10a1.8 1.8 0 0 0-1.2 3.2c.4-1.1 1.2-2 2.3-3l-1-.2zM12 22C6 22 1.2 18.8 1.2 15v-.8a2.7 2.7 0 1 1 3.3-4.4c1.9-1.1 4.4-1.9 7.1-2l1.8-5.5.4.1 4.3 1c.3-.8 1.1-1.3 2-1.3a2.2 2.2 0 0 1 0 4.4c-1.2 0-2.2-1-2.2-2.2l-3.8-1-1.5 4.6c2.7 0 5 .8 6.8 2 .5-.5 1.2-.7 1.9-.7a2.7 2.7 0 0 1 1.3 5v.8c0 4-4.7 7.1-10.6 7.1zM20.1 3a1.3 1.3 0 1 0 0 2.6 1.3 1.3 0 1 0 0-2.6z\"}})])])]),_c('network',{attrs:{\"network\":\"weibo\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M10.1 20.3c-4 .4-7.4-1.4-7.7-4-.2-2.6 2.8-5 6.8-5.4 4-.4 7.4 1.4 7.6 4 .3 2.6-2.7 5-6.7 5.4zm-1-3c-.4.5-1.3.8-1.9.5-.6-.3-.8-1-.4-1.6.4-.6 1.2-.8 1.8-.6.6.3.8 1 .5 1.6zm1.2-1.7c-.1.2-.4.3-.7.2-.2 0-.3-.3-.1-.5 0-.3.4-.4.6-.3.3.1.3.4.2.6zm.2-2.7c-1.9-.5-4 .4-4.9 2-.8 1.8 0 3.7 2 4.3 2 .6 4.2-.3 5-2.2.9-1.8-.1-3.6-2.1-4.1zm7.6-1.3c-.4 0-.6-.1-.4-.6.3-1 .4-1.8 0-2.4-.8-1-3-1-5.4 0 0 0-.8.3-.6-.3.4-1.2.3-2.2-.3-2.8-1.3-1.3-4.8 0-7.8 3.1C1.3 10.9 0 13.3 0 15.3c0 4 5.1 6.4 10 6.4 6.6 0 11-3.8 11-6.8 0-1.8-1.6-2.8-3-3.3zm1.9-5c-.8-.9-2-1.2-3-1-.4 0-.7.5-.6 1 0 .3.5.6 1 .5a1.5 1.5 0 0 1 1.7 2c-.2.4 0 .8.5 1 .4 0 .8-.1 1-.6.3-1 .1-2.1-.7-3zm2.4-2.2a6.4 6.4 0 0 0-6-2 1 1 0 0 0-.8 1c.1.6.6.9 1.1.8A4.5 4.5 0 0 1 22 10c-.2.5 0 1 .5 1.1.5.2 1 0 1.2-.5.7-2.1.2-4.5-1.3-6.3z\"}})])])])],1)},staticRenderFns:[]}})],1)])],1)],1)],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h2',[_vm._v(\"\\n The \"),_c('em',{staticClass:\"property\"}),_c('br',{staticClass:\"hidden-sm-and-up\"}),_vm._v(\"\\n programming font\\n \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n.header {\n position: relative;\n top: 0;\n z-index: 1;\n width: 100%;\n padding-top: calc(10px + 2vw);\n text-align: center;\n h1 {\n margin: calc(3vw + 15px) 0 0 0;\n font-size: calc(40px + 7vw);\n font-weight: normal;\n line-height: 1em;\n }\n\n h2 {\n margin: 3vw 0 2vw 0;\n font-size: calc(18px + 1.5vw);\n font-weight: normal;\n a {\n text-decoration: none;\n }\n }\n\n .actions {\n padding: calc(10px + 2vw) 0 calc(20px + 4vw) 0;\n white-space: nowrap;\n }\n\n .share {\n display: block;\n padding-top: 5vw;\n margin: 5px;\n }\n\n @media (min-width: 768px) {\n .share {\n position: absolute;\n display: inline-flex;\n padding: 0;\n margin-top: 5px;\n }\n }\n\n .text {\n opacity: 1;\n transition: opacity 2s;\n h1,\n h2 {\n transition: transform 10s ease-out;\n transform: scale(1);\n }\n &.hidden {\n opacity: 0;\n transition: opacity 0.25s;\n h1,\n h2 {\n transition-duration: 0s;\n transform: scale(0.85);\n }\n }\n }\n}\n\n.video-bg {\n position: absolute;\n top: 0;\n z-index: -2;\n width: 100%;\n height: calc(100% - 1px);\n overflow: hidden;\n opacity: 0.5;\n video {\n width: 100%;\n min-width: 1000px;\n }\n}\n\n.header-gradients {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n mix-blend-mode: screen;\n}\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=03e524b7&scoped=true&\"\nimport script from \"./Header.vue?vue&type=script&lang=js&\"\nexport * from \"./Header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Header.vue?vue&type=style&index=0&id=03e524b7&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03e524b7\",\n null\n \n)\n\nexport default component.exports","export default function lazyLoadComponent ({\n componentFactory,\n background,\n height,\n maxHeight,\n loading,\n loadingData\n}) {\n let resolveComponent\n\n return () => ({\n // We return a promise to resolve a\n // component eventually.\n component: new Promise((resolve) => {\n resolveComponent = resolve\n }),\n loading: {\n async mounted () {\n this.$el.style.backgroundColor = background || '#595959'\n this.$el.style.height = height || 0\n this.$el.style.maxHeight = maxHeight || 'auto'\n // We immediately load the component if\n // `IntersectionObserver` is not supported.\n if (!('IntersectionObserver' in window)) {\n componentFactory().then(resolveComponent)\n return\n }\n await new Promise((resolve) => { setTimeout(() => { resolve() }, 1) })\n const observer = new IntersectionObserver((entries) => {\n // Use `intersectionRatio` because of Edge 15's\n // lack of support for `isIntersecting`.\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (entries[0].intersectionRatio <= 0) return\n\n // Cleanup the observer when it's not\n // needed anymore.\n observer.unobserve(this.$el)\n // The `componentFactory()` resolves\n // to the result of a dynamic `import()`\n // which is passed to the `resolveComponent()`\n // function.\n componentFactory().then(resolveComponent)\n })\n // We observe the root `$el` of the\n // mounted loading component to detect\n // when it becomes visible.\n observer.observe(this.$el)\n },\n // Here we render the the component passed\n // to this function via the `loading` parameter.\n render (createElement) {\n return createElement(loading, loadingData)\n }\n }\n })\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"loader\",style:({ height: _vm.height, width: _vm.computedWidth })})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loader.vue?vue&type=template&id=c2130e8a&\"\nimport script from \"./Loader.vue?vue&type=script&lang=js&\"\nexport * from \"./Loader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loader.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"faq\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\",on:{\"mouseenter\":function($event){_vm.revealFaq = true},\"touchstart\":function($event){_vm.revealFaq = true},\"mouseleave\":function($event){_vm.revealFaq = false}}},[_c('em',[_vm._v(\"FAQ*\")])]),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[_c('div',{staticClass:\"caption centre full-width\"},[_vm._v(\"\\n  \\n \"),_c('em',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.revealFaq),expression:\"revealFaq\"}]},[_vm._v(\"Frequently Anticipated Questions\")])])])],1)],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('VueFaqAccordion',{attrs:{\"items\":_vm.faqItems,\"border-color\":\"transparent\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Faq.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Faq.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Faq.vue?vue&type=template&id=b51e1faa&\"\nimport script from \"./Faq.vue?vue&type=script&lang=js&\"\nexport * from \"./Faq.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Faq.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"credits\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Credits\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',{staticClass:\"small centre\"},[_vm._v(\"\\n A number of frameworks/packages have been used to make this web site.\\n Big thanks to the following:\\n \"),_c('br'),_c('br'),_c('br'),_c('em',[_vm._v(\"Lovely gradients\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://sarcadass.github.io/granim.js/\"}},[_vm._v(\"\\n Granim.js\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://twitter.com/Sarcadass\"}},[_vm._v(\"\\n Benjamin Blonde\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Cool animated typing\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/mattboldt/typed.js/\"}},[_vm._v(\"\\n Typed.js\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://mattboldt.com\"}},[_vm._v(\"\\n Matt Boldt\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Code editor\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/surmon-china/vue-codemirror\"}},[_vm._v(\"\\n Vue-Codemirror\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/surmon-china\"}},[_vm._v(\"\\n Surmon\")]),_vm._v(\" and\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://codemirror.net\"}},[_vm._v(\"\\n codemirror.net\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Animations here & there\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://animejs.com\"}},[_vm._v(\"\\n Anime.js\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Smooth scrolling\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://vue-scrollto.netlify.com\"}},[_vm._v(\"\\n vue-scrollto\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/rigor789\"}},[_vm._v(\"\\n Igor Randjelovic\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Image comparison component\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/mhayes/vue-twentytwenty\"}},[_vm._v(\"\\n vue-twentytwenty\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/mhayes\"}},[_vm._v(\"\\n Mark Hayes\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"FAQ component\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/gerasimvol/vue-faq-accordion\"}},[_vm._v(\"\\n vue-faq-accordion\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/gerasimvol\"}},[_vm._v(\"\\n Vladimir Gerasimenko\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Thank-you-confetti\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.npmjs.com/package/dom-confetti\"}},[_vm._v(\"\\n dom-confetti\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://twitter.com/danielundin\"}},[_vm._v(\"\\n Daniel Lundin\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"CSS framework / component library\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://element.eleme.io/#/en-US\"}},[_vm._v(\"\\n Element\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Sharing component\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/nicolasbeauvais/vue-social-sharing\"}},[_vm._v(\"\\n vue-social-sharing\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/nicolasbeauvais\"}},[_vm._v(\"\\n Nicolas Beauvais\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Supporter tier medal design\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://psdblast.com\"}},[_vm._v(\"\\n Andy (psdblast.com)\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"First-class apps for compressing images\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://pngmini.com\"}},[_vm._v(\"\\n ImageAlpha\")]),_vm._v(\"\\n and\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://imageoptim.com/mac\"}},[_vm._v(\"\\n ImageOptim\")]),_vm._v(\"\\n by (mostly)\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/kornelski\"}},[_vm._v(\"\\n Kornel Lesinski\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Article on lazily loading components when visible\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://markus.oberlehner.net/blog/skeleton-loading-animation-with-vue/\"}},[_vm._v(\"\\n Skeleton Loading Animation with Vue.js\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://markus.oberlehner.net\"}},[_vm._v(\"\\n Markus Oberlehner\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Embed tweets in Vue apps\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/tonickkozlov/vue-tweet-embed\"}},[_vm._v(\"\\n vue-tweet-embed\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/tonickkozlov\"}},[_vm._v(\"\\n Anton Kozlov\\n \")]),_c('br'),_c('br'),_c('em',[_vm._v(\"The nice JS framework\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://vuejs.org\"}},[_vm._v(\"\\n Vue.js\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Supercool scaffolding and tools for Vue.js development\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://cli.vuejs.org\"}},[_vm._v(\"\\n Vue CLI\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Automated building and deployment of web site from source\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://travis-ci.org\"}},[_vm._v(\"\\n Travis CI\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Very nice (and rather expensive) font design software\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://glyphsapp.com\"}},[_vm._v(\"\\n Glyphs\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Hosted by the nice folks at\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/about\"}},[_vm._v(\"\\n GitHub\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Font and web site\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"mailto:victor.mono.font@gmail.com?subject=Thanks for making such a nice font\"}},[_vm._v(\"\\n Rune B\")])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Credits.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Credits.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Credits.vue?vue&type=template&id=2ca50719&\"\nimport script from \"./Credits.vue?vue&type=script&lang=js&\"\nexport * from \"./Credits.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4c9c9924&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import './plugins/element.js'\nimport Vue from 'vue'\nimport App from './App.vue'\nimport VueScrollTo from 'vue-scrollTo'\nimport VueCodemirror from 'vue-codemirror'\nimport 'codemirror/lib/codemirror.css'\nimport SocialSharing from 'vue-social-sharing'\n\nVue.config.productionTip = false\n\nVue.use(VueScrollTo, {\n container: 'body',\n duration: 10000,\n easing: 'ease',\n offset: -200,\n force: true,\n cancelable: true,\n onStart: false,\n onDone: false,\n onCancel: false,\n x: false,\n y: true\n})\n\nVue.use(VueCodemirror)\n\nVue.use(SocialSharing)\n\nwindow.application = new Vue({\n render: h => h(App)\n}).$mount('#app')\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&id=03e524b7&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"testimonials\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"What people are saying\")])])])],1),_c('el-row',{attrs:{\"justify\":\"center\",\"gutter\":20}},_vm._l((_vm.selectedTestimonials),function(testimonial){return _c('el-col',{key:testimonial + _vm.theme,attrs:{\"xs\":24,\"lg\":6}},[_c('Tweet',{attrs:{\"id\":testimonial,\"options\":{ theme: _vm.theme, conversation: 'none', align: 'center' }}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Testimonials.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Testimonials.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Testimonials.vue?vue&type=template&id=ba50133e&scoped=true&\"\nimport script from \"./Testimonials.vue?vue&type=script&lang=js&\"\nexport * from \"./Testimonials.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Testimonials.vue?vue&type=style&index=0&id=ba50133e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ba50133e\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"media/headerbg.0d4d3836.webm\";","module.exports = __webpack_public_path__ + \"img/bronze.6c902090.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/styles-dark.42978ce3.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Faq.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwQTM4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwQTI4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTMyOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBNDE0QUJDOTlBMTExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8kSqyAAADD5JREFUeNrsXQ2Q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\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=style&index=0&id=3df62adc&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"media/headerbg.d1fdad00.mp4\";"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/img/styles-light.png","webpack:///./src/assets/img/styles-light-thumb.png","webpack:///./src/assets/img/styles-dark-thumb.png","webpack:///./src/assets/img/silver.png","webpack:///./src/assets/img/gold.png","webpack:///./src/assets/img/unicorn.png","webpack:///./src/components/Testimonials.vue?c5e4","webpack:///./src/plugins/element.js","webpack:///./src/App.vue?d543","webpack:///./src/components/NavBar.vue?530b","webpack:///./src/utils/init-gradients.js","webpack:///src/components/NavBar.vue","webpack:///./src/components/NavBar.vue?12ab","webpack:///./src/components/NavBar.vue","webpack:///./src/components/Header.vue?d15b","webpack:///src/components/Header.vue","webpack:///./src/components/Header.vue?4a23","webpack:///./src/components/Header.vue","webpack:///./src/utils/lazy-load-component.js","webpack:///./src/components/Loader.vue?249e","webpack:///src/components/Loader.vue","webpack:///./src/components/Loader.vue?6ef5","webpack:///./src/components/Loader.vue","webpack:///./src/components/Faq.vue?56b9","webpack:///src/components/Faq.vue","webpack:///./src/components/Faq.vue?63dc","webpack:///./src/components/Faq.vue","webpack:///./src/components/Credits.vue?bd92","webpack:///src/components/Credits.vue","webpack:///./src/components/Credits.vue?e514","webpack:///./src/components/Credits.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a37b","webpack:///./src/App.vue","webpack:///./src/main.js","webpack:///./src/App.vue?df62","webpack:///./src/components/Header.vue?4057","webpack:///./src/components/Testimonials.vue?4e43","webpack:///src/components/Testimonials.vue","webpack:///./src/components/Testimonials.vue?d893","webpack:///./src/components/Testimonials.vue","webpack:///./src/assets/video/headerbg.webm","webpack:///./src/assets/img/bronze.png","webpack:///./src/components/Loader.vue?6c5b","webpack:///./src/assets/img/styles-dark.png","webpack:///./src/components/Faq.vue?8f50","webpack:///./src/assets/img/github.png","webpack:///./src/components/NavBar.vue?d264","webpack:///./src/assets/video/headerbg.mp4"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","Vue","use","_vm","this","_h","$createElement","_c","_self","attrs","ref","showNav","showGoToTop","on","$event","theme","staticClass","stylesDark","stylesDarkThumb","stylesLight","stylesLightThumb","_v","toggleLigatures","paypal","patreon","staticRenderFns","class","show","directives","rawName","expression","toggleTheme","textColour","initGradients","element","darkGradients","lightGradients","Granim","direction","states","gradients","transitionSpeed","props","Boolean","granim","localStorage","getItem","backgroundColour","watch","spin","changeState","newVal","mounted","setAppearance","methods","targets","rotate","scale","strokeColor","delay","duration","easing","$refs","themeIcon","style","transform","strokeDashoffset","loop","setItem","$emit","alternateBackgroundColour","root","dataset","setProperty","component","domProps","_m","showSharing","inlineTemplate","render","String","default","immediate","initTyped","strings","startDelay","typeSpeed","backSpeed","smartBackspace","backDelay","shuffle","lazyLoadComponent","resolveComponent","componentFactory","background","height","maxHeight","loading","loadingData","$el","backgroundColor","observer","IntersectionObserver","entries","intersectionRatio","unobserve","observe","width","computedWidth","maxWidth","Number","minWidth","computed","revealFaq","faqItems","components","VueFaqAccordion","NavBar","Header","CodeView","Loader","HeroImage","Compare","Testimonials","Faq","Credits","initScrollWatcher","throttle","fn","wait","time","Date","now","forEach","addEventListener","scrollHandler","scrollY","triggerHeight","celebrate","angle","spread","startVelocity","elementCount","dragFriction","stagger","colors","removeEventListener","open","innerText","ligatures","querySelectorAll","sample","classList","toggle","config","productionTip","VueScrollTo","container","offset","force","cancelable","onStart","onDone","onCancel","x","y","VueCodemirror","SocialSharing","application","h","App","$mount","_l","testimonial","conversation","align","testimonials","selectedTestimonials","shuffled"],"mappings":"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9ChK,KARF,WASI,MAAO,CACL8J,OAAQ,KACRiC,aAAa,IAGjB7B,MAAO,CACLjC,MAAO,CACL,QADN,oEACA,KADA,gGAEA,wCAEA,4BACA,4BALA,SAOA,gBACA,2BACA,cACA,aACA,kBACA,SAZA,aAcA,aACA,mDACA,8CAEA,iDACA,6CAGA,gBACA,2BACA,cACA,aACA,kBA1BA,kBA6BA,mBA7BA,2GA+BMmE,WAAW,IAGf9B,QAjDF,WAkDIhD,KAAKwC,OAAS,EAAlB,gCACIxC,KAAKwC,OAAOM,YAAY9C,KAAKW,OAC7BX,KAAK+E,aAEP7B,QAAS,CACP6B,UADJ,WAEM,IAAN,GACQC,QAAS,CACjB,cACA,SACA,6DACA,MACA,iBACA,KACA,YACA,aACA,UACA,qBACA,YACA,OACA,kBACA,YACA,kBACA,WACA,SACA,SACA,UACA,aACA,OACA,OACA,QACA,UACA,OACA,SACA,UACA,WACA,SACA,aACA,WACA,aACA,gBACA,yBACA,YACA,YACA,UACA,YACA,YACA,eACA,YACA,QACA,OACA,OACA,OACA,WACA,QACA,eACA,WACA,WACA,QACA,QACA,QACA,YACA,QACA,aACA,WACA,SACA,QACA,eACA,YACA,OACA,OACA,eACA,gBACA,WACA,UACA,UACA,QACA,WACA,aACA,SACA,YACA,WACA,kBACA,OACA,UACA,eACA,YACA,UACA,UACA,QACA,qBACA,OACA,QACA,WACA,gBACA,WACA,QACA,UACA,YACA,QACA,UACA,SACA,QACA,YACA,WACA,YACA,cACA,aACA,OACA,SACA,UACA,YACA,WACA,eACA,YACA,YACA,WACA,cAEQC,WAAY,IACZC,UAAW,GACXC,UAAW,GACXC,gBAAgB,EAChBC,UAAW,KACXtB,MAAM,EACNuB,SAAS,GAGX,OAAO,IAAI,EAAjB,oBC3TgV,ICQ5U,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBA,SAASC,EAAT,GAOZ,IACGC,EAPJC,EAMC,EANDA,iBACAC,EAKC,EALDA,WACAC,EAIC,EAJDA,OACAC,EAGC,EAHDA,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","file":"js/app.316cd042.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2684151d\":\"873c1424\",\"chunk-60daec7d\":\"5744f321\",\"chunk-64d01f97\":\"3363bcf3\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-2684151d\":1,\"chunk-60daec7d\":1,\"chunk-64d01f97\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2684151d\":\"1a1a5e8a\",\"chunk-60daec7d\":\"4720ab7c\",\"chunk-64d01f97\":\"77c23192\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/victor-mono/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/styles-light.a371a6a8.png\";","module.exports = __webpack_public_path__ + \"img/styles-light-thumb.13bbf4d0.png\";","module.exports = __webpack_public_path__ + \"img/styles-dark-thumb.c1970fa8.png\";","module.exports = __webpack_public_path__ + \"img/silver.b4b645bb.png\";","module.exports = __webpack_public_path__ + \"img/gold.f6747703.png\";","module.exports = __webpack_public_path__ + \"img/unicorn.f5208ffb.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Testimonials.vue?vue&type=style&index=0&id=ba50133e&lang=scss&scoped=true&\"","import Vue from 'vue'\nimport { Row, Col, Button, ButtonGroup } from 'element-ui'\n\nimport 'element-ui/lib/theme-chalk/display.css'\n\nVue.use(Row)\nVue.use(Col)\nVue.use(Button)\nVue.use(ButtonGroup)\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('NavBar',{ref:\"navbar\",attrs:{\"show\":_vm.showNav,\"show-go-to-top\":_vm.showGoToTop},on:{\"darkTheme\":function($event){_vm.theme = 'dark'},\"lightTheme\":function($event){_vm.theme = 'light'}}}),_c('Header',{ref:\"header\",attrs:{\"theme\":_vm.theme}}),_c('div',{staticClass:\"initial content\"},[_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',[(_vm.theme === 'dark')?_c('a',{attrs:{\"href\":_vm.stylesDark,\"target\":\"_blank\"}},[_c('img',{staticClass:\"styles-image dark\",attrs:{\"src\":_vm.stylesDarkThumb}})]):_c('a',{attrs:{\"href\":_vm.stylesLight,\"target\":\"_blank\"}},[_c('img',{staticClass:\"styles-image light\",attrs:{\"src\":_vm.stylesLightThumb}})]),_vm._v(\"\\n Victor Mono is an open-source monospaced font with optional\\n \"),_c('em',[_vm._v(\"semi-connected cursive italics\")]),_vm._v(\" and programming\\n symbol ligatures.\\n \"),_c('br'),_c('br'),_vm._v(\"\\n The typeface is slender, crisp and narrow, with a large x-height\\n and clear punctuation, making it legible and ideal for code.\\n It comes in seven weights and Roman, \"),_c('em',[_vm._v(\"Italic\")]),_vm._v(\" and\\n \"),_c('em',{staticClass:\"alt\"},[_vm._v(\"Oblique\")]),_vm._v(\" styles.\\n \")])])],1)],1),_c('div',{staticClass:\"content code-segment\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"try\"}}),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Try it\")])])])],1),_c('el-row',{staticClass:\"negative-margins\",attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"sm\":18}},[_c('CodeView',{attrs:{\"theme\":_vm.theme}})],1)],1)],1),_c('div',{ref:\"ligatures\",staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"ligatures\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Ligatures \")]),_c('el-button',{staticClass:\"normal\",attrs:{\"type\":\"\"},on:{\"click\":_vm.toggleLigatures}},[_c('em',[_vm._v(\"enabled\")])])],1)])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('div',{staticClass:\"ligature-samples\"},[_c('h1',{staticClass:\"no-margin centre crossfade visible\"},[_vm._v(\"\\n /> ~- -~ ~@\\n <~ <~> <~~ ~> ~~ ~~>\\n >= <= -> -<\\n >-> >>- <<- <-> ->> -<< <-<\\n ==> => =/= !== != <==\\n >>= =>> >=> <=> <=< <<= =<<\\n .- .= =:= =!= == === :: := :> :< >: ;;\\n <| <|> |> <>\\n <$ <$> $> <+ <+> +>\\n ?= /= /== /\\\\ \\\\/ __ && ++ +++\\n \")]),_c('h1',{staticClass:\"no-margin centre crossfade hidden no-ligatures\"},[_vm._v(\"\\n /> ~- -~ ~@\\n <~ <~> <~~ ~> ~~ ~~>\\n >= <= -> -<\\n >-> >>- <<- <-> ->> -<< <-<\\n ==> => =/= !== != <==\\n >>= =>> >=> <=> <=< <<= =<<\\n .- .= =:= =!= == === :: := :> :< >: ;;\\n <| <|> |> <>\\n <$ <$> $> <+ <+> +>\\n ?= /= /== /\\\\ \\\\/ __ && ++ +++\\n \")])])])],1)],1),_c('HeroImage',{attrs:{\"image\":\"powerline\",\"theme\":_vm.theme}}),_c('div',{staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"why\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Why\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',{staticClass:\"columns\"},[_vm._v(\"\\n When it comes to programming fonts, I prefer something thin and\\n relatively condensed,\\n but with a more \"),_c('em',[_vm._v(\"informal, flowing and human style\")]),_vm._v(\"\\n for standouts like comments and certain keywords.\\n \"),_c('br'),_c('br'),_vm._v(\"\\n In the past, I always ended up looking for something else after\\n using a font for a while, because something didn't look right to me.\\n So I started sketching and designing something myself.\\n I wanted something that:\\n \"),_c('ul',[_c('li',[_vm._v(\"had friendly and distinct italics\")]),_c('li',[_vm._v(\"had a strict, geometric and readable regular style\")]),_c('li',[_vm._v(\"had programming symbol ligatures\")]),_c('li',[_vm._v(\"was slender and elegant\")]),_c('li',[_vm._v(\"narrow enough to fit a lot of text\")]),_c('li',[_vm._v(\"wide enough to be scannable\")]),_c('li',[_vm._v(\"looked consistent and professional\")])]),_vm._v(\"\\n Other stuff (like having a million alternative glyphs or as many\\n ligatures as possible) wasn't (and isn't) important.\\n Victor Mono is the result. You might like it as well.\\n That's brilliant! You might not. That's also fine: use a font\\n that works for you. 😛\\n \")])])],1)],1),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"compare\"}}),_c('Compare',{attrs:{\"theme\":_vm.theme}})],1),_c('div',{staticClass:\"alternate-bg\"},[_c('HeroImage',{attrs:{\"image\":\"keyboard\",\"theme\":_vm.theme,\"suffix\":\"jpg\"}}),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"sm\":18}},[_c('div',{staticClass:\"right caption\"},[_vm._v(\"\\n Designs submitted to\\n \"),_c('a',{attrs:{\"href\":\"http://wasdkeyboards.com\",\"target\":\"_blank\"}},[_vm._v(\"\\n WASD Keyboards\\n \")])])])],1)],1),_c('div',{staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"download\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Get it\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',[_vm._v(\"\\n If you try it out and like it, I would be very grateful for any\\n donations. It means I can cover some costs for software and time\\n spent - and keep refining and extending the font.\\n \")])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{staticClass:\"centre\"},[_c('a',{staticClass:\"donate\"},[_c('el-button',{staticClass:\"double-line margin-bottom\",attrs:{\"icon\":\"el-icon-medal-1\",\"type\":\"success\"},on:{\"click\":_vm.paypal}},[_vm._v(\"\\n Donate\"),_c('br'),_c('em',[_vm._v(\"via PayPal\")])])],1),_vm._v(\"\\n  \\n \"),_c('a',{staticClass:\"donate\"},[_c('el-button',{staticClass:\"double-line margin-bottom\",attrs:{\"icon\":\"el-icon-medal-1\",\"type\":\"success\"},on:{\"click\":_vm.patreon}},[_vm._v(\"\\n Support\"),_c('br'),_c('em',[_vm._v(\"via Patreon\")])])],1),_vm._v(\"\\n  \\n \"),_c('a',{staticClass:\"download-link\",attrs:{\"href\":\"VictorMonoAll.zip\"}},[_c('el-button',{staticClass:\"double-line margin-bottom\",attrs:{\"icon\":\"el-icon-download\",\"type\":\"info\"}},[_vm._v(\"\\n Download\"),_c('br'),_c('em',[_vm._v(\"~8MB ZIP\")])])],1)])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":12,\"lg\":10}},[_c('p',{staticClass:\"small centre\"},[_c('em',[_vm._v(\"With\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/Homebrew/homebrew-cask-fonts\"}},[_vm._v(\"\\n homebrew-cask-fonts\")]),_vm._v(\",\\n just run\\n \")]),_c('br'),_c('code',[_vm._v(\"brew tap homebrew/cask-fonts\")]),_c('br'),_c('code',[_vm._v(\"brew install --cask font-victor-mono\")])])]),_c('el-col',{attrs:{\"xs\":22,\"sm\":12,\"lg\":10}},[_c('p',{staticClass:\"small centre\"},[_c('em',[_vm._v(\"For use in apps, web pages or other projects:\")]),_c('br'),_c('code',[_vm._v(\"npm i victormono\")]),_vm._v(\"\\n ->\\n \"),_c('code',[_vm._v(\"import 'victormono'\")]),_c('br'),_vm._v(\"\\n Style elements with \"),_c('code',[_vm._v(\"font-family: 'Victor Mono'\")])])])],1)],1),_c('div',[_c('a',{attrs:{\"href\":\"https://shop.spreadshirt.com/victor-mono/\",\"target\":\"_blank\"}},[_c('HeroImage',{attrs:{\"image\":\"merch\",\"theme\":_vm.theme,\"suffix\":\"jpg\"}})],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"sm\":18}},[_c('div',{staticClass:\"right caption\"},[_vm._v(\"\\n Buy cool merch at Victor Mono Merch Store:\\n \"),_c('a',{attrs:{\"href\":\"https://shop.spreadshirt.com/victor-mono/\",\"target\":\"_blank\"}},[_vm._v(\"\\n North America\")]),_vm._v(\"\\n /\\n \"),_c('a',{attrs:{\"href\":\"https://shop.spreadshirt.net/victor-mono/\",\"target\":\"_blank\"}},[_vm._v(\"\\n Europe\")])])])],1)],1),_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"how\"}}),_c('div',{staticClass:\"content\"},[_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"How to use\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',{},[_vm._v(\"\\n 1) \"),_c('a',{staticClass:\"download-link\",attrs:{\"href\":\"VictorMonoAll.zip\"}},[_vm._v(\"Download\")]),_vm._v(\" the font\"),_c('br'),_vm._v(\"\\n 2) Unpack the ZIP\"),_c('br'),_vm._v(\"\\n 3) \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+install+fonts\",\"target\":\"_blank\"}},[_vm._v(\"Install\")]),_vm._v(\" the font (all styles or the ones you want)\"),_c('br'),_vm._v(\"\\n 4) \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+change+font+settings+in+VS+Code\",\"target\":\"_blank\"}},[_vm._v(\"Change the font settings in your code editor / IDE of choice\")]),_vm._v(\" to \\\"Victor\\n Mono\\\"\"),_c('br'),_vm._v(\"\\n 5) \"),_c('em',[_vm._v(\"Optional\")]),_vm._v(\" · \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+change+theme+in+VS+Code\",\"target\":\"_blank\"}},[_vm._v(\"Set the code theme\")]),_vm._v(\" to one you like\\n (try\\n \"),_c('a',{attrs:{\"href\":\"https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo\",\"target\":\"_blank\"}},[_vm._v(\"this one\")]),_vm._v(\",\\n for example)\\n \"),_c('br'),_vm._v(\"\\n 6) \"),_c('em',[_vm._v(\"Optional\")]),_vm._v(\" · \"),_c('a',{attrs:{\"href\":\"https://www.google.com/search?q=how+to+modify+themes+in+VS+Code\",\"target\":\"_blank\"}},[_vm._v(\"Modify the theme\")]),_vm._v(\" colours and its application of normal/italic/bold styles\\n \")])])],1)],1),_c('div',{staticClass:\"content alternate-bg\"},[_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Supporters\")])])])],1),_c('el-row',{attrs:{\"justify\":\"center\"}},[_c('el-col',{staticClass:\"margin-bottom\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/bronze.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Bronze\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Fan\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$1/month or - $9.99 in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to everyone contributing! ❤️\\n \")]),_c('p')]),_c('el-col',{staticClass:\"margin-bottom\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/silver.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Silver\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Supporter\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$2/month or $10-24.99 in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to everyone contributing! ❤️\\n \")]),_c('p')]),_c('el-col',{staticClass:\"gold bottom-margin\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/gold.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Gold\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Patron\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$5/month or $25-45 in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to:\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Diogo Almeida\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Dieter Auracher\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Emerson Beltrán\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Colton Borg\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Dion Bridger\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_c('a',{attrs:{\"href\":\"https://github.com/datarootsio\",\"target\":\"_blank\"}},[_vm._v(\"\\n datarootsio\\n \")])]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Julien Durillon\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Michael Huggett\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Igor Harden\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n K. Bruce Jones\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n kmwallio\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Josh Kraker\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Stuart Morris\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n RKC\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Lars Rönnbäck\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Michael Schore\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Robert Ruf\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Christoph Siedentop\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Spiritualminded\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n thief#0001\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Ashley Kaine Towns\\n \")]),_c('p')]),_c('el-col',{staticClass:\"rainbow bottom-margin\",attrs:{\"xs\":24,\"sm\":12,\"md\":6}},[_c('p',{staticClass:\"centre no-padding no-margin-bottom\"},[_c('img',{staticClass:\"medal\",attrs:{\"src\":require(\"./assets/img/unicorn.png\")}})]),_c('h2',{staticClass:\"centre no-margin\"},[_vm._v(\"\\n Rainbow\"),_c('br'),_c('div',{staticClass:\"small\"},[_vm._v(\"\\n Champion Guardian Unicorn\\n \")])]),_c('p',{staticClass:\"small centre no-padding\"},[_c('em',[_vm._v(\"$10/month or $45+ in total\")])]),_c('div',{staticClass:\"centre\"},[_vm._v(\"\\n Thank you to:\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Matthew Anderson\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Parker Ault\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n April Collier\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Matthew A Drover\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Élise Duverdier\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Lady Isak Grozny\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Sven Koschnicke\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Elizabeth Marston\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Matthew O'Gorman\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Poudingue\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Emily Price\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Alex Simons\\n \")]),_c('div',{staticClass:\"centre supporter\"},[_vm._v(\"\\n Justin Slepak\\n \")]),_c('p')])],1)],1),_c('Testimonials',{attrs:{\"theme\":_vm.theme}}),_c('HeroImage',{attrs:{\"image\":\"specimen\",\"theme\":_vm.theme}}),_c('Faq'),_c('HeroImage',{attrs:{\"image\":\"glyphs\",\"theme\":_vm.theme}}),_c('Credits')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[_c('div',{staticClass:\"navbar\",class:{ 'visible': _vm.show }},[_c('canvas',{ref:\"gradients\",staticClass:\"navbar-gradients\"}),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#app'),expression:\"'#app'\"}],class:{ 'collapsed': !_vm.showGoToTop },attrs:{\"href\":\"#\"}},[_c('i',{staticClass:\"el-icon-arrow-up\"})]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#try'),expression:\"'#try'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Try\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#why'),expression:\"'#why'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Why\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#download'),expression:\"'#download'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Get\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#how'),expression:\"'#how'\"}],staticClass:\"hidden-xs-only\",attrs:{\"href\":\"#\"}},[_vm._v(\"\\n How\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#faq'),expression:\"'#faq'\"}],attrs:{\"href\":\"#\"}},[_vm._v(\"\\n FAQ\")]),_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#credits'),expression:\"'#credits'\"}],staticClass:\"hidden-xs-only\",attrs:{\"href\":\"#\"}},[_vm._v(\"\\n Credits\")]),_c('a',{attrs:{\"href\":\"https://github.com/rubjo/victor-mono\",\"target\":\"_blank\"}},[_c('img',{staticClass:\"octocat\",attrs:{\"src\":require(\"../assets/img/github.png\"),\"alt\":\"Octocat\"}})]),_c('a',{ref:\"themeIcon\",staticClass:\"themeIcon\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.toggleTheme}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.theme === 'light'),expression:\"theme === 'light'\"}],staticClass:\"moon theme\"},[_c('svg',{attrs:{\"height\":\"52\",\"width\":\"38\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M26.01 1A25.02 25.02 0 0 0 1 26.01a25.03 25.03 0 0 0 35.01 22.91 1.2 1.2 0 0 0 0-2.18 22.62 22.62 0 0 1 0-41.46 1.2 1.2 0 0 0 0-2.18 24.93 24.93 0 0 0-10-2.1z\",\"fill\":\"none\",\"stroke\":_vm.textColour,\"stroke-width\":\"2\"}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.theme === 'dark'),expression:\"theme === 'dark'\"}],staticClass:\"sun theme\"},[_c('svg',{attrs:{\"height\":\"53\",\"width\":\"53\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\",\"stroke\":_vm.textColour,\"stroke-width\":\"2\"}},[_c('circle',{attrs:{\"cx\":\"26.58\",\"cy\":\"26.62\",\"r\":\"9.44\"}}),_c('path',{attrs:{\"d\":\"M26.58 11.78V1.7M26.58 51.85v-10.1M41.09 26.25H51.2M1.64 26.25h10.13\"}}),_c('path',{attrs:{\"d\":\"M15.85 15.9L8.7 8.76M44.18 44.23l-7.14-7.14M36.34 15.86l7.16-7.15M8.45 43.76l7.16-7.16\"}}),_c('path',{attrs:{\"d\":\"M32.38 12.6l3.86-9.32M17.05 49.62l3.86-9.32M40.25 31.53l9.35 3.87M3.8 16.43l9.36 3.88\"}}),_c('path',{attrs:{\"d\":\"M20.77 12.6l-3.86-9.32M36.1 49.62l-3.86-9.32M39.72 20.42l9.35-3.87M3.28 35.51l9.35-3.87\"}})])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Granim from 'granim'\n\nexport default function initGradients (element, theme) {\n const darkGradients = [\n ['#2b76b9', '#35eb93'],\n ['#cc6622', '#8c1bab'],\n ['#380036', '#0cbaba'],\n ['#85d797', '#5d4257'],\n ['#0250c5', '#d43f8d'],\n ['#13547a', '#60b0b7'],\n ['#a40606', '#d98324']\n ]\n\n const lightGradients = [\n ['#8af094', '#ffd1ff'],\n ['#f6d365', '#fda085'],\n ['#84fab0', '#8fd3f4'],\n ['#fa709a', '#fee140'],\n ['#4facfe', '#00f2fe'],\n ['#43e97b', '#38c9f7'],\n ['#f83600', '#f9d423']\n ]\n\n return new Granim({\n element,\n direction: 'diagonal',\n states: {\n 'default-state': {\n gradients: theme === 'dark' ? darkGradients : lightGradients,\n transitionSpeed: 7500\n },\n 'dark': {\n gradients: darkGradients,\n transitionSpeed: 7500\n },\n 'light': {\n gradients: lightGradients,\n transitionSpeed: 7500\n }\n }\n })\n}\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NavBar.vue?vue&type=template&id=3df62adc&scoped=true&\"\nimport script from \"./NavBar.vue?vue&type=script&lang=js&\"\nexport * from \"./NavBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NavBar.vue?vue&type=style&index=0&id=3df62adc&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3df62adc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\"},[_c('div',{ref:\"videoBg\",staticClass:\"video-bg\"},[_c('video',{ref:\"video\",attrs:{\"autobuffer\":\"\",\"autoplay\":\"\",\"muted\":\"\",\"autoloop\":\"\",\"playsinline\":\"\",\"loop\":\"\"},domProps:{\"muted\":true}},[_c('source',{attrs:{\"src\":require(\"../assets/video/headerbg.mp4\"),\"type\":\"video/mp4\"}}),_c('source',{attrs:{\"src\":require(\"../assets/video/headerbg.webm\"),\"type\":\"video/webm\"}})])]),_c('canvas',{ref:\"gradients\",staticClass:\"header-gradients\"}),_c('div',{staticClass:\"text\"},[_c('h1',{ref:\"mainTitle\"},[_vm._v(\"\\n Victor Mono\\n \")]),_vm._m(0),_c('el-row',{staticClass:\"row-bg actions no-break\",attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',[_c('a',{directives:[{name:\"scroll-to\",rawName:\"v-scroll-to\",value:('#download'),expression:\"'#download'\"}]},[_c('el-button',{attrs:{\"icon\":\"el-icon-download\"}},[_vm._v(\"\\n Download\\n \")])],1),_vm._v(\"\\n  \\n \"),_c('a',{on:{\"click\":function($event){_vm.showSharing = !_vm.showSharing}}},[_c('el-button',{attrs:{\"icon\":\"el-icon-share\"}},[_vm._v(\"\\n Share\\n \")])],1),_c('transition',{attrs:{\"name\":\"el-fade-in\"}},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showSharing),expression:\"showSharing\"}],staticClass:\"share\"},[_c('social-sharing',{attrs:{\"url\":\"https://rubjo.github.io/victor-mono/\",\"title\":\"Victor Mono: free programming font with italics and ligatures\",\"description\":\"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.\",\"quote\":\"Victor Mono is a free programming font with semi-connected cursive italics and symbol ligatures.\",\"hashtags\":\"free,font,italics,ligatures\"},inlineTemplate:{render:function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('network',{attrs:{\"network\":\"twitter\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M24 4.6c-1 .4-1.9.6-2.9.7a5 5 0 0 0 2.2-2.7c-1 .6-2 1-3.1 1.2-1-1-2.2-1.6-3.6-1.6a5 5 0 0 0-4.8 6 14 14 0 0 1-10.2-5c-.4.7-.6 1.5-.6 2.4a5 5 0 0 0 2.2 4.1c-.8 0-1.6-.2-2.3-.6A5 5 0 0 0 5 14a5 5 0 0 1-2.2 0 5 5 0 0 0 4.6 3.5 9.9 9.9 0 0 1-7.3 2 14 14 0 0 0 7.6 2.3c9 0 14-7.5 14-14V7A10 10 0 0 0 24 4.6z\"}})])])]),_c('network',{attrs:{\"network\":\"facebook\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M24 12a12 12 0 1 0-13.9 11.9v-8.4h-3V12h3V9.4c0-3 1.8-4.7 4.6-4.7l2.6.2v3h-1.5c-1.5 0-2 .9-2 1.8V12h3.4l-.5 3.5h-2.8v8.4A12 12 0 0 0 24 12z\"}})])])]),_c('network',{attrs:{\"network\":\"reddit\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M2.2 14v.9c0 3.4 4.3 6.2 9.7 6.2 5.4 0 9.8-2.8 9.8-6.2v-.8-.2a5.7 5.7 0 0 0-2.5-3.2c-1.9-1.3-4.4-2-7.3-2a13 13 0 0 0-7.3 2A5.8 5.8 0 0 0 2.2 14zm9.8 5.5c-1.8 0-3-.4-3.9-1.2a.4.4 0 0 1 0-.6c.2-.2.5-.2.6 0 .7.6 1.7.9 3.3.9 1.5 0 2.6-.3 3.2-1h.6c.2.3.2.5 0 .7-.8.8-2 1.2-3.8 1.2zm-3.6-7.6a1.7 1.7 0 1 0 0 3.3c.9 0 1.6-.7 1.6-1.6 0-1-.7-1.7-1.6-1.7zm7.2 0a1.7 1.7 0 1 0 0 3.3c1 0 1.7-.7 1.7-1.6 0-1-.8-1.7-1.7-1.7zm4.6-1.6c1 .9 1.8 1.8 2.1 3 .5-.4.8-1 .8-1.5a1.8 1.8 0 0 0-3-1.5zM2.7 10a1.8 1.8 0 0 0-1.2 3.2c.4-1.1 1.2-2 2.3-3l-1-.2zM12 22C6 22 1.2 18.8 1.2 15v-.8a2.7 2.7 0 1 1 3.3-4.4c1.9-1.1 4.4-1.9 7.1-2l1.8-5.5.4.1 4.3 1c.3-.8 1.1-1.3 2-1.3a2.2 2.2 0 0 1 0 4.4c-1.2 0-2.2-1-2.2-2.2l-3.8-1-1.5 4.6c2.7 0 5 .8 6.8 2 .5-.5 1.2-.7 1.9-.7a2.7 2.7 0 0 1 1.3 5v.8c0 4-4.7 7.1-10.6 7.1zM20.1 3a1.3 1.3 0 1 0 0 2.6 1.3 1.3 0 1 0 0-2.6z\"}})])])]),_c('network',{attrs:{\"network\":\"weibo\"}},[_c('span',{staticClass:\"icon\"},[_c('svg',{attrs:{\"height\":\"30\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{attrs:{\"d\":\"M10.1 20.3c-4 .4-7.4-1.4-7.7-4-.2-2.6 2.8-5 6.8-5.4 4-.4 7.4 1.4 7.6 4 .3 2.6-2.7 5-6.7 5.4zm-1-3c-.4.5-1.3.8-1.9.5-.6-.3-.8-1-.4-1.6.4-.6 1.2-.8 1.8-.6.6.3.8 1 .5 1.6zm1.2-1.7c-.1.2-.4.3-.7.2-.2 0-.3-.3-.1-.5 0-.3.4-.4.6-.3.3.1.3.4.2.6zm.2-2.7c-1.9-.5-4 .4-4.9 2-.8 1.8 0 3.7 2 4.3 2 .6 4.2-.3 5-2.2.9-1.8-.1-3.6-2.1-4.1zm7.6-1.3c-.4 0-.6-.1-.4-.6.3-1 .4-1.8 0-2.4-.8-1-3-1-5.4 0 0 0-.8.3-.6-.3.4-1.2.3-2.2-.3-2.8-1.3-1.3-4.8 0-7.8 3.1C1.3 10.9 0 13.3 0 15.3c0 4 5.1 6.4 10 6.4 6.6 0 11-3.8 11-6.8 0-1.8-1.6-2.8-3-3.3zm1.9-5c-.8-.9-2-1.2-3-1-.4 0-.7.5-.6 1 0 .3.5.6 1 .5a1.5 1.5 0 0 1 1.7 2c-.2.4 0 .8.5 1 .4 0 .8-.1 1-.6.3-1 .1-2.1-.7-3zm2.4-2.2a6.4 6.4 0 0 0-6-2 1 1 0 0 0-.8 1c.1.6.6.9 1.1.8A4.5 4.5 0 0 1 22 10c-.2.5 0 1 .5 1.1.5.2 1 0 1.2-.5.7-2.1.2-4.5-1.3-6.3z\"}})])])])],1)},staticRenderFns:[]}})],1)])],1)],1)],1)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h2',[_vm._v(\"\\n The \"),_c('em',{staticClass:\"property\"}),_c('br',{staticClass:\"hidden-sm-and-up\"}),_vm._v(\"\\n programming font\\n \")])}]\n\nexport { render, staticRenderFns }","\n\n\n\n.header {\n position: relative;\n top: 0;\n z-index: 1;\n width: 100%;\n padding-top: calc(10px + 2vw);\n text-align: center;\n h1 {\n margin: calc(3vw + 15px) 0 0 0;\n font-size: calc(40px + 7vw);\n font-weight: normal;\n line-height: 1em;\n }\n\n h2 {\n margin: 3vw 0 2vw 0;\n font-size: calc(18px + 1.5vw);\n font-weight: normal;\n a {\n text-decoration: none;\n }\n }\n\n .actions {\n padding: calc(10px + 2vw) 0 calc(20px + 4vw) 0;\n white-space: nowrap;\n }\n\n .share {\n display: block;\n padding-top: 5vw;\n margin: 5px;\n }\n\n @media (min-width: 768px) {\n .share {\n position: absolute;\n display: inline-flex;\n padding: 0;\n margin-top: 5px;\n }\n }\n\n .text {\n opacity: 1;\n transition: opacity 2s;\n h1,\n h2 {\n transition: transform 10s ease-out;\n transform: scale(1);\n }\n &.hidden {\n opacity: 0;\n transition: opacity 0.25s;\n h1,\n h2 {\n transition-duration: 0s;\n transform: scale(0.85);\n }\n }\n }\n}\n\n.video-bg {\n position: absolute;\n top: 0;\n z-index: -2;\n width: 100%;\n height: calc(100% - 1px);\n overflow: hidden;\n opacity: 0.5;\n video {\n width: 100%;\n min-width: 1000px;\n }\n}\n\n.header-gradients {\n position: absolute;\n top: 0;\n left: 0;\n z-index: -1;\n width: 100%;\n height: 100%;\n mix-blend-mode: screen;\n}\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=03e524b7&scoped=true&\"\nimport script from \"./Header.vue?vue&type=script&lang=js&\"\nexport * from \"./Header.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Header.vue?vue&type=style&index=0&id=03e524b7&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03e524b7\",\n null\n \n)\n\nexport default component.exports","export default function lazyLoadComponent ({\n componentFactory,\n background,\n height,\n maxHeight,\n loading,\n loadingData\n}) {\n let resolveComponent\n\n return () => ({\n // We return a promise to resolve a\n // component eventually.\n component: new Promise((resolve) => {\n resolveComponent = resolve\n }),\n loading: {\n async mounted () {\n this.$el.style.backgroundColor = background || '#595959'\n this.$el.style.height = height || 0\n this.$el.style.maxHeight = maxHeight || 'auto'\n // We immediately load the component if\n // `IntersectionObserver` is not supported.\n if (!('IntersectionObserver' in window)) {\n componentFactory().then(resolveComponent)\n return\n }\n await new Promise((resolve) => { setTimeout(() => { resolve() }, 1) })\n const observer = new IntersectionObserver((entries) => {\n // Use `intersectionRatio` because of Edge 15's\n // lack of support for `isIntersecting`.\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (entries[0].intersectionRatio <= 0) return\n\n // Cleanup the observer when it's not\n // needed anymore.\n observer.unobserve(this.$el)\n // The `componentFactory()` resolves\n // to the result of a dynamic `import()`\n // which is passed to the `resolveComponent()`\n // function.\n componentFactory().then(resolveComponent)\n })\n // We observe the root `$el` of the\n // mounted loading component to detect\n // when it becomes visible.\n observer.observe(this.$el)\n },\n // Here we render the the component passed\n // to this function via the `loading` parameter.\n render (createElement) {\n return createElement(loading, loadingData)\n }\n }\n })\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"loader\",style:({ height: _vm.height, width: _vm.computedWidth })})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Loader.vue?vue&type=template&id=c2130e8a&\"\nimport script from \"./Loader.vue?vue&type=script&lang=js&\"\nexport * from \"./Loader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Loader.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"faq\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\",on:{\"mouseenter\":function($event){_vm.revealFaq = true},\"touchstart\":function($event){_vm.revealFaq = true},\"mouseleave\":function($event){_vm.revealFaq = false}}},[_c('em',[_vm._v(\"FAQ*\")])]),_c('transition',{attrs:{\"name\":\"el-zoom-in-top\"}},[_c('div',{staticClass:\"caption centre full-width\"},[_vm._v(\"\\n  \\n \"),_c('em',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.revealFaq),expression:\"revealFaq\"}]},[_vm._v(\"Frequently Anticipated Questions\")])])])],1)],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('VueFaqAccordion',{attrs:{\"items\":_vm.faqItems,\"border-color\":\"transparent\"}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Faq.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Faq.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Faq.vue?vue&type=template&id=b51e1faa&\"\nimport script from \"./Faq.vue?vue&type=script&lang=js&\"\nexport * from \"./Faq.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Faq.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content alternate-bg\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"credits\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Credits\")])])])],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22,\"sm\":18}},[_c('p',{staticClass:\"small centre\"},[_vm._v(\"\\n A number of frameworks/packages have been used to make this web site.\\n Big thanks to the following:\\n \"),_c('br'),_c('br'),_c('br'),_c('em',[_vm._v(\"Lovely gradients\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://sarcadass.github.io/granim.js/\"}},[_vm._v(\"\\n Granim.js\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://twitter.com/Sarcadass\"}},[_vm._v(\"\\n Benjamin Blonde\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Cool animated typing\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/mattboldt/typed.js/\"}},[_vm._v(\"\\n Typed.js\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://mattboldt.com\"}},[_vm._v(\"\\n Matt Boldt\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Code editor\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/surmon-china/vue-codemirror\"}},[_vm._v(\"\\n Vue-Codemirror\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/surmon-china\"}},[_vm._v(\"\\n Surmon\")]),_vm._v(\" and\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://codemirror.net\"}},[_vm._v(\"\\n codemirror.net\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Animations here & there\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://animejs.com\"}},[_vm._v(\"\\n Anime.js\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Smooth scrolling\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://vue-scrollto.netlify.com\"}},[_vm._v(\"\\n vue-scrollto\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/rigor789\"}},[_vm._v(\"\\n Igor Randjelovic\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Image comparison component\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/mhayes/vue-twentytwenty\"}},[_vm._v(\"\\n vue-twentytwenty\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/mhayes\"}},[_vm._v(\"\\n Mark Hayes\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"FAQ component\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/gerasimvol/vue-faq-accordion\"}},[_vm._v(\"\\n vue-faq-accordion\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/gerasimvol\"}},[_vm._v(\"\\n Vladimir Gerasimenko\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Thank-you-confetti\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.npmjs.com/package/dom-confetti\"}},[_vm._v(\"\\n dom-confetti\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://twitter.com/danielundin\"}},[_vm._v(\"\\n Daniel Lundin\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"CSS framework / component library\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://element.eleme.io/#/en-US\"}},[_vm._v(\"\\n Element\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Sharing component\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/nicolasbeauvais/vue-social-sharing\"}},[_vm._v(\"\\n vue-social-sharing\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/nicolasbeauvais\"}},[_vm._v(\"\\n Nicolas Beauvais\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Supporter tier medal design\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://psdblast.com\"}},[_vm._v(\"\\n Andy (psdblast.com)\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"First-class apps for compressing images\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://pngmini.com\"}},[_vm._v(\"\\n ImageAlpha\")]),_vm._v(\"\\n and\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://imageoptim.com/mac\"}},[_vm._v(\"\\n ImageOptim\")]),_vm._v(\"\\n by (mostly)\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/kornelski\"}},[_vm._v(\"\\n Kornel Lesinski\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Article on lazily loading components when visible\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://markus.oberlehner.net/blog/skeleton-loading-animation-with-vue/\"}},[_vm._v(\"\\n Skeleton Loading Animation with Vue.js\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://markus.oberlehner.net\"}},[_vm._v(\"\\n Markus Oberlehner\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Embed tweets in Vue apps\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/tonickkozlov/vue-tweet-embed\"}},[_vm._v(\"\\n vue-tweet-embed\")]),_vm._v(\"\\n by\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/tonickkozlov\"}},[_vm._v(\"\\n Anton Kozlov\\n \")]),_c('br'),_c('br'),_c('em',[_vm._v(\"The nice JS framework\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://vuejs.org\"}},[_vm._v(\"\\n Vue.js\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Supercool scaffolding and tools for Vue.js development\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://cli.vuejs.org\"}},[_vm._v(\"\\n Vue CLI\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Automated building and deployment of web site from source\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://travis-ci.org\"}},[_vm._v(\"\\n Travis CI\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Very nice (and rather expensive) font design software\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://glyphsapp.com\"}},[_vm._v(\"\\n Glyphs\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Hosted by the nice folks at\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/about\"}},[_vm._v(\"\\n GitHub\")]),_c('br'),_c('br'),_c('em',[_vm._v(\"Font and web site\")]),_c('br'),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"mailto:victor.mono.font@gmail.com?subject=Thanks for making such a nice font\"}},[_vm._v(\"\\n Rune B\")])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Credits.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Credits.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Credits.vue?vue&type=template&id=2ca50719&\"\nimport script from \"./Credits.vue?vue&type=script&lang=js&\"\nexport * from \"./Credits.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4c9c9924&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import './plugins/element.js'\nimport Vue from 'vue'\nimport App from './App.vue'\nimport VueScrollTo from 'vue-scrollTo'\nimport VueCodemirror from 'vue-codemirror'\nimport 'codemirror/lib/codemirror.css'\nimport SocialSharing from 'vue-social-sharing'\n\nVue.config.productionTip = false\n\nVue.use(VueScrollTo, {\n container: 'body',\n duration: 10000,\n easing: 'ease',\n offset: -200,\n force: true,\n cancelable: true,\n onStart: false,\n onDone: false,\n onCancel: false,\n x: false,\n y: true\n})\n\nVue.use(VueCodemirror)\n\nVue.use(SocialSharing)\n\nwindow.application = new Vue({\n render: h => h(App)\n}).$mount('#app')\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&id=03e524b7&scoped=true&lang=scss&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"scroll-head\",attrs:{\"id\":\"testimonials\"}}),_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"What people are saying\")])])])],1),_c('el-row',{attrs:{\"justify\":\"center\",\"gutter\":20}},_vm._l((_vm.selectedTestimonials),function(testimonial){return _c('el-col',{key:testimonial + _vm.theme,attrs:{\"xs\":24,\"lg\":6}},[_c('Tweet',{attrs:{\"id\":testimonial,\"options\":{ theme: _vm.theme, conversation: 'none', align: 'center' }}})],1)}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Testimonials.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Testimonials.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Testimonials.vue?vue&type=template&id=ba50133e&scoped=true&\"\nimport script from \"./Testimonials.vue?vue&type=script&lang=js&\"\nexport * from \"./Testimonials.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Testimonials.vue?vue&type=style&index=0&id=ba50133e&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ba50133e\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"media/headerbg.0d4d3836.webm\";","module.exports = __webpack_public_path__ + \"img/bronze.6c902090.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loader.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/styles-dark.42978ce3.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Faq.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAYAAAA5ZDbSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDIxIDc5LjE1NDkxMSwgMjAxMy8xMC8yOS0xMTo0NzoxNiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RERCMUIwQTM4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RERCMUIwQTI4NkNFMTFFM0FBNTJFRTMzNTJEMUJDNDYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkU1MTc4QTMyOTlBMDExRTI5QTE1QkMxMDQ2QTg5MDREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJBNDE0QUJDOTlBMTExRTI5QTE1QkMxMDQ2QTg5MDREIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+8kSqyAAADD5JREFUeNrsXQ2Q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\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NavBar.vue?vue&type=style&index=0&id=3df62adc&scoped=true&lang=scss&\"","module.exports = __webpack_public_path__ + \"media/headerbg.d1fdad00.mp4\";"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-2684151d.e6ab8fae.js b/js/chunk-2684151d.873c1424.js similarity index 99% rename from js/chunk-2684151d.e6ab8fae.js rename to js/chunk-2684151d.873c1424.js index 9010a97..943a79a 100644 --- a/js/chunk-2684151d.e6ab8fae.js +++ b/js/chunk-2684151d.873c1424.js @@ -1,2 +1,2 @@ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2684151d"],{"0c0f":function(n,o,p){n.exports=p.p+"img/cascadia-code-light.d03837bc.png"},"0d89":function(n,o,p){n.exports=p.p+"img/dank-mono-dark.dbb6f3da.png"},"0def":function(n,o,p){n.exports=p.p+"img/fira-code-dark.f3819f25.png"},1884:function(n,o,p){"use strict";p("771c")},2287:function(n,o,p){n.exports=p.p+"img/glyphs-light.7ca028d2.png"},"23f0":function(n,o,p){n.exports=p.p+"img/source-code-pro-light.70f56206.png"},"2ab4":function(n,o,p){n.exports=p.p+"img/powerline-dark.8da7636f.png"},"2b4f":function(n,o,p){"use strict";p.r(o);var i=function(){var n=this,o=n.$createElement,p=n._self._c||o;return p("div",{staticClass:"horizontal-large-image"},[p("img",{class:n.image,attrs:{src:n.imagePath}})])},a=[],t={name:"CodeView",props:{image:{type:String,default:""},theme:{type:String,default:"any"},suffix:{type:String,default:"png"}},data:function(){return{}},computed:{imagePath:function(){return p("bb6e")("./".concat(this.image,"-").concat(this.theme,".").concat(this.suffix))}},mounted:function(){},methods:{}},g=t,r=(p("1884"),p("2877")),e=Object(r["a"])(g,i,a,!1,null,null,null);o["default"]=e.exports},"2b8e":function(n,o,p){n.exports=p.p+"img/monolisa-light.e350ec83.png"},"31c7":function(n,o,p){n.exports=p.p+"img/meslo-light.a0dcb9fa.png"},"34ed":function(n,o,p){n.exports=p.p+"img/fira-code-light.b4d7d444.png"},3649:function(n,o,p){n.exports=p.p+"img/hack-light.964b2e1c.png"},3674:function(n,o,p){n.exports=p.p+"img/operator-mono-dark.ebe8efd3.png"},3731:function(n,o,p){n.exports=p.p+"img/jetbrains-mono-dark.7e989644.png"},"3e10":function(n,o,p){n.exports=p.p+"img/monoid-dark.938dec35.png"},4516:function(n,o,p){n.exports=p.p+"img/ubuntu-mono-dark.8d6989a1.png"},"4a05":function(n,o,p){n.exports=p.p+"img/monolisa-dark.e7683db7.png"},"4a0c":function(n,o,p){n.exports=p.p+"img/droid-sans-dark.ca78c224.png"},"4d2d":function(n,o,p){n.exports=p.p+"img/specimen-light.6c29719a.png"},"4f65":function(n,o,p){n.exports=p.p+"img/fantasque-sans-mono-light.aa3a6091.png"},"50b7":function(n,o,p){n.exports=p.p+"img/dank-mono-light.d464cd00.png"},"533c":function(n,o,p){n.exports=p.p+"img/hasklig-light.6818d4df.png"},"5ac1":function(n,o,p){n.exports=p.p+"img/plex-mono-light.5bbfa5e2.png"},"5b5b":function(n,o,p){n.exports=p.p+"img/anonymous-pro-light.35f695b9.png"},6012:function(n,o,p){n.exports=p.p+"img/victor-mono-light.d31f124c.png"},"667b":function(n,o,p){n.exports=p.p+"img/glyphs-dark.1d8a90d2.png"},"771c":function(n,o,p){},"78ec":function(n,o,p){n.exports=p.p+"img/hack-dark.5660ef1b.png"},8309:function(n,o,p){n.exports=p.p+"img/keyboard-light.afebca9b.jpg"},"865c":function(n,o,p){n.exports=p.p+"img/input-light.35f4bc64.png"},"880a":function(n,o,p){n.exports=p.p+"img/merch-light.5b769495.jpg"},"885d":function(n,o,p){n.exports=p.p+"img/consolas-dark.851c1581.png"},"995b":function(n,o,p){n.exports=p.p+"img/inconsolata-light.d9ad2736.png"},a252:function(n,o,p){n.exports=p.p+"img/cartograph-dark.71938504.png"},a373:function(n,o,p){n.exports=p.p+"img/source-code-pro-dark.f61d06c0.png"},ab41:function(n,o,p){n.exports=p.p+"img/consolas-light.172dd0dd.png"},ab4f:function(n,o,p){n.exports=p.p+"img/cartograph-light.c182e87b.png"},ae34:function(n,o,p){n.exports=p.p+"img/plex-mono-dark.20b89851.png"},b1f0:function(n,o,p){n.exports=p.p+"img/specimen-dark.d66d1501.png"},b273:function(n,o,p){n.exports=p.p+"img/jetbrains-mono-light.852ec89a.png"},b4ec:function(n,o,p){n.exports=p.p+"img/operator-mono-light.1494d886.png"},b65b:function(n,o,p){n.exports=p.p+"img/victor-mono-dark.32c2b8aa.png"},bb6e:function(n,o,p){var i={"./bronze.png":"94f2","./comparison/anonymous-pro-dark.png":"d01e","./comparison/anonymous-pro-light.png":"5b5b","./comparison/cartograph-dark.png":"a252","./comparison/cartograph-light.png":"ab4f","./comparison/cascadia-code-dark.png":"df63","./comparison/cascadia-code-light.png":"0c0f","./comparison/consolas-dark.png":"885d","./comparison/consolas-light.png":"ab41","./comparison/dank-mono-dark.png":"0d89","./comparison/dank-mono-light.png":"50b7","./comparison/droid-sans-dark.png":"4a0c","./comparison/droid-sans-light.png":"e270","./comparison/fantasque-sans-mono-dark.png":"d94a","./comparison/fantasque-sans-mono-light.png":"4f65","./comparison/fira-code-dark.png":"0def","./comparison/fira-code-light.png":"34ed","./comparison/hack-dark.png":"78ec","./comparison/hack-light.png":"3649","./comparison/hasklig-dark.png":"e3bd","./comparison/hasklig-light.png":"533c","./comparison/inconsolata-dark.png":"c3d5","./comparison/inconsolata-light.png":"995b","./comparison/input-dark.png":"d8d0","./comparison/input-light.png":"865c","./comparison/iosevka-dark.png":"fb5a","./comparison/iosevka-light.png":"d406","./comparison/jetbrains-mono-dark.png":"3731","./comparison/jetbrains-mono-light.png":"b273","./comparison/meslo-dark.png":"c9e9","./comparison/meslo-light.png":"31c7","./comparison/monoid-dark.png":"3e10","./comparison/monoid-light.png":"f282","./comparison/monolisa-dark.png":"4a05","./comparison/monolisa-light.png":"2b8e","./comparison/operator-mono-dark.png":"3674","./comparison/operator-mono-light.png":"b4ec","./comparison/plex-mono-dark.png":"ae34","./comparison/plex-mono-light.png":"5ac1","./comparison/roboto-mono-dark.png":"fe85","./comparison/roboto-mono-light.png":"e490","./comparison/source-code-pro-dark.png":"a373","./comparison/source-code-pro-light.png":"23f0","./comparison/sudo-dark.png":"c5de","./comparison/sudo-light.png":"c498","./comparison/ubuntu-mono-dark.png":"4516","./comparison/ubuntu-mono-light.png":"f84f","./comparison/victor-mono-dark.png":"b65b","./comparison/victor-mono-light.png":"6012","./github.png":"d677","./glyphs-dark.png":"667b","./glyphs-light.png":"2287","./gold.png":"3964","./keyboard-dark.jpg":"fd7e","./keyboard-light.jpg":"8309","./merch-dark.jpg":"d9a2","./merch-light.jpg":"880a","./powerline-dark.png":"2ab4","./powerline-light.png":"c01e","./silver.png":"2231","./specimen-dark.png":"b1f0","./specimen-light.png":"4d2d","./styles-dark-thumb.png":"2210","./styles-dark.png":"b2d7","./styles-light-thumb.png":"178f","./styles-light.png":"0f35","./unicorn.png":"478e"};function a(n){var o=t(n);return p(o)}function t(n){if(!p.o(i,n)){var o=new Error("Cannot find module '"+n+"'");throw o.code="MODULE_NOT_FOUND",o}return i[n]}a.keys=function(){return Object.keys(i)},a.resolve=t,n.exports=a,a.id="bb6e"},c01e:function(n,o,p){n.exports=p.p+"img/powerline-light.dd7df5de.png"},c3d5:function(n,o,p){n.exports=p.p+"img/inconsolata-dark.535ad22b.png"},c498:function(n,o,p){n.exports=p.p+"img/sudo-light.b886ecb8.png"},c5de:function(n,o,p){n.exports=p.p+"img/sudo-dark.e29ec8be.png"},c9e9:function(n,o,p){n.exports=p.p+"img/meslo-dark.0afd3f6e.png"},d01e:function(n,o,p){n.exports=p.p+"img/anonymous-pro-dark.25e528b6.png"},d406:function(n,o,p){n.exports=p.p+"img/iosevka-light.0bb90e5c.png"},d8d0:function(n,o,p){n.exports=p.p+"img/input-dark.687b727e.png"},d94a:function(n,o,p){n.exports=p.p+"img/fantasque-sans-mono-dark.7feeeaaa.png"},d9a2:function(n,o,p){n.exports=p.p+"img/merch-dark.5d4ca314.jpg"},df63:function(n,o,p){n.exports=p.p+"img/cascadia-code-dark.8e4b0f25.png"},e270:function(n,o,p){n.exports=p.p+"img/droid-sans-light.798fd56f.png"},e3bd:function(n,o,p){n.exports=p.p+"img/hasklig-dark.86e73584.png"},e490:function(n,o,p){n.exports=p.p+"img/roboto-mono-light.9e9c4704.png"},f282:function(n,o,p){n.exports=p.p+"img/monoid-light.34aa7546.png"},f84f:function(n,o,p){n.exports=p.p+"img/ubuntu-mono-light.369c8d21.png"},fb5a:function(n,o,p){n.exports=p.p+"img/iosevka-dark.4e9a2b78.png"},fd7e:function(n,o,p){n.exports=p.p+"img/keyboard-dark.ff98675f.jpg"},fe85:function(n,o,p){n.exports=p.p+"img/roboto-mono-dark.05ea9e1a.png"}}]); -//# sourceMappingURL=chunk-2684151d.e6ab8fae.js.map \ No newline at end of file +//# sourceMappingURL=chunk-2684151d.873c1424.js.map \ No newline at end of file diff --git a/js/chunk-2684151d.e6ab8fae.js.map b/js/chunk-2684151d.873c1424.js.map similarity index 99% rename from js/chunk-2684151d.e6ab8fae.js.map rename to js/chunk-2684151d.873c1424.js.map index c121978..f3b84a6 100644 --- a/js/chunk-2684151d.e6ab8fae.js.map +++ b/js/chunk-2684151d.873c1424.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/assets/img/comparison/cascadia-code-light.png","webpack:///./src/assets/img/comparison/dank-mono-dark.png","webpack:///./src/assets/img/comparison/fira-code-dark.png","webpack:///./src/components/HeroImage.vue?2f0c","webpack:///./src/assets/img/glyphs-light.png","webpack:///./src/assets/img/comparison/source-code-pro-light.png","webpack:///./src/assets/img/powerline-dark.png","webpack:///./src/components/HeroImage.vue?6733","webpack:///src/components/HeroImage.vue","webpack:///./src/components/HeroImage.vue?b34f","webpack:///./src/components/HeroImage.vue","webpack:///./src/assets/img/comparison/monolisa-light.png","webpack:///./src/assets/img/comparison/meslo-light.png","webpack:///./src/assets/img/comparison/fira-code-light.png","webpack:///./src/assets/img/comparison/hack-light.png","webpack:///./src/assets/img/comparison/operator-mono-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-dark.png","webpack:///./src/assets/img/comparison/monoid-dark.png","webpack:///./src/assets/img/comparison/ubuntu-mono-dark.png","webpack:///./src/assets/img/comparison/monolisa-dark.png","webpack:///./src/assets/img/comparison/droid-sans-dark.png","webpack:///./src/assets/img/specimen-light.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-light.png","webpack:///./src/assets/img/comparison/dank-mono-light.png","webpack:///./src/assets/img/comparison/hasklig-light.png","webpack:///./src/assets/img/comparison/plex-mono-light.png","webpack:///./src/assets/img/comparison/anonymous-pro-light.png","webpack:///./src/assets/img/comparison/victor-mono-light.png","webpack:///./src/assets/img/glyphs-dark.png","webpack:///./src/assets/img/comparison/hack-dark.png","webpack:///./src/assets/img/keyboard-light.jpg","webpack:///./src/assets/img/comparison/input-light.png","webpack:///./src/assets/img/merch-light.jpg","webpack:///./src/assets/img/comparison/consolas-dark.png","webpack:///./src/assets/img/comparison/inconsolata-light.png","webpack:///./src/assets/img/comparison/cartograph-dark.png","webpack:///./src/assets/img/comparison/source-code-pro-dark.png","webpack:///./src/assets/img/comparison/consolas-light.png","webpack:///./src/assets/img/comparison/cartograph-light.png","webpack:///./src/assets/img/comparison/plex-mono-dark.png","webpack:///./src/assets/img/specimen-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-light.png","webpack:///./src/assets/img/comparison/operator-mono-light.png","webpack:///./src/assets/img/comparison/victor-mono-dark.png","webpack:///./src/assets/img sync ^\\.\\/.*$","webpack:///./src/assets/img/powerline-light.png","webpack:///./src/assets/img/comparison/inconsolata-dark.png","webpack:///./src/assets/img/comparison/sudo-light.png","webpack:///./src/assets/img/comparison/sudo-dark.png","webpack:///./src/assets/img/comparison/meslo-dark.png","webpack:///./src/assets/img/comparison/anonymous-pro-dark.png","webpack:///./src/assets/img/comparison/iosevka-light.png","webpack:///./src/assets/img/comparison/input-dark.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-dark.png","webpack:///./src/assets/img/merch-dark.jpg","webpack:///./src/assets/img/comparison/cascadia-code-dark.png","webpack:///./src/assets/img/comparison/droid-sans-light.png","webpack:///./src/assets/img/comparison/hasklig-dark.png","webpack:///./src/assets/img/comparison/roboto-mono-light.png","webpack:///./src/assets/img/comparison/monoid-light.png","webpack:///./src/assets/img/comparison/ubuntu-mono-light.png","webpack:///./src/assets/img/comparison/iosevka-dark.png","webpack:///./src/assets/img/keyboard-dark.jpg","webpack:///./src/assets/img/comparison/roboto-mono-dark.png"],"names":["module","exports","render","_vm","this","_h","$createElement","_c","_self","staticClass","class","image","attrs","imagePath","staticRenderFns","name","props","type","String","default","theme","suffix","data","computed","mounted","methods","component","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve"],"mappings":"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","file":"js/chunk-2684151d.e6ab8fae.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/cascadia-code-light.d03837bc.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-dark.dbb6f3da.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-dark.f3819f25.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeroImage.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/glyphs-light.7ca028d2.png\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-light.70f56206.png\";","module.exports = __webpack_public_path__ + \"img/powerline-dark.8da7636f.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"horizontal-large-image\"},[_c('img',{class:_vm.image,attrs:{\"src\":_vm.imagePath}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n.horizontal-large-image {\n width: 100%;\n height: 50vw;\n max-height: 350px;\n overflow: hidden;\n filter: grayscale(1);\n opacity: 0.5;\n transition: all 1s 0.1s;\n &:hover {\n filter: grayscale(0);\n opacity: 1;\n }\n img {\n position: relative;\n &.powerline {\n top: -20%;\n left: -15%;\n width: 125%;\n min-width: 1000px;\n opacity: 0.4;\n }\n &.keyboard {\n top: calc(-23vw + 80px);\n left: 0;\n width: 100%;\n }\n &.merch {\n top: -12vw;\n left: 0%;\n width: 100%;\n min-width: 800px;\n }\n &.specimen {\n top: -8%;\n left: -50%;\n width: 200%;\n }\n &.glyphs {\n top: -3%;\n left: -15%;\n width: 130%;\n }\n }\n}\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeroImage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeroImage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HeroImage.vue?vue&type=template&id=7d076e23&\"\nimport script from \"./HeroImage.vue?vue&type=script&lang=js&\"\nexport * from \"./HeroImage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HeroImage.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/monolisa-light.e350ec83.png\";","module.exports = __webpack_public_path__ + \"img/meslo-light.a0dcb9fa.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-light.b4d7d444.png\";","module.exports = __webpack_public_path__ + \"img/hack-light.964b2e1c.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-dark.ebe8efd3.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-dark.7e989644.png\";","module.exports = __webpack_public_path__ + \"img/monoid-dark.938dec35.png\";","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-dark.8d6989a1.png\";","module.exports = __webpack_public_path__ + \"img/monolisa-dark.e7683db7.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-dark.ca78c224.png\";","module.exports = __webpack_public_path__ + \"img/specimen-light.6c29719a.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-light.aa3a6091.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-light.d464cd00.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-light.6818d4df.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-light.5bbfa5e2.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-light.35f695b9.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-light.d31f124c.png\";","module.exports = __webpack_public_path__ + \"img/glyphs-dark.1d8a90d2.png\";","module.exports = __webpack_public_path__ + \"img/hack-dark.5660ef1b.png\";","module.exports = __webpack_public_path__ + \"img/keyboard-light.afebca9b.jpg\";","module.exports = __webpack_public_path__ + \"img/input-light.35f4bc64.png\";","module.exports = __webpack_public_path__ + \"img/merch-light.5b769495.jpg\";","module.exports = __webpack_public_path__ + \"img/consolas-dark.851c1581.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-light.d9ad2736.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-dark.71938504.png\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-dark.f61d06c0.png\";","module.exports = __webpack_public_path__ + \"img/consolas-light.172dd0dd.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-light.c182e87b.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-dark.20b89851.png\";","module.exports = __webpack_public_path__ + \"img/specimen-dark.d66d1501.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-light.852ec89a.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-light.1494d886.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-dark.32c2b8aa.png\";","var map = {\n\t\"./bronze.png\": \"94f2\",\n\t\"./comparison/anonymous-pro-dark.png\": \"d01e\",\n\t\"./comparison/anonymous-pro-light.png\": \"5b5b\",\n\t\"./comparison/cartograph-dark.png\": \"a252\",\n\t\"./comparison/cartograph-light.png\": \"ab4f\",\n\t\"./comparison/cascadia-code-dark.png\": \"df63\",\n\t\"./comparison/cascadia-code-light.png\": \"0c0f\",\n\t\"./comparison/consolas-dark.png\": \"885d\",\n\t\"./comparison/consolas-light.png\": \"ab41\",\n\t\"./comparison/dank-mono-dark.png\": \"0d89\",\n\t\"./comparison/dank-mono-light.png\": \"50b7\",\n\t\"./comparison/droid-sans-dark.png\": \"4a0c\",\n\t\"./comparison/droid-sans-light.png\": \"e270\",\n\t\"./comparison/fantasque-sans-mono-dark.png\": \"d94a\",\n\t\"./comparison/fantasque-sans-mono-light.png\": \"4f65\",\n\t\"./comparison/fira-code-dark.png\": \"0def\",\n\t\"./comparison/fira-code-light.png\": \"34ed\",\n\t\"./comparison/hack-dark.png\": \"78ec\",\n\t\"./comparison/hack-light.png\": \"3649\",\n\t\"./comparison/hasklig-dark.png\": \"e3bd\",\n\t\"./comparison/hasklig-light.png\": \"533c\",\n\t\"./comparison/inconsolata-dark.png\": \"c3d5\",\n\t\"./comparison/inconsolata-light.png\": \"995b\",\n\t\"./comparison/input-dark.png\": \"d8d0\",\n\t\"./comparison/input-light.png\": \"865c\",\n\t\"./comparison/iosevka-dark.png\": \"fb5a\",\n\t\"./comparison/iosevka-light.png\": \"d406\",\n\t\"./comparison/jetbrains-mono-dark.png\": \"3731\",\n\t\"./comparison/jetbrains-mono-light.png\": \"b273\",\n\t\"./comparison/meslo-dark.png\": \"c9e9\",\n\t\"./comparison/meslo-light.png\": \"31c7\",\n\t\"./comparison/monoid-dark.png\": \"3e10\",\n\t\"./comparison/monoid-light.png\": \"f282\",\n\t\"./comparison/monolisa-dark.png\": \"4a05\",\n\t\"./comparison/monolisa-light.png\": \"2b8e\",\n\t\"./comparison/operator-mono-dark.png\": \"3674\",\n\t\"./comparison/operator-mono-light.png\": \"b4ec\",\n\t\"./comparison/plex-mono-dark.png\": \"ae34\",\n\t\"./comparison/plex-mono-light.png\": \"5ac1\",\n\t\"./comparison/roboto-mono-dark.png\": \"fe85\",\n\t\"./comparison/roboto-mono-light.png\": \"e490\",\n\t\"./comparison/source-code-pro-dark.png\": \"a373\",\n\t\"./comparison/source-code-pro-light.png\": \"23f0\",\n\t\"./comparison/sudo-dark.png\": \"c5de\",\n\t\"./comparison/sudo-light.png\": \"c498\",\n\t\"./comparison/ubuntu-mono-dark.png\": \"4516\",\n\t\"./comparison/ubuntu-mono-light.png\": \"f84f\",\n\t\"./comparison/victor-mono-dark.png\": \"b65b\",\n\t\"./comparison/victor-mono-light.png\": \"6012\",\n\t\"./github.png\": \"d677\",\n\t\"./glyphs-dark.png\": \"667b\",\n\t\"./glyphs-light.png\": \"2287\",\n\t\"./gold.png\": \"3964\",\n\t\"./keyboard-dark.jpg\": \"fd7e\",\n\t\"./keyboard-light.jpg\": \"8309\",\n\t\"./merch-dark.jpg\": \"d9a2\",\n\t\"./merch-light.jpg\": \"880a\",\n\t\"./powerline-dark.png\": \"2ab4\",\n\t\"./powerline-light.png\": \"c01e\",\n\t\"./silver.png\": \"2231\",\n\t\"./specimen-dark.png\": \"b1f0\",\n\t\"./specimen-light.png\": \"4d2d\",\n\t\"./styles-dark-thumb.png\": \"2210\",\n\t\"./styles-dark.png\": \"b2d7\",\n\t\"./styles-light-thumb.png\": \"178f\",\n\t\"./styles-light.png\": \"0f35\",\n\t\"./unicorn.png\": \"478e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"bb6e\";","module.exports = __webpack_public_path__ + \"img/powerline-light.dd7df5de.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-dark.535ad22b.png\";","module.exports = __webpack_public_path__ + \"img/sudo-light.b886ecb8.png\";","module.exports = __webpack_public_path__ + \"img/sudo-dark.e29ec8be.png\";","module.exports = __webpack_public_path__ + \"img/meslo-dark.0afd3f6e.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-dark.25e528b6.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-light.0bb90e5c.png\";","module.exports = __webpack_public_path__ + \"img/input-dark.687b727e.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-dark.7feeeaaa.png\";","module.exports = __webpack_public_path__ + \"img/merch-dark.5d4ca314.jpg\";","module.exports = __webpack_public_path__ + \"img/cascadia-code-dark.8e4b0f25.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-light.798fd56f.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-dark.86e73584.png\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-light.9e9c4704.png\";","module.exports = __webpack_public_path__ + \"img/monoid-light.34aa7546.png\";","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-light.369c8d21.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-dark.4e9a2b78.png\";","module.exports = __webpack_public_path__ + \"img/keyboard-dark.ff98675f.jpg\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-dark.05ea9e1a.png\";"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/assets/img/comparison/cascadia-code-light.png","webpack:///./src/assets/img/comparison/dank-mono-dark.png","webpack:///./src/assets/img/comparison/fira-code-dark.png","webpack:///./src/components/HeroImage.vue?2f0c","webpack:///./src/assets/img/glyphs-light.png","webpack:///./src/assets/img/comparison/source-code-pro-light.png","webpack:///./src/assets/img/powerline-dark.png","webpack:///./src/components/HeroImage.vue?3697","webpack:///src/components/HeroImage.vue","webpack:///./src/components/HeroImage.vue?b34f","webpack:///./src/components/HeroImage.vue","webpack:///./src/assets/img/comparison/monolisa-light.png","webpack:///./src/assets/img/comparison/meslo-light.png","webpack:///./src/assets/img/comparison/fira-code-light.png","webpack:///./src/assets/img/comparison/hack-light.png","webpack:///./src/assets/img/comparison/operator-mono-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-dark.png","webpack:///./src/assets/img/comparison/monoid-dark.png","webpack:///./src/assets/img/comparison/ubuntu-mono-dark.png","webpack:///./src/assets/img/comparison/monolisa-dark.png","webpack:///./src/assets/img/comparison/droid-sans-dark.png","webpack:///./src/assets/img/specimen-light.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-light.png","webpack:///./src/assets/img/comparison/dank-mono-light.png","webpack:///./src/assets/img/comparison/hasklig-light.png","webpack:///./src/assets/img/comparison/plex-mono-light.png","webpack:///./src/assets/img/comparison/anonymous-pro-light.png","webpack:///./src/assets/img/comparison/victor-mono-light.png","webpack:///./src/assets/img/glyphs-dark.png","webpack:///./src/assets/img/comparison/hack-dark.png","webpack:///./src/assets/img/keyboard-light.jpg","webpack:///./src/assets/img/comparison/input-light.png","webpack:///./src/assets/img/merch-light.jpg","webpack:///./src/assets/img/comparison/consolas-dark.png","webpack:///./src/assets/img/comparison/inconsolata-light.png","webpack:///./src/assets/img/comparison/cartograph-dark.png","webpack:///./src/assets/img/comparison/source-code-pro-dark.png","webpack:///./src/assets/img/comparison/consolas-light.png","webpack:///./src/assets/img/comparison/cartograph-light.png","webpack:///./src/assets/img/comparison/plex-mono-dark.png","webpack:///./src/assets/img/specimen-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-light.png","webpack:///./src/assets/img/comparison/operator-mono-light.png","webpack:///./src/assets/img/comparison/victor-mono-dark.png","webpack:///./src/assets/img sync ^\\.\\/.*$","webpack:///./src/assets/img/powerline-light.png","webpack:///./src/assets/img/comparison/inconsolata-dark.png","webpack:///./src/assets/img/comparison/sudo-light.png","webpack:///./src/assets/img/comparison/sudo-dark.png","webpack:///./src/assets/img/comparison/meslo-dark.png","webpack:///./src/assets/img/comparison/anonymous-pro-dark.png","webpack:///./src/assets/img/comparison/iosevka-light.png","webpack:///./src/assets/img/comparison/input-dark.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-dark.png","webpack:///./src/assets/img/merch-dark.jpg","webpack:///./src/assets/img/comparison/cascadia-code-dark.png","webpack:///./src/assets/img/comparison/droid-sans-light.png","webpack:///./src/assets/img/comparison/hasklig-dark.png","webpack:///./src/assets/img/comparison/roboto-mono-light.png","webpack:///./src/assets/img/comparison/monoid-light.png","webpack:///./src/assets/img/comparison/ubuntu-mono-light.png","webpack:///./src/assets/img/comparison/iosevka-dark.png","webpack:///./src/assets/img/keyboard-dark.jpg","webpack:///./src/assets/img/comparison/roboto-mono-dark.png"],"names":["module","exports","render","_vm","this","_h","$createElement","_c","_self","staticClass","class","image","attrs","imagePath","staticRenderFns","name","props","type","String","default","theme","suffix","data","computed","mounted","methods","component","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve"],"mappings":"qGAAAA,EAAOC,QAAU,IAA0B,wC,uBCA3CD,EAAOC,QAAU,IAA0B,mC,uBCA3CD,EAAOC,QAAU,IAA0B,mC,kCCA3C,W,qBCAAD,EAAOC,QAAU,IAA0B,iC,uBCA3CD,EAAOC,QAAU,IAA0B,0C,uBCA3CD,EAAOC,QAAU,IAA0B,mC,2CCA3C,IAAIC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACF,EAAG,MAAM,CAACG,MAAMP,EAAIQ,MAAMC,MAAM,CAAC,IAAMT,EAAIU,gBACxLC,EAAkB,GCStB,GACEC,KAAM,WACNC,MAAO,CACLL,MAAO,CACLM,KAAMC,OACNC,QAAS,IAEXC,MAAO,CACLH,KAAMC,OACNC,QAAS,OAEXE,OAAQ,CACNJ,KAAMC,OACNC,QAAS,QAGbG,KAhBF,WAiBI,MAAO,IAGTC,SAAU,CACRV,UADJ,WACA,2FAEEW,QAvBF,aAyBEC,QAAS,ICnCwU,I,wBCQ/UC,EAAY,eACd,EACAxB,EACAY,GACA,EACA,KACA,KACA,MAIa,aAAAY,E,gCCnBf1B,EAAOC,QAAU,IAA0B,mC,uBCA3CD,EAAOC,QAAU,IAA0B,gC,uBCA3CD,EAAOC,QAAU,IAA0B,oC,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,wC,uBCA3CD,EAAOC,QAAU,IAA0B,gC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,uBCA3CD,EAAOC,QAAU,IAA0B,kC,uBCA3CD,EAAOC,QAAU,IAA0B,oC,uBCA3CD,EAAOC,QAAU,IAA0B,mC,uBCA3CD,EAAOC,QAAU,IAA0B,8C,uBCA3CD,EAAOC,QAAU,IAA0B,oC,uBCA3CD,EAAOC,QAAU,IAA0B,kC,uBCA3CD,EAAOC,QAAU,IAA0B,oC,uBCA3CD,EAAOC,QAAU,IAA0B,wC,qBCA3CD,EAAOC,QAAU,IAA0B,sC,uBCA3CD,EAAOC,QAAU,IAA0B,gC,gDCA3CD,EAAOC,QAAU,IAA0B,8B,qBCA3CD,EAAOC,QAAU,IAA0B,mC,uBCA3CD,EAAOC,QAAU,IAA0B,gC,uBCA3CD,EAAOC,QAAU,IAA0B,gC,uBCA3CD,EAAOC,QAAU,IAA0B,kC,uBCA3CD,EAAOC,QAAU,IAA0B,sC,qBCA3CD,EAAOC,QAAU,IAA0B,oC,qBCA3CD,EAAOC,QAAU,IAA0B,yC,qBCA3CD,EAAOC,QAAU,IAA0B,mC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,qBCA3CD,EAAOC,QAAU,IAA0B,mC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,yC,qBCA3CD,EAAOC,QAAU,IAA0B,wC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,qBCA3C,IAAI0B,EAAM,CACT,eAAgB,OAChB,sCAAuC,OACvC,uCAAwC,OACxC,mCAAoC,OACpC,oCAAqC,OACrC,sCAAuC,OACvC,uCAAwC,OACxC,iCAAkC,OAClC,kCAAmC,OACnC,kCAAmC,OACnC,mCAAoC,OACpC,mCAAoC,OACpC,oCAAqC,OACrC,4CAA6C,OAC7C,6CAA8C,OAC9C,kCAAmC,OACnC,mCAAoC,OACpC,6BAA8B,OAC9B,8BAA+B,OAC/B,gCAAiC,OACjC,iCAAkC,OAClC,oCAAqC,OACrC,qCAAsC,OACtC,8BAA+B,OAC/B,+BAAgC,OAChC,gCAAiC,OACjC,iCAAkC,OAClC,uCAAwC,OACxC,wCAAyC,OACzC,8BAA+B,OAC/B,+BAAgC,OAChC,+BAAgC,OAChC,gCAAiC,OACjC,iCAAkC,OAClC,kCAAmC,OACnC,sCAAuC,OACvC,uCAAwC,OACxC,kCAAmC,OACnC,mCAAoC,OACpC,oCAAqC,OACrC,qCAAsC,OACtC,wCAAyC,OACzC,yCAA0C,OAC1C,6BAA8B,OAC9B,8BAA+B,OAC/B,oCAAqC,OACrC,qCAAsC,OACtC,oCAAqC,OACrC,qCAAsC,OACtC,eAAgB,OAChB,oBAAqB,OACrB,qBAAsB,OACtB,aAAc,OACd,sBAAuB,OACvB,uBAAwB,OACxB,mBAAoB,OACpB,oBAAqB,OACrB,uBAAwB,OACxB,wBAAyB,OACzB,eAAgB,OAChB,sBAAuB,OACvB,uBAAwB,OACxB,0BAA2B,OAC3B,oBAAqB,OACrB,2BAA4B,OAC5B,qBAAsB,OACtB,gBAAiB,QAIlB,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzB/B,EAAOC,QAAU2B,EACjBA,EAAeE,GAAK,Q,qBCxFpB9B,EAAOC,QAAU,IAA0B,oC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,8B,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,6C,qBCA3CD,EAAOC,QAAU,IAA0B,+B,qBCA3CD,EAAOC,QAAU,IAA0B,uC,qBCA3CD,EAAOC,QAAU,IAA0B,qC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,sC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,sC,qBCA3CD,EAAOC,QAAU,IAA0B,iC,qBCA3CD,EAAOC,QAAU,IAA0B,kC,qBCA3CD,EAAOC,QAAU,IAA0B","file":"js/chunk-2684151d.873c1424.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/cascadia-code-light.d03837bc.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-dark.dbb6f3da.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-dark.f3819f25.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeroImage.vue?vue&type=style&index=0&lang=scss&\"","module.exports = __webpack_public_path__ + \"img/glyphs-light.7ca028d2.png\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-light.70f56206.png\";","module.exports = __webpack_public_path__ + \"img/powerline-dark.8da7636f.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"horizontal-large-image\"},[_c('img',{class:_vm.image,attrs:{\"src\":_vm.imagePath}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n.horizontal-large-image {\n width: 100%;\n height: 50vw;\n max-height: 350px;\n overflow: hidden;\n filter: grayscale(1);\n opacity: 0.5;\n transition: all 1s 0.1s;\n &:hover {\n filter: grayscale(0);\n opacity: 1;\n }\n img {\n position: relative;\n &.powerline {\n top: -20%;\n left: -15%;\n width: 125%;\n min-width: 1000px;\n opacity: 0.4;\n }\n &.keyboard {\n top: calc(-23vw + 80px);\n left: 0;\n width: 100%;\n }\n &.merch {\n top: -12vw;\n left: 0%;\n width: 100%;\n min-width: 800px;\n }\n &.specimen {\n top: -8%;\n left: -50%;\n width: 200%;\n }\n &.glyphs {\n top: -3%;\n left: -15%;\n width: 130%;\n }\n }\n}\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeroImage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HeroImage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HeroImage.vue?vue&type=template&id=7d076e23&\"\nimport script from \"./HeroImage.vue?vue&type=script&lang=js&\"\nexport * from \"./HeroImage.vue?vue&type=script&lang=js&\"\nimport style0 from \"./HeroImage.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/monolisa-light.e350ec83.png\";","module.exports = __webpack_public_path__ + \"img/meslo-light.a0dcb9fa.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-light.b4d7d444.png\";","module.exports = __webpack_public_path__ + \"img/hack-light.964b2e1c.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-dark.ebe8efd3.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-dark.7e989644.png\";","module.exports = __webpack_public_path__ + \"img/monoid-dark.938dec35.png\";","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-dark.8d6989a1.png\";","module.exports = __webpack_public_path__ + \"img/monolisa-dark.e7683db7.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-dark.ca78c224.png\";","module.exports = __webpack_public_path__ + \"img/specimen-light.6c29719a.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-light.aa3a6091.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-light.d464cd00.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-light.6818d4df.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-light.5bbfa5e2.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-light.35f695b9.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-light.d31f124c.png\";","module.exports = __webpack_public_path__ + \"img/glyphs-dark.1d8a90d2.png\";","module.exports = __webpack_public_path__ + \"img/hack-dark.5660ef1b.png\";","module.exports = __webpack_public_path__ + \"img/keyboard-light.afebca9b.jpg\";","module.exports = __webpack_public_path__ + \"img/input-light.35f4bc64.png\";","module.exports = __webpack_public_path__ + \"img/merch-light.5b769495.jpg\";","module.exports = __webpack_public_path__ + \"img/consolas-dark.851c1581.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-light.d9ad2736.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-dark.71938504.png\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-dark.f61d06c0.png\";","module.exports = __webpack_public_path__ + \"img/consolas-light.172dd0dd.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-light.c182e87b.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-dark.20b89851.png\";","module.exports = __webpack_public_path__ + \"img/specimen-dark.d66d1501.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-light.852ec89a.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-light.1494d886.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-dark.32c2b8aa.png\";","var map = {\n\t\"./bronze.png\": \"94f2\",\n\t\"./comparison/anonymous-pro-dark.png\": \"d01e\",\n\t\"./comparison/anonymous-pro-light.png\": \"5b5b\",\n\t\"./comparison/cartograph-dark.png\": \"a252\",\n\t\"./comparison/cartograph-light.png\": \"ab4f\",\n\t\"./comparison/cascadia-code-dark.png\": \"df63\",\n\t\"./comparison/cascadia-code-light.png\": \"0c0f\",\n\t\"./comparison/consolas-dark.png\": \"885d\",\n\t\"./comparison/consolas-light.png\": \"ab41\",\n\t\"./comparison/dank-mono-dark.png\": \"0d89\",\n\t\"./comparison/dank-mono-light.png\": \"50b7\",\n\t\"./comparison/droid-sans-dark.png\": \"4a0c\",\n\t\"./comparison/droid-sans-light.png\": \"e270\",\n\t\"./comparison/fantasque-sans-mono-dark.png\": \"d94a\",\n\t\"./comparison/fantasque-sans-mono-light.png\": \"4f65\",\n\t\"./comparison/fira-code-dark.png\": \"0def\",\n\t\"./comparison/fira-code-light.png\": \"34ed\",\n\t\"./comparison/hack-dark.png\": \"78ec\",\n\t\"./comparison/hack-light.png\": \"3649\",\n\t\"./comparison/hasklig-dark.png\": \"e3bd\",\n\t\"./comparison/hasklig-light.png\": \"533c\",\n\t\"./comparison/inconsolata-dark.png\": \"c3d5\",\n\t\"./comparison/inconsolata-light.png\": \"995b\",\n\t\"./comparison/input-dark.png\": \"d8d0\",\n\t\"./comparison/input-light.png\": \"865c\",\n\t\"./comparison/iosevka-dark.png\": \"fb5a\",\n\t\"./comparison/iosevka-light.png\": \"d406\",\n\t\"./comparison/jetbrains-mono-dark.png\": \"3731\",\n\t\"./comparison/jetbrains-mono-light.png\": \"b273\",\n\t\"./comparison/meslo-dark.png\": \"c9e9\",\n\t\"./comparison/meslo-light.png\": \"31c7\",\n\t\"./comparison/monoid-dark.png\": \"3e10\",\n\t\"./comparison/monoid-light.png\": \"f282\",\n\t\"./comparison/monolisa-dark.png\": \"4a05\",\n\t\"./comparison/monolisa-light.png\": \"2b8e\",\n\t\"./comparison/operator-mono-dark.png\": \"3674\",\n\t\"./comparison/operator-mono-light.png\": \"b4ec\",\n\t\"./comparison/plex-mono-dark.png\": \"ae34\",\n\t\"./comparison/plex-mono-light.png\": \"5ac1\",\n\t\"./comparison/roboto-mono-dark.png\": \"fe85\",\n\t\"./comparison/roboto-mono-light.png\": \"e490\",\n\t\"./comparison/source-code-pro-dark.png\": \"a373\",\n\t\"./comparison/source-code-pro-light.png\": \"23f0\",\n\t\"./comparison/sudo-dark.png\": \"c5de\",\n\t\"./comparison/sudo-light.png\": \"c498\",\n\t\"./comparison/ubuntu-mono-dark.png\": \"4516\",\n\t\"./comparison/ubuntu-mono-light.png\": \"f84f\",\n\t\"./comparison/victor-mono-dark.png\": \"b65b\",\n\t\"./comparison/victor-mono-light.png\": \"6012\",\n\t\"./github.png\": \"d677\",\n\t\"./glyphs-dark.png\": \"667b\",\n\t\"./glyphs-light.png\": \"2287\",\n\t\"./gold.png\": \"3964\",\n\t\"./keyboard-dark.jpg\": \"fd7e\",\n\t\"./keyboard-light.jpg\": \"8309\",\n\t\"./merch-dark.jpg\": \"d9a2\",\n\t\"./merch-light.jpg\": \"880a\",\n\t\"./powerline-dark.png\": \"2ab4\",\n\t\"./powerline-light.png\": \"c01e\",\n\t\"./silver.png\": \"2231\",\n\t\"./specimen-dark.png\": \"b1f0\",\n\t\"./specimen-light.png\": \"4d2d\",\n\t\"./styles-dark-thumb.png\": \"2210\",\n\t\"./styles-dark.png\": \"b2d7\",\n\t\"./styles-light-thumb.png\": \"178f\",\n\t\"./styles-light.png\": \"0f35\",\n\t\"./unicorn.png\": \"478e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"bb6e\";","module.exports = __webpack_public_path__ + \"img/powerline-light.dd7df5de.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-dark.535ad22b.png\";","module.exports = __webpack_public_path__ + \"img/sudo-light.b886ecb8.png\";","module.exports = __webpack_public_path__ + \"img/sudo-dark.e29ec8be.png\";","module.exports = __webpack_public_path__ + \"img/meslo-dark.0afd3f6e.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-dark.25e528b6.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-light.0bb90e5c.png\";","module.exports = __webpack_public_path__ + \"img/input-dark.687b727e.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-dark.7feeeaaa.png\";","module.exports = __webpack_public_path__ + \"img/merch-dark.5d4ca314.jpg\";","module.exports = __webpack_public_path__ + \"img/cascadia-code-dark.8e4b0f25.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-light.798fd56f.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-dark.86e73584.png\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-light.9e9c4704.png\";","module.exports = __webpack_public_path__ + \"img/monoid-light.34aa7546.png\";","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-light.369c8d21.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-dark.4e9a2b78.png\";","module.exports = __webpack_public_path__ + \"img/keyboard-dark.ff98675f.jpg\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-dark.05ea9e1a.png\";"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-60daec7d.babc1a84.js b/js/chunk-60daec7d.5744f321.js similarity index 99% rename from js/chunk-60daec7d.babc1a84.js rename to js/chunk-60daec7d.5744f321.js index 4ffb328..3bca6fe 100644 --- a/js/chunk-60daec7d.babc1a84.js +++ b/js/chunk-60daec7d.5744f321.js @@ -1,2 +1,2 @@ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-60daec7d"],{"0425":function(t,n,e){"use strict";e("066c")},"066c":function(t,n,e){},"0c0f":function(t,n,e){t.exports=e.p+"img/cascadia-code-light.d03837bc.png"},"0d89":function(t,n,e){t.exports=e.p+"img/dank-mono-dark.dbb6f3da.png"},"0def":function(t,n,e){t.exports=e.p+"img/fira-code-dark.f3819f25.png"},1080:function(t,n,e){var o={"./victor-mono-dark.png":"b65b","./victor-mono-light.png":"6012"};function i(t){var n=r(t);return e(n)}function r(t){if(!e.o(o,t)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return o[t]}i.keys=function(){return Object.keys(o)},i.resolve=r,t.exports=i,i.id="1080"},"23f0":function(t,n,e){t.exports=e.p+"img/source-code-pro-light.70f56206.png"},"2b8e":function(t,n,e){t.exports=e.p+"img/monolisa-light.e350ec83.png"},"31c7":function(t,n,e){t.exports=e.p+"img/meslo-light.a0dcb9fa.png"},"34ed":function(t,n,e){t.exports=e.p+"img/fira-code-light.b4d7d444.png"},3649:function(t,n,e){t.exports=e.p+"img/hack-light.964b2e1c.png"},3674:function(t,n,e){t.exports=e.p+"img/operator-mono-dark.ebe8efd3.png"},3731:function(t,n,e){t.exports=e.p+"img/jetbrains-mono-dark.7e989644.png"},"3e10":function(t,n,e){t.exports=e.p+"img/monoid-dark.938dec35.png"},4516:function(t,n,e){t.exports=e.p+"img/ubuntu-mono-dark.8d6989a1.png"},"4a05":function(t,n,e){t.exports=e.p+"img/monolisa-dark.e7683db7.png"},"4a0c":function(t,n,e){t.exports=e.p+"img/droid-sans-dark.ca78c224.png"},"4f65":function(t,n,e){t.exports=e.p+"img/fantasque-sans-mono-light.aa3a6091.png"},"50b7":function(t,n,e){t.exports=e.p+"img/dank-mono-light.d464cd00.png"},"533c":function(t,n,e){t.exports=e.p+"img/hasklig-light.6818d4df.png"},"5ac1":function(t,n,e){t.exports=e.p+"img/plex-mono-light.5bbfa5e2.png"},"5b5b":function(t,n,e){t.exports=e.p+"img/anonymous-pro-light.35f695b9.png"},6012:function(t,n,e){t.exports=e.p+"img/victor-mono-light.d31f124c.png"},"68b9":function(t,n,e){},"78ec":function(t,n,e){t.exports=e.p+"img/hack-dark.5660ef1b.png"},"865c":function(t,n,e){t.exports=e.p+"img/input-light.35f4bc64.png"},"885d":function(t,n,e){t.exports=e.p+"img/consolas-dark.851c1581.png"},"995b":function(t,n,e){t.exports=e.p+"img/inconsolata-light.d9ad2736.png"},a252:function(t,n,e){t.exports=e.p+"img/cartograph-dark.71938504.png"},a373:function(t,n,e){t.exports=e.p+"img/source-code-pro-dark.f61d06c0.png"},a668:function(t,n,e){var o={"./anonymous-pro-dark.png":"d01e","./anonymous-pro-light.png":"5b5b","./cartograph-dark.png":"a252","./cartograph-light.png":"ab4f","./cascadia-code-dark.png":"df63","./cascadia-code-light.png":"0c0f","./consolas-dark.png":"885d","./consolas-light.png":"ab41","./dank-mono-dark.png":"0d89","./dank-mono-light.png":"50b7","./droid-sans-dark.png":"4a0c","./droid-sans-light.png":"e270","./fantasque-sans-mono-dark.png":"d94a","./fantasque-sans-mono-light.png":"4f65","./fira-code-dark.png":"0def","./fira-code-light.png":"34ed","./hack-dark.png":"78ec","./hack-light.png":"3649","./hasklig-dark.png":"e3bd","./hasklig-light.png":"533c","./inconsolata-dark.png":"c3d5","./inconsolata-light.png":"995b","./input-dark.png":"d8d0","./input-light.png":"865c","./iosevka-dark.png":"fb5a","./iosevka-light.png":"d406","./jetbrains-mono-dark.png":"3731","./jetbrains-mono-light.png":"b273","./meslo-dark.png":"c9e9","./meslo-light.png":"31c7","./monoid-dark.png":"3e10","./monoid-light.png":"f282","./monolisa-dark.png":"4a05","./monolisa-light.png":"2b8e","./operator-mono-dark.png":"3674","./operator-mono-light.png":"b4ec","./plex-mono-dark.png":"ae34","./plex-mono-light.png":"5ac1","./roboto-mono-dark.png":"fe85","./roboto-mono-light.png":"e490","./source-code-pro-dark.png":"a373","./source-code-pro-light.png":"23f0","./sudo-dark.png":"c5de","./sudo-light.png":"c498","./ubuntu-mono-dark.png":"4516","./ubuntu-mono-light.png":"f84f","./victor-mono-dark.png":"b65b","./victor-mono-light.png":"6012"};function i(t){var n=r(t);return e(n)}function r(t){if(!e.o(o,t)){var n=new Error("Cannot find module '"+t+"'");throw n.code="MODULE_NOT_FOUND",n}return o[t]}i.keys=function(){return Object.keys(o)},i.resolve=r,t.exports=i,i.id="a668"},ab41:function(t,n,e){t.exports=e.p+"img/consolas-light.172dd0dd.png"},ab4f:function(t,n,e){t.exports=e.p+"img/cartograph-light.c182e87b.png"},ae34:function(t,n,e){t.exports=e.p+"img/plex-mono-dark.20b89851.png"},b273:function(t,n,e){t.exports=e.p+"img/jetbrains-mono-light.852ec89a.png"},b4ec:function(t,n,e){t.exports=e.p+"img/operator-mono-light.1494d886.png"},b65b:function(t,n,e){t.exports=e.p+"img/victor-mono-dark.32c2b8aa.png"},c3d5:function(t,n,e){t.exports=e.p+"img/inconsolata-dark.535ad22b.png"},c498:function(t,n,e){t.exports=e.p+"img/sudo-light.b886ecb8.png"},c5de:function(t,n,e){t.exports=e.p+"img/sudo-dark.e29ec8be.png"},c9e9:function(t,n,e){t.exports=e.p+"img/meslo-dark.0afd3f6e.png"},d01e:function(t,n,e){t.exports=e.p+"img/anonymous-pro-dark.25e528b6.png"},d406:function(t,n,e){t.exports=e.p+"img/iosevka-light.0bb90e5c.png"},d8d0:function(t,n,e){t.exports=e.p+"img/input-dark.687b727e.png"},d94a:function(t,n,e){t.exports=e.p+"img/fantasque-sans-mono-dark.7feeeaaa.png"},dcfc:function(t,n,e){"use strict";e("68b9")},df63:function(t,n,e){t.exports=e.p+"img/cascadia-code-dark.8e4b0f25.png"},e270:function(t,n,e){t.exports=e.p+"img/droid-sans-light.798fd56f.png"},e3bd:function(t,n,e){t.exports=e.p+"img/hasklig-dark.86e73584.png"},e490:function(t,n,e){t.exports=e.p+"img/roboto-mono-light.9e9c4704.png"},f282:function(t,n,e){t.exports=e.p+"img/monoid-light.34aa7546.png"},f6f1:function(t,n,e){"use strict";e.r(n);var o=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"negative-margins"},[e("el-row",[e("el-col",[e("h1",{staticClass:"centre"},[e("em",[t._v("Compare it to ")]),e("div",{staticClass:"select-container"},[e("div",{staticClass:"select"},[e("select",{ref:"otherFontSelect"},t._l(t.fonts,(function(n){return e("option",{key:n,domProps:{value:n.toLowerCase().split(" ").join("-")}},[t._v("\n "+t._s(n)+"\n ")])})),0)])])])])],1),e("div",{staticClass:"container"},[e("TwentyTwenty",{attrs:{before:t.victorMonoImage,after:t.otherFontImage}})],1),e("el-row",{attrs:{type:"flex",justify:"center"}},[e("el-col",{attrs:{xs:22}},[e("p",{staticClass:"small centre"},[e("em",[t._v("Test and compare free programming fonts on\n "),e("a",{attrs:{target:"_blank",href:"https://www.programmingfonts.org/#victor-mono"}},[t._v("\n programmingfonts.org")])]),t._v("\n ⭐️\n ")])])],1)],1)},i=[],r=function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("div",{staticClass:"twentytwenty-container",style:t.containerStyle,on:{touchstart:t.startSlide,mousedown:t.startSlide}},[e("img",{attrs:{src:t.after,alt:"after"},on:{mousedown:function(t){t.preventDefault()},load:t.setDimensions}}),e("img",{style:t.beforeImgStyle,attrs:{src:t.before,alt:"before"},on:{mousedown:function(t){t.preventDefault()}}}),e("div",{staticClass:"twentytwenty-overlay",style:t.overlayStyle},[t.beforeLabel?e("div",{staticClass:"twentytwenty-before-label"},[t._v(t._s(t.beforeLabel))]):t._e(),t.afterLabel?e("div",{staticClass:"twentytwenty-after-label"},[t._v(t._s(t.afterLabel))]):t._e()]),e("div",{staticClass:"twentytwenty-handle",style:t.handleStyle},[e("div",{staticClass:"twentytwenty-arrow-left"}),e("div",{staticClass:"twentytwenty-arrow-right"})])])},a=[],s=(e("c5f6"),{data:function(){return{imgOffset:null,slideOffset:this.offset,sliding:!1,containerStyle:{},overlayStyle:{}}},props:{before:{type:String,required:!0},beforeLabel:{type:String},after:{type:String,required:!0},afterLabel:{type:String},offset:{type:[String,Number],default:.5,validator:function(t){return t>0&&t<=1}}},methods:{setDimensions:function(){var t=this.$el.querySelector("img");this.imgOffset=t.getBoundingClientRect(),this.containerStyle={width:"".concat(this.w,"px"),height:"".concat(this.h,"px")}},startSlide:function(t){this.sliding=!0,this.moveSlide(t),this.overlayStyle={opacity:0}},moveSlide:function(t){if(this.sliding){var n=(t.touches?t.touches[0].pageX:t.pageX)-this.imgOffset.left;n=n<0?0:n>this.w?this.w:n,this.slideOffset=n/this.w}},endSlide:function(){this.sliding=!1,this.overlayStyle={}},resize:function(){var t=this;this.containerStyle={},this.$nextTick((function(){return t.setDimensions()}))}},computed:{beforeImgStyle:function(){return{clip:"rect(0, ".concat(this.x,"px, ").concat(this.h,"px, 0)")}},handleStyle:function(){var t=40;return{width:"".concat(t,"px"),height:"".concat(t,"px"),top:"calc(50% - ".concat(t/2,"px)"),left:"calc(".concat(100*this.slideOffset,"% - ").concat(t/2,"px)")}},x:function(){return this.w*this.slideOffset},w:function(){if(this.imgOffset)return this.imgOffset.width},h:function(){if(this.imgOffset)return this.imgOffset.height}},mounted:function(){document.addEventListener("touchmove",this.moveSlide),document.addEventListener("touchend",this.endSlide),document.addEventListener("mousemove",this.moveSlide),document.addEventListener("mouseup",this.endSlide),window.addEventListener("resize",this.resize)},beforeDestroy:function(){document.removeEventListener("touchmove",this.moveSlide),document.removeEventListener("touchend",this.endSlide),document.removeEventListener("mousemove",this.moveSlide),document.removeEventListener("mouseup",this.endSlide),window.removeEventListener("resize",this.resize)}}),c=s,p=(e("dcfc"),e("2877")),d=Object(p["a"])(c,r,a,!1,null,null,null),g=d.exports,f={name:"Compare",components:{TwentyTwenty:g},props:{theme:{type:String,default:"dark"}},data:function(){return{otherFont:"",fonts:["Anonymous Pro","Cartograph","Cascadia Code","Consolas","Dank Mono","Droid Sans","Fantasque Sans Mono","Fira Code","Hack","Hasklig","Inconsolata","Input","Iosevka","JetBrains Mono","Meslo","Monoid","MonoLisa","Operator Mono","Plex Mono","Roboto Mono","Source Code Pro","Sudo","Ubuntu Mono"]}},computed:{victorMonoImage:function(){return e("1080")("./victor-mono-".concat(this.theme,".png"))},otherFontImage:function(){return this.otherFont?e("a668")("./".concat(this.otherFont,"-").concat(this.theme,".png")):""}},mounted:function(){var t=this;this.$refs.otherFontSelect.addEventListener("change",(function(n){t.otherFont=n.target.value})),this.pickRandom()},methods:{pickRandom:function(){var t=Math.floor(Math.random()*this.fonts.length);this.$refs.otherFontSelect.selectedIndex=t,this.$refs.otherFontSelect.dispatchEvent(new Event("change"))}}},l=f,u=(e("0425"),Object(p["a"])(l,o,i,!1,null,"4d49fb19",null));n["default"]=u.exports},f84f:function(t,n,e){t.exports=e.p+"img/ubuntu-mono-light.369c8d21.png"},fb5a:function(t,n,e){t.exports=e.p+"img/iosevka-dark.4e9a2b78.png"},fe85:function(t,n,e){t.exports=e.p+"img/roboto-mono-dark.05ea9e1a.png"}}]); -//# sourceMappingURL=chunk-60daec7d.babc1a84.js.map \ No newline at end of file +//# sourceMappingURL=chunk-60daec7d.5744f321.js.map \ No newline at end of file diff --git a/js/chunk-60daec7d.babc1a84.js.map b/js/chunk-60daec7d.5744f321.js.map similarity index 99% rename from js/chunk-60daec7d.babc1a84.js.map rename to js/chunk-60daec7d.5744f321.js.map index 14f61bc..ace0d5d 100644 --- a/js/chunk-60daec7d.babc1a84.js.map +++ b/js/chunk-60daec7d.5744f321.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/components/Compare.vue?a67b","webpack:///./src/assets/img/comparison/cascadia-code-light.png","webpack:///./src/assets/img/comparison/dank-mono-dark.png","webpack:///./src/assets/img/comparison/fira-code-dark.png","webpack:///./src/assets/img/comparison sync ^\\.\\/victor\\-mono\\-.*\\.png$","webpack:///./src/assets/img/comparison/source-code-pro-light.png","webpack:///./src/assets/img/comparison/monolisa-light.png","webpack:///./src/assets/img/comparison/meslo-light.png","webpack:///./src/assets/img/comparison/fira-code-light.png","webpack:///./src/assets/img/comparison/hack-light.png","webpack:///./src/assets/img/comparison/operator-mono-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-dark.png","webpack:///./src/assets/img/comparison/monoid-dark.png","webpack:///./src/assets/img/comparison/ubuntu-mono-dark.png","webpack:///./src/assets/img/comparison/monolisa-dark.png","webpack:///./src/assets/img/comparison/droid-sans-dark.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-light.png","webpack:///./src/assets/img/comparison/dank-mono-light.png","webpack:///./src/assets/img/comparison/hasklig-light.png","webpack:///./src/assets/img/comparison/plex-mono-light.png","webpack:///./src/assets/img/comparison/anonymous-pro-light.png","webpack:///./src/assets/img/comparison/victor-mono-light.png","webpack:///./src/assets/img/comparison/hack-dark.png","webpack:///./src/assets/img/comparison/input-light.png","webpack:///./src/assets/img/comparison/consolas-dark.png","webpack:///./src/assets/img/comparison/inconsolata-light.png","webpack:///./src/assets/img/comparison/cartograph-dark.png","webpack:///./src/assets/img/comparison/source-code-pro-dark.png","webpack:///./src/assets/img/comparison sync ^\\.\\/.*\\.png$","webpack:///./src/assets/img/comparison/consolas-light.png","webpack:///./src/assets/img/comparison/cartograph-light.png","webpack:///./src/assets/img/comparison/plex-mono-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-light.png","webpack:///./src/assets/img/comparison/operator-mono-light.png","webpack:///./src/assets/img/comparison/victor-mono-dark.png","webpack:///./src/assets/img/comparison/inconsolata-dark.png","webpack:///./src/assets/img/comparison/sudo-light.png","webpack:///./src/assets/img/comparison/sudo-dark.png","webpack:///./src/assets/img/comparison/meslo-dark.png","webpack:///./src/assets/img/comparison/anonymous-pro-dark.png","webpack:///./src/assets/img/comparison/iosevka-light.png","webpack:///./src/assets/img/comparison/input-dark.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-dark.png","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue?74a4","webpack:///./src/assets/img/comparison/cascadia-code-dark.png","webpack:///./src/assets/img/comparison/droid-sans-light.png","webpack:///./src/assets/img/comparison/hasklig-dark.png","webpack:///./src/assets/img/comparison/roboto-mono-light.png","webpack:///./src/assets/img/comparison/monoid-light.png","webpack:///./src/components/Compare.vue?5049","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue?6883","webpack:///node_modules/vue-twentytwenty/src/TwentyTwenty.vue","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue?982e","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue","webpack:///src/components/Compare.vue","webpack:///./src/components/Compare.vue?8b64","webpack:///./src/components/Compare.vue","webpack:///./src/assets/img/comparison/ubuntu-mono-light.png","webpack:///./src/assets/img/comparison/iosevka-dark.png","webpack:///./src/assets/img/comparison/roboto-mono-dark.png"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","ref","_l","font","key","domProps","toLowerCase","split","join","_s","attrs","victorMonoImage","otherFontImage","staticRenderFns","style","on","startSlide","after","$event","preventDefault","setDimensions","before","beforeLabel","_e","afterLabel","data","imgOffset","slideOffset","offset","sliding","containerStyle","overlayStyle","props","type","String","required","Number","default","validator","methods","img","getBoundingClientRect","moveSlide","event","x","touches","pageX","left","endSlide","resize","$nextTick","computed","beforeImgStyle","handleStyle","width","height","top","w","h","mounted","document","addEventListener","window","beforeDestroy","removeEventListener","component","name","components","TwentyTwenty","theme","otherFont","fonts","$refs","otherFontSelect","pickRandom","selectedIndex","index","dispatchEvent","Event"],"mappings":"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","file":"js/chunk-60daec7d.babc1a84.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compare.vue?vue&type=style&index=0&id=4d49fb19&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/cascadia-code-light.d03837bc.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-dark.dbb6f3da.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-dark.f3819f25.png\";","var map = {\n\t\"./victor-mono-dark.png\": \"b65b\",\n\t\"./victor-mono-light.png\": \"6012\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1080\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-light.70f56206.png\";","module.exports = __webpack_public_path__ + \"img/monolisa-light.e350ec83.png\";","module.exports = __webpack_public_path__ + \"img/meslo-light.a0dcb9fa.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-light.b4d7d444.png\";","module.exports = __webpack_public_path__ + \"img/hack-light.964b2e1c.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-dark.ebe8efd3.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-dark.7e989644.png\";","module.exports = __webpack_public_path__ + \"img/monoid-dark.938dec35.png\";","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-dark.8d6989a1.png\";","module.exports = __webpack_public_path__ + \"img/monolisa-dark.e7683db7.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-dark.ca78c224.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-light.aa3a6091.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-light.d464cd00.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-light.6818d4df.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-light.5bbfa5e2.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-light.35f695b9.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-light.d31f124c.png\";","module.exports = __webpack_public_path__ + \"img/hack-dark.5660ef1b.png\";","module.exports = __webpack_public_path__ + \"img/input-light.35f4bc64.png\";","module.exports = __webpack_public_path__ + \"img/consolas-dark.851c1581.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-light.d9ad2736.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-dark.71938504.png\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-dark.f61d06c0.png\";","var map = {\n\t\"./anonymous-pro-dark.png\": \"d01e\",\n\t\"./anonymous-pro-light.png\": \"5b5b\",\n\t\"./cartograph-dark.png\": \"a252\",\n\t\"./cartograph-light.png\": \"ab4f\",\n\t\"./cascadia-code-dark.png\": \"df63\",\n\t\"./cascadia-code-light.png\": \"0c0f\",\n\t\"./consolas-dark.png\": \"885d\",\n\t\"./consolas-light.png\": \"ab41\",\n\t\"./dank-mono-dark.png\": \"0d89\",\n\t\"./dank-mono-light.png\": \"50b7\",\n\t\"./droid-sans-dark.png\": \"4a0c\",\n\t\"./droid-sans-light.png\": \"e270\",\n\t\"./fantasque-sans-mono-dark.png\": \"d94a\",\n\t\"./fantasque-sans-mono-light.png\": \"4f65\",\n\t\"./fira-code-dark.png\": \"0def\",\n\t\"./fira-code-light.png\": \"34ed\",\n\t\"./hack-dark.png\": \"78ec\",\n\t\"./hack-light.png\": \"3649\",\n\t\"./hasklig-dark.png\": \"e3bd\",\n\t\"./hasklig-light.png\": \"533c\",\n\t\"./inconsolata-dark.png\": \"c3d5\",\n\t\"./inconsolata-light.png\": \"995b\",\n\t\"./input-dark.png\": \"d8d0\",\n\t\"./input-light.png\": \"865c\",\n\t\"./iosevka-dark.png\": \"fb5a\",\n\t\"./iosevka-light.png\": \"d406\",\n\t\"./jetbrains-mono-dark.png\": \"3731\",\n\t\"./jetbrains-mono-light.png\": \"b273\",\n\t\"./meslo-dark.png\": \"c9e9\",\n\t\"./meslo-light.png\": \"31c7\",\n\t\"./monoid-dark.png\": \"3e10\",\n\t\"./monoid-light.png\": \"f282\",\n\t\"./monolisa-dark.png\": \"4a05\",\n\t\"./monolisa-light.png\": \"2b8e\",\n\t\"./operator-mono-dark.png\": \"3674\",\n\t\"./operator-mono-light.png\": \"b4ec\",\n\t\"./plex-mono-dark.png\": \"ae34\",\n\t\"./plex-mono-light.png\": \"5ac1\",\n\t\"./roboto-mono-dark.png\": \"fe85\",\n\t\"./roboto-mono-light.png\": \"e490\",\n\t\"./source-code-pro-dark.png\": \"a373\",\n\t\"./source-code-pro-light.png\": \"23f0\",\n\t\"./sudo-dark.png\": \"c5de\",\n\t\"./sudo-light.png\": \"c498\",\n\t\"./ubuntu-mono-dark.png\": \"4516\",\n\t\"./ubuntu-mono-light.png\": \"f84f\",\n\t\"./victor-mono-dark.png\": \"b65b\",\n\t\"./victor-mono-light.png\": \"6012\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"a668\";","module.exports = __webpack_public_path__ + \"img/consolas-light.172dd0dd.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-light.c182e87b.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-dark.20b89851.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-light.852ec89a.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-light.1494d886.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-dark.32c2b8aa.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-dark.535ad22b.png\";","module.exports = __webpack_public_path__ + \"img/sudo-light.b886ecb8.png\";","module.exports = __webpack_public_path__ + \"img/sudo-dark.e29ec8be.png\";","module.exports = __webpack_public_path__ + \"img/meslo-dark.0afd3f6e.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-dark.25e528b6.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-light.0bb90e5c.png\";","module.exports = __webpack_public_path__ + \"img/input-dark.687b727e.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-dark.7feeeaaa.png\";","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/index.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./TwentyTwenty.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/cascadia-code-dark.8e4b0f25.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-light.798fd56f.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-dark.86e73584.png\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-light.9e9c4704.png\";","module.exports = __webpack_public_path__ + \"img/monoid-light.34aa7546.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"negative-margins\"},[_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Compare it to \")]),_c('div',{staticClass:\"select-container\"},[_c('div',{staticClass:\"select\"},[_c('select',{ref:\"otherFontSelect\"},_vm._l((_vm.fonts),function(font){return _c('option',{key:font,domProps:{\"value\":font.toLowerCase().split(' ').join('-')}},[_vm._v(\"\\n \"+_vm._s(font)+\"\\n \")])}),0)])])])])],1),_c('div',{staticClass:\"container\"},[_c('TwentyTwenty',{attrs:{\"before\":_vm.victorMonoImage,\"after\":_vm.otherFontImage}})],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22}},[_c('p',{staticClass:\"small centre\"},[_c('em',[_vm._v(\"Test and compare free programming fonts on\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.programmingfonts.org/#victor-mono\"}},[_vm._v(\"\\n programmingfonts.org\")])]),_vm._v(\"\\n ⭐️\\n \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"twentytwenty-container\",style:(_vm.containerStyle),on:{\"touchstart\":_vm.startSlide,\"mousedown\":_vm.startSlide}},[_c('img',{attrs:{\"src\":_vm.after,\"alt\":\"after\"},on:{\"mousedown\":function($event){$event.preventDefault();},\"load\":_vm.setDimensions}}),_c('img',{style:(_vm.beforeImgStyle),attrs:{\"src\":_vm.before,\"alt\":\"before\"},on:{\"mousedown\":function($event){$event.preventDefault();}}}),_c('div',{staticClass:\"twentytwenty-overlay\",style:(_vm.overlayStyle)},[(_vm.beforeLabel)?_c('div',{staticClass:\"twentytwenty-before-label\"},[_vm._v(_vm._s(_vm.beforeLabel))]):_vm._e(),(_vm.afterLabel)?_c('div',{staticClass:\"twentytwenty-after-label\"},[_vm._v(_vm._s(_vm.afterLabel))]):_vm._e()]),_c('div',{staticClass:\"twentytwenty-handle\",style:(_vm.handleStyle)},[_c('div',{staticClass:\"twentytwenty-arrow-left\"}),_c('div',{staticClass:\"twentytwenty-arrow-right\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./TwentyTwenty.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./TwentyTwenty.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TwentyTwenty.vue?vue&type=template&id=f3cf1062&\"\nimport script from \"./TwentyTwenty.vue?vue&type=script&lang=js&\"\nexport * from \"./TwentyTwenty.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TwentyTwenty.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compare.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compare.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Compare.vue?vue&type=template&id=4d49fb19&scoped=true&\"\nimport script from \"./Compare.vue?vue&type=script&lang=js&\"\nexport * from \"./Compare.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Compare.vue?vue&type=style&index=0&id=4d49fb19&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d49fb19\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-light.369c8d21.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-dark.4e9a2b78.png\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-dark.05ea9e1a.png\";"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/components/Compare.vue?a67b","webpack:///./src/assets/img/comparison/cascadia-code-light.png","webpack:///./src/assets/img/comparison/dank-mono-dark.png","webpack:///./src/assets/img/comparison/fira-code-dark.png","webpack:///./src/assets/img/comparison sync ^\\.\\/victor\\-mono\\-.*\\.png$","webpack:///./src/assets/img/comparison/source-code-pro-light.png","webpack:///./src/assets/img/comparison/monolisa-light.png","webpack:///./src/assets/img/comparison/meslo-light.png","webpack:///./src/assets/img/comparison/fira-code-light.png","webpack:///./src/assets/img/comparison/hack-light.png","webpack:///./src/assets/img/comparison/operator-mono-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-dark.png","webpack:///./src/assets/img/comparison/monoid-dark.png","webpack:///./src/assets/img/comparison/ubuntu-mono-dark.png","webpack:///./src/assets/img/comparison/monolisa-dark.png","webpack:///./src/assets/img/comparison/droid-sans-dark.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-light.png","webpack:///./src/assets/img/comparison/dank-mono-light.png","webpack:///./src/assets/img/comparison/hasklig-light.png","webpack:///./src/assets/img/comparison/plex-mono-light.png","webpack:///./src/assets/img/comparison/anonymous-pro-light.png","webpack:///./src/assets/img/comparison/victor-mono-light.png","webpack:///./src/assets/img/comparison/hack-dark.png","webpack:///./src/assets/img/comparison/input-light.png","webpack:///./src/assets/img/comparison/consolas-dark.png","webpack:///./src/assets/img/comparison/inconsolata-light.png","webpack:///./src/assets/img/comparison/cartograph-dark.png","webpack:///./src/assets/img/comparison/source-code-pro-dark.png","webpack:///./src/assets/img/comparison sync ^\\.\\/.*\\.png$","webpack:///./src/assets/img/comparison/consolas-light.png","webpack:///./src/assets/img/comparison/cartograph-light.png","webpack:///./src/assets/img/comparison/plex-mono-dark.png","webpack:///./src/assets/img/comparison/jetbrains-mono-light.png","webpack:///./src/assets/img/comparison/operator-mono-light.png","webpack:///./src/assets/img/comparison/victor-mono-dark.png","webpack:///./src/assets/img/comparison/inconsolata-dark.png","webpack:///./src/assets/img/comparison/sudo-light.png","webpack:///./src/assets/img/comparison/sudo-dark.png","webpack:///./src/assets/img/comparison/meslo-dark.png","webpack:///./src/assets/img/comparison/anonymous-pro-dark.png","webpack:///./src/assets/img/comparison/iosevka-light.png","webpack:///./src/assets/img/comparison/input-dark.png","webpack:///./src/assets/img/comparison/fantasque-sans-mono-dark.png","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue?74a4","webpack:///./src/assets/img/comparison/cascadia-code-dark.png","webpack:///./src/assets/img/comparison/droid-sans-light.png","webpack:///./src/assets/img/comparison/hasklig-dark.png","webpack:///./src/assets/img/comparison/roboto-mono-light.png","webpack:///./src/assets/img/comparison/monoid-light.png","webpack:///./src/components/Compare.vue?e705","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue?3660","webpack:///node_modules/vue-twentytwenty/src/TwentyTwenty.vue","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue?982e","webpack:///./node_modules/vue-twentytwenty/src/TwentyTwenty.vue","webpack:///src/components/Compare.vue","webpack:///./src/components/Compare.vue?8b64","webpack:///./src/components/Compare.vue","webpack:///./src/assets/img/comparison/ubuntu-mono-light.png","webpack:///./src/assets/img/comparison/iosevka-dark.png","webpack:///./src/assets/img/comparison/roboto-mono-dark.png"],"names":["module","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","render","_vm","this","_h","$createElement","_c","_self","staticClass","_v","ref","_l","font","key","domProps","toLowerCase","split","join","_s","attrs","victorMonoImage","otherFontImage","staticRenderFns","style","on","startSlide","after","$event","preventDefault","setDimensions","before","beforeLabel","_e","afterLabel","data","imgOffset","slideOffset","offset","sliding","containerStyle","overlayStyle","props","type","String","required","Number","default","validator","methods","img","getBoundingClientRect","moveSlide","event","x","touches","pageX","left","endSlide","resize","$nextTick","computed","beforeImgStyle","handleStyle","width","height","top","w","h","mounted","document","addEventListener","window","beforeDestroy","removeEventListener","component","name","components","TwentyTwenty","theme","otherFont","fonts","$refs","otherFontSelect","pickRandom","selectedIndex","index","dispatchEvent","Event"],"mappings":"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","file":"js/chunk-60daec7d.5744f321.js","sourcesContent":["export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compare.vue?vue&type=style&index=0&id=4d49fb19&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/cascadia-code-light.d03837bc.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-dark.dbb6f3da.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-dark.f3819f25.png\";","var map = {\n\t\"./victor-mono-dark.png\": \"b65b\",\n\t\"./victor-mono-light.png\": \"6012\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"1080\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-light.70f56206.png\";","module.exports = __webpack_public_path__ + \"img/monolisa-light.e350ec83.png\";","module.exports = __webpack_public_path__ + \"img/meslo-light.a0dcb9fa.png\";","module.exports = __webpack_public_path__ + \"img/fira-code-light.b4d7d444.png\";","module.exports = __webpack_public_path__ + \"img/hack-light.964b2e1c.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-dark.ebe8efd3.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-dark.7e989644.png\";","module.exports = __webpack_public_path__ + \"img/monoid-dark.938dec35.png\";","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-dark.8d6989a1.png\";","module.exports = __webpack_public_path__ + \"img/monolisa-dark.e7683db7.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-dark.ca78c224.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-light.aa3a6091.png\";","module.exports = __webpack_public_path__ + \"img/dank-mono-light.d464cd00.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-light.6818d4df.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-light.5bbfa5e2.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-light.35f695b9.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-light.d31f124c.png\";","module.exports = __webpack_public_path__ + \"img/hack-dark.5660ef1b.png\";","module.exports = __webpack_public_path__ + \"img/input-light.35f4bc64.png\";","module.exports = __webpack_public_path__ + \"img/consolas-dark.851c1581.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-light.d9ad2736.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-dark.71938504.png\";","module.exports = __webpack_public_path__ + \"img/source-code-pro-dark.f61d06c0.png\";","var map = {\n\t\"./anonymous-pro-dark.png\": \"d01e\",\n\t\"./anonymous-pro-light.png\": \"5b5b\",\n\t\"./cartograph-dark.png\": \"a252\",\n\t\"./cartograph-light.png\": \"ab4f\",\n\t\"./cascadia-code-dark.png\": \"df63\",\n\t\"./cascadia-code-light.png\": \"0c0f\",\n\t\"./consolas-dark.png\": \"885d\",\n\t\"./consolas-light.png\": \"ab41\",\n\t\"./dank-mono-dark.png\": \"0d89\",\n\t\"./dank-mono-light.png\": \"50b7\",\n\t\"./droid-sans-dark.png\": \"4a0c\",\n\t\"./droid-sans-light.png\": \"e270\",\n\t\"./fantasque-sans-mono-dark.png\": \"d94a\",\n\t\"./fantasque-sans-mono-light.png\": \"4f65\",\n\t\"./fira-code-dark.png\": \"0def\",\n\t\"./fira-code-light.png\": \"34ed\",\n\t\"./hack-dark.png\": \"78ec\",\n\t\"./hack-light.png\": \"3649\",\n\t\"./hasklig-dark.png\": \"e3bd\",\n\t\"./hasklig-light.png\": \"533c\",\n\t\"./inconsolata-dark.png\": \"c3d5\",\n\t\"./inconsolata-light.png\": \"995b\",\n\t\"./input-dark.png\": \"d8d0\",\n\t\"./input-light.png\": \"865c\",\n\t\"./iosevka-dark.png\": \"fb5a\",\n\t\"./iosevka-light.png\": \"d406\",\n\t\"./jetbrains-mono-dark.png\": \"3731\",\n\t\"./jetbrains-mono-light.png\": \"b273\",\n\t\"./meslo-dark.png\": \"c9e9\",\n\t\"./meslo-light.png\": \"31c7\",\n\t\"./monoid-dark.png\": \"3e10\",\n\t\"./monoid-light.png\": \"f282\",\n\t\"./monolisa-dark.png\": \"4a05\",\n\t\"./monolisa-light.png\": \"2b8e\",\n\t\"./operator-mono-dark.png\": \"3674\",\n\t\"./operator-mono-light.png\": \"b4ec\",\n\t\"./plex-mono-dark.png\": \"ae34\",\n\t\"./plex-mono-light.png\": \"5ac1\",\n\t\"./roboto-mono-dark.png\": \"fe85\",\n\t\"./roboto-mono-light.png\": \"e490\",\n\t\"./source-code-pro-dark.png\": \"a373\",\n\t\"./source-code-pro-light.png\": \"23f0\",\n\t\"./sudo-dark.png\": \"c5de\",\n\t\"./sudo-light.png\": \"c498\",\n\t\"./ubuntu-mono-dark.png\": \"4516\",\n\t\"./ubuntu-mono-light.png\": \"f84f\",\n\t\"./victor-mono-dark.png\": \"b65b\",\n\t\"./victor-mono-light.png\": \"6012\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"a668\";","module.exports = __webpack_public_path__ + \"img/consolas-light.172dd0dd.png\";","module.exports = __webpack_public_path__ + \"img/cartograph-light.c182e87b.png\";","module.exports = __webpack_public_path__ + \"img/plex-mono-dark.20b89851.png\";","module.exports = __webpack_public_path__ + \"img/jetbrains-mono-light.852ec89a.png\";","module.exports = __webpack_public_path__ + \"img/operator-mono-light.1494d886.png\";","module.exports = __webpack_public_path__ + \"img/victor-mono-dark.32c2b8aa.png\";","module.exports = __webpack_public_path__ + \"img/inconsolata-dark.535ad22b.png\";","module.exports = __webpack_public_path__ + \"img/sudo-light.b886ecb8.png\";","module.exports = __webpack_public_path__ + \"img/sudo-dark.e29ec8be.png\";","module.exports = __webpack_public_path__ + \"img/meslo-dark.0afd3f6e.png\";","module.exports = __webpack_public_path__ + \"img/anonymous-pro-dark.25e528b6.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-light.0bb90e5c.png\";","module.exports = __webpack_public_path__ + \"img/input-dark.687b727e.png\";","module.exports = __webpack_public_path__ + \"img/fantasque-sans-mono-dark.7feeeaaa.png\";","export * from \"-!../../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../css-loader/index.js??ref--6-oneOf-1-1!../../vue-loader/lib/loaders/stylePostLoader.js!../../postcss-loader/src/index.js??ref--6-oneOf-1-2!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./TwentyTwenty.vue?vue&type=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/cascadia-code-dark.8e4b0f25.png\";","module.exports = __webpack_public_path__ + \"img/droid-sans-light.798fd56f.png\";","module.exports = __webpack_public_path__ + \"img/hasklig-dark.86e73584.png\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-light.9e9c4704.png\";","module.exports = __webpack_public_path__ + \"img/monoid-light.34aa7546.png\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"negative-margins\"},[_c('el-row',[_c('el-col',[_c('h1',{staticClass:\"centre\"},[_c('em',[_vm._v(\"Compare it to \")]),_c('div',{staticClass:\"select-container\"},[_c('div',{staticClass:\"select\"},[_c('select',{ref:\"otherFontSelect\"},_vm._l((_vm.fonts),function(font){return _c('option',{key:font,domProps:{\"value\":font.toLowerCase().split(' ').join('-')}},[_vm._v(\"\\n \"+_vm._s(font)+\"\\n \")])}),0)])])])])],1),_c('div',{staticClass:\"container\"},[_c('TwentyTwenty',{attrs:{\"before\":_vm.victorMonoImage,\"after\":_vm.otherFontImage}})],1),_c('el-row',{attrs:{\"type\":\"flex\",\"justify\":\"center\"}},[_c('el-col',{attrs:{\"xs\":22}},[_c('p',{staticClass:\"small centre\"},[_c('em',[_vm._v(\"Test and compare free programming fonts on\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://www.programmingfonts.org/#victor-mono\"}},[_vm._v(\"\\n programmingfonts.org\")])]),_vm._v(\"\\n ⭐️\\n \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"twentytwenty-container\",style:(_vm.containerStyle),on:{\"touchstart\":_vm.startSlide,\"mousedown\":_vm.startSlide}},[_c('img',{attrs:{\"src\":_vm.after,\"alt\":\"after\"},on:{\"mousedown\":function($event){$event.preventDefault();},\"load\":_vm.setDimensions}}),_c('img',{style:(_vm.beforeImgStyle),attrs:{\"src\":_vm.before,\"alt\":\"before\"},on:{\"mousedown\":function($event){$event.preventDefault();}}}),_c('div',{staticClass:\"twentytwenty-overlay\",style:(_vm.overlayStyle)},[(_vm.beforeLabel)?_c('div',{staticClass:\"twentytwenty-before-label\"},[_vm._v(_vm._s(_vm.beforeLabel))]):_vm._e(),(_vm.afterLabel)?_c('div',{staticClass:\"twentytwenty-after-label\"},[_vm._v(_vm._s(_vm.afterLabel))]):_vm._e()]),_c('div',{staticClass:\"twentytwenty-handle\",style:(_vm.handleStyle)},[_c('div',{staticClass:\"twentytwenty-arrow-left\"}),_c('div',{staticClass:\"twentytwenty-arrow-right\"})])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./TwentyTwenty.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./TwentyTwenty.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TwentyTwenty.vue?vue&type=template&id=f3cf1062&\"\nimport script from \"./TwentyTwenty.vue?vue&type=script&lang=js&\"\nexport * from \"./TwentyTwenty.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TwentyTwenty.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compare.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Compare.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Compare.vue?vue&type=template&id=4d49fb19&scoped=true&\"\nimport script from \"./Compare.vue?vue&type=script&lang=js&\"\nexport * from \"./Compare.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Compare.vue?vue&type=style&index=0&id=4d49fb19&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4d49fb19\",\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/ubuntu-mono-light.369c8d21.png\";","module.exports = __webpack_public_path__ + \"img/iosevka-dark.4e9a2b78.png\";","module.exports = __webpack_public_path__ + \"img/roboto-mono-dark.05ea9e1a.png\";"],"sourceRoot":""} \ No newline at end of file diff --git a/js/chunk-64d01f97.0ffa81d2.js b/js/chunk-64d01f97.3363bcf3.js similarity index 99% rename from js/chunk-64d01f97.0ffa81d2.js rename to js/chunk-64d01f97.3363bcf3.js index ac081fc..44e0e5a 100644 --- a/js/chunk-64d01f97.0ffa81d2.js +++ b/js/chunk-64d01f97.3363bcf3.js @@ -1,2 +1,2 @@ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-64d01f97"],{"1ac5":function(e,t,n){},"1b63":function(e,t,n){(function(e){e(n("56b3"),n("7b00"))})((function(e){"use strict";e.defineMode("sass",(function(t){var n=e.mimeModes["text/css"],r=n.propertyKeywords||{},i=n.colorKeywords||{},a=n.valueKeywords||{},o=n.fontProperties||{};function l(e){return new RegExp("^"+e.join("|"))}var s,c=["true","false","null","auto"],u=new RegExp("^"+c.join("|")),d=["\\(","\\)","=",">","<","==",">=","<=","\\+","-","\\!=","/","\\*","%","and","or","not",";","\\{","\\}",":"],p=l(d),f=/^::?[a-zA-Z_][\w\-]*/;function m(e){return!e.peek()||e.match(/\s+$/,!1)}function h(e,t){var n=e.peek();return")"===n?(e.next(),t.tokenizer=w,"operator"):"("===n?(e.next(),e.eatSpace(),"operator"):"'"===n||'"'===n?(t.tokenizer=b(e.next()),"string"):(t.tokenizer=b(")",!1),"string")}function g(e,t){return function(n,r){return n.sol()&&n.indentation()<=e?(r.tokenizer=w,w(n,r)):(t&&n.skipTo("*/")?(n.next(),n.next(),r.tokenizer=w):n.skipToEnd(),"comment")}}function b(e,t){function n(r,i){var a=r.next(),o=r.peek(),l=r.string.charAt(r.pos-2),s="\\"!==a&&o===e||a===e&&"\\"!==l;return s?(a!==e&&t&&r.next(),m(r)&&(i.cursorHalf=0),i.tokenizer=w,"string"):"#"===a&&"{"===o?(i.tokenizer=k(n),r.next(),"operator"):"string"}return null==t&&(t=!0),n}function k(e){return function(t,n){return"}"===t.peek()?(t.next(),n.tokenizer=e,"operator"):w(t,n)}}function v(e){if(0==e.indentCount){e.indentCount++;var n=e.scopes[0].offset,r=n+t.indentUnit;e.scopes.unshift({offset:r})}}function y(e){1!=e.scopes.length&&e.scopes.shift()}function w(e,t){var n=e.peek();if(e.match("/*"))return t.tokenizer=g(e.indentation(),!0),t.tokenizer(e,t);if(e.match("//"))return t.tokenizer=g(e.indentation(),!1),t.tokenizer(e,t);if(e.match("#{"))return t.tokenizer=k(w),"operator";if('"'===n||"'"===n)return e.next(),t.tokenizer=b(n),"string";if(t.cursorHalf){if("#"===n&&(e.next(),e.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)))return m(e)&&(t.cursorHalf=0),"number";if(e.match(/^-?[0-9\.]+/))return m(e)&&(t.cursorHalf=0),"number";if(e.match(/^(px|em|in)\b/))return m(e)&&(t.cursorHalf=0),"unit";if(e.match(u))return m(e)&&(t.cursorHalf=0),"keyword";if(e.match(/^url/)&&"("===e.peek())return t.tokenizer=h,m(e)&&(t.cursorHalf=0),"atom";if("$"===n)return e.next(),e.eatWhile(/[\w-]/),m(e)&&(t.cursorHalf=0),"variable-2";if("!"===n)return e.next(),t.cursorHalf=0,e.match(/^[\w]+/)?"keyword":"operator";if(e.match(p))return m(e)&&(t.cursorHalf=0),"operator";if(e.eatWhile(/[\w-]/))return m(e)&&(t.cursorHalf=0),s=e.current().toLowerCase(),a.hasOwnProperty(s)?"atom":i.hasOwnProperty(s)?"keyword":r.hasOwnProperty(s)?(t.prevProp=e.current().toLowerCase(),"property"):"tag";if(m(e))return t.cursorHalf=0,null}else{if("-"===n&&e.match(/^-\w+-/))return"meta";if("."===n){if(e.next(),e.match(/^[\w-]+/))return v(t),"qualifier";if("#"===e.peek())return v(t),"tag"}if("#"===n){if(e.next(),e.match(/^[\w-]+/))return v(t),"builtin";if("#"===e.peek())return v(t),"tag"}if("$"===n)return e.next(),e.eatWhile(/[\w-]/),"variable-2";if(e.match(/^-?[0-9\.]+/))return"number";if(e.match(/^(px|em|in)\b/))return"unit";if(e.match(u))return"keyword";if(e.match(/^url/)&&"("===e.peek())return t.tokenizer=h,"atom";if("="===n&&e.match(/^=[\w-]+/))return v(t),"meta";if("+"===n&&e.match(/^\+[\w-]+/))return"variable-3";if("@"===n&&e.match("@extend")&&(e.match(/\s*[\w]/)||y(t)),e.match(/^@(else if|if|media|else|for|each|while|mixin|function)/))return v(t),"def";if("@"===n)return e.next(),e.eatWhile(/[\w-]/),"def";if(e.eatWhile(/[\w-]/)){if(e.match(/ *: *[\w-\+\$#!\("']/,!1)){s=e.current().toLowerCase();var l=t.prevProp+"-"+s;return r.hasOwnProperty(l)?"property":r.hasOwnProperty(s)?(t.prevProp=s,"property"):o.hasOwnProperty(s)?"property":"tag"}return e.match(/ *:/,!1)?(v(t),t.cursorHalf=1,t.prevProp=e.current().toLowerCase(),"property"):(e.match(/ *,/,!1)||v(t),"tag")}if(":"===n)return e.match(f)?"variable-3":(e.next(),t.cursorHalf=1,"operator")}return e.match(p)?"operator":(e.next(),null)}function x(e,n){e.sol()&&(n.indentCount=0);var r=n.tokenizer(e,n),i=e.current();if("@return"!==i&&"}"!==i||y(n),null!==r){for(var a=e.pos-i.length,o=a+t.indentUnit*n.indentCount,l=[],s=0;s \x3c!-- Go ahead and edit me --\x3e\n
\n

My App!

\n \n
\n\n\n\\n\\n\\n\"","export default \"// Ask for a user name until API returns a valid user\\nasync function getUser () {\\n let user\\n while (true) {\\n let name = prompt('Enter a user name', 'rubjo')\\n try {\\n user = await loadJson(`https://my.api.com/users/${name}`)\\n break // No error, exit loop and proceed\\n } catch (err) {\\n if (err.response && err.response.status === 404) {\\n alert(`User \\\"${name}\\\" not found, please reenter.`)\\n } else {\\n throw err // Unknown error, rethrow it\\n }\\n }\\n }\\n return user\\n}\\n\"","\n\n\n.window {\n position: relative;\n z-index: 0;\n}\n\n::v-deep .CodeMirror {\n background: transparent;\n}\n\n.code {\n height: calc(100% - 34px);\n font-size: calc(14px + 0.5vw);\n line-height: 1.5em;\n}\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CodeView.vue?vue&type=template&id=06e9bd12&scoped=true&\"\nimport script from \"./CodeView.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeView.vue?vue&type=style&index=0&id=06e9bd12&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06e9bd12\",\n null\n \n)\n\nexport default component.exports","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"), require(\"../css/css\"), require(\"../htmlmixed/htmlmixed\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../javascript/javascript\", \"../css/css\", \"../htmlmixed/htmlmixed\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pug\", function (config) {\n // token types\n var KEYWORD = 'keyword';\n var DOCTYPE = 'meta';\n var ID = 'builtin';\n var CLASS = 'qualifier';\n\n var ATTRS_NEST = {\n '{': '}',\n '(': ')',\n '[': ']'\n };\n\n var jsMode = CodeMirror.getMode(config, 'javascript');\n\n function State() {\n this.javaScriptLine = false;\n this.javaScriptLineExcludesColon = false;\n\n this.javaScriptArguments = false;\n this.javaScriptArgumentsDepth = 0;\n\n this.isInterpolating = false;\n this.interpolationNesting = 0;\n\n this.jsState = CodeMirror.startState(jsMode);\n\n this.restOfLine = '';\n\n this.isIncludeFiltered = false;\n this.isEach = false;\n\n this.lastTag = '';\n this.scriptType = '';\n\n // Attributes Mode\n this.isAttrs = false;\n this.attrsNest = [];\n this.inAttributeName = true;\n this.attributeIsType = false;\n this.attrValue = '';\n\n // Indented Mode\n this.indentOf = Infinity;\n this.indentToken = '';\n\n this.innerMode = null;\n this.innerState = null;\n\n this.innerModeForLine = false;\n }\n /**\n * Safely copy a state\n *\n * @return {State}\n */\n State.prototype.copy = function () {\n var res = new State();\n res.javaScriptLine = this.javaScriptLine;\n res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;\n res.javaScriptArguments = this.javaScriptArguments;\n res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;\n res.isInterpolating = this.isInterpolating;\n res.interpolationNesting = this.interpolationNesting;\n\n res.jsState = CodeMirror.copyState(jsMode, this.jsState);\n\n res.innerMode = this.innerMode;\n if (this.innerMode && this.innerState) {\n res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);\n }\n\n res.restOfLine = this.restOfLine;\n\n res.isIncludeFiltered = this.isIncludeFiltered;\n res.isEach = this.isEach;\n res.lastTag = this.lastTag;\n res.scriptType = this.scriptType;\n res.isAttrs = this.isAttrs;\n res.attrsNest = this.attrsNest.slice();\n res.inAttributeName = this.inAttributeName;\n res.attributeIsType = this.attributeIsType;\n res.attrValue = this.attrValue;\n res.indentOf = this.indentOf;\n res.indentToken = this.indentToken;\n\n res.innerModeForLine = this.innerModeForLine;\n\n return res;\n };\n\n function javaScript(stream, state) {\n if (stream.sol()) {\n // if javaScriptLine was set at end of line, ignore it\n state.javaScriptLine = false;\n state.javaScriptLineExcludesColon = false;\n }\n if (state.javaScriptLine) {\n if (state.javaScriptLineExcludesColon && stream.peek() === ':') {\n state.javaScriptLine = false;\n state.javaScriptLineExcludesColon = false;\n return;\n }\n var tok = jsMode.token(stream, state.jsState);\n if (stream.eol()) state.javaScriptLine = false;\n return tok || true;\n }\n }\n function javaScriptArguments(stream, state) {\n if (state.javaScriptArguments) {\n if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {\n state.javaScriptArguments = false;\n return;\n }\n if (stream.peek() === '(') {\n state.javaScriptArgumentsDepth++;\n } else if (stream.peek() === ')') {\n state.javaScriptArgumentsDepth--;\n }\n if (state.javaScriptArgumentsDepth === 0) {\n state.javaScriptArguments = false;\n return;\n }\n\n var tok = jsMode.token(stream, state.jsState);\n return tok || true;\n }\n }\n\n function yieldStatement(stream) {\n if (stream.match(/^yield\\b/)) {\n return 'keyword';\n }\n }\n\n function doctype(stream) {\n if (stream.match(/^(?:doctype) *([^\\n]+)?/)) {\n return DOCTYPE;\n }\n }\n\n function interpolation(stream, state) {\n if (stream.match('#{')) {\n state.isInterpolating = true;\n state.interpolationNesting = 0;\n return 'punctuation';\n }\n }\n\n function interpolationContinued(stream, state) {\n if (state.isInterpolating) {\n if (stream.peek() === '}') {\n state.interpolationNesting--;\n if (state.interpolationNesting < 0) {\n stream.next();\n state.isInterpolating = false;\n return 'punctuation';\n }\n } else if (stream.peek() === '{') {\n state.interpolationNesting++;\n }\n return jsMode.token(stream, state.jsState) || true;\n }\n }\n\n function caseStatement(stream, state) {\n if (stream.match(/^case\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function when(stream, state) {\n if (stream.match(/^when\\b/)) {\n state.javaScriptLine = true;\n state.javaScriptLineExcludesColon = true;\n return KEYWORD;\n }\n }\n\n function defaultStatement(stream) {\n if (stream.match(/^default\\b/)) {\n return KEYWORD;\n }\n }\n\n function extendsStatement(stream, state) {\n if (stream.match(/^extends?\\b/)) {\n state.restOfLine = 'string';\n return KEYWORD;\n }\n }\n\n function append(stream, state) {\n if (stream.match(/^append\\b/)) {\n state.restOfLine = 'variable';\n return KEYWORD;\n }\n }\n function prepend(stream, state) {\n if (stream.match(/^prepend\\b/)) {\n state.restOfLine = 'variable';\n return KEYWORD;\n }\n }\n function block(stream, state) {\n if (stream.match(/^block\\b *(?:(prepend|append)\\b)?/)) {\n state.restOfLine = 'variable';\n return KEYWORD;\n }\n }\n\n function include(stream, state) {\n if (stream.match(/^include\\b/)) {\n state.restOfLine = 'string';\n return KEYWORD;\n }\n }\n\n function includeFiltered(stream, state) {\n if (stream.match(/^include:([a-zA-Z0-9\\-]+)/, false) && stream.match('include')) {\n state.isIncludeFiltered = true;\n return KEYWORD;\n }\n }\n\n function includeFilteredContinued(stream, state) {\n if (state.isIncludeFiltered) {\n var tok = filter(stream, state);\n state.isIncludeFiltered = false;\n state.restOfLine = 'string';\n return tok;\n }\n }\n\n function mixin(stream, state) {\n if (stream.match(/^mixin\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function call(stream, state) {\n if (stream.match(/^\\+([-\\w]+)/)) {\n if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n state.javaScriptArguments = true;\n state.javaScriptArgumentsDepth = 0;\n }\n return 'variable';\n }\n if (stream.match('+#{', false)) {\n stream.next();\n state.mixinCallAfter = true;\n return interpolation(stream, state);\n }\n }\n function callArguments(stream, state) {\n if (state.mixinCallAfter) {\n state.mixinCallAfter = false;\n if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n state.javaScriptArguments = true;\n state.javaScriptArgumentsDepth = 0;\n }\n return true;\n }\n }\n\n function conditional(stream, state) {\n if (stream.match(/^(if|unless|else if|else)\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function each(stream, state) {\n if (stream.match(/^(- *)?(each|for)\\b/)) {\n state.isEach = true;\n return KEYWORD;\n }\n }\n function eachContinued(stream, state) {\n if (state.isEach) {\n if (stream.match(/^ in\\b/)) {\n state.javaScriptLine = true;\n state.isEach = false;\n return KEYWORD;\n } else if (stream.sol() || stream.eol()) {\n state.isEach = false;\n } else if (stream.next()) {\n while (!stream.match(/^ in\\b/, false) && stream.next());\n return 'variable';\n }\n }\n }\n\n function whileStatement(stream, state) {\n if (stream.match(/^while\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function tag(stream, state) {\n var captures;\n if (captures = stream.match(/^(\\w(?:[-:\\w]*\\w)?)\\/?/)) {\n state.lastTag = captures[1].toLowerCase();\n if (state.lastTag === 'script') {\n state.scriptType = 'application/javascript';\n }\n return 'tag';\n }\n }\n\n function filter(stream, state) {\n if (stream.match(/^:([\\w\\-]+)/)) {\n var innerMode;\n if (config && config.innerModes) {\n innerMode = config.innerModes(stream.current().substring(1));\n }\n if (!innerMode) {\n innerMode = stream.current().substring(1);\n }\n if (typeof innerMode === 'string') {\n innerMode = CodeMirror.getMode(config, innerMode);\n }\n setInnerMode(stream, state, innerMode);\n return 'atom';\n }\n }\n\n function code(stream, state) {\n if (stream.match(/^(!?=|-)/)) {\n state.javaScriptLine = true;\n return 'punctuation';\n }\n }\n\n function id(stream) {\n if (stream.match(/^#([\\w-]+)/)) {\n return ID;\n }\n }\n\n function className(stream) {\n if (stream.match(/^\\.([\\w-]+)/)) {\n return CLASS;\n }\n }\n\n function attrs(stream, state) {\n if (stream.peek() == '(') {\n stream.next();\n state.isAttrs = true;\n state.attrsNest = [];\n state.inAttributeName = true;\n state.attrValue = '';\n state.attributeIsType = false;\n return 'punctuation';\n }\n }\n\n function attrsContinued(stream, state) {\n if (state.isAttrs) {\n if (ATTRS_NEST[stream.peek()]) {\n state.attrsNest.push(ATTRS_NEST[stream.peek()]);\n }\n if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {\n state.attrsNest.pop();\n } else if (stream.eat(')')) {\n state.isAttrs = false;\n return 'punctuation';\n }\n if (state.inAttributeName && stream.match(/^[^=,\\)!]+/)) {\n if (stream.peek() === '=' || stream.peek() === '!') {\n state.inAttributeName = false;\n state.jsState = CodeMirror.startState(jsMode);\n if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {\n state.attributeIsType = true;\n } else {\n state.attributeIsType = false;\n }\n }\n return 'attribute';\n }\n\n var tok = jsMode.token(stream, state.jsState);\n if (state.attributeIsType && tok === 'string') {\n state.scriptType = stream.current().toString();\n }\n if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {\n try {\n Function('', 'var x ' + state.attrValue.replace(/,\\s*$/, '').replace(/^!/, ''));\n state.inAttributeName = true;\n state.attrValue = '';\n stream.backUp(stream.current().length);\n return attrsContinued(stream, state);\n } catch (ex) {\n //not the end of an attribute\n }\n }\n state.attrValue += stream.current();\n return tok || true;\n }\n }\n\n function attributesBlock(stream, state) {\n if (stream.match(/^&attributes\\b/)) {\n state.javaScriptArguments = true;\n state.javaScriptArgumentsDepth = 0;\n return 'keyword';\n }\n }\n\n function indent(stream) {\n if (stream.sol() && stream.eatSpace()) {\n return 'indent';\n }\n }\n\n function comment(stream, state) {\n if (stream.match(/^ *\\/\\/(-)?([^\\n]*)/)) {\n state.indentOf = stream.indentation();\n state.indentToken = 'comment';\n return 'comment';\n }\n }\n\n function colon(stream) {\n if (stream.match(/^: */)) {\n return 'colon';\n }\n }\n\n function text(stream, state) {\n if (stream.match(/^(?:\\| ?| )([^\\n]+)/)) {\n return 'string';\n }\n if (stream.match(/^(<[^\\n]*)/, false)) {\n // html string\n setInnerMode(stream, state, 'htmlmixed');\n state.innerModeForLine = true;\n return innerMode(stream, state, true);\n }\n }\n\n function dot(stream, state) {\n if (stream.eat('.')) {\n var innerMode = null;\n if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {\n innerMode = state.scriptType.toLowerCase().replace(/\"|'/g, '');\n } else if (state.lastTag === 'style') {\n innerMode = 'css';\n }\n setInnerMode(stream, state, innerMode);\n return 'dot';\n }\n }\n\n function fail(stream) {\n stream.next();\n return null;\n }\n\n\n function setInnerMode(stream, state, mode) {\n mode = CodeMirror.mimeModes[mode] || mode;\n mode = config.innerModes ? config.innerModes(mode) || mode : mode;\n mode = CodeMirror.mimeModes[mode] || mode;\n mode = CodeMirror.getMode(config, mode);\n state.indentOf = stream.indentation();\n\n if (mode && mode.name !== 'null') {\n state.innerMode = mode;\n } else {\n state.indentToken = 'string';\n }\n }\n function innerMode(stream, state, force) {\n if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {\n if (state.innerMode) {\n if (!state.innerState) {\n state.innerState = state.innerMode.startState ? CodeMirror.startState(state.innerMode, stream.indentation()) : {};\n }\n return stream.hideFirstChars(state.indentOf + 2, function () {\n return state.innerMode.token(stream, state.innerState) || true;\n });\n } else {\n stream.skipToEnd();\n return state.indentToken;\n }\n } else if (stream.sol()) {\n state.indentOf = Infinity;\n state.indentToken = null;\n state.innerMode = null;\n state.innerState = null;\n }\n }\n function restOfLine(stream, state) {\n if (stream.sol()) {\n // if restOfLine was set at end of line, ignore it\n state.restOfLine = '';\n }\n if (state.restOfLine) {\n stream.skipToEnd();\n var tok = state.restOfLine;\n state.restOfLine = '';\n return tok;\n }\n }\n\n\n function startState() {\n return new State();\n }\n function copyState(state) {\n return state.copy();\n }\n /**\n * Get the next token in the stream\n *\n * @param {Stream} stream\n * @param {State} state\n */\n function nextToken(stream, state) {\n var tok = innerMode(stream, state)\n || restOfLine(stream, state)\n || interpolationContinued(stream, state)\n || includeFilteredContinued(stream, state)\n || eachContinued(stream, state)\n || attrsContinued(stream, state)\n || javaScript(stream, state)\n || javaScriptArguments(stream, state)\n || callArguments(stream, state)\n\n || yieldStatement(stream)\n || doctype(stream)\n || interpolation(stream, state)\n || caseStatement(stream, state)\n || when(stream, state)\n || defaultStatement(stream)\n || extendsStatement(stream, state)\n || append(stream, state)\n || prepend(stream, state)\n || block(stream, state)\n || include(stream, state)\n || includeFiltered(stream, state)\n || mixin(stream, state)\n || call(stream, state)\n || conditional(stream, state)\n || each(stream, state)\n || whileStatement(stream, state)\n || tag(stream, state)\n || filter(stream, state)\n || code(stream, state)\n || id(stream)\n || className(stream)\n || attrs(stream, state)\n || attributesBlock(stream, state)\n || indent(stream)\n || text(stream, state)\n || comment(stream, state)\n || colon(stream)\n || dot(stream, state)\n || fail(stream);\n\n return tok === true ? null : tok;\n }\n return {\n startState: startState,\n copyState: copyState,\n token: nextToken\n };\n}, 'javascript', 'css', 'htmlmixed');\n\nCodeMirror.defineMIME('text/x-pug', 'pug');\nCodeMirror.defineMIME('text/x-jade', 'pug');\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function (mod) {\n \"use strict\";\n if (typeof exports === \"object\" && typeof module === \"object\") {// CommonJS\n mod(require(\"../../lib/codemirror\"),\n require(\"../../addon/mode/overlay\"),\n require(\"../xml/xml\"),\n require(\"../javascript/javascript\"),\n require(\"../coffeescript/coffeescript\"),\n require(\"../css/css\"),\n require(\"../sass/sass\"),\n require(\"../stylus/stylus\"),\n require(\"../pug/pug\"),\n require(\"../handlebars/handlebars\"));\n } else if (typeof define === \"function\" && define.amd) { // AMD\n define([\"../../lib/codemirror\",\n \"../../addon/mode/overlay\",\n \"../xml/xml\",\n \"../javascript/javascript\",\n \"../coffeescript/coffeescript\",\n \"../css/css\",\n \"../sass/sass\",\n \"../stylus/stylus\",\n \"../pug/pug\",\n \"../handlebars/handlebars\"], mod);\n } else { // Plain browser env\n mod(CodeMirror);\n }\n})(function (CodeMirror) {\n var tagLanguages = {\n script: [\n [\"lang\", /coffee(script)?/, \"coffeescript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?coffee(?:script)?$/, \"coffeescript\"],\n [\"lang\", /^babel$/, \"javascript\"],\n [\"type\", /^text\\/babel$/, \"javascript\"],\n [\"type\", /^text\\/ecmascript-\\d+$/, \"javascript\"]\n ],\n style: [\n [\"lang\", /^stylus$/i, \"stylus\"],\n [\"lang\", /^sass$/i, \"sass\"],\n [\"lang\", /^less$/i, \"text/x-less\"],\n [\"lang\", /^scss$/i, \"text/x-scss\"],\n [\"type\", /^(text\\/)?(x-)?styl(us)?$/i, \"stylus\"],\n [\"type\", /^text\\/sass/i, \"sass\"],\n [\"type\", /^(text\\/)?(x-)?scss$/i, \"text/x-scss\"],\n [\"type\", /^(text\\/)?(x-)?less$/i, \"text/x-less\"]\n ],\n template: [\n [\"lang\", /^vue-template$/i, \"vue\"],\n [\"lang\", /^pug$/i, \"pug\"],\n [\"lang\", /^handlebars$/i, \"handlebars\"],\n [\"type\", /^(text\\/)?(x-)?pug$/i, \"pug\"],\n [\"type\", /^text\\/x-handlebars-template$/i, \"handlebars\"],\n [null, null, \"vue-template\"]\n ]\n };\n\n CodeMirror.defineMode(\"vue-template\", function (config, parserConfig) {\n var mustacheOverlay = {\n token: function (stream) {\n if (stream.match(/^\\{\\{.*?\\}\\}/)) return \"meta mustache\";\n while (stream.next() && !stream.match(\"{{\", false)) {}\n return null;\n }\n };\n return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || \"text/html\"), mustacheOverlay);\n });\n\n CodeMirror.defineMode(\"vue\", function (config) {\n return CodeMirror.getMode(config, {name: \"htmlmixed\", tags: tagLanguages});\n }, \"htmlmixed\", \"xml\", \"javascript\", \"coffeescript\", \"css\", \"sass\", \"stylus\", \"pug\", \"handlebars\");\n\n CodeMirror.defineMIME(\"script/x-vue\", \"vue\");\n CodeMirror.defineMIME(\"text/x-vue\", \"vue\");\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeView.vue?vue&type=style&index=0&id=06e9bd12&scoped=true&lang=scss&\"","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode = function(name, states) {\n CodeMirror.defineMode(name, function(config) {\n return CodeMirror.simpleMode(config, states);\n });\n };\n\n CodeMirror.simpleMode = function(config, states) {\n ensureState(states, \"start\");\n var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n var list = states_[state] = [], orig = states[state];\n for (var i = 0; i < orig.length; i++) {\n var data = orig[i];\n list.push(new Rule(data, states));\n if (data.indent || data.dedent) hasIndentation = true;\n }\n }\n var mode = {\n startState: function() {\n return {state: \"start\", pending: null,\n local: null, localState: null,\n indent: hasIndentation ? [] : null};\n },\n copyState: function(state) {\n var s = {state: state.state, pending: state.pending,\n local: state.local, localState: null,\n indent: state.indent && state.indent.slice(0)};\n if (state.localState)\n s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n if (state.stack)\n s.stack = state.stack.slice(0);\n for (var pers = state.persistentStates; pers; pers = pers.next)\n s.persistentStates = {mode: pers.mode,\n spec: pers.spec,\n state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n next: s.persistentStates};\n return s;\n },\n token: tokenFunction(states_, config),\n innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n indent: indentFunction(states_, meta)\n };\n if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n mode[prop] = meta[prop];\n return mode;\n };\n\n function ensureState(states, name) {\n if (!states.hasOwnProperty(name))\n throw new Error(\"Undefined state \" + name + \" in simple mode\");\n }\n\n function toRegex(val, caret) {\n if (!val) return /(?:)/;\n var flags = \"\";\n if (val instanceof RegExp) {\n if (val.ignoreCase) flags = \"i\";\n if (val.unicode) flags += \"u\"\n val = val.source;\n } else {\n val = String(val);\n }\n return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n }\n\n function asToken(val) {\n if (!val) return null;\n if (val.apply) return val\n if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n var result = [];\n for (var i = 0; i < val.length; i++)\n result.push(val[i] && val[i].replace(/\\./g, \" \"));\n return result;\n }\n\n function Rule(data, states) {\n if (data.next || data.push) ensureState(states, data.next || data.push);\n this.regex = toRegex(data.regex);\n this.token = asToken(data.token);\n this.data = data;\n }\n\n function tokenFunction(states, config) {\n return function(stream, state) {\n if (state.pending) {\n var pend = state.pending.shift();\n if (state.pending.length == 0) state.pending = null;\n stream.pos += pend.text.length;\n return pend.token;\n }\n\n if (state.local) {\n if (state.local.end && stream.match(state.local.end)) {\n var tok = state.local.endToken || null;\n state.local = state.localState = null;\n return tok;\n } else {\n var tok = state.local.mode.token(stream, state.localState), m;\n if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n stream.pos = stream.start + m.index;\n return tok;\n }\n }\n\n var curState = states[state.state];\n for (var i = 0; i < curState.length; i++) {\n var rule = curState[i];\n var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n if (matches) {\n if (rule.data.next) {\n state.state = rule.data.next;\n } else if (rule.data.push) {\n (state.stack || (state.stack = [])).push(state.state);\n state.state = rule.data.push;\n } else if (rule.data.pop && state.stack && state.stack.length) {\n state.state = state.stack.pop();\n }\n\n if (rule.data.mode)\n enterLocalMode(config, state, rule.data.mode, rule.token);\n if (rule.data.indent)\n state.indent.push(stream.indentation() + config.indentUnit);\n if (rule.data.dedent)\n state.indent.pop();\n var token = rule.token\n if (token && token.apply) token = token(matches)\n if (matches.length > 2 && rule.token && typeof rule.token != \"string\") {\n for (var j = 2; j < matches.length; j++)\n if (matches[j])\n (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});\n stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n return token[0];\n } else if (token && token.join) {\n return token[0];\n } else {\n return token;\n }\n }\n }\n stream.next();\n return null;\n };\n }\n\n function cmp(a, b) {\n if (a === b) return true;\n if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n var props = 0;\n for (var prop in a) if (a.hasOwnProperty(prop)) {\n if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n props++;\n }\n for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n return props == 0;\n }\n\n function enterLocalMode(config, state, spec, token) {\n var pers;\n if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n var lState = pers ? pers.state : CodeMirror.startState(mode);\n if (spec.persistent && !pers)\n state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n state.localState = lState;\n state.local = {mode: mode,\n end: spec.end && toRegex(spec.end),\n endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n endToken: token && token.join ? token[token.length - 1] : token};\n }\n\n function indexOf(val, arr) {\n for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n }\n\n function indentFunction(states, meta) {\n return function(state, textAfter, line) {\n if (state.local && state.local.mode.indent)\n return state.local.mode.indent(state.localState, textAfter, line);\n if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n return CodeMirror.Pass;\n\n var pos = state.indent.length - 1, rules = states[state.state];\n scan: for (;;) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n var m = rule.regex.exec(textAfter);\n if (m && m[0]) {\n pos--;\n if (rule.next || rule.push) rules = states[rule.next || rule.push];\n textAfter = textAfter.slice(m[0].length);\n continue scan;\n }\n }\n }\n break;\n }\n return pos < 0 ? 0 : state.indent[pos];\n };\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Stylus mode created by Dmitry Kiselyov http://git.io/AaRB\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineMode(\"stylus\", function(config) {\n var indentUnit = config.indentUnit,\n indentUnitString = '',\n tagKeywords = keySet(tagKeywords_),\n tagVariablesRegexp = /^(a|b|i|s|col|em)$/i,\n propertyKeywords = keySet(propertyKeywords_),\n nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_),\n valueKeywords = keySet(valueKeywords_),\n colorKeywords = keySet(colorKeywords_),\n documentTypes = keySet(documentTypes_),\n documentTypesRegexp = wordRegexp(documentTypes_),\n mediaFeatures = keySet(mediaFeatures_),\n mediaTypes = keySet(mediaTypes_),\n fontProperties = keySet(fontProperties_),\n operatorsRegexp = /^\\s*([.]{2,3}|&&|\\|\\||\\*\\*|[?!=:]?=|[-+*\\/%<>]=?|\\?:|\\~)/,\n wordOperatorKeywordsRegexp = wordRegexp(wordOperatorKeywords_),\n blockKeywords = keySet(blockKeywords_),\n vendorPrefixesRegexp = new RegExp(/^\\-(moz|ms|o|webkit)-/i),\n commonAtoms = keySet(commonAtoms_),\n firstWordMatch = \"\",\n states = {},\n ch,\n style,\n type,\n override;\n\n while (indentUnitString.length < indentUnit) indentUnitString += ' ';\n\n /**\n * Tokenizers\n */\n function tokenBase(stream, state) {\n firstWordMatch = stream.string.match(/(^[\\w-]+\\s*=\\s*$)|(^\\s*[\\w-]+\\s*=\\s*[\\w-])|(^\\s*(\\.|#|@|\\$|\\&|\\[|\\d|\\+|::?|\\{|\\>|~|\\/)?\\s*[\\w-]*([a-z0-9-]|\\*|\\/\\*)(\\(|,)?)/);\n state.context.line.firstWord = firstWordMatch ? firstWordMatch[0].replace(/^\\s*/, \"\") : \"\";\n state.context.line.indent = stream.indentation();\n ch = stream.peek();\n\n // Line comment\n if (stream.match(\"//\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n }\n // Block comment\n if (stream.match(\"/*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n // String\n if (ch == \"\\\"\" || ch == \"'\") {\n stream.next();\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n // Def\n if (ch == \"@\") {\n stream.next();\n stream.eatWhile(/[\\w\\\\-]/);\n return [\"def\", stream.current()];\n }\n // ID selector or Hex color\n if (ch == \"#\") {\n stream.next();\n // Hex color\n if (stream.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\\b(?!-)/i)) {\n return [\"atom\", \"atom\"];\n }\n // ID selector\n if (stream.match(/^[a-z][\\w-]*/i)) {\n return [\"builtin\", \"hash\"];\n }\n }\n // Vendor prefixes\n if (stream.match(vendorPrefixesRegexp)) {\n return [\"meta\", \"vendor-prefixes\"];\n }\n // Numbers\n if (stream.match(/^-?[0-9]?\\.?[0-9]/)) {\n stream.eatWhile(/[a-z%]/i);\n return [\"number\", \"unit\"];\n }\n // !important|optional\n if (ch == \"!\") {\n stream.next();\n return [stream.match(/^(important|optional)/i) ? \"keyword\": \"operator\", \"important\"];\n }\n // Class\n if (ch == \".\" && stream.match(/^\\.[a-z][\\w-]*/i)) {\n return [\"qualifier\", \"qualifier\"];\n }\n // url url-prefix domain regexp\n if (stream.match(documentTypesRegexp)) {\n if (stream.peek() == \"(\") state.tokenize = tokenParenthesized;\n return [\"property\", \"word\"];\n }\n // Mixins / Functions\n if (stream.match(/^[a-z][\\w-]*\\(/i)) {\n stream.backUp(1);\n return [\"keyword\", \"mixin\"];\n }\n // Block mixins\n if (stream.match(/^(\\+|-)[a-z][\\w-]*\\(/i)) {\n stream.backUp(1);\n return [\"keyword\", \"block-mixin\"];\n }\n // Parent Reference BEM naming\n if (stream.string.match(/^\\s*&/) && stream.match(/^[-_]+[a-z][\\w-]*/)) {\n return [\"qualifier\", \"qualifier\"];\n }\n // / Root Reference & Parent Reference\n if (stream.match(/^(\\/|&)(-|_|:|\\.|#|[a-z])/)) {\n stream.backUp(1);\n return [\"variable-3\", \"reference\"];\n }\n if (stream.match(/^&{1}\\s*$/)) {\n return [\"variable-3\", \"reference\"];\n }\n // Word operator\n if (stream.match(wordOperatorKeywordsRegexp)) {\n return [\"operator\", \"operator\"];\n }\n // Word\n if (stream.match(/^\\$?[-_]*[a-z0-9]+[\\w-]*/i)) {\n // Variable\n if (stream.match(/^(\\.|\\[)[\\w-\\'\\\"\\]]+/i, false)) {\n if (!wordIsTag(stream.current())) {\n stream.match('.');\n return [\"variable-2\", \"variable-name\"];\n }\n }\n return [\"variable-2\", \"word\"];\n }\n // Operators\n if (stream.match(operatorsRegexp)) {\n return [\"operator\", stream.current()];\n }\n // Delimiters\n if (/[:;,{}\\[\\]\\(\\)]/.test(ch)) {\n stream.next();\n return [null, ch];\n }\n // Non-detected items\n stream.next();\n return [null, null];\n }\n\n /**\n * Token comment\n */\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n /**\n * Token string\n */\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return [\"string\", \"string\"];\n };\n }\n\n /**\n * Token parenthesized\n */\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be \"(\"\n if (!stream.match(/\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return [null, \"(\"];\n }\n\n /**\n * Context management\n */\n function Context(type, indent, prev, line) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n this.line = line || {firstWord: \"\", indent: 0};\n }\n\n function pushContext(state, stream, type, indent) {\n indent = indent >= 0 ? indent : indentUnit;\n state.context = new Context(type, stream.indentation() + indent, state.context);\n return type;\n }\n\n function popContext(state, currentIndent) {\n var contextIndent = state.context.indent - indentUnit;\n currentIndent = currentIndent || false;\n state.context = state.context.prev;\n if (currentIndent) state.context.indent = contextIndent;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n\n /**\n * Parser\n */\n function wordIsTag(word) {\n return word.toLowerCase() in tagKeywords;\n }\n\n function wordIsProperty(word) {\n word = word.toLowerCase();\n return word in propertyKeywords || word in fontProperties;\n }\n\n function wordIsBlock(word) {\n return word.toLowerCase() in blockKeywords;\n }\n\n function wordIsVendorPrefix(word) {\n return word.toLowerCase().match(vendorPrefixesRegexp);\n }\n\n function wordAsValue(word) {\n var wordLC = word.toLowerCase();\n var override = \"variable-2\";\n if (wordIsTag(word)) override = \"tag\";\n else if (wordIsBlock(word)) override = \"block-keyword\";\n else if (wordIsProperty(word)) override = \"property\";\n else if (wordLC in valueKeywords || wordLC in commonAtoms) override = \"atom\";\n else if (wordLC == \"return\" || wordLC in colorKeywords) override = \"keyword\";\n\n // Font family\n else if (word.match(/^[A-Z]/)) override = \"string\";\n return override;\n }\n\n function typeIsBlock(type, stream) {\n return ((endOfLine(stream) && (type == \"{\" || type == \"]\" || type == \"hash\" || type == \"qualifier\")) || type == \"block-mixin\");\n }\n\n function typeIsInterpolation(type, stream) {\n return type == \"{\" && stream.match(/^\\s*\\$?[\\w-]+/i, false);\n }\n\n function typeIsPseudo(type, stream) {\n return type == \":\" && stream.match(/^[a-z-]+/, false);\n }\n\n function startOfLine(stream) {\n return stream.sol() || stream.string.match(new RegExp(\"^\\\\s*\" + escapeRegExp(stream.current())));\n }\n\n function endOfLine(stream) {\n return stream.eol() || stream.match(/^\\s*$/, false);\n }\n\n function firstWordOfLine(line) {\n var re = /^\\s*[-_]*[a-z0-9]+[\\w-]*/i;\n var result = typeof line == \"string\" ? line.match(re) : line.string.match(re);\n return result ? result[0].replace(/^\\s*/, \"\") : \"\";\n }\n\n\n /**\n * Block\n */\n states.block = function(type, stream, state) {\n if ((type == \"comment\" && startOfLine(stream)) ||\n (type == \",\" && endOfLine(stream)) ||\n type == \"mixin\") {\n return pushContext(state, stream, \"block\", 0);\n }\n if (typeIsInterpolation(type, stream)) {\n return pushContext(state, stream, \"interpolation\");\n }\n if (endOfLine(stream) && type == \"]\") {\n if (!/^\\s*(\\.|#|:|\\[|\\*|&)/.test(stream.string) && !wordIsTag(firstWordOfLine(stream))) {\n return pushContext(state, stream, \"block\", 0);\n }\n }\n if (typeIsBlock(type, stream)) {\n return pushContext(state, stream, \"block\");\n }\n if (type == \"}\" && endOfLine(stream)) {\n return pushContext(state, stream, \"block\", 0);\n }\n if (type == \"variable-name\") {\n if (stream.string.match(/^\\s?\\$[\\w-\\.\\[\\]\\'\\\"]+$/) || wordIsBlock(firstWordOfLine(stream))) {\n return pushContext(state, stream, \"variableName\");\n }\n else {\n return pushContext(state, stream, \"variableName\", 0);\n }\n }\n if (type == \"=\") {\n if (!endOfLine(stream) && !wordIsBlock(firstWordOfLine(stream))) {\n return pushContext(state, stream, \"block\", 0);\n }\n return pushContext(state, stream, \"block\");\n }\n if (type == \"*\") {\n if (endOfLine(stream) || stream.match(/\\s*(,|\\.|#|\\[|:|{)/,false)) {\n override = \"tag\";\n return pushContext(state, stream, \"block\");\n }\n }\n if (typeIsPseudo(type, stream)) {\n return pushContext(state, stream, \"pseudo\");\n }\n if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {\n return pushContext(state, stream, endOfLine(stream) ? \"block\" : \"atBlock\");\n }\n if (/@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {\n return pushContext(state, stream, \"keyframes\");\n }\n if (/@extends?/.test(type)) {\n return pushContext(state, stream, \"extend\", 0);\n }\n if (type && type.charAt(0) == \"@\") {\n\n // Property Lookup\n if (stream.indentation() > 0 && wordIsProperty(stream.current().slice(1))) {\n override = \"variable-2\";\n return \"block\";\n }\n if (/(@import|@require|@charset)/.test(type)) {\n return pushContext(state, stream, \"block\", 0);\n }\n return pushContext(state, stream, \"block\");\n }\n if (type == \"reference\" && endOfLine(stream)) {\n return pushContext(state, stream, \"block\");\n }\n if (type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n\n if (type == \"vendor-prefixes\") {\n return pushContext(state, stream, \"vendorPrefixes\");\n }\n if (type == \"word\") {\n var word = stream.current();\n override = wordAsValue(word);\n\n if (override == \"property\") {\n if (startOfLine(stream)) {\n return pushContext(state, stream, \"block\", 0);\n } else {\n override = \"atom\";\n return \"block\";\n }\n }\n\n if (override == \"tag\") {\n\n // tag is a css value\n if (/embed|menu|pre|progress|sub|table/.test(word)) {\n if (wordIsProperty(firstWordOfLine(stream))) {\n override = \"atom\";\n return \"block\";\n }\n }\n\n // tag is an attribute\n if (stream.string.match(new RegExp(\"\\\\[\\\\s*\" + word + \"|\" + word +\"\\\\s*\\\\]\"))) {\n override = \"atom\";\n return \"block\";\n }\n\n // tag is a variable\n if (tagVariablesRegexp.test(word)) {\n if ((startOfLine(stream) && stream.string.match(/=/)) ||\n (!startOfLine(stream) &&\n !stream.string.match(/^(\\s*\\.|#|\\&|\\[|\\/|>|\\*)/) &&\n !wordIsTag(firstWordOfLine(stream)))) {\n override = \"variable-2\";\n if (wordIsBlock(firstWordOfLine(stream))) return \"block\";\n return pushContext(state, stream, \"block\", 0);\n }\n }\n\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n }\n if (override == \"block-keyword\") {\n override = \"keyword\";\n\n // Postfix conditionals\n if (stream.current(/(if|unless)/) && !startOfLine(stream)) {\n return \"block\";\n }\n return pushContext(state, stream, \"block\");\n }\n if (word == \"return\") return pushContext(state, stream, \"block\", 0);\n\n // Placeholder selector\n if (override == \"variable-2\" && stream.string.match(/^\\s?\\$[\\w-\\.\\[\\]\\'\\\"]+$/)) {\n return pushContext(state, stream, \"block\");\n }\n }\n return state.context.type;\n };\n\n\n /**\n * Parens\n */\n states.parens = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \")\") {\n if (state.context.prev.type == \"parens\") {\n return popContext(state);\n }\n if ((stream.string.match(/^[a-z][\\w-]*\\(/i) && endOfLine(stream)) ||\n wordIsBlock(firstWordOfLine(stream)) ||\n /(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(firstWordOfLine(stream)) ||\n (!stream.string.match(/^-?[a-z][\\w-\\.\\[\\]\\'\\\"]*\\s*=/) &&\n wordIsTag(firstWordOfLine(stream)))) {\n return pushContext(state, stream, \"block\");\n }\n if (stream.string.match(/^[\\$-]?[a-z][\\w-\\.\\[\\]\\'\\\"]*\\s*=/) ||\n stream.string.match(/^\\s*(\\(|\\)|[0-9])/) ||\n stream.string.match(/^\\s+[a-z][\\w-]*\\(/i) ||\n stream.string.match(/^\\s+[\\$-]?[a-z]/i)) {\n return pushContext(state, stream, \"block\", 0);\n }\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n else return pushContext(state, stream, \"block\", 0);\n }\n if (type && type.charAt(0) == \"@\" && wordIsProperty(stream.current().slice(1))) {\n override = \"variable-2\";\n }\n if (type == \"word\") {\n var word = stream.current();\n override = wordAsValue(word);\n if (override == \"tag\" && tagVariablesRegexp.test(word)) {\n override = \"variable-2\";\n }\n if (override == \"property\" || word == \"to\") override = \"atom\";\n }\n if (type == \"variable-name\") {\n return pushContext(state, stream, \"variableName\");\n }\n if (typeIsPseudo(type, stream)) {\n return pushContext(state, stream, \"pseudo\");\n }\n return state.context.type;\n };\n\n\n /**\n * Vendor prefixes\n */\n states.vendorPrefixes = function(type, stream, state) {\n if (type == \"word\") {\n override = \"property\";\n return pushContext(state, stream, \"block\", 0);\n }\n return popContext(state);\n };\n\n\n /**\n * Pseudo\n */\n states.pseudo = function(type, stream, state) {\n if (!wordIsProperty(firstWordOfLine(stream.string))) {\n stream.match(/^[a-z-]+/);\n override = \"variable-3\";\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n return popContext(state);\n }\n return popAndPass(type, stream, state);\n };\n\n\n /**\n * atBlock\n */\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (typeIsBlock(type, stream)) {\n return pushContext(state, stream, \"block\");\n }\n if (typeIsInterpolation(type, stream)) {\n return pushContext(state, stream, \"interpolation\");\n }\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (/^(only|not|and|or)$/.test(word))\n override = \"keyword\";\n else if (documentTypes.hasOwnProperty(word))\n override = \"tag\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = \"string-2\";\n else override = wordAsValue(stream.current());\n if (override == \"tag\" && endOfLine(stream)) {\n return pushContext(state, stream, \"block\");\n }\n }\n if (type == \"operator\" && /^(not|and|or)$/.test(stream.current())) {\n override = \"keyword\";\n }\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return state.context.type;\n if (type == \")\") {\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n else return pushContext(state, stream, \"atBlock\");\n }\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n override = wordAsValue(word);\n if (/^(max|min)/.test(word)) override = \"property\";\n if (override == \"tag\") {\n tagVariablesRegexp.test(word) ? override = \"variable-2\" : override = \"atom\";\n }\n return state.context.type;\n }\n return states.atBlock(type, stream, state);\n };\n\n\n /**\n * Keyframes\n */\n states.keyframes = function(type, stream, state) {\n if (stream.indentation() == \"0\" && ((type == \"}\" && startOfLine(stream)) || type == \"]\" || type == \"hash\"\n || type == \"qualifier\" || wordIsTag(stream.current()))) {\n return popAndPass(type, stream, state);\n }\n if (type == \"{\") return pushContext(state, stream, \"keyframes\");\n if (type == \"}\") {\n if (startOfLine(stream)) return popContext(state, true);\n else return pushContext(state, stream, \"keyframes\");\n }\n if (type == \"unit\" && /^[0-9]+\\%$/.test(stream.current())) {\n return pushContext(state, stream, \"keyframes\");\n }\n if (type == \"word\") {\n override = wordAsValue(stream.current());\n if (override == \"block-keyword\") {\n override = \"keyword\";\n return pushContext(state, stream, \"keyframes\");\n }\n }\n if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {\n return pushContext(state, stream, endOfLine(stream) ? \"block\" : \"atBlock\");\n }\n if (type == \"mixin\") {\n return pushContext(state, stream, \"block\", 0);\n }\n return state.context.type;\n };\n\n\n /**\n * Interpolation\n */\n states.interpolation = function(type, stream, state) {\n if (type == \"{\") popContext(state) && pushContext(state, stream, \"block\");\n if (type == \"}\") {\n if (stream.string.match(/^\\s*(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/i) ||\n (stream.string.match(/^\\s*[a-z]/i) && wordIsTag(firstWordOfLine(stream)))) {\n return pushContext(state, stream, \"block\");\n }\n if (!stream.string.match(/^(\\{|\\s*\\&)/) ||\n stream.match(/\\s*[\\w-]/,false)) {\n return pushContext(state, stream, \"block\", 0);\n }\n return pushContext(state, stream, \"block\");\n }\n if (type == \"variable-name\") {\n return pushContext(state, stream, \"variableName\", 0);\n }\n if (type == \"word\") {\n override = wordAsValue(stream.current());\n if (override == \"tag\") override = \"atom\";\n }\n return state.context.type;\n };\n\n\n /**\n * Extend/s\n */\n states.extend = function(type, stream, state) {\n if (type == \"[\" || type == \"=\") return \"extend\";\n if (type == \"]\") return popContext(state);\n if (type == \"word\") {\n override = wordAsValue(stream.current());\n return \"extend\";\n }\n return popContext(state);\n };\n\n\n /**\n * Variable name\n */\n states.variableName = function(type, stream, state) {\n if (type == \"string\" || type == \"[\" || type == \"]\" || stream.current().match(/^(\\.|\\$)/)) {\n if (stream.current().match(/^\\.[\\w-]+/i)) override = \"variable-2\";\n return \"variableName\";\n }\n return popAndPass(type, stream, state);\n };\n\n\n return {\n startState: function(base) {\n return {\n tokenize: null,\n state: \"block\",\n context: new Context(\"block\", base || 0, null)\n };\n },\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n state.state = states[state.state](type, stream, state);\n return override;\n },\n indent: function(state, textAfter, line) {\n\n var cx = state.context,\n ch = textAfter && textAfter.charAt(0),\n indent = cx.indent,\n lineFirstWord = firstWordOfLine(textAfter),\n lineIndent = line.match(/^\\s*/)[0].replace(/\\t/g, indentUnitString).length,\n prevLineFirstWord = state.context.prev ? state.context.prev.line.firstWord : \"\",\n prevLineIndent = state.context.prev ? state.context.prev.line.indent : lineIndent;\n\n if (cx.prev &&\n (ch == \"}\" && (cx.type == \"block\" || cx.type == \"atBlock\" || cx.type == \"keyframes\") ||\n ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\"))) {\n indent = cx.indent - indentUnit;\n } else if (!(/(\\})/.test(ch))) {\n if (/@|\\$|\\d/.test(ch) ||\n /^\\{/.test(textAfter) ||\n/^\\s*\\/(\\/|\\*)/.test(textAfter) ||\n /^\\s*\\/\\*/.test(prevLineFirstWord) ||\n /^\\s*[\\w-\\.\\[\\]\\'\\\"]+\\s*(\\?|:|\\+)?=/i.test(textAfter) ||\n/^(\\+|-)?[a-z][\\w-]*\\(/i.test(textAfter) ||\n/^return/.test(textAfter) ||\n wordIsBlock(lineFirstWord)) {\n indent = lineIndent;\n } else if (/(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(ch) || wordIsTag(lineFirstWord)) {\n if (/\\,\\s*$/.test(prevLineFirstWord)) {\n indent = prevLineIndent;\n } else if (/^\\s+/.test(line) && (/(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(prevLineFirstWord) || wordIsTag(prevLineFirstWord))) {\n indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;\n } else {\n indent = lineIndent;\n }\n } else if (!/,\\s*$/.test(line) && (wordIsVendorPrefix(lineFirstWord) || wordIsProperty(lineFirstWord))) {\n if (wordIsBlock(prevLineFirstWord)) {\n indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;\n } else if (/^\\{/.test(prevLineFirstWord)) {\n indent = lineIndent <= prevLineIndent ? lineIndent : prevLineIndent + indentUnit;\n } else if (wordIsVendorPrefix(prevLineFirstWord) || wordIsProperty(prevLineFirstWord)) {\n indent = lineIndent >= prevLineIndent ? prevLineIndent : lineIndent;\n } else if (/^(\\.|#|:|\\[|\\*|&|@|\\+|\\-|>|~|\\/)/.test(prevLineFirstWord) ||\n /=\\s*$/.test(prevLineFirstWord) ||\n wordIsTag(prevLineFirstWord) ||\n /^\\$[\\w-\\.\\[\\]\\'\\\"]/.test(prevLineFirstWord)) {\n indent = prevLineIndent + indentUnit;\n } else {\n indent = lineIndent;\n }\n }\n }\n return indent;\n },\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: \"//\",\n fold: \"indent\"\n };\n });\n\n // developer.mozilla.org/en-US/docs/Web/HTML/Element\n var tagKeywords_ = [\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\", \"b\", \"base\",\"bdi\", \"bdo\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\", \"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\", \"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\", \"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\", \"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\", \"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"nobr\",\"noframes\", \"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\", \"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\", \"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\", \"u\",\"ul\",\"var\",\"video\"];\n\n // github.com/codemirror/CodeMirror/blob/master/mode/css/css.js\n // Note, \"url-prefix\" should precede \"url\" in order to match correctly in documentTypesRegexp\n var documentTypes_ = [\"domain\", \"regexp\", \"url-prefix\", \"url\"];\n var mediaTypes_ = [\"all\",\"aural\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"embossed\"];\n var mediaFeatures_ = [\"width\",\"min-width\",\"max-width\",\"height\",\"min-height\",\"max-height\",\"device-width\",\"min-device-width\",\"max-device-width\",\"device-height\",\"min-device-height\",\"max-device-height\",\"aspect-ratio\",\"min-aspect-ratio\",\"max-aspect-ratio\",\"device-aspect-ratio\",\"min-device-aspect-ratio\",\"max-device-aspect-ratio\",\"color\",\"min-color\",\"max-color\",\"color-index\",\"min-color-index\",\"max-color-index\",\"monochrome\",\"min-monochrome\",\"max-monochrome\",\"resolution\",\"min-resolution\",\"max-resolution\",\"scan\",\"grid\"];\n var propertyKeywords_ = [\"align-content\",\"align-items\",\"align-self\",\"alignment-adjust\",\"alignment-baseline\",\"anchor-point\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"appearance\",\"azimuth\",\"backface-visibility\",\"background\",\"background-attachment\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"baseline-shift\",\"binding\",\"bleed\",\"bookmark-label\",\"bookmark-level\",\"bookmark-state\",\"bookmark-target\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"bottom\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"break-after\",\"break-before\",\"break-inside\",\"caption-side\",\"clear\",\"clip\",\"color\",\"color-profile\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-color\",\"column-rule-style\",\"column-rule-width\",\"column-span\",\"column-width\",\"columns\",\"content\",\"counter-increment\",\"counter-reset\",\"crop\",\"cue\",\"cue-after\",\"cue-before\",\"cursor\",\"direction\",\"display\",\"dominant-baseline\",\"drop-initial-after-adjust\",\"drop-initial-after-align\",\"drop-initial-before-adjust\",\"drop-initial-before-align\",\"drop-initial-size\",\"drop-initial-value\",\"elevation\",\"empty-cells\",\"fit\",\"fit-position\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"float\",\"float-offset\",\"flow-from\",\"flow-into\",\"font\",\"font-feature-settings\",\"font-family\",\"font-kerning\",\"font-language-override\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-weight\",\"grid\",\"grid-area\",\"grid-auto-columns\",\"grid-auto-flow\",\"grid-auto-position\",\"grid-auto-rows\",\"grid-column\",\"grid-column-end\",\"grid-column-start\",\"grid-row\",\"grid-row-end\",\"grid-row-start\",\"grid-template\",\"grid-template-areas\",\"grid-template-columns\",\"grid-template-rows\",\"hanging-punctuation\",\"height\",\"hyphens\",\"icon\",\"image-orientation\",\"image-rendering\",\"image-resolution\",\"inline-box-align\",\"justify-content\",\"left\",\"letter-spacing\",\"line-break\",\"line-height\",\"line-stacking\",\"line-stacking-ruby\",\"line-stacking-shift\",\"line-stacking-strategy\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marker-offset\",\"marks\",\"marquee-direction\",\"marquee-loop\",\"marquee-play-count\",\"marquee-speed\",\"marquee-style\",\"max-height\",\"max-width\",\"min-height\",\"min-width\",\"move-to\",\"nav-down\",\"nav-index\",\"nav-left\",\"nav-right\",\"nav-up\",\"object-fit\",\"object-position\",\"opacity\",\"order\",\"orphans\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"overflow\",\"overflow-style\",\"overflow-wrap\",\"overflow-x\",\"overflow-y\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"page-policy\",\"pause\",\"pause-after\",\"pause-before\",\"perspective\",\"perspective-origin\",\"pitch\",\"pitch-range\",\"play-during\",\"position\",\"presentation-level\",\"punctuation-trim\",\"quotes\",\"region-break-after\",\"region-break-before\",\"region-break-inside\",\"region-fragment\",\"rendering-intent\",\"resize\",\"rest\",\"rest-after\",\"rest-before\",\"richness\",\"right\",\"rotation\",\"rotation-point\",\"ruby-align\",\"ruby-overhang\",\"ruby-position\",\"ruby-span\",\"shape-image-threshold\",\"shape-inside\",\"shape-margin\",\"shape-outside\",\"size\",\"speak\",\"speak-as\",\"speak-header\",\"speak-numeral\",\"speak-punctuation\",\"speech-rate\",\"stress\",\"string-set\",\"tab-size\",\"table-layout\",\"target\",\"target-name\",\"target-new\",\"target-position\",\"text-align\",\"text-align-last\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-skip\",\"text-decoration-style\",\"text-emphasis\",\"text-emphasis-color\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-height\",\"text-indent\",\"text-justify\",\"text-outline\",\"text-overflow\",\"text-shadow\",\"text-size-adjust\",\"text-space-collapse\",\"text-transform\",\"text-underline-position\",\"text-wrap\",\"top\",\"transform\",\"transform-origin\",\"transform-style\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"unicode-bidi\",\"vertical-align\",\"visibility\",\"voice-balance\",\"voice-duration\",\"voice-family\",\"voice-pitch\",\"voice-range\",\"voice-rate\",\"voice-stress\",\"voice-volume\",\"volume\",\"white-space\",\"widows\",\"width\",\"will-change\",\"word-break\",\"word-spacing\",\"word-wrap\",\"z-index\",\"clip-path\",\"clip-rule\",\"mask\",\"enable-background\",\"filter\",\"flood-color\",\"flood-opacity\",\"lighting-color\",\"stop-color\",\"stop-opacity\",\"pointer-events\",\"color-interpolation\",\"color-interpolation-filters\",\"color-rendering\",\"fill\",\"fill-opacity\",\"fill-rule\",\"image-rendering\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-start\",\"shape-rendering\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"text-rendering\",\"baseline-shift\",\"dominant-baseline\",\"glyph-orientation-horizontal\",\"glyph-orientation-vertical\",\"text-anchor\",\"writing-mode\",\"font-smoothing\",\"osx-font-smoothing\"];\n var nonStandardPropertyKeywords_ = [\"scrollbar-arrow-color\",\"scrollbar-base-color\",\"scrollbar-dark-shadow-color\",\"scrollbar-face-color\",\"scrollbar-highlight-color\",\"scrollbar-shadow-color\",\"scrollbar-3d-light-color\",\"scrollbar-track-color\",\"shape-inside\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"zoom\"];\n var fontProperties_ = [\"font-family\",\"src\",\"unicode-range\",\"font-variant\",\"font-feature-settings\",\"font-stretch\",\"font-weight\",\"font-style\"];\n var colorKeywords_ = [\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"];\n var valueKeywords_ = [\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"attr\",\"auto\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"column\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ethiopic-numeric\",\"ew-resize\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fixed\",\"flat\",\"flex\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"japanese-formal\",\"japanese-informal\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"korean-hangul-formal\",\"korean-hanja-formal\",\"korean-hanja-informal\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"malayalam\",\"match\",\"matrix\",\"matrix3d\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"perspective\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row-resize\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"simp-chinese-formal\",\"simp-chinese-informal\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"spell-out\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"sub\",\"subpixel-antialiased\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"tamil\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"trad-chinese-formal\",\"trad-chinese-informal\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\",\"bicubic\",\"optimizespeed\",\"grayscale\",\"row\",\"row-reverse\",\"wrap\",\"wrap-reverse\",\"column-reverse\",\"flex-start\",\"flex-end\",\"space-between\",\"space-around\", \"unset\"];\n\n var wordOperatorKeywords_ = [\"in\",\"and\",\"or\",\"not\",\"is not\",\"is a\",\"is\",\"isnt\",\"defined\",\"if unless\"],\n blockKeywords_ = [\"for\",\"if\",\"else\",\"unless\", \"from\", \"to\"],\n commonAtoms_ = [\"null\",\"true\",\"false\",\"href\",\"title\",\"type\",\"not-allowed\",\"readonly\",\"disabled\"],\n commonDef_ = [\"@font-face\", \"@keyframes\", \"@media\", \"@viewport\", \"@page\", \"@host\", \"@supports\", \"@block\", \"@css\"];\n\n var hintWords = tagKeywords_.concat(documentTypes_,mediaTypes_,mediaFeatures_,\n propertyKeywords_,nonStandardPropertyKeywords_,\n colorKeywords_,valueKeywords_,fontProperties_,\n wordOperatorKeywords_,blockKeywords_,\n commonAtoms_,commonDef_);\n\n function wordRegexp(words) {\n words = words.sort(function(a,b){return b > a;});\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) keys[array[i]] = true;\n return keys;\n }\n\n function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n }\n\n CodeMirror.registerHelper(\"hintWords\", \"stylus\", hintWords);\n CodeMirror.defineMIME(\"text/x-styl\", \"stylus\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-controls-background\", \"media-current-time-display\",\n \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n \"media-return-to-realtime-button\", \"media-rewind-button\",\n \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\",\n \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n (document.documentMode == null || document.documentMode < 8);\n\n var Pos = CodeMirror.Pos;\n\n var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\", \"<\": \">>\", \">\": \"<<\"};\n\n function bracketRegex(config) {\n return config && config.bracketRegex || /[(){}[\\]]/\n }\n\n function findMatchingBracket(cm, where, config) {\n var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n var afterCursor = config && config.afterCursor\n if (afterCursor == null)\n afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)\n var re = bracketRegex(config)\n\n // A cursor is defined as between two characters, but in in vim command mode\n // (i.e. not insert mode), the cursor is visually represented as a\n // highlighted box on top of the 2nd character. Otherwise, we allow matches\n // from before or after the cursor.\n var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) ||\n re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)];\n if (!match) return null;\n var dir = match.charAt(1) == \">\" ? 1 : -1;\n if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;\n var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style, config);\n if (found == null) return null;\n return {from: Pos(where.line, pos), to: found && found.pos,\n match: found && found.ch == match.charAt(0), forward: dir > 0};\n }\n\n // bracketRegex is used to specify which type of bracket to scan\n // should be a regexp, e.g. /[[\\]]/\n //\n // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n //\n // Returns false when no bracket was found, null when it reached\n // maxScanLines and gave up\n function scanForBracket(cm, where, dir, style, config) {\n var maxScanLen = (config && config.maxScanLineLength) || 10000;\n var maxScanLines = (config && config.maxScanLines) || 1000;\n\n var stack = [];\n var re = bracketRegex(config)\n var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n var line = cm.getLine(lineNo);\n if (!line) continue;\n var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n if (line.length > maxScanLen) continue;\n if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n for (; pos != end; pos += dir) {\n var ch = line.charAt(pos);\n if (re.test(ch) && (style === undefined ||\n (cm.getTokenTypeAt(Pos(lineNo, pos + 1)) || \"\") == (style || \"\"))) {\n var match = matching[ch];\n if (match && (match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n else stack.pop();\n }\n }\n }\n return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n }\n\n function matchBrackets(cm, autoclear, config) {\n // Disable brace matching in long lines, since it'll cause hugely slow updates\n var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000,\n highlightNonMatching = config && config.highlightNonMatching;\n var marks = [], ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);\n if (match && (match.match || highlightNonMatching !== false) && cm.getLine(match.from.line).length <= maxHighlightLen) {\n var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n }\n }\n\n if (marks.length) {\n // Kludge to work around the IE bug from issue #1193, where text\n // input stops going to the textarea whenever this fires.\n if (ie_lt8 && cm.state.focused) cm.focus();\n\n var clear = function() {\n cm.operation(function() {\n for (var i = 0; i < marks.length; i++) marks[i].clear();\n });\n };\n if (autoclear) setTimeout(clear, 800);\n else return clear;\n }\n }\n\n function doMatchBrackets(cm) {\n cm.operation(function() {\n if (cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n });\n }\n\n function clearHighlighted(cm) {\n if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n }\n\n CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.off(\"cursorActivity\", doMatchBrackets);\n cm.off(\"focus\", doMatchBrackets)\n cm.off(\"blur\", clearHighlighted)\n clearHighlighted(cm);\n }\n if (val) {\n cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n cm.on(\"cursorActivity\", doMatchBrackets);\n cm.on(\"focus\", doMatchBrackets)\n cm.on(\"blur\", clearHighlighted)\n }\n });\n\n CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, config, oldConfig){\n // Backwards-compatibility kludge\n if (oldConfig || typeof config == \"boolean\") {\n if (!oldConfig) {\n config = config ? {strict: true} : null\n } else {\n oldConfig.strict = config\n config = oldConfig\n }\n }\n return findMatchingBracket(this, pos, config)\n });\n CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n return scanForBracket(this, pos, dir, style, config);\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n var prev = old && old != CodeMirror.Init;\n if (val && !prev) {\n cm.state.markedSelection = [];\n cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n reset(cm);\n cm.on(\"cursorActivity\", onCursorActivity);\n cm.on(\"change\", onChange);\n } else if (!val && prev) {\n cm.off(\"cursorActivity\", onCursorActivity);\n cm.off(\"change\", onChange);\n clear(cm);\n cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n }\n });\n\n function onCursorActivity(cm) {\n if (cm.state.markedSelection)\n cm.operation(function() { update(cm); });\n }\n\n function onChange(cm) {\n if (cm.state.markedSelection && cm.state.markedSelection.length)\n cm.operation(function() { clear(cm); });\n }\n\n var CHUNK_SIZE = 8;\n var Pos = CodeMirror.Pos;\n var cmp = CodeMirror.cmpPos;\n\n function coverRange(cm, from, to, addAt) {\n if (cmp(from, to) == 0) return;\n var array = cm.state.markedSelection;\n var cls = cm.state.markedSelectionStyle;\n for (var line = from.line;;) {\n var start = line == from.line ? from : Pos(line, 0);\n var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n var end = atEnd ? to : Pos(endLine, 0);\n var mark = cm.markText(start, end, {className: cls});\n if (addAt == null) array.push(mark);\n else array.splice(addAt++, 0, mark);\n if (atEnd) break;\n line = endLine;\n }\n }\n\n function clear(cm) {\n var array = cm.state.markedSelection;\n for (var i = 0; i < array.length; ++i) array[i].clear();\n array.length = 0;\n }\n\n function reset(cm) {\n clear(cm);\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++)\n coverRange(cm, ranges[i].from(), ranges[i].to());\n }\n\n function update(cm) {\n if (!cm.somethingSelected()) return clear(cm);\n if (cm.listSelections().length > 1) return reset(cm);\n\n var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n var array = cm.state.markedSelection;\n if (!array.length) return coverRange(cm, from, to);\n\n var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n if (!coverStart || !coverEnd || to.line - from.line <= CHUNK_SIZE ||\n cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n return reset(cm);\n\n while (cmp(from, coverStart.from) > 0) {\n array.shift().clear();\n coverStart = array[0].find();\n }\n if (cmp(from, coverStart.from) < 0) {\n if (coverStart.to.line - from.line < CHUNK_SIZE) {\n array.shift().clear();\n coverRange(cm, from, coverStart.to, 0);\n } else {\n coverRange(cm, from, coverStart.from, 0);\n }\n }\n\n while (cmp(to, coverEnd.to) < 0) {\n array.pop().clear();\n coverEnd = array[array.length - 1].find();\n }\n if (cmp(to, coverEnd.to) > 0) {\n if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n array.pop().clear();\n coverRange(cm, coverEnd.from, to);\n } else {\n coverRange(cm, coverEnd.to, to);\n }\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n return {\n startState: function() {\n return {\n base: CodeMirror.startState(base),\n overlay: CodeMirror.startState(overlay),\n basePos: 0, baseCur: null,\n overlayPos: 0, overlayCur: null,\n streamSeen: null\n };\n },\n copyState: function(state) {\n return {\n base: CodeMirror.copyState(base, state.base),\n overlay: CodeMirror.copyState(overlay, state.overlay),\n basePos: state.basePos, baseCur: null,\n overlayPos: state.overlayPos, overlayCur: null\n };\n },\n\n token: function(stream, state) {\n if (stream != state.streamSeen ||\n Math.min(state.basePos, state.overlayPos) < stream.start) {\n state.streamSeen = stream;\n state.basePos = state.overlayPos = stream.start;\n }\n\n if (stream.start == state.basePos) {\n state.baseCur = base.token(stream, state.base);\n state.basePos = stream.pos;\n }\n if (stream.start == state.overlayPos) {\n stream.pos = stream.start;\n state.overlayCur = overlay.token(stream, state.overlay);\n state.overlayPos = stream.pos;\n }\n stream.pos = Math.min(state.basePos, state.overlayPos);\n\n // state.overlay.combineTokens always takes precedence over combine,\n // unless set to null\n if (state.overlayCur == null) return state.baseCur;\n else if (state.baseCur != null &&\n state.overlay.combineTokens ||\n combine && state.overlay.combineTokens == null)\n return state.baseCur + \" \" + state.overlayCur;\n else return state.overlayCur;\n },\n\n indent: base.indent && function(state, textAfter, line) {\n return base.indent(state.base, textAfter, line);\n },\n electricChars: base.electricChars,\n\n innerMode: function(state) { return {state: state.base, mode: base}; },\n\n blankLine: function(state) {\n var baseToken, overlayToken;\n if (base.blankLine) baseToken = base.blankLine(state.base);\n if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);\n\n return overlayToken == null ?\n baseToken :\n (combine && baseToken != null ? baseToken + \" \" + overlayToken : overlayToken);\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/pickhardt/coffeescript-codemirror-mode\n */\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"coffeescript\", function(conf, parserConf) {\n var ERRORCLASS = \"error\";\n\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n var operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\n var delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\n var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\n var atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\n var wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n \"is\", \"isnt\", \"in\",\n \"instanceof\", \"typeof\"]);\n var indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\n var commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\n var keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\n indentKeywords = wordRegexp(indentKeywords);\n\n\n var stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\n var regexPrefixes = /^(\\/{3}|\\/)/;\n var commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\n var constants = wordRegexp(commonConstants);\n\n // Tokenizers\n function tokenBase(stream, state) {\n // Handle scope changes\n if (stream.sol()) {\n if (state.scope.align === null) state.scope.align = false;\n var scopeOffset = state.scope.offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n return \"indent\";\n } else if (lineOffset < scopeOffset) {\n return \"dedent\";\n }\n return null;\n } else {\n if (scopeOffset > 0) {\n dedent(stream, state);\n }\n }\n }\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle docco title comment (single line)\n if (stream.match(\"####\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle multi line comments\n if (stream.match(\"###\")) {\n state.tokenize = longComment;\n return state.tokenize(stream, state);\n }\n\n // Single line comment\n if (ch === \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle number literals\n if (stream.match(/^-?[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\d+\\.\\d*/)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\.\\d+/)) {\n floatLiteral = true;\n }\n\n if (floatLiteral) {\n // prevent from getting extra . on 1..\n if (stream.peek() == \".\"){\n stream.backUp(1);\n }\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^-?0x[0-9a-f]+/i)) {\n intLiteral = true;\n }\n // Decimal\n if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^-?0(?![\\dx])/i)) {\n intLiteral = true;\n }\n if (intLiteral) {\n return \"number\";\n }\n }\n\n // Handle strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenFactory(stream.current(), false, \"string\");\n return state.tokenize(stream, state);\n }\n // Handle regex literals\n if (stream.match(regexPrefixes)) {\n if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n state.tokenize = tokenFactory(stream.current(), true, \"string-2\");\n return state.tokenize(stream, state);\n } else {\n stream.backUp(1);\n }\n }\n\n\n\n // Handle operators and delimiters\n if (stream.match(operators) || stream.match(wordOperators)) {\n return \"operator\";\n }\n if (stream.match(delimiters)) {\n return \"punctuation\";\n }\n\n if (stream.match(constants)) {\n return \"atom\";\n }\n\n if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n return \"property\";\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(identifiers)) {\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n }\n\n function tokenFactory(delimiter, singleline, outclass) {\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\/\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol()) {\n return outclass;\n }\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return outclass;\n } else {\n stream.eat(/['\"\\/]/);\n }\n }\n if (singleline) {\n if (parserConf.singleLineStringErrors) {\n outclass = ERRORCLASS;\n } else {\n state.tokenize = tokenBase;\n }\n }\n return outclass;\n };\n }\n\n function longComment(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^#]/);\n if (stream.match(\"###\")) {\n state.tokenize = tokenBase;\n break;\n }\n stream.eatWhile(\"#\");\n }\n return \"comment\";\n }\n\n function indent(stream, state, type) {\n type = type || \"coffee\";\n var offset = 0, align = false, alignOffset = null;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (scope.type === \"coffee\" || scope.type == \"}\") {\n offset = scope.offset + conf.indentUnit;\n break;\n }\n }\n if (type !== \"coffee\") {\n align = null;\n alignOffset = stream.column() + stream.current().length;\n } else if (state.scope.align) {\n state.scope.align = false;\n }\n state.scope = {\n offset: offset,\n type: type,\n prev: state.scope,\n align: align,\n alignOffset: alignOffset\n };\n }\n\n function dedent(stream, state) {\n if (!state.scope.prev) return;\n if (state.scope.type === \"coffee\") {\n var _indent = stream.indentation();\n var matched = false;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (_indent === scope.offset) {\n matched = true;\n break;\n }\n }\n if (!matched) {\n return true;\n }\n while (state.scope.prev && state.scope.offset !== _indent) {\n state.scope = state.scope.prev;\n }\n return false;\n } else {\n state.scope = state.scope.prev;\n return false;\n }\n }\n\n function tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle scope changes.\n if (current === \"return\") {\n state.dedent = true;\n }\n if (((current === \"->\" || current === \"=>\") && stream.eol())\n || style === \"indent\") {\n indent(stream, state);\n }\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n }\n if (indentKeywords.exec(current)){\n indent(stream, state);\n }\n if (current == \"then\"){\n dedent(stream, state);\n }\n\n\n if (style === \"dedent\") {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index !== -1) {\n while (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n if (state.scope.type == current)\n state.scope = state.scope.prev;\n }\n if (state.dedent && stream.eol()) {\n if (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n state.dedent = false;\n }\n\n return style;\n }\n\n var external = {\n startState: function(basecolumn) {\n return {\n tokenize: tokenBase,\n scope: {offset:basecolumn || 0, type:\"coffee\", prev: null, align: false},\n prop: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var fillAlign = state.scope.align === null && state.scope;\n if (fillAlign && stream.sol()) fillAlign.align = false;\n\n var style = tokenLexer(stream, state);\n if (style && style != \"comment\") {\n if (fillAlign) fillAlign.align = true;\n state.prop = style == \"punctuation\" && stream.current() == \".\"\n }\n\n return style;\n },\n\n indent: function(state, text) {\n if (state.tokenize != tokenBase) return 0;\n var scope = state.scope;\n var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n var closes = closer && scope.type === text.charAt(0);\n if (scope.align)\n return scope.alignOffset - (closes ? 1 : 0);\n else\n return (closes ? scope.prev : scope).offset;\n },\n\n lineComment: \"#\",\n fold: \"indent\"\n };\n return external;\n});\n\n// IANA registered media type\n// https://www.iana.org/assignments/media-types/\nCodeMirror.defineMIME(\"application/vnd.coffeescript\", \"coffeescript\");\n\nCodeMirror.defineMIME(\"text/x-coffeescript\", \"coffeescript\");\nCodeMirror.defineMIME(\"text/coffeescript\", \"coffeescript\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function lower(tagName) {\n return tagName && tagName.toLowerCase();\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||\n !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(lower(tagName))) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var defaultTags = {\n script: [\n [\"lang\", /(javascript|babel)/i, \"javascript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"javascript\"]\n ],\n style: [\n [\"lang\", /^css$/i, \"css\"],\n [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"css\"]\n ]\n };\n\n function maybeBackup(stream, pat, style) {\n var cur = stream.current(), close = cur.search(pat);\n if (close > -1) {\n stream.backUp(cur.length - close);\n } else if (cur.match(/<\\/?$/)) {\n stream.backUp(cur.length);\n if (!stream.match(pat, false)) stream.match(cur);\n }\n return style;\n }\n\n var attrRegexpCache = {};\n function getAttrRegexp(attr) {\n var regexp = attrRegexpCache[attr];\n if (regexp) return regexp;\n return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n }\n\n function getAttrValue(text, attr) {\n var match = text.match(getAttrRegexp(attr))\n return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n }\n\n function getTagRegexp(tagName, anchored) {\n return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\s*\" + tagName + \"\\s*>\", \"i\");\n }\n\n function addTags(from, to) {\n for (var tag in from) {\n var dest = to[tag] || (to[tag] = []);\n var source = from[tag];\n for (var i = source.length - 1; i >= 0; i--)\n dest.unshift(source[i])\n }\n }\n\n function findMatchingMode(tagInfo, tagText) {\n for (var i = 0; i < tagInfo.length; i++) {\n var spec = tagInfo[i];\n if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n }\n }\n\n CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n var htmlMode = CodeMirror.getMode(config, {\n name: \"xml\",\n htmlMode: true,\n multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n allowMissingTagName: parserConfig.allowMissingTagName,\n });\n\n var tags = {};\n var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n addTags(defaultTags, tags);\n if (configTags) addTags(configTags, tags);\n if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n function html(stream, state) {\n var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n tags.hasOwnProperty(tagName)) {\n state.inTag = tagName + \" \"\n } else if (state.inTag && tag && />$/.test(stream.current())) {\n var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n state.inTag = null\n var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n var mode = CodeMirror.getMode(config, modeSpec)\n var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n state.token = function (stream, state) {\n if (stream.match(endTagA, false)) {\n state.token = html;\n state.localState = state.localMode = null;\n return null;\n }\n return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n };\n state.localMode = mode;\n state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n } else if (state.inTag) {\n state.inTag += stream.current()\n if (stream.eol()) state.inTag += \" \"\n }\n return style;\n };\n\n return {\n startState: function () {\n var state = CodeMirror.startState(htmlMode);\n return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n },\n\n copyState: function (state) {\n var local;\n if (state.localState) {\n local = CodeMirror.copyState(state.localMode, state.localState);\n }\n return {token: state.token, inTag: state.inTag,\n localMode: state.localMode, localState: local,\n htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n },\n\n token: function (stream, state) {\n return state.token(stream, state);\n },\n\n indent: function (state, textAfter, line) {\n if (!state.localMode || /^\\s*<\\//.test(textAfter))\n return htmlMode.indent(state.htmlState, textAfter, line);\n else if (state.localMode.indent)\n return state.localMode.indent(state.localState, textAfter, line);\n else\n return CodeMirror.Pass;\n },\n\n innerMode: function (state) {\n return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n }\n };\n }, \"xml\", \"javascript\", \"css\");\n\n CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"), require(\"../../addon/mode/multiplex\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../../addon/mode/simple\", \"../../addon/mode/multiplex\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode(\"handlebars-tags\", {\n start: [\n { regex: /\\{\\{\\{/, push: \"handlebars_raw\", token: \"tag\" },\n { regex: /\\{\\{!--/, push: \"dash_comment\", token: \"comment\" },\n { regex: /\\{\\{!/, push: \"comment\", token: \"comment\" },\n { regex: /\\{\\{/, push: \"handlebars\", token: \"tag\" }\n ],\n handlebars_raw: [\n { regex: /\\}\\}\\}/, pop: true, token: \"tag\" },\n ],\n handlebars: [\n { regex: /\\}\\}/, pop: true, token: \"tag\" },\n\n // Double and single quotes\n { regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/, token: \"string\" },\n { regex: /'(?:[^\\\\']|\\\\.)*'?/, token: \"string\" },\n\n // Handlebars keywords\n { regex: />|[#\\/]([A-Za-z_]\\w*)/, token: \"keyword\" },\n { regex: /(?:else|this)\\b/, token: \"keyword\" },\n\n // Numeral\n { regex: /\\d+/i, token: \"number\" },\n\n // Atoms like = and .\n { regex: /=|~|@|true|false/, token: \"atom\" },\n\n // Paths\n { regex: /(?:\\.\\.\\/)*(?:[A-Za-z_][\\w\\.]*)+/, token: \"variable-2\" }\n ],\n dash_comment: [\n { regex: /--\\}\\}/, pop: true, token: \"comment\" },\n\n // Commented code\n { regex: /./, token: \"comment\"}\n ],\n comment: [\n { regex: /\\}\\}/, pop: true, token: \"comment\" },\n { regex: /./, token: \"comment\" }\n ],\n meta: {\n blockCommentStart: \"{{--\",\n blockCommentEnd: \"--}}\"\n }\n });\n\n CodeMirror.defineMode(\"handlebars\", function(config, parserConfig) {\n var handlebars = CodeMirror.getMode(config, \"handlebars-tags\");\n if (!parserConfig || !parserConfig.base) return handlebars;\n return CodeMirror.multiplexingMode(\n CodeMirror.getMode(config, parserConfig.base),\n {open: \"{{\", close: /\\}\\}\\}?/, mode: handlebars, parseDelimiters: true}\n );\n });\n\n CodeMirror.defineMIME(\"text/x-handlebars-template\", \"handlebars\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n // Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects\n var others = Array.prototype.slice.call(arguments, 1);\n\n function indexOf(string, pattern, from, returnEnd) {\n if (typeof pattern == \"string\") {\n var found = string.indexOf(pattern, from);\n return returnEnd && found > -1 ? found + pattern.length : found;\n }\n var m = pattern.exec(from ? string.slice(from) : string);\n return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;\n }\n\n return {\n startState: function() {\n return {\n outer: CodeMirror.startState(outer),\n innerActive: null,\n inner: null,\n startingInner: false\n };\n },\n\n copyState: function(state) {\n return {\n outer: CodeMirror.copyState(outer, state.outer),\n innerActive: state.innerActive,\n inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),\n startingInner: state.startingInner\n };\n },\n\n token: function(stream, state) {\n if (!state.innerActive) {\n var cutOff = Infinity, oldContent = stream.string;\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n var found = indexOf(oldContent, other.open, stream.pos);\n if (found == stream.pos) {\n if (!other.parseDelimiters) stream.match(other.open);\n state.startingInner = !!other.parseDelimiters\n state.innerActive = other;\n\n // Get the outer indent, making sure to handle CodeMirror.Pass\n var outerIndent = 0;\n if (outer.indent) {\n var possibleOuterIndent = outer.indent(state.outer, \"\", \"\");\n if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;\n }\n\n state.inner = CodeMirror.startState(other.mode, outerIndent);\n return other.delimStyle && (other.delimStyle + \" \" + other.delimStyle + \"-open\");\n } else if (found != -1 && found < cutOff) {\n cutOff = found;\n }\n }\n if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n var outerToken = outer.token(stream, state.outer);\n if (cutOff != Infinity) stream.string = oldContent;\n return outerToken;\n } else {\n var curInner = state.innerActive, oldContent = stream.string;\n if (!curInner.close && stream.sol()) {\n state.innerActive = state.inner = null;\n return this.token(stream, state);\n }\n var found = curInner.close && !state.startingInner ?\n indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;\n if (found == stream.pos && !curInner.parseDelimiters) {\n stream.match(curInner.close);\n state.innerActive = state.inner = null;\n return curInner.delimStyle && (curInner.delimStyle + \" \" + curInner.delimStyle + \"-close\");\n }\n if (found > -1) stream.string = oldContent.slice(0, found);\n var innerToken = curInner.mode.token(stream, state.inner);\n if (found > -1) stream.string = oldContent;\n else if (stream.pos > stream.start) state.startingInner = false\n\n if (found == stream.pos && curInner.parseDelimiters)\n state.innerActive = state.inner = null;\n\n if (curInner.innerStyle) {\n if (innerToken) innerToken = innerToken + \" \" + curInner.innerStyle;\n else innerToken = curInner.innerStyle;\n }\n\n return innerToken;\n }\n },\n\n indent: function(state, textAfter, line) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (!mode.indent) return CodeMirror.Pass;\n return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);\n },\n\n blankLine: function(state) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (mode.blankLine) {\n mode.blankLine(state.innerActive ? state.inner : state.outer);\n }\n if (!state.innerActive) {\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n if (other.open === \"\\n\") {\n state.innerActive = other;\n state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\", \"\") : 0);\n }\n }\n } else if (state.innerActive.close === \"\\n\") {\n state.innerActive = state.inner = null;\n }\n },\n\n electricChars: outer.electricChars,\n\n innerMode: function(state) {\n return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/codemirror/mode/sass/sass.js","webpack:///./node_modules/codemirror/addon/selection/active-line.js","webpack:///./src/components/CodeView.vue?edfe","webpack:///./src/components/Sample-mobile.vue","webpack:///./src/components/Sample-desktop.js","webpack:///src/components/CodeView.vue","webpack:///./src/components/CodeView.vue?abe8","webpack:///./src/components/CodeView.vue","webpack:///./node_modules/codemirror/mode/pug/pug.js","webpack:///./node_modules/codemirror/mode/vue/vue.js","webpack:///./src/components/CodeView.vue?710b","webpack:///./node_modules/codemirror/addon/comment/comment.js","webpack:///./node_modules/codemirror/addon/mode/simple.js","webpack:///./node_modules/codemirror/mode/stylus/stylus.js","webpack:///./node_modules/codemirror/mode/css/css.js","webpack:///./node_modules/codemirror/addon/edit/matchbrackets.js","webpack:///./node_modules/codemirror/addon/selection/mark-selection.js","webpack:///./node_modules/codemirror/addon/mode/overlay.js","webpack:///./node_modules/codemirror/mode/coffeescript/coffeescript.js","webpack:///./node_modules/codemirror/mode/xml/xml.js","webpack:///./node_modules/codemirror/mode/htmlmixed/htmlmixed.js","webpack:///./node_modules/codemirror/mode/handlebars/handlebars.js","webpack:///./node_modules/codemirror/addon/mode/multiplex.js","webpack:///./node_modules/codemirror/mode/javascript/javascript.js"],"names":["mod","CodeMirror","defineMode","config","cssMode","mimeModes","propertyKeywords","colorKeywords","valueKeywords","fontProperties","tokenRegexp","words","RegExp","join","word","keywords","keywordsRegexp","operators","opRegexp","pseudoElementsRegexp","isEndLine","stream","peek","match","urlTokens","state","ch","next","tokenizer","tokenBase","eatSpace","buildStringTokenizer","comment","indentation","multiLine","sol","skipTo","skipToEnd","quote","greedy","stringTokenizer","nextChar","peekChar","previousChar","string","charAt","pos","endingString","cursorHalf","buildInterpolationTokenizer","currentTokenizer","indent","indentCount","lastScopeOffset","scopes","offset","currentOffset","indentUnit","unshift","dedent","length","shift","eatWhile","current","toLowerCase","hasOwnProperty","prevProp","prop","tokenLexer","style","startOfToken","withCurrentIndent","newScopes","i","scope","push","startState","type","definedVars","definedMixins","token","lastToken","content","blockCommentStart","blockCommentEnd","lineComment","fold","defineMIME","WRAP_CLASS","BACK_CLASS","GUTT_CLASS","clearActiveLines","cm","activeLines","removeLineClass","sameArray","a","b","updateActiveLines","ranges","active","range","option","getOption","nonEmpty","anchor","line","head","empty","getLineHandleVisualStart","operation","addLineClass","selectionChange","sel","defineOption","val","old","prev","Init","off","listSelections","on","render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","attrs","code","cmOptions","onCmReady","onCmFocus","onCmCodeChange","theme","_v","staticRenderFns","name","props","String","default","localStorage","getItem","data","window","innerWidth","mode","tabSize","styleActiveLine","styleSelectedText","matchBrackets","showCursorWhenSelecting","watch","setOption","newVal","mounted","methods","setSize","newCode","component","KEYWORD","DOCTYPE","ID","CLASS","ATTRS_NEST","jsMode","getMode","State","javaScriptLine","javaScriptLineExcludesColon","javaScriptArguments","javaScriptArgumentsDepth","isInterpolating","interpolationNesting","jsState","restOfLine","isIncludeFiltered","isEach","lastTag","scriptType","isAttrs","attrsNest","inAttributeName","attributeIsType","attrValue","indentOf","Infinity","indentToken","innerMode","innerState","innerModeForLine","javaScript","tok","eol","yieldStatement","doctype","interpolation","interpolationContinued","caseStatement","when","defaultStatement","extendsStatement","append","prepend","block","include","includeFiltered","includeFilteredContinued","filter","mixin","call","mixinCallAfter","callArguments","conditional","each","eachContinued","whileStatement","tag","captures","innerModes","substring","setInnerMode","id","className","attrsContinued","pop","eat","trim","toString","Function","replace","backUp","ex","attributesBlock","colon","text","dot","indexOf","fail","force","hideFirstChars","copyState","copy","nextToken","prototype","res","slice","tagLanguages","script","template","parserConfig","mustacheOverlay","overlayMode","backdrop","tags","noOptions","nonWS","Pos","cmp","cmpPos","firstNonWS","str","found","search","probablyInsideString","test","getTokenTypeAt","useInnerComments","getModeAt","commands","toggleComment","defineExtension","options","minLine","from","to","uncomment","self","firstLine","getLine","commentString","end","Math","min","lastLine","pad","padding","blankLines","commentBlankLines","baseString","whitespace","cut","replaceRange","fullLines","blockComment","startString","endString","lastLineHasText","lead","blockCommentLead","atCursor","getCursor","somethingSelected","setSelection","didSomething","start","lineString","lines","endPos","startLine","open","endLine","close","insideStart","insideEnd","getRange","lastStart","lastIndexOf","firstEnd","almostLastStart","openEnd","foundEnd","ensureState","states","Error","toRegex","caret","flags","ignoreCase","unicode","source","asToken","apply","result","Rule","regex","tokenFunction","pending","pend","local","endToken","localState","m","endScan","exec","index","curState","rule","matches","stack","enterLocalMode","j","spec","pers","persistent","p","persistentStates","lState","forceEnd","arr","indentFunction","meta","textAfter","dontIndentStates","Pass","rules","scan","dedentIfLineStart","defineSimpleMode","simpleMode","states_","hasIndentation","list","orig","s","override","indentUnitString","tagKeywords","keySet","tagKeywords_","tagVariablesRegexp","propertyKeywords_","nonStandardPropertyKeywords","nonStandardPropertyKeywords_","valueKeywords_","colorKeywords_","documentTypes","documentTypes_","documentTypesRegexp","wordRegexp","mediaFeatures","mediaFeatures_","mediaTypes","mediaTypes_","fontProperties_","operatorsRegexp","wordOperatorKeywordsRegexp","wordOperatorKeywords_","blockKeywords","blockKeywords_","vendorPrefixesRegexp","commonAtoms","commonAtoms_","firstWordMatch","context","firstWord","tokenize","tokenCComment","tokenString","tokenParenthesized","wordIsTag","maybeEnd","escaped","Context","pushContext","popContext","currentIndent","contextIndent","pass","popAndPass","n","wordIsProperty","wordIsBlock","wordIsVendorPrefix","wordAsValue","wordLC","typeIsBlock","endOfLine","typeIsInterpolation","typeIsPseudo","startOfLine","escapeRegExp","firstWordOfLine","re","parens","vendorPrefixes","pseudo","atBlock","atBlock_parens","keyframes","extend","variableName","base","cx","lineFirstWord","lineIndent","prevLineFirstWord","prevLineIndent","electricChars","blockCommentContinue","commonDef_","hintWords","concat","sort","array","keys","registerHelper","inline","resolveMode","tokenHooks","mediaValueKeywords","counterDescriptors","allowNested","supportsAtComponent","highlightNonStandardPropertyKeywords","ret","tp","stateArg","top","_stream","max","mediaValueKeywords_","counterDescriptors_","allWords","helperType","ie_lt8","navigator","userAgent","document","documentMode","matching","bracketRegex","findMatchingBracket","where","getLineHandle","afterCursor","getWrapperElement","dir","strict","scanForBracket","forward","maxScanLen","maxScanLineLength","maxScanLines","lineEnd","lineNo","undefined","autoclear","maxHighlightLen","maxHighlightLineLength","highlightNonMatching","marks","markText","focused","focus","clear","setTimeout","doMatchBrackets","currentlyHighlighted","clearHighlighted","oldConfig","onCursorActivity","markedSelection","update","onChange","markedSelectionStyle","reset","CHUNK_SIZE","coverRange","addAt","cls","atEnd","mark","splice","coverStart","find","coverEnd","overlay","combine","basePos","baseCur","overlayPos","overlayCur","streamSeen","combineTokens","blankLine","baseToken","overlayToken","conf","parserConf","ERRORCLASS","delimiters","identifiers","atProp","wordOperators","indentKeywords","commonKeywords","stringPrefixes","regexPrefixes","commonConstants","constants","align","scopeOffset","lineOffset","longComment","floatLiteral","intLiteral","tokenFactory","delimiter","singleline","outclass","singleLineStringErrors","alignOffset","column","_indent","matched","delimiter_index","external","basecolumn","fillAlign","closer","closes","htmlConfig","autoSelfClosers","implicitlyClosed","contextGrabbers","doNotIndent","allowUnquoted","allowMissing","caseFold","xmlConfig","allowMissingTagName","editorConf","config_","setStyle","defaults","htmlMode","inText","chain","parser","ok","inBlock","inTag","baseState","tagName","tagStart","inAttribute","stringStartCol","closure","isInAttribute","terminator","depth","lower","indented","noIndent","maybePopContext","nextTagName","parentTagName","tagNameState","closeTagNameState","attrState","matchClosing","closeState","closeStateErr","attrEqState","attrValueState","attrContinuedState","isInText","baseIndent","fullLine","multilineTagIndentPastTag","multilineTagIndentFactor","alignCDATA","tagAfter","grabbers","electricInput","configuration","skipAttribute","xmlCurrentTag","xmlCurrentContext","reverse","defaultTags","maybeBackup","pat","cur","attrRegexpCache","getAttrRegexp","attr","regexp","getAttrValue","getTagRegexp","anchored","addTags","dest","findMatchingMode","tagInfo","tagText","configTags","configScript","scriptTypes","html","htmlState","modeSpec","endTagA","endTag","localMode","handlebars_raw","handlebars","dash_comment","multiplexingMode","parseDelimiters","outer","others","Array","arguments","pattern","returnEnd","innerActive","inner","startingInner","curInner","oldContent","delimStyle","innerToken","innerStyle","cutOff","other","outerIndent","possibleOuterIndent","outerToken","statementIndent","jsonldMode","jsonld","jsonMode","json","trackScope","isTS","typescript","wordRE","wordCharacters","kw","A","B","C","D","operator","atom","isOperatorChar","isJsonldKeyword","readRegexp","inSet","cont","tokenComment","expressionAllowed","tokenQuasi","lexical","lastType","propertyIsEnumerable","brackets","findFatArrow","fatArrowAt","arrow","sawSomething","bracket","atomicTypes","JSLexical","info","inScope","varname","v","localVars","vars","parseJS","cc","marked","combinator","expression","statement","lex","inList","register","newContext","registerVarScoped","Var","globalVars","isModifier","defaultVars","pushcontext","pushblockcontext","popcontext","pushlex","poplex","expect","wanted","exp","value","vardef","parenExpr","maybeexpression","maybeelse","functiondef","forspec","enumdef","typename","typeexpr","maybelabel","maybeCatchBinding","afterExport","afterImport","funarg","expressionInner","expressionNoComma","noComma","body","arrowBodyNoComma","arrowBody","commasep","maybeop","maybeoperatorNoComma","maybeoperatorComma","classExpression","arrayLiteral","contCommasep","objprop","quasi","maybeTarget","me","expr","property","continueQuasi","targetNoComma","target","maybeTypeArgs","_","getterSetter","afterprop","maybetype","what","sep","proceed","maybetypeOrIn","mayberettype","isKW","afterType","typeprops","typearg","maybeReturnType","quasiType","typeprop","functiondecl","continueQuasiType","typeparam","maybeTypeDefault","maybeAssign","vardefCont","eltpattern","proppattern","_type","forspec1","forspec2","classNameAfter","classBody","classfield","isInterface","maybeFrom","exportField","importSpec","maybeMoreImports","maybeAs","enummember","isContinuedStatement","firstChar","c","closing","doubleIndentSwitch","closeBrackets","skipExpression","StringStream"],"mappings":"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","file":"js/chunk-64d01f97.3363bcf3.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"sass\", function(config) {\n var cssMode = CodeMirror.mimeModes[\"text/css\"];\n var propertyKeywords = cssMode.propertyKeywords || {},\n colorKeywords = cssMode.colorKeywords || {},\n valueKeywords = cssMode.valueKeywords || {},\n fontProperties = cssMode.fontProperties || {};\n\n function tokenRegexp(words) {\n return new RegExp(\"^\" + words.join(\"|\"));\n }\n\n var keywords = [\"true\", \"false\", \"null\", \"auto\"];\n var keywordsRegexp = new RegExp(\"^\" + keywords.join(\"|\"));\n\n var operators = [\"\\\\(\", \"\\\\)\", \"=\", \">\", \"<\", \"==\", \">=\", \"<=\", \"\\\\+\", \"-\",\n \"\\\\!=\", \"/\", \"\\\\*\", \"%\", \"and\", \"or\", \"not\", \";\",\"\\\\{\",\"\\\\}\",\":\"];\n var opRegexp = tokenRegexp(operators);\n\n var pseudoElementsRegexp = /^::?[a-zA-Z_][\\w\\-]*/;\n\n var word;\n\n function isEndLine(stream) {\n return !stream.peek() || stream.match(/\\s+$/, false);\n }\n\n function urlTokens(stream, state) {\n var ch = stream.peek();\n\n if (ch === \")\") {\n stream.next();\n state.tokenizer = tokenBase;\n return \"operator\";\n } else if (ch === \"(\") {\n stream.next();\n stream.eatSpace();\n\n return \"operator\";\n } else if (ch === \"'\" || ch === '\"') {\n state.tokenizer = buildStringTokenizer(stream.next());\n return \"string\";\n } else {\n state.tokenizer = buildStringTokenizer(\")\", false);\n return \"string\";\n }\n }\n function comment(indentation, multiLine) {\n return function(stream, state) {\n if (stream.sol() && stream.indentation() <= indentation) {\n state.tokenizer = tokenBase;\n return tokenBase(stream, state);\n }\n\n if (multiLine && stream.skipTo(\"*/\")) {\n stream.next();\n stream.next();\n state.tokenizer = tokenBase;\n } else {\n stream.skipToEnd();\n }\n\n return \"comment\";\n };\n }\n\n function buildStringTokenizer(quote, greedy) {\n if (greedy == null) { greedy = true; }\n\n function stringTokenizer(stream, state) {\n var nextChar = stream.next();\n var peekChar = stream.peek();\n var previousChar = stream.string.charAt(stream.pos-2);\n\n var endingString = ((nextChar !== \"\\\\\" && peekChar === quote) || (nextChar === quote && previousChar !== \"\\\\\"));\n\n if (endingString) {\n if (nextChar !== quote && greedy) { stream.next(); }\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n state.tokenizer = tokenBase;\n return \"string\";\n } else if (nextChar === \"#\" && peekChar === \"{\") {\n state.tokenizer = buildInterpolationTokenizer(stringTokenizer);\n stream.next();\n return \"operator\";\n } else {\n return \"string\";\n }\n }\n\n return stringTokenizer;\n }\n\n function buildInterpolationTokenizer(currentTokenizer) {\n return function(stream, state) {\n if (stream.peek() === \"}\") {\n stream.next();\n state.tokenizer = currentTokenizer;\n return \"operator\";\n } else {\n return tokenBase(stream, state);\n }\n };\n }\n\n function indent(state) {\n if (state.indentCount == 0) {\n state.indentCount++;\n var lastScopeOffset = state.scopes[0].offset;\n var currentOffset = lastScopeOffset + config.indentUnit;\n state.scopes.unshift({ offset:currentOffset });\n }\n }\n\n function dedent(state) {\n if (state.scopes.length == 1) return;\n\n state.scopes.shift();\n }\n\n function tokenBase(stream, state) {\n var ch = stream.peek();\n\n // Comment\n if (stream.match(\"/*\")) {\n state.tokenizer = comment(stream.indentation(), true);\n return state.tokenizer(stream, state);\n }\n if (stream.match(\"//\")) {\n state.tokenizer = comment(stream.indentation(), false);\n return state.tokenizer(stream, state);\n }\n\n // Interpolation\n if (stream.match(\"#{\")) {\n state.tokenizer = buildInterpolationTokenizer(tokenBase);\n return \"operator\";\n }\n\n // Strings\n if (ch === '\"' || ch === \"'\") {\n stream.next();\n state.tokenizer = buildStringTokenizer(ch);\n return \"string\";\n }\n\n if(!state.cursorHalf){// state.cursorHalf === 0\n // first half i.e. before : for key-value pairs\n // including selectors\n\n if (ch === \"-\") {\n if (stream.match(/^-\\w+-/)) {\n return \"meta\";\n }\n }\n\n if (ch === \".\") {\n stream.next();\n if (stream.match(/^[\\w-]+/)) {\n indent(state);\n return \"qualifier\";\n } else if (stream.peek() === \"#\") {\n indent(state);\n return \"tag\";\n }\n }\n\n if (ch === \"#\") {\n stream.next();\n // ID selectors\n if (stream.match(/^[\\w-]+/)) {\n indent(state);\n return \"builtin\";\n }\n if (stream.peek() === \"#\") {\n indent(state);\n return \"tag\";\n }\n }\n\n // Variables\n if (ch === \"$\") {\n stream.next();\n stream.eatWhile(/[\\w-]/);\n return \"variable-2\";\n }\n\n // Numbers\n if (stream.match(/^-?[0-9\\.]+/))\n return \"number\";\n\n // Units\n if (stream.match(/^(px|em|in)\\b/))\n return \"unit\";\n\n if (stream.match(keywordsRegexp))\n return \"keyword\";\n\n if (stream.match(/^url/) && stream.peek() === \"(\") {\n state.tokenizer = urlTokens;\n return \"atom\";\n }\n\n if (ch === \"=\") {\n // Match shortcut mixin definition\n if (stream.match(/^=[\\w-]+/)) {\n indent(state);\n return \"meta\";\n }\n }\n\n if (ch === \"+\") {\n // Match shortcut mixin definition\n if (stream.match(/^\\+[\\w-]+/)){\n return \"variable-3\";\n }\n }\n\n if(ch === \"@\"){\n if(stream.match('@extend')){\n if(!stream.match(/\\s*[\\w]/))\n dedent(state);\n }\n }\n\n\n // Indent Directives\n if (stream.match(/^@(else if|if|media|else|for|each|while|mixin|function)/)) {\n indent(state);\n return \"def\";\n }\n\n // Other Directives\n if (ch === \"@\") {\n stream.next();\n stream.eatWhile(/[\\w-]/);\n return \"def\";\n }\n\n if (stream.eatWhile(/[\\w-]/)){\n if(stream.match(/ *: *[\\w-\\+\\$#!\\(\"']/,false)){\n word = stream.current().toLowerCase();\n var prop = state.prevProp + \"-\" + word;\n if (propertyKeywords.hasOwnProperty(prop)) {\n return \"property\";\n } else if (propertyKeywords.hasOwnProperty(word)) {\n state.prevProp = word;\n return \"property\";\n } else if (fontProperties.hasOwnProperty(word)) {\n return \"property\";\n }\n return \"tag\";\n }\n else if(stream.match(/ *:/,false)){\n indent(state);\n state.cursorHalf = 1;\n state.prevProp = stream.current().toLowerCase();\n return \"property\";\n }\n else if(stream.match(/ *,/,false)){\n return \"tag\";\n }\n else{\n indent(state);\n return \"tag\";\n }\n }\n\n if(ch === \":\"){\n if (stream.match(pseudoElementsRegexp)){ // could be a pseudo-element\n return \"variable-3\";\n }\n stream.next();\n state.cursorHalf=1;\n return \"operator\";\n }\n\n } // cursorHalf===0 ends here\n else{\n\n if (ch === \"#\") {\n stream.next();\n // Hex numbers\n if (stream.match(/[0-9a-fA-F]{6}|[0-9a-fA-F]{3}/)){\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"number\";\n }\n }\n\n // Numbers\n if (stream.match(/^-?[0-9\\.]+/)){\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"number\";\n }\n\n // Units\n if (stream.match(/^(px|em|in)\\b/)){\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"unit\";\n }\n\n if (stream.match(keywordsRegexp)){\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"keyword\";\n }\n\n if (stream.match(/^url/) && stream.peek() === \"(\") {\n state.tokenizer = urlTokens;\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"atom\";\n }\n\n // Variables\n if (ch === \"$\") {\n stream.next();\n stream.eatWhile(/[\\w-]/);\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"variable-2\";\n }\n\n // bang character for !important, !default, etc.\n if (ch === \"!\") {\n stream.next();\n state.cursorHalf = 0;\n return stream.match(/^[\\w]+/) ? \"keyword\": \"operator\";\n }\n\n if (stream.match(opRegexp)){\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n return \"operator\";\n }\n\n // attributes\n if (stream.eatWhile(/[\\w-]/)) {\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n }\n word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word)) {\n return \"atom\";\n } else if (colorKeywords.hasOwnProperty(word)) {\n return \"keyword\";\n } else if (propertyKeywords.hasOwnProperty(word)) {\n state.prevProp = stream.current().toLowerCase();\n return \"property\";\n } else {\n return \"tag\";\n }\n }\n\n //stream.eatSpace();\n if (isEndLine(stream)) {\n state.cursorHalf = 0;\n return null;\n }\n\n } // else ends here\n\n if (stream.match(opRegexp))\n return \"operator\";\n\n // If we haven't returned by now, we move 1 character\n // and return an error\n stream.next();\n return null;\n }\n\n function tokenLexer(stream, state) {\n if (stream.sol()) state.indentCount = 0;\n var style = state.tokenizer(stream, state);\n var current = stream.current();\n\n if (current === \"@return\" || current === \"}\"){\n dedent(state);\n }\n\n if (style !== null) {\n var startOfToken = stream.pos - current.length;\n\n var withCurrentIndent = startOfToken + (config.indentUnit * state.indentCount);\n\n var newScopes = [];\n\n for (var i = 0; i < state.scopes.length; i++) {\n var scope = state.scopes[i];\n\n if (scope.offset <= withCurrentIndent)\n newScopes.push(scope);\n }\n\n state.scopes = newScopes;\n }\n\n\n return style;\n }\n\n return {\n startState: function() {\n return {\n tokenizer: tokenBase,\n scopes: [{offset: 0, type: \"sass\"}],\n indentCount: 0,\n cursorHalf: 0, // cursor half tells us if cursor lies after (1)\n // or before (0) colon (well... more or less)\n definedVars: [],\n definedMixins: []\n };\n },\n token: function(stream, state) {\n var style = tokenLexer(stream, state);\n\n state.lastToken = { style: style, content: stream.current() };\n\n return style;\n },\n\n indent: function(state) {\n return state.scopes[0].offset;\n },\n\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n lineComment: \"//\",\n fold: \"indent\"\n };\n}, \"css\");\n\nCodeMirror.defineMIME(\"text/x-sass\", \"sass\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n var WRAP_CLASS = \"CodeMirror-activeline\";\n var BACK_CLASS = \"CodeMirror-activeline-background\";\n var GUTT_CLASS = \"CodeMirror-activeline-gutter\";\n\n CodeMirror.defineOption(\"styleActiveLine\", false, function(cm, val, old) {\n var prev = old == CodeMirror.Init ? false : old;\n if (val == prev) return\n if (prev) {\n cm.off(\"beforeSelectionChange\", selectionChange);\n clearActiveLines(cm);\n delete cm.state.activeLines;\n }\n if (val) {\n cm.state.activeLines = [];\n updateActiveLines(cm, cm.listSelections());\n cm.on(\"beforeSelectionChange\", selectionChange);\n }\n });\n\n function clearActiveLines(cm) {\n for (var i = 0; i < cm.state.activeLines.length; i++) {\n cm.removeLineClass(cm.state.activeLines[i], \"wrap\", WRAP_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"background\", BACK_CLASS);\n cm.removeLineClass(cm.state.activeLines[i], \"gutter\", GUTT_CLASS);\n }\n }\n\n function sameArray(a, b) {\n if (a.length != b.length) return false;\n for (var i = 0; i < a.length; i++)\n if (a[i] != b[i]) return false;\n return true;\n }\n\n function updateActiveLines(cm, ranges) {\n var active = [];\n for (var i = 0; i < ranges.length; i++) {\n var range = ranges[i];\n var option = cm.getOption(\"styleActiveLine\");\n if (typeof option == \"object\" && option.nonEmpty ? range.anchor.line != range.head.line : !range.empty())\n continue\n var line = cm.getLineHandleVisualStart(range.head.line);\n if (active[active.length - 1] != line) active.push(line);\n }\n if (sameArray(cm.state.activeLines, active)) return;\n cm.operation(function() {\n clearActiveLines(cm);\n for (var i = 0; i < active.length; i++) {\n cm.addLineClass(active[i], \"wrap\", WRAP_CLASS);\n cm.addLineClass(active[i], \"background\", BACK_CLASS);\n cm.addLineClass(active[i], \"gutter\", GUTT_CLASS);\n }\n cm.state.activeLines = active;\n });\n }\n\n function selectionChange(cm, sel) {\n updateActiveLines(cm, sel.ranges);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"window\"},[_c('codemirror',{ref:\"myCm\",staticClass:\"code\",attrs:{\"value\":_vm.code,\"options\":_vm.cmOptions},on:{\"ready\":_vm.onCmReady,\"focus\":_vm.onCmFocus,\"input\":_vm.onCmCodeChange}}),(_vm.theme === 'dark')?_c('div',{staticClass:\"right caption\"},[_vm._v(\"\\n Ultimate Dark Neo code theme for\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://marketplace.visualstudio.com/items?itemName=rubjo.ultimate-dark-neo\"}},[_vm._v(\"VS Code\")]),_vm._v(\"\\n or\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://packagecontrol.io/packages/Ultimate%20Dark%20Neo\"}},[_vm._v(\"Sublime Text\")])]):_c('div',{staticClass:\"right caption\"},[_vm._v(\"\\n Based on\\n \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"https://github.com/chriskempson/base16\"}},[_vm._v(\"Base 16 Light\")]),_vm._v(\"\\n colour scheme by Chris Kempson\\n \")])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default \"\\n\\n\\n\\n\\n\"","export default \"// Ask for a user name until API returns a valid user\\nasync function getUser () {\\n let user\\n while (true) {\\n let name = prompt('Enter a user name', 'rubjo')\\n try {\\n user = await loadJson(`https://my.api.com/users/${name}`)\\n break // No error, exit loop and proceed\\n } catch (err) {\\n if (err.response && err.response.status === 404) {\\n alert(`User \\\"${name}\\\" not found, please reenter.`)\\n } else {\\n throw err // Unknown error, rethrow it\\n }\\n }\\n }\\n return user\\n}\\n\"","\n\n\n.window {\n position: relative;\n z-index: 0;\n}\n\n::v-deep .CodeMirror {\n background: transparent;\n}\n\n.code {\n height: calc(100% - 34px);\n font-size: calc(14px + 0.5vw);\n line-height: 1.5em;\n}\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CodeView.vue?vue&type=template&id=06e9bd12&scoped=true&\"\nimport script from \"./CodeView.vue?vue&type=script&lang=js&\"\nexport * from \"./CodeView.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CodeView.vue?vue&type=style&index=0&id=06e9bd12&scoped=true&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06e9bd12\",\n null\n \n)\n\nexport default component.exports","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../javascript/javascript\"), require(\"../css/css\"), require(\"../htmlmixed/htmlmixed\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../javascript/javascript\", \"../css/css\", \"../htmlmixed/htmlmixed\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"pug\", function (config) {\n // token types\n var KEYWORD = 'keyword';\n var DOCTYPE = 'meta';\n var ID = 'builtin';\n var CLASS = 'qualifier';\n\n var ATTRS_NEST = {\n '{': '}',\n '(': ')',\n '[': ']'\n };\n\n var jsMode = CodeMirror.getMode(config, 'javascript');\n\n function State() {\n this.javaScriptLine = false;\n this.javaScriptLineExcludesColon = false;\n\n this.javaScriptArguments = false;\n this.javaScriptArgumentsDepth = 0;\n\n this.isInterpolating = false;\n this.interpolationNesting = 0;\n\n this.jsState = CodeMirror.startState(jsMode);\n\n this.restOfLine = '';\n\n this.isIncludeFiltered = false;\n this.isEach = false;\n\n this.lastTag = '';\n this.scriptType = '';\n\n // Attributes Mode\n this.isAttrs = false;\n this.attrsNest = [];\n this.inAttributeName = true;\n this.attributeIsType = false;\n this.attrValue = '';\n\n // Indented Mode\n this.indentOf = Infinity;\n this.indentToken = '';\n\n this.innerMode = null;\n this.innerState = null;\n\n this.innerModeForLine = false;\n }\n /**\n * Safely copy a state\n *\n * @return {State}\n */\n State.prototype.copy = function () {\n var res = new State();\n res.javaScriptLine = this.javaScriptLine;\n res.javaScriptLineExcludesColon = this.javaScriptLineExcludesColon;\n res.javaScriptArguments = this.javaScriptArguments;\n res.javaScriptArgumentsDepth = this.javaScriptArgumentsDepth;\n res.isInterpolating = this.isInterpolating;\n res.interpolationNesting = this.interpolationNesting;\n\n res.jsState = CodeMirror.copyState(jsMode, this.jsState);\n\n res.innerMode = this.innerMode;\n if (this.innerMode && this.innerState) {\n res.innerState = CodeMirror.copyState(this.innerMode, this.innerState);\n }\n\n res.restOfLine = this.restOfLine;\n\n res.isIncludeFiltered = this.isIncludeFiltered;\n res.isEach = this.isEach;\n res.lastTag = this.lastTag;\n res.scriptType = this.scriptType;\n res.isAttrs = this.isAttrs;\n res.attrsNest = this.attrsNest.slice();\n res.inAttributeName = this.inAttributeName;\n res.attributeIsType = this.attributeIsType;\n res.attrValue = this.attrValue;\n res.indentOf = this.indentOf;\n res.indentToken = this.indentToken;\n\n res.innerModeForLine = this.innerModeForLine;\n\n return res;\n };\n\n function javaScript(stream, state) {\n if (stream.sol()) {\n // if javaScriptLine was set at end of line, ignore it\n state.javaScriptLine = false;\n state.javaScriptLineExcludesColon = false;\n }\n if (state.javaScriptLine) {\n if (state.javaScriptLineExcludesColon && stream.peek() === ':') {\n state.javaScriptLine = false;\n state.javaScriptLineExcludesColon = false;\n return;\n }\n var tok = jsMode.token(stream, state.jsState);\n if (stream.eol()) state.javaScriptLine = false;\n return tok || true;\n }\n }\n function javaScriptArguments(stream, state) {\n if (state.javaScriptArguments) {\n if (state.javaScriptArgumentsDepth === 0 && stream.peek() !== '(') {\n state.javaScriptArguments = false;\n return;\n }\n if (stream.peek() === '(') {\n state.javaScriptArgumentsDepth++;\n } else if (stream.peek() === ')') {\n state.javaScriptArgumentsDepth--;\n }\n if (state.javaScriptArgumentsDepth === 0) {\n state.javaScriptArguments = false;\n return;\n }\n\n var tok = jsMode.token(stream, state.jsState);\n return tok || true;\n }\n }\n\n function yieldStatement(stream) {\n if (stream.match(/^yield\\b/)) {\n return 'keyword';\n }\n }\n\n function doctype(stream) {\n if (stream.match(/^(?:doctype) *([^\\n]+)?/)) {\n return DOCTYPE;\n }\n }\n\n function interpolation(stream, state) {\n if (stream.match('#{')) {\n state.isInterpolating = true;\n state.interpolationNesting = 0;\n return 'punctuation';\n }\n }\n\n function interpolationContinued(stream, state) {\n if (state.isInterpolating) {\n if (stream.peek() === '}') {\n state.interpolationNesting--;\n if (state.interpolationNesting < 0) {\n stream.next();\n state.isInterpolating = false;\n return 'punctuation';\n }\n } else if (stream.peek() === '{') {\n state.interpolationNesting++;\n }\n return jsMode.token(stream, state.jsState) || true;\n }\n }\n\n function caseStatement(stream, state) {\n if (stream.match(/^case\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function when(stream, state) {\n if (stream.match(/^when\\b/)) {\n state.javaScriptLine = true;\n state.javaScriptLineExcludesColon = true;\n return KEYWORD;\n }\n }\n\n function defaultStatement(stream) {\n if (stream.match(/^default\\b/)) {\n return KEYWORD;\n }\n }\n\n function extendsStatement(stream, state) {\n if (stream.match(/^extends?\\b/)) {\n state.restOfLine = 'string';\n return KEYWORD;\n }\n }\n\n function append(stream, state) {\n if (stream.match(/^append\\b/)) {\n state.restOfLine = 'variable';\n return KEYWORD;\n }\n }\n function prepend(stream, state) {\n if (stream.match(/^prepend\\b/)) {\n state.restOfLine = 'variable';\n return KEYWORD;\n }\n }\n function block(stream, state) {\n if (stream.match(/^block\\b *(?:(prepend|append)\\b)?/)) {\n state.restOfLine = 'variable';\n return KEYWORD;\n }\n }\n\n function include(stream, state) {\n if (stream.match(/^include\\b/)) {\n state.restOfLine = 'string';\n return KEYWORD;\n }\n }\n\n function includeFiltered(stream, state) {\n if (stream.match(/^include:([a-zA-Z0-9\\-]+)/, false) && stream.match('include')) {\n state.isIncludeFiltered = true;\n return KEYWORD;\n }\n }\n\n function includeFilteredContinued(stream, state) {\n if (state.isIncludeFiltered) {\n var tok = filter(stream, state);\n state.isIncludeFiltered = false;\n state.restOfLine = 'string';\n return tok;\n }\n }\n\n function mixin(stream, state) {\n if (stream.match(/^mixin\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function call(stream, state) {\n if (stream.match(/^\\+([-\\w]+)/)) {\n if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n state.javaScriptArguments = true;\n state.javaScriptArgumentsDepth = 0;\n }\n return 'variable';\n }\n if (stream.match('+#{', false)) {\n stream.next();\n state.mixinCallAfter = true;\n return interpolation(stream, state);\n }\n }\n function callArguments(stream, state) {\n if (state.mixinCallAfter) {\n state.mixinCallAfter = false;\n if (!stream.match(/^\\( *[-\\w]+ *=/, false)) {\n state.javaScriptArguments = true;\n state.javaScriptArgumentsDepth = 0;\n }\n return true;\n }\n }\n\n function conditional(stream, state) {\n if (stream.match(/^(if|unless|else if|else)\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function each(stream, state) {\n if (stream.match(/^(- *)?(each|for)\\b/)) {\n state.isEach = true;\n return KEYWORD;\n }\n }\n function eachContinued(stream, state) {\n if (state.isEach) {\n if (stream.match(/^ in\\b/)) {\n state.javaScriptLine = true;\n state.isEach = false;\n return KEYWORD;\n } else if (stream.sol() || stream.eol()) {\n state.isEach = false;\n } else if (stream.next()) {\n while (!stream.match(/^ in\\b/, false) && stream.next());\n return 'variable';\n }\n }\n }\n\n function whileStatement(stream, state) {\n if (stream.match(/^while\\b/)) {\n state.javaScriptLine = true;\n return KEYWORD;\n }\n }\n\n function tag(stream, state) {\n var captures;\n if (captures = stream.match(/^(\\w(?:[-:\\w]*\\w)?)\\/?/)) {\n state.lastTag = captures[1].toLowerCase();\n if (state.lastTag === 'script') {\n state.scriptType = 'application/javascript';\n }\n return 'tag';\n }\n }\n\n function filter(stream, state) {\n if (stream.match(/^:([\\w\\-]+)/)) {\n var innerMode;\n if (config && config.innerModes) {\n innerMode = config.innerModes(stream.current().substring(1));\n }\n if (!innerMode) {\n innerMode = stream.current().substring(1);\n }\n if (typeof innerMode === 'string') {\n innerMode = CodeMirror.getMode(config, innerMode);\n }\n setInnerMode(stream, state, innerMode);\n return 'atom';\n }\n }\n\n function code(stream, state) {\n if (stream.match(/^(!?=|-)/)) {\n state.javaScriptLine = true;\n return 'punctuation';\n }\n }\n\n function id(stream) {\n if (stream.match(/^#([\\w-]+)/)) {\n return ID;\n }\n }\n\n function className(stream) {\n if (stream.match(/^\\.([\\w-]+)/)) {\n return CLASS;\n }\n }\n\n function attrs(stream, state) {\n if (stream.peek() == '(') {\n stream.next();\n state.isAttrs = true;\n state.attrsNest = [];\n state.inAttributeName = true;\n state.attrValue = '';\n state.attributeIsType = false;\n return 'punctuation';\n }\n }\n\n function attrsContinued(stream, state) {\n if (state.isAttrs) {\n if (ATTRS_NEST[stream.peek()]) {\n state.attrsNest.push(ATTRS_NEST[stream.peek()]);\n }\n if (state.attrsNest[state.attrsNest.length - 1] === stream.peek()) {\n state.attrsNest.pop();\n } else if (stream.eat(')')) {\n state.isAttrs = false;\n return 'punctuation';\n }\n if (state.inAttributeName && stream.match(/^[^=,\\)!]+/)) {\n if (stream.peek() === '=' || stream.peek() === '!') {\n state.inAttributeName = false;\n state.jsState = CodeMirror.startState(jsMode);\n if (state.lastTag === 'script' && stream.current().trim().toLowerCase() === 'type') {\n state.attributeIsType = true;\n } else {\n state.attributeIsType = false;\n }\n }\n return 'attribute';\n }\n\n var tok = jsMode.token(stream, state.jsState);\n if (state.attributeIsType && tok === 'string') {\n state.scriptType = stream.current().toString();\n }\n if (state.attrsNest.length === 0 && (tok === 'string' || tok === 'variable' || tok === 'keyword')) {\n try {\n Function('', 'var x ' + state.attrValue.replace(/,\\s*$/, '').replace(/^!/, ''));\n state.inAttributeName = true;\n state.attrValue = '';\n stream.backUp(stream.current().length);\n return attrsContinued(stream, state);\n } catch (ex) {\n //not the end of an attribute\n }\n }\n state.attrValue += stream.current();\n return tok || true;\n }\n }\n\n function attributesBlock(stream, state) {\n if (stream.match(/^&attributes\\b/)) {\n state.javaScriptArguments = true;\n state.javaScriptArgumentsDepth = 0;\n return 'keyword';\n }\n }\n\n function indent(stream) {\n if (stream.sol() && stream.eatSpace()) {\n return 'indent';\n }\n }\n\n function comment(stream, state) {\n if (stream.match(/^ *\\/\\/(-)?([^\\n]*)/)) {\n state.indentOf = stream.indentation();\n state.indentToken = 'comment';\n return 'comment';\n }\n }\n\n function colon(stream) {\n if (stream.match(/^: */)) {\n return 'colon';\n }\n }\n\n function text(stream, state) {\n if (stream.match(/^(?:\\| ?| )([^\\n]+)/)) {\n return 'string';\n }\n if (stream.match(/^(<[^\\n]*)/, false)) {\n // html string\n setInnerMode(stream, state, 'htmlmixed');\n state.innerModeForLine = true;\n return innerMode(stream, state, true);\n }\n }\n\n function dot(stream, state) {\n if (stream.eat('.')) {\n var innerMode = null;\n if (state.lastTag === 'script' && state.scriptType.toLowerCase().indexOf('javascript') != -1) {\n innerMode = state.scriptType.toLowerCase().replace(/\"|'/g, '');\n } else if (state.lastTag === 'style') {\n innerMode = 'css';\n }\n setInnerMode(stream, state, innerMode);\n return 'dot';\n }\n }\n\n function fail(stream) {\n stream.next();\n return null;\n }\n\n\n function setInnerMode(stream, state, mode) {\n mode = CodeMirror.mimeModes[mode] || mode;\n mode = config.innerModes ? config.innerModes(mode) || mode : mode;\n mode = CodeMirror.mimeModes[mode] || mode;\n mode = CodeMirror.getMode(config, mode);\n state.indentOf = stream.indentation();\n\n if (mode && mode.name !== 'null') {\n state.innerMode = mode;\n } else {\n state.indentToken = 'string';\n }\n }\n function innerMode(stream, state, force) {\n if (stream.indentation() > state.indentOf || (state.innerModeForLine && !stream.sol()) || force) {\n if (state.innerMode) {\n if (!state.innerState) {\n state.innerState = state.innerMode.startState ? CodeMirror.startState(state.innerMode, stream.indentation()) : {};\n }\n return stream.hideFirstChars(state.indentOf + 2, function () {\n return state.innerMode.token(stream, state.innerState) || true;\n });\n } else {\n stream.skipToEnd();\n return state.indentToken;\n }\n } else if (stream.sol()) {\n state.indentOf = Infinity;\n state.indentToken = null;\n state.innerMode = null;\n state.innerState = null;\n }\n }\n function restOfLine(stream, state) {\n if (stream.sol()) {\n // if restOfLine was set at end of line, ignore it\n state.restOfLine = '';\n }\n if (state.restOfLine) {\n stream.skipToEnd();\n var tok = state.restOfLine;\n state.restOfLine = '';\n return tok;\n }\n }\n\n\n function startState() {\n return new State();\n }\n function copyState(state) {\n return state.copy();\n }\n /**\n * Get the next token in the stream\n *\n * @param {Stream} stream\n * @param {State} state\n */\n function nextToken(stream, state) {\n var tok = innerMode(stream, state)\n || restOfLine(stream, state)\n || interpolationContinued(stream, state)\n || includeFilteredContinued(stream, state)\n || eachContinued(stream, state)\n || attrsContinued(stream, state)\n || javaScript(stream, state)\n || javaScriptArguments(stream, state)\n || callArguments(stream, state)\n\n || yieldStatement(stream)\n || doctype(stream)\n || interpolation(stream, state)\n || caseStatement(stream, state)\n || when(stream, state)\n || defaultStatement(stream)\n || extendsStatement(stream, state)\n || append(stream, state)\n || prepend(stream, state)\n || block(stream, state)\n || include(stream, state)\n || includeFiltered(stream, state)\n || mixin(stream, state)\n || call(stream, state)\n || conditional(stream, state)\n || each(stream, state)\n || whileStatement(stream, state)\n || tag(stream, state)\n || filter(stream, state)\n || code(stream, state)\n || id(stream)\n || className(stream)\n || attrs(stream, state)\n || attributesBlock(stream, state)\n || indent(stream)\n || text(stream, state)\n || comment(stream, state)\n || colon(stream)\n || dot(stream, state)\n || fail(stream);\n\n return tok === true ? null : tok;\n }\n return {\n startState: startState,\n copyState: copyState,\n token: nextToken\n };\n}, 'javascript', 'css', 'htmlmixed');\n\nCodeMirror.defineMIME('text/x-pug', 'pug');\nCodeMirror.defineMIME('text/x-jade', 'pug');\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function (mod) {\n \"use strict\";\n if (typeof exports === \"object\" && typeof module === \"object\") {// CommonJS\n mod(require(\"../../lib/codemirror\"),\n require(\"../../addon/mode/overlay\"),\n require(\"../xml/xml\"),\n require(\"../javascript/javascript\"),\n require(\"../coffeescript/coffeescript\"),\n require(\"../css/css\"),\n require(\"../sass/sass\"),\n require(\"../stylus/stylus\"),\n require(\"../pug/pug\"),\n require(\"../handlebars/handlebars\"));\n } else if (typeof define === \"function\" && define.amd) { // AMD\n define([\"../../lib/codemirror\",\n \"../../addon/mode/overlay\",\n \"../xml/xml\",\n \"../javascript/javascript\",\n \"../coffeescript/coffeescript\",\n \"../css/css\",\n \"../sass/sass\",\n \"../stylus/stylus\",\n \"../pug/pug\",\n \"../handlebars/handlebars\"], mod);\n } else { // Plain browser env\n mod(CodeMirror);\n }\n})(function (CodeMirror) {\n var tagLanguages = {\n script: [\n [\"lang\", /coffee(script)?/, \"coffeescript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?coffee(?:script)?$/, \"coffeescript\"],\n [\"lang\", /^babel$/, \"javascript\"],\n [\"type\", /^text\\/babel$/, \"javascript\"],\n [\"type\", /^text\\/ecmascript-\\d+$/, \"javascript\"]\n ],\n style: [\n [\"lang\", /^stylus$/i, \"stylus\"],\n [\"lang\", /^sass$/i, \"sass\"],\n [\"lang\", /^less$/i, \"text/x-less\"],\n [\"lang\", /^scss$/i, \"text/x-scss\"],\n [\"type\", /^(text\\/)?(x-)?styl(us)?$/i, \"stylus\"],\n [\"type\", /^text\\/sass/i, \"sass\"],\n [\"type\", /^(text\\/)?(x-)?scss$/i, \"text/x-scss\"],\n [\"type\", /^(text\\/)?(x-)?less$/i, \"text/x-less\"]\n ],\n template: [\n [\"lang\", /^vue-template$/i, \"vue\"],\n [\"lang\", /^pug$/i, \"pug\"],\n [\"lang\", /^handlebars$/i, \"handlebars\"],\n [\"type\", /^(text\\/)?(x-)?pug$/i, \"pug\"],\n [\"type\", /^text\\/x-handlebars-template$/i, \"handlebars\"],\n [null, null, \"vue-template\"]\n ]\n };\n\n CodeMirror.defineMode(\"vue-template\", function (config, parserConfig) {\n var mustacheOverlay = {\n token: function (stream) {\n if (stream.match(/^\\{\\{.*?\\}\\}/)) return \"meta mustache\";\n while (stream.next() && !stream.match(\"{{\", false)) {}\n return null;\n }\n };\n return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || \"text/html\"), mustacheOverlay);\n });\n\n CodeMirror.defineMode(\"vue\", function (config) {\n return CodeMirror.getMode(config, {name: \"htmlmixed\", tags: tagLanguages});\n }, \"htmlmixed\", \"xml\", \"javascript\", \"coffeescript\", \"css\", \"sass\", \"stylus\", \"pug\", \"handlebars\");\n\n CodeMirror.defineMIME(\"script/x-vue\", \"vue\");\n CodeMirror.defineMIME(\"text/x-vue\", \"vue\");\n});\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CodeView.vue?vue&type=style&index=0&id=06e9bd12&scoped=true&lang=scss&\"","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var noOptions = {};\n var nonWS = /[^\\s\\u00a0]/;\n var Pos = CodeMirror.Pos, cmp = CodeMirror.cmpPos;\n\n function firstNonWS(str) {\n var found = str.search(nonWS);\n return found == -1 ? 0 : found;\n }\n\n CodeMirror.commands.toggleComment = function(cm) {\n cm.toggleComment();\n };\n\n CodeMirror.defineExtension(\"toggleComment\", function(options) {\n if (!options) options = noOptions;\n var cm = this;\n var minLine = Infinity, ranges = this.listSelections(), mode = null;\n for (var i = ranges.length - 1; i >= 0; i--) {\n var from = ranges[i].from(), to = ranges[i].to();\n if (from.line >= minLine) continue;\n if (to.line >= minLine) to = Pos(minLine, 0);\n minLine = from.line;\n if (mode == null) {\n if (cm.uncomment(from, to, options)) mode = \"un\";\n else { cm.lineComment(from, to, options); mode = \"line\"; }\n } else if (mode == \"un\") {\n cm.uncomment(from, to, options);\n } else {\n cm.lineComment(from, to, options);\n }\n }\n });\n\n // Rough heuristic to try and detect lines that are part of multi-line string\n function probablyInsideString(cm, pos, line) {\n return /\\bstring\\b/.test(cm.getTokenTypeAt(Pos(pos.line, 0))) && !/^[\\'\\\"\\`]/.test(line)\n }\n\n function getMode(cm, pos) {\n var mode = cm.getMode()\n return mode.useInnerComments === false || !mode.innerMode ? mode : cm.getModeAt(pos)\n }\n\n CodeMirror.defineExtension(\"lineComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var firstLine = self.getLine(from.line);\n if (firstLine == null || probablyInsideString(self, from, firstLine)) return;\n\n var commentString = options.lineComment || mode.lineComment;\n if (!commentString) {\n if (options.blockCommentStart || mode.blockCommentStart) {\n options.fullLines = true;\n self.blockComment(from, to, options);\n }\n return;\n }\n\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line + 1 : to.line, self.lastLine() + 1);\n var pad = options.padding == null ? \" \" : options.padding;\n var blankLines = options.commentBlankLines || from.line == to.line;\n\n self.operation(function() {\n if (options.indent) {\n var baseString = null;\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i);\n var whitespace = line.slice(0, firstNonWS(line));\n if (baseString == null || baseString.length > whitespace.length) {\n baseString = whitespace;\n }\n }\n for (var i = from.line; i < end; ++i) {\n var line = self.getLine(i), cut = baseString.length;\n if (!blankLines && !nonWS.test(line)) continue;\n if (line.slice(0, cut) != baseString) cut = firstNonWS(line);\n self.replaceRange(baseString + commentString + pad, Pos(i, 0), Pos(i, cut));\n }\n } else {\n for (var i = from.line; i < end; ++i) {\n if (blankLines || nonWS.test(self.getLine(i)))\n self.replaceRange(commentString + pad, Pos(i, 0));\n }\n }\n });\n });\n\n CodeMirror.defineExtension(\"blockComment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) {\n if ((options.lineComment || mode.lineComment) && options.fullLines != false)\n self.lineComment(from, to, options);\n return;\n }\n if (/\\bcomment\\b/.test(self.getTokenTypeAt(Pos(from.line, 0)))) return\n\n var end = Math.min(to.line, self.lastLine());\n if (end != from.line && to.ch == 0 && nonWS.test(self.getLine(end))) --end;\n\n var pad = options.padding == null ? \" \" : options.padding;\n if (from.line > end) return;\n\n self.operation(function() {\n if (options.fullLines != false) {\n var lastLineHasText = nonWS.test(self.getLine(end));\n self.replaceRange(pad + endString, Pos(end));\n self.replaceRange(startString + pad, Pos(from.line, 0));\n var lead = options.blockCommentLead || mode.blockCommentLead;\n if (lead != null) for (var i = from.line + 1; i <= end; ++i)\n if (i != end || lastLineHasText)\n self.replaceRange(lead + pad, Pos(i, 0));\n } else {\n var atCursor = cmp(self.getCursor(\"to\"), to) == 0, empty = !self.somethingSelected()\n self.replaceRange(endString, to);\n if (atCursor) self.setSelection(empty ? to : self.getCursor(\"from\"), to)\n self.replaceRange(startString, from);\n }\n });\n });\n\n CodeMirror.defineExtension(\"uncomment\", function(from, to, options) {\n if (!options) options = noOptions;\n var self = this, mode = getMode(self, from);\n var end = Math.min(to.ch != 0 || to.line == from.line ? to.line : to.line - 1, self.lastLine()), start = Math.min(from.line, end);\n\n // Try finding line comments\n var lineString = options.lineComment || mode.lineComment, lines = [];\n var pad = options.padding == null ? \" \" : options.padding, didSomething;\n lineComment: {\n if (!lineString) break lineComment;\n for (var i = start; i <= end; ++i) {\n var line = self.getLine(i);\n var found = line.indexOf(lineString);\n if (found > -1 && !/comment/.test(self.getTokenTypeAt(Pos(i, found + 1)))) found = -1;\n if (found == -1 && nonWS.test(line)) break lineComment;\n if (found > -1 && nonWS.test(line.slice(0, found))) break lineComment;\n lines.push(line);\n }\n self.operation(function() {\n for (var i = start; i <= end; ++i) {\n var line = lines[i - start];\n var pos = line.indexOf(lineString), endPos = pos + lineString.length;\n if (pos < 0) continue;\n if (line.slice(endPos, endPos + pad.length) == pad) endPos += pad.length;\n didSomething = true;\n self.replaceRange(\"\", Pos(i, pos), Pos(i, endPos));\n }\n });\n if (didSomething) return true;\n }\n\n // Try block comments\n var startString = options.blockCommentStart || mode.blockCommentStart;\n var endString = options.blockCommentEnd || mode.blockCommentEnd;\n if (!startString || !endString) return false;\n var lead = options.blockCommentLead || mode.blockCommentLead;\n var startLine = self.getLine(start), open = startLine.indexOf(startString)\n if (open == -1) return false\n var endLine = end == start ? startLine : self.getLine(end)\n var close = endLine.indexOf(endString, end == start ? open + startString.length : 0);\n var insideStart = Pos(start, open + 1), insideEnd = Pos(end, close + 1)\n if (close == -1 ||\n !/comment/.test(self.getTokenTypeAt(insideStart)) ||\n !/comment/.test(self.getTokenTypeAt(insideEnd)) ||\n self.getRange(insideStart, insideEnd, \"\\n\").indexOf(endString) > -1)\n return false;\n\n // Avoid killing block comments completely outside the selection.\n // Positions of the last startString before the start of the selection, and the first endString after it.\n var lastStart = startLine.lastIndexOf(startString, from.ch);\n var firstEnd = lastStart == -1 ? -1 : startLine.slice(0, from.ch).indexOf(endString, lastStart + startString.length);\n if (lastStart != -1 && firstEnd != -1 && firstEnd + endString.length != from.ch) return false;\n // Positions of the first endString after the end of the selection, and the last startString before it.\n firstEnd = endLine.indexOf(endString, to.ch);\n var almostLastStart = endLine.slice(to.ch).lastIndexOf(startString, firstEnd - to.ch);\n lastStart = (firstEnd == -1 || almostLastStart == -1) ? -1 : to.ch + almostLastStart;\n if (firstEnd != -1 && lastStart != -1 && lastStart != to.ch) return false;\n\n self.operation(function() {\n self.replaceRange(\"\", Pos(end, close - (pad && endLine.slice(close - pad.length, close) == pad ? pad.length : 0)),\n Pos(end, close + endString.length));\n var openEnd = open + startString.length;\n if (pad && startLine.slice(openEnd, openEnd + pad.length) == pad) openEnd += pad.length;\n self.replaceRange(\"\", Pos(start, open), Pos(start, openEnd));\n if (lead) for (var i = start + 1; i <= end; ++i) {\n var line = self.getLine(i), found = line.indexOf(lead);\n if (found == -1 || nonWS.test(line.slice(0, found))) continue;\n var foundEnd = found + lead.length;\n if (pad && line.slice(foundEnd, foundEnd + pad.length) == pad) foundEnd += pad.length;\n self.replaceRange(\"\", Pos(i, found), Pos(i, foundEnd));\n }\n });\n return true;\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode = function(name, states) {\n CodeMirror.defineMode(name, function(config) {\n return CodeMirror.simpleMode(config, states);\n });\n };\n\n CodeMirror.simpleMode = function(config, states) {\n ensureState(states, \"start\");\n var states_ = {}, meta = states.meta || {}, hasIndentation = false;\n for (var state in states) if (state != meta && states.hasOwnProperty(state)) {\n var list = states_[state] = [], orig = states[state];\n for (var i = 0; i < orig.length; i++) {\n var data = orig[i];\n list.push(new Rule(data, states));\n if (data.indent || data.dedent) hasIndentation = true;\n }\n }\n var mode = {\n startState: function() {\n return {state: \"start\", pending: null,\n local: null, localState: null,\n indent: hasIndentation ? [] : null};\n },\n copyState: function(state) {\n var s = {state: state.state, pending: state.pending,\n local: state.local, localState: null,\n indent: state.indent && state.indent.slice(0)};\n if (state.localState)\n s.localState = CodeMirror.copyState(state.local.mode, state.localState);\n if (state.stack)\n s.stack = state.stack.slice(0);\n for (var pers = state.persistentStates; pers; pers = pers.next)\n s.persistentStates = {mode: pers.mode,\n spec: pers.spec,\n state: pers.state == state.localState ? s.localState : CodeMirror.copyState(pers.mode, pers.state),\n next: s.persistentStates};\n return s;\n },\n token: tokenFunction(states_, config),\n innerMode: function(state) { return state.local && {mode: state.local.mode, state: state.localState}; },\n indent: indentFunction(states_, meta)\n };\n if (meta) for (var prop in meta) if (meta.hasOwnProperty(prop))\n mode[prop] = meta[prop];\n return mode;\n };\n\n function ensureState(states, name) {\n if (!states.hasOwnProperty(name))\n throw new Error(\"Undefined state \" + name + \" in simple mode\");\n }\n\n function toRegex(val, caret) {\n if (!val) return /(?:)/;\n var flags = \"\";\n if (val instanceof RegExp) {\n if (val.ignoreCase) flags = \"i\";\n if (val.unicode) flags += \"u\"\n val = val.source;\n } else {\n val = String(val);\n }\n return new RegExp((caret === false ? \"\" : \"^\") + \"(?:\" + val + \")\", flags);\n }\n\n function asToken(val) {\n if (!val) return null;\n if (val.apply) return val\n if (typeof val == \"string\") return val.replace(/\\./g, \" \");\n var result = [];\n for (var i = 0; i < val.length; i++)\n result.push(val[i] && val[i].replace(/\\./g, \" \"));\n return result;\n }\n\n function Rule(data, states) {\n if (data.next || data.push) ensureState(states, data.next || data.push);\n this.regex = toRegex(data.regex);\n this.token = asToken(data.token);\n this.data = data;\n }\n\n function tokenFunction(states, config) {\n return function(stream, state) {\n if (state.pending) {\n var pend = state.pending.shift();\n if (state.pending.length == 0) state.pending = null;\n stream.pos += pend.text.length;\n return pend.token;\n }\n\n if (state.local) {\n if (state.local.end && stream.match(state.local.end)) {\n var tok = state.local.endToken || null;\n state.local = state.localState = null;\n return tok;\n } else {\n var tok = state.local.mode.token(stream, state.localState), m;\n if (state.local.endScan && (m = state.local.endScan.exec(stream.current())))\n stream.pos = stream.start + m.index;\n return tok;\n }\n }\n\n var curState = states[state.state];\n for (var i = 0; i < curState.length; i++) {\n var rule = curState[i];\n var matches = (!rule.data.sol || stream.sol()) && stream.match(rule.regex);\n if (matches) {\n if (rule.data.next) {\n state.state = rule.data.next;\n } else if (rule.data.push) {\n (state.stack || (state.stack = [])).push(state.state);\n state.state = rule.data.push;\n } else if (rule.data.pop && state.stack && state.stack.length) {\n state.state = state.stack.pop();\n }\n\n if (rule.data.mode)\n enterLocalMode(config, state, rule.data.mode, rule.token);\n if (rule.data.indent)\n state.indent.push(stream.indentation() + config.indentUnit);\n if (rule.data.dedent)\n state.indent.pop();\n var token = rule.token\n if (token && token.apply) token = token(matches)\n if (matches.length > 2 && rule.token && typeof rule.token != \"string\") {\n for (var j = 2; j < matches.length; j++)\n if (matches[j])\n (state.pending || (state.pending = [])).push({text: matches[j], token: rule.token[j - 1]});\n stream.backUp(matches[0].length - (matches[1] ? matches[1].length : 0));\n return token[0];\n } else if (token && token.join) {\n return token[0];\n } else {\n return token;\n }\n }\n }\n stream.next();\n return null;\n };\n }\n\n function cmp(a, b) {\n if (a === b) return true;\n if (!a || typeof a != \"object\" || !b || typeof b != \"object\") return false;\n var props = 0;\n for (var prop in a) if (a.hasOwnProperty(prop)) {\n if (!b.hasOwnProperty(prop) || !cmp(a[prop], b[prop])) return false;\n props++;\n }\n for (var prop in b) if (b.hasOwnProperty(prop)) props--;\n return props == 0;\n }\n\n function enterLocalMode(config, state, spec, token) {\n var pers;\n if (spec.persistent) for (var p = state.persistentStates; p && !pers; p = p.next)\n if (spec.spec ? cmp(spec.spec, p.spec) : spec.mode == p.mode) pers = p;\n var mode = pers ? pers.mode : spec.mode || CodeMirror.getMode(config, spec.spec);\n var lState = pers ? pers.state : CodeMirror.startState(mode);\n if (spec.persistent && !pers)\n state.persistentStates = {mode: mode, spec: spec.spec, state: lState, next: state.persistentStates};\n\n state.localState = lState;\n state.local = {mode: mode,\n end: spec.end && toRegex(spec.end),\n endScan: spec.end && spec.forceEnd !== false && toRegex(spec.end, false),\n endToken: token && token.join ? token[token.length - 1] : token};\n }\n\n function indexOf(val, arr) {\n for (var i = 0; i < arr.length; i++) if (arr[i] === val) return true;\n }\n\n function indentFunction(states, meta) {\n return function(state, textAfter, line) {\n if (state.local && state.local.mode.indent)\n return state.local.mode.indent(state.localState, textAfter, line);\n if (state.indent == null || state.local || meta.dontIndentStates && indexOf(state.state, meta.dontIndentStates) > -1)\n return CodeMirror.Pass;\n\n var pos = state.indent.length - 1, rules = states[state.state];\n scan: for (;;) {\n for (var i = 0; i < rules.length; i++) {\n var rule = rules[i];\n if (rule.data.dedent && rule.data.dedentIfLineStart !== false) {\n var m = rule.regex.exec(textAfter);\n if (m && m[0]) {\n pos--;\n if (rule.next || rule.push) rules = states[rule.next || rule.push];\n textAfter = textAfter.slice(m[0].length);\n continue scan;\n }\n }\n }\n break;\n }\n return pos < 0 ? 0 : state.indent[pos];\n };\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Stylus mode created by Dmitry Kiselyov http://git.io/AaRB\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineMode(\"stylus\", function(config) {\n var indentUnit = config.indentUnit,\n indentUnitString = '',\n tagKeywords = keySet(tagKeywords_),\n tagVariablesRegexp = /^(a|b|i|s|col|em)$/i,\n propertyKeywords = keySet(propertyKeywords_),\n nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_),\n valueKeywords = keySet(valueKeywords_),\n colorKeywords = keySet(colorKeywords_),\n documentTypes = keySet(documentTypes_),\n documentTypesRegexp = wordRegexp(documentTypes_),\n mediaFeatures = keySet(mediaFeatures_),\n mediaTypes = keySet(mediaTypes_),\n fontProperties = keySet(fontProperties_),\n operatorsRegexp = /^\\s*([.]{2,3}|&&|\\|\\||\\*\\*|[?!=:]?=|[-+*\\/%<>]=?|\\?:|\\~)/,\n wordOperatorKeywordsRegexp = wordRegexp(wordOperatorKeywords_),\n blockKeywords = keySet(blockKeywords_),\n vendorPrefixesRegexp = new RegExp(/^\\-(moz|ms|o|webkit)-/i),\n commonAtoms = keySet(commonAtoms_),\n firstWordMatch = \"\",\n states = {},\n ch,\n style,\n type,\n override;\n\n while (indentUnitString.length < indentUnit) indentUnitString += ' ';\n\n /**\n * Tokenizers\n */\n function tokenBase(stream, state) {\n firstWordMatch = stream.string.match(/(^[\\w-]+\\s*=\\s*$)|(^\\s*[\\w-]+\\s*=\\s*[\\w-])|(^\\s*(\\.|#|@|\\$|\\&|\\[|\\d|\\+|::?|\\{|\\>|~|\\/)?\\s*[\\w-]*([a-z0-9-]|\\*|\\/\\*)(\\(|,)?)/);\n state.context.line.firstWord = firstWordMatch ? firstWordMatch[0].replace(/^\\s*/, \"\") : \"\";\n state.context.line.indent = stream.indentation();\n ch = stream.peek();\n\n // Line comment\n if (stream.match(\"//\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n }\n // Block comment\n if (stream.match(\"/*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n // String\n if (ch == \"\\\"\" || ch == \"'\") {\n stream.next();\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n }\n // Def\n if (ch == \"@\") {\n stream.next();\n stream.eatWhile(/[\\w\\\\-]/);\n return [\"def\", stream.current()];\n }\n // ID selector or Hex color\n if (ch == \"#\") {\n stream.next();\n // Hex color\n if (stream.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\\b(?!-)/i)) {\n return [\"atom\", \"atom\"];\n }\n // ID selector\n if (stream.match(/^[a-z][\\w-]*/i)) {\n return [\"builtin\", \"hash\"];\n }\n }\n // Vendor prefixes\n if (stream.match(vendorPrefixesRegexp)) {\n return [\"meta\", \"vendor-prefixes\"];\n }\n // Numbers\n if (stream.match(/^-?[0-9]?\\.?[0-9]/)) {\n stream.eatWhile(/[a-z%]/i);\n return [\"number\", \"unit\"];\n }\n // !important|optional\n if (ch == \"!\") {\n stream.next();\n return [stream.match(/^(important|optional)/i) ? \"keyword\": \"operator\", \"important\"];\n }\n // Class\n if (ch == \".\" && stream.match(/^\\.[a-z][\\w-]*/i)) {\n return [\"qualifier\", \"qualifier\"];\n }\n // url url-prefix domain regexp\n if (stream.match(documentTypesRegexp)) {\n if (stream.peek() == \"(\") state.tokenize = tokenParenthesized;\n return [\"property\", \"word\"];\n }\n // Mixins / Functions\n if (stream.match(/^[a-z][\\w-]*\\(/i)) {\n stream.backUp(1);\n return [\"keyword\", \"mixin\"];\n }\n // Block mixins\n if (stream.match(/^(\\+|-)[a-z][\\w-]*\\(/i)) {\n stream.backUp(1);\n return [\"keyword\", \"block-mixin\"];\n }\n // Parent Reference BEM naming\n if (stream.string.match(/^\\s*&/) && stream.match(/^[-_]+[a-z][\\w-]*/)) {\n return [\"qualifier\", \"qualifier\"];\n }\n // / Root Reference & Parent Reference\n if (stream.match(/^(\\/|&)(-|_|:|\\.|#|[a-z])/)) {\n stream.backUp(1);\n return [\"variable-3\", \"reference\"];\n }\n if (stream.match(/^&{1}\\s*$/)) {\n return [\"variable-3\", \"reference\"];\n }\n // Word operator\n if (stream.match(wordOperatorKeywordsRegexp)) {\n return [\"operator\", \"operator\"];\n }\n // Word\n if (stream.match(/^\\$?[-_]*[a-z0-9]+[\\w-]*/i)) {\n // Variable\n if (stream.match(/^(\\.|\\[)[\\w-\\'\\\"\\]]+/i, false)) {\n if (!wordIsTag(stream.current())) {\n stream.match('.');\n return [\"variable-2\", \"variable-name\"];\n }\n }\n return [\"variable-2\", \"word\"];\n }\n // Operators\n if (stream.match(operatorsRegexp)) {\n return [\"operator\", stream.current()];\n }\n // Delimiters\n if (/[:;,{}\\[\\]\\(\\)]/.test(ch)) {\n stream.next();\n return [null, ch];\n }\n // Non-detected items\n stream.next();\n return [null, null];\n }\n\n /**\n * Token comment\n */\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n /**\n * Token string\n */\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return [\"string\", \"string\"];\n };\n }\n\n /**\n * Token parenthesized\n */\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be \"(\"\n if (!stream.match(/\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return [null, \"(\"];\n }\n\n /**\n * Context management\n */\n function Context(type, indent, prev, line) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n this.line = line || {firstWord: \"\", indent: 0};\n }\n\n function pushContext(state, stream, type, indent) {\n indent = indent >= 0 ? indent : indentUnit;\n state.context = new Context(type, stream.indentation() + indent, state.context);\n return type;\n }\n\n function popContext(state, currentIndent) {\n var contextIndent = state.context.indent - indentUnit;\n currentIndent = currentIndent || false;\n state.context = state.context.prev;\n if (currentIndent) state.context.indent = contextIndent;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n\n /**\n * Parser\n */\n function wordIsTag(word) {\n return word.toLowerCase() in tagKeywords;\n }\n\n function wordIsProperty(word) {\n word = word.toLowerCase();\n return word in propertyKeywords || word in fontProperties;\n }\n\n function wordIsBlock(word) {\n return word.toLowerCase() in blockKeywords;\n }\n\n function wordIsVendorPrefix(word) {\n return word.toLowerCase().match(vendorPrefixesRegexp);\n }\n\n function wordAsValue(word) {\n var wordLC = word.toLowerCase();\n var override = \"variable-2\";\n if (wordIsTag(word)) override = \"tag\";\n else if (wordIsBlock(word)) override = \"block-keyword\";\n else if (wordIsProperty(word)) override = \"property\";\n else if (wordLC in valueKeywords || wordLC in commonAtoms) override = \"atom\";\n else if (wordLC == \"return\" || wordLC in colorKeywords) override = \"keyword\";\n\n // Font family\n else if (word.match(/^[A-Z]/)) override = \"string\";\n return override;\n }\n\n function typeIsBlock(type, stream) {\n return ((endOfLine(stream) && (type == \"{\" || type == \"]\" || type == \"hash\" || type == \"qualifier\")) || type == \"block-mixin\");\n }\n\n function typeIsInterpolation(type, stream) {\n return type == \"{\" && stream.match(/^\\s*\\$?[\\w-]+/i, false);\n }\n\n function typeIsPseudo(type, stream) {\n return type == \":\" && stream.match(/^[a-z-]+/, false);\n }\n\n function startOfLine(stream) {\n return stream.sol() || stream.string.match(new RegExp(\"^\\\\s*\" + escapeRegExp(stream.current())));\n }\n\n function endOfLine(stream) {\n return stream.eol() || stream.match(/^\\s*$/, false);\n }\n\n function firstWordOfLine(line) {\n var re = /^\\s*[-_]*[a-z0-9]+[\\w-]*/i;\n var result = typeof line == \"string\" ? line.match(re) : line.string.match(re);\n return result ? result[0].replace(/^\\s*/, \"\") : \"\";\n }\n\n\n /**\n * Block\n */\n states.block = function(type, stream, state) {\n if ((type == \"comment\" && startOfLine(stream)) ||\n (type == \",\" && endOfLine(stream)) ||\n type == \"mixin\") {\n return pushContext(state, stream, \"block\", 0);\n }\n if (typeIsInterpolation(type, stream)) {\n return pushContext(state, stream, \"interpolation\");\n }\n if (endOfLine(stream) && type == \"]\") {\n if (!/^\\s*(\\.|#|:|\\[|\\*|&)/.test(stream.string) && !wordIsTag(firstWordOfLine(stream))) {\n return pushContext(state, stream, \"block\", 0);\n }\n }\n if (typeIsBlock(type, stream)) {\n return pushContext(state, stream, \"block\");\n }\n if (type == \"}\" && endOfLine(stream)) {\n return pushContext(state, stream, \"block\", 0);\n }\n if (type == \"variable-name\") {\n if (stream.string.match(/^\\s?\\$[\\w-\\.\\[\\]\\'\\\"]+$/) || wordIsBlock(firstWordOfLine(stream))) {\n return pushContext(state, stream, \"variableName\");\n }\n else {\n return pushContext(state, stream, \"variableName\", 0);\n }\n }\n if (type == \"=\") {\n if (!endOfLine(stream) && !wordIsBlock(firstWordOfLine(stream))) {\n return pushContext(state, stream, \"block\", 0);\n }\n return pushContext(state, stream, \"block\");\n }\n if (type == \"*\") {\n if (endOfLine(stream) || stream.match(/\\s*(,|\\.|#|\\[|:|{)/,false)) {\n override = \"tag\";\n return pushContext(state, stream, \"block\");\n }\n }\n if (typeIsPseudo(type, stream)) {\n return pushContext(state, stream, \"pseudo\");\n }\n if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {\n return pushContext(state, stream, endOfLine(stream) ? \"block\" : \"atBlock\");\n }\n if (/@(-(moz|ms|o|webkit)-)?keyframes$/.test(type)) {\n return pushContext(state, stream, \"keyframes\");\n }\n if (/@extends?/.test(type)) {\n return pushContext(state, stream, \"extend\", 0);\n }\n if (type && type.charAt(0) == \"@\") {\n\n // Property Lookup\n if (stream.indentation() > 0 && wordIsProperty(stream.current().slice(1))) {\n override = \"variable-2\";\n return \"block\";\n }\n if (/(@import|@require|@charset)/.test(type)) {\n return pushContext(state, stream, \"block\", 0);\n }\n return pushContext(state, stream, \"block\");\n }\n if (type == \"reference\" && endOfLine(stream)) {\n return pushContext(state, stream, \"block\");\n }\n if (type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n\n if (type == \"vendor-prefixes\") {\n return pushContext(state, stream, \"vendorPrefixes\");\n }\n if (type == \"word\") {\n var word = stream.current();\n override = wordAsValue(word);\n\n if (override == \"property\") {\n if (startOfLine(stream)) {\n return pushContext(state, stream, \"block\", 0);\n } else {\n override = \"atom\";\n return \"block\";\n }\n }\n\n if (override == \"tag\") {\n\n // tag is a css value\n if (/embed|menu|pre|progress|sub|table/.test(word)) {\n if (wordIsProperty(firstWordOfLine(stream))) {\n override = \"atom\";\n return \"block\";\n }\n }\n\n // tag is an attribute\n if (stream.string.match(new RegExp(\"\\\\[\\\\s*\" + word + \"|\" + word +\"\\\\s*\\\\]\"))) {\n override = \"atom\";\n return \"block\";\n }\n\n // tag is a variable\n if (tagVariablesRegexp.test(word)) {\n if ((startOfLine(stream) && stream.string.match(/=/)) ||\n (!startOfLine(stream) &&\n !stream.string.match(/^(\\s*\\.|#|\\&|\\[|\\/|>|\\*)/) &&\n !wordIsTag(firstWordOfLine(stream)))) {\n override = \"variable-2\";\n if (wordIsBlock(firstWordOfLine(stream))) return \"block\";\n return pushContext(state, stream, \"block\", 0);\n }\n }\n\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n }\n if (override == \"block-keyword\") {\n override = \"keyword\";\n\n // Postfix conditionals\n if (stream.current(/(if|unless)/) && !startOfLine(stream)) {\n return \"block\";\n }\n return pushContext(state, stream, \"block\");\n }\n if (word == \"return\") return pushContext(state, stream, \"block\", 0);\n\n // Placeholder selector\n if (override == \"variable-2\" && stream.string.match(/^\\s?\\$[\\w-\\.\\[\\]\\'\\\"]+$/)) {\n return pushContext(state, stream, \"block\");\n }\n }\n return state.context.type;\n };\n\n\n /**\n * Parens\n */\n states.parens = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \")\") {\n if (state.context.prev.type == \"parens\") {\n return popContext(state);\n }\n if ((stream.string.match(/^[a-z][\\w-]*\\(/i) && endOfLine(stream)) ||\n wordIsBlock(firstWordOfLine(stream)) ||\n /(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(firstWordOfLine(stream)) ||\n (!stream.string.match(/^-?[a-z][\\w-\\.\\[\\]\\'\\\"]*\\s*=/) &&\n wordIsTag(firstWordOfLine(stream)))) {\n return pushContext(state, stream, \"block\");\n }\n if (stream.string.match(/^[\\$-]?[a-z][\\w-\\.\\[\\]\\'\\\"]*\\s*=/) ||\n stream.string.match(/^\\s*(\\(|\\)|[0-9])/) ||\n stream.string.match(/^\\s+[a-z][\\w-]*\\(/i) ||\n stream.string.match(/^\\s+[\\$-]?[a-z]/i)) {\n return pushContext(state, stream, \"block\", 0);\n }\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n else return pushContext(state, stream, \"block\", 0);\n }\n if (type && type.charAt(0) == \"@\" && wordIsProperty(stream.current().slice(1))) {\n override = \"variable-2\";\n }\n if (type == \"word\") {\n var word = stream.current();\n override = wordAsValue(word);\n if (override == \"tag\" && tagVariablesRegexp.test(word)) {\n override = \"variable-2\";\n }\n if (override == \"property\" || word == \"to\") override = \"atom\";\n }\n if (type == \"variable-name\") {\n return pushContext(state, stream, \"variableName\");\n }\n if (typeIsPseudo(type, stream)) {\n return pushContext(state, stream, \"pseudo\");\n }\n return state.context.type;\n };\n\n\n /**\n * Vendor prefixes\n */\n states.vendorPrefixes = function(type, stream, state) {\n if (type == \"word\") {\n override = \"property\";\n return pushContext(state, stream, \"block\", 0);\n }\n return popContext(state);\n };\n\n\n /**\n * Pseudo\n */\n states.pseudo = function(type, stream, state) {\n if (!wordIsProperty(firstWordOfLine(stream.string))) {\n stream.match(/^[a-z-]+/);\n override = \"variable-3\";\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n return popContext(state);\n }\n return popAndPass(type, stream, state);\n };\n\n\n /**\n * atBlock\n */\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (typeIsBlock(type, stream)) {\n return pushContext(state, stream, \"block\");\n }\n if (typeIsInterpolation(type, stream)) {\n return pushContext(state, stream, \"interpolation\");\n }\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (/^(only|not|and|or)$/.test(word))\n override = \"keyword\";\n else if (documentTypes.hasOwnProperty(word))\n override = \"tag\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = \"string-2\";\n else override = wordAsValue(stream.current());\n if (override == \"tag\" && endOfLine(stream)) {\n return pushContext(state, stream, \"block\");\n }\n }\n if (type == \"operator\" && /^(not|and|or)$/.test(stream.current())) {\n override = \"keyword\";\n }\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return state.context.type;\n if (type == \")\") {\n if (endOfLine(stream)) return pushContext(state, stream, \"block\");\n else return pushContext(state, stream, \"atBlock\");\n }\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n override = wordAsValue(word);\n if (/^(max|min)/.test(word)) override = \"property\";\n if (override == \"tag\") {\n tagVariablesRegexp.test(word) ? override = \"variable-2\" : override = \"atom\";\n }\n return state.context.type;\n }\n return states.atBlock(type, stream, state);\n };\n\n\n /**\n * Keyframes\n */\n states.keyframes = function(type, stream, state) {\n if (stream.indentation() == \"0\" && ((type == \"}\" && startOfLine(stream)) || type == \"]\" || type == \"hash\"\n || type == \"qualifier\" || wordIsTag(stream.current()))) {\n return popAndPass(type, stream, state);\n }\n if (type == \"{\") return pushContext(state, stream, \"keyframes\");\n if (type == \"}\") {\n if (startOfLine(stream)) return popContext(state, true);\n else return pushContext(state, stream, \"keyframes\");\n }\n if (type == \"unit\" && /^[0-9]+\\%$/.test(stream.current())) {\n return pushContext(state, stream, \"keyframes\");\n }\n if (type == \"word\") {\n override = wordAsValue(stream.current());\n if (override == \"block-keyword\") {\n override = \"keyword\";\n return pushContext(state, stream, \"keyframes\");\n }\n }\n if (/@(font-face|media|supports|(-moz-)?document)/.test(type)) {\n return pushContext(state, stream, endOfLine(stream) ? \"block\" : \"atBlock\");\n }\n if (type == \"mixin\") {\n return pushContext(state, stream, \"block\", 0);\n }\n return state.context.type;\n };\n\n\n /**\n * Interpolation\n */\n states.interpolation = function(type, stream, state) {\n if (type == \"{\") popContext(state) && pushContext(state, stream, \"block\");\n if (type == \"}\") {\n if (stream.string.match(/^\\s*(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/i) ||\n (stream.string.match(/^\\s*[a-z]/i) && wordIsTag(firstWordOfLine(stream)))) {\n return pushContext(state, stream, \"block\");\n }\n if (!stream.string.match(/^(\\{|\\s*\\&)/) ||\n stream.match(/\\s*[\\w-]/,false)) {\n return pushContext(state, stream, \"block\", 0);\n }\n return pushContext(state, stream, \"block\");\n }\n if (type == \"variable-name\") {\n return pushContext(state, stream, \"variableName\", 0);\n }\n if (type == \"word\") {\n override = wordAsValue(stream.current());\n if (override == \"tag\") override = \"atom\";\n }\n return state.context.type;\n };\n\n\n /**\n * Extend/s\n */\n states.extend = function(type, stream, state) {\n if (type == \"[\" || type == \"=\") return \"extend\";\n if (type == \"]\") return popContext(state);\n if (type == \"word\") {\n override = wordAsValue(stream.current());\n return \"extend\";\n }\n return popContext(state);\n };\n\n\n /**\n * Variable name\n */\n states.variableName = function(type, stream, state) {\n if (type == \"string\" || type == \"[\" || type == \"]\" || stream.current().match(/^(\\.|\\$)/)) {\n if (stream.current().match(/^\\.[\\w-]+/i)) override = \"variable-2\";\n return \"variableName\";\n }\n return popAndPass(type, stream, state);\n };\n\n\n return {\n startState: function(base) {\n return {\n tokenize: null,\n state: \"block\",\n context: new Context(\"block\", base || 0, null)\n };\n },\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n state.state = states[state.state](type, stream, state);\n return override;\n },\n indent: function(state, textAfter, line) {\n\n var cx = state.context,\n ch = textAfter && textAfter.charAt(0),\n indent = cx.indent,\n lineFirstWord = firstWordOfLine(textAfter),\n lineIndent = line.match(/^\\s*/)[0].replace(/\\t/g, indentUnitString).length,\n prevLineFirstWord = state.context.prev ? state.context.prev.line.firstWord : \"\",\n prevLineIndent = state.context.prev ? state.context.prev.line.indent : lineIndent;\n\n if (cx.prev &&\n (ch == \"}\" && (cx.type == \"block\" || cx.type == \"atBlock\" || cx.type == \"keyframes\") ||\n ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\"))) {\n indent = cx.indent - indentUnit;\n } else if (!(/(\\})/.test(ch))) {\n if (/@|\\$|\\d/.test(ch) ||\n /^\\{/.test(textAfter) ||\n/^\\s*\\/(\\/|\\*)/.test(textAfter) ||\n /^\\s*\\/\\*/.test(prevLineFirstWord) ||\n /^\\s*[\\w-\\.\\[\\]\\'\\\"]+\\s*(\\?|:|\\+)?=/i.test(textAfter) ||\n/^(\\+|-)?[a-z][\\w-]*\\(/i.test(textAfter) ||\n/^return/.test(textAfter) ||\n wordIsBlock(lineFirstWord)) {\n indent = lineIndent;\n } else if (/(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(ch) || wordIsTag(lineFirstWord)) {\n if (/\\,\\s*$/.test(prevLineFirstWord)) {\n indent = prevLineIndent;\n } else if (/^\\s+/.test(line) && (/(\\.|#|:|\\[|\\*|&|>|~|\\+|\\/)/.test(prevLineFirstWord) || wordIsTag(prevLineFirstWord))) {\n indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;\n } else {\n indent = lineIndent;\n }\n } else if (!/,\\s*$/.test(line) && (wordIsVendorPrefix(lineFirstWord) || wordIsProperty(lineFirstWord))) {\n if (wordIsBlock(prevLineFirstWord)) {\n indent = lineIndent <= prevLineIndent ? prevLineIndent : prevLineIndent + indentUnit;\n } else if (/^\\{/.test(prevLineFirstWord)) {\n indent = lineIndent <= prevLineIndent ? lineIndent : prevLineIndent + indentUnit;\n } else if (wordIsVendorPrefix(prevLineFirstWord) || wordIsProperty(prevLineFirstWord)) {\n indent = lineIndent >= prevLineIndent ? prevLineIndent : lineIndent;\n } else if (/^(\\.|#|:|\\[|\\*|&|@|\\+|\\-|>|~|\\/)/.test(prevLineFirstWord) ||\n /=\\s*$/.test(prevLineFirstWord) ||\n wordIsTag(prevLineFirstWord) ||\n /^\\$[\\w-\\.\\[\\]\\'\\\"]/.test(prevLineFirstWord)) {\n indent = prevLineIndent + indentUnit;\n } else {\n indent = lineIndent;\n }\n }\n }\n return indent;\n },\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: \"//\",\n fold: \"indent\"\n };\n });\n\n // developer.mozilla.org/en-US/docs/Web/HTML/Element\n var tagKeywords_ = [\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\", \"b\", \"base\",\"bdi\", \"bdo\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\", \"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"div\", \"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\", \"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\", \"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\", \"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"nobr\",\"noframes\", \"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"pre\", \"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\", \"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\", \"u\",\"ul\",\"var\",\"video\"];\n\n // github.com/codemirror/CodeMirror/blob/master/mode/css/css.js\n // Note, \"url-prefix\" should precede \"url\" in order to match correctly in documentTypesRegexp\n var documentTypes_ = [\"domain\", \"regexp\", \"url-prefix\", \"url\"];\n var mediaTypes_ = [\"all\",\"aural\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"embossed\"];\n var mediaFeatures_ = [\"width\",\"min-width\",\"max-width\",\"height\",\"min-height\",\"max-height\",\"device-width\",\"min-device-width\",\"max-device-width\",\"device-height\",\"min-device-height\",\"max-device-height\",\"aspect-ratio\",\"min-aspect-ratio\",\"max-aspect-ratio\",\"device-aspect-ratio\",\"min-device-aspect-ratio\",\"max-device-aspect-ratio\",\"color\",\"min-color\",\"max-color\",\"color-index\",\"min-color-index\",\"max-color-index\",\"monochrome\",\"min-monochrome\",\"max-monochrome\",\"resolution\",\"min-resolution\",\"max-resolution\",\"scan\",\"grid\"];\n var propertyKeywords_ = [\"align-content\",\"align-items\",\"align-self\",\"alignment-adjust\",\"alignment-baseline\",\"anchor-point\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"appearance\",\"azimuth\",\"backface-visibility\",\"background\",\"background-attachment\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"baseline-shift\",\"binding\",\"bleed\",\"bookmark-label\",\"bookmark-level\",\"bookmark-state\",\"bookmark-target\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"bottom\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"break-after\",\"break-before\",\"break-inside\",\"caption-side\",\"clear\",\"clip\",\"color\",\"color-profile\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-color\",\"column-rule-style\",\"column-rule-width\",\"column-span\",\"column-width\",\"columns\",\"content\",\"counter-increment\",\"counter-reset\",\"crop\",\"cue\",\"cue-after\",\"cue-before\",\"cursor\",\"direction\",\"display\",\"dominant-baseline\",\"drop-initial-after-adjust\",\"drop-initial-after-align\",\"drop-initial-before-adjust\",\"drop-initial-before-align\",\"drop-initial-size\",\"drop-initial-value\",\"elevation\",\"empty-cells\",\"fit\",\"fit-position\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"float\",\"float-offset\",\"flow-from\",\"flow-into\",\"font\",\"font-feature-settings\",\"font-family\",\"font-kerning\",\"font-language-override\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-weight\",\"grid\",\"grid-area\",\"grid-auto-columns\",\"grid-auto-flow\",\"grid-auto-position\",\"grid-auto-rows\",\"grid-column\",\"grid-column-end\",\"grid-column-start\",\"grid-row\",\"grid-row-end\",\"grid-row-start\",\"grid-template\",\"grid-template-areas\",\"grid-template-columns\",\"grid-template-rows\",\"hanging-punctuation\",\"height\",\"hyphens\",\"icon\",\"image-orientation\",\"image-rendering\",\"image-resolution\",\"inline-box-align\",\"justify-content\",\"left\",\"letter-spacing\",\"line-break\",\"line-height\",\"line-stacking\",\"line-stacking-ruby\",\"line-stacking-shift\",\"line-stacking-strategy\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marker-offset\",\"marks\",\"marquee-direction\",\"marquee-loop\",\"marquee-play-count\",\"marquee-speed\",\"marquee-style\",\"max-height\",\"max-width\",\"min-height\",\"min-width\",\"move-to\",\"nav-down\",\"nav-index\",\"nav-left\",\"nav-right\",\"nav-up\",\"object-fit\",\"object-position\",\"opacity\",\"order\",\"orphans\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"overflow\",\"overflow-style\",\"overflow-wrap\",\"overflow-x\",\"overflow-y\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"page-policy\",\"pause\",\"pause-after\",\"pause-before\",\"perspective\",\"perspective-origin\",\"pitch\",\"pitch-range\",\"play-during\",\"position\",\"presentation-level\",\"punctuation-trim\",\"quotes\",\"region-break-after\",\"region-break-before\",\"region-break-inside\",\"region-fragment\",\"rendering-intent\",\"resize\",\"rest\",\"rest-after\",\"rest-before\",\"richness\",\"right\",\"rotation\",\"rotation-point\",\"ruby-align\",\"ruby-overhang\",\"ruby-position\",\"ruby-span\",\"shape-image-threshold\",\"shape-inside\",\"shape-margin\",\"shape-outside\",\"size\",\"speak\",\"speak-as\",\"speak-header\",\"speak-numeral\",\"speak-punctuation\",\"speech-rate\",\"stress\",\"string-set\",\"tab-size\",\"table-layout\",\"target\",\"target-name\",\"target-new\",\"target-position\",\"text-align\",\"text-align-last\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-skip\",\"text-decoration-style\",\"text-emphasis\",\"text-emphasis-color\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-height\",\"text-indent\",\"text-justify\",\"text-outline\",\"text-overflow\",\"text-shadow\",\"text-size-adjust\",\"text-space-collapse\",\"text-transform\",\"text-underline-position\",\"text-wrap\",\"top\",\"transform\",\"transform-origin\",\"transform-style\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"unicode-bidi\",\"vertical-align\",\"visibility\",\"voice-balance\",\"voice-duration\",\"voice-family\",\"voice-pitch\",\"voice-range\",\"voice-rate\",\"voice-stress\",\"voice-volume\",\"volume\",\"white-space\",\"widows\",\"width\",\"will-change\",\"word-break\",\"word-spacing\",\"word-wrap\",\"z-index\",\"clip-path\",\"clip-rule\",\"mask\",\"enable-background\",\"filter\",\"flood-color\",\"flood-opacity\",\"lighting-color\",\"stop-color\",\"stop-opacity\",\"pointer-events\",\"color-interpolation\",\"color-interpolation-filters\",\"color-rendering\",\"fill\",\"fill-opacity\",\"fill-rule\",\"image-rendering\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-start\",\"shape-rendering\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"text-rendering\",\"baseline-shift\",\"dominant-baseline\",\"glyph-orientation-horizontal\",\"glyph-orientation-vertical\",\"text-anchor\",\"writing-mode\",\"font-smoothing\",\"osx-font-smoothing\"];\n var nonStandardPropertyKeywords_ = [\"scrollbar-arrow-color\",\"scrollbar-base-color\",\"scrollbar-dark-shadow-color\",\"scrollbar-face-color\",\"scrollbar-highlight-color\",\"scrollbar-shadow-color\",\"scrollbar-3d-light-color\",\"scrollbar-track-color\",\"shape-inside\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"zoom\"];\n var fontProperties_ = [\"font-family\",\"src\",\"unicode-range\",\"font-variant\",\"font-feature-settings\",\"font-stretch\",\"font-weight\",\"font-style\"];\n var colorKeywords_ = [\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"];\n var valueKeywords_ = [\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"attr\",\"auto\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"column\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ethiopic-numeric\",\"ew-resize\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fixed\",\"flat\",\"flex\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"japanese-formal\",\"japanese-informal\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"korean-hangul-formal\",\"korean-hanja-formal\",\"korean-hanja-informal\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"malayalam\",\"match\",\"matrix\",\"matrix3d\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"perspective\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row-resize\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"simp-chinese-formal\",\"simp-chinese-informal\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"spell-out\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"sub\",\"subpixel-antialiased\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"tamil\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"trad-chinese-formal\",\"trad-chinese-informal\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\",\"bicubic\",\"optimizespeed\",\"grayscale\",\"row\",\"row-reverse\",\"wrap\",\"wrap-reverse\",\"column-reverse\",\"flex-start\",\"flex-end\",\"space-between\",\"space-around\", \"unset\"];\n\n var wordOperatorKeywords_ = [\"in\",\"and\",\"or\",\"not\",\"is not\",\"is a\",\"is\",\"isnt\",\"defined\",\"if unless\"],\n blockKeywords_ = [\"for\",\"if\",\"else\",\"unless\", \"from\", \"to\"],\n commonAtoms_ = [\"null\",\"true\",\"false\",\"href\",\"title\",\"type\",\"not-allowed\",\"readonly\",\"disabled\"],\n commonDef_ = [\"@font-face\", \"@keyframes\", \"@media\", \"@viewport\", \"@page\", \"@host\", \"@supports\", \"@block\", \"@css\"];\n\n var hintWords = tagKeywords_.concat(documentTypes_,mediaTypes_,mediaFeatures_,\n propertyKeywords_,nonStandardPropertyKeywords_,\n colorKeywords_,valueKeywords_,fontProperties_,\n wordOperatorKeywords_,blockKeywords_,\n commonAtoms_,commonDef_);\n\n function wordRegexp(words) {\n words = words.sort(function(a,b){return b > a;});\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) keys[array[i]] = true;\n return keys;\n }\n\n function escapeRegExp(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\n }\n\n CodeMirror.registerHelper(\"hintWords\", \"stylus\", hintWords);\n CodeMirror.defineMIME(\"text/x-styl\", \"stylus\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"css\", function(config, parserConfig) {\n var inline = parserConfig.inline\n if (!parserConfig.propertyKeywords) parserConfig = CodeMirror.resolveMode(\"text/css\");\n\n var indentUnit = config.indentUnit,\n tokenHooks = parserConfig.tokenHooks,\n documentTypes = parserConfig.documentTypes || {},\n mediaTypes = parserConfig.mediaTypes || {},\n mediaFeatures = parserConfig.mediaFeatures || {},\n mediaValueKeywords = parserConfig.mediaValueKeywords || {},\n propertyKeywords = parserConfig.propertyKeywords || {},\n nonStandardPropertyKeywords = parserConfig.nonStandardPropertyKeywords || {},\n fontProperties = parserConfig.fontProperties || {},\n counterDescriptors = parserConfig.counterDescriptors || {},\n colorKeywords = parserConfig.colorKeywords || {},\n valueKeywords = parserConfig.valueKeywords || {},\n allowNested = parserConfig.allowNested,\n lineComment = parserConfig.lineComment,\n supportsAtComponent = parserConfig.supportsAtComponent === true,\n highlightNonStandardPropertyKeywords = config.highlightNonStandardPropertyKeywords !== false;\n\n var type, override;\n function ret(style, tp) { type = tp; return style; }\n\n // Tokenizers\n\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (tokenHooks[ch]) {\n var result = tokenHooks[ch](stream, state);\n if (result !== false) return result;\n }\n if (ch == \"@\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"def\", stream.current());\n } else if (ch == \"=\" || (ch == \"~\" || ch == \"|\") && stream.eat(\"=\")) {\n return ret(null, \"compare\");\n } else if (ch == \"\\\"\" || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \"#\") {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"atom\", \"hash\");\n } else if (ch == \"!\") {\n stream.match(/^\\s*\\w*/);\n return ret(\"keyword\", \"important\");\n } else if (/\\d/.test(ch) || ch == \".\" && stream.eat(/\\d/)) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (ch === \"-\") {\n if (/[\\d.]/.test(stream.peek())) {\n stream.eatWhile(/[\\w.%]/);\n return ret(\"number\", \"unit\");\n } else if (stream.match(/^-[\\w\\\\\\-]*/)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return ret(\"variable-2\", \"variable-definition\");\n return ret(\"variable-2\", \"variable\");\n } else if (stream.match(/^\\w+-/)) {\n return ret(\"meta\", \"meta\");\n }\n } else if (/[,+>*\\/]/.test(ch)) {\n return ret(null, \"select-op\");\n } else if (ch == \".\" && stream.match(/^-?[_a-z][_a-z0-9-]*/i)) {\n return ret(\"qualifier\", \"qualifier\");\n } else if (/[:;{}\\[\\]\\(\\)]/.test(ch)) {\n return ret(null, ch);\n } else if (stream.match(/^[\\w-.]+(?=\\()/)) {\n if (/^(url(-prefix)?|domain|regexp)$/i.test(stream.current())) {\n state.tokenize = tokenParenthesized;\n }\n return ret(\"variable callee\", \"variable\");\n } else if (/[\\w\\\\\\-]/.test(ch)) {\n stream.eatWhile(/[\\w\\\\\\-]/);\n return ret(\"property\", \"word\");\n } else {\n return ret(null, null);\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, ch;\n while ((ch = stream.next()) != null) {\n if (ch == quote && !escaped) {\n if (quote == \")\") stream.backUp(1);\n break;\n }\n escaped = !escaped && ch == \"\\\\\";\n }\n if (ch == quote || !escaped && quote != \")\") state.tokenize = null;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenParenthesized(stream, state) {\n stream.next(); // Must be '('\n if (!stream.match(/^\\s*[\\\"\\')]/, false))\n state.tokenize = tokenString(\")\");\n else\n state.tokenize = null;\n return ret(null, \"(\");\n }\n\n // Context management\n\n function Context(type, indent, prev) {\n this.type = type;\n this.indent = indent;\n this.prev = prev;\n }\n\n function pushContext(state, stream, type, indent) {\n state.context = new Context(type, stream.indentation() + (indent === false ? 0 : indentUnit), state.context);\n return type;\n }\n\n function popContext(state) {\n if (state.context.prev)\n state.context = state.context.prev;\n return state.context.type;\n }\n\n function pass(type, stream, state) {\n return states[state.context.type](type, stream, state);\n }\n function popAndPass(type, stream, state, n) {\n for (var i = n || 1; i > 0; i--)\n state.context = state.context.prev;\n return pass(type, stream, state);\n }\n\n // Parser\n\n function wordAsValue(stream) {\n var word = stream.current().toLowerCase();\n if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"variable\";\n }\n\n var states = {};\n\n states.top = function(type, stream, state) {\n if (type == \"{\") {\n return pushContext(state, stream, \"block\");\n } else if (type == \"}\" && state.context.prev) {\n return popContext(state);\n } else if (supportsAtComponent && /@component/i.test(type)) {\n return pushContext(state, stream, \"atComponentBlock\");\n } else if (/^@(-moz-)?document$/i.test(type)) {\n return pushContext(state, stream, \"documentTypes\");\n } else if (/^@(media|supports|(-moz-)?document|import)$/i.test(type)) {\n return pushContext(state, stream, \"atBlock\");\n } else if (/^@(font-face|counter-style)/i.test(type)) {\n state.stateArg = type;\n return \"restricted_atBlock_before\";\n } else if (/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(type)) {\n return \"keyframes\";\n } else if (type && type.charAt(0) == \"@\") {\n return pushContext(state, stream, \"at\");\n } else if (type == \"hash\") {\n override = \"builtin\";\n } else if (type == \"word\") {\n override = \"tag\";\n } else if (type == \"variable-definition\") {\n return \"maybeprop\";\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n } else if (type == \":\") {\n return \"pseudo\";\n } else if (allowNested && type == \"(\") {\n return pushContext(state, stream, \"parens\");\n }\n return state.context.type;\n };\n\n states.block = function(type, stream, state) {\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (propertyKeywords.hasOwnProperty(word)) {\n override = \"property\";\n return \"maybeprop\";\n } else if (nonStandardPropertyKeywords.hasOwnProperty(word)) {\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n return \"maybeprop\";\n } else if (allowNested) {\n override = stream.match(/^\\s*:(?:\\s|$)/, false) ? \"property\" : \"tag\";\n return \"block\";\n } else {\n override += \" error\";\n return \"maybeprop\";\n }\n } else if (type == \"meta\") {\n return \"block\";\n } else if (!allowNested && (type == \"hash\" || type == \"qualifier\")) {\n override = \"error\";\n return \"block\";\n } else {\n return states.top(type, stream, state);\n }\n };\n\n states.maybeprop = function(type, stream, state) {\n if (type == \":\") return pushContext(state, stream, \"prop\");\n return pass(type, stream, state);\n };\n\n states.prop = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" && allowNested) return pushContext(state, stream, \"propBlock\");\n if (type == \"}\" || type == \"{\") return popAndPass(type, stream, state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n\n if (type == \"hash\" && !/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(stream.current())) {\n override += \" error\";\n } else if (type == \"word\") {\n wordAsValue(stream);\n } else if (type == \"interpolation\") {\n return pushContext(state, stream, \"interpolation\");\n }\n return \"prop\";\n };\n\n states.propBlock = function(type, _stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"word\") { override = \"property\"; return \"maybeprop\"; }\n return state.context.type;\n };\n\n states.parens = function(type, stream, state) {\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \")\") return popContext(state);\n if (type == \"(\") return pushContext(state, stream, \"parens\");\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n if (type == \"word\") wordAsValue(stream);\n return \"parens\";\n };\n\n states.pseudo = function(type, stream, state) {\n if (type == \"meta\") return \"pseudo\";\n\n if (type == \"word\") {\n override = \"variable-3\";\n return state.context.type;\n }\n return pass(type, stream, state);\n };\n\n states.documentTypes = function(type, stream, state) {\n if (type == \"word\" && documentTypes.hasOwnProperty(stream.current())) {\n override = \"tag\";\n return state.context.type;\n } else {\n return states.atBlock(type, stream, state);\n }\n };\n\n states.atBlock = function(type, stream, state) {\n if (type == \"(\") return pushContext(state, stream, \"atBlock_parens\");\n if (type == \"}\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"{\") return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\");\n\n if (type == \"interpolation\") return pushContext(state, stream, \"interpolation\");\n\n if (type == \"word\") {\n var word = stream.current().toLowerCase();\n if (word == \"only\" || word == \"not\" || word == \"and\" || word == \"or\")\n override = \"keyword\";\n else if (mediaTypes.hasOwnProperty(word))\n override = \"attribute\";\n else if (mediaFeatures.hasOwnProperty(word))\n override = \"property\";\n else if (mediaValueKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else if (propertyKeywords.hasOwnProperty(word))\n override = \"property\";\n else if (nonStandardPropertyKeywords.hasOwnProperty(word))\n override = highlightNonStandardPropertyKeywords ? \"string-2\" : \"property\";\n else if (valueKeywords.hasOwnProperty(word))\n override = \"atom\";\n else if (colorKeywords.hasOwnProperty(word))\n override = \"keyword\";\n else\n override = \"error\";\n }\n return state.context.type;\n };\n\n states.atComponentBlock = function(type, stream, state) {\n if (type == \"}\")\n return popAndPass(type, stream, state);\n if (type == \"{\")\n return popContext(state) && pushContext(state, stream, allowNested ? \"block\" : \"top\", false);\n if (type == \"word\")\n override = \"error\";\n return state.context.type;\n };\n\n states.atBlock_parens = function(type, stream, state) {\n if (type == \")\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state, 2);\n return states.atBlock(type, stream, state);\n };\n\n states.restricted_atBlock_before = function(type, stream, state) {\n if (type == \"{\")\n return pushContext(state, stream, \"restricted_atBlock\");\n if (type == \"word\" && state.stateArg == \"@counter-style\") {\n override = \"variable\";\n return \"restricted_atBlock_before\";\n }\n return pass(type, stream, state);\n };\n\n states.restricted_atBlock = function(type, stream, state) {\n if (type == \"}\") {\n state.stateArg = null;\n return popContext(state);\n }\n if (type == \"word\") {\n if ((state.stateArg == \"@font-face\" && !fontProperties.hasOwnProperty(stream.current().toLowerCase())) ||\n (state.stateArg == \"@counter-style\" && !counterDescriptors.hasOwnProperty(stream.current().toLowerCase())))\n override = \"error\";\n else\n override = \"property\";\n return \"maybeprop\";\n }\n return \"restricted_atBlock\";\n };\n\n states.keyframes = function(type, stream, state) {\n if (type == \"word\") { override = \"variable\"; return \"keyframes\"; }\n if (type == \"{\") return pushContext(state, stream, \"top\");\n return pass(type, stream, state);\n };\n\n states.at = function(type, stream, state) {\n if (type == \";\") return popContext(state);\n if (type == \"{\" || type == \"}\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"tag\";\n else if (type == \"hash\") override = \"builtin\";\n return \"at\";\n };\n\n states.interpolation = function(type, stream, state) {\n if (type == \"}\") return popContext(state);\n if (type == \"{\" || type == \";\") return popAndPass(type, stream, state);\n if (type == \"word\") override = \"variable\";\n else if (type != \"variable\" && type != \"(\" && type != \")\") override = \"error\";\n return \"interpolation\";\n };\n\n return {\n startState: function(base) {\n return {tokenize: null,\n state: inline ? \"block\" : \"top\",\n stateArg: null,\n context: new Context(inline ? \"block\" : \"top\", base || 0, null)};\n },\n\n token: function(stream, state) {\n if (!state.tokenize && stream.eatSpace()) return null;\n var style = (state.tokenize || tokenBase)(stream, state);\n if (style && typeof style == \"object\") {\n type = style[1];\n style = style[0];\n }\n override = style;\n if (type != \"comment\")\n state.state = states[state.state](type, stream, state);\n return override;\n },\n\n indent: function(state, textAfter) {\n var cx = state.context, ch = textAfter && textAfter.charAt(0);\n var indent = cx.indent;\n if (cx.type == \"prop\" && (ch == \"}\" || ch == \")\")) cx = cx.prev;\n if (cx.prev) {\n if (ch == \"}\" && (cx.type == \"block\" || cx.type == \"top\" ||\n cx.type == \"interpolation\" || cx.type == \"restricted_atBlock\")) {\n // Resume indentation from parent context.\n cx = cx.prev;\n indent = cx.indent;\n } else if (ch == \")\" && (cx.type == \"parens\" || cx.type == \"atBlock_parens\") ||\n ch == \"{\" && (cx.type == \"at\" || cx.type == \"atBlock\")) {\n // Dedent relative to current context.\n indent = Math.max(0, cx.indent - indentUnit);\n }\n }\n return indent;\n },\n\n electricChars: \"}\",\n blockCommentStart: \"/*\",\n blockCommentEnd: \"*/\",\n blockCommentContinue: \" * \",\n lineComment: lineComment,\n fold: \"brace\"\n };\n});\n\n function keySet(array) {\n var keys = {};\n for (var i = 0; i < array.length; ++i) {\n keys[array[i].toLowerCase()] = true;\n }\n return keys;\n }\n\n var documentTypes_ = [\n \"domain\", \"regexp\", \"url\", \"url-prefix\"\n ], documentTypes = keySet(documentTypes_);\n\n var mediaTypes_ = [\n \"all\", \"aural\", \"braille\", \"handheld\", \"print\", \"projection\", \"screen\",\n \"tty\", \"tv\", \"embossed\"\n ], mediaTypes = keySet(mediaTypes_);\n\n var mediaFeatures_ = [\n \"width\", \"min-width\", \"max-width\", \"height\", \"min-height\", \"max-height\",\n \"device-width\", \"min-device-width\", \"max-device-width\", \"device-height\",\n \"min-device-height\", \"max-device-height\", \"aspect-ratio\",\n \"min-aspect-ratio\", \"max-aspect-ratio\", \"device-aspect-ratio\",\n \"min-device-aspect-ratio\", \"max-device-aspect-ratio\", \"color\", \"min-color\",\n \"max-color\", \"color-index\", \"min-color-index\", \"max-color-index\",\n \"monochrome\", \"min-monochrome\", \"max-monochrome\", \"resolution\",\n \"min-resolution\", \"max-resolution\", \"scan\", \"grid\", \"orientation\",\n \"device-pixel-ratio\", \"min-device-pixel-ratio\", \"max-device-pixel-ratio\",\n \"pointer\", \"any-pointer\", \"hover\", \"any-hover\", \"prefers-color-scheme\"\n ], mediaFeatures = keySet(mediaFeatures_);\n\n var mediaValueKeywords_ = [\n \"landscape\", \"portrait\", \"none\", \"coarse\", \"fine\", \"on-demand\", \"hover\",\n \"interlace\", \"progressive\",\n \"dark\", \"light\"\n ], mediaValueKeywords = keySet(mediaValueKeywords_);\n\n var propertyKeywords_ = [\n \"align-content\", \"align-items\", \"align-self\", \"alignment-adjust\",\n \"alignment-baseline\", \"all\", \"anchor-point\", \"animation\", \"animation-delay\",\n \"animation-direction\", \"animation-duration\", \"animation-fill-mode\",\n \"animation-iteration-count\", \"animation-name\", \"animation-play-state\",\n \"animation-timing-function\", \"appearance\", \"azimuth\", \"backdrop-filter\",\n \"backface-visibility\", \"background\", \"background-attachment\",\n \"background-blend-mode\", \"background-clip\", \"background-color\",\n \"background-image\", \"background-origin\", \"background-position\",\n \"background-position-x\", \"background-position-y\", \"background-repeat\",\n \"background-size\", \"baseline-shift\", \"binding\", \"bleed\", \"block-size\",\n \"bookmark-label\", \"bookmark-level\", \"bookmark-state\", \"bookmark-target\",\n \"border\", \"border-bottom\", \"border-bottom-color\", \"border-bottom-left-radius\",\n \"border-bottom-right-radius\", \"border-bottom-style\", \"border-bottom-width\",\n \"border-collapse\", \"border-color\", \"border-image\", \"border-image-outset\",\n \"border-image-repeat\", \"border-image-slice\", \"border-image-source\",\n \"border-image-width\", \"border-left\", \"border-left-color\", \"border-left-style\",\n \"border-left-width\", \"border-radius\", \"border-right\", \"border-right-color\",\n \"border-right-style\", \"border-right-width\", \"border-spacing\", \"border-style\",\n \"border-top\", \"border-top-color\", \"border-top-left-radius\",\n \"border-top-right-radius\", \"border-top-style\", \"border-top-width\",\n \"border-width\", \"bottom\", \"box-decoration-break\", \"box-shadow\", \"box-sizing\",\n \"break-after\", \"break-before\", \"break-inside\", \"caption-side\", \"caret-color\",\n \"clear\", \"clip\", \"color\", \"color-profile\", \"column-count\", \"column-fill\",\n \"column-gap\", \"column-rule\", \"column-rule-color\", \"column-rule-style\",\n \"column-rule-width\", \"column-span\", \"column-width\", \"columns\", \"contain\",\n \"content\", \"counter-increment\", \"counter-reset\", \"crop\", \"cue\", \"cue-after\",\n \"cue-before\", \"cursor\", \"direction\", \"display\", \"dominant-baseline\",\n \"drop-initial-after-adjust\", \"drop-initial-after-align\",\n \"drop-initial-before-adjust\", \"drop-initial-before-align\", \"drop-initial-size\",\n \"drop-initial-value\", \"elevation\", \"empty-cells\", \"fit\", \"fit-content\", \"fit-position\",\n \"flex\", \"flex-basis\", \"flex-direction\", \"flex-flow\", \"flex-grow\",\n \"flex-shrink\", \"flex-wrap\", \"float\", \"float-offset\", \"flow-from\", \"flow-into\",\n \"font\", \"font-family\", \"font-feature-settings\", \"font-kerning\",\n \"font-language-override\", \"font-optical-sizing\", \"font-size\",\n \"font-size-adjust\", \"font-stretch\", \"font-style\", \"font-synthesis\",\n \"font-variant\", \"font-variant-alternates\", \"font-variant-caps\",\n \"font-variant-east-asian\", \"font-variant-ligatures\", \"font-variant-numeric\",\n \"font-variant-position\", \"font-variation-settings\", \"font-weight\", \"gap\",\n \"grid\", \"grid-area\", \"grid-auto-columns\", \"grid-auto-flow\", \"grid-auto-rows\",\n \"grid-column\", \"grid-column-end\", \"grid-column-gap\", \"grid-column-start\",\n \"grid-gap\", \"grid-row\", \"grid-row-end\", \"grid-row-gap\", \"grid-row-start\",\n \"grid-template\", \"grid-template-areas\", \"grid-template-columns\",\n \"grid-template-rows\", \"hanging-punctuation\", \"height\", \"hyphens\", \"icon\",\n \"image-orientation\", \"image-rendering\", \"image-resolution\", \"inline-box-align\",\n \"inset\", \"inset-block\", \"inset-block-end\", \"inset-block-start\", \"inset-inline\",\n \"inset-inline-end\", \"inset-inline-start\", \"isolation\", \"justify-content\",\n \"justify-items\", \"justify-self\", \"left\", \"letter-spacing\", \"line-break\",\n \"line-height\", \"line-height-step\", \"line-stacking\", \"line-stacking-ruby\",\n \"line-stacking-shift\", \"line-stacking-strategy\", \"list-style\",\n \"list-style-image\", \"list-style-position\", \"list-style-type\", \"margin\",\n \"margin-bottom\", \"margin-left\", \"margin-right\", \"margin-top\", \"marks\",\n \"marquee-direction\", \"marquee-loop\", \"marquee-play-count\", \"marquee-speed\",\n \"marquee-style\", \"mask-clip\", \"mask-composite\", \"mask-image\", \"mask-mode\",\n \"mask-origin\", \"mask-position\", \"mask-repeat\", \"mask-size\",\"mask-type\",\n \"max-block-size\", \"max-height\", \"max-inline-size\",\n \"max-width\", \"min-block-size\", \"min-height\", \"min-inline-size\", \"min-width\",\n \"mix-blend-mode\", \"move-to\", \"nav-down\", \"nav-index\", \"nav-left\", \"nav-right\",\n \"nav-up\", \"object-fit\", \"object-position\", \"offset\", \"offset-anchor\",\n \"offset-distance\", \"offset-path\", \"offset-position\", \"offset-rotate\",\n \"opacity\", \"order\", \"orphans\", \"outline\", \"outline-color\", \"outline-offset\",\n \"outline-style\", \"outline-width\", \"overflow\", \"overflow-style\",\n \"overflow-wrap\", \"overflow-x\", \"overflow-y\", \"padding\", \"padding-bottom\",\n \"padding-left\", \"padding-right\", \"padding-top\", \"page\", \"page-break-after\",\n \"page-break-before\", \"page-break-inside\", \"page-policy\", \"pause\",\n \"pause-after\", \"pause-before\", \"perspective\", \"perspective-origin\", \"pitch\",\n \"pitch-range\", \"place-content\", \"place-items\", \"place-self\", \"play-during\",\n \"position\", \"presentation-level\", \"punctuation-trim\", \"quotes\",\n \"region-break-after\", \"region-break-before\", \"region-break-inside\",\n \"region-fragment\", \"rendering-intent\", \"resize\", \"rest\", \"rest-after\",\n \"rest-before\", \"richness\", \"right\", \"rotate\", \"rotation\", \"rotation-point\",\n \"row-gap\", \"ruby-align\", \"ruby-overhang\", \"ruby-position\", \"ruby-span\",\n \"scale\", \"scroll-behavior\", \"scroll-margin\", \"scroll-margin-block\",\n \"scroll-margin-block-end\", \"scroll-margin-block-start\", \"scroll-margin-bottom\",\n \"scroll-margin-inline\", \"scroll-margin-inline-end\",\n \"scroll-margin-inline-start\", \"scroll-margin-left\", \"scroll-margin-right\",\n \"scroll-margin-top\", \"scroll-padding\", \"scroll-padding-block\",\n \"scroll-padding-block-end\", \"scroll-padding-block-start\",\n \"scroll-padding-bottom\", \"scroll-padding-inline\", \"scroll-padding-inline-end\",\n \"scroll-padding-inline-start\", \"scroll-padding-left\", \"scroll-padding-right\",\n \"scroll-padding-top\", \"scroll-snap-align\", \"scroll-snap-type\",\n \"shape-image-threshold\", \"shape-inside\", \"shape-margin\", \"shape-outside\",\n \"size\", \"speak\", \"speak-as\", \"speak-header\", \"speak-numeral\",\n \"speak-punctuation\", \"speech-rate\", \"stress\", \"string-set\", \"tab-size\",\n \"table-layout\", \"target\", \"target-name\", \"target-new\", \"target-position\",\n \"text-align\", \"text-align-last\", \"text-combine-upright\", \"text-decoration\",\n \"text-decoration-color\", \"text-decoration-line\", \"text-decoration-skip\",\n \"text-decoration-skip-ink\", \"text-decoration-style\", \"text-emphasis\",\n \"text-emphasis-color\", \"text-emphasis-position\", \"text-emphasis-style\",\n \"text-height\", \"text-indent\", \"text-justify\", \"text-orientation\",\n \"text-outline\", \"text-overflow\", \"text-rendering\", \"text-shadow\",\n \"text-size-adjust\", \"text-space-collapse\", \"text-transform\",\n \"text-underline-position\", \"text-wrap\", \"top\", \"touch-action\", \"transform\", \"transform-origin\",\n \"transform-style\", \"transition\", \"transition-delay\", \"transition-duration\",\n \"transition-property\", \"transition-timing-function\", \"translate\",\n \"unicode-bidi\", \"user-select\", \"vertical-align\", \"visibility\", \"voice-balance\",\n \"voice-duration\", \"voice-family\", \"voice-pitch\", \"voice-range\", \"voice-rate\",\n \"voice-stress\", \"voice-volume\", \"volume\", \"white-space\", \"widows\", \"width\",\n \"will-change\", \"word-break\", \"word-spacing\", \"word-wrap\", \"writing-mode\", \"z-index\",\n // SVG-specific\n \"clip-path\", \"clip-rule\", \"mask\", \"enable-background\", \"filter\", \"flood-color\",\n \"flood-opacity\", \"lighting-color\", \"stop-color\", \"stop-opacity\", \"pointer-events\",\n \"color-interpolation\", \"color-interpolation-filters\",\n \"color-rendering\", \"fill\", \"fill-opacity\", \"fill-rule\", \"image-rendering\",\n \"marker\", \"marker-end\", \"marker-mid\", \"marker-start\", \"paint-order\", \"shape-rendering\", \"stroke\",\n \"stroke-dasharray\", \"stroke-dashoffset\", \"stroke-linecap\", \"stroke-linejoin\",\n \"stroke-miterlimit\", \"stroke-opacity\", \"stroke-width\", \"text-rendering\",\n \"baseline-shift\", \"dominant-baseline\", \"glyph-orientation-horizontal\",\n \"glyph-orientation-vertical\", \"text-anchor\", \"writing-mode\",\n ], propertyKeywords = keySet(propertyKeywords_);\n\n var nonStandardPropertyKeywords_ = [\n \"accent-color\", \"aspect-ratio\", \"border-block\", \"border-block-color\", \"border-block-end\",\n \"border-block-end-color\", \"border-block-end-style\", \"border-block-end-width\",\n \"border-block-start\", \"border-block-start-color\", \"border-block-start-style\",\n \"border-block-start-width\", \"border-block-style\", \"border-block-width\",\n \"border-inline\", \"border-inline-color\", \"border-inline-end\",\n \"border-inline-end-color\", \"border-inline-end-style\",\n \"border-inline-end-width\", \"border-inline-start\", \"border-inline-start-color\",\n \"border-inline-start-style\", \"border-inline-start-width\",\n \"border-inline-style\", \"border-inline-width\", \"content-visibility\", \"margin-block\",\n \"margin-block-end\", \"margin-block-start\", \"margin-inline\", \"margin-inline-end\",\n \"margin-inline-start\", \"overflow-anchor\", \"overscroll-behavior\", \"padding-block\", \"padding-block-end\",\n \"padding-block-start\", \"padding-inline\", \"padding-inline-end\",\n \"padding-inline-start\", \"scroll-snap-stop\", \"scrollbar-3d-light-color\",\n \"scrollbar-arrow-color\", \"scrollbar-base-color\", \"scrollbar-dark-shadow-color\",\n \"scrollbar-face-color\", \"scrollbar-highlight-color\", \"scrollbar-shadow-color\",\n \"scrollbar-track-color\", \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"shape-inside\", \"zoom\"\n ], nonStandardPropertyKeywords = keySet(nonStandardPropertyKeywords_);\n\n var fontProperties_ = [\n \"font-display\", \"font-family\", \"src\", \"unicode-range\", \"font-variant\",\n \"font-feature-settings\", \"font-stretch\", \"font-weight\", \"font-style\"\n ], fontProperties = keySet(fontProperties_);\n\n var counterDescriptors_ = [\n \"additive-symbols\", \"fallback\", \"negative\", \"pad\", \"prefix\", \"range\",\n \"speak-as\", \"suffix\", \"symbols\", \"system\"\n ], counterDescriptors = keySet(counterDescriptors_);\n\n var colorKeywords_ = [\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkgrey\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkslategrey\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dimgrey\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightgrey\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\", \"lightslategrey\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"slategrey\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n ], colorKeywords = keySet(colorKeywords_);\n\n var valueKeywords_ = [\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"afar\",\n \"after-white-space\", \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\",\n \"always\", \"amharic\", \"amharic-abegede\", \"antialiased\", \"appworkspace\",\n \"arabic-indic\", \"armenian\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\", \"avoid-page\",\n \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\", \"bidi-override\", \"binary\",\n \"bengali\", \"blink\", \"block\", \"block-axis\", \"blur\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"brightness\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"cambodian\",\n \"capitalize\", \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\",\n \"cell\", \"center\", \"checkbox\", \"circle\", \"cjk-decimal\", \"cjk-earthly-branch\",\n \"cjk-heavenly-stem\", \"cjk-ideographic\", \"clear\", \"clip\", \"close-quote\",\n \"col-resize\", \"collapse\", \"color\", \"color-burn\", \"color-dodge\", \"column\", \"column-reverse\",\n \"compact\", \"condensed\", \"contain\", \"content\", \"contents\",\n \"content-box\", \"context-menu\", \"continuous\", \"contrast\", \"copy\", \"counter\", \"counters\", \"cover\", \"crop\",\n \"cross\", \"crosshair\", \"cubic-bezier\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\",\n \"destination-in\", \"destination-out\", \"destination-over\", \"devanagari\", \"difference\",\n \"disc\", \"discard\", \"disclosure-closed\", \"disclosure-open\", \"document\",\n \"dot-dash\", \"dot-dot-dash\",\n \"dotted\", \"double\", \"down\", \"drop-shadow\", \"e-resize\", \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\",\n \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\", \"ethiopic\", \"ethiopic-abegede\",\n \"ethiopic-abegede-am-et\", \"ethiopic-abegede-gez\", \"ethiopic-abegede-ti-er\",\n \"ethiopic-abegede-ti-et\", \"ethiopic-halehame-aa-er\",\n \"ethiopic-halehame-aa-et\", \"ethiopic-halehame-am-et\",\n \"ethiopic-halehame-gez\", \"ethiopic-halehame-om-et\",\n \"ethiopic-halehame-sid-et\", \"ethiopic-halehame-so-et\",\n \"ethiopic-halehame-ti-er\", \"ethiopic-halehame-ti-et\", \"ethiopic-halehame-tig\",\n \"ethiopic-numeric\", \"ew-resize\", \"exclusion\", \"expanded\", \"extends\", \"extra-condensed\",\n \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\", \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\",\n \"forwards\", \"from\", \"geometricPrecision\", \"georgian\", \"grayscale\", \"graytext\", \"grid\", \"groove\",\n \"gujarati\", \"gurmukhi\", \"hand\", \"hangul\", \"hangul-consonant\", \"hard-light\", \"hebrew\",\n \"help\", \"hidden\", \"hide\", \"higher\", \"highlight\", \"highlighttext\",\n \"hiragana\", \"hiragana-iroha\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"hue-rotate\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\",\n \"infobackground\", \"infotext\", \"inherit\", \"initial\", \"inline\", \"inline-axis\",\n \"inline-block\", \"inline-flex\", \"inline-grid\", \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\",\n \"italic\", \"japanese-formal\", \"japanese-informal\", \"justify\", \"kannada\",\n \"katakana\", \"katakana-iroha\", \"keep-all\", \"khmer\",\n \"korean-hangul-formal\", \"korean-hanja-formal\", \"korean-hanja-informal\",\n \"landscape\", \"lao\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\",\n \"line-through\", \"linear\", \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\",\n \"local\", \"logical\", \"loud\", \"lower\", \"lower-alpha\", \"lower-armenian\",\n \"lower-greek\", \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\",\n \"lower-roman\", \"lowercase\", \"ltr\", \"luminosity\", \"malayalam\", \"manipulation\", \"match\", \"matrix\", \"matrix3d\",\n \"media-controls-background\", \"media-current-time-display\",\n \"media-fullscreen-button\", \"media-mute-button\", \"media-play-button\",\n \"media-return-to-realtime-button\", \"media-rewind-button\",\n \"media-seek-back-button\", \"media-seek-forward-button\", \"media-slider\",\n \"media-sliderthumb\", \"media-time-remaining-display\", \"media-volume-slider\",\n \"media-volume-slider-container\", \"media-volume-sliderthumb\", \"medium\",\n \"menu\", \"menulist\", \"menulist-button\", \"menulist-text\",\n \"menulist-textfield\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"mongolian\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"myanmar\", \"n-resize\",\n \"narrower\", \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\",\n \"no-open-quote\", \"no-repeat\", \"none\", \"normal\", \"not-allowed\", \"nowrap\",\n \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\", \"oblique\", \"octal\", \"opacity\", \"open-quote\",\n \"optimizeLegibility\", \"optimizeSpeed\", \"oriya\", \"oromo\", \"outset\",\n \"outside\", \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\",\n \"painted\", \"page\", \"paused\", \"persian\", \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\",\n \"pointer\", \"polygon\", \"portrait\", \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\",\n \"progress\", \"push-button\", \"radial-gradient\", \"radio\", \"read-only\",\n \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\",\n \"relative\", \"repeat\", \"repeating-linear-gradient\",\n \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\",\n \"rotateZ\", \"round\", \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\",\n \"s-resize\", \"sans-serif\", \"saturate\", \"saturation\", \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\",\n \"scroll\", \"scrollbar\", \"scroll-position\", \"se-resize\", \"searchfield\",\n \"searchfield-cancel-button\", \"searchfield-decoration\",\n \"searchfield-results-button\", \"searchfield-results-decoration\", \"self-start\", \"self-end\",\n \"semi-condensed\", \"semi-expanded\", \"separate\", \"sepia\", \"serif\", \"show\", \"sidama\",\n \"simp-chinese-formal\", \"simp-chinese-informal\", \"single\",\n \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\",\n \"small\", \"small-caps\", \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"somali\",\n \"source-atop\", \"source-in\", \"source-out\", \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\",\n \"square-button\", \"start\", \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\",\n \"subpixel-antialiased\", \"svg_masks\", \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\",\n \"table-caption\", \"table-cell\", \"table-column\", \"table-column-group\",\n \"table-footer-group\", \"table-header-group\", \"table-row\", \"table-row-group\",\n \"tamil\",\n \"telugu\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thai\",\n \"thick\", \"thin\", \"threeddarkshadow\", \"threedface\", \"threedhighlight\",\n \"threedlightshadow\", \"threedshadow\", \"tibetan\", \"tigre\", \"tigrinya-er\",\n \"tigrinya-er-abegede\", \"tigrinya-et\", \"tigrinya-et-abegede\", \"to\", \"top\",\n \"trad-chinese-formal\", \"trad-chinese-informal\", \"transform\",\n \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\",\n \"transparent\", \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\",\n \"upper-alpha\", \"upper-armenian\", \"upper-greek\", \"upper-hexadecimal\",\n \"upper-latin\", \"upper-norwegian\", \"upper-roman\", \"uppercase\", \"urdu\", \"url\",\n \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\", \"visiblePainted\",\n \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\",\n \"window\", \"windowframe\", \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\",\n \"xx-large\", \"xx-small\"\n ], valueKeywords = keySet(valueKeywords_);\n\n var allWords = documentTypes_.concat(mediaTypes_).concat(mediaFeatures_).concat(mediaValueKeywords_)\n .concat(propertyKeywords_).concat(nonStandardPropertyKeywords_).concat(colorKeywords_)\n .concat(valueKeywords_);\n CodeMirror.registerHelper(\"hintWords\", \"css\", allWords);\n\n function tokenCComment(stream, state) {\n var maybeEnd = false, ch;\n while ((ch = stream.next()) != null) {\n if (maybeEnd && ch == \"/\") {\n state.tokenize = null;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return [\"comment\", \"comment\"];\n }\n\n CodeMirror.defineMIME(\"text/css\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\"\n });\n\n CodeMirror.defineMIME(\"text/x-scss\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \":\": function(stream) {\n if (stream.match(/^\\s*\\{/, false))\n return [null, null]\n return false;\n },\n \"$\": function(stream) {\n stream.match(/^[\\w-]+/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"#\": function(stream) {\n if (!stream.eat(\"{\")) return false;\n return [null, \"interpolation\"];\n }\n },\n name: \"css\",\n helperType: \"scss\"\n });\n\n CodeMirror.defineMIME(\"text/x-less\", {\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n mediaValueKeywords: mediaValueKeywords,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n fontProperties: fontProperties,\n allowNested: true,\n lineComment: \"//\",\n tokenHooks: {\n \"/\": function(stream, state) {\n if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return [\"comment\", \"comment\"];\n } else if (stream.eat(\"*\")) {\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n } else {\n return [\"operator\", \"operator\"];\n }\n },\n \"@\": function(stream) {\n if (stream.eat(\"{\")) return [null, \"interpolation\"];\n if (stream.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i, false)) return false;\n stream.eatWhile(/[\\w\\\\\\-]/);\n if (stream.match(/^\\s*:/, false))\n return [\"variable-2\", \"variable-definition\"];\n return [\"variable-2\", \"variable\"];\n },\n \"&\": function() {\n return [\"atom\", \"atom\"];\n }\n },\n name: \"css\",\n helperType: \"less\"\n });\n\n CodeMirror.defineMIME(\"text/x-gss\", {\n documentTypes: documentTypes,\n mediaTypes: mediaTypes,\n mediaFeatures: mediaFeatures,\n propertyKeywords: propertyKeywords,\n nonStandardPropertyKeywords: nonStandardPropertyKeywords,\n fontProperties: fontProperties,\n counterDescriptors: counterDescriptors,\n colorKeywords: colorKeywords,\n valueKeywords: valueKeywords,\n supportsAtComponent: true,\n tokenHooks: {\n \"/\": function(stream, state) {\n if (!stream.eat(\"*\")) return false;\n state.tokenize = tokenCComment;\n return tokenCComment(stream, state);\n }\n },\n name: \"css\",\n helperType: \"gss\"\n });\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n var ie_lt8 = /MSIE \\d/.test(navigator.userAgent) &&\n (document.documentMode == null || document.documentMode < 8);\n\n var Pos = CodeMirror.Pos;\n\n var matching = {\"(\": \")>\", \")\": \"(<\", \"[\": \"]>\", \"]\": \"[<\", \"{\": \"}>\", \"}\": \"{<\", \"<\": \">>\", \">\": \"<<\"};\n\n function bracketRegex(config) {\n return config && config.bracketRegex || /[(){}[\\]]/\n }\n\n function findMatchingBracket(cm, where, config) {\n var line = cm.getLineHandle(where.line), pos = where.ch - 1;\n var afterCursor = config && config.afterCursor\n if (afterCursor == null)\n afterCursor = /(^| )cm-fat-cursor($| )/.test(cm.getWrapperElement().className)\n var re = bracketRegex(config)\n\n // A cursor is defined as between two characters, but in in vim command mode\n // (i.e. not insert mode), the cursor is visually represented as a\n // highlighted box on top of the 2nd character. Otherwise, we allow matches\n // from before or after the cursor.\n var match = (!afterCursor && pos >= 0 && re.test(line.text.charAt(pos)) && matching[line.text.charAt(pos)]) ||\n re.test(line.text.charAt(pos + 1)) && matching[line.text.charAt(++pos)];\n if (!match) return null;\n var dir = match.charAt(1) == \">\" ? 1 : -1;\n if (config && config.strict && (dir > 0) != (pos == where.ch)) return null;\n var style = cm.getTokenTypeAt(Pos(where.line, pos + 1));\n\n var found = scanForBracket(cm, Pos(where.line, pos + (dir > 0 ? 1 : 0)), dir, style, config);\n if (found == null) return null;\n return {from: Pos(where.line, pos), to: found && found.pos,\n match: found && found.ch == match.charAt(0), forward: dir > 0};\n }\n\n // bracketRegex is used to specify which type of bracket to scan\n // should be a regexp, e.g. /[[\\]]/\n //\n // Note: If \"where\" is on an open bracket, then this bracket is ignored.\n //\n // Returns false when no bracket was found, null when it reached\n // maxScanLines and gave up\n function scanForBracket(cm, where, dir, style, config) {\n var maxScanLen = (config && config.maxScanLineLength) || 10000;\n var maxScanLines = (config && config.maxScanLines) || 1000;\n\n var stack = [];\n var re = bracketRegex(config)\n var lineEnd = dir > 0 ? Math.min(where.line + maxScanLines, cm.lastLine() + 1)\n : Math.max(cm.firstLine() - 1, where.line - maxScanLines);\n for (var lineNo = where.line; lineNo != lineEnd; lineNo += dir) {\n var line = cm.getLine(lineNo);\n if (!line) continue;\n var pos = dir > 0 ? 0 : line.length - 1, end = dir > 0 ? line.length : -1;\n if (line.length > maxScanLen) continue;\n if (lineNo == where.line) pos = where.ch - (dir < 0 ? 1 : 0);\n for (; pos != end; pos += dir) {\n var ch = line.charAt(pos);\n if (re.test(ch) && (style === undefined ||\n (cm.getTokenTypeAt(Pos(lineNo, pos + 1)) || \"\") == (style || \"\"))) {\n var match = matching[ch];\n if (match && (match.charAt(1) == \">\") == (dir > 0)) stack.push(ch);\n else if (!stack.length) return {pos: Pos(lineNo, pos), ch: ch};\n else stack.pop();\n }\n }\n }\n return lineNo - dir == (dir > 0 ? cm.lastLine() : cm.firstLine()) ? false : null;\n }\n\n function matchBrackets(cm, autoclear, config) {\n // Disable brace matching in long lines, since it'll cause hugely slow updates\n var maxHighlightLen = cm.state.matchBrackets.maxHighlightLineLength || 1000,\n highlightNonMatching = config && config.highlightNonMatching;\n var marks = [], ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++) {\n var match = ranges[i].empty() && findMatchingBracket(cm, ranges[i].head, config);\n if (match && (match.match || highlightNonMatching !== false) && cm.getLine(match.from.line).length <= maxHighlightLen) {\n var style = match.match ? \"CodeMirror-matchingbracket\" : \"CodeMirror-nonmatchingbracket\";\n marks.push(cm.markText(match.from, Pos(match.from.line, match.from.ch + 1), {className: style}));\n if (match.to && cm.getLine(match.to.line).length <= maxHighlightLen)\n marks.push(cm.markText(match.to, Pos(match.to.line, match.to.ch + 1), {className: style}));\n }\n }\n\n if (marks.length) {\n // Kludge to work around the IE bug from issue #1193, where text\n // input stops going to the textarea whenever this fires.\n if (ie_lt8 && cm.state.focused) cm.focus();\n\n var clear = function() {\n cm.operation(function() {\n for (var i = 0; i < marks.length; i++) marks[i].clear();\n });\n };\n if (autoclear) setTimeout(clear, 800);\n else return clear;\n }\n }\n\n function doMatchBrackets(cm) {\n cm.operation(function() {\n if (cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n cm.state.matchBrackets.currentlyHighlighted = matchBrackets(cm, false, cm.state.matchBrackets);\n });\n }\n\n function clearHighlighted(cm) {\n if (cm.state.matchBrackets && cm.state.matchBrackets.currentlyHighlighted) {\n cm.state.matchBrackets.currentlyHighlighted();\n cm.state.matchBrackets.currentlyHighlighted = null;\n }\n }\n\n CodeMirror.defineOption(\"matchBrackets\", false, function(cm, val, old) {\n if (old && old != CodeMirror.Init) {\n cm.off(\"cursorActivity\", doMatchBrackets);\n cm.off(\"focus\", doMatchBrackets)\n cm.off(\"blur\", clearHighlighted)\n clearHighlighted(cm);\n }\n if (val) {\n cm.state.matchBrackets = typeof val == \"object\" ? val : {};\n cm.on(\"cursorActivity\", doMatchBrackets);\n cm.on(\"focus\", doMatchBrackets)\n cm.on(\"blur\", clearHighlighted)\n }\n });\n\n CodeMirror.defineExtension(\"matchBrackets\", function() {matchBrackets(this, true);});\n CodeMirror.defineExtension(\"findMatchingBracket\", function(pos, config, oldConfig){\n // Backwards-compatibility kludge\n if (oldConfig || typeof config == \"boolean\") {\n if (!oldConfig) {\n config = config ? {strict: true} : null\n } else {\n oldConfig.strict = config\n config = oldConfig\n }\n }\n return findMatchingBracket(this, pos, config)\n });\n CodeMirror.defineExtension(\"scanForBracket\", function(pos, dir, style, config){\n return scanForBracket(this, pos, dir, style, config);\n });\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Because sometimes you need to mark the selected *text*.\n//\n// Adds an option 'styleSelectedText' which, when enabled, gives\n// selected text the CSS class given as option value, or\n// \"CodeMirror-selectedtext\" when the value is not a string.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineOption(\"styleSelectedText\", false, function(cm, val, old) {\n var prev = old && old != CodeMirror.Init;\n if (val && !prev) {\n cm.state.markedSelection = [];\n cm.state.markedSelectionStyle = typeof val == \"string\" ? val : \"CodeMirror-selectedtext\";\n reset(cm);\n cm.on(\"cursorActivity\", onCursorActivity);\n cm.on(\"change\", onChange);\n } else if (!val && prev) {\n cm.off(\"cursorActivity\", onCursorActivity);\n cm.off(\"change\", onChange);\n clear(cm);\n cm.state.markedSelection = cm.state.markedSelectionStyle = null;\n }\n });\n\n function onCursorActivity(cm) {\n if (cm.state.markedSelection)\n cm.operation(function() { update(cm); });\n }\n\n function onChange(cm) {\n if (cm.state.markedSelection && cm.state.markedSelection.length)\n cm.operation(function() { clear(cm); });\n }\n\n var CHUNK_SIZE = 8;\n var Pos = CodeMirror.Pos;\n var cmp = CodeMirror.cmpPos;\n\n function coverRange(cm, from, to, addAt) {\n if (cmp(from, to) == 0) return;\n var array = cm.state.markedSelection;\n var cls = cm.state.markedSelectionStyle;\n for (var line = from.line;;) {\n var start = line == from.line ? from : Pos(line, 0);\n var endLine = line + CHUNK_SIZE, atEnd = endLine >= to.line;\n var end = atEnd ? to : Pos(endLine, 0);\n var mark = cm.markText(start, end, {className: cls});\n if (addAt == null) array.push(mark);\n else array.splice(addAt++, 0, mark);\n if (atEnd) break;\n line = endLine;\n }\n }\n\n function clear(cm) {\n var array = cm.state.markedSelection;\n for (var i = 0; i < array.length; ++i) array[i].clear();\n array.length = 0;\n }\n\n function reset(cm) {\n clear(cm);\n var ranges = cm.listSelections();\n for (var i = 0; i < ranges.length; i++)\n coverRange(cm, ranges[i].from(), ranges[i].to());\n }\n\n function update(cm) {\n if (!cm.somethingSelected()) return clear(cm);\n if (cm.listSelections().length > 1) return reset(cm);\n\n var from = cm.getCursor(\"start\"), to = cm.getCursor(\"end\");\n\n var array = cm.state.markedSelection;\n if (!array.length) return coverRange(cm, from, to);\n\n var coverStart = array[0].find(), coverEnd = array[array.length - 1].find();\n if (!coverStart || !coverEnd || to.line - from.line <= CHUNK_SIZE ||\n cmp(from, coverEnd.to) >= 0 || cmp(to, coverStart.from) <= 0)\n return reset(cm);\n\n while (cmp(from, coverStart.from) > 0) {\n array.shift().clear();\n coverStart = array[0].find();\n }\n if (cmp(from, coverStart.from) < 0) {\n if (coverStart.to.line - from.line < CHUNK_SIZE) {\n array.shift().clear();\n coverRange(cm, from, coverStart.to, 0);\n } else {\n coverRange(cm, from, coverStart.from, 0);\n }\n }\n\n while (cmp(to, coverEnd.to) < 0) {\n array.pop().clear();\n coverEnd = array[array.length - 1].find();\n }\n if (cmp(to, coverEnd.to) > 0) {\n if (to.line - coverEnd.from.line < CHUNK_SIZE) {\n array.pop().clear();\n coverRange(cm, coverEnd.from, to);\n } else {\n coverRange(cm, coverEnd.to, to);\n }\n }\n }\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n// Utility function that allows modes to be combined. The mode given\n// as the base argument takes care of most of the normal mode\n// functionality, but a second (typically simple) mode is used, which\n// can override the style of text. Both modes get to parse all of the\n// text, but when both assign a non-null style to a piece of code, the\n// overlay wins, unless the combine argument was true and not overridden,\n// or state.overlay.combineTokens was true, in which case the styles are\n// combined.\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.overlayMode = function(base, overlay, combine) {\n return {\n startState: function() {\n return {\n base: CodeMirror.startState(base),\n overlay: CodeMirror.startState(overlay),\n basePos: 0, baseCur: null,\n overlayPos: 0, overlayCur: null,\n streamSeen: null\n };\n },\n copyState: function(state) {\n return {\n base: CodeMirror.copyState(base, state.base),\n overlay: CodeMirror.copyState(overlay, state.overlay),\n basePos: state.basePos, baseCur: null,\n overlayPos: state.overlayPos, overlayCur: null\n };\n },\n\n token: function(stream, state) {\n if (stream != state.streamSeen ||\n Math.min(state.basePos, state.overlayPos) < stream.start) {\n state.streamSeen = stream;\n state.basePos = state.overlayPos = stream.start;\n }\n\n if (stream.start == state.basePos) {\n state.baseCur = base.token(stream, state.base);\n state.basePos = stream.pos;\n }\n if (stream.start == state.overlayPos) {\n stream.pos = stream.start;\n state.overlayCur = overlay.token(stream, state.overlay);\n state.overlayPos = stream.pos;\n }\n stream.pos = Math.min(state.basePos, state.overlayPos);\n\n // state.overlay.combineTokens always takes precedence over combine,\n // unless set to null\n if (state.overlayCur == null) return state.baseCur;\n else if (state.baseCur != null &&\n state.overlay.combineTokens ||\n combine && state.overlay.combineTokens == null)\n return state.baseCur + \" \" + state.overlayCur;\n else return state.overlayCur;\n },\n\n indent: base.indent && function(state, textAfter, line) {\n return base.indent(state.base, textAfter, line);\n },\n electricChars: base.electricChars,\n\n innerMode: function(state) { return {state: state.base, mode: base}; },\n\n blankLine: function(state) {\n var baseToken, overlayToken;\n if (base.blankLine) baseToken = base.blankLine(state.base);\n if (overlay.blankLine) overlayToken = overlay.blankLine(state.overlay);\n\n return overlayToken == null ?\n baseToken :\n (combine && baseToken != null ? baseToken + \" \" + overlayToken : overlayToken);\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n/**\n * Link to the project's GitHub page:\n * https://github.com/pickhardt/coffeescript-codemirror-mode\n */\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"coffeescript\", function(conf, parserConf) {\n var ERRORCLASS = \"error\";\n\n function wordRegexp(words) {\n return new RegExp(\"^((\" + words.join(\")|(\") + \"))\\\\b\");\n }\n\n var operators = /^(?:->|=>|\\+[+=]?|-[\\-=]?|\\*[\\*=]?|\\/[\\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\\|=?|\\^=?|\\~|!|\\?|(or|and|\\|\\||&&|\\?)=)/;\n var delimiters = /^(?:[()\\[\\]{},:`=;]|\\.\\.?\\.?)/;\n var identifiers = /^[_A-Za-z$][_A-Za-z$0-9]*/;\n var atProp = /^@[_A-Za-z$][_A-Za-z$0-9]*/;\n\n var wordOperators = wordRegexp([\"and\", \"or\", \"not\",\n \"is\", \"isnt\", \"in\",\n \"instanceof\", \"typeof\"]);\n var indentKeywords = [\"for\", \"while\", \"loop\", \"if\", \"unless\", \"else\",\n \"switch\", \"try\", \"catch\", \"finally\", \"class\"];\n var commonKeywords = [\"break\", \"by\", \"continue\", \"debugger\", \"delete\",\n \"do\", \"in\", \"of\", \"new\", \"return\", \"then\",\n \"this\", \"@\", \"throw\", \"when\", \"until\", \"extends\"];\n\n var keywords = wordRegexp(indentKeywords.concat(commonKeywords));\n\n indentKeywords = wordRegexp(indentKeywords);\n\n\n var stringPrefixes = /^('{3}|\\\"{3}|['\\\"])/;\n var regexPrefixes = /^(\\/{3}|\\/)/;\n var commonConstants = [\"Infinity\", \"NaN\", \"undefined\", \"null\", \"true\", \"false\", \"on\", \"off\", \"yes\", \"no\"];\n var constants = wordRegexp(commonConstants);\n\n // Tokenizers\n function tokenBase(stream, state) {\n // Handle scope changes\n if (stream.sol()) {\n if (state.scope.align === null) state.scope.align = false;\n var scopeOffset = state.scope.offset;\n if (stream.eatSpace()) {\n var lineOffset = stream.indentation();\n if (lineOffset > scopeOffset && state.scope.type == \"coffee\") {\n return \"indent\";\n } else if (lineOffset < scopeOffset) {\n return \"dedent\";\n }\n return null;\n } else {\n if (scopeOffset > 0) {\n dedent(stream, state);\n }\n }\n }\n if (stream.eatSpace()) {\n return null;\n }\n\n var ch = stream.peek();\n\n // Handle docco title comment (single line)\n if (stream.match(\"####\")) {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle multi line comments\n if (stream.match(\"###\")) {\n state.tokenize = longComment;\n return state.tokenize(stream, state);\n }\n\n // Single line comment\n if (ch === \"#\") {\n stream.skipToEnd();\n return \"comment\";\n }\n\n // Handle number literals\n if (stream.match(/^-?[0-9\\.]/, false)) {\n var floatLiteral = false;\n // Floats\n if (stream.match(/^-?\\d*\\.\\d+(e[\\+\\-]?\\d+)?/i)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\d+\\.\\d*/)) {\n floatLiteral = true;\n }\n if (stream.match(/^-?\\.\\d+/)) {\n floatLiteral = true;\n }\n\n if (floatLiteral) {\n // prevent from getting extra . on 1..\n if (stream.peek() == \".\"){\n stream.backUp(1);\n }\n return \"number\";\n }\n // Integers\n var intLiteral = false;\n // Hex\n if (stream.match(/^-?0x[0-9a-f]+/i)) {\n intLiteral = true;\n }\n // Decimal\n if (stream.match(/^-?[1-9]\\d*(e[\\+\\-]?\\d+)?/)) {\n intLiteral = true;\n }\n // Zero by itself with no other piece of number.\n if (stream.match(/^-?0(?![\\dx])/i)) {\n intLiteral = true;\n }\n if (intLiteral) {\n return \"number\";\n }\n }\n\n // Handle strings\n if (stream.match(stringPrefixes)) {\n state.tokenize = tokenFactory(stream.current(), false, \"string\");\n return state.tokenize(stream, state);\n }\n // Handle regex literals\n if (stream.match(regexPrefixes)) {\n if (stream.current() != \"/\" || stream.match(/^.*\\//, false)) { // prevent highlight of division\n state.tokenize = tokenFactory(stream.current(), true, \"string-2\");\n return state.tokenize(stream, state);\n } else {\n stream.backUp(1);\n }\n }\n\n\n\n // Handle operators and delimiters\n if (stream.match(operators) || stream.match(wordOperators)) {\n return \"operator\";\n }\n if (stream.match(delimiters)) {\n return \"punctuation\";\n }\n\n if (stream.match(constants)) {\n return \"atom\";\n }\n\n if (stream.match(atProp) || state.prop && stream.match(identifiers)) {\n return \"property\";\n }\n\n if (stream.match(keywords)) {\n return \"keyword\";\n }\n\n if (stream.match(identifiers)) {\n return \"variable\";\n }\n\n // Handle non-detected items\n stream.next();\n return ERRORCLASS;\n }\n\n function tokenFactory(delimiter, singleline, outclass) {\n return function(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^'\"\\/\\\\]/);\n if (stream.eat(\"\\\\\")) {\n stream.next();\n if (singleline && stream.eol()) {\n return outclass;\n }\n } else if (stream.match(delimiter)) {\n state.tokenize = tokenBase;\n return outclass;\n } else {\n stream.eat(/['\"\\/]/);\n }\n }\n if (singleline) {\n if (parserConf.singleLineStringErrors) {\n outclass = ERRORCLASS;\n } else {\n state.tokenize = tokenBase;\n }\n }\n return outclass;\n };\n }\n\n function longComment(stream, state) {\n while (!stream.eol()) {\n stream.eatWhile(/[^#]/);\n if (stream.match(\"###\")) {\n state.tokenize = tokenBase;\n break;\n }\n stream.eatWhile(\"#\");\n }\n return \"comment\";\n }\n\n function indent(stream, state, type) {\n type = type || \"coffee\";\n var offset = 0, align = false, alignOffset = null;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (scope.type === \"coffee\" || scope.type == \"}\") {\n offset = scope.offset + conf.indentUnit;\n break;\n }\n }\n if (type !== \"coffee\") {\n align = null;\n alignOffset = stream.column() + stream.current().length;\n } else if (state.scope.align) {\n state.scope.align = false;\n }\n state.scope = {\n offset: offset,\n type: type,\n prev: state.scope,\n align: align,\n alignOffset: alignOffset\n };\n }\n\n function dedent(stream, state) {\n if (!state.scope.prev) return;\n if (state.scope.type === \"coffee\") {\n var _indent = stream.indentation();\n var matched = false;\n for (var scope = state.scope; scope; scope = scope.prev) {\n if (_indent === scope.offset) {\n matched = true;\n break;\n }\n }\n if (!matched) {\n return true;\n }\n while (state.scope.prev && state.scope.offset !== _indent) {\n state.scope = state.scope.prev;\n }\n return false;\n } else {\n state.scope = state.scope.prev;\n return false;\n }\n }\n\n function tokenLexer(stream, state) {\n var style = state.tokenize(stream, state);\n var current = stream.current();\n\n // Handle scope changes.\n if (current === \"return\") {\n state.dedent = true;\n }\n if (((current === \"->\" || current === \"=>\") && stream.eol())\n || style === \"indent\") {\n indent(stream, state);\n }\n var delimiter_index = \"[({\".indexOf(current);\n if (delimiter_index !== -1) {\n indent(stream, state, \"])}\".slice(delimiter_index, delimiter_index+1));\n }\n if (indentKeywords.exec(current)){\n indent(stream, state);\n }\n if (current == \"then\"){\n dedent(stream, state);\n }\n\n\n if (style === \"dedent\") {\n if (dedent(stream, state)) {\n return ERRORCLASS;\n }\n }\n delimiter_index = \"])}\".indexOf(current);\n if (delimiter_index !== -1) {\n while (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n if (state.scope.type == current)\n state.scope = state.scope.prev;\n }\n if (state.dedent && stream.eol()) {\n if (state.scope.type == \"coffee\" && state.scope.prev)\n state.scope = state.scope.prev;\n state.dedent = false;\n }\n\n return style;\n }\n\n var external = {\n startState: function(basecolumn) {\n return {\n tokenize: tokenBase,\n scope: {offset:basecolumn || 0, type:\"coffee\", prev: null, align: false},\n prop: false,\n dedent: 0\n };\n },\n\n token: function(stream, state) {\n var fillAlign = state.scope.align === null && state.scope;\n if (fillAlign && stream.sol()) fillAlign.align = false;\n\n var style = tokenLexer(stream, state);\n if (style && style != \"comment\") {\n if (fillAlign) fillAlign.align = true;\n state.prop = style == \"punctuation\" && stream.current() == \".\"\n }\n\n return style;\n },\n\n indent: function(state, text) {\n if (state.tokenize != tokenBase) return 0;\n var scope = state.scope;\n var closer = text && \"])}\".indexOf(text.charAt(0)) > -1;\n if (closer) while (scope.type == \"coffee\" && scope.prev) scope = scope.prev;\n var closes = closer && scope.type === text.charAt(0);\n if (scope.align)\n return scope.alignOffset - (closes ? 1 : 0);\n else\n return (closes ? scope.prev : scope).offset;\n },\n\n lineComment: \"#\",\n fold: \"indent\"\n };\n return external;\n});\n\n// IANA registered media type\n// https://www.iana.org/assignments/media-types/\nCodeMirror.defineMIME(\"application/vnd.coffeescript\", \"coffeescript\");\n\nCodeMirror.defineMIME(\"text/x-coffeescript\", \"coffeescript\");\nCodeMirror.defineMIME(\"text/coffeescript\", \"coffeescript\");\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nvar htmlConfig = {\n autoSelfClosers: {'area': true, 'base': true, 'br': true, 'col': true, 'command': true,\n 'embed': true, 'frame': true, 'hr': true, 'img': true, 'input': true,\n 'keygen': true, 'link': true, 'meta': true, 'param': true, 'source': true,\n 'track': true, 'wbr': true, 'menuitem': true},\n implicitlyClosed: {'dd': true, 'li': true, 'optgroup': true, 'option': true, 'p': true,\n 'rp': true, 'rt': true, 'tbody': true, 'td': true, 'tfoot': true,\n 'th': true, 'tr': true},\n contextGrabbers: {\n 'dd': {'dd': true, 'dt': true},\n 'dt': {'dd': true, 'dt': true},\n 'li': {'li': true},\n 'option': {'option': true, 'optgroup': true},\n 'optgroup': {'optgroup': true},\n 'p': {'address': true, 'article': true, 'aside': true, 'blockquote': true, 'dir': true,\n 'div': true, 'dl': true, 'fieldset': true, 'footer': true, 'form': true,\n 'h1': true, 'h2': true, 'h3': true, 'h4': true, 'h5': true, 'h6': true,\n 'header': true, 'hgroup': true, 'hr': true, 'menu': true, 'nav': true, 'ol': true,\n 'p': true, 'pre': true, 'section': true, 'table': true, 'ul': true},\n 'rp': {'rp': true, 'rt': true},\n 'rt': {'rp': true, 'rt': true},\n 'tbody': {'tbody': true, 'tfoot': true},\n 'td': {'td': true, 'th': true},\n 'tfoot': {'tbody': true},\n 'th': {'td': true, 'th': true},\n 'thead': {'tbody': true, 'tfoot': true},\n 'tr': {'tr': true}\n },\n doNotIndent: {\"pre\": true},\n allowUnquoted: true,\n allowMissing: true,\n caseFold: true\n}\n\nvar xmlConfig = {\n autoSelfClosers: {},\n implicitlyClosed: {},\n contextGrabbers: {},\n doNotIndent: {},\n allowUnquoted: false,\n allowMissing: false,\n allowMissingTagName: false,\n caseFold: false\n}\n\nCodeMirror.defineMode(\"xml\", function(editorConf, config_) {\n var indentUnit = editorConf.indentUnit\n var config = {}\n var defaults = config_.htmlMode ? htmlConfig : xmlConfig\n for (var prop in defaults) config[prop] = defaults[prop]\n for (var prop in config_) config[prop] = config_[prop]\n\n // Return variables for tokenizers\n var type, setStyle;\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var ch = stream.next();\n if (ch == \"<\") {\n if (stream.eat(\"!\")) {\n if (stream.eat(\"[\")) {\n if (stream.match(\"CDATA[\")) return chain(inBlock(\"atom\", \"]]>\"));\n else return null;\n } else if (stream.match(\"--\")) {\n return chain(inBlock(\"comment\", \"-->\"));\n } else if (stream.match(\"DOCTYPE\", true, true)) {\n stream.eatWhile(/[\\w\\._\\-]/);\n return chain(doctype(1));\n } else {\n return null;\n }\n } else if (stream.eat(\"?\")) {\n stream.eatWhile(/[\\w\\._\\-]/);\n state.tokenize = inBlock(\"meta\", \"?>\");\n return \"meta\";\n } else {\n type = stream.eat(\"/\") ? \"closeTag\" : \"openTag\";\n state.tokenize = inTag;\n return \"tag bracket\";\n }\n } else if (ch == \"&\") {\n var ok;\n if (stream.eat(\"#\")) {\n if (stream.eat(\"x\")) {\n ok = stream.eatWhile(/[a-fA-F\\d]/) && stream.eat(\";\");\n } else {\n ok = stream.eatWhile(/[\\d]/) && stream.eat(\";\");\n }\n } else {\n ok = stream.eatWhile(/[\\w\\.\\-:]/) && stream.eat(\";\");\n }\n return ok ? \"atom\" : \"error\";\n } else {\n stream.eatWhile(/[^&<]/);\n return null;\n }\n }\n inText.isInText = true;\n\n function inTag(stream, state) {\n var ch = stream.next();\n if (ch == \">\" || (ch == \"/\" && stream.eat(\">\"))) {\n state.tokenize = inText;\n type = ch == \">\" ? \"endTag\" : \"selfcloseTag\";\n return \"tag bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n return null;\n } else if (ch == \"<\") {\n state.tokenize = inText;\n state.state = baseState;\n state.tagName = state.tagStart = null;\n var next = state.tokenize(stream, state);\n return next ? next + \" tag error\" : \"tag error\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n state.stringStartCol = stream.column();\n return state.tokenize(stream, state);\n } else {\n stream.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/);\n return \"word\";\n }\n }\n\n function inAttribute(quote) {\n var closure = function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inTag;\n break;\n }\n }\n return \"string\";\n };\n closure.isInAttribute = true;\n return closure;\n }\n\n function inBlock(style, terminator) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n return style;\n }\n }\n\n function doctype(depth) {\n return function(stream, state) {\n var ch;\n while ((ch = stream.next()) != null) {\n if (ch == \"<\") {\n state.tokenize = doctype(depth + 1);\n return state.tokenize(stream, state);\n } else if (ch == \">\") {\n if (depth == 1) {\n state.tokenize = inText;\n break;\n } else {\n state.tokenize = doctype(depth - 1);\n return state.tokenize(stream, state);\n }\n }\n }\n return \"meta\";\n };\n }\n\n function lower(tagName) {\n return tagName && tagName.toLowerCase();\n }\n\n function Context(state, tagName, startOfLine) {\n this.prev = state.context;\n this.tagName = tagName || \"\";\n this.indent = state.indented;\n this.startOfLine = startOfLine;\n if (config.doNotIndent.hasOwnProperty(tagName) || (state.context && state.context.noIndent))\n this.noIndent = true;\n }\n function popContext(state) {\n if (state.context) state.context = state.context.prev;\n }\n function maybePopContext(state, nextTagName) {\n var parentTagName;\n while (true) {\n if (!state.context) {\n return;\n }\n parentTagName = state.context.tagName;\n if (!config.contextGrabbers.hasOwnProperty(lower(parentTagName)) ||\n !config.contextGrabbers[lower(parentTagName)].hasOwnProperty(lower(nextTagName))) {\n return;\n }\n popContext(state);\n }\n }\n\n function baseState(type, stream, state) {\n if (type == \"openTag\") {\n state.tagStart = stream.column();\n return tagNameState;\n } else if (type == \"closeTag\") {\n return closeTagNameState;\n } else {\n return baseState;\n }\n }\n function tagNameState(type, stream, state) {\n if (type == \"word\") {\n state.tagName = stream.current();\n setStyle = \"tag\";\n return attrState;\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return attrState(type, stream, state);\n } else {\n setStyle = \"error\";\n return tagNameState;\n }\n }\n function closeTagNameState(type, stream, state) {\n if (type == \"word\") {\n var tagName = stream.current();\n if (state.context && state.context.tagName != tagName &&\n config.implicitlyClosed.hasOwnProperty(lower(state.context.tagName)))\n popContext(state);\n if ((state.context && state.context.tagName == tagName) || config.matchClosing === false) {\n setStyle = \"tag\";\n return closeState;\n } else {\n setStyle = \"tag error\";\n return closeStateErr;\n }\n } else if (config.allowMissingTagName && type == \"endTag\") {\n setStyle = \"tag bracket\";\n return closeState(type, stream, state);\n } else {\n setStyle = \"error\";\n return closeStateErr;\n }\n }\n\n function closeState(type, _stream, state) {\n if (type != \"endTag\") {\n setStyle = \"error\";\n return closeState;\n }\n popContext(state);\n return baseState;\n }\n function closeStateErr(type, stream, state) {\n setStyle = \"error\";\n return closeState(type, stream, state);\n }\n\n function attrState(type, _stream, state) {\n if (type == \"word\") {\n setStyle = \"attribute\";\n return attrEqState;\n } else if (type == \"endTag\" || type == \"selfcloseTag\") {\n var tagName = state.tagName, tagStart = state.tagStart;\n state.tagName = state.tagStart = null;\n if (type == \"selfcloseTag\" ||\n config.autoSelfClosers.hasOwnProperty(lower(tagName))) {\n maybePopContext(state, tagName);\n } else {\n maybePopContext(state, tagName);\n state.context = new Context(state, tagName, tagStart == state.indented);\n }\n return baseState;\n }\n setStyle = \"error\";\n return attrState;\n }\n function attrEqState(type, stream, state) {\n if (type == \"equals\") return attrValueState;\n if (!config.allowMissing) setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrValueState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n if (type == \"word\" && config.allowUnquoted) {setStyle = \"string\"; return attrState;}\n setStyle = \"error\";\n return attrState(type, stream, state);\n }\n function attrContinuedState(type, stream, state) {\n if (type == \"string\") return attrContinuedState;\n return attrState(type, stream, state);\n }\n\n return {\n startState: function(baseIndent) {\n var state = {tokenize: inText,\n state: baseState,\n indented: baseIndent || 0,\n tagName: null, tagStart: null,\n context: null}\n if (baseIndent != null) state.baseIndent = baseIndent\n return state\n },\n\n token: function(stream, state) {\n if (!state.tagName && stream.sol())\n state.indented = stream.indentation();\n\n if (stream.eatSpace()) return null;\n type = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n setStyle = null;\n state.state = state.state(type || style, stream, state);\n if (setStyle)\n style = setStyle == \"error\" ? style + \" error\" : setStyle;\n }\n return style;\n },\n\n indent: function(state, textAfter, fullLine) {\n var context = state.context;\n // Indent multi-line strings (e.g. css).\n if (state.tokenize.isInAttribute) {\n if (state.tagStart == state.indented)\n return state.stringStartCol + 1;\n else\n return state.indented + indentUnit;\n }\n if (context && context.noIndent) return CodeMirror.Pass;\n if (state.tokenize != inTag && state.tokenize != inText)\n return fullLine ? fullLine.match(/^(\\s*)/)[0].length : 0;\n // Indent the starts of attribute names.\n if (state.tagName) {\n if (config.multilineTagIndentPastTag !== false)\n return state.tagStart + state.tagName.length + 2;\n else\n return state.tagStart + indentUnit * (config.multilineTagIndentFactor || 1);\n }\n if (config.alignCDATA && /$/,\n blockCommentStart: \"\",\n\n configuration: config.htmlMode ? \"html\" : \"xml\",\n helperType: config.htmlMode ? \"html\" : \"xml\",\n\n skipAttribute: function(state) {\n if (state.state == attrValueState)\n state.state = attrState\n },\n\n xmlCurrentTag: function(state) {\n return state.tagName ? {name: state.tagName, close: state.type == \"closeTag\"} : null\n },\n\n xmlCurrentContext: function(state) {\n var context = []\n for (var cx = state.context; cx; cx = cx.prev)\n context.push(cx.tagName)\n return context.reverse()\n }\n };\n});\n\nCodeMirror.defineMIME(\"text/xml\", \"xml\");\nCodeMirror.defineMIME(\"application/xml\", \"xml\");\nif (!CodeMirror.mimeModes.hasOwnProperty(\"text/html\"))\n CodeMirror.defineMIME(\"text/html\", {name: \"xml\", htmlMode: true});\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../xml/xml\"), require(\"../javascript/javascript\"), require(\"../css/css\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../xml/xml\", \"../javascript/javascript\", \"../css/css\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n var defaultTags = {\n script: [\n [\"lang\", /(javascript|babel)/i, \"javascript\"],\n [\"type\", /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i, \"javascript\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"javascript\"]\n ],\n style: [\n [\"lang\", /^css$/i, \"css\"],\n [\"type\", /^(text\\/)?(x-)?(stylesheet|css)$/i, \"css\"],\n [\"type\", /./, \"text/plain\"],\n [null, null, \"css\"]\n ]\n };\n\n function maybeBackup(stream, pat, style) {\n var cur = stream.current(), close = cur.search(pat);\n if (close > -1) {\n stream.backUp(cur.length - close);\n } else if (cur.match(/<\\/?$/)) {\n stream.backUp(cur.length);\n if (!stream.match(pat, false)) stream.match(cur);\n }\n return style;\n }\n\n var attrRegexpCache = {};\n function getAttrRegexp(attr) {\n var regexp = attrRegexpCache[attr];\n if (regexp) return regexp;\n return attrRegexpCache[attr] = new RegExp(\"\\\\s+\" + attr + \"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\");\n }\n\n function getAttrValue(text, attr) {\n var match = text.match(getAttrRegexp(attr))\n return match ? /^\\s*(.*?)\\s*$/.exec(match[2])[1] : \"\"\n }\n\n function getTagRegexp(tagName, anchored) {\n return new RegExp((anchored ? \"^\" : \"\") + \"<\\/\\s*\" + tagName + \"\\s*>\", \"i\");\n }\n\n function addTags(from, to) {\n for (var tag in from) {\n var dest = to[tag] || (to[tag] = []);\n var source = from[tag];\n for (var i = source.length - 1; i >= 0; i--)\n dest.unshift(source[i])\n }\n }\n\n function findMatchingMode(tagInfo, tagText) {\n for (var i = 0; i < tagInfo.length; i++) {\n var spec = tagInfo[i];\n if (!spec[0] || spec[1].test(getAttrValue(tagText, spec[0]))) return spec[2];\n }\n }\n\n CodeMirror.defineMode(\"htmlmixed\", function (config, parserConfig) {\n var htmlMode = CodeMirror.getMode(config, {\n name: \"xml\",\n htmlMode: true,\n multilineTagIndentFactor: parserConfig.multilineTagIndentFactor,\n multilineTagIndentPastTag: parserConfig.multilineTagIndentPastTag,\n allowMissingTagName: parserConfig.allowMissingTagName,\n });\n\n var tags = {};\n var configTags = parserConfig && parserConfig.tags, configScript = parserConfig && parserConfig.scriptTypes;\n addTags(defaultTags, tags);\n if (configTags) addTags(configTags, tags);\n if (configScript) for (var i = configScript.length - 1; i >= 0; i--)\n tags.script.unshift([\"type\", configScript[i].matches, configScript[i].mode])\n\n function html(stream, state) {\n var style = htmlMode.token(stream, state.htmlState), tag = /\\btag\\b/.test(style), tagName\n if (tag && !/[<>\\s\\/]/.test(stream.current()) &&\n (tagName = state.htmlState.tagName && state.htmlState.tagName.toLowerCase()) &&\n tags.hasOwnProperty(tagName)) {\n state.inTag = tagName + \" \"\n } else if (state.inTag && tag && />$/.test(stream.current())) {\n var inTag = /^([\\S]+) (.*)/.exec(state.inTag)\n state.inTag = null\n var modeSpec = stream.current() == \">\" && findMatchingMode(tags[inTag[1]], inTag[2])\n var mode = CodeMirror.getMode(config, modeSpec)\n var endTagA = getTagRegexp(inTag[1], true), endTag = getTagRegexp(inTag[1], false);\n state.token = function (stream, state) {\n if (stream.match(endTagA, false)) {\n state.token = html;\n state.localState = state.localMode = null;\n return null;\n }\n return maybeBackup(stream, endTag, state.localMode.token(stream, state.localState));\n };\n state.localMode = mode;\n state.localState = CodeMirror.startState(mode, htmlMode.indent(state.htmlState, \"\", \"\"));\n } else if (state.inTag) {\n state.inTag += stream.current()\n if (stream.eol()) state.inTag += \" \"\n }\n return style;\n };\n\n return {\n startState: function () {\n var state = CodeMirror.startState(htmlMode);\n return {token: html, inTag: null, localMode: null, localState: null, htmlState: state};\n },\n\n copyState: function (state) {\n var local;\n if (state.localState) {\n local = CodeMirror.copyState(state.localMode, state.localState);\n }\n return {token: state.token, inTag: state.inTag,\n localMode: state.localMode, localState: local,\n htmlState: CodeMirror.copyState(htmlMode, state.htmlState)};\n },\n\n token: function (stream, state) {\n return state.token(stream, state);\n },\n\n indent: function (state, textAfter, line) {\n if (!state.localMode || /^\\s*<\\//.test(textAfter))\n return htmlMode.indent(state.htmlState, textAfter, line);\n else if (state.localMode.indent)\n return state.localMode.indent(state.localState, textAfter, line);\n else\n return CodeMirror.Pass;\n },\n\n innerMode: function (state) {\n return {state: state.localState || state.htmlState, mode: state.localMode || htmlMode};\n }\n };\n }, \"xml\", \"javascript\", \"css\");\n\n CodeMirror.defineMIME(\"text/html\", \"htmlmixed\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"), require(\"../../addon/mode/simple\"), require(\"../../addon/mode/multiplex\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\", \"../../addon/mode/simple\", \"../../addon/mode/multiplex\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n \"use strict\";\n\n CodeMirror.defineSimpleMode(\"handlebars-tags\", {\n start: [\n { regex: /\\{\\{\\{/, push: \"handlebars_raw\", token: \"tag\" },\n { regex: /\\{\\{!--/, push: \"dash_comment\", token: \"comment\" },\n { regex: /\\{\\{!/, push: \"comment\", token: \"comment\" },\n { regex: /\\{\\{/, push: \"handlebars\", token: \"tag\" }\n ],\n handlebars_raw: [\n { regex: /\\}\\}\\}/, pop: true, token: \"tag\" },\n ],\n handlebars: [\n { regex: /\\}\\}/, pop: true, token: \"tag\" },\n\n // Double and single quotes\n { regex: /\"(?:[^\\\\\"]|\\\\.)*\"?/, token: \"string\" },\n { regex: /'(?:[^\\\\']|\\\\.)*'?/, token: \"string\" },\n\n // Handlebars keywords\n { regex: />|[#\\/]([A-Za-z_]\\w*)/, token: \"keyword\" },\n { regex: /(?:else|this)\\b/, token: \"keyword\" },\n\n // Numeral\n { regex: /\\d+/i, token: \"number\" },\n\n // Atoms like = and .\n { regex: /=|~|@|true|false/, token: \"atom\" },\n\n // Paths\n { regex: /(?:\\.\\.\\/)*(?:[A-Za-z_][\\w\\.]*)+/, token: \"variable-2\" }\n ],\n dash_comment: [\n { regex: /--\\}\\}/, pop: true, token: \"comment\" },\n\n // Commented code\n { regex: /./, token: \"comment\"}\n ],\n comment: [\n { regex: /\\}\\}/, pop: true, token: \"comment\" },\n { regex: /./, token: \"comment\" }\n ],\n meta: {\n blockCommentStart: \"{{--\",\n blockCommentEnd: \"--}}\"\n }\n });\n\n CodeMirror.defineMode(\"handlebars\", function(config, parserConfig) {\n var handlebars = CodeMirror.getMode(config, \"handlebars-tags\");\n if (!parserConfig || !parserConfig.base) return handlebars;\n return CodeMirror.multiplexingMode(\n CodeMirror.getMode(config, parserConfig.base),\n {open: \"{{\", close: /\\}\\}\\}?/, mode: handlebars, parseDelimiters: true}\n );\n });\n\n CodeMirror.defineMIME(\"text/x-handlebars-template\", \"handlebars\");\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.multiplexingMode = function(outer /*, others */) {\n // Others should be {open, close, mode [, delimStyle] [, innerStyle] [, parseDelimiters]} objects\n var others = Array.prototype.slice.call(arguments, 1);\n\n function indexOf(string, pattern, from, returnEnd) {\n if (typeof pattern == \"string\") {\n var found = string.indexOf(pattern, from);\n return returnEnd && found > -1 ? found + pattern.length : found;\n }\n var m = pattern.exec(from ? string.slice(from) : string);\n return m ? m.index + from + (returnEnd ? m[0].length : 0) : -1;\n }\n\n return {\n startState: function() {\n return {\n outer: CodeMirror.startState(outer),\n innerActive: null,\n inner: null,\n startingInner: false\n };\n },\n\n copyState: function(state) {\n return {\n outer: CodeMirror.copyState(outer, state.outer),\n innerActive: state.innerActive,\n inner: state.innerActive && CodeMirror.copyState(state.innerActive.mode, state.inner),\n startingInner: state.startingInner\n };\n },\n\n token: function(stream, state) {\n if (!state.innerActive) {\n var cutOff = Infinity, oldContent = stream.string;\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n var found = indexOf(oldContent, other.open, stream.pos);\n if (found == stream.pos) {\n if (!other.parseDelimiters) stream.match(other.open);\n state.startingInner = !!other.parseDelimiters\n state.innerActive = other;\n\n // Get the outer indent, making sure to handle CodeMirror.Pass\n var outerIndent = 0;\n if (outer.indent) {\n var possibleOuterIndent = outer.indent(state.outer, \"\", \"\");\n if (possibleOuterIndent !== CodeMirror.Pass) outerIndent = possibleOuterIndent;\n }\n\n state.inner = CodeMirror.startState(other.mode, outerIndent);\n return other.delimStyle && (other.delimStyle + \" \" + other.delimStyle + \"-open\");\n } else if (found != -1 && found < cutOff) {\n cutOff = found;\n }\n }\n if (cutOff != Infinity) stream.string = oldContent.slice(0, cutOff);\n var outerToken = outer.token(stream, state.outer);\n if (cutOff != Infinity) stream.string = oldContent;\n return outerToken;\n } else {\n var curInner = state.innerActive, oldContent = stream.string;\n if (!curInner.close && stream.sol()) {\n state.innerActive = state.inner = null;\n return this.token(stream, state);\n }\n var found = curInner.close && !state.startingInner ?\n indexOf(oldContent, curInner.close, stream.pos, curInner.parseDelimiters) : -1;\n if (found == stream.pos && !curInner.parseDelimiters) {\n stream.match(curInner.close);\n state.innerActive = state.inner = null;\n return curInner.delimStyle && (curInner.delimStyle + \" \" + curInner.delimStyle + \"-close\");\n }\n if (found > -1) stream.string = oldContent.slice(0, found);\n var innerToken = curInner.mode.token(stream, state.inner);\n if (found > -1) stream.string = oldContent;\n else if (stream.pos > stream.start) state.startingInner = false\n\n if (found == stream.pos && curInner.parseDelimiters)\n state.innerActive = state.inner = null;\n\n if (curInner.innerStyle) {\n if (innerToken) innerToken = innerToken + \" \" + curInner.innerStyle;\n else innerToken = curInner.innerStyle;\n }\n\n return innerToken;\n }\n },\n\n indent: function(state, textAfter, line) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (!mode.indent) return CodeMirror.Pass;\n return mode.indent(state.innerActive ? state.inner : state.outer, textAfter, line);\n },\n\n blankLine: function(state) {\n var mode = state.innerActive ? state.innerActive.mode : outer;\n if (mode.blankLine) {\n mode.blankLine(state.innerActive ? state.inner : state.outer);\n }\n if (!state.innerActive) {\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n if (other.open === \"\\n\") {\n state.innerActive = other;\n state.inner = CodeMirror.startState(other.mode, mode.indent ? mode.indent(state.outer, \"\", \"\") : 0);\n }\n }\n } else if (state.innerActive.close === \"\\n\") {\n state.innerActive = state.inner = null;\n }\n },\n\n electricChars: outer.electricChars,\n\n innerMode: function(state) {\n return state.inner ? {state: state.inner, mode: state.innerActive.mode} : {state: state.outer, mode: outer};\n }\n };\n};\n\n});\n","// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode(\"javascript\", function(config, parserConfig) {\n var indentUnit = config.indentUnit;\n var statementIndent = parserConfig.statementIndent;\n var jsonldMode = parserConfig.jsonld;\n var jsonMode = parserConfig.json || jsonldMode;\n var trackScope = parserConfig.trackScope !== false\n var isTS = parserConfig.typescript;\n var wordRE = parserConfig.wordCharacters || /[\\w$\\xa1-\\uffff]/;\n\n // Tokenizer\n\n var keywords = function(){\n function kw(type) {return {type: type, style: \"keyword\"};}\n var A = kw(\"keyword a\"), B = kw(\"keyword b\"), C = kw(\"keyword c\"), D = kw(\"keyword d\");\n var operator = kw(\"operator\"), atom = {type: \"atom\", style: \"atom\"};\n\n return {\n \"if\": kw(\"if\"), \"while\": A, \"with\": A, \"else\": B, \"do\": B, \"try\": B, \"finally\": B,\n \"return\": D, \"break\": D, \"continue\": D, \"new\": kw(\"new\"), \"delete\": C, \"void\": C, \"throw\": C,\n \"debugger\": kw(\"debugger\"), \"var\": kw(\"var\"), \"const\": kw(\"var\"), \"let\": kw(\"var\"),\n \"function\": kw(\"function\"), \"catch\": kw(\"catch\"),\n \"for\": kw(\"for\"), \"switch\": kw(\"switch\"), \"case\": kw(\"case\"), \"default\": kw(\"default\"),\n \"in\": operator, \"typeof\": operator, \"instanceof\": operator,\n \"true\": atom, \"false\": atom, \"null\": atom, \"undefined\": atom, \"NaN\": atom, \"Infinity\": atom,\n \"this\": kw(\"this\"), \"class\": kw(\"class\"), \"super\": kw(\"atom\"),\n \"yield\": C, \"export\": kw(\"export\"), \"import\": kw(\"import\"), \"extends\": C,\n \"await\": C\n };\n }();\n\n var isOperatorChar = /[+\\-*&%=<>!?|~^@]/;\n var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;\n\n function readRegexp(stream) {\n var escaped = false, next, inSet = false;\n while ((next = stream.next()) != null) {\n if (!escaped) {\n if (next == \"/\" && !inSet) return;\n if (next == \"[\") inSet = true;\n else if (inSet && next == \"]\") inSet = false;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n }\n\n // Used as scratch variables to communicate multiple values without\n // consing up tons of objects.\n var type, content;\n function ret(tp, style, cont) {\n type = tp; content = cont;\n return style;\n }\n function tokenBase(stream, state) {\n var ch = stream.next();\n if (ch == '\"' || ch == \"'\") {\n state.tokenize = tokenString(ch);\n return state.tokenize(stream, state);\n } else if (ch == \".\" && stream.match(/^\\d[\\d_]*(?:[eE][+\\-]?[\\d_]+)?/)) {\n return ret(\"number\", \"number\");\n } else if (ch == \".\" && stream.match(\"..\")) {\n return ret(\"spread\", \"meta\");\n } else if (/[\\[\\]{}\\(\\),;\\:\\.]/.test(ch)) {\n return ret(ch);\n } else if (ch == \"=\" && stream.eat(\">\")) {\n return ret(\"=>\", \"operator\");\n } else if (ch == \"0\" && stream.match(/^(?:x[\\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) {\n return ret(\"number\", \"number\");\n } else if (/\\d/.test(ch)) {\n stream.match(/^[\\d_]*(?:n|(?:\\.[\\d_]*)?(?:[eE][+\\-]?[\\d_]+)?)?/);\n return ret(\"number\", \"number\");\n } else if (ch == \"/\") {\n if (stream.eat(\"*\")) {\n state.tokenize = tokenComment;\n return tokenComment(stream, state);\n } else if (stream.eat(\"/\")) {\n stream.skipToEnd();\n return ret(\"comment\", \"comment\");\n } else if (expressionAllowed(stream, state, 1)) {\n readRegexp(stream);\n stream.match(/^\\b(([gimyus])(?![gimyus]*\\2))+\\b/);\n return ret(\"regexp\", \"string-2\");\n } else {\n stream.eat(\"=\");\n return ret(\"operator\", \"operator\", stream.current());\n }\n } else if (ch == \"`\") {\n state.tokenize = tokenQuasi;\n return tokenQuasi(stream, state);\n } else if (ch == \"#\" && stream.peek() == \"!\") {\n stream.skipToEnd();\n return ret(\"meta\", \"meta\");\n } else if (ch == \"#\" && stream.eatWhile(wordRE)) {\n return ret(\"variable\", \"property\")\n } else if (ch == \"<\" && stream.match(\"!--\") ||\n (ch == \"-\" && stream.match(\"->\") && !/\\S/.test(stream.string.slice(0, stream.start)))) {\n stream.skipToEnd()\n return ret(\"comment\", \"comment\")\n } else if (isOperatorChar.test(ch)) {\n if (ch != \">\" || !state.lexical || state.lexical.type != \">\") {\n if (stream.eat(\"=\")) {\n if (ch == \"!\" || ch == \"=\") stream.eat(\"=\")\n } else if (/[<>*+\\-|&?]/.test(ch)) {\n stream.eat(ch)\n if (ch == \">\") stream.eat(ch)\n }\n }\n if (ch == \"?\" && stream.eat(\".\")) return ret(\".\")\n return ret(\"operator\", \"operator\", stream.current());\n } else if (wordRE.test(ch)) {\n stream.eatWhile(wordRE);\n var word = stream.current()\n if (state.lastType != \".\") {\n if (keywords.propertyIsEnumerable(word)) {\n var kw = keywords[word]\n return ret(kw.type, kw.style, word)\n }\n if (word == \"async\" && stream.match(/^(\\s|\\/\\*([^*]|\\*(?!\\/))*?\\*\\/)*[\\[\\(\\w]/, false))\n return ret(\"async\", \"keyword\", word)\n }\n return ret(\"variable\", \"variable\", word)\n }\n }\n\n function tokenString(quote) {\n return function(stream, state) {\n var escaped = false, next;\n if (jsonldMode && stream.peek() == \"@\" && stream.match(isJsonldKeyword)){\n state.tokenize = tokenBase;\n return ret(\"jsonld-keyword\", \"meta\");\n }\n while ((next = stream.next()) != null) {\n if (next == quote && !escaped) break;\n escaped = !escaped && next == \"\\\\\";\n }\n if (!escaped) state.tokenize = tokenBase;\n return ret(\"string\", \"string\");\n };\n }\n\n function tokenComment(stream, state) {\n var maybeEnd = false, ch;\n while (ch = stream.next()) {\n if (ch == \"/\" && maybeEnd) {\n state.tokenize = tokenBase;\n break;\n }\n maybeEnd = (ch == \"*\");\n }\n return ret(\"comment\", \"comment\");\n }\n\n function tokenQuasi(stream, state) {\n var escaped = false, next;\n while ((next = stream.next()) != null) {\n if (!escaped && (next == \"`\" || next == \"$\" && stream.eat(\"{\"))) {\n state.tokenize = tokenBase;\n break;\n }\n escaped = !escaped && next == \"\\\\\";\n }\n return ret(\"quasi\", \"string-2\", stream.current());\n }\n\n var brackets = \"([{}])\";\n // This is a crude lookahead trick to try and notice that we're\n // parsing the argument patterns for a fat-arrow function before we\n // actually hit the arrow token. It only works if the arrow is on\n // the same line as the arguments and there's no strange noise\n // (comments) in between. Fallback is to only notice when we hit the\n // arrow, and not declare the arguments as locals for the arrow\n // body.\n function findFatArrow(stream, state) {\n if (state.fatArrowAt) state.fatArrowAt = null;\n var arrow = stream.string.indexOf(\"=>\", stream.start);\n if (arrow < 0) return;\n\n if (isTS) { // Try to skip TypeScript return type declarations after the arguments\n var m = /:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(stream.string.slice(stream.start, arrow))\n if (m) arrow = m.index\n }\n\n var depth = 0, sawSomething = false;\n for (var pos = arrow - 1; pos >= 0; --pos) {\n var ch = stream.string.charAt(pos);\n var bracket = brackets.indexOf(ch);\n if (bracket >= 0 && bracket < 3) {\n if (!depth) { ++pos; break; }\n if (--depth == 0) { if (ch == \"(\") sawSomething = true; break; }\n } else if (bracket >= 3 && bracket < 6) {\n ++depth;\n } else if (wordRE.test(ch)) {\n sawSomething = true;\n } else if (/[\"'\\/`]/.test(ch)) {\n for (;; --pos) {\n if (pos == 0) return\n var next = stream.string.charAt(pos - 1)\n if (next == ch && stream.string.charAt(pos - 2) != \"\\\\\") { pos--; break }\n }\n } else if (sawSomething && !depth) {\n ++pos;\n break;\n }\n }\n if (sawSomething && !depth) state.fatArrowAt = pos;\n }\n\n // Parser\n\n var atomicTypes = {\"atom\": true, \"number\": true, \"variable\": true, \"string\": true,\n \"regexp\": true, \"this\": true, \"import\": true, \"jsonld-keyword\": true};\n\n function JSLexical(indented, column, type, align, prev, info) {\n this.indented = indented;\n this.column = column;\n this.type = type;\n this.prev = prev;\n this.info = info;\n if (align != null) this.align = align;\n }\n\n function inScope(state, varname) {\n if (!trackScope) return false\n for (var v = state.localVars; v; v = v.next)\n if (v.name == varname) return true;\n for (var cx = state.context; cx; cx = cx.prev) {\n for (var v = cx.vars; v; v = v.next)\n if (v.name == varname) return true;\n }\n }\n\n function parseJS(state, style, type, content, stream) {\n var cc = state.cc;\n // Communicate our context to the combinators.\n // (Less wasteful than consing up a hundred closures on every call.)\n cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;\n\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = true;\n\n while(true) {\n var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;\n if (combinator(type, content)) {\n while(cc.length && cc[cc.length - 1].lex)\n cc.pop()();\n if (cx.marked) return cx.marked;\n if (type == \"variable\" && inScope(state, content)) return \"variable-2\";\n return style;\n }\n }\n }\n\n // Combinator utils\n\n var cx = {state: null, column: null, marked: null, cc: null};\n function pass() {\n for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);\n }\n function cont() {\n pass.apply(null, arguments);\n return true;\n }\n function inList(name, list) {\n for (var v = list; v; v = v.next) if (v.name == name) return true\n return false;\n }\n function register(varname) {\n var state = cx.state;\n cx.marked = \"def\";\n if (!trackScope) return\n if (state.context) {\n if (state.lexical.info == \"var\" && state.context && state.context.block) {\n // FIXME function decls are also not block scoped\n var newContext = registerVarScoped(varname, state.context)\n if (newContext != null) {\n state.context = newContext\n return\n }\n } else if (!inList(varname, state.localVars)) {\n state.localVars = new Var(varname, state.localVars)\n return\n }\n }\n // Fall through means this is global\n if (parserConfig.globalVars && !inList(varname, state.globalVars))\n state.globalVars = new Var(varname, state.globalVars)\n }\n function registerVarScoped(varname, context) {\n if (!context) {\n return null\n } else if (context.block) {\n var inner = registerVarScoped(varname, context.prev)\n if (!inner) return null\n if (inner == context.prev) return context\n return new Context(inner, context.vars, true)\n } else if (inList(varname, context.vars)) {\n return context\n } else {\n return new Context(context.prev, new Var(varname, context.vars), false)\n }\n }\n\n function isModifier(name) {\n return name == \"public\" || name == \"private\" || name == \"protected\" || name == \"abstract\" || name == \"readonly\"\n }\n\n // Combinators\n\n function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }\n function Var(name, next) { this.name = name; this.next = next }\n\n var defaultVars = new Var(\"this\", new Var(\"arguments\", null))\n function pushcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, false)\n cx.state.localVars = defaultVars\n }\n function pushblockcontext() {\n cx.state.context = new Context(cx.state.context, cx.state.localVars, true)\n cx.state.localVars = null\n }\n function popcontext() {\n cx.state.localVars = cx.state.context.vars\n cx.state.context = cx.state.context.prev\n }\n popcontext.lex = true\n function pushlex(type, info) {\n var result = function() {\n var state = cx.state, indent = state.indented;\n if (state.lexical.type == \"stat\") indent = state.lexical.indented;\n else for (var outer = state.lexical; outer && outer.type == \")\" && outer.align; outer = outer.prev)\n indent = outer.indented;\n state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);\n };\n result.lex = true;\n return result;\n }\n function poplex() {\n var state = cx.state;\n if (state.lexical.prev) {\n if (state.lexical.type == \")\")\n state.indented = state.lexical.indented;\n state.lexical = state.lexical.prev;\n }\n }\n poplex.lex = true;\n\n function expect(wanted) {\n function exp(type) {\n if (type == wanted) return cont();\n else if (wanted == \";\" || type == \"}\" || type == \")\" || type == \"]\") return pass();\n else return cont(exp);\n };\n return exp;\n }\n\n function statement(type, value) {\n if (type == \"var\") return cont(pushlex(\"vardef\", value), vardef, expect(\";\"), poplex);\n if (type == \"keyword a\") return cont(pushlex(\"form\"), parenExpr, statement, poplex);\n if (type == \"keyword b\") return cont(pushlex(\"form\"), statement, poplex);\n if (type == \"keyword d\") return cx.stream.match(/^\\s*$/, false) ? cont() : cont(pushlex(\"stat\"), maybeexpression, expect(\";\"), poplex);\n if (type == \"debugger\") return cont(expect(\";\"));\n if (type == \"{\") return cont(pushlex(\"}\"), pushblockcontext, block, poplex, popcontext);\n if (type == \";\") return cont();\n if (type == \"if\") {\n if (cx.state.lexical.info == \"else\" && cx.state.cc[cx.state.cc.length - 1] == poplex)\n cx.state.cc.pop()();\n return cont(pushlex(\"form\"), parenExpr, statement, poplex, maybeelse);\n }\n if (type == \"function\") return cont(functiondef);\n if (type == \"for\") return cont(pushlex(\"form\"), pushblockcontext, forspec, statement, popcontext, poplex);\n if (type == \"class\" || (isTS && value == \"interface\")) {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\", type == \"class\" ? type : value), className, poplex)\n }\n if (type == \"variable\") {\n if (isTS && value == \"declare\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else if (isTS && (value == \"module\" || value == \"enum\" || value == \"type\") && cx.stream.match(/^\\s*\\w/, false)) {\n cx.marked = \"keyword\"\n if (value == \"enum\") return cont(enumdef);\n else if (value == \"type\") return cont(typename, expect(\"operator\"), typeexpr, expect(\";\"));\n else return cont(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), block, poplex, poplex)\n } else if (isTS && value == \"namespace\") {\n cx.marked = \"keyword\"\n return cont(pushlex(\"form\"), expression, statement, poplex)\n } else if (isTS && value == \"abstract\") {\n cx.marked = \"keyword\"\n return cont(statement)\n } else {\n return cont(pushlex(\"stat\"), maybelabel);\n }\n }\n if (type == \"switch\") return cont(pushlex(\"form\"), parenExpr, expect(\"{\"), pushlex(\"}\", \"switch\"), pushblockcontext,\n block, poplex, poplex, popcontext);\n if (type == \"case\") return cont(expression, expect(\":\"));\n if (type == \"default\") return cont(expect(\":\"));\n if (type == \"catch\") return cont(pushlex(\"form\"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);\n if (type == \"export\") return cont(pushlex(\"stat\"), afterExport, poplex);\n if (type == \"import\") return cont(pushlex(\"stat\"), afterImport, poplex);\n if (type == \"async\") return cont(statement)\n if (value == \"@\") return cont(expression, statement)\n return pass(pushlex(\"stat\"), expression, expect(\";\"), poplex);\n }\n function maybeCatchBinding(type) {\n if (type == \"(\") return cont(funarg, expect(\")\"))\n }\n function expression(type, value) {\n return expressionInner(type, value, false);\n }\n function expressionNoComma(type, value) {\n return expressionInner(type, value, true);\n }\n function parenExpr(type) {\n if (type != \"(\") return pass()\n return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex)\n }\n function expressionInner(type, value, noComma) {\n if (cx.state.fatArrowAt == cx.stream.start) {\n var body = noComma ? arrowBodyNoComma : arrowBody;\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, expect(\"=>\"), body, popcontext);\n else if (type == \"variable\") return pass(pushcontext, pattern, expect(\"=>\"), body, popcontext);\n }\n\n var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;\n if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);\n if (type == \"function\") return cont(functiondef, maybeop);\n if (type == \"class\" || (isTS && value == \"interface\")) { cx.marked = \"keyword\"; return cont(pushlex(\"form\"), classExpression, poplex); }\n if (type == \"keyword c\" || type == \"async\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"(\") return cont(pushlex(\")\"), maybeexpression, expect(\")\"), poplex, maybeop);\n if (type == \"operator\" || type == \"spread\") return cont(noComma ? expressionNoComma : expression);\n if (type == \"[\") return cont(pushlex(\"]\"), arrayLiteral, poplex, maybeop);\n if (type == \"{\") return contCommasep(objprop, \"}\", null, maybeop);\n if (type == \"quasi\") return pass(quasi, maybeop);\n if (type == \"new\") return cont(maybeTarget(noComma));\n return cont();\n }\n function maybeexpression(type) {\n if (type.match(/[;\\}\\)\\],]/)) return pass();\n return pass(expression);\n }\n\n function maybeoperatorComma(type, value) {\n if (type == \",\") return cont(maybeexpression);\n return maybeoperatorNoComma(type, value, false);\n }\n function maybeoperatorNoComma(type, value, noComma) {\n var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;\n var expr = noComma == false ? expression : expressionNoComma;\n if (type == \"=>\") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);\n if (type == \"operator\") {\n if (/\\+\\+|--/.test(value) || isTS && value == \"!\") return cont(me);\n if (isTS && value == \"<\" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\\s*\\(/, false))\n return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, me);\n if (value == \"?\") return cont(expression, expect(\":\"), expr);\n return cont(expr);\n }\n if (type == \"quasi\") { return pass(quasi, me); }\n if (type == \";\") return;\n if (type == \"(\") return contCommasep(expressionNoComma, \")\", \"call\", me);\n if (type == \".\") return cont(property, me);\n if (type == \"[\") return cont(pushlex(\"]\"), maybeexpression, expect(\"]\"), poplex, me);\n if (isTS && value == \"as\") { cx.marked = \"keyword\"; return cont(typeexpr, me) }\n if (type == \"regexp\") {\n cx.state.lastType = cx.marked = \"operator\"\n cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)\n return cont(expr)\n }\n }\n function quasi(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasi);\n return cont(maybeexpression, continueQuasi);\n }\n function continueQuasi(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasi);\n }\n }\n function arrowBody(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expression);\n }\n function arrowBodyNoComma(type) {\n findFatArrow(cx.stream, cx.state);\n return pass(type == \"{\" ? statement : expressionNoComma);\n }\n function maybeTarget(noComma) {\n return function(type) {\n if (type == \".\") return cont(noComma ? targetNoComma : target);\n else if (type == \"variable\" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)\n else return pass(noComma ? expressionNoComma : expression);\n };\n }\n function target(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorComma); }\n }\n function targetNoComma(_, value) {\n if (value == \"target\") { cx.marked = \"keyword\"; return cont(maybeoperatorNoComma); }\n }\n function maybelabel(type) {\n if (type == \":\") return cont(poplex, statement);\n return pass(maybeoperatorComma, expect(\";\"), poplex);\n }\n function property(type) {\n if (type == \"variable\") {cx.marked = \"property\"; return cont();}\n }\n function objprop(type, value) {\n if (type == \"async\") {\n cx.marked = \"property\";\n return cont(objprop);\n } else if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n if (value == \"get\" || value == \"set\") return cont(getterSetter);\n var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params\n if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\\s*:\\s*/, false)))\n cx.state.fatArrowAt = cx.stream.pos + m[0].length\n return cont(afterprop);\n } else if (type == \"number\" || type == \"string\") {\n cx.marked = jsonldMode ? \"property\" : (cx.style + \" property\");\n return cont(afterprop);\n } else if (type == \"jsonld-keyword\") {\n return cont(afterprop);\n } else if (isTS && isModifier(value)) {\n cx.marked = \"keyword\"\n return cont(objprop)\n } else if (type == \"[\") {\n return cont(expression, maybetype, expect(\"]\"), afterprop);\n } else if (type == \"spread\") {\n return cont(expressionNoComma, afterprop);\n } else if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(objprop);\n } else if (type == \":\") {\n return pass(afterprop)\n }\n }\n function getterSetter(type) {\n if (type != \"variable\") return pass(afterprop);\n cx.marked = \"property\";\n return cont(functiondef);\n }\n function afterprop(type) {\n if (type == \":\") return cont(expressionNoComma);\n if (type == \"(\") return pass(functiondef);\n }\n function commasep(what, end, sep) {\n function proceed(type, value) {\n if (sep ? sep.indexOf(type) > -1 : type == \",\") {\n var lex = cx.state.lexical;\n if (lex.info == \"call\") lex.pos = (lex.pos || 0) + 1;\n return cont(function(type, value) {\n if (type == end || value == end) return pass()\n return pass(what)\n }, proceed);\n }\n if (type == end || value == end) return cont();\n if (sep && sep.indexOf(\";\") > -1) return pass(what)\n return cont(expect(end));\n }\n return function(type, value) {\n if (type == end || value == end) return cont();\n return pass(what, proceed);\n };\n }\n function contCommasep(what, end, info) {\n for (var i = 3; i < arguments.length; i++)\n cx.cc.push(arguments[i]);\n return cont(pushlex(end, info), commasep(what, end), poplex);\n }\n function block(type) {\n if (type == \"}\") return cont();\n return pass(statement, block);\n }\n function maybetype(type, value) {\n if (isTS) {\n if (type == \":\") return cont(typeexpr);\n if (value == \"?\") return cont(maybetype);\n }\n }\n function maybetypeOrIn(type, value) {\n if (isTS && (type == \":\" || value == \"in\")) return cont(typeexpr)\n }\n function mayberettype(type) {\n if (isTS && type == \":\") {\n if (cx.stream.match(/^\\s*\\w+\\s+is\\b/, false)) return cont(expression, isKW, typeexpr)\n else return cont(typeexpr)\n }\n }\n function isKW(_, value) {\n if (value == \"is\") {\n cx.marked = \"keyword\"\n return cont()\n }\n }\n function typeexpr(type, value) {\n if (value == \"keyof\" || value == \"typeof\" || value == \"infer\" || value == \"readonly\") {\n cx.marked = \"keyword\"\n return cont(value == \"typeof\" ? expressionNoComma : typeexpr)\n }\n if (type == \"variable\" || value == \"void\") {\n cx.marked = \"type\"\n return cont(afterType)\n }\n if (value == \"|\" || value == \"&\") return cont(typeexpr)\n if (type == \"string\" || type == \"number\" || type == \"atom\") return cont(afterType);\n if (type == \"[\") return cont(pushlex(\"]\"), commasep(typeexpr, \"]\", \",\"), poplex, afterType)\n if (type == \"{\") return cont(pushlex(\"}\"), typeprops, poplex, afterType)\n if (type == \"(\") return cont(commasep(typearg, \")\"), maybeReturnType, afterType)\n if (type == \"<\") return cont(commasep(typeexpr, \">\"), typeexpr)\n if (type == \"quasi\") { return pass(quasiType, afterType); }\n }\n function maybeReturnType(type) {\n if (type == \"=>\") return cont(typeexpr)\n }\n function typeprops(type) {\n if (type.match(/[\\}\\)\\]]/)) return cont()\n if (type == \",\" || type == \";\") return cont(typeprops)\n return pass(typeprop, typeprops)\n }\n function typeprop(type, value) {\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\"\n return cont(typeprop)\n } else if (value == \"?\" || type == \"number\" || type == \"string\") {\n return cont(typeprop)\n } else if (type == \":\") {\n return cont(typeexpr)\n } else if (type == \"[\") {\n return cont(expect(\"variable\"), maybetypeOrIn, expect(\"]\"), typeprop)\n } else if (type == \"(\") {\n return pass(functiondecl, typeprop)\n } else if (!type.match(/[;\\}\\)\\],]/)) {\n return cont()\n }\n }\n function quasiType(type, value) {\n if (type != \"quasi\") return pass();\n if (value.slice(value.length - 2) != \"${\") return cont(quasiType);\n return cont(typeexpr, continueQuasiType);\n }\n function continueQuasiType(type) {\n if (type == \"}\") {\n cx.marked = \"string-2\";\n cx.state.tokenize = tokenQuasi;\n return cont(quasiType);\n }\n }\n function typearg(type, value) {\n if (type == \"variable\" && cx.stream.match(/^\\s*[?:]/, false) || value == \"?\") return cont(typearg)\n if (type == \":\") return cont(typeexpr)\n if (type == \"spread\") return cont(typearg)\n return pass(typeexpr)\n }\n function afterType(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n if (value == \"|\" || type == \".\" || value == \"&\") return cont(typeexpr)\n if (type == \"[\") return cont(typeexpr, expect(\"]\"), afterType)\n if (value == \"extends\" || value == \"implements\") { cx.marked = \"keyword\"; return cont(typeexpr) }\n if (value == \"?\") return cont(typeexpr, expect(\":\"), typeexpr)\n }\n function maybeTypeArgs(_, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeexpr, \">\"), poplex, afterType)\n }\n function typeparam() {\n return pass(typeexpr, maybeTypeDefault)\n }\n function maybeTypeDefault(_, value) {\n if (value == \"=\") return cont(typeexpr)\n }\n function vardef(_, value) {\n if (value == \"enum\") {cx.marked = \"keyword\"; return cont(enumdef)}\n return pass(pattern, maybetype, maybeAssign, vardefCont);\n }\n function pattern(type, value) {\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(pattern) }\n if (type == \"variable\") { register(value); return cont(); }\n if (type == \"spread\") return cont(pattern);\n if (type == \"[\") return contCommasep(eltpattern, \"]\");\n if (type == \"{\") return contCommasep(proppattern, \"}\");\n }\n function proppattern(type, value) {\n if (type == \"variable\" && !cx.stream.match(/^\\s*:/, false)) {\n register(value);\n return cont(maybeAssign);\n }\n if (type == \"variable\") cx.marked = \"property\";\n if (type == \"spread\") return cont(pattern);\n if (type == \"}\") return pass();\n if (type == \"[\") return cont(expression, expect(']'), expect(':'), proppattern);\n return cont(expect(\":\"), pattern, maybeAssign);\n }\n function eltpattern() {\n return pass(pattern, maybeAssign)\n }\n function maybeAssign(_type, value) {\n if (value == \"=\") return cont(expressionNoComma);\n }\n function vardefCont(type) {\n if (type == \",\") return cont(vardef);\n }\n function maybeelse(type, value) {\n if (type == \"keyword b\" && value == \"else\") return cont(pushlex(\"form\", \"else\"), statement, poplex);\n }\n function forspec(type, value) {\n if (value == \"await\") return cont(forspec);\n if (type == \"(\") return cont(pushlex(\")\"), forspec1, poplex);\n }\n function forspec1(type) {\n if (type == \"var\") return cont(vardef, forspec2);\n if (type == \"variable\") return cont(forspec2);\n return pass(forspec2)\n }\n function forspec2(type, value) {\n if (type == \")\") return cont()\n if (type == \";\") return cont(forspec2)\n if (value == \"in\" || value == \"of\") { cx.marked = \"keyword\"; return cont(expression, forspec2) }\n return pass(expression, forspec2)\n }\n function functiondef(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondef);}\n if (type == \"variable\") {register(value); return cont(functiondef);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, statement, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondef)\n }\n function functiondecl(type, value) {\n if (value == \"*\") {cx.marked = \"keyword\"; return cont(functiondecl);}\n if (type == \"variable\") {register(value); return cont(functiondecl);}\n if (type == \"(\") return cont(pushcontext, pushlex(\")\"), commasep(funarg, \")\"), poplex, mayberettype, popcontext);\n if (isTS && value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, functiondecl)\n }\n function typename(type, value) {\n if (type == \"keyword\" || type == \"variable\") {\n cx.marked = \"type\"\n return cont(typename)\n } else if (value == \"<\") {\n return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex)\n }\n }\n function funarg(type, value) {\n if (value == \"@\") cont(expression, funarg)\n if (type == \"spread\") return cont(funarg);\n if (isTS && isModifier(value)) { cx.marked = \"keyword\"; return cont(funarg); }\n if (isTS && type == \"this\") return cont(maybetype, maybeAssign)\n return pass(pattern, maybetype, maybeAssign);\n }\n function classExpression(type, value) {\n // Class expressions may have an optional name.\n if (type == \"variable\") return className(type, value);\n return classNameAfter(type, value);\n }\n function className(type, value) {\n if (type == \"variable\") {register(value); return cont(classNameAfter);}\n }\n function classNameAfter(type, value) {\n if (value == \"<\") return cont(pushlex(\">\"), commasep(typeparam, \">\"), poplex, classNameAfter)\n if (value == \"extends\" || value == \"implements\" || (isTS && type == \",\")) {\n if (value == \"implements\") cx.marked = \"keyword\";\n return cont(isTS ? typeexpr : expression, classNameAfter);\n }\n if (type == \"{\") return cont(pushlex(\"}\"), classBody, poplex);\n }\n function classBody(type, value) {\n if (type == \"async\" ||\n (type == \"variable\" &&\n (value == \"static\" || value == \"get\" || value == \"set\" || (isTS && isModifier(value))) &&\n cx.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/, false))) {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (type == \"variable\" || cx.style == \"keyword\") {\n cx.marked = \"property\";\n return cont(classfield, classBody);\n }\n if (type == \"number\" || type == \"string\") return cont(classfield, classBody);\n if (type == \"[\")\n return cont(expression, maybetype, expect(\"]\"), classfield, classBody)\n if (value == \"*\") {\n cx.marked = \"keyword\";\n return cont(classBody);\n }\n if (isTS && type == \"(\") return pass(functiondecl, classBody)\n if (type == \";\" || type == \",\") return cont(classBody);\n if (type == \"}\") return cont();\n if (value == \"@\") return cont(expression, classBody)\n }\n function classfield(type, value) {\n if (value == \"!\") return cont(classfield)\n if (value == \"?\") return cont(classfield)\n if (type == \":\") return cont(typeexpr, maybeAssign)\n if (value == \"=\") return cont(expressionNoComma)\n var context = cx.state.lexical.prev, isInterface = context && context.info == \"interface\"\n return pass(isInterface ? functiondecl : functiondef)\n }\n function afterExport(type, value) {\n if (value == \"*\") { cx.marked = \"keyword\"; return cont(maybeFrom, expect(\";\")); }\n if (value == \"default\") { cx.marked = \"keyword\"; return cont(expression, expect(\";\")); }\n if (type == \"{\") return cont(commasep(exportField, \"}\"), maybeFrom, expect(\";\"));\n return pass(statement);\n }\n function exportField(type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(expect(\"variable\")); }\n if (type == \"variable\") return pass(expressionNoComma, exportField);\n }\n function afterImport(type) {\n if (type == \"string\") return cont();\n if (type == \"(\") return pass(expression);\n if (type == \".\") return pass(maybeoperatorComma);\n return pass(importSpec, maybeMoreImports, maybeFrom);\n }\n function importSpec(type, value) {\n if (type == \"{\") return contCommasep(importSpec, \"}\");\n if (type == \"variable\") register(value);\n if (value == \"*\") cx.marked = \"keyword\";\n return cont(maybeAs);\n }\n function maybeMoreImports(type) {\n if (type == \",\") return cont(importSpec, maybeMoreImports)\n }\n function maybeAs(_type, value) {\n if (value == \"as\") { cx.marked = \"keyword\"; return cont(importSpec); }\n }\n function maybeFrom(_type, value) {\n if (value == \"from\") { cx.marked = \"keyword\"; return cont(expression); }\n }\n function arrayLiteral(type) {\n if (type == \"]\") return cont();\n return pass(commasep(expressionNoComma, \"]\"));\n }\n function enumdef() {\n return pass(pushlex(\"form\"), pattern, expect(\"{\"), pushlex(\"}\"), commasep(enummember, \"}\"), poplex, poplex)\n }\n function enummember() {\n return pass(pattern, maybeAssign);\n }\n\n function isContinuedStatement(state, textAfter) {\n return state.lastType == \"operator\" || state.lastType == \",\" ||\n isOperatorChar.test(textAfter.charAt(0)) ||\n /[,.]/.test(textAfter.charAt(0));\n }\n\n function expressionAllowed(stream, state, backUp) {\n return state.tokenize == tokenBase &&\n /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(state.lastType) ||\n (state.lastType == \"quasi\" && /\\{\\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))\n }\n\n // Interface\n\n return {\n startState: function(basecolumn) {\n var state = {\n tokenize: tokenBase,\n lastType: \"sof\",\n cc: [],\n lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, \"block\", false),\n localVars: parserConfig.localVars,\n context: parserConfig.localVars && new Context(null, null, false),\n indented: basecolumn || 0\n };\n if (parserConfig.globalVars && typeof parserConfig.globalVars == \"object\")\n state.globalVars = parserConfig.globalVars;\n return state;\n },\n\n token: function(stream, state) {\n if (stream.sol()) {\n if (!state.lexical.hasOwnProperty(\"align\"))\n state.lexical.align = false;\n state.indented = stream.indentation();\n findFatArrow(stream, state);\n }\n if (state.tokenize != tokenComment && stream.eatSpace()) return null;\n var style = state.tokenize(stream, state);\n if (type == \"comment\") return style;\n state.lastType = type == \"operator\" && (content == \"++\" || content == \"--\") ? \"incdec\" : type;\n return parseJS(state, style, type, content, stream);\n },\n\n indent: function(state, textAfter) {\n if (state.tokenize == tokenComment || state.tokenize == tokenQuasi) return CodeMirror.Pass;\n if (state.tokenize != tokenBase) return 0;\n var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top\n // Kludge to prevent 'maybelse' from blocking lexical scope pops\n if (!/^\\s*else\\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {\n var c = state.cc[i];\n if (c == poplex) lexical = lexical.prev;\n else if (c != maybeelse && c != popcontext) break;\n }\n while ((lexical.type == \"stat\" || lexical.type == \"form\") &&\n (firstChar == \"}\" || ((top = state.cc[state.cc.length - 1]) &&\n (top == maybeoperatorComma || top == maybeoperatorNoComma) &&\n !/^[,\\.=+\\-*:?[\\(]/.test(textAfter))))\n lexical = lexical.prev;\n if (statementIndent && lexical.type == \")\" && lexical.prev.type == \"stat\")\n lexical = lexical.prev;\n var type = lexical.type, closing = firstChar == type;\n\n if (type == \"vardef\") return lexical.indented + (state.lastType == \"operator\" || state.lastType == \",\" ? lexical.info.length + 1 : 0);\n else if (type == \"form\" && firstChar == \"{\") return lexical.indented;\n else if (type == \"form\") return lexical.indented + indentUnit;\n else if (type == \"stat\")\n return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);\n else if (lexical.info == \"switch\" && !closing && parserConfig.doubleIndentSwitch != false)\n return lexical.indented + (/^(?:case|default)\\b/.test(textAfter) ? indentUnit : 2 * indentUnit);\n else if (lexical.align) return lexical.column + (closing ? 0 : 1);\n else return lexical.indented + (closing ? 0 : indentUnit);\n },\n\n electricInput: /^\\s*(?:case .*?:|default:|\\{|\\})$/,\n blockCommentStart: jsonMode ? null : \"/*\",\n blockCommentEnd: jsonMode ? null : \"*/\",\n blockCommentContinue: jsonMode ? null : \" * \",\n lineComment: jsonMode ? null : \"//\",\n fold: \"brace\",\n closeBrackets: \"()[]{}''\\\"\\\"``\",\n\n helperType: jsonMode ? \"json\" : \"javascript\",\n jsonldMode: jsonldMode,\n jsonMode: jsonMode,\n\n expressionAllowed: expressionAllowed,\n\n skipExpression: function(state) {\n parseJS(state, \"atom\", \"atom\", \"true\", new CodeMirror.StringStream(\"\", 2, null))\n }\n };\n});\n\nCodeMirror.registerHelper(\"wordChars\", \"javascript\", /[\\w$]/);\n\nCodeMirror.defineMIME(\"text/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"text/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/x-javascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/ecmascript\", \"javascript\");\nCodeMirror.defineMIME(\"application/json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/x-json\", { name: \"javascript\", json: true });\nCodeMirror.defineMIME(\"application/manifest+json\", { name: \"javascript\", json: true })\nCodeMirror.defineMIME(\"application/ld+json\", { name: \"javascript\", jsonld: true });\nCodeMirror.defineMIME(\"text/typescript\", { name: \"javascript\", typescript: true });\nCodeMirror.defineMIME(\"application/typescript\", { name: \"javascript\", typescript: true });\n\n});\n"],"sourceRoot":""} \ No newline at end of file