mirror of https://github.com/istio/istio.io.git
21 lines
49 KiB
JavaScript
21 lines
49 KiB
JavaScript
"use strict";const click="click";const mouseenter="mouseenter";const mouseleave="mouseleave";const active="active";const keyup="keyup";const keydown="keydown";const button="button";const ariaLabel="aria-label";const ariaExpanded="aria-expanded";const ariaSelected="aria-selected";const ariaControls="aria-controls";const tabIndex="tabindex";
|
|
"use strict";const keyCodes=Object.freeze({DOWN:40,END:35,ESC:27,HOME:36,LEFT:37,PAGEDOWN:34,PAGEUP:33,RETURN:13,RIGHT:39,SPACE:32,TAB:9,UP:38});function copyToClipboard(str){const sel=document.getSelection();if(!sel){return}const el=document.createElement("textarea");el.value=str;el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);if(sel.rangeCount>0){const oldSelection=sel.getRangeAt(0);el.select();document.execCommand("copy");document.body.removeChild(el);sel.removeAllRanges();sel.addRange(oldSelection)}else{el.select();document.execCommand("copy");document.body.removeChild(el)}}function saveFile(filename,text){const element=document.createElement("a");element.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(text));element.setAttribute("download",filename);element.style.display="none";document.body.appendChild(element);element.click();document.body.removeChild(element)}function printText(text){const html="<html><body><pre><code>"+text+"</code></pre></html>";const printWin=window.open("","","left=0,top=0,width=100,height=100,toolbar=0,scrollbars=0,status=0,location=0,menubar=0",false);if(printWin){printWin.document.write(html);printWin.document.close();printWin.focus();printWin.print();printWin.close()}}function navigateToUrlOrRoot(url){const request=new XMLHttpRequest;request.open("GET",url,true);request.onreadystatechange=()=>{if(request.readyState===4&&request.status===404){const u=new URL(url);u.pathname="";url=u.toString()}window.location.href=url};request.send()}function createCookie(name,value){document.cookie=name+"="+value+"; path=/"}function getById(id){return document.getElementById(id)}function listen(o,e,f){if(o){o.addEventListener(e,f)}}function toggleAttribute(el,name){if(el.getAttribute(name)==="true"){el.setAttribute(name,"false")}else{el.setAttribute(name,"true")}}function isPrintableCharacter(str){return str.length===1&&str.match(/\S/)!=null}
|
|
"use strict";function sendFeedback(language,value){gtag("event","click-"+language,{event_category:"Helpful",event_label:window.location.pathname,value});const initial=getById("feedback-initial");if(initial){initial.style.display="none"}const ty=getById("feedback-thankyou");if(!ty){return}ty.style.display="inline-block"}
|
|
"use strict";class KbdNav{constructor(elements){this.elements=elements}focusFirstElement(){this.elements[0].focus()}focusLastElement(){this.elements[this.elements.length-1].focus()}focusNextElement(){for(let i=0;i<this.elements.length;i++){if(this.elements[i]===document.activeElement){if(i<this.elements.length-1){this.elements[i+1].focus();return}break}}this.focusFirstElement()}focusPrevElement(){for(let i=0;i<this.elements.length;i++){if(this.elements[i]===document.activeElement){if(i>0){this.elements[i-1].focus();return}break}}this.focusLastElement()}focusElementByChar(ch){function getIndexFirstChars(startIndex,elements){for(let i=startIndex;i<elements.length;i++){const el=elements[i];if(el&&el.textContent){const firstChar=el.textContent.trim().substring(0,1).toLowerCase();if(ch===firstChar){return i}}}return-1}ch=ch.toLowerCase();for(let i=0;i<this.elements.length;i++){if(this.elements[i]===document.activeElement){let index=getIndexFirstChars(i+1,this.elements);if(index===-1){index=getIndexFirstChars(0,this.elements)}if(index>-1){this.elements[index].focus()}break}}}}
|
|
"use strict";function handleThemes(){applyStyleSheet(currentTheme);listen(getById(lightThemeItem),click,()=>{applyStyleSheet(lightTheme);localStorage.setItem(themeStorageItem,lightTheme);return false});listen(getById(darkThemeItem),click,()=>{applyStyleSheet(darkTheme);localStorage.setItem(themeStorageItem,darkTheme);return false})}handleThemes();
|
|
"use strict";function handleMenu(){document.querySelectorAll(".menu").forEach(menu=>{const trigger=menu.querySelector(".menu-trigger");const content=menu.querySelector(".menu-content");if(!trigger||!content){return}const items=[];for(const el of content.children){const child=el;if(child.getAttribute("role")==="menuitem"){items.push(child)}}const kbdnav=new KbdNav(items);function focusTrigger(){if(trigger){trigger.focus()}}listen(trigger,click,e=>{toggleOverlay(menu);toggleAttribute(e.currentTarget,ariaExpanded);e.cancelBubble=true});listen(trigger,keydown,o=>{const e=o;const ch=e.key;switch(e.keyCode){case keyCodes.SPACE:case keyCodes.RETURN:case keyCodes.DOWN:showOverlay(menu);kbdnav.focusFirstElement();break;case keyCodes.UP:showOverlay(menu);kbdnav.focusLastElement();break;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}return;}e.stopPropagation();e.preventDefault()});items.forEach(el=>{listen(el,keydown,o=>{const e=o;const ch=e.key;if(e.ctrlKey||e.altKey||e.metaKey){}else if(e.shiftKey){if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}}else{switch(e.keyCode){case keyCodes.SPACE:break;case keyCodes.RETURN:const evt=new MouseEvent(click,{bubbles:true,cancelable:true,clientX:20,view:window});el.dispatchEvent(evt);break;case keyCodes.ESC:case keyCodes.TAB:focusTrigger();closeActiveOverlay();return;case keyCodes.UP:kbdnav.focusPrevElement();break;case keyCodes.DOWN:kbdnav.focusNextElement();break;case keyCodes.HOME:case keyCodes.PAGEUP:kbdnav.focusFirstElement();break;case keyCodes.END:case keyCodes.PAGEDOWN:kbdnav.focusLastElement();break;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}return;}e.stopPropagation();e.preventDefault()}})})})}handleMenu();
|
|
"use strict";function handleHeader(){const searchForm="search-form";const headerLinks="header-links";const searchTextbox="search-textbox";const showSearch="show-search";const openHamburger="open-hamburger";function showNavBarLinks(){const sf=getById(searchForm);if(sf){sf.classList.remove(showSearch)}const hl=getById(headerLinks);if(hl){hl.classList.remove(showSearch)}const st=getById(searchTextbox);if(st){st.value=""}}function showSearchBox(){const sf=getById(searchForm);if(sf){sf.classList.add(showSearch)}const hl=getById(headerLinks);if(hl){hl.classList.add(showSearch)}const st=getById(searchTextbox);if(st){st.focus()}}listen(document.body,keyup,o=>{const e=o;if(e.which===27){showNavBarLinks();closeActiveOverlay()}});listen(getById("search-show"),click,e=>{e.preventDefault();showSearchBox()});listen(getById("search-close"),click,e=>{e.preventDefault();showNavBarLinks()});listen(getById(searchForm),"submit",e=>{e.preventDefault();const textbox=getById(searchTextbox);const searchPageUrl=getById("search-page-url");const url=searchPageUrl.value+"?q="+textbox.value;showNavBarLinks();window.location.assign(url)});listen(getById("hamburger"),click,()=>{const b=getById("brand");if(b){b.classList.toggle(openHamburger)}const hl=getById(headerLinks);if(hl){hl.classList.toggle(openHamburger)}const sf=getById(searchForm);if(sf){sf.classList.toggle(openHamburger)}const st=getById(searchTextbox);if(st){st.focus()}})}handleHeader();
|
|
"use strict";function handleSidebar(){const sidebar=getById("sidebar");if(!sidebar){return}sidebar.querySelectorAll(".body").forEach(body=>{body.querySelectorAll(button).forEach(o=>{listen(o,click,e=>{const button=e.currentTarget;button.classList.toggle("show");const next=button.nextElementSibling;if(!next){return}const ul=next.nextElementSibling;if(!ul){return}toggleAttribute(ul,ariaExpanded);let el=ul;do{el=el.parentElement}while(!el.classList.contains("body"));el.style.maxHeight=el.scrollHeight+"px"})});window.observeResize(body,el=>{if(el.style.maxHeight!==null&&el.style.maxHeight!==""){el.style.maxHeight=el.scrollHeight+"px"}})});const headers=[];sidebar.querySelectorAll(".header").forEach(header=>{headers.push(header)});const kbdnav=new KbdNav(headers);function toggleHeader(header){const body=header.nextElementSibling;if(!body){return}body.classList.toggle("show");toggleAttribute(header,ariaExpanded);if(body.classList.contains("show")){body.style.maxHeight=body.scrollHeight+"px"}else{body.style.maxHeight=""}}sidebar.querySelectorAll(".header").forEach(header=>{if(header.classList.contains("dynamic")){listen(header,click,()=>{toggleHeader(header)});listen(header,keydown,o=>{const e=o;const ch=e.key;if(e.ctrlKey||e.altKey||e.metaKey){}else if(e.shiftKey){if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}}else{switch(e.keyCode){case keyCodes.UP:kbdnav.focusPrevElement();break;case keyCodes.DOWN:kbdnav.focusNextElement();break;case keyCodes.HOME:kbdnav.focusFirstElement();break;case keyCodes.END:kbdnav.focusLastElement();break;case keyCodes.RETURN:toggleHeader(header);break;case keyCodes.TAB:return;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}break;}e.preventDefault();e.cancelBubble=true}})}});sidebar.querySelectorAll(".body").forEach(body=>{if(body.classList.contains("default")){body.style.maxHeight=body.scrollHeight+"px";body.classList.toggle("default");body.classList.toggle("show");const header=body.previousElementSibling;if(header){toggleAttribute(header,ariaExpanded)}}});listen(getById("sidebar-toggler"),click,e=>{const sc=getById("sidebar-container");if(sc){sc.classList.toggle(active);const icon=e.currentTarget.querySelector("svg.icon");if(icon){icon.classList.toggle("flipped")}}})}handleSidebar();
|
|
"use strict";function selectTabsets(categoryName,categoryValue){document.querySelectorAll(".tabset").forEach(tabset=>{tabset.querySelectorAll(".tab-strip").forEach(o=>{const strip=o;if(strip.dataset.categoryName===categoryName){strip.querySelectorAll("[role=tab]").forEach(tab=>{const attr=tab.getAttribute(ariaControls);if(!attr){return}const panel=getById(attr);if(!panel){return}if(tab.dataset.categoryValue===categoryValue){tab.setAttribute(ariaSelected,"true");tab.removeAttribute(tabIndex);panel.removeAttribute("hidden")}else{tab.removeAttribute(ariaSelected);tab.setAttribute(tabIndex,"-1");panel.setAttribute("hidden","")}})}})})}function handleTabs(){document.querySelectorAll(".tabset").forEach(tabset=>{const strip=tabset.querySelector(".tab-strip");if(!strip){return}const categoryName=strip.dataset.categoryName;const panels=tabset.querySelectorAll("[role=tabpanel]");const tabs=[];strip.querySelectorAll("[role=tab]").forEach(tab=>{tabs.push(tab)});const kbdnav=new KbdNav(tabs);function activateTab(tab){deactivateAllTabs();tab.removeAttribute(tabIndex);tab.setAttribute(ariaSelected,"true");const ac=tab.getAttribute(ariaControls);if(ac){const other=getById(ac);if(other){other.removeAttribute("hidden")}}}function deactivateAllTabs(){tabs.forEach(tab=>{tab.setAttribute(tabIndex,"-1");tab.setAttribute(ariaSelected,"false")});panels.forEach(panel=>{panel.setAttribute("hidden","")})}if(categoryName){const categoryValue=readLocalStorage(categoryName);if(categoryValue){selectTabsets(categoryName,categoryValue)}}strip.querySelectorAll(button).forEach(tab=>{listen(tab,"focus",()=>{activateTab(tab);if(categoryName){const categoryValue=tab.dataset.categoryValue;if(categoryValue){localStorage.setItem(categoryName,categoryValue);selectTabsets(categoryName,categoryValue)}}});listen(tab,"click",()=>{activateTab(tab);if(categoryName){const categoryValue=tab.dataset.categoryValue;if(categoryValue){localStorage.setItem(categoryName,categoryValue);selectTabsets(categoryName,categoryValue)}}});listen(tab,keydown,o=>{const e=o;const ch=e.key;if(e.ctrlKey||e.altKey||e.metaKey){}else if(e.shiftKey){if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}}else{switch(e.keyCode){case keyCodes.LEFT:kbdnav.focusPrevElement();break;case keyCodes.RIGHT:kbdnav.focusNextElement();break;case keyCodes.HOME:kbdnav.focusFirstElement();break;case keyCodes.END:kbdnav.focusLastElement();break;case keyCodes.TAB:return;default:if(isPrintableCharacter(ch)){kbdnav.focusElementByChar(ch)}break;}e.preventDefault();e.cancelBubble=true}})})})}handleTabs();
|
|
"use strict";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,t){var r=n.util.type(e);switch(t=t||{},r){case"Object":if(t[n.util.objId(e)])return t[n.util.objId(e)];var a={};t[n.util.objId(e)]=a;for(var l in e)e.hasOwnProperty(l)&&(a[l]=n.util.clone(e[l],t));return a;case"Array":if(t[n.util.objId(e)])return t[n.util.objId(e)];var a=[];return t[n.util.objId(e)]=a,e.forEach(function(e,r){a[r]=n.util.clone(e,t)}),a;}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,u={element:t,language:l,grammar:i,code:s};if(n.hooks.run("before-sanity-check",u),!u.code||!u.grammar)return u.code&&(n.hooks.run("before-highlight",u),u.element.textContent=u.code,n.hooks.run("after-highlight",u)),n.hooks.run("complete",u),void 0;if(n.hooks.run("before-highlight",u),r&&_self.Worker){var g=new Worker(n.filename);g.onmessage=function(e){u.highlightedCode=e.data,n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,a&&a.call(u.element),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},g.postMessage(JSON.stringify({language:u.language,code:u.code,immediateClose:!0}))}else u.highlightedCode=n.highlight(u.code,u.grammar,u.language),n.hooks.run("before-insert",u),u.element.innerHTML=u.highlightedCode,a&&a.call(t),n.hooks.run("after-highlight",u),n.hooks.run("complete",u)},highlight:function(e,t,a){var l={code:e,grammar:t,language:a};return n.hooks.run("before-tokenize",l),l.tokens=n.tokenize(l.code,l.grammar),n.hooks.run("after-tokenize",l),r.stringify(n.util.encode(l.tokens),l.language)},matchGrammar:function(e,t,r,a,l,i,o){var s=n.Token;for(var u in r)if(r.hasOwnProperty(u)&&r[u]){if(u==o)return;var g=r[u];g="Array"===n.util.type(g)?g:[g];for(var c=0;c<g.length;++c){var h=g[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)){if(m&&b!=t.length-1){h.lastIndex=k;var _=h.exec(e);if(!_)break;for(var j=_.index+(d?_[1].length:0),P=_.index+_[0].length,A=b,x=k,O=t.length;O>A&&(P>x||!t[A].type&&!t[A-1].greedy);++A)x+=t[A].length,j>=x&&(++b,k=x);if(t[b]instanceof s)continue;I=A-b,w=e.slice(k,x),_.index-=k}else{h.lastIndex=0;var _=h.exec(w),I=1}if(_){d&&(p=_[1]?_[1].length:0);var j=_.index+p,_=_[0].slice(p),P=j+_.length,N=w.slice(0,j),S=w.slice(P),C=[b,I];N&&(++b,k+=N.length,C.push(N));var E=new s(u,f?n.tokenize(_,f):_,y,_,m);if(C.push(E),S&&C.push(S),Array.prototype.splice.apply(t,C),1!=I&&n.matchGrammar(e,t,r,b,k,!0,u),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);Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!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:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};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]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,"function":/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<<?=?|>>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\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"},constant:/\b[A-Z][A-Z\d_]*\b/}),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;!function(e){var t={variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\([^)]+\)|`[^`]+`/,greedy:!0,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;|&])(?:helm|docker|istioctl|curl|kubectl|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|curl|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.string=e.languages.bash.string,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,e.languages.shell=e.languages.bash}(Prism);Prism.languages.docker={keyword:{pattern:/(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im,lookbehind:!0},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,comment:/#.*/,punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/},Prism.languages.dockerfile=Prism.languages.docker;Prism.languages.go=Prism.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,"boolean":/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete Prism.languages.go["class-name"];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*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<<?=?|>>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),Prism.languages.insertBefore("java","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),Prism.languages.insertBefore("java","class-name",{generics:{pattern:/<\s*\w+(?:\.\w+)?(?:\s*,\s*\w+(?:\.\w+)?)*>/i,alias:"function",inside:{keyword:Prism.languages.java.keyword,punctuation:/[<>(),.:]/}}});Prism.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,punctuation:/[{}[\]);,]/,operator:/:/g,"boolean":/\b(?:true|false)\b/i,"null":/\bnull\b/i},Prism.languages.jsonp=Prism.languages.json;Prism.languages.protobuf=Prism.languages.extend("clike",{keyword:/\b(?:package|import|message|enum)\b/,builtin:/\b(?:required|repeated|optional|reserved)\b/,primitive:{pattern:/\b(?:double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/,alias:"symbol"}});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(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/};Prism.languages.yaml={scalar:{pattern:/([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/,lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:/(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,alias:"number"},"boolean":{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},"null":{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},string:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\s]+/,important:/[&*][\w]+/,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./};
|
|
"use strict";let syntaxColoring=true;function handleCodeBlocks(){const toolbarShow="toolbar-show";const syntaxColoringStorageItem="syntax-coloring";const syntaxColoringItem="syntax-coloring-item";function attachToolbar(pre){const copyButton=document.createElement(button);copyButton.title=buttonCopy;copyButton.className="copy";copyButton.innerHTML="<svg><use xlink:href='"+iconFile+"#copy'/></svg>";copyButton.setAttribute(ariaLabel,buttonCopy);listen(copyButton,mouseenter,e=>e.currentTarget.classList.add(toolbarShow));listen(copyButton,mouseleave,e=>e.currentTarget.classList.remove(toolbarShow));listen(copyButton,"focus",e=>e.currentTarget.classList.add(toolbarShow));listen(copyButton,"blur",e=>e.currentTarget.classList.remove(toolbarShow));listen(copyButton,click,e=>{const div=e.currentTarget.parentElement;if(div){const text=getToolbarDivText(div);copyToClipboard(text)}return true});const downloadButton=document.createElement(button);downloadButton.title=buttonDownload;downloadButton.className="download";downloadButton.innerHTML="<svg><use xlink:href='"+iconFile+"#download'/></svg>";downloadButton.setAttribute(ariaLabel,buttonDownload);listen(downloadButton,mouseenter,e=>e.currentTarget.classList.add(toolbarShow));listen(downloadButton,mouseleave,e=>e.currentTarget.classList.remove(toolbarShow));listen(downloadButton,"focus",e=>e.currentTarget.classList.add(toolbarShow));listen(downloadButton,"blur",e=>e.currentTarget.classList.remove(toolbarShow));listen(downloadButton,click,e=>{const div=e.currentTarget.parentElement;if(!div){return false}const codes=div.getElementsByTagName("code");if(codes!==null&&codes.length>0){const code=codes[0];if(!code){return false}const text=getToolbarDivText(div);let downloadas=code.dataset.downloadas;if(!downloadas||downloadas===""){let lang="";for(const cl of code.classList){if(!cl){continue}if(cl.startsWith("language-")){lang=cl.substr(9);break}else if(cl.startsWith("command-")){lang="bash";break}}if(lang==="markdown"){lang="md"}else if(lang===""){lang="txt"}downloadas=docTitle+"."+lang}saveFile(downloadas,text)}return true});const printButton=document.createElement(button);printButton.title=buttonPrint;printButton.className="print";printButton.innerHTML="<svg><use xlink:href='"+iconFile+"#printer'/></svg>";printButton.setAttribute(ariaLabel,buttonPrint);listen(printButton,mouseenter,e=>e.currentTarget.classList.add(toolbarShow));listen(printButton,mouseleave,e=>e.currentTarget.classList.remove(toolbarShow));listen(printButton,"focus",e=>e.currentTarget.classList.add(toolbarShow));listen(printButton,"blur",e=>e.currentTarget.classList.remove(toolbarShow));listen(printButton,click,e=>{const div=e.currentTarget.parentElement;if(div){const text=getToolbarDivText(div);printText(text)}return true});const div=document.createElement("div");div.className="toolbar";const parent=pre.parentElement;if(parent){parent.insertBefore(div,pre)}div.appendChild(pre);div.appendChild(printButton);div.appendChild(downloadButton);div.appendChild(copyButton);listen(pre,mouseenter,o=>{const e=o.currentTarget;const next0=e.nextElementSibling;if(next0){next0.classList.add(toolbarShow);const next1=next0.nextElementSibling;if(next1){next1.classList.add(toolbarShow);const next2=next1.nextElementSibling;if(next2){next2.classList.add(toolbarShow)}}}});listen(pre,mouseleave,o=>{const e=o.currentTarget;const next0=e.nextElementSibling;if(next0){next0.classList.remove(toolbarShow);const next1=next0.nextElementSibling;if(next1){next1.classList.remove(toolbarShow);const next2=next1.nextElementSibling;if(next2){next2.classList.remove(toolbarShow)}}}})}function getToolbarDivText(div){const commands=div.getElementsByClassName("command");if(commands!==null&&commands.length>0){const inner=commands[0].innerText;const lines=inner.split("\n");let cmd="";for(let i=0;i<lines.length;i++){if(lines[i].startsWith("$ ")){lines[i]=lines[i].substring(2)}if(cmd!==""){cmd+="\n"}cmd+=lines[i]}return cmd}return div.innerText}function applyTransformations(pre){const code=pre.firstElementChild;if(code==null){return}let cl="";for(const o of code.classList){if(o&&o.startsWith("language-bash")){cl=o;break}}if(cl!==""){let firstLineOfOutput=0;const lines=code.innerText.split("\n");let cmd="";let escape=false;let escapeUntilEOF=false;let tmp="";for(let j=0;j<lines.length;j++){const line=lines[j];if(line.startsWith("$ ")){if(tmp!==""){if(syntaxColoring){cmd+="$ "+Prism.highlight(tmp,Prism.languages.bash,"bash")+"\n"}else{cmd+="$ "+tmp+"\n"}}tmp=line.slice(2);if(line.includes("<<EOF")){escapeUntilEOF=true}}else if(escape){tmp+="\n"+line;if(line.includes("<<EOF")){escapeUntilEOF=true}}else if(escapeUntilEOF){tmp+="\n"+line;if(line==="EOF"){escapeUntilEOF=false}}else{firstLineOfOutput=j;break}escape=line.endsWith("\\")}if(tmp!==""){if(syntaxColoring){cmd+="$ "+Prism.highlight(tmp,Prism.languages.bash,"bash")+"\n"}else{cmd+="$ "+tmp+"\n";cmd=cmd.replace(/</g,"<").replace(/>/g,">")}}if(cmd!==""){if(code.dataset.expandlinks==="true"){cmd=cmd.replace(/@(.*?)@/g,"<a href='https://raw.githubusercontent.com/istio/"+code.dataset.repo+"/"+branchName+"/$1'>$1</a>")}let html="<div class='command'>"+cmd+"</div>";let output="";if(firstLineOfOutput>0){for(let j=firstLineOfOutput;j<lines.length;j++){if(output!==""){output+="\n"}output+=lines[j]}}if(output!==""){output=output.replace(/</g,"<").replace(/>/g,">");if(code.dataset.outputis){if(syntaxColoring){output=Prism.highlight(output,Prism.languages[code.dataset.outputis],code.dataset.outputis)}}html+="<div class='output'>"+output+"</div>"}code.innerHTML=html;code.classList.remove(cl);code.classList.add("command-output")}else if(syntaxColoring){Prism.highlightElement(code,false)}}else if(syntaxColoring){Prism.highlightElement(code,false)}}function loadExternal(pre){function fetchFile(elem,url){fetch(url).then(response=>{if(response.status!==200){return"Unable to access "+url+": "+response.statusText}return response.text()}).catch(e=>{return"Unable to access "+url+": "+e}).then(data=>{if(code.dataset.snippet){const pattern="\\#.*?\\$snippet "+code.dataset.snippet+"\\n(.*?)\\n\\#.+?\\$endsnippet";const regex=new RegExp(pattern,"gms");let buf="";let match=regex.exec(data);while(match!==null){if(buf!==""){buf+="\n"}buf+=match[1];match=regex.exec(data)}data=buf}elem.textContent=data;applyTransformations(pre)})}const code=pre.firstElementChild;if(code&&code.dataset.src){fetchFile(code,code.dataset.src)}}function handleSyntaxColoringOption(){const setting=readLocalStorage(syntaxColoringStorageItem);if(setting==="true"){syntaxColoring=true}else if(setting==="false"){syntaxColoring=false}const item=document.getElementById(syntaxColoringItem);if(item){if(syntaxColoring){item.classList.add(active)}else{item.classList.remove(active)}}listen(getById(syntaxColoringItem),click,()=>{localStorage.setItem(syntaxColoringStorageItem,syntaxColoring?"false":"true");location.reload()})}handleSyntaxColoringOption();document.querySelectorAll("pre").forEach(pre=>{attachToolbar(pre);applyTransformations(pre);loadExternal(pre)})}handleCodeBlocks();
|
|
"use strict";function handleLinks(){function attachSelfLink(node){if(node.id===""){return}const anchor=document.createElement("a");anchor.className="self-link";anchor.href="#"+node.id;anchor.setAttribute("aria-hidden","true");anchor.innerHTML="<svg class='icon'><use xlink:href='"+iconFile+"#links'/></svg>";node.appendChild(anchor)}function attachSelfLinks(){document.querySelectorAll("h2").forEach(attachSelfLink);document.querySelectorAll("h3").forEach(attachSelfLink);document.querySelectorAll("h4").forEach(attachSelfLink);document.querySelectorAll("h5").forEach(attachSelfLink);document.querySelectorAll("h6").forEach(attachSelfLink);document.querySelectorAll("dt").forEach(attachSelfLink)}function makeOutsideLinksOpenInTabs(){document.querySelectorAll("a").forEach(link=>{if(link.hostname&&link.hostname!==location.hostname){link.setAttribute("target","_blank");link.setAttribute("rel","noopener")}})}function createEndnotes(){const notes=getById("endnotes");if(!notes){return}const article=document.getElementsByTagName("article")[0];const map=new Map(null);let numLinks=0;article.querySelectorAll("a").forEach(link=>{if(link.pathname===location.pathname){return}if(link.pathname.endsWith("/")&&link.hash!==""){return}if(link.classList.contains("btn")){return}if(link.dataset.skipendnotes==="true"){return}let count=map.get(link.href);if(count===undefined){count=map.size+1;map.set(link.href,count);const li=document.createElement("li");li.innerText=link.href;notes.appendChild(li)}link.insertAdjacentHTML("afterend","<sup class='endnote-ref' aria-hidden='true'>"+count+"</sup>");numLinks++});if(numLinks>0){const ec=getById("endnotes-container");if(ec){ec.classList.add("show")}}}attachSelfLinks();makeOutsideLinksOpenInTabs();createEndnotes()}handleLinks();
|
|
"use strict";let trackedPages=null;let visitedPages=null;function loadVisitedPages(){const blob=readLocalStorage("visitedPages");if(blob!=null){visitedPages=JSON.parse(blob)}}function saveVisitedPages(){localStorage.setItem("visitedPages",JSON.stringify(visitedPages))}function markPagesAsVisited(prefix){if(trackedPages!==null){let dirty=false;for(const trackedPage in trackedPages){if(trackedPages.hasOwnProperty(trackedPage)){if(trackedPage.startsWith(prefix)){visitedPages[trackedPage]=1;dirty=true}}}if(dirty){saveVisitedPages();setPills();setDots();setMarkAllRead()}}}function setPills(){document.querySelectorAll(".pill").forEach(pill=>{const prefix=pill.dataset.prefix;if(prefix===undefined){return}const count=countUnvisited(prefix);if(count>0){pill.classList.add("visible");pill.innerText=count.toString()}else{pill.classList.remove("visible")}})}function setDots(){document.querySelectorAll(".dot").forEach(dot=>{const prefix=dot.dataset.prefix;if(prefix===undefined){return}const count=countUnvisited(prefix);if(count>0){dot.classList.add("visible")}else{dot.classList.remove("visible")}})}function setMarkAllRead(){const button=document.getElementById("mark-all-read");if(button!=null){const prefix=button.dataset.prefix;if(prefix===undefined){return}const count=countUnvisited(prefix);if(count>0){button.classList.add("visible")}else{button.classList.remove("visible")}}}function countUnvisited(prefix){let count=0;for(const trackedPage in trackedPages){if(trackedPages.hasOwnProperty(trackedPage)){if(trackedPage.startsWith(prefix)){let found=false;for(const visitedPage in visitedPages){if(trackedPage===visitedPage){found=true;break}}if(!found){count++}}}}return count}function handleReadTracking(){function fetchTrackedPagesIndex(){fetch("/_tracked_pages.json").then(response=>{if(!response.ok){throw new Error("HTTP error "+response.status)}return response.json()}).then(json=>{trackedPages=json;let dirty=false;if(visitedPages===null){visitedPages={};for(const trackedPage in trackedPages){if(trackedPages.hasOwnProperty(trackedPage)){visitedPages[trackedPage]=1}}dirty=true}else{for(const visitedPage in visitedPages){if(visitedPages.hasOwnProperty(visitedPage)){if(trackedPages[visitedPage]===undefined){delete visitedPages[visitedPage];dirty=true}}}}const page=window.location.pathname;if(trackedPages[page]!==undefined){if(visitedPages[page]===undefined){visitedPages[page]=1;dirty=true}}if(dirty){saveVisitedPages()}setPills();setDots();setMarkAllRead()})}loadVisitedPages();fetchTrackedPagesIndex()}handleReadTracking();
|
|
"use strict";function observeResize(el,callback){if(window.ResizeObserver){const ro=new ResizeObserver(entries=>{for(let entry of entries){callback(entry.target)}});ro.observe(el)}else{listen(window,"resize",()=>{callback(el)})}}
|
|
"use strict";let scrollToTopButton;let tocLinks;let tocHeadings=[];let pageHeader;function handleScroll(){function dealWithScroll(){function controlScrollToTopButton(){if(scrollToTopButton){if(document.body.scrollTop>300||document.documentElement.scrollTop>300){scrollToTopButton.classList.add("show")}else{scrollToTopButton.classList.remove("show")}}}function controlTOCActivation(){if(tocLinks){let closestHeadingBelowTop=-1;let closestHeadingBelowTopPos=1000000;let closestHeadingAboveTop=-1;let closestHeadingAboveTopPos=-1000000;for(let i=0;i<tocLinks.length;i++){const heading=tocHeadings[i];if(!heading){continue}const range=document.createRange();range.setStart(heading,0);range.setEnd(heading,1);const cbr=range.getBoundingClientRect();if(cbr.width||cbr.height){if(cbr.top>=pageHeaderHeight&&cbr.top<window.innerHeight){if(cbr.top+cbr.height-1<window.innerHeight){if(cbr.top+cbr.height-1<closestHeadingBelowTopPos){closestHeadingBelowTop=i;closestHeadingBelowTopPos=cbr.top}}}else if(cbr.top<pageHeaderHeight){if(cbr.top>closestHeadingAboveTopPos){closestHeadingAboveTop=i;closestHeadingAboveTopPos=cbr.top}}}tocLinks[i].classList.remove("current")}if(closestHeadingBelowTop>=0){tocLinks[closestHeadingBelowTop].classList.add("current")}else if(closestHeadingAboveTop>=0){tocLinks[closestHeadingAboveTop].classList.add("current")}}}const pageHeaderHeight=pageHeader?pageHeader.getBoundingClientRect().height:0;controlScrollToTopButton();controlTOCActivation();const target=document.querySelector(":target");if(target&&target.tagName==="TR"&&!target.dataset.scrolled){document.documentElement.scrollTop-=pageHeaderHeight;target.dataset.scrolled="true"}}scrollToTopButton=getById("scroll-to-top");listen(scrollToTopButton,click,()=>{document.body.scrollTop=0;document.documentElement.scrollTop=0});const toc=getById("toc");if(toc){tocLinks=toc.getElementsByTagName("a");for(const link of tocLinks){if(link){const id=decodeURIComponent(link.hash.substring(1));const hdr=getById(id);if(hdr){tocHeadings.push(hdr)}}}}pageHeader=document.getElementsByTagName("header")[0];dealWithScroll();listen(window,"scroll",dealWithScroll)}handleScroll();
|
|
"use strict";let overlay=null;let popper=null;function toggleOverlay(element){if(overlay===element){closeActiveOverlay()}else{if(overlay){closeActiveOverlay()}element.classList.add("show");overlay=element}}function showOverlay(element){if(overlay===element){return}closeActiveOverlay();element.classList.add("show");overlay=element}function closeActiveOverlay(){if(overlay){overlay.classList.remove("show");overlay=null;if(popper){popper.destroy();popper=null}}}function handleOverlays(){function attachPopper(anchor,element){if(popper){popper.destroy()}popper=new Popper(anchor,element,{modifiers:{flip:{enabled:true},preventOverflow:{enabled:true},shift:{enabled:true}},placement:"auto-start"})}document.querySelectorAll(".term").forEach(term=>{const i=document.createElement("i");i.innerHTML="<svg class='icon'><use xlink:href='"+iconFile+"#glossary'/></svg>";const span=document.createElement("span");span.innerText=" "+term.dataset.title;const title=document.createElement("div");title.className="title";title.appendChild(i);title.appendChild(span);const body=document.createElement("div");body.className="body";if(term.dataset.body){body.innerHTML=term.dataset.body}const arrow=document.createElement("div");arrow.className="arrow";arrow.setAttribute("x-arrow","");const div=document.createElement("div");div.className="popover";div.appendChild(title);div.appendChild(body);div.appendChild(arrow);div.setAttribute("aria-hidden","true");listen(div,click,e=>{e.cancelBubble=true});const parent=term.parentElement;if(parent){parent.insertBefore(div,term.nextElementSibling)}term.removeAttribute("data-title");term.removeAttribute("data-body");listen(term,click,e=>{e.cancelBubble=true;toggleOverlay(div);attachPopper(term,div)})});document.querySelectorAll(".update-notice").forEach(downloadButton=>{const i=document.createElement("i");i.innerHTML="<svg class='icon'><use xlink:href='"+iconFile+"#callout-tip'/></svg>";const span=document.createElement("span");span.innerText=" "+downloadButton.dataset.title;const title=document.createElement("div");title.className="title";title.appendChild(i);title.appendChild(span);const body=document.createElement("div");body.className="body";body.innerHTML="<p>"+downloadButton.dataset.updateadvice+"</p>"+"<a class='btn wide' href='"+downloadButton.dataset.updatehref+"'>"+downloadButton.dataset.updatebutton+"</a>"+"<a class='btn wide' target='_blank' rel='noopener' href='"+downloadButton.dataset.downloadhref+"'>"+downloadButton.dataset.downloadbuttontext+"</a>";const arrow=document.createElement("div");arrow.className="arrow";arrow.setAttribute("x-arrow","");const div=document.createElement("div");div.className="popover";div.appendChild(title);div.appendChild(body);div.appendChild(arrow);div.setAttribute("aria-hidden","true");listen(div,click,e=>{e.cancelBubble=true});const parent=downloadButton.parentElement;if(parent){parent.insertBefore(div,downloadButton.nextElementSibling)}downloadButton.removeAttribute("data-title");downloadButton.removeAttribute("data-downloadhref");downloadButton.removeAttribute("data-updatehref");downloadButton.removeAttribute("data-updateadvice");downloadButton.removeAttribute("data-updatebutton");listen(downloadButton,click,e=>{e.cancelBubble=true;toggleOverlay(div);attachPopper(downloadButton,div)})});listen(window,click,closeActiveOverlay);listen(window,"resize",closeActiveOverlay)}handleOverlays();
|
|
"use strict";function handleLanguageSwitch(){listen(getById("switch-lang"),click,()=>{const url=new URL(window.location.href);let path=url.pathname;if(path.includes("/zh")){path=path.replace(/\/zh/g,"");createCookie("nf_lang","en")}else{const pos=path.indexOf("/",1);path=path.substr(0,pos)+"/zh"+path.substr(pos);createCookie("nf_lang","zh")}url.pathname=path;navigateToUrlOrRoot(url.toString());return true});listen(getById("switch-lang-en"),click,()=>{const url=new URL(window.location.href);let path=url.pathname;if(path.includes("/zh")){path=path.replace(/\/zh/g,"")}url.pathname=path;createCookie("nf_lang","en");navigateToUrlOrRoot(url.toString())});listen(getById("switch-lang-zh"),click,()=>{const url=new URL(window.location.href);let path=url.pathname;if(!path.includes("/zh")){const pos=path.indexOf("/",1);path=path.substr(0,pos)+"/zh"+path.substr(pos);createCookie("nf_lang","zh")}url.pathname=path;createCookie("nf_lang","zh");navigateToUrlOrRoot(url.toString())})}handleLanguageSwitch();
|
|
"use strict";const callToActionDelayMs=250;function handleCallToAction(){window.setTimeout(()=>{document.querySelectorAll(".call-to-action").forEach(el=>{el.style.opacity="1"})},callToActionDelayMs)}handleCallToAction();
|
|
"use strict";function handleEvents(){const now=new Date().valueOf();let remainingEventImpressions={};function loadRemainingEventImpressions(){const blob=readLocalStorage("remainingEventImpressions");if(blob!=null){remainingEventImpressions=JSON.parse(blob)}for(const entry in remainingEventImpressions){if(remainingEventImpressions.hasOwnProperty(entry)){const periodEnd=parseInt(remainingEventImpressions[entry].periodEnd,10);if(now>periodEnd){delete remainingEventImpressions[entry]}}}}function saveRemainingEventImpressions(){localStorage.setItem("remainingEventImpressions",JSON.stringify(remainingEventImpressions))}function displayEvents(event){document.querySelectorAll("."+event).forEach(el=>{if(!el.dataset.title||!el.dataset.periodStart||!el.dataset.periodEnd){return}const title=el.dataset.title;const periodStart=parseInt(el.dataset.periodStart,10);const periodEnd=parseInt(el.dataset.periodEnd,10)+24*3600*1000-1;let maxImpressions=0;if(el.dataset.maxImpressions){maxImpressions=parseInt(el.dataset.maxImpressions,10)}if(maxImpressions===0){maxImpressions=1000000}let timeout=0;if(el.dataset.timeout){timeout=parseInt(el.dataset.timeout,10)}let display=false;if(now>=periodStart&&now<=periodEnd){if(remainingEventImpressions[title]){let impr=remainingEventImpressions[title].impressions;if(impr>0){impr--;remainingEventImpressions[title].impressions=impr;display=true}}else{remainingEventImpressions[title]={};remainingEventImpressions[title].impressions=maxImpressions-1;remainingEventImpressions[title].periodEnd=periodEnd;display=true}if(display){el.style.display="block";if(timeout>0){window.setTimeout(()=>el.style.display="none",timeout*1000)}}listen(el,click,()=>{el.style.display="none";remainingEventImpressions[title].impressions=0;saveRemainingEventImpressions()});el.querySelectorAll(".countdown").forEach(span=>{refreshCountdownValue(span,periodEnd);window.setInterval(()=>refreshCountdownValue(span,periodEnd),1000)})}})}function refreshCountdownValue(span,periodEnd){const delta=periodEnd-new Date().valueOf()-1000*3600*24;const numDays=Math.round(delta/(1000*3600*24));if(span.dataset.type==="days"){span.innerText=numDays.toString()}else if(span.dataset.type==="full"){if(numDays>0){span.innerText=numDays+"d "+new Date(delta).toISOString().substr(11,8)}else{span.innerText=new Date(delta).toISOString().substr(11,8)}}}loadRemainingEventImpressions();displayEvents("banner");displayEvents("sticker");saveRemainingEventImpressions()}handleEvents();
|
|
|
|
//# sourceMappingURL=all.min.js.map
|