station 0.0.105 → 0.0.110
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/nexmo-developer +7 -0
- data/lib/nexmo_developer/Gemfile +10 -25
- data/lib/nexmo_developer/Gemfile.lock +131 -147
- data/lib/nexmo_developer/app/assets/config/manifest.js +1 -4
- data/lib/nexmo_developer/app/assets/javascripts/application.js +2 -7
- data/lib/nexmo_developer/app/assets/stylesheets/application.css +1 -1
- data/lib/nexmo_developer/app/controllers/static_controller.rb +3 -11
- data/lib/nexmo_developer/app/helpers/application_helper.rb +2 -0
- data/lib/nexmo_developer/app/models/tutorial.rb +10 -12
- data/lib/nexmo_developer/app/models/tutorial/prerequisite.rb +3 -1
- data/lib/nexmo_developer/app/models/tutorial/task.rb +24 -11
- data/lib/nexmo_developer/app/services/translator/files_list_coordinator.rb +90 -0
- data/lib/nexmo_developer/app/services/translator/smartling/api/download_file.rb +6 -1
- data/lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb +7 -1
- data/lib/nexmo_developer/app/services/translator/utils.rb +1 -1
- data/lib/nexmo_developer/app/views/admin/feedbacks/_steps.html.erb +1 -1
- data/lib/nexmo_developer/app/views/layouts/partials/_footer.html.erb +4 -4
- data/lib/nexmo_developer/app/views/layouts/partials/_head.html.erb +4 -5
- data/lib/nexmo_developer/app/views/layouts/partials/_header.html.erb +3 -3
- data/lib/nexmo_developer/app/views/layouts/partials/_improve_this_page.html.erb +1 -1
- data/lib/nexmo_developer/app/views/static/_products.html.erb +20 -17
- data/lib/nexmo_developer/app/views/static/default_landing/partials/_join_slack.html.erb +1 -1
- data/lib/nexmo_developer/app/views/static/landing.html.erb +8 -8
- data/lib/nexmo_developer/app/views/static/{robots.txt.erb → robots.text.erb} +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/Lato-Black.woff +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/Lato-Black.woff2 +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/Lato-Regular.woff +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/Lato-Regular.woff2 +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/Lato-Semibold.woff +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/Lato-Semibold.woff2 +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/icomoon.eot +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/icomoon.json +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/icomoon.svg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/icomoon.ttf +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/fonts/icomoon.woff +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/.keep +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/logo@3x.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/logo_vonage.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/nexmo-developer-logo.svg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/nexmo-logo-collapsed.svg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/nexmo-vonage-white.svg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/chatapp.jpg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/chatapp_small.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/nexmo.jpg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/numberinsight.jpg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/numberinsight_small.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/sms.jpg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/sms_small.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/verify.jpg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/verify_small.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/voice.jpg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/posters/voice_small.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/select-dropdown.png +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/slack.svg +0 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/images/themes/ea/topography.png +0 -0
- data/lib/nexmo_developer/app/webpacker/javascript/code_snippet_events/index.js +23 -85
- data/lib/nexmo_developer/app/webpacker/javascript/volta/volta.js +1 -1
- data/lib/nexmo_developer/app/webpacker/javascript/volta_tabbed_examples/index.js +23 -3
- data/lib/nexmo_developer/app/webpacker/packs/active_admin.js +5 -0
- data/lib/nexmo_developer/app/webpacker/packs/active_admin/print.scss +2 -0
- data/lib/nexmo_developer/app/webpacker/packs/application.js +12 -0
- data/lib/nexmo_developer/app/{assets → webpacker}/stylesheets/active_admin.scss +4 -4
- data/lib/nexmo_developer/app/webpacker/stylesheets/application.scss +0 -1
- data/lib/nexmo_developer/app/webpacker/stylesheets/custom/_core.scss +1 -1
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_icons.scss +1 -0
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_navigation.scss +1 -2
- data/lib/nexmo_developer/config/environments/development.rb +1 -1
- data/lib/nexmo_developer/config/environments/production.rb +8 -1
- data/lib/nexmo_developer/config/initializers/active_admin.rb +3 -0
- data/lib/nexmo_developer/config/initializers/assets.rb +0 -2
- data/lib/nexmo_developer/config/webpack/environment.js +10 -0
- data/lib/nexmo_developer/config/webpack/plugins/jquery.js +7 -0
- data/lib/nexmo_developer/lib/tasks/smartling.rake +7 -0
- data/lib/nexmo_developer/nexmo_developer.rb +1 -4
- data/lib/nexmo_developer/version.rb +1 -1
- data/package.json +25 -17
- data/station.gemspec +5 -12
- data/yarn.lock +1510 -1021
- metadata +159 -239
- data/lib/nexmo_developer/app/assets/fonts/nexmo-developer.json +0 -36483
- data/lib/nexmo_developer/app/assets/javascripts/active_admin.js.coffee +0 -1
- data/lib/nexmo_developer/app/assets/javascripts/stats.js +0 -14
- data/lib/nexmo_developer/app/assets/regex/matching_chars.rb +0 -1
- data/lib/nexmo_developer/app/assets/regex/sequence_diagram_regex.rb +0 -1
- data/lib/nexmo_developer/app/assets/regex/stats_regex.rb +0 -1
- data/lib/nexmo_developer/app/assets/regex/webfont_regex.rb +0 -1
- data/lib/nexmo_developer/app/views/slack/join.html.erb +0 -25
- data/lib/nexmo_developer/app/views/static/_community.html.erb +0 -24
- data/lib/nexmo_developer/app/views/static/_dotnet.html.erb +0 -26
- data/lib/nexmo_developer/app/views/static/_slack.html.erb +0 -2
- data/lib/nexmo_developer/app/views/static/_xwithy.html.erb +0 -33
- data/lib/nexmo_developer/app/views/static/podcast.html.erb +0 -40
- data/lib/nexmo_developer/app/webpacker/stylesheets/objects/_building-block.scss +0 -32
- data/lib/nexmo_developer/vendor/assets/javascripts/jquery-scrolltofixed.js +0 -567
- data/lib/nexmo_developer/vendor/assets/javascripts/mermaid.js +0 -49
- data/lib/nexmo_developer/vendor/assets/javascripts/underscore.js +0 -5
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/addons/jquery.tablesorter.js +0 -1031
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/addons/prism.js +0 -22
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/side-navigation/volta.menu.js +0 -377
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.accordion.js +0 -249
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.dropdown.js +0 -145
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.flash.js +0 -175
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.modal.js +0 -312
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.tab.js +0 -203
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/volta.tooltip.js +0 -71
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/popper.min.js +0 -5
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/svgxuse.min.js +0 -12
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/tooltip.min.js +0 -5
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.core.js +0 -238
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.js +0 -2141
- data/lib/nexmo_developer/vendor/assets/javascripts/volta/volta.min.js +0 -1
@@ -1,22 +0,0 @@
|
|
1
|
-
/* PrismJS 1.9.0
|
2
|
-
http://prismjs.com/download.html?themes=prism&languages=markup+css+clike+javascript+bash+csharp+ruby+git+java+json+markdown+php+python&plugins=line-highlight+line-numbers+toolbar+command-line+keep-markup+copy-to-clipboard */
|
3
|
-
var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\blang(?:uage)?-(\w+)\b/i,t=0,n=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):"Array"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).match(/\[object (\w+)\]/)[1]},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function(e){var t=n.util.type(e);switch(t){case"Object":var r={};for(var a in e)e.hasOwnProperty(a)&&(r[a]=n.util.clone(e[a]));return r;case"Array":return e.map(function(e){return n.util.clone(e)})}return e}},languages:{extend:function(e,t){var r=n.util.clone(n.languages[e]);for(var a in t)r[a]=t[a];return r},insertBefore:function(e,t,r,a){a=a||n.languages;var l=a[e];if(2==arguments.length){r=arguments[1];for(var i in r)r.hasOwnProperty(i)&&(l[i]=r[i]);return l}var o={};for(var s in l)if(l.hasOwnProperty(s)){if(s==t)for(var i in r)r.hasOwnProperty(i)&&(o[i]=r[i]);o[s]=l[s]}return n.languages.DFS(n.languages,function(t,n){n===a[e]&&t!=e&&(this[t]=o)}),a[e]=o},DFS:function(e,t,r,a){a=a||{};for(var l in e)e.hasOwnProperty(l)&&(t.call(e,l,e[l],r||l),"Object"!==n.util.type(e[l])||a[n.util.objId(e[l])]?"Array"!==n.util.type(e[l])||a[n.util.objId(e[l])]||(a[n.util.objId(e[l])]=!0,n.languages.DFS(e[l],t,l,a)):(a[n.util.objId(e[l])]=!0,n.languages.DFS(e[l],t,null,a)))}},plugins:{},highlightAll:function(e,t){n.highlightAllUnder(document,e,t)},highlightAllUnder:function(e,t,r){var a={callback:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};n.hooks.run("before-highlightall",a);for(var l,i=a.elements||e.querySelectorAll(a.selector),o=0;l=i[o++];)n.highlightElement(l,t===!0,a.callback)},highlightElement:function(t,r,a){for(var l,i,o=t;o&&!e.test(o.className);)o=o.parentNode;o&&(l=(o.className.match(e)||[,""])[1].toLowerCase(),i=n.languages[l]),t.className=t.className.replace(e,"").replace(/\s+/g," ")+" language-"+l,t.parentNode&&(o=t.parentNode,/pre/i.test(o.nodeName)&&(o.className=o.className.replace(e,"").replace(/\s+/g," ")+" language-"+l));var s=t.textContent,g={element:t,language:l,grammar:i,code:s};if(n.hooks.run("before-sanity-check",g),!g.code||!g.grammar)return g.code&&(n.hooks.run("before-highlight",g),g.element.textContent=g.code,n.hooks.run("after-highlight",g)),n.hooks.run("complete",g),void 0;if(n.hooks.run("before-highlight",g),r&&_self.Worker){var u=new Worker(n.filename);u.onmessage=function(e){g.highlightedCode=e.data,n.hooks.run("before-insert",g),g.element.innerHTML=g.highlightedCode,a&&a.call(g.element),n.hooks.run("after-highlight",g),n.hooks.run("complete",g)},u.postMessage(JSON.stringify({language:g.language,code:g.code,immediateClose:!0}))}else g.highlightedCode=n.highlight(g.code,g.grammar,g.language),n.hooks.run("before-insert",g),g.element.innerHTML=g.highlightedCode,a&&a.call(t),n.hooks.run("after-highlight",g),n.hooks.run("complete",g)},highlight:function(e,t,a){var l=n.tokenize(e,t);return r.stringify(n.util.encode(l),a)},matchGrammar:function(e,t,r,a,l,i,o){var s=n.Token;for(var g in r)if(r.hasOwnProperty(g)&&r[g]){if(g==o)return;var u=r[g];u="Array"===n.util.type(u)?u:[u];for(var c=0;c<u.length;++c){var h=u[c],f=h.inside,d=!!h.lookbehind,m=!!h.greedy,p=0,y=h.alias;if(m&&!h.pattern.global){var v=h.pattern.toString().match(/[imuy]*$/)[0];h.pattern=RegExp(h.pattern.source,v+"g")}h=h.pattern||h;for(var b=a,k=l;b<t.length;k+=t[b].length,++b){var w=t[b];if(t.length>e.length)return;if(!(w instanceof s)){h.lastIndex=0;var _=h.exec(w),P=1;if(!_&&m&&b!=t.length-1){if(h.lastIndex=k,_=h.exec(e),!_)break;for(var A=_.index+(d?_[1].length:0),j=_.index+_[0].length,x=b,O=k,N=t.length;N>x&&(j>O||!t[x].type&&!t[x-1].greedy);++x)O+=t[x].length,A>=O&&(++b,k=O);if(t[b]instanceof s||t[x-1].greedy)continue;P=x-b,w=e.slice(k,O),_.index-=k}if(_){d&&(p=_[1].length);var A=_.index+p,_=_[0].slice(p),j=A+_.length,S=w.slice(0,A),C=w.slice(j),M=[b,P];S&&(++b,k+=S.length,M.push(S));var E=new s(g,f?n.tokenize(_,f):_,y,_,m);if(M.push(E),C&&M.push(C),Array.prototype.splice.apply(t,M),1!=P&&n.matchGrammar(e,t,r,b,k,!0,g),i)break}else if(i)break}}}}},tokenize:function(e,t){var r=[e],a=t.rest;if(a){for(var l in a)t[l]=a[l];delete t.rest}return n.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var a,l=0;a=r[l++];)a(t)}}},r=n.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length,this.greedy=!!a};if(r.stringify=function(e,t,a){if("string"==typeof e)return e;if("Array"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join("");var l={type:e.type,content:r.stringify(e.content,t,a),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:a};if(e.alias){var i="Array"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run("wrap",l);var o=Object.keys(l.attributes).map(function(e){return e+'="'+(l.attributes[e]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+(o?" "+o:"")+">"+l.content+"</"+l.tag+">"},!_self.document)return _self.addEventListener?(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),r=t.language,a=t.code,l=t.immediateClose;_self.postMessage(n.highlight(a,n.languages[r],r)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return a&&(n.filename=a.src,n.manual||a.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism);
|
4
|
-
Prism.languages.markup={comment:/<!--[\s\S]*?-->/,prolog:/<\?[\s\S]+?\?>/,doctype:/<!DOCTYPE[\s\S]+?>/i,cdata:/<!\[CDATA\[[\s\S]*?]]>/i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;
|
5
|
-
Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,"function":/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.util.clone(Prism.languages.css),Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/(<style[\s\S]*?>)[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css",greedy:!0}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag));
|
6
|
-
Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(?:true|false)\b/,"function":/[a-z0-9_]+(?=\()/i,number:/\b-?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)\b/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};
|
7
|
-
Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|\d*\.?\d+(?:[Ee][+-]?\d+)?|NaN|Infinity)\b/,"function":/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^\/])\/(?!\/)(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"}}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\$\{[^}]+\}/,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/(<script[\s\S]*?>)[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript",greedy:!0}}),Prism.languages.js=Prism.languages.javascript;
|
8
|
-
!function(e){var t={variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee]-?\d+)?)\b/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\([^)]+\)|`[^`]+`/,inside:{variable:/^\$\(|^`|\)$|`$/}},/\$(?:[\w#?*!@]+|\{[^}]+\})/i]};e.languages.bash={shebang:{pattern:/^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,alias:"important"},comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\s*)["']?(\w+?)["']?\s*\r?\n(?:[\s\S])*?\r?\n\2/,lookbehind:!0,greedy:!0,inside:t},{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0,inside:t}],variable:t.variable,"function":{pattern:/(^|[\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&])(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\s;|&])/,lookbehind:!0},"boolean":{pattern:/(^|[\s;|&])(?:true|false)(?=$|[\s;|&])/,lookbehind:!0},operator:/&&?|\|\|?|==?|!=?|<<<?|>>|<=?|>=?|=~/,punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];]/};var a=t.variable[1].inside;a["function"]=e.languages.bash["function"],a.keyword=e.languages.bash.keyword,a.boolean=e.languages.bash.boolean,a.operator=e.languages.bash.operator,a.punctuation=e.languages.bash.punctuation}(Prism);
|
9
|
-
Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(abstract|as|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|do|double|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|goto|if|implicit|in|int|interface|internal|is|lock|long|namespace|new|null|object|operator|out|override|params|private|protected|public|readonly|ref|return|sbyte|sealed|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|virtual|void|volatile|while|add|alias|ascending|async|await|descending|dynamic|from|get|global|group|into|join|let|orderby|partial|remove|select|set|value|var|where|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],number:/\b-?(?:0x[\da-f]+|\d*\.?\d+f?)\b/i}),Prism.languages.insertBefore("csharp","keyword",{"generic-method":{pattern:/[a-z0-9_]+\s*<[^>\r\n]+?>\s*(?=\()/i,alias:"function",inside:{keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}});
|
10
|
-
!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#(?!\{[^\r\n]*?\}).*/,/^=begin(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?=end/m],keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var n={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.util.clone(e.languages.ruby)}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:/:[a-zA-Z_]\w*(?:[?!]|\b)/}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:n}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:n}}]}(Prism);
|
11
|
-
Prism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m};
|
12
|
-
Prism.languages.java=Prism.languages.extend("clike",{keyword:/\b(?:abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp\-]+\b|\b\d*\.?\d+(?:e[+-]?\d+)?[df]?\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),Prism.languages.insertBefore("java","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}});
|
13
|
-
Prism.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b-?(?:0x[\dA-Fa-f]+|\d*\.?\d+(?:[Ee][+-]?\d+)?)\b/,punctuation:/[{}[\]);,]/,operator:/:/g,"boolean":/\b(?:true|false)\b/i,"null":/\bnull\b/i},Prism.languages.jsonp=Prism.languages.json;
|
14
|
-
Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},code:[{pattern:/^(?: {4}|\t).+/m,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*(?:\r?\n|\r)(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*$|__$/}},italic:{pattern:/(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.italic.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.bold.inside.italic=Prism.util.clone(Prism.languages.markdown.italic),Prism.languages.markdown.italic.inside.bold=Prism.util.clone(Prism.languages.markdown.bold);
|
15
|
-
Prism.languages.php=Prism.languages.extend("clike",{string:{pattern:/(["'])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},keyword:/\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),Prism.languages.insertBefore("php","class-name",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),Prism.languages.insertBefore("php","keyword",{delimiter:{pattern:/\?>|<\?(?:php|=)?/i,alias:"important"},variable:/\$\w+\b/i,"package":{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),Prism.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),Prism.languages.markup&&(Prism.hooks.add("before-highlight",function(e){"php"===e.language&&/(?:<\?php|<\?)/gi.test(e.code)&&(e.tokenStack=[],e.backupCode=e.code,e.code=e.code.replace(/(?:<\?php|<\?)[\s\S]*?(?:\?>|$)/gi,function(a){for(var n=e.tokenStack.length;-1!==e.backupCode.indexOf("___PHP"+n+"___");)++n;return e.tokenStack[n]=a,"___PHP"+n+"___"}),e.grammar=Prism.languages.markup)}),Prism.hooks.add("before-insert",function(e){"php"===e.language&&e.backupCode&&(e.code=e.backupCode,delete e.backupCode)}),Prism.hooks.add("after-highlight",function(e){if("php"===e.language&&e.tokenStack){e.grammar=Prism.languages.php;for(var a=0,n=Object.keys(e.tokenStack);a<n.length;++a){var t=n[a],r=e.tokenStack[t];e.highlightedCode=e.highlightedCode.replace("___PHP"+t+"___",'<span class="token php language-php">'+Prism.highlight(r,e.grammar,"php").replace(/\$/g,"$$$$")+"</span>")}e.element.innerHTML=e.highlightedCode}}));
|
16
|
-
Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"triple-quoted-string":{pattern:/("""|''')[\s\S]+?\1/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"function":{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,"boolean":/\b(?:True|False|None)\b/,number:/\b-?(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/};
|
17
|
-
!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=" "+t+" ",(" "+e.className+" ").replace(/[\n\t]/g," ").indexOf(t)>-1}function n(e,n,i){n="string"==typeof n?n:e.getAttribute("data-line");for(var o,l=n.replace(/\s+/g,"").split(","),a=+e.getAttribute("data-line-offset")||0,s=r()?parseInt:parseFloat,d=s(getComputedStyle(e).lineHeight),u=t(e,"line-numbers"),c=0;o=l[c++];){var p=o.split("-"),m=+p[0],f=+p[1]||m,h=e.querySelector('.line-highlight[data-range="'+o+'"]')||document.createElement("div");if(h.setAttribute("aria-hidden","true"),h.setAttribute("data-range",o),h.className=(i||"")+" line-highlight",u&&Prism.plugins.lineNumbers){var g=Prism.plugins.lineNumbers.getLine(e,m),y=Prism.plugins.lineNumbers.getLine(e,f);g&&(h.style.top=g.offsetTop+"px"),y&&(h.style.height=y.offsetTop-g.offsetTop+y.offsetHeight+"px")}else h.setAttribute("data-start",m),f>m&&h.setAttribute("data-end",f),h.style.top=(m-a-1)*d+"px",h.textContent=new Array(f-m+2).join(" \n");u?e.appendChild(h):(e.querySelector("code")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(".")),o=document.getElementById(r);o&&(o.hasAttribute("data-line")||o.setAttribute("data-line",""),n(o,i,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if("undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if("undefined"==typeof e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding=0,t.style.border=0,t.innerHTML=" <br /> ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add("before-sanity-check",function(t){var n=t.element.parentNode,i=n&&n.getAttribute("data-line");if(n&&i&&/pre/i.test(n.nodeName)){var r=0;e(".line-highlight",n).forEach(function(e){r+=e.textContent.length,e.parentNode.removeChild(e)}),r&&/^( \n)+$/.test(t.code.slice(-r))&&(t.code=t.code.slice(0,-r))}}),Prism.hooks.add("complete",function l(e){var r=e.element.parentNode,a=r&&r.getAttribute("data-line");if(r&&a&&/pre/i.test(r.nodeName)){clearTimeout(o);var s=Prism.plugins.lineNumbers,d=e.plugins&&e.plugins.lineNumbers;t(r,"line-numbers")&&s&&!d?Prism.hooks.add("line-numbers",l):(n(r,a),o=setTimeout(i,1))}}),window.addEventListener("hashchange",i),window.addEventListener("resize",function(){var e=document.querySelectorAll("pre[data-line]");Array.prototype.forEach.call(e,function(e){n(e)})})}}();
|
18
|
-
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var e="line-numbers",t=/\n(?!$)/g,n=function(e){var n=r(e),s=n["white-space"];if("pre-wrap"===s||"pre-line"===s){var l=e.querySelector("code"),i=e.querySelector(".line-numbers-rows"),a=e.querySelector(".line-numbers-sizer"),o=l.textContent.split(t);a||(a=document.createElement("span"),a.className="line-numbers-sizer",l.appendChild(a)),a.style.display="block",o.forEach(function(e,t){a.textContent=e||"\n";var n=a.getBoundingClientRect().height;i.children[t].style.height=n+"px"}),a.textContent="",a.style.display="none"}},r=function(e){return e?window.getComputedStyle?getComputedStyle(e):e.currentStyle||null:null};window.addEventListener("resize",function(){Array.prototype.forEach.call(document.querySelectorAll("pre."+e),n)}),Prism.hooks.add("complete",function(e){if(e.code){var r=e.element.parentNode,s=/\s*\bline-numbers\b\s*/;if(r&&/pre/i.test(r.nodeName)&&(s.test(r.className)||s.test(e.element.className))&&!e.element.querySelector(".line-numbers-rows")){s.test(e.element.className)&&(e.element.className=e.element.className.replace(s," ")),s.test(r.className)||(r.className+=" line-numbers");var l,i=e.code.match(t),a=i?i.length+1:1,o=new Array(a+1);o=o.join("<span></span>"),l=document.createElement("span"),l.setAttribute("aria-hidden","true"),l.className="line-numbers-rows",l.innerHTML=o,r.hasAttribute("data-start")&&(r.style.counterReset="linenumber "+(parseInt(r.getAttribute("data-start"),10)-1)),e.element.appendChild(l),n(r),Prism.hooks.run("line-numbers",e)}}}),Prism.hooks.add("line-numbers",function(e){e.plugins=e.plugins||{},e.plugins.lineNumbers=!0}),Prism.plugins.lineNumbers={getLine:function(t,n){if("PRE"===t.tagName&&t.classList.contains(e)){var r=t.querySelector(".line-numbers-rows"),s=parseInt(t.getAttribute("data-start"),10)||1,l=s+(r.children.length-1);s>n&&(n=s),n>l&&(n=l);var i=n-s;return r.children[i]}}}}}();
|
19
|
-
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){var t=[],e={},n=function(){};Prism.plugins.toolbar={};var a=Prism.plugins.toolbar.registerButton=function(n,a){var o;o="function"==typeof a?a:function(t){var e;return"function"==typeof a.onClick?(e=document.createElement("button"),e.type="button",e.addEventListener("click",function(){a.onClick.call(this,t)})):"string"==typeof a.url?(e=document.createElement("a"),e.href=a.url):e=document.createElement("span"),e.textContent=a.text,e},t.push(e[n]=o)},o=Prism.plugins.toolbar.hook=function(a){var o=a.element.parentNode;if(o&&/pre/i.test(o.nodeName)&&!o.classList.contains("code-toolbar")){o.classList.add("code-toolbar");var r=document.createElement("div");r.classList.add("toolbar"),document.body.hasAttribute("data-toolbar-order")&&(t=document.body.getAttribute("data-toolbar-order").split(",").map(function(t){return e[t]||n})),t.forEach(function(t){var e=t(a);if(e){var n=document.createElement("div");n.classList.add("toolbar-item"),n.appendChild(e),r.appendChild(n)}}),o.appendChild(r)}};a("label",function(t){var e=t.element.parentNode;if(e&&/pre/i.test(e.nodeName)&&e.hasAttribute("data-label")){var n,a,o=e.getAttribute("data-label");try{a=document.querySelector("template#"+o)}catch(r){}return a?n=a.content:(e.hasAttribute("data-url")?(n=document.createElement("a"),n.href=e.getAttribute("data-url")):n=document.createElement("span"),n.textContent=o),n}}),Prism.hooks.add("complete",o)}}();
|
20
|
-
!function(){"undefined"!=typeof self&&self.Prism&&self.document&&Prism.hooks.add("complete",function(e){if(e.code){var t=e.element.parentNode,a=/\s*\bcommand-line\b\s*/;if(t&&/pre/i.test(t.nodeName)&&(a.test(t.className)||a.test(e.element.className))&&!e.element.querySelector(".command-line-prompt")){a.test(e.element.className)&&(e.element.className=e.element.className.replace(a,"")),a.test(t.className)||(t.className+=" command-line");var n=function(e,a){return(t.getAttribute(e)||a).replace(/"/g,""")},s=new Array(1+e.code.split("\n").length),r=n("data-prompt","");if(""!==r)s=s.join('<span data-prompt="'+r+'"></span>');else{var l=n("data-user","user"),m=n("data-host","localhost");s=s.join('<span data-user="'+l+'" data-host="'+m+'"></span>')}var o=document.createElement("span");o.className="command-line-prompt",o.innerHTML=s;var i=t.getAttribute("data-output")||"";i=i.split(",");for(var c=0;c<i.length;c++){var p=i[c].split("-"),d=parseInt(p[0]),u=d;if(2===p.length&&(u=parseInt(p[1])),!isNaN(d)&&!isNaN(u))for(var f=d;u>=f&&f<=o.children.length;f++){var N=o.children[f-1];N.removeAttribute("data-user"),N.removeAttribute("data-host"),N.removeAttribute("data-prompt")}}e.element.innerHTML=o.outerHTML+e.element.innerHTML}}})}();
|
21
|
-
!function(){"undefined"!=typeof self&&self.Prism&&self.document&&document.createRange&&(Prism.plugins.KeepMarkup=!0,Prism.hooks.add("before-highlight",function(e){if(e.element.children.length){var n=0,o=[],t=function(e,d){var r={};d||(r.clone=e.cloneNode(!1),r.posOpen=n,o.push(r));for(var a=0,s=e.childNodes.length;s>a;a++){var l=e.childNodes[a];1===l.nodeType?t(l):3===l.nodeType&&(n+=l.data.length)}d||(r.posClose=n)};t(e.element,!0),o&&o.length&&(e.keepMarkup=o)}}),Prism.hooks.add("after-highlight",function(e){if(e.keepMarkup&&e.keepMarkup.length){var n=function(e,o){for(var t=0,d=e.childNodes.length;d>t;t++){var r=e.childNodes[t];if(1===r.nodeType){if(!n(r,o))return!1}else 3===r.nodeType&&(!o.nodeStart&&o.pos+r.data.length>o.node.posOpen&&(o.nodeStart=r,o.nodeStartPos=o.node.posOpen-o.pos),o.nodeStart&&o.pos+r.data.length>=o.node.posClose&&(o.nodeEnd=r,o.nodeEndPos=o.node.posClose-o.pos),o.pos+=r.data.length);if(o.nodeStart&&o.nodeEnd){var a=document.createRange();return a.setStart(o.nodeStart,o.nodeStartPos),a.setEnd(o.nodeEnd,o.nodeEndPos),o.node.clone.appendChild(a.extractContents()),a.insertNode(o.node.clone),a.detach(),!1}}return!0};e.keepMarkup.forEach(function(o){n(e.element,{node:o,pos:0})}),e.highlightedCode=e.element.innerHTML}}))}();
|
22
|
-
!function(){if("undefined"!=typeof self&&self.Prism&&self.document){if(!Prism.plugins.toolbar)return console.warn("Copy to Clipboard plugin loaded before Toolbar plugin."),void 0;var o=window.Clipboard||void 0;o&&/(native code)/.test(o.toString())&&(o=void 0),o||"function"!=typeof require||(o=require("clipboard"));var t=[];if(!o){var e=document.createElement("script"),n=document.querySelector("head");e.onload=function(){if(o=window.Clipboard)for(;t.length;)t.pop()()},e.src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js",n.appendChild(e)}Prism.plugins.toolbar.registerButton("copy-to-clipboard",function(e){function n(){var t=new o(i,{text:function(){return e.code}});t.on("success",function(){i.textContent="Copied!",r()}),t.on("error",function(){i.textContent="Press Ctrl+C to copy",r()})}function r(){setTimeout(function(){i.textContent="Copy"},5e3)}var i=document.createElement("a");return i.textContent="Copy",o?n():t.push(n),i})}}();
|
data/lib/nexmo_developer/vendor/assets/javascripts/volta/components/side-navigation/volta.menu.js
DELETED
@@ -1,377 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2018-present, Vonage. All rights reserved.
|
3
|
-
*
|
4
|
-
* Menu (requires core)
|
5
|
-
*/
|
6
|
-
|
7
|
-
'use strict';
|
8
|
-
|
9
|
-
Volta.menu = function () {
|
10
|
-
var _class = {
|
11
|
-
mobile: 'Vlt-sidenav__mobile',
|
12
|
-
mobileOpen: 'Vlt-body--mobile-menu-open',
|
13
|
-
mobileTrigger: 'Vlt-sidenav__mobile-trigger',
|
14
|
-
link: 'Vlt-sidemenu__link',
|
15
|
-
linkActive: 'Vlt-sidemenu__link_active',
|
16
|
-
sideMenu: 'Vlt-sidemenu',
|
17
|
-
sideTabs: 'Vlt-sidetabs',
|
18
|
-
sideTabsLinkActive: 'Vlt-js-tabs__link_active',
|
19
|
-
sideTabsPanel: 'Vlt-js-tabs__panel',
|
20
|
-
sideTabsPanelActive: 'Vlt-js-tabs__panel_active',
|
21
|
-
sideTabsLink: 'Vlt-sidetabs__link',
|
22
|
-
sideTabsTrigger: 'Vlt-sidetabs__trigger',
|
23
|
-
trigger: 'Vlt-sidemenu__trigger',
|
24
|
-
triggerActive: 'Vlt-sidemenu__trigger_active',
|
25
|
-
triggerCurrent: 'Vlt-sidemenu__trigger_current',
|
26
|
-
triggerEnabled: '.Vlt-tabs__link:not(.Vlt-tabs__link_disabled)',
|
27
|
-
visible: 'Vlt-sidenav_visible'
|
28
|
-
}
|
29
|
-
|
30
|
-
var _id = {
|
31
|
-
menu: '#Vlt-sidenav',
|
32
|
-
mobileTrigger: '#Vlt-sidenav-mobile-trigger'
|
33
|
-
}
|
34
|
-
|
35
|
-
var expandedMenus = [],
|
36
|
-
mobileMenuTriggeredTwice;
|
37
|
-
|
38
|
-
return {
|
39
|
-
_class: _class,
|
40
|
-
_element: undefined,
|
41
|
-
|
42
|
-
closeAll: removeAllMenuItemsFromSelectedArr,
|
43
|
-
init: initialise,
|
44
|
-
expand: expandActiveMenu,
|
45
|
-
showCollapsed: expandMenu,
|
46
|
-
_triggerHandler: attachTriggerHandlers,
|
47
|
-
selectActiveTab: selectActiveTab,
|
48
|
-
styleActiveTrigger: styleActiveTrigger
|
49
|
-
}
|
50
|
-
|
51
|
-
/**
|
52
|
-
* @private
|
53
|
-
*
|
54
|
-
* @description Adds the parents of the active menu to the exoanded menus array
|
55
|
-
* @param {HTMLElement} element The active menu
|
56
|
-
*/
|
57
|
-
function addExpandedParentMenuToArr(element){
|
58
|
-
var nestedMenuUl = Volta._closest(element, 'ul', '.' + _class.sideMenu);
|
59
|
-
var nestedMenuTrigger = nestedMenuUl.previousElementSibling;
|
60
|
-
|
61
|
-
if(nestedMenuTrigger && Volta._hasClass(nestedMenuTrigger, _class.trigger)) {
|
62
|
-
if(!Volta._hasClass(nestedMenuTrigger, _class.triggerActive)) {
|
63
|
-
nestedMenuTrigger.classList.add(_class.triggerActive);
|
64
|
-
}
|
65
|
-
|
66
|
-
expandedMenus.push(nestedMenuTrigger);
|
67
|
-
addExpandedParentMenuToArr(nestedMenuTrigger);
|
68
|
-
}
|
69
|
-
}
|
70
|
-
|
71
|
-
/**
|
72
|
-
* @private
|
73
|
-
*
|
74
|
-
* @description Attach the listener for the mobile menu trigger
|
75
|
-
*/
|
76
|
-
function attachMobileTriggerHandler() {
|
77
|
-
var mobileMenuTrigger = document.querySelector(_id.mobileTrigger);
|
78
|
-
|
79
|
-
if(mobileMenuTrigger) {
|
80
|
-
mobileMenuTrigger.addEventListener('click', function(e){
|
81
|
-
if(mobileMenuTriggeredTwice) {
|
82
|
-
mobileMenuTriggeredTwice = false;
|
83
|
-
e.stopPropagation();
|
84
|
-
return;
|
85
|
-
}
|
86
|
-
if(!Volta._hasClass(Volta.menu._element, _class.visible)) {
|
87
|
-
Volta.menu._element.classList.add(_class.visible);
|
88
|
-
document.body.classList.add(_class.mobileOpen);
|
89
|
-
|
90
|
-
//stop propagation otherwise will immediately call handler
|
91
|
-
e.stopPropagation();
|
92
|
-
addMobileMenuCollapseListeners();
|
93
|
-
}
|
94
|
-
});
|
95
|
-
}
|
96
|
-
}
|
97
|
-
|
98
|
-
/**
|
99
|
-
* @private
|
100
|
-
*
|
101
|
-
* @description Attach the listeners for closing the expanded mobile menu
|
102
|
-
*/
|
103
|
-
function addMobileMenuCollapseListeners() {
|
104
|
-
document.querySelector('body').addEventListener('click', closeMenu, { once: true });
|
105
|
-
document.querySelector('body').addEventListener('touchstart', closeMenu, { once: true });
|
106
|
-
}
|
107
|
-
|
108
|
-
/**
|
109
|
-
* @public
|
110
|
-
*
|
111
|
-
* @description Attach the listeners to the trigger elements of the menu
|
112
|
-
*/
|
113
|
-
function attachTriggerHandlers() {
|
114
|
-
attachMobileTriggerHandler();
|
115
|
-
Volta.menu._element.querySelectorAll('.' + _class.trigger).forEach(attachHandler);
|
116
|
-
|
117
|
-
function attachHandler(triggerElem) {
|
118
|
-
triggerElem.addEventListener('click', expandMenu);
|
119
|
-
}
|
120
|
-
}
|
121
|
-
|
122
|
-
/**
|
123
|
-
* @private
|
124
|
-
*
|
125
|
-
* @description Checks if the passed in menu is nested
|
126
|
-
* @param {HTMLElement} menuItem
|
127
|
-
* @return {boolean} If the menu item is nested returns true, otherwise false
|
128
|
-
*/
|
129
|
-
function checkMenuItemIsNested(menuItem) {
|
130
|
-
return isNestedDescendant(menuItem);
|
131
|
-
}
|
132
|
-
|
133
|
-
/**
|
134
|
-
* @private
|
135
|
-
*
|
136
|
-
* @description Recursive function to check if the passed in menu is nested
|
137
|
-
* @param {HTMLElement} menuItem
|
138
|
-
* @param {Boolean} isAncestor
|
139
|
-
* @return {boolean} If the menu item is nested returns true, otherwise false
|
140
|
-
*/
|
141
|
-
function isNestedDescendant(menuItem, isAncestor) {
|
142
|
-
var isNested = false;
|
143
|
-
var ancestor = isAncestor ? menuItem.parentElement : menuItem.parentElement.parentElement;
|
144
|
-
var ancestorSibling = ancestor.previousElementSibling;
|
145
|
-
|
146
|
-
if(ancestorSibling) {
|
147
|
-
isNested = Volta._hasClass(ancestorSibling, _class.trigger);
|
148
|
-
}
|
149
|
-
|
150
|
-
if(ancestorSibling && !isNested) {
|
151
|
-
return isNestedDescendant(ancestor, true);
|
152
|
-
}
|
153
|
-
|
154
|
-
return isNested;
|
155
|
-
}
|
156
|
-
|
157
|
-
/**
|
158
|
-
* @private
|
159
|
-
*
|
160
|
-
* @description Attach the listeners to the trigger elements of the menu
|
161
|
-
* @param {HTMLElement} menuItem
|
162
|
-
* @return {boolean} If the menu item is nested returns true, otherwise false
|
163
|
-
*/
|
164
|
-
function closeMenu(e) {
|
165
|
-
if(!Volta._hasClass(e.target, _class.sideMenu) && !Volta._closest(e.target, '.' + _class.sideMenu) &&
|
166
|
-
!Volta._hasClass(e.target, _class.sideTabs) && !Volta._closest(e.target, '.' + _class.sideTabs)) {
|
167
|
-
Volta.menu._element.classList.remove(_class.visible);
|
168
|
-
|
169
|
-
document.body.classList.remove(_class.mobileOpen);
|
170
|
-
|
171
|
-
var isMobileMenu = Volta._closest(e.target, '.' + _class.mobile);
|
172
|
-
if(Volta._hasClass(e.target, _class.mobileTrigger) || isMobileMenu) {
|
173
|
-
mobileMenuTriggeredTwice = true;
|
174
|
-
}
|
175
|
-
} else {
|
176
|
-
addMobileMenuCollapseListeners();
|
177
|
-
}
|
178
|
-
}
|
179
|
-
|
180
|
-
/**
|
181
|
-
* @private
|
182
|
-
*
|
183
|
-
* @description Expand the nested menu
|
184
|
-
* @param {event} e
|
185
|
-
*/
|
186
|
-
function expandMenu(e) {
|
187
|
-
e.preventDefault();
|
188
|
-
e.stopPropagation();
|
189
|
-
|
190
|
-
var _this = this;
|
191
|
-
|
192
|
-
var isNestedMenu = checkMenuItemIsNested(_this);
|
193
|
-
|
194
|
-
if (expandedMenus.indexOf(_this) >= 0 && isNestedMenu) {
|
195
|
-
removeMenuFromSelectedArr(_this);
|
196
|
-
} else if(expandedMenus.indexOf(_this) >= 0) {
|
197
|
-
removeAllMenuItemsFromSelectedArr();
|
198
|
-
} else {
|
199
|
-
if(!isNestedMenu) {
|
200
|
-
removeAllMenuItemsFromSelectedArr();
|
201
|
-
} else {
|
202
|
-
removeSiblingFromSelectedArr(_this);
|
203
|
-
}
|
204
|
-
expandedMenus.push(_this);
|
205
|
-
_this.classList.add(_class.triggerActive);
|
206
|
-
}
|
207
|
-
|
208
|
-
if(Volta.menuCollapse) {
|
209
|
-
Volta.menuCollapse.attachCloseHandler(expandedMenus);
|
210
|
-
}
|
211
|
-
}
|
212
|
-
|
213
|
-
/**
|
214
|
-
* @public
|
215
|
-
*
|
216
|
-
* @description Expand the active menu - typically used on page load
|
217
|
-
* @param {boolean} isUserForced Whether the action has been trigger by the user
|
218
|
-
*/
|
219
|
-
function expandActiveMenu(isUserForced) {
|
220
|
-
var activeMenuItem = Volta.menu._element.querySelector('.' + _class.linkActive);
|
221
|
-
|
222
|
-
selectActiveTab(activeMenuItem);
|
223
|
-
|
224
|
-
if(activeMenuItem) {
|
225
|
-
var activeTriggerUl = Volta._closest(activeMenuItem, 'ul', '.' + _class.sideMenu);
|
226
|
-
var activeTrigger = activeTriggerUl ? activeTriggerUl.previousElementSibling : null;
|
227
|
-
if(activeTrigger) {
|
228
|
-
var isNestedMenu = checkMenuItemIsNested(activeTrigger);
|
229
|
-
if(isNestedMenu) {
|
230
|
-
addExpandedParentMenuToArr(activeTrigger);
|
231
|
-
}
|
232
|
-
|
233
|
-
if(!Volta._hasClass(activeTrigger, _class.triggerActive)) {
|
234
|
-
activeTrigger.classList.add(_class.triggerActive);
|
235
|
-
}
|
236
|
-
|
237
|
-
expandedMenus.push(activeTrigger);
|
238
|
-
}
|
239
|
-
styleActiveTrigger(activeMenuItem);
|
240
|
-
}
|
241
|
-
}
|
242
|
-
|
243
|
-
/**
|
244
|
-
* @public
|
245
|
-
*
|
246
|
-
* @description Initialise the menu
|
247
|
-
* @param {boolean} menuCollapse Whether the collapse module has been included
|
248
|
-
*/
|
249
|
-
function initialise(menuCollapse) {
|
250
|
-
expandedMenus = [];
|
251
|
-
Volta.menu._element = document.querySelector(_id.menu);
|
252
|
-
|
253
|
-
if(Volta.menu._element) {
|
254
|
-
if(!Volta.menuCollapse) {
|
255
|
-
expandActiveMenu();
|
256
|
-
} else if(menuCollapse) {
|
257
|
-
Volta.menuCollapse.init();
|
258
|
-
}
|
259
|
-
|
260
|
-
attachTriggerHandlers();
|
261
|
-
}
|
262
|
-
}
|
263
|
-
|
264
|
-
/**
|
265
|
-
* @public
|
266
|
-
*
|
267
|
-
* @description Clear the selected menus array, and close all of the nested menus
|
268
|
-
*/
|
269
|
-
function removeAllMenuItemsFromSelectedArr(){
|
270
|
-
expandedMenus.forEach(function(menuItem){
|
271
|
-
menuItem.classList.remove(_class.triggerActive);
|
272
|
-
});
|
273
|
-
expandedMenus = [];
|
274
|
-
}
|
275
|
-
|
276
|
-
/**
|
277
|
-
* @private
|
278
|
-
*
|
279
|
-
* @description Remove a specific menu item from the selected array and close
|
280
|
-
*/
|
281
|
-
function removeMenuFromSelectedArr(menuItem) {
|
282
|
-
var menuIndex = expandedMenus.indexOf(menuItem);
|
283
|
-
menuItem.classList.remove(_class.triggerActive);
|
284
|
-
expandedMenus.splice(menuIndex, 1);
|
285
|
-
}
|
286
|
-
|
287
|
-
/**
|
288
|
-
* @private
|
289
|
-
*
|
290
|
-
* @description Remove sibling menu item from the selected array and close
|
291
|
-
*/
|
292
|
-
function removeSiblingFromSelectedArr(menuItem) {
|
293
|
-
var ancestors = menuItem.parentElement.parentElement.children;
|
294
|
-
var openSibling;
|
295
|
-
var count = ancestors.length - 1;
|
296
|
-
|
297
|
-
while(openSibling === undefined && count >= 0) {
|
298
|
-
var siblingIndex = expandedMenus.indexOf(ancestors[count].children[0]);
|
299
|
-
if(siblingIndex >= 0) {
|
300
|
-
openSibling = expandedMenus[siblingIndex];
|
301
|
-
}
|
302
|
-
count--;
|
303
|
-
}
|
304
|
-
|
305
|
-
if(openSibling) {
|
306
|
-
removeMenuFromSelectedArr(openSibling);
|
307
|
-
}
|
308
|
-
}
|
309
|
-
|
310
|
-
/**
|
311
|
-
* @public
|
312
|
-
*
|
313
|
-
* @description Select the active side tab
|
314
|
-
* @param {activeMenuItem} Element(optional) The active menu item
|
315
|
-
*/
|
316
|
-
function selectActiveTab(activeMenuItem) {
|
317
|
-
activeMenuItem = activeMenuItem || Volta.menu._element.querySelector('.' + _class.linkActive);
|
318
|
-
var navTabs = document.querySelector(_id.menu + ' .' + _class.sideTabs);
|
319
|
-
|
320
|
-
if(!navTabs || !activeMenuItem) {
|
321
|
-
return null;
|
322
|
-
}
|
323
|
-
|
324
|
-
var sideMenus = Volta.menu._element.querySelectorAll('.' + _class.sideMenu);
|
325
|
-
var menuTab = Volta._closest(activeMenuItem, '.' + _class.sideTabsPanel, '.' + _class.sideMenu);
|
326
|
-
|
327
|
-
var tabIndex;
|
328
|
-
var currentNode = 0;
|
329
|
-
|
330
|
-
while(!tabIndex && currentNode < sideMenus.length) {
|
331
|
-
if(sideMenus.item(currentNode) === menuTab) {
|
332
|
-
tabIndex = currentNode;
|
333
|
-
break;
|
334
|
-
}
|
335
|
-
currentNode++;
|
336
|
-
}
|
337
|
-
var sideTabs = Volta.menu._element.querySelectorAll('.' + _class.sideTabsLink);
|
338
|
-
sideTabs[tabIndex].click();
|
339
|
-
}
|
340
|
-
|
341
|
-
/**
|
342
|
-
* @public
|
343
|
-
*
|
344
|
-
* @description Adds a class to the top level active trigger
|
345
|
-
* @param {activeMenuItem} Element(optional) The active menu item
|
346
|
-
*/
|
347
|
-
function styleActiveTrigger(activeMenuItem) {
|
348
|
-
activeMenuItem = activeMenuItem || Volta.menu._element.querySelector('.' + _class.linkActive);
|
349
|
-
|
350
|
-
if(activeMenuItem) {
|
351
|
-
var topLevelTrigger = getTopLevelTrigger(activeMenuItem);
|
352
|
-
|
353
|
-
if(topLevelTrigger) {
|
354
|
-
topLevelTrigger.classList.add(_class.triggerCurrent);
|
355
|
-
}
|
356
|
-
}
|
357
|
-
|
358
|
-
function getTopLevelTrigger(activeMenuItem) {
|
359
|
-
var element = activeMenuItem;
|
360
|
-
var trigger = null;
|
361
|
-
|
362
|
-
while (element) {
|
363
|
-
if(element.matches('ul') && Volta._hasClass(element, _class.sideMenu)) {
|
364
|
-
break;
|
365
|
-
}
|
366
|
-
|
367
|
-
if (element.matches('ul')) {
|
368
|
-
trigger = element;
|
369
|
-
}
|
370
|
-
|
371
|
-
element = element.parentElement;
|
372
|
-
}
|
373
|
-
|
374
|
-
return trigger ? trigger.previousElementSibling : null;
|
375
|
-
}
|
376
|
-
}
|
377
|
-
}();
|
@@ -1,249 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Copyright (c) 2018-present, Vonage. All rights reserved.
|
3
|
-
*
|
4
|
-
* Accordions (requires core)
|
5
|
-
*/
|
6
|
-
|
7
|
-
'use strict';
|
8
|
-
|
9
|
-
Volta.accordion = function () {
|
10
|
-
var _class = {
|
11
|
-
standard: {
|
12
|
-
container: 'Vlt-accordion',
|
13
|
-
containerGroup: 'Vlt-accordion--group',
|
14
|
-
trigger: 'Vlt-accordion__trigger',
|
15
|
-
triggerActive: 'Vlt-accordion__trigger_active',
|
16
|
-
content: 'Vlt-accordion__content',
|
17
|
-
contentOpen: 'Vlt-accordion__content_open',
|
18
|
-
contentOpening: 'Vlt-accordion__content_opening',
|
19
|
-
contentClosing: 'Vlt-accordion__content_closing',
|
20
|
-
},
|
21
|
-
js: {
|
22
|
-
content: 'Vlt-js-accordion__content',
|
23
|
-
contentOpen: 'Vlt-js-accordion__content_open',
|
24
|
-
contentOpening: 'Vlt-js-accordion__content_opening',
|
25
|
-
contentClosing: 'Vlt-js-accordion__content_closing',
|
26
|
-
trigger: 'Vlt-js-accordion__trigger',
|
27
|
-
triggerActive: 'Vlt-js-accordion__trigger_active'
|
28
|
-
}
|
29
|
-
}
|
30
|
-
|
31
|
-
function Accordion() {}
|
32
|
-
|
33
|
-
Accordion.prototype = {
|
34
|
-
init: function(element, suppressClickHandler, triggerElem) {
|
35
|
-
if(this.isStandard) {
|
36
|
-
this._initStandard(element, suppressClickHandler);
|
37
|
-
} else {
|
38
|
-
this._initJs(element, suppressClickHandler, triggerElem);
|
39
|
-
}
|
40
|
-
},
|
41
|
-
_initStandard: function(element, suppressClickHandler) {
|
42
|
-
var self = this;
|
43
|
-
|
44
|
-
if(!suppressClickHandler) {
|
45
|
-
element.querySelectorAll('.' + _class.standard.trigger).forEach(function(trigger) {
|
46
|
-
var parent = Volta._closest(trigger, '.' + _class.standard.container, _class.standard.container);
|
47
|
-
|
48
|
-
if(parent && parent == element) {
|
49
|
-
trigger.addEventListener('click', function(){
|
50
|
-
self.toggle(trigger);
|
51
|
-
});
|
52
|
-
}
|
53
|
-
});
|
54
|
-
}
|
55
|
-
},
|
56
|
-
_initJs: function(element, suppressClickHandler, triggerElem) {
|
57
|
-
this._content = element;
|
58
|
-
|
59
|
-
if(triggerElem) {
|
60
|
-
this.trigger = triggerElem;
|
61
|
-
} else if(this._content.dataset.trigger) {
|
62
|
-
var triggerId = this._content.dataset.trigger;
|
63
|
-
this.trigger = document.querySelector('#' + triggerId);
|
64
|
-
} else {
|
65
|
-
console.warn("Volta: js accordion trigger missing");
|
66
|
-
}
|
67
|
-
|
68
|
-
var self = this;
|
69
|
-
if(!suppressClickHandler && this.trigger) {
|
70
|
-
this.trigger.addEventListener('click', function(){
|
71
|
-
self.toggle();
|
72
|
-
});
|
73
|
-
}
|
74
|
-
},
|
75
|
-
close: function(trigger) {
|
76
|
-
var panel = this._content || trigger.nextElementSibling;
|
77
|
-
var trigger = this.trigger || trigger;
|
78
|
-
var classes = this.trigger ? _class.js : _class.standard;
|
79
|
-
|
80
|
-
trigger.classList.remove(classes.triggerActive);
|
81
|
-
panel.classList.add(classes.contentClosing);
|
82
|
-
|
83
|
-
panel.style.height = window.getComputedStyle(panel).height;
|
84
|
-
panel.offsetHeight; // force repaint
|
85
|
-
panel.style.height = '0px';
|
86
|
-
panel.classList.remove(classes.contentOpen);
|
87
|
-
|
88
|
-
var self = this;
|
89
|
-
panel.addEventListener('transitionend', function closingTransitionEndEvent(event) {
|
90
|
-
if (event.propertyName == 'height' && Volta._hasClass(panel, classes.contentClosing)) {
|
91
|
-
panel.classList.remove(classes.contentClosing);
|
92
|
-
panel.style.height = '0px';
|
93
|
-
panel.removeEventListener('transitionend', closingTransitionEndEvent, false);
|
94
|
-
|
95
|
-
if(self.isGroup && self._isTriggerActive(trigger, true)){
|
96
|
-
self._activeGroupTrigger = undefined;
|
97
|
-
}
|
98
|
-
}
|
99
|
-
}, { passive: true, once: true });
|
100
|
-
},
|
101
|
-
isOpening: false,
|
102
|
-
_activeGroupTrigger: undefined,
|
103
|
-
_isTriggerActive: function(trigger, match) {
|
104
|
-
return (this.isGroup && this._activeGroupTrigger && (!match || this._activeGroupTrigger === trigger)) || Volta._hasClass(trigger, _class.standard.triggerActive);
|
105
|
-
},
|
106
|
-
open: function(trigger) {
|
107
|
-
if(!this.trigger) {
|
108
|
-
if(this._isTriggerActive(trigger, false)) {
|
109
|
-
this.close(this._activeGroupTrigger || trigger);
|
110
|
-
}
|
111
|
-
if(this.isGroup) {
|
112
|
-
this._activeGroupTrigger = trigger;
|
113
|
-
}
|
114
|
-
}
|
115
|
-
|
116
|
-
var trig = this.trigger || trigger;
|
117
|
-
var classes = this.trigger ? _class.js : _class.standard;
|
118
|
-
var panel = this._content || trig.nextElementSibling;
|
119
|
-
|
120
|
-
this.isOpening = true;
|
121
|
-
|
122
|
-
trig.classList.add(classes.triggerActive);
|
123
|
-
panel.classList.add(classes.contentOpening);
|
124
|
-
|
125
|
-
var startHeight = panel.style.height;
|
126
|
-
panel.style.height = 'auto';
|
127
|
-
var endHeight = window.getComputedStyle(panel).height;
|
128
|
-
panel.style.height = startHeight;
|
129
|
-
panel.offsetHeight; // force repaint
|
130
|
-
panel.style.height = endHeight;
|
131
|
-
|
132
|
-
var self = this;
|
133
|
-
panel.addEventListener('transitionend', function openingTransitionEndEvent(event) {
|
134
|
-
if (event.propertyName == 'height' && Volta._hasClass(panel, classes.contentOpening)) {
|
135
|
-
panel.style.height = 'auto';
|
136
|
-
panel.classList.remove(classes.contentOpening);
|
137
|
-
panel.classList.add(classes.contentOpen);
|
138
|
-
panel.removeEventListener('transitionend', openingTransitionEndEvent, false);
|
139
|
-
self.isOpening = false;
|
140
|
-
}
|
141
|
-
}, { passive: true, once: true });
|
142
|
-
},
|
143
|
-
toggle: function(trigger) {
|
144
|
-
if(this.isOpening) {
|
145
|
-
return false;
|
146
|
-
}
|
147
|
-
if((this.trigger && Volta._hasClass(this._content, _class.js.contentOpen))
|
148
|
-
|| (!this.trigger && this._isTriggerActive(trigger, true))) {
|
149
|
-
this.close(trigger);
|
150
|
-
} else {
|
151
|
-
this.open(trigger);
|
152
|
-
}
|
153
|
-
}
|
154
|
-
}
|
155
|
-
|
156
|
-
return {
|
157
|
-
create: create,
|
158
|
-
init: initialise
|
159
|
-
}
|
160
|
-
|
161
|
-
/**
|
162
|
-
* @public
|
163
|
-
*
|
164
|
-
* @description Create an individual accordion object
|
165
|
-
* @param {Element|string} elementOrId Reference to the accordion content element or the id
|
166
|
-
* @param {Boolean} suppressClickHandler Whether click events should be attached on creation
|
167
|
-
* @param {Element} trigger Private required for legacy accordions
|
168
|
-
* @param {Boolean} isGroup Private required for legacy accordions
|
169
|
-
* @return {Object}
|
170
|
-
*/
|
171
|
-
function create(elementOrId, suppressClickHandler, trigger, isGroup, isStandard) {
|
172
|
-
if(!elementOrId) {
|
173
|
-
console.warn("Volta: no parameter supplied to accordion.create()");
|
174
|
-
}
|
175
|
-
var accordion = Object.create(Accordion.prototype, {});
|
176
|
-
var element = getElement(elementOrId);
|
177
|
-
|
178
|
-
Object.defineProperties(accordion, {
|
179
|
-
'isStandard': {
|
180
|
-
value: isStandard || Volta._hasClass(element, _class.standard.container),
|
181
|
-
writable: false
|
182
|
-
}
|
183
|
-
});
|
184
|
-
|
185
|
-
Object.defineProperties(accordion, {
|
186
|
-
'isGroup': {
|
187
|
-
value: isGroup,
|
188
|
-
writable: false
|
189
|
-
}
|
190
|
-
});
|
191
|
-
|
192
|
-
accordion.init(element, suppressClickHandler, trigger);
|
193
|
-
|
194
|
-
return accordion;
|
195
|
-
}
|
196
|
-
|
197
|
-
/**
|
198
|
-
* @public
|
199
|
-
*
|
200
|
-
* @description Initialise all the accordions on the current screen
|
201
|
-
*/
|
202
|
-
function initialise() {
|
203
|
-
//standard
|
204
|
-
var standardAccordions = document.querySelectorAll('.' + _class.standard.container);
|
205
|
-
|
206
|
-
if(standardAccordions.length) {
|
207
|
-
standardAccordions.forEach(function(accordion){
|
208
|
-
create(accordion, false, null, Volta._hasClass(accordion, _class.standard.containerGroup), true);
|
209
|
-
});
|
210
|
-
}
|
211
|
-
|
212
|
-
//js
|
213
|
-
var triggers = document.querySelectorAll('.' + _class.js.trigger + '[data-accordion]');
|
214
|
-
if(triggers.length > 0) {
|
215
|
-
triggers.forEach(function(trigger) {
|
216
|
-
var accordionId = trigger.dataset.accordion;
|
217
|
-
if(!accordionId) {
|
218
|
-
return;
|
219
|
-
}
|
220
|
-
create(accordionId, false, trigger);
|
221
|
-
});
|
222
|
-
}
|
223
|
-
|
224
|
-
//js - legacy
|
225
|
-
var jsAccordions = document.querySelectorAll('.' + _class.js.content + '[data-trigger]');
|
226
|
-
if(jsAccordions.length > 0) {
|
227
|
-
jsAccordions.forEach(function(jsLegacy) {
|
228
|
-
create(jsLegacy);
|
229
|
-
});
|
230
|
-
}
|
231
|
-
}
|
232
|
-
|
233
|
-
/**
|
234
|
-
* @private
|
235
|
-
*/
|
236
|
-
function getElement(elementOrId) {
|
237
|
-
var element;
|
238
|
-
|
239
|
-
if(elementOrId.classList) {
|
240
|
-
element = elementOrId;
|
241
|
-
} else if (elementOrId.substring(0, 1) === "#") {
|
242
|
-
element = document.querySelector(elementOrId);
|
243
|
-
} else {
|
244
|
-
element = document.querySelector('#' + elementOrId);
|
245
|
-
}
|
246
|
-
|
247
|
-
return element;
|
248
|
-
}
|
249
|
-
}();
|