diff options
author | Bjørn Erik Pedersen <[email protected]> | 2022-12-20 11:04:41 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2022-12-20 11:04:41 +0100 |
commit | 9a215d6950e6705f9109497e9f38cc3844172612 (patch) | |
tree | f04e00c7c59f77214ee0c90ab95d5fcab40c25fa | |
parent | eda1e720cd2434f97d7d931a7ff55447375e8d9a (diff) | |
parent | 41bc6f702aa54200530efbf4267e5c823df3028d (diff) | |
download | hugo-9a215d6950e6705f9109497e9f38cc3844172612.tar.gz hugo-9a215d6950e6705f9109497e9f38cc3844172612.zip |
Merge commit '41bc6f702aa54200530efbf4267e5c823df3028d'
71 files changed, 295 insertions, 259 deletions
diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css index 66a2fc246..c82e77ee7 100644 --- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css +++ b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css @@ -54,7 +54,7 @@ pre { } @media (--breakpoint-large) { - .full-width, pre.expand:hover + .full-width { /*width: 100vw; position: relative; diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js index 11b320d74..c89af041b 100644 --- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js +++ b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js @@ -1,7 +1,6 @@ require('typeface-muli'); import styles from './css/main.css'; import './js/clipboardjs.js'; -import './js/codeblocks.js'; import './js/docsearch.js'; import './js/lazysizes.js'; import './js/menutoggle.js'; diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/codeblocks.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/codeblocks.js deleted file mode 100644 index d8039c5d6..000000000 --- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/codeblocks.js +++ /dev/null @@ -1,10 +0,0 @@ -let article = document.getElementById('prose') - -if (article) { - let codeBlocks = article.getElementsByTagName('code') - for (let [key, codeBlock] of Object.entries(codeBlocks)){ - var widthDif = codeBlock.scrollWidth - codeBlock.clientWidth - if (widthDif > 0) - codeBlock.parentNode.classList.add('expand') - } -} diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css index f5d56e95a..8b0c8c191 100644 --- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css +++ b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css @@ -4809,7 +4809,7 @@ pre { content: "Copied" } @media screen and (min-width: 60em) { - .full-width, pre.expand:hover + .full-width { /*width: 100vw; position: relative; diff --git a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js index 0e9598b81..a3e1801f8 100644 --- a/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js +++ b/docs/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js @@ -1,11 +1,11 @@ -!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e,n){!function(e,n){var r=function(t,e,n){"use strict";var r,i;if(function(){var e,n={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(e in i=t.lazySizesConfig||t.lazysizesConfig||{},n)e in i||(i[e]=n[e])}(),!e||!e.getElementsByClassName)return{init:function(){},cfg:i,noSupport:!0};var o=e.documentElement,s=t.HTMLPictureElement,a=t.addEventListener.bind(t),u=t.setTimeout,c=t.requestAnimationFrame||u,l=t.requestIdleCallback,h=/^picture$/i,f=["load","error","lazyincluded","_lazyloaded"],d={},p=Array.prototype.forEach,g=function(t,e){return d[e]||(d[e]=new RegExp("(\\s|^)"+e+"(\\s|$)")),d[e].test(t.getAttribute("class")||"")&&d[e]},m=function(t,e){g(t,e)||t.setAttribute("class",(t.getAttribute("class")||"").trim()+" "+e)},y=function(t,e){var n;(n=g(t,e))&&t.setAttribute("class",(t.getAttribute("class")||"").replace(n," "))},v=function(t,e,n){var r=n?"addEventListener":"removeEventListener";n&&v(t,e),f.forEach((function(n){t[r](n,e)}))},b=function(t,n,i,o,s){var a=e.createEvent("Event");return i||(i={}),i.instance=r,a.initEvent(n,!o,!s),a.detail=i,t.dispatchEvent(a),a},w=function(e,n){var r;!s&&(r=t.picturefill||i.pf)?(n&&n.src&&!e.getAttribute("srcset")&&e.setAttribute("srcset",n.src),r({reevaluate:!0,elements:[e]})):n&&n.src&&(e.src=n.src)},_=function(t,e){return(getComputedStyle(t,null)||{})[e]},x=function(t,e,n){for(n=n||t.offsetWidth;n<i.minSize&&e&&!t._lazysizesWidth;)n=e.offsetWidth,e=e.parentNode;return n},S=(dt=[],pt=[],gt=dt,mt=function(){var t=gt;for(gt=dt.length?pt:dt,ht=!0,ft=!1;t.length;)t.shift()();ht=!1},yt=function(t,n){ht&&!n?t.apply(this,arguments):(gt.push(t),ft||(ft=!0,(e.hidden?u:c)(mt)))},yt._lsFlush=mt,yt),C=function(t,e){return e?function(){S(t)}:function(){var e=this,n=arguments;S((function(){t.apply(e,n)}))}},A=function(t){var e,r,i=function(){e=null,t()},o=function(){var t=n.now()-r;t<99?u(o,99-t):(l||i)(i)};return function(){r=n.now(),e||(e=u(o,99))}},E=(V=/^img$/i,K=/^iframe$/i,J="onscroll"in t&&!/(gle|ing)bot/.test(navigator.userAgent),W=0,Q=0,X=-1,G=function(t){Q--,(!t||Q<0||!t.target)&&(Q=0)},Z=function(t){return null==U&&(U="hidden"==_(e.body,"visibility")),U||!("hidden"==_(t.parentNode,"visibility")&&"hidden"==_(t,"visibility"))},Y=function(t,n){var r,i=t,s=Z(t);for(H-=n,B+=n,F-=n,z+=n;s&&(i=i.offsetParent)&&i!=e.body&&i!=o;)(s=(_(i,"opacity")||1)>0)&&"visible"!=_(i,"overflow")&&(r=i.getBoundingClientRect(),s=z>r.left&&F<r.right&&B>r.top-1&&H<r.bottom+1);return s},tt=function(){var t,n,s,a,u,c,l,h,f,d,p,g,m=r.elements;if((D=i.loadMode)&&Q<8&&(t=m.length)){for(n=0,X++;n<t;n++)if(m[n]&&!m[n]._lazyRace)if(!J||r.prematureUnveil&&r.prematureUnveil(m[n]))at(m[n]);else if((h=m[n].getAttribute("data-expand"))&&(c=1*h)||(c=W),d||(d=!i.expand||i.expand<1?o.clientHeight>500&&o.clientWidth>500?500:370:i.expand,r._defEx=d,p=d*i.expFactor,g=i.hFac,U=null,W<p&&Q<1&&X>2&&D>2&&!e.hidden?(W=p,X=0):W=D>1&&X>1&&Q<6?d:0),f!==c&&($=innerWidth+c*g,M=innerHeight+c,l=-1*c,f=c),s=m[n].getBoundingClientRect(),(B=s.bottom)>=l&&(H=s.top)<=M&&(z=s.right)>=l*g&&(F=s.left)<=$&&(B||z||F||H)&&(i.loadHidden||Z(m[n]))&&(R&&Q<3&&!h&&(D<3||X<4)||Y(m[n],c))){if(at(m[n]),u=!0,Q>9)break}else!u&&R&&!a&&Q<4&&X<4&&D>2&&(L[0]||i.preloadAfterLoad)&&(L[0]||!h&&(B||z||F||H||"auto"!=m[n].getAttribute(i.sizesAttr)))&&(a=L[0]||m[n]);a&&!u&&at(a)}},et=function(t){var e,r=0,o=i.throttleDelay,s=i.ricTimeout,a=function(){e=!1,r=n.now(),t()},c=l&&s>49?function(){l(a,{timeout:s}),s!==i.ricTimeout&&(s=i.ricTimeout)}:C((function(){u(a)}),!0);return function(t){var i;(t=!0===t)&&(s=33),e||(e=!0,(i=o-(n.now()-r))<0&&(i=0),t||i<9?c():u(c,i))}}(tt),nt=function(t){var e=t.target;e._lazyCache?delete e._lazyCache:(G(t),m(e,i.loadedClass),y(e,i.loadingClass),v(e,it),b(e,"lazyloaded"))},rt=C(nt),it=function(t){rt({target:t.target})},ot=function(t){var e,n=t.getAttribute(i.srcsetAttr);(e=i.customMedia[t.getAttribute("data-media")||t.getAttribute("media")])&&t.setAttribute("media",e),n&&t.setAttribute("srcset",n)},st=C((function(t,e,n,r,o){var s,a,c,l,f,d;(f=b(t,"lazybeforeunveil",e)).defaultPrevented||(r&&(n?m(t,i.autosizesClass):t.setAttribute("sizes",r)),a=t.getAttribute(i.srcsetAttr),s=t.getAttribute(i.srcAttr),o&&(l=(c=t.parentNode)&&h.test(c.nodeName||"")),d=e.firesLoad||"src"in t&&(a||s||l),f={target:t},m(t,i.loadingClass),d&&(clearTimeout(P),P=u(G,2500),v(t,it,!0)),l&&p.call(c.getElementsByTagName("source"),ot),a?t.setAttribute("srcset",a):s&&!l&&(K.test(t.nodeName)?function(t,e){var n=t.getAttribute("data-load-mode")||i.iframeLoadMode;0==n?t.contentWindow.location.replace(e):1==n&&(t.src=e)}(t,s):t.src=s),o&&(a||l)&&w(t,{src:s})),t._lazyRace&&delete t._lazyRace,y(t,i.lazyClass),S((function(){var e=t.complete&&t.naturalWidth>1;d&&!e||(e&&m(t,i.fastLoadedClass),nt(f),t._lazyCache=!0,u((function(){"_lazyCache"in t&&delete t._lazyCache}),9)),"lazy"==t.loading&&Q--}),!0)})),at=function(t){if(!t._lazyRace){var e,n=V.test(t.nodeName),r=n&&(t.getAttribute(i.sizesAttr)||t.getAttribute("sizes")),o="auto"==r;(!o&&R||!n||!t.getAttribute("src")&&!t.srcset||t.complete||g(t,i.errorClass)||!g(t,i.lazyClass))&&(e=b(t,"lazyunveilread").detail,o&&T.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,Q++,st(t,e,o,r,n))}},ut=A((function(){i.loadMode=3,et()})),ct=function(){3==i.loadMode&&(i.loadMode=2),ut()},lt=function(){R||(n.now()-q<999?u(lt,999):(R=!0,i.loadMode=3,et(),a("scroll",ct,!0)))},{_:function(){q=n.now(),r.elements=e.getElementsByClassName(i.lazyClass),L=e.getElementsByClassName(i.lazyClass+" "+i.preloadClass),a("scroll",et,!0),a("resize",et,!0),a("pageshow",(function(t){if(t.persisted){var n=e.querySelectorAll("."+i.loadingClass);n.length&&n.forEach&&c((function(){n.forEach((function(t){t.complete&&at(t)}))}))}})),t.MutationObserver?new MutationObserver(et).observe(o,{childList:!0,subtree:!0,attributes:!0}):(o.addEventListener("DOMNodeInserted",et,!0),o.addEventListener("DOMAttrModified",et,!0),setInterval(et,999)),a("hashchange",et,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach((function(t){e.addEventListener(t,et,!0)})),/d$|^c/.test(e.readyState)?lt():(a("load",lt),e.addEventListener("DOMContentLoaded",et),u(lt,2e4)),r.elements.length?(tt(),S._lsFlush()):et()},checkElems:et,unveil:at,_aLSL:ct}),T=(N=C((function(t,e,n,r){var i,o,s;if(t._lazysizesWidth=r,r+="px",t.setAttribute("sizes",r),h.test(e.nodeName||""))for(o=0,s=(i=e.getElementsByTagName("source")).length;o<s;o++)i[o].setAttribute("sizes",r);n.detail.dataAttr||w(t,n.detail)})),j=function(t,e,n){var r,i=t.parentNode;i&&(n=x(t,i,n),(r=b(t,"lazybeforesizes",{width:n,dataAttr:!!e})).defaultPrevented||(n=r.detail.width)&&n!==t._lazysizesWidth&&N(t,i,r,n))},I=A((function(){var t,e=O.length;if(e)for(t=0;t<e;t++)j(O[t])})),{_:function(){O=e.getElementsByClassName(i.autosizesClass),a("resize",I)},checkElems:I,updateElem:j}),k=function(){!k.i&&e.getElementsByClassName&&(k.i=!0,T._(),E._())};var O,N,j,I;var L,R,P,D,q,$,M,H,F,z,B,U,V,K,J,W,Q,X,G,Z,Y,tt,et,nt,rt,it,ot,st,at,ut,ct,lt;var ht,ft,dt,pt,gt,mt,yt;return u((function(){i.init&&k()})),r={cfg:i,autoSizer:T,loader:E,init:k,uP:w,aC:m,rC:y,hC:g,fire:b,gW:x,rAF:S}}(e,e.document,Date);e.lazySizes=r,t.exports&&(t.exports=r)}("undefined"!=typeof window?window:{})},function(t,e,n){"use strict";n.r(e);n(3),n(4),n(6),n(7),n(9),n(11),n(12),n(14),n(15),n(16);n(2)},function(t,e,n){},function(t,e,n){},function(t,e,n){function r(t,e){t.setAttribute("class","copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2"),t.setAttribute("aria-label",e)}new(n(5))(".copy",{target:function(t){return t.classList.contains("copy-toggle")?t.previousElementSibling:t.nextElementSibling}}).on("success",(function(t){r(t.trigger,"Copied!"),t.clearSelection()})).on("error",(function(t){r(t.trigger,function(t,e){var n="",r="cut"===e?"X":"C";n=isMac?"Press ⌘-"+r:"Press Ctrl-"+r;return n}(t.action))}))},function(t,e,n){ +!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e,n){!function(e,n){var r=function(t,e,n){"use strict";var r,i;if(function(){var e,n={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(e in i=t.lazySizesConfig||t.lazysizesConfig||{},n)e in i||(i[e]=n[e])}(),!e||!e.getElementsByClassName)return{init:function(){},cfg:i,noSupport:!0};var o=e.documentElement,s=t.HTMLPictureElement,a=t.addEventListener.bind(t),u=t.setTimeout,c=t.requestAnimationFrame||u,l=t.requestIdleCallback,h=/^picture$/i,f=["load","error","lazyincluded","_lazyloaded"],d={},p=Array.prototype.forEach,g=function(t,e){return d[e]||(d[e]=new RegExp("(\\s|^)"+e+"(\\s|$)")),d[e].test(t.getAttribute("class")||"")&&d[e]},m=function(t,e){g(t,e)||t.setAttribute("class",(t.getAttribute("class")||"").trim()+" "+e)},y=function(t,e){var n;(n=g(t,e))&&t.setAttribute("class",(t.getAttribute("class")||"").replace(n," "))},v=function(t,e,n){var r=n?"addEventListener":"removeEventListener";n&&v(t,e),f.forEach((function(n){t[r](n,e)}))},b=function(t,n,i,o,s){var a=e.createEvent("Event");return i||(i={}),i.instance=r,a.initEvent(n,!o,!s),a.detail=i,t.dispatchEvent(a),a},w=function(e,n){var r;!s&&(r=t.picturefill||i.pf)?(n&&n.src&&!e.getAttribute("srcset")&&e.setAttribute("srcset",n.src),r({reevaluate:!0,elements:[e]})):n&&n.src&&(e.src=n.src)},_=function(t,e){return(getComputedStyle(t,null)||{})[e]},x=function(t,e,n){for(n=n||t.offsetWidth;n<i.minSize&&e&&!t._lazysizesWidth;)n=e.offsetWidth,e=e.parentNode;return n},S=(dt=[],pt=[],gt=dt,mt=function(){var t=gt;for(gt=dt.length?pt:dt,ht=!0,ft=!1;t.length;)t.shift()();ht=!1},yt=function(t,n){ht&&!n?t.apply(this,arguments):(gt.push(t),ft||(ft=!0,(e.hidden?u:c)(mt)))},yt._lsFlush=mt,yt),C=function(t,e){return e?function(){S(t)}:function(){var e=this,n=arguments;S((function(){t.apply(e,n)}))}},A=function(t){var e,r,i=function(){e=null,t()},o=function(){var t=n.now()-r;t<99?u(o,99-t):(l||i)(i)};return function(){r=n.now(),e||(e=u(o,99))}},E=(V=/^img$/i,K=/^iframe$/i,J="onscroll"in t&&!/(gle|ing)bot/.test(navigator.userAgent),W=0,Q=0,X=-1,G=function(t){Q--,(!t||Q<0||!t.target)&&(Q=0)},Z=function(t){return null==U&&(U="hidden"==_(e.body,"visibility")),U||!("hidden"==_(t.parentNode,"visibility")&&"hidden"==_(t,"visibility"))},Y=function(t,n){var r,i=t,s=Z(t);for(H-=n,B+=n,F-=n,z+=n;s&&(i=i.offsetParent)&&i!=e.body&&i!=o;)(s=(_(i,"opacity")||1)>0)&&"visible"!=_(i,"overflow")&&(r=i.getBoundingClientRect(),s=z>r.left&&F<r.right&&B>r.top-1&&H<r.bottom+1);return s},tt=function(){var t,n,s,a,u,c,l,h,f,d,p,g,m=r.elements;if((D=i.loadMode)&&Q<8&&(t=m.length)){for(n=0,X++;n<t;n++)if(m[n]&&!m[n]._lazyRace)if(!J||r.prematureUnveil&&r.prematureUnveil(m[n]))at(m[n]);else if((h=m[n].getAttribute("data-expand"))&&(c=1*h)||(c=W),d||(d=!i.expand||i.expand<1?o.clientHeight>500&&o.clientWidth>500?500:370:i.expand,r._defEx=d,p=d*i.expFactor,g=i.hFac,U=null,W<p&&Q<1&&X>2&&D>2&&!e.hidden?(W=p,X=0):W=D>1&&X>1&&Q<6?d:0),f!==c&&($=innerWidth+c*g,M=innerHeight+c,l=-1*c,f=c),s=m[n].getBoundingClientRect(),(B=s.bottom)>=l&&(H=s.top)<=M&&(z=s.right)>=l*g&&(F=s.left)<=$&&(B||z||F||H)&&(i.loadHidden||Z(m[n]))&&(R&&Q<3&&!h&&(D<3||X<4)||Y(m[n],c))){if(at(m[n]),u=!0,Q>9)break}else!u&&R&&!a&&Q<4&&X<4&&D>2&&(L[0]||i.preloadAfterLoad)&&(L[0]||!h&&(B||z||F||H||"auto"!=m[n].getAttribute(i.sizesAttr)))&&(a=L[0]||m[n]);a&&!u&&at(a)}},et=function(t){var e,r=0,o=i.throttleDelay,s=i.ricTimeout,a=function(){e=!1,r=n.now(),t()},c=l&&s>49?function(){l(a,{timeout:s}),s!==i.ricTimeout&&(s=i.ricTimeout)}:C((function(){u(a)}),!0);return function(t){var i;(t=!0===t)&&(s=33),e||(e=!0,(i=o-(n.now()-r))<0&&(i=0),t||i<9?c():u(c,i))}}(tt),nt=function(t){var e=t.target;e._lazyCache?delete e._lazyCache:(G(t),m(e,i.loadedClass),y(e,i.loadingClass),v(e,it),b(e,"lazyloaded"))},rt=C(nt),it=function(t){rt({target:t.target})},ot=function(t){var e,n=t.getAttribute(i.srcsetAttr);(e=i.customMedia[t.getAttribute("data-media")||t.getAttribute("media")])&&t.setAttribute("media",e),n&&t.setAttribute("srcset",n)},st=C((function(t,e,n,r,o){var s,a,c,l,f,d;(f=b(t,"lazybeforeunveil",e)).defaultPrevented||(r&&(n?m(t,i.autosizesClass):t.setAttribute("sizes",r)),a=t.getAttribute(i.srcsetAttr),s=t.getAttribute(i.srcAttr),o&&(l=(c=t.parentNode)&&h.test(c.nodeName||"")),d=e.firesLoad||"src"in t&&(a||s||l),f={target:t},m(t,i.loadingClass),d&&(clearTimeout(P),P=u(G,2500),v(t,it,!0)),l&&p.call(c.getElementsByTagName("source"),ot),a?t.setAttribute("srcset",a):s&&!l&&(K.test(t.nodeName)?function(t,e){var n=t.getAttribute("data-load-mode")||i.iframeLoadMode;0==n?t.contentWindow.location.replace(e):1==n&&(t.src=e)}(t,s):t.src=s),o&&(a||l)&&w(t,{src:s})),t._lazyRace&&delete t._lazyRace,y(t,i.lazyClass),S((function(){var e=t.complete&&t.naturalWidth>1;d&&!e||(e&&m(t,i.fastLoadedClass),nt(f),t._lazyCache=!0,u((function(){"_lazyCache"in t&&delete t._lazyCache}),9)),"lazy"==t.loading&&Q--}),!0)})),at=function(t){if(!t._lazyRace){var e,n=V.test(t.nodeName),r=n&&(t.getAttribute(i.sizesAttr)||t.getAttribute("sizes")),o="auto"==r;(!o&&R||!n||!t.getAttribute("src")&&!t.srcset||t.complete||g(t,i.errorClass)||!g(t,i.lazyClass))&&(e=b(t,"lazyunveilread").detail,o&&T.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,Q++,st(t,e,o,r,n))}},ut=A((function(){i.loadMode=3,et()})),ct=function(){3==i.loadMode&&(i.loadMode=2),ut()},lt=function(){R||(n.now()-q<999?u(lt,999):(R=!0,i.loadMode=3,et(),a("scroll",ct,!0)))},{_:function(){q=n.now(),r.elements=e.getElementsByClassName(i.lazyClass),L=e.getElementsByClassName(i.lazyClass+" "+i.preloadClass),a("scroll",et,!0),a("resize",et,!0),a("pageshow",(function(t){if(t.persisted){var n=e.querySelectorAll("."+i.loadingClass);n.length&&n.forEach&&c((function(){n.forEach((function(t){t.complete&&at(t)}))}))}})),t.MutationObserver?new MutationObserver(et).observe(o,{childList:!0,subtree:!0,attributes:!0}):(o.addEventListener("DOMNodeInserted",et,!0),o.addEventListener("DOMAttrModified",et,!0),setInterval(et,999)),a("hashchange",et,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach((function(t){e.addEventListener(t,et,!0)})),/d$|^c/.test(e.readyState)?lt():(a("load",lt),e.addEventListener("DOMContentLoaded",et),u(lt,2e4)),r.elements.length?(tt(),S._lsFlush()):et()},checkElems:et,unveil:at,_aLSL:ct}),T=(N=C((function(t,e,n,r){var i,o,s;if(t._lazysizesWidth=r,r+="px",t.setAttribute("sizes",r),h.test(e.nodeName||""))for(o=0,s=(i=e.getElementsByTagName("source")).length;o<s;o++)i[o].setAttribute("sizes",r);n.detail.dataAttr||w(t,n.detail)})),j=function(t,e,n){var r,i=t.parentNode;i&&(n=x(t,i,n),(r=b(t,"lazybeforesizes",{width:n,dataAttr:!!e})).defaultPrevented||(n=r.detail.width)&&n!==t._lazysizesWidth&&N(t,i,r,n))},I=A((function(){var t,e=O.length;if(e)for(t=0;t<e;t++)j(O[t])})),{_:function(){O=e.getElementsByClassName(i.autosizesClass),a("resize",I)},checkElems:I,updateElem:j}),k=function(){!k.i&&e.getElementsByClassName&&(k.i=!0,T._(),E._())};var O,N,j,I;var L,R,P,D,q,$,M,H,F,z,B,U,V,K,J,W,Q,X,G,Z,Y,tt,et,nt,rt,it,ot,st,at,ut,ct,lt;var ht,ft,dt,pt,gt,mt,yt;return u((function(){i.init&&k()})),r={cfg:i,autoSizer:T,loader:E,init:k,uP:w,aC:m,rC:y,hC:g,fire:b,gW:x,rAF:S}}(e,e.document,Date);e.lazySizes=r,t.exports&&(t.exports=r)}("undefined"!=typeof window?window:{})},function(t,e,n){"use strict";n.r(e);n(3),n(4),n(6),n(8),n(10),n(11),n(13),n(14),n(15);n(2)},function(t,e,n){},function(t,e,n){},function(t,e,n){function r(t,e){t.setAttribute("class","copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2"),t.setAttribute("aria-label",e)}new(n(5))(".copy",{target:function(t){return t.classList.contains("copy-toggle")?t.previousElementSibling:t.nextElementSibling}}).on("success",(function(t){r(t.trigger,"Copied!"),t.clearSelection()})).on("error",(function(t){r(t.trigger,function(t,e){var n="",r="cut"===e?"X":"C";n=isMac?"Press ⌘-"+r:"Press Ctrl-"+r;return n}(t.action))}))},function(t,e,n){ /*! * clipboard.js v2.0.4 * https://zenorocha.github.io/clipboard.js * * Licensed MIT © Zeno Rocha */ -var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=u(n(1)),s=u(n(3)),a=u(n(4));function u(t){return t&&t.__esModule?t:{default:t}}var c=function(t){function e(t,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var r=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r.resolveOptions(n),r.listenClick(t),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),i(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,a.default)(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new o.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return l("action",t)}},{key:"defaultTarget",value:function(t){var e=l("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return l("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(s.default);function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=c},function(t,e,n){"use strict";var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(2),a=(r=s)&&r.__esModule?r:{default:r},u=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.resolveOptions(e),this.initSelection()}return o(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,a.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,a.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function i(){r.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;r<i;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],i=[];if(r&&e)for(var o=0,s=r.length;o<s;o++)r[o].fn!==e&&r[o].fn._!==e&&i.push(r[o]);return i.length?n[t]=i:delete n[t],this}},t.exports=n},function(t,e,n){var r=n(5),i=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!r.string(e))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(t))return function(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}(t,e,n);if(r.nodeList(t))return function(t,e,n){return Array.prototype.forEach.call(t,(function(t){t.addEventListener(e,n)})),{destroy:function(){Array.prototype.forEach.call(t,(function(t){t.removeEventListener(e,n)}))}}}(t,e,n);if(r.string(t))return function(t,e,n){return i(document.body,t,e,n)}(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var r=n(7);function i(t,e,n,r,i){var s=o.apply(this,arguments);return t.addEventListener(n,s,i),{destroy:function(){t.removeEventListener(n,s,i)}}}function o(t,e,n,i){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&i.call(t,n)}}t.exports=function(t,e,n,r,o){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,(function(t){return i(t,e,n,r,o)})))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])},t.exports=r()},function(t,e){let n=document.getElementById("prose");if(n){let t=n.getElementsByTagName("code");for(let[e,n]of Object.entries(t)){n.scrollWidth-n.clientWidth>0&&n.parentNode.classList.add("expand")}}},function(t,e,n){n(8)({appId:"D1BPLZHGYQ",apiKey:"6df94e1e5d55d258c56f60d974d10314",indexName:"hugodocs",inputSelector:"#search-input",debug:!0})},function(t,e,n){ +var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=u(n(1)),s=u(n(3)),a=u(n(4));function u(t){return t&&t.__esModule?t:{default:t}}var c=function(t){function e(t,n){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var r=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return r.resolveOptions(n),r.listenClick(t),r}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),i(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,a.default)(t,"click",(function(t){return e.onClick(t)}))}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new o.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return l("action",t)}},{key:"defaultTarget",value:function(t){var e=l("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return l("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach((function(t){n=n&&!!document.queryCommandSupported(t)})),n}}]),e}(s.default);function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=c},function(t,e,n){"use strict";var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),s=n(2),a=(r=s)&&r.__esModule?r:{default:r},u=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.resolveOptions(e),this.initSelection()}return o(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,a.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,a.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function i(){r.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;r<i;r++)n[r].fn.apply(n[r].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),r=n[t],i=[];if(r&&e)for(var o=0,s=r.length;o<s;o++)r[o].fn!==e&&r[o].fn._!==e&&i.push(r[o]);return i.length?n[t]=i:delete n[t],this}},t.exports=n},function(t,e,n){var r=n(5),i=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!r.string(e))throw new TypeError("Second argument must be a String");if(!r.fn(n))throw new TypeError("Third argument must be a Function");if(r.node(t))return function(t,e,n){return t.addEventListener(e,n),{destroy:function(){t.removeEventListener(e,n)}}}(t,e,n);if(r.nodeList(t))return function(t,e,n){return Array.prototype.forEach.call(t,(function(t){t.addEventListener(e,n)})),{destroy:function(){Array.prototype.forEach.call(t,(function(t){t.removeEventListener(e,n)}))}}}(t,e,n);if(r.string(t))return function(t,e,n){return i(document.body,t,e,n)}(t,e,n);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var n=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===n||"[object HTMLCollection]"===n)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var r=n(7);function i(t,e,n,r,i){var s=o.apply(this,arguments);return t.addEventListener(n,s,i),{destroy:function(){t.removeEventListener(n,s,i)}}}function o(t,e,n,i){return function(n){n.delegateTarget=r(n.target,e),n.delegateTarget&&i.call(t,n)}}t.exports=function(t,e,n,r,o){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,(function(t){return i(t,e,n,r,o)})))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])},t.exports=r()},function(t,e,n){n(7)({appId:"D1BPLZHGYQ",apiKey:"6df94e1e5d55d258c56f60d974d10314",indexName:"hugodocs",inputSelector:"#search-input",debug:!0})},function(t,e,n){ /*! docsearch 2.6.1 | © Algolia | github.com/algolia/docsearch */ var r;"undefined"!=typeof self&&self,r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=22)}([function(t,e,n){"use strict";var r,i=n(1);function o(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(t){if(void 0===t&&(t=navigator.userAgent),/(msie|trident)/i.test(t)){var e=t.match(/(msie |rv:)(\d+(.\d+)?)/i);if(e)return e[2]}return!1},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return null==t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,(function(t,r){t&&(n.isArray(t)?e[r]=[].concat(t):n.isObject(t)&&(e[r]=n.cloneDeep(t)))})),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,(function(r,i){if(!(n=e.call(null,r,i,t)))return!1})),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,(function(r,i){if(e.call(null,r,i,t))return n=!0,!1})),n):n},getUniqueId:(r=0,function(){return r++}),templatify:function(t){if(this.isFunction(t))return t;var e=i.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return(n?"":".")+t+e},escapeHighlightedString:function(t,e,n){e=e||"<em>";var r=document.createElement("div");r.appendChild(document.createTextNode(e)),n=n||"</em>";var i=document.createElement("div");i.appendChild(document.createTextNode(n));var s=document.createElement("div");return s.appendChild(document.createTextNode(t)),s.innerHTML.replace(RegExp(o(r.innerHTML),"g"),e).replace(RegExp(o(i.innerHTML),"g"),n)}}},function(t,e,n){"use strict";t.exports={element:null}},function(t,e){var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString;t.exports=function(t,e,i){if("[object Function]"!==r.call(e))throw new TypeError("iterator must be a function");var o=t.length;if(o===+o)for(var s=0;s<o;s++)e.call(i,t[s],s,t);else for(var a in t)n.call(t,a)&&e.call(i,t[a],a,t)}},function(t,e){t.exports=function(t){return JSON.parse(JSON.stringify(t))}},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";var r=n(12);function i(t,e){var r=n(2),i=this;"function"==typeof Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):i.stack=(new Error).stack||"Cannot get a stacktrace, browser is too old",this.name="AlgoliaSearchError",this.message=t||"Unknown error",e&&r(e,(function(t,e){i[e]=t}))}function o(t,e){function n(){var n=Array.prototype.slice.call(arguments,0);"string"!=typeof n[0]&&n.unshift(e),i.apply(this,n),this.name="AlgoliaSearch"+t+"Error"}return r(n,i),n}r(i,Error),t.exports={AlgoliaSearchError:i,UnparsableJSON:o("UnparsableJSON","Could not parse the incoming response as JSON, see err.more for details"),RequestTimeout:o("RequestTimeout","Request timedout before getting a response"),Network:o("Network","Network issue, see err.more for details"),JSONPScriptFail:o("JSONPScriptFail","<script> was loaded but did not call our provided callback"),JSONPScriptError:o("JSONPScriptError","<script> unable to load due to an `error` event on it"),Unknown:o("Unknown","Unknown error occured")}},function(t,e){var n={}.toString;t.exports=Array.isArray||function(t){return"[object Array]"==n.call(t)}},function(t,e,n){var r=n(2);t.exports=function(t,e){var n=[];return r(t,(function(r,i){n.push(e(r,i,t))})),n}},function(t,e,n){(function(r){function i(){var t;try{t=e.storage.debug}catch(t){}return!t&&void 0!==r&&"env"in r&&(t=Object({NODE_ENV:"production"}).DEBUG),t}(e=t.exports=n(39)).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},e.formatArgs=function(t){var n=this.useColors;if(t[0]=(n?"%c":"")+this.namespace+(n?" %c":" ")+t[0]+(n?"%c ":" ")+"+"+e.humanize(this.diff),n){var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var i=0,o=0;t[0].replace(/%[a-zA-Z%]/g,(function(t){"%%"!==t&&(i++,"%c"===t&&(o=i))})),t.splice(o,0,r)}},e.save=function(t){try{null==t?e.storage.removeItem("debug"):e.storage.debug=t}catch(t){}},e.load=i,e.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},e.storage="undefined"!=typeof chrome&&void 0!==chrome.storage?chrome.storage.local:function(){try{return window.localStorage}catch(t){}}(),e.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"],e.formatters.j=function(t){try{return JSON.stringify(t)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}},e.enable(i())}).call(e,n(9))},function(t,e){var n,r,i=t.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(t){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(t){r=s}}();var u,c=[],l=!1,h=-1;function f(){l&&u&&(l=!1,u.length?c=u.concat(c):h=-1,c.length&&d())}function d(){if(!l){var t=a(f);l=!0;for(var e=c.length;e;){for(u=c,c=[];++h<e;)u&&u[h].run();h=-1,e=c.length}u=null,l=!1,function(t){if(r===clearTimeout)return clearTimeout(t);if((r===s||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(t);try{r(t)}catch(e){try{return r.call(null,t)}catch(e){return r.call(this,t)}}}(t)}}function p(t,e){this.fun=t,this.array=e}function g(){}i.nextTick=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];c.push(new p(t,e)),1!==c.length||l||a(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},i.title="browser",i.browser=!0,i.env={},i.argv=[],i.version="",i.versions={},i.on=g,i.addListener=g,i.once=g,i.off=g,i.removeListener=g,i.removeAllListeners=g,i.emit=g,i.prependListener=g,i.prependOnceListener=g,i.listeners=function(t){return[]},i.binding=function(t){throw new Error("process.binding is not supported")},i.cwd=function(){return"/"},i.chdir=function(t){throw new Error("process.chdir is not supported")},i.umask=function(){return 0}},function(t,e,n){"use strict";var r=n(53),i=/\s+/;function o(t,e,n,r){var o;if(!n)return this;for(e=e.split(i),n=r?function(t,e){return t.bind?t.bind(e):function(){t.apply(e,[].slice.call(arguments,0))}}(n,r):n,this._callbacks=this._callbacks||{};o=e.shift();)this._callbacks[o]=this._callbacks[o]||{sync:[],async:[]},this._callbacks[o][t].push(n);return this}function s(t,e,n){return function(){for(var r,i=0,o=t.length;!r&&i<o;i+=1)r=!1===t[i].apply(e,n);return!r}}t.exports={onSync:function(t,e,n){return o.call(this,"sync",t,e,n)},onAsync:function(t,e,n){return o.call(this,"async",t,e,n)},off:function(t){var e;if(!this._callbacks)return this;for(t=t.split(i);e=t.shift();)delete this._callbacks[e];return this},trigger:function(t){var e,n,o,a,u;if(!this._callbacks)return this;for(t=t.split(i),o=[].slice.call(arguments,1);(e=t.shift())&&(n=this._callbacks[e]);)a=s(n.sync,this,[e].concat(o)),u=s(n.async,this,[e].concat(o)),a()&&r(u);return this}}},function(t,e,n){"use strict";var r=n(0),i={wrapper:{position:"relative",display:"inline-block"},hint:{position:"absolute",top:"0",left:"0",borderColor:"transparent",boxShadow:"none",opacity:"1"},input:{position:"relative",verticalAlign:"top",backgroundColor:"transparent"},inputWithNoHint:{position:"relative",verticalAlign:"top"},dropdown:{position:"absolute",top:"100%",left:"0",zIndex:"100",display:"none"},suggestions:{display:"block"},suggestion:{whiteSpace:"nowrap",cursor:"pointer"},suggestionChild:{whiteSpace:"normal"},ltr:{left:"0",right:"auto"},rtl:{left:"auto",right:"0"},defaultClasses:{root:"algolia-autocomplete",prefix:"aa",noPrefix:!1,dropdownMenu:"dropdown-menu",input:"input",hint:"hint",suggestions:"suggestions",suggestion:"suggestion",cursor:"cursor",dataset:"dataset",empty:"empty"},appendTo:{wrapper:{position:"absolute",zIndex:"100",display:"none"},input:{},inputWithNoHint:{},dropdown:{display:"block"}}};r.isMsie()&&r.mixin(i.input,{backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)"}),r.isMsie()&&r.isMsie()<=7&&r.mixin(i.input,{marginTop:"-1px"}),t.exports=i},function(t,e){"function"==typeof Object.create?t.exports=function(t,e){t.super_=e,t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(t,e){t.super_=e;var n=function(){};n.prototype=e.prototype,t.prototype=new n,t.prototype.constructor=t}},function(t,e,n){t.exports=function(t,e){return function(n,i,o){if("function"==typeof n&&"object"==typeof i||"object"==typeof o)throw new r.AlgoliaSearchError("index.search usage is index.search(query, params, cb)");0===arguments.length||"function"==typeof n?(o=n,n=""):1!==arguments.length&&"function"!=typeof i||(o=i,i=void 0),"object"==typeof n&&null!==n?(i=n,n=void 0):null==n&&(n="");var s,a="";return void 0!==n&&(a+=t+"="+encodeURIComponent(n)),void 0!==i&&(i.additionalUA&&(s=i.additionalUA,delete i.additionalUA),a=this.as._getSearchParams(i,a)),this._search(a,e,o,s)}};var r=n(5)},function(t,e,n){t.exports=function(t,e){var r=n(36),i=n(2),o={};return i(r(t),(function(n){!0!==e(n)&&(o[n]=t[n])})),o}},function(t,e){var n;n=window,t.exports=function(t){var e,n,r=function(){var e,n,r,i,o,s=[],a=s.concat,u=s.filter,c=s.slice,l=t.document,h={},f={},d={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},p=/^\s*<(\w+|!)[^>]*>/,g=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,m=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,y=/^(?:body|html)$/i,v=/([A-Z])/g,b=["val","css","html","text","data","width","height","offset"],w=l.createElement("table"),_=l.createElement("tr"),x={tr:l.createElement("tbody"),tbody:w,thead:w,tfoot:w,td:_,th:_,"*":l.createElement("div")},S=/complete|loaded|interactive/,C=/^[\w-]*$/,A={},E=A.toString,T={},k=l.createElement("div"),O={tabindex:"tabIndex",readonly:"readOnly",for:"htmlFor",class:"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},N=Array.isArray||function(t){return t instanceof Array};function j(t){return null==t?String(t):A[E.call(t)]||"object"}function I(t){return"function"==j(t)}function L(t){return null!=t&&t==t.window}function R(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function P(t){return"object"==j(t)}function D(t){return P(t)&&!L(t)&&Object.getPrototypeOf(t)==Object.prototype}function q(t){var e=!!t&&"length"in t&&t.length,r=n.type(t);return"function"!=r&&!L(t)&&("array"==r||0===e||"number"==typeof e&&e>0&&e-1 in t)}function $(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function M(t){return t in f?f[t]:f[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function H(t,e){return"number"!=typeof e||d[$(t)]?e:e+"px"}function F(t){return"children"in t?c.call(t.children):n.map(t.childNodes,(function(t){if(1==t.nodeType)return t}))}function z(t,e){var n,r=t?t.length:0;for(n=0;n<r;n++)this[n]=t[n];this.length=r,this.selector=e||""}function B(t,n,r){for(e in n)r&&(D(n[e])||N(n[e]))?(D(n[e])&&!D(t[e])&&(t[e]={}),N(n[e])&&!N(t[e])&&(t[e]=[]),B(t[e],n[e],r)):void 0!==n[e]&&(t[e]=n[e])}function U(t,e){return null==e?n(t):n(t).filter(e)}function V(t,e,n,r){return I(e)?e.call(t,n,r):e}function K(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function J(t,e){var n=t.className||"",r=n&&void 0!==n.baseVal;if(void 0===e)return r?n.baseVal:n;r?n.baseVal=e:t.className=e}function W(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?n.parseJSON(t):t):t}catch(e){return t}}function Q(t,e){e(t);for(var n=0,r=t.childNodes.length;n<r;n++)Q(t.childNodes[n],e)}return T.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=k).appendChild(t),r=~T.qsa(i,e).indexOf(t),o&&k.removeChild(t),r},i=function(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},o=function(t){return u.call(t,(function(e,n){return t.indexOf(e)==n}))},T.fragment=function(t,e,r){var i,o,s;return g.test(t)&&(i=n(l.createElement(RegExp.$1))),i||(t.replace&&(t=t.replace(m,"<$1></$2>")),void 0===e&&(e=p.test(t)&&RegExp.$1),e in x||(e="*"),(s=x[e]).innerHTML=""+t,i=n.each(c.call(s.childNodes),(function(){s.removeChild(this)}))),D(r)&&(o=n(i),n.each(r,(function(t,e){b.indexOf(t)>-1?o[t](e):o.attr(t,e)}))),i},T.Z=function(t,e){return new z(t,e)},T.isZ=function(t){return t instanceof T.Z},T.init=function(t,e){var r,i;if(!t)return T.Z();if("string"==typeof t)if("<"==(t=t.trim())[0]&&p.test(t))r=T.fragment(t,RegExp.$1,e),t=null;else{if(void 0!==e)return n(e).find(t);r=T.qsa(l,t)}else{if(I(t))return n(l).ready(t);if(T.isZ(t))return t;if(N(t))i=t,r=u.call(i,(function(t){return null!=t}));else if(P(t))r=[t],t=null;else if(p.test(t))r=T.fragment(t.trim(),RegExp.$1,e),t=null;else{if(void 0!==e)return n(e).find(t);r=T.qsa(l,t)}}return T.Z(r,t)},(n=function(t,e){return T.init(t,e)}).extend=function(t){var e,n=c.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach((function(n){B(t,n,e)})),t},T.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,s=C.test(o);return t.getElementById&&s&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:c.call(s&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},n.contains=l.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},n.type=j,n.isFunction=I,n.isWindow=L,n.isArray=N,n.isPlainObject=D,n.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},n.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},n.inArray=function(t,e,n){return s.indexOf.call(e,t,n)},n.camelCase=i,n.trim=function(t){return null==t?"":String.prototype.trim.call(t)},n.uuid=0,n.support={},n.expr={},n.noop=function(){},n.map=function(t,e){var r,i,o,s,a=[];if(q(t))for(i=0;i<t.length;i++)null!=(r=e(t[i],i))&&a.push(r);else for(o in t)null!=(r=e(t[o],o))&&a.push(r);return(s=a).length>0?n.fn.concat.apply([],s):s},n.each=function(t,e){var n,r;if(q(t)){for(n=0;n<t.length;n++)if(!1===e.call(t[n],n,t[n]))return t}else for(r in t)if(!1===e.call(t[r],r,t[r]))return t;return t},n.grep=function(t,e){return u.call(t,e)},t.JSON&&(n.parseJSON=JSON.parse),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),(function(t,e){A["[object "+e+"]"]=e.toLowerCase()})),n.fn={constructor:T.Z,length:0,forEach:s.forEach,reduce:s.reduce,push:s.push,sort:s.sort,splice:s.splice,indexOf:s.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=T.isZ(e)?e.toArray():e;return a.apply(T.isZ(this)?this.toArray():this,n)},map:function(t){return n(n.map(this,(function(e,n){return t.call(e,n,e)})))},slice:function(){return n(c.apply(this,arguments))},ready:function(t){return S.test(l.readyState)&&l.body?t(n):l.addEventListener("DOMContentLoaded",(function(){t(n)}),!1),this},get:function(t){return void 0===t?c.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each((function(){null!=this.parentNode&&this.parentNode.removeChild(this)}))},each:function(t){return s.every.call(this,(function(e,n){return!1!==t.call(e,n,e)})),this},filter:function(t){return I(t)?this.not(this.not(t)):n(u.call(this,(function(e){return T.matches(e,t)})))},add:function(t,e){return n(o(this.concat(n(t,e))))},is:function(t){return this.length>0&&T.matches(this[0],t)},not:function(t){var e=[];if(I(t)&&void 0!==t.call)this.each((function(n){t.call(this,n)||e.push(this)}));else{var r="string"==typeof t?this.filter(t):q(t)&&I(t.item)?c.call(t):n(t);this.forEach((function(t){r.indexOf(t)<0&&e.push(t)}))}return n(e)},has:function(t){return this.filter((function(){return P(t)?n.contains(this,t):n(this).find(t).size()}))},eq:function(t){return-1===t?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!P(t)?t:n(t)},last:function(){var t=this[this.length-1];return t&&!P(t)?t:n(t)},find:function(t){var e=this;return t?"object"==typeof t?n(t).filter((function(){var t=this;return s.some.call(e,(function(e){return n.contains(e,t)}))})):1==this.length?n(T.qsa(this[0],t)):this.map((function(){return T.qsa(this,t)})):n()},closest:function(t,e){var r=[],i="object"==typeof t&&n(t);return this.each((function(n,o){for(;o&&!(i?i.indexOf(o)>=0:T.matches(o,t));)o=o!==e&&!R(o)&&o.parentNode;o&&r.indexOf(o)<0&&r.push(o)})),n(r)},parents:function(t){for(var e=[],r=this;r.length>0;)r=n.map(r,(function(t){if((t=t.parentNode)&&!R(t)&&e.indexOf(t)<0)return e.push(t),t}));return U(e,t)},parent:function(t){return U(o(this.pluck("parentNode")),t)},children:function(t){return U(this.map((function(){return F(this)})),t)},contents:function(){return this.map((function(){return this.contentDocument||c.call(this.childNodes)}))},siblings:function(t){return U(this.map((function(t,e){return u.call(F(e.parentNode),(function(t){return t!==e}))})),t)},empty:function(){return this.each((function(){this.innerHTML=""}))},pluck:function(t){return n.map(this,(function(e){return e[t]}))},show:function(){return this.each((function(){var t,e,n;"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=(t=this.nodeName,h[t]||(e=l.createElement(t),l.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),h[t]=n),h[t]))}))},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var e=I(t);if(this[0]&&!e)var r=n(t).get(0),i=r.parentNode||this.length>1;return this.each((function(o){n(this).wrapAll(e?t.call(this,o):i?r.cloneNode(!0):r)}))},wrapAll:function(t){if(this[0]){var e;for(n(this[0]).before(t=n(t));(e=t.children()).length;)t=e.first();n(t).append(this)}return this},wrapInner:function(t){var e=I(t);return this.each((function(r){var i=n(this),o=i.contents(),s=e?t.call(this,r):t;o.length?o.wrapAll(s):i.append(s)}))},unwrap:function(){return this.parent().each((function(){n(this).replaceWith(n(this).children())})),this},clone:function(){return this.map((function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(t){return this.each((function(){var e=n(this);(void 0===t?"none"==e.css("display"):t)?e.show():e.hide()}))},prev:function(t){return n(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return n(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each((function(e){var r=this.innerHTML;n(this).empty().append(V(this,t,e,r))})):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each((function(e){var n=V(this,t,e,this.textContent);this.textContent=null==n?"":""+n})):0 in this?this.pluck("textContent").join(""):null},attr:function(t,n){var r;return"string"!=typeof t||1 in arguments?this.each((function(r){if(1===this.nodeType)if(P(t))for(e in t)K(this,e,t[e]);else K(this,t,V(this,n,r,this.getAttribute(t)))})):0 in this&&1==this[0].nodeType&&null!=(r=this[0].getAttribute(t))?r:void 0},removeAttr:function(t){return this.each((function(){1===this.nodeType&&t.split(" ").forEach((function(t){K(this,t)}),this)}))},prop:function(t,e){return t=O[t]||t,1 in arguments?this.each((function(n){this[t]=V(this,e,n,this[t])})):this[0]&&this[0][t]},removeProp:function(t){return t=O[t]||t,this.each((function(){delete this[t]}))},data:function(t,e){var n="data-"+t.replace(v,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?W(r):void 0},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each((function(e){this.value=V(this,t,e,this.value)}))):this[0]&&(this[0].multiple?n(this[0]).find("option").filter((function(){return this.selected})).pluck("value"):this[0].value)},offset:function(e){if(e)return this.each((function(t){var r=n(this),i=V(this,e,t,r.offset()),o=r.offsetParent().offset(),s={top:i.top-o.top,left:i.left-o.left};"static"==r.css("position")&&(s.position="relative"),r.css(s)}));if(!this.length)return null;if(l.documentElement!==this[0]&&!n.contains(l.documentElement,this[0]))return{top:0,left:0};var r=this[0].getBoundingClientRect();return{left:r.left+t.pageXOffset,top:r.top+t.pageYOffset,width:Math.round(r.width),height:Math.round(r.height)}},css:function(t,r){if(arguments.length<2){var o=this[0];if("string"==typeof t){if(!o)return;return o.style[i(t)]||getComputedStyle(o,"").getPropertyValue(t)}if(N(t)){if(!o)return;var s={},a=getComputedStyle(o,"");return n.each(t,(function(t,e){s[e]=o.style[i(e)]||a.getPropertyValue(e)})),s}}var u="";if("string"==j(t))r||0===r?u=$(t)+":"+H(t,r):this.each((function(){this.style.removeProperty($(t))}));else for(e in t)t[e]||0===t[e]?u+=$(e)+":"+H(e,t[e])+";":this.each((function(){this.style.removeProperty($(e))}));return this.each((function(){this.style.cssText+=";"+u}))},index:function(t){return t?this.indexOf(n(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&s.some.call(this,(function(t){return this.test(J(t))}),M(t))},addClass:function(t){return t?this.each((function(e){if("className"in this){r=[];var i=J(this);V(this,t,e,i).split(/\s+/g).forEach((function(t){n(this).hasClass(t)||r.push(t)}),this),r.length&&J(this,i+(i?" ":"")+r.join(" "))}})):this},removeClass:function(t){return this.each((function(e){if("className"in this){if(void 0===t)return J(this,"");r=J(this),V(this,t,e,r).split(/\s+/g).forEach((function(t){r=r.replace(M(t)," ")})),J(this,r.trim())}}))},toggleClass:function(t,e){return t?this.each((function(r){var i=n(this);V(this,t,r,J(this)).split(/\s+/g).forEach((function(t){(void 0===e?!i.hasClass(t):e)?i.addClass(t):i.removeClass(t)}))})):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return void 0===t?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return void 0===t?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),r=this.offset(),i=y.test(e[0].nodeName)?{top:0,left:0}:e.offset();return r.top-=parseFloat(n(t).css("margin-top"))||0,r.left-=parseFloat(n(t).css("margin-left"))||0,i.top+=parseFloat(n(e[0]).css("border-top-width"))||0,i.left+=parseFloat(n(e[0]).css("border-left-width"))||0,{top:r.top-i.top,left:r.left-i.left}}},offsetParent:function(){return this.map((function(){for(var t=this.offsetParent||l.body;t&&!y.test(t.nodeName)&&"static"==n(t).css("position");)t=t.offsetParent;return t}))}},n.fn.detach=n.fn.remove,["width","height"].forEach((function(t){var e=t.replace(/./,(function(t){return t[0].toUpperCase()}));n.fn[t]=function(r){var i,o=this[0];return void 0===r?L(o)?o["inner"+e]:R(o)?o.documentElement["scroll"+e]:(i=this.offset())&&i[t]:this.each((function(e){(o=n(this)).css(t,V(this,r,e,o[t]()))}))}})),["after","prepend","before","append"].forEach((function(e,r){var i=r%2;n.fn[e]=function(){var e,o,s=n.map(arguments,(function(t){var r=[];return"array"==(e=j(t))?(t.forEach((function(t){return void 0!==t.nodeType?r.push(t):n.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(T.fragment(t)))})),r):"object"==e||null==t?t:T.fragment(t)})),a=this.length>1;return s.length<1?this:this.each((function(e,u){o=i?u:u.parentNode,u=0==r?u.nextSibling:1==r?u.firstChild:2==r?u:null;var c=n.contains(l.documentElement,o);s.forEach((function(e){if(a)e=e.cloneNode(!0);else if(!o)return n(e).remove();o.insertBefore(e,u),c&&Q(e,(function(e){if(!(null==e.nodeName||"SCRIPT"!==e.nodeName.toUpperCase()||e.type&&"text/javascript"!==e.type||e.src)){var n=e.ownerDocument?e.ownerDocument.defaultView:t;n.eval.call(n,e.innerHTML)}}))}))}))},n.fn[i?e+"To":"insert"+(r?"Before":"After")]=function(t){return n(t)[e](this),this}})),T.Z.prototype=z.prototype=n.fn,T.uniq=o,T.deserializeValue=W,n.zepto=T,n}();return function(e){var n=1,r=Array.prototype.slice,i=e.isFunction,o=function(t){return"string"==typeof t},s={},a={},u="onfocusin"in t,c={focus:"focusin",blur:"focusout"},l={mouseenter:"mouseover",mouseleave:"mouseout"};function h(t){return t._zid||(t._zid=n++)}function f(t,e,n,r){if((e=d(e)).ns)var i=(o=e.ns,new RegExp("(?:^| )"+o.replace(" "," .* ?")+"(?: |$)"));var o;return(s[h(t)]||[]).filter((function(t){return t&&(!e.e||t.e==e.e)&&(!e.ns||i.test(t.ns))&&(!n||h(t.fn)===h(n))&&(!r||t.sel==r)}))}function d(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function p(t,e){return t.del&&!u&&t.e in c||!!e}function g(t){return l[t]||u&&c[t]||t}function m(t,n,r,i,o,a,u){var c=h(t),f=s[c]||(s[c]=[]);n.split(/\s/).forEach((function(n){if("ready"==n)return e(document).ready(r);var s=d(n);s.fn=r,s.sel=o,s.e in l&&(r=function(t){var n=t.relatedTarget;if(!n||n!==this&&!e.contains(this,n))return s.fn.apply(this,arguments)}),s.del=a;var c=a||r;s.proxy=function(e){if(!(e=x(e)).isImmediatePropagationStopped()){try{var n=Object.getOwnPropertyDescriptor(e,"data");n&&!n.writable||(e.data=i)}catch(e){}var r=c.apply(t,null==e._args?[e]:[e].concat(e._args));return!1===r&&(e.preventDefault(),e.stopPropagation()),r}},s.i=f.length,f.push(s),"addEventListener"in t&&t.addEventListener(g(s.e),s.proxy,p(s,u))}))}function y(t,e,n,r,i){var o=h(t);(e||"").split(/\s/).forEach((function(e){f(t,e,n,r).forEach((function(e){delete s[o][e.i],"removeEventListener"in t&&t.removeEventListener(g(e.e),e.proxy,p(e,i))}))}))}a.click=a.mousedown=a.mouseup=a.mousemove="MouseEvents",e.event={add:m,remove:y},e.proxy=function(t,n){var s=2 in arguments&&r.call(arguments,2);if(i(t)){var a=function(){return t.apply(n,s?s.concat(r.call(arguments)):arguments)};return a._zid=h(t),a}if(o(n))return s?(s.unshift(t[n],t),e.proxy.apply(null,s)):e.proxy(t[n],t);throw new TypeError("expected function")},e.fn.bind=function(t,e,n){return this.on(t,e,n)},e.fn.unbind=function(t,e){return this.off(t,e)},e.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var v=function(){return!0},b=function(){return!1},w=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,_={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};function x(t,n){return!n&&t.isDefaultPrevented||(n||(n=t),e.each(_,(function(e,r){var i=n[e];t[e]=function(){return this[r]=v,i&&i.apply(n,arguments)},t[r]=b})),t.timeStamp||(t.timeStamp=Date.now()),(void 0!==n.defaultPrevented?n.defaultPrevented:"returnValue"in n?!1===n.returnValue:n.getPreventDefault&&n.getPreventDefault())&&(t.isDefaultPrevented=v)),t}function S(t){var e,n={originalEvent:t};for(e in t)w.test(e)||void 0===t[e]||(n[e]=t[e]);return x(n,t)}e.fn.delegate=function(t,e,n){return this.on(e,t,n)},e.fn.undelegate=function(t,e,n){return this.off(e,t,n)},e.fn.live=function(t,n){return e(document.body).delegate(this.selector,t,n),this},e.fn.die=function(t,n){return e(document.body).undelegate(this.selector,t,n),this},e.fn.on=function(t,n,s,a,u){var c,l,h=this;return t&&!o(t)?(e.each(t,(function(t,e){h.on(t,n,s,e,u)})),h):(o(n)||i(a)||!1===a||(a=s,s=n,n=void 0),void 0!==a&&!1!==s||(a=s,s=void 0),!1===a&&(a=b),h.each((function(i,o){u&&(c=function(t){return y(o,t.type,a),a.apply(this,arguments)}),n&&(l=function(t){var i,s=e(t.target).closest(n,o).get(0);if(s&&s!==o)return i=e.extend(S(t),{currentTarget:s,liveFired:o}),(c||a).apply(s,[i].concat(r.call(arguments,1)))}),m(o,t,a,s,n,l||c)})))},e.fn.off=function(t,n,r){var s=this;return t&&!o(t)?(e.each(t,(function(t,e){s.off(t,n,e)})),s):(o(n)||i(r)||!1===r||(r=n,n=void 0),!1===r&&(r=b),s.each((function(){y(this,t,r,n)})))},e.fn.trigger=function(t,n){return(t=o(t)||e.isPlainObject(t)?e.Event(t):x(t))._args=n,this.each((function(){t.type in c&&"function"==typeof this[t.type]?this[t.type]():"dispatchEvent"in this?this.dispatchEvent(t):e(this).triggerHandler(t,n)}))},e.fn.triggerHandler=function(t,n){var r,i;return this.each((function(s,a){(r=S(o(t)?e.Event(t):t))._args=n,r.target=a,e.each(f(a,t.type||t),(function(t,e){if(i=e.proxy(r),r.isImmediatePropagationStopped())return!1}))})),i},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach((function(t){e.fn[t]=function(e){return 0 in arguments?this.bind(t,e):this.trigger(t)}})),e.Event=function(t,e){o(t)||(t=(e=t).type);var n=document.createEvent(a[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),x(n)}}(r),n=[],r.fn.remove=function(){return this.each((function(){this.parentNode&&("IMG"===this.tagName&&(n.push(this),this.src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=",e&&clearTimeout(e),e=setTimeout((function(){n=[]}),6e4)),this.parentNode.removeChild(this))}))},function(t){var e={},n=t.fn.data,r=t.camelCase,i=t.expando="Zepto"+ +new Date,o=[];function s(n,s,a){var u=n[i]||(n[i]=++t.uuid),c=e[u]||(e[u]=function(e){var n={};return t.each(e.attributes||o,(function(e,i){0==i.name.indexOf("data-")&&(n[r(i.name.replace("data-",""))]=t.zepto.deserializeValue(i.value))})),n}(n));return void 0!==s&&(c[r(s)]=a),c}t.fn.data=function(o,a){return void 0===a?t.isPlainObject(o)?this.each((function(e,n){t.each(o,(function(t,e){s(n,t,e)}))})):0 in this?function(o,a){var u=o[i],c=u&&e[u];if(void 0===a)return c||s(o);if(c){if(a in c)return c[a];var l=r(a);if(l in c)return c[l]}return n.call(t(o),a)}(this[0],o):void 0:this.each((function(){s(this,o,a)}))},t.data=function(e,n,r){return t(e).data(n,r)},t.hasData=function(n){var r=n[i],o=r&&e[r];return!!o&&!t.isEmptyObject(o)},t.fn.removeData=function(n){return"string"==typeof n&&(n=n.split(/\s+/)),this.each((function(){var o=this[i],s=o&&e[o];s&&t.each(n||s,(function(t){delete s[n?r(this):t]}))}))},["remove","empty"].forEach((function(e){var n=t.fn[e];t.fn[e]=function(){var t=this.find("*");return"remove"===e&&(t=t.add(this)),t.removeData(),n.call(this)}}))}(r),r}(n)},function(t,e,n){"use strict";var r=n(0),i=n(1);function o(t){t&&t.el||r.error("EventBus initialized without el"),this.$el=i.element(t.el)}r.mixin(o.prototype,{trigger:function(t){var e=[].slice.call(arguments,1),n=r.Event("autocomplete:"+t);return this.$el.trigger(n,e),n}}),t.exports=o},function(t,e,n){"use strict";t.exports={wrapper:'<span class="%ROOT%"></span>',dropdown:'<span class="%PREFIX%%DROPDOWN_MENU%"></span>',dataset:'<div class="%PREFIX%%DATASET%-%CLASS%"></div>',suggestions:'<span class="%PREFIX%%SUGGESTIONS%"></span>',suggestion:'<div class="%PREFIX%%SUGGESTION%"></div>'}},function(t,e){t.exports="0.32.0"},function(t,e,n){"use strict";t.exports=function(t){var e=t.match(/Algolia for vanilla JavaScript (\d+\.)(\d+\.)(\d+)/);if(e)return[e[1],e[2],e[3]]}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i=n(15),o=(r=i)&&r.__esModule?r:{default:r};e.default=o.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default="2.6.1"},function(t,e,n){"use strict";var r,i=n(23),o=(r=i)&&r.__esModule?r:{default:r};t.exports=o.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=s(n(24)),i=s(n(25)),o=s(n(21));function s(t){return t&&t.__esModule?t:{default:t}}var a=(0,r.default)(i.default);a.version=o.default,e.default=a},function(t,e,n){"use strict";var r=Function.prototype.bind;t.exports=function(t){var e=function(){for(var e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i];return new(r.apply(t,[null].concat(n)))};return e.__proto__=t,e.prototype=t.prototype,e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},i=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),o=f(n(26)),s=f(n(29)),a=f(n(49)),u=f(n(64)),c=f(n(65)),l=f(n(21)),h=f(n(20));function f(t){return t&&t.__esModule?t:{default:t}}var d=function(){function t(e){var n=e.apiKey,i=e.indexName,o=e.inputSelector,c=e.appId,f=void 0===c?"BH4D9OD16A":c,d=e.debug,p=void 0!==d&&d,g=e.algoliaOptions,m=void 0===g?{}:g,y=e.autocompleteOptions,v=void 0===y?{debug:!1,hint:!1,autoselect:!0}:y,b=e.transformData,w=void 0!==b&&b,_=e.queryHook,x=void 0!==_&&_,S=e.handleSelected,C=void 0!==S&&S,A=e.enhancedSearchInput,E=void 0!==A&&A,T=e.layout,k=void 0===T?"collumns":T;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),t.checkArguments({apiKey:n,indexName:i,inputSelector:o,debug:p,algoliaOptions:m,autocompleteOptions:v,transformData:w,queryHook:x,handleSelected:C,enhancedSearchInput:E,layout:k}),this.apiKey=n,this.appId=f,this.indexName=i,this.input=t.getInputFromSelector(o),this.algoliaOptions=r({hitsPerPage:5},m);var O=!(!v||!v.debug)&&v.debug;v.debug=p||O,this.autocompleteOptions=v,this.autocompleteOptions.cssClasses=this.autocompleteOptions.cssClasses||{},this.autocompleteOptions.cssClasses.prefix=this.autocompleteOptions.cssClasses.prefix||"ds",C=C||this.handleSelected,this.isSimpleLayout="simple"===k,this.client=(0,s.default)(this.appId,this.apiKey),this.client.addAlgoliaAgent("docsearch.js "+l.default),E&&(this.input=t.injectSearchBox(this.input)),this.autocomplete=(0,a.default)(this.input,v,[{source:this.getAutocompleteSource(w,x),templates:{suggestion:t.getSuggestionTemplate(this.isSimpleLayout),footer:u.default.footer,empty:t.getEmptyTemplate()}}]),C&&(0,h.default)(".algolia-autocomplete").on("click",".ds-suggestions a",(function(t){t.preventDefault()})),this.autocomplete.on("autocomplete:selected",C.bind(null,this.autocomplete.autocomplete)),this.autocomplete.on("autocomplete:shown",this.handleShown.bind(null,this.input)),E&&t.bindSearchBoxEvent()}return i(t,[{key:"getAutocompleteSource",value:function(e,n){var r=this;return function(i,o){n&&(i=n(i)||i),r.client.search([{indexName:r.indexName,query:i,params:r.algoliaOptions}]).then((function(n){var r=n.results[0].hits;e&&(r=e(r)||r),o(t.formatHits(r))}))}}},{key:"handleSelected",value:function(t,e,n){t.setVal(""),window.location.assign(n.url)}},{key:"handleShown",value:function(t){var e=t.offset().left+t.width()/2,n=(0,h.default)(document).width()/2;isNaN(n)&&(n=900);var r=e-n>=0?"algolia-autocomplete-right":"algolia-autocomplete-left",i=e-n<0?"algolia-autocomplete-right":"algolia-autocomplete-left",o=(0,h.default)(".algolia-autocomplete");o.hasClass(r)||o.addClass(r),o.hasClass(i)&&o.removeClass(i)}}],[{key:"checkArguments",value:function(e){if(!e.apiKey||!e.indexName)throw new Error("Usage:\n documentationSearch({\n apiKey,\n indexName,\n inputSelector,\n [ appId ],\n [ algoliaOptions.{hitsPerPage} ]\n [ autocompleteOptions.{hint,debug} ]\n})");if("string"!=typeof e.inputSelector)throw new Error("Error: inputSelector:"+e.inputSelector+" must be a string. Each selector must match only one element and separated by ','");if(!t.getInputFromSelector(e.inputSelector))throw new Error("Error: No input element in the page matches "+e.inputSelector)}},{key:"injectSearchBox",value:function(t){t.before(u.default.searchBox);var e=t.prev().prev().find("input");return t.remove(),e}},{key:"bindSearchBoxEvent",value:function(){(0,h.default)('.searchbox [type="reset"]').on("click",(function(){(0,h.default)("input#docsearch").focus(),(0,h.default)(this).addClass("hide"),a.default.autocomplete.setVal("")})),(0,h.default)("input#docsearch").on("keyup",(function(){var t=document.querySelector("input#docsearch"),e=document.querySelector('.searchbox [type="reset"]');e.className="searchbox__reset",0===t.value.length&&(e.className+=" hide")}))}},{key:"getInputFromSelector",value:function(t){var e=(0,h.default)(t).filter("input");return e.length?(0,h.default)(e[0]):null}},{key:"formatHits",value:function(e){var n=c.default.deepClone(e).map((function(t){return t._highlightResult&&(t._highlightResult=c.default.mergeKeyWithParent(t._highlightResult,"hierarchy")),c.default.mergeKeyWithParent(t,"hierarchy")})),r=c.default.groupBy(n,"lvl0");return h.default.each(r,(function(t,e){var n=c.default.groupBy(e,"lvl1"),i=c.default.flattenAndFlagFirst(n,"isSubCategoryHeader");r[t]=i})),(r=c.default.flattenAndFlagFirst(r,"isCategoryHeader")).map((function(e){var n=t.formatURL(e),r=c.default.getHighlightedValue(e,"lvl0"),i=c.default.getHighlightedValue(e,"lvl1")||r,o=c.default.compact([c.default.getHighlightedValue(e,"lvl2")||i,c.default.getHighlightedValue(e,"lvl3"),c.default.getHighlightedValue(e,"lvl4"),c.default.getHighlightedValue(e,"lvl5"),c.default.getHighlightedValue(e,"lvl6")]).join('<span class="aa-suggestion-title-separator" aria-hidden="true"> › </span>'),s=c.default.getSnippetedValue(e,"content"),a=i&&""!==i||o&&""!==o,u=o&&""!==o&&o!==i,l=!u&&i&&""!==i&&i!==r;return{isLvl0:!l&&!u,isLvl1:l,isLvl2:u,isLvl1EmptyOrDuplicate:!i||""===i||i===r,isCategoryHeader:e.isCategoryHeader,isSubCategoryHeader:e.isSubCategoryHeader,isTextOrSubcategoryNonEmpty:a,category:r,subcategory:i,title:o,text:s,url:n}}))}},{key:"formatURL",value:function(t){var e=t.url,n=t.anchor;return e?-1!==e.indexOf("#")?e:n?t.url+"#"+t.anchor:e:n?"#"+t.anchor:(console.warn("no anchor nor url for : ",JSON.stringify(t)),null)}},{key:"getEmptyTemplate",value:function(){return function(t){return o.default.compile(u.default.empty).render(t)}}},{key:"getSuggestionTemplate",value:function(t){var e=t?u.default.suggestionSimple:u.default.suggestion,n=o.default.compile(e);return function(t){return n.render(t)}}}]),t}();e.default=d},function(t,e,n){var r=n(27);r.Template=n(28).Template,r.template=r.Template,t.exports=r},function(t,e,n){!function(t){var e=/\S/,n=/\"/g,r=/\n/g,i=/\r/g,o=/\\/g,s=/\u2028/,a=/\u2029/;function u(t){return t.trim?t.trim():t.replace(/^\s*|\s*$/g,"")}function c(t,e,n){if(e.charAt(n)!=t.charAt(0))return!1;for(var r=1,i=t.length;r<i;r++)if(e.charAt(n+r)!=t.charAt(r))return!1;return!0}t.tags={"#":1,"^":2,"<":3,$:4,"/":5,"!":6,">":7,"=":8,_v:9,"{":10,"&":11,_t:12},t.scan=function(n,r){var i,o=n.length,s=0,a=null,l=null,h="",f=[],d=!1,p=0,g=0,m="{{",y="}}";function v(){h.length>0&&(f.push({tag:"_t",text:new String(h)}),h="")}function b(n,r){if(v(),n&&function(){for(var n=!0,r=g;r<f.length;r++)if(!(n=t.tags[f[r].tag]<t.tags._v||"_t"==f[r].tag&&null===f[r].text.match(e)))return!1;return n}())for(var i,o=g;o<f.length;o++)f[o].text&&((i=f[o+1])&&">"==i.tag&&(i.indent=f[o].text.toString()),f.splice(o,1));else r||f.push({tag:"\n"});d=!1,g=f.length}function w(t,e){var n="="+y,r=t.indexOf(n,e),i=u(t.substring(t.indexOf("=",e)+1,r)).split(" ");return m=i[0],y=i[i.length-1],r+n.length-1}for(r&&(r=r.split(" "),m=r[0],y=r[1]),p=0;p<o;p++)0==s?c(m,n,p)?(--p,v(),s=1):"\n"==n.charAt(p)?b(d):h+=n.charAt(p):1==s?(p+=m.length-1,"="==(a=(l=t.tags[n.charAt(p+1)])?n.charAt(p+1):"_v")?(p=w(n,p),s=0):(l&&p++,s=2),d=p):c(y,n,p)?(f.push({tag:a,n:u(h),otag:m,ctag:y,i:"/"==a?d-m.length:p+y.length}),h="",p+=y.length-1,s=0,"{"==a&&("}}"==y?p++:"}"===(i=f[f.length-1]).n.substr(i.n.length-1)&&(i.n=i.n.substring(0,i.n.length-1)))):h+=n.charAt(p);return b(d,!0),f};var l={_t:!0,"\n":!0,$:!0,"/":!0};function h(t,e){for(var n=0,r=e.length;n<r;n++)if(e[n].o==t.n)return t.tag="#",!0}function f(t,e,n){for(var r=0,i=n.length;r<i;r++)if(n[r].c==t&&n[r].o==e)return!0}function d(t){var e=[];for(var n in t.partials)e.push('"'+g(n)+'":{name:"'+g(t.partials[n].name)+'", '+d(t.partials[n])+"}");return"partials: {"+e.join(",")+"}, subs: "+function(t){var e=[];for(var n in t)e.push('"'+g(n)+'": function(c,p,t,i) {'+t[n]+"}");return"{ "+e.join(",")+" }"}(t.subs)}t.stringify=function(e,n,r){return"{code: function (c,p,i) { "+t.wrapMain(e.code)+" },"+d(e)+"}"};var p=0;function g(t){return t.replace(o,"\\\\").replace(n,'\\"').replace(r,"\\n").replace(i,"\\r").replace(s,"\\u2028").replace(a,"\\u2029")}function m(t){return~t.indexOf(".")?"d":"f"}function y(t,e){var n="<"+(e.prefix||"")+t.n+p++;return e.partials[n]={name:t.n,partials:{}},e.code+='t.b(t.rp("'+g(n)+'",c,p,"'+(t.indent||"")+'"));',n}function v(t,e){e.code+="t.b(t.t(t."+m(t.n)+'("'+g(t.n)+'",c,p,0)));'}function b(t){return"t.b("+t+");"}t.generate=function(e,n,r){p=0;var i={code:"",subs:{},partials:{}};return t.walk(e,i),r.asString?this.stringify(i,n,r):this.makeTemplate(i,n,r)},t.wrapMain=function(t){return'var t=this;t.b(i=i||"");'+t+"return t.fl();"},t.template=t.Template,t.makeTemplate=function(t,e,n){var r=this.makePartials(t);return r.code=new Function("c","p","i",this.wrapMain(t.code)),new this.template(r,e,this,n)},t.makePartials=function(t){var e,n={subs:{},partials:t.partials,name:t.name};for(e in n.partials)n.partials[e]=this.makePartials(n.partials[e]);for(e in t.subs)n.subs[e]=new Function("c","p","t","i",t.subs[e]);return n},t.codegen={"#":function(e,n){n.code+="if(t.s(t."+m(e.n)+'("'+g(e.n)+'",c,p,1),c,p,0,'+e.i+","+e.end+',"'+e.otag+" "+e.ctag+'")){t.rs(c,p,function(c,p,t){',t.walk(e.nodes,n),n.code+="});c.pop();}"},"^":function(e,n){n.code+="if(!t.s(t."+m(e.n)+'("'+g(e.n)+'",c,p,1),c,p,1,0,0,"")){',t.walk(e.nodes,n),n.code+="};"},">":y,"<":function(e,n){var r={partials:{},code:"",subs:{},inPartial:!0};t.walk(e.nodes,r);var i=n.partials[y(e,n)];i.subs=r.subs,i.partials=r.partials},$:function(e,n){var r={subs:{},code:"",partials:n.partials,prefix:e.n};t.walk(e.nodes,r),n.subs[e.n]=r.code,n.inPartial||(n.code+='t.sub("'+g(e.n)+'",c,p,i);')},"\n":function(t,e){e.code+=b('"\\n"'+(t.last?"":" + i"))},_v:function(t,e){e.code+="t.b(t.v(t."+m(t.n)+'("'+g(t.n)+'",c,p,0)));'},_t:function(t,e){e.code+=b('"'+g(t.text)+'"')},"{":v,"&":v},t.walk=function(e,n){for(var r,i=0,o=e.length;i<o;i++)(r=t.codegen[e[i].tag])&&r(e[i],n);return n},t.parse=function(e,n,r){return function e(n,r,i,o){var s,a=[],u=null,c=null;for(s=i[i.length-1];n.length>0;){if(c=n.shift(),s&&"<"==s.tag&&!(c.tag in l))throw new Error("Illegal content in < super tag.");if(t.tags[c.tag]<=t.tags.$||h(c,o))i.push(c),c.nodes=e(n,c.tag,i,o);else{if("/"==c.tag){if(0===i.length)throw new Error("Closing tag without opener: /"+c.n);if(u=i.pop(),c.n!=u.n&&!f(c.n,u.n,o))throw new Error("Nesting error: "+u.n+" vs. "+c.n);return u.end=c.i,a}"\n"==c.tag&&(c.last=0==n.length||"\n"==n[0].tag)}a.push(c)}if(i.length>0)throw new Error("missing closing tag: "+i.pop().n);return a}(e,0,[],(r=r||{}).sectionTags||[])},t.cache={},t.cacheKey=function(t,e){return[t,!!e.asString,!!e.disableLambda,e.delimiters,!!e.modelGet].join("||")},t.compile=function(e,n){n=n||{};var r=t.cacheKey(e,n),i=this.cache[r];if(i){var o=i.partials;for(var s in o)delete o[s].instance;return i}return i=this.generate(this.parse(this.scan(e,n.delimiters),e,n),e,n),this.cache[r]=i}}(e)},function(t,e,n){!function(t){function e(t,e,n){var r;return e&&"object"==typeof e&&(void 0!==e[t]?r=e[t]:n&&e.get&&"function"==typeof e.get&&(r=e.get(t))),r}t.Template=function(t,e,n,r){t=t||{},this.r=t.code||this.r,this.c=n,this.options=r||{},this.text=e||"",this.partials=t.partials||{},this.subs=t.subs||{},this.buf=""},t.Template.prototype={r:function(t,e,n){return""},v:function(t){return t=u(t),a.test(t)?t.replace(n,"&").replace(r,"<").replace(i,">").replace(o,"'").replace(s,"""):t},t:u,render:function(t,e,n){return this.ri([t],e||{},n)},ri:function(t,e,n){return this.r(t,e,n)},ep:function(t,e){var n=this.partials[t],r=e[n.name];if(n.instance&&n.base==r)return n.instance;if("string"==typeof r){if(!this.c)throw new Error("No compiler available.");r=this.c.compile(r,this.options)}if(!r)return null;if(this.partials[t].base=r,n.subs){for(key in e.stackText||(e.stackText={}),n.subs)e.stackText[key]||(e.stackText[key]=void 0!==this.activeSub&&e.stackText[this.activeSub]?e.stackText[this.activeSub]:this.text);r=function(t,e,n,r,i,o){function s(){}function a(){}var u;s.prototype=t,a.prototype=t.subs;var c=new s;for(u in c.subs=new a,c.subsText={},c.buf="",r=r||{},c.stackSubs=r,c.subsText=o,e)r[u]||(r[u]=e[u]);for(u in r)c.subs[u]=r[u];for(u in i=i||{},c.stackPartials=i,n)i[u]||(i[u]=n[u]);for(u in i)c.partials[u]=i[u];return c}(r,n.subs,n.partials,this.stackSubs,this.stackPartials,e.stackText)}return this.partials[t].instance=r,r},rp:function(t,e,n,r){var i=this.ep(t,n);return i?i.ri(e,n,r):""},rs:function(t,e,n){var r=t[t.length-1];if(c(r))for(var i=0;i<r.length;i++)t.push(r[i]),n(t,e,this),t.pop();else n(t,e,this)},s:function(t,e,n,r,i,o,s){var a;return(!c(t)||0!==t.length)&&("function"==typeof t&&(t=this.ms(t,e,n,r,i,o,s)),a=!!t,!r&&a&&e&&e.push("object"==typeof t?t:e[e.length-1]),a)},d:function(t,n,r,i){var o,s=t.split("."),a=this.f(s[0],n,r,i),u=this.options.modelGet,l=null;if("."===t&&c(n[n.length-2]))a=n[n.length-1];else for(var h=1;h<s.length;h++)void 0!==(o=e(s[h],a,u))?(l=a,a=o):a="";return!(i&&!a)&&(i||"function"!=typeof a||(n.push(l),a=this.mv(a,n,r),n.pop()),a)},f:function(t,n,r,i){for(var o=!1,s=!1,a=this.options.modelGet,u=n.length-1;u>=0;u--)if(void 0!==(o=e(t,n[u],a))){s=!0;break}return s?(i||"function"!=typeof o||(o=this.mv(o,n,r)),o):!i&&""},ls:function(t,e,n,r,i){var o=this.options.delimiters;return this.options.delimiters=i,this.b(this.ct(u(t.call(e,r)),e,n)),this.options.delimiters=o,!1},ct:function(t,e,n){if(this.options.disableLambda)throw new Error("Lambda features disabled.");return this.c.compile(t,this.options).render(e,n)},b:function(t){this.buf+=t},fl:function(){var t=this.buf;return this.buf="",t},ms:function(t,e,n,r,i,o,s){var a,u=e[e.length-1],c=t.call(u);return"function"==typeof c?!!r||(a=this.activeSub&&this.subsText&&this.subsText[this.activeSub]?this.subsText[this.activeSub]:this.text,this.ls(c,u,n,a.substring(i,o),s)):c},mv:function(t,e,n){var r=e[e.length-1],i=t.call(r);return"function"==typeof i?this.ct(u(i.call(r)),r,n):i},sub:function(t,e,n,r){var i=this.subs[t];i&&(this.activeSub=t,i(e,n,this,r),this.activeSub=!1)}};var n=/&/g,r=/</g,i=/>/g,o=/\'/g,s=/\"/g,a=/[&<>\"\']/;function u(t){return String(null==t?"":t)}var c=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)}}(e)},function(t,e,n){"use strict";var r=n(30),i=n(41);t.exports=i(r,"(lite) ")},function(t,e,n){t.exports=u;var r=n(5),i=n(31),o=n(32),s=n(38),a=Object({NODE_ENV:"production"}).RESET_APP_DATA_TIMER&&parseInt(Object({NODE_ENV:"production"}).RESET_APP_DATA_TIMER,10)||12e4;function u(t,e,i){var o=n(8)("algoliasearch"),s=n(3),a=n(6),u=n(7),l="Usage: algoliasearch(applicationID, apiKey, opts)";if(!0!==i._allowEmptyCredentials&&!t)throw new r.AlgoliaSearchError("Please provide an application ID. "+l);if(!0!==i._allowEmptyCredentials&&!e)throw new r.AlgoliaSearchError("Please provide an API key. "+l);this.applicationID=t,this.apiKey=e,this.hosts={read:[],write:[]},i=i||{},this._timeouts=i.timeouts||{connect:1e3,read:2e3,write:3e4},i.timeout&&(this._timeouts.connect=this._timeouts.read=this._timeouts.write=i.timeout);var h=i.protocol||"https:";if(/:$/.test(h)||(h+=":"),"http:"!==h&&"https:"!==h)throw new r.AlgoliaSearchError("protocol must be `http:` or `https:` (was `"+i.protocol+"`)");if(this._checkAppIdData(),i.hosts)a(i.hosts)?(this.hosts.read=s(i.hosts),this.hosts.write=s(i.hosts)):(this.hosts.read=s(i.hosts.read),this.hosts.write=s(i.hosts.write));else{var f=u(this._shuffleResult,(function(e){return t+"-"+e+".algolianet.com"})),d=(!1===i.dsn?"":"-dsn")+".algolia.net";this.hosts.read=[this.applicationID+d].concat(f),this.hosts.write=[this.applicationID+".algolia.net"].concat(f)}this.hosts.read=u(this.hosts.read,c(h)),this.hosts.write=u(this.hosts.write,c(h)),this.extraHeaders={},this.cache=i._cache||{},this._ua=i._ua,this._useCache=!(void 0!==i._useCache&&!i._cache)||i._useCache,this._useRequestCache=this._useCache&&i._useRequestCache,this._useFallback=void 0===i.useFallback||i.useFallback,this._setTimeout=i._setTimeout,o("init done, %j",this)}function c(t){return function(e){return t+"//"+e.toLowerCase()}}function l(t){if(void 0===Array.prototype.toJSON)return JSON.stringify(t);var e=Array.prototype.toJSON;delete Array.prototype.toJSON;var n=JSON.stringify(t);return Array.prototype.toJSON=e,n}function h(t){var e={};for(var n in t){var r;Object.prototype.hasOwnProperty.call(t,n)&&(r="x-algolia-api-key"===n||"x-algolia-application-id"===n?"**hidden for security purposes**":t[n],e[n]=r)}return e}u.prototype.initIndex=function(t){return new o(this,t)},u.prototype.setExtraHeader=function(t,e){this.extraHeaders[t.toLowerCase()]=e},u.prototype.getExtraHeader=function(t){return this.extraHeaders[t.toLowerCase()]},u.prototype.unsetExtraHeader=function(t){delete this.extraHeaders[t.toLowerCase()]},u.prototype.addAlgoliaAgent=function(t){-1===this._ua.indexOf(";"+t)&&(this._ua+=";"+t)},u.prototype._jsonRequest=function(t){this._checkAppIdData();var e,o,s,a=n(8)("algoliasearch:"+t.url),u=t.additionalUA||"",c=t.cache,f=this,d=0,p=!1,g=f._useFallback&&f._request.fallback&&t.fallback;this.apiKey.length>500&&void 0!==t.body&&(void 0!==t.body.params||void 0!==t.body.requests)?(t.body.apiKey=this.apiKey,s=this._computeRequestHeaders({additionalUA:u,withApiKey:!1,headers:t.headers})):s=this._computeRequestHeaders({additionalUA:u,headers:t.headers}),void 0!==t.body&&(e=l(t.body)),a("request start");var m=[];function y(t,e,n){return f._useCache&&t&&e&&void 0!==e[n]}function v(e,n){if(y(f._useRequestCache,c,o)&&e.catch((function(){delete c[o]})),"function"!=typeof t.callback)return e.then(n);e.then((function(e){i((function(){t.callback(null,n(e))}),f._setTimeout||setTimeout)}),(function(e){i((function(){t.callback(e)}),f._setTimeout||setTimeout)}))}if(f._useCache&&f._useRequestCache&&(o=t.url),f._useCache&&f._useRequestCache&&e&&(o+="_body_"+e),y(f._useRequestCache,c,o)){a("serving request from cache");var b=c[o];return v("function"!=typeof b.then?f._promise.resolve({responseText:b}):b,(function(t){return JSON.parse(t.responseText)}))}var w=function n(i,v){f._checkAppIdData();var b=new Date;if(f._useCache&&!f._useRequestCache&&(o=t.url),f._useCache&&!f._useRequestCache&&e&&(o+="_body_"+v.body),y(!f._useRequestCache,c,o)){a("serving response from cache");var w=c[o];return f._promise.resolve({body:JSON.parse(w),responseText:w})}if(d>=f.hosts[t.hostType].length)return!g||p?(a("could not get any response"),f._promise.reject(new r.AlgoliaSearchError("Cannot connect to the AlgoliaSearch API. Send an email to [email protected] to report and resolve the issue. Application id was: "+f.applicationID,{debugData:m}))):(a("switching to fallback"),d=0,v.method=t.fallback.method,v.url=t.fallback.url,v.jsonBody=t.fallback.body,v.jsonBody&&(v.body=l(v.jsonBody)),s=f._computeRequestHeaders({additionalUA:u,headers:t.headers}),v.timeouts=f._getTimeoutsForRequest(t.hostType),f._setHostIndexByType(0,t.hostType),p=!0,n(f._request.fallback,v));var _=f._getHostByType(t.hostType),x=_+v.url,S={body:v.body,jsonBody:v.jsonBody,method:v.method,headers:s,timeouts:v.timeouts,debug:a,forceAuthHeaders:v.forceAuthHeaders};return a("method: %s, url: %s, headers: %j, timeouts: %d",S.method,x,S.headers,S.timeouts),i===f._request.fallback&&a("using fallback"),i.call(f,x,S).then((function(t){var n=t&&t.body&&t.body.message&&t.body.status||t.statusCode||t&&t.body&&200;a("received response: statusCode: %s, computed statusCode: %d, headers: %j",t.statusCode,n,t.headers);var i=2===Math.floor(n/100),u=new Date;if(m.push({currentHost:_,headers:h(s),content:e||null,contentLength:void 0!==e?e.length:null,method:v.method,timeouts:v.timeouts,url:v.url,startTime:b,endTime:u,duration:u-b,statusCode:n}),i)return f._useCache&&!f._useRequestCache&&c&&(c[o]=t.responseText),{responseText:t.responseText,body:t.body};if(4!==Math.floor(n/100))return d+=1,C();a("unrecoverable error");var l=new r.AlgoliaSearchError(t.body&&t.body.message,{debugData:m,statusCode:n});return f._promise.reject(l)}),(function(o){a("error: %s, stack: %s",o.message,o.stack);var u=new Date;return m.push({currentHost:_,headers:h(s),content:e||null,contentLength:void 0!==e?e.length:null,method:v.method,timeouts:v.timeouts,url:v.url,startTime:b,endTime:u,duration:u-b}),o instanceof r.AlgoliaSearchError||(o=new r.Unknown(o&&o.message,o)),d+=1,o instanceof r.Unknown||o instanceof r.UnparsableJSON||d>=f.hosts[t.hostType].length&&(p||!g)?(o.debugData=m,f._promise.reject(o)):o instanceof r.RequestTimeout?(a("retrying request with higher timeout"),f._incrementHostIndex(t.hostType),f._incrementTimeoutMultipler(),v.timeouts=f._getTimeoutsForRequest(t.hostType),n(i,v)):C()}));function C(){return a("retrying request"),f._incrementHostIndex(t.hostType),n(i,v)}}(f._request,{url:t.url,method:t.method,body:e,jsonBody:t.body,timeouts:f._getTimeoutsForRequest(t.hostType),forceAuthHeaders:t.forceAuthHeaders});return f._useCache&&f._useRequestCache&&c&&(c[o]=w),v(w,(function(t){return t.body}))},u.prototype._getSearchParams=function(t,e){if(null==t)return e;for(var n in t)null!==n&&void 0!==t[n]&&t.hasOwnProperty(n)&&(e+=""===e?"":"&",e+=n+"="+encodeURIComponent("[object Array]"===Object.prototype.toString.call(t[n])?l(t[n]):t[n]));return e},u.prototype._computeRequestHeaders=function(t){var e=n(2),r={"x-algolia-agent":t.additionalUA?this._ua+";"+t.additionalUA:this._ua,"x-algolia-application-id":this.applicationID};return!1!==t.withApiKey&&(r["x-algolia-api-key"]=this.apiKey),this.userToken&&(r["x-algolia-usertoken"]=this.userToken),this.securityTags&&(r["x-algolia-tagfilters"]=this.securityTags),e(this.extraHeaders,(function(t,e){r[e]=t})),t.headers&&e(t.headers,(function(t,e){r[e]=t})),r},u.prototype.search=function(t,e,r){var i=n(6),o=n(7);if(!i(t))throw new Error("Usage: client.search(arrayOfQueries[, callback])");"function"==typeof e?(r=e,e={}):void 0===e&&(e={});var s=this,a={requests:o(t,(function(t){var e="";return void 0!==t.query&&(e+="query="+encodeURIComponent(t.query)),{indexName:t.indexName,params:s._getSearchParams(t.params,e)}}))},u=o(a.requests,(function(t,e){return e+"="+encodeURIComponent("/1/indexes/"+encodeURIComponent(t.indexName)+"?"+t.params)})).join("&");return void 0!==e.strategy&&(a.strategy=e.strategy),this._jsonRequest({cache:this.cache,method:"POST",url:"/1/indexes/*/queries",body:a,hostType:"read",fallback:{method:"GET",url:"/1/indexes/*",body:{params:u}},callback:r})},u.prototype.searchForFacetValues=function(t){var e=n(6),r=n(7),i="Usage: client.searchForFacetValues([{indexName, params: {facetName, facetQuery, ...params}}, ...queries])";if(!e(t))throw new Error(i);var o=this;return o._promise.all(r(t,(function(t){if(!t||void 0===t.indexName||void 0===t.params.facetName||void 0===t.params.facetQuery)throw new Error(i);var e=n(3),r=n(14),s=t.indexName,a=t.params,u=a.facetName,c=r(e(a),(function(t){return"facetName"===t})),l=o._getSearchParams(c,"");return o._jsonRequest({cache:o.cache,method:"POST",url:"/1/indexes/"+encodeURIComponent(s)+"/facets/"+encodeURIComponent(u)+"/query",hostType:"read",body:{params:l}})})))},u.prototype.setSecurityTags=function(t){if("[object Array]"===Object.prototype.toString.call(t)){for(var e=[],n=0;n<t.length;++n)if("[object Array]"===Object.prototype.toString.call(t[n])){for(var r=[],i=0;i<t[n].length;++i)r.push(t[n][i]);e.push("("+r.join(",")+")")}else e.push(t[n]);t=e.join(",")}this.securityTags=t},u.prototype.setUserToken=function(t){this.userToken=t},u.prototype.clearCache=function(){this.cache={}},u.prototype.setRequestTimeout=function(t){t&&(this._timeouts.connect=this._timeouts.read=this._timeouts.write=t)},u.prototype.setTimeouts=function(t){this._timeouts=t},u.prototype.getTimeouts=function(){return this._timeouts},u.prototype._getAppIdData=function(){var t=s.get(this.applicationID);return null!==t&&this._cacheAppIdData(t),t},u.prototype._setAppIdData=function(t){return t.lastChange=(new Date).getTime(),this._cacheAppIdData(t),s.set(this.applicationID,t)},u.prototype._checkAppIdData=function(){var t=this._getAppIdData(),e=(new Date).getTime();return null===t||e-t.lastChange>a?this._resetInitialAppIdData(t):t},u.prototype._resetInitialAppIdData=function(t){var e=t||{};return e.hostIndexes={read:0,write:0},e.timeoutMultiplier=1,e.shuffleResult=e.shuffleResult||function(t){for(var e,n,r=t.length;0!==r;)n=Math.floor(Math.random()*r),e=t[r-=1],t[r]=t[n],t[n]=e;return t}([1,2,3]),this._setAppIdData(e)},u.prototype._cacheAppIdData=function(t){this._hostIndexes=t.hostIndexes,this._timeoutMultiplier=t.timeoutMultiplier,this._shuffleResult=t.shuffleResult},u.prototype._partialAppIdDataUpdate=function(t){var e=n(2),r=this._getAppIdData();return e(t,(function(t,e){r[e]=t})),this._setAppIdData(r)},u.prototype._getHostByType=function(t){return this.hosts[t][this._getHostIndexByType(t)]},u.prototype._getTimeoutMultiplier=function(){return this._timeoutMultiplier},u.prototype._getHostIndexByType=function(t){return this._hostIndexes[t]},u.prototype._setHostIndexByType=function(t,e){var r=n(3)(this._hostIndexes);return r[e]=t,this._partialAppIdDataUpdate({hostIndexes:r}),t},u.prototype._incrementHostIndex=function(t){return this._setHostIndexByType((this._getHostIndexByType(t)+1)%this.hosts[t].length,t)},u.prototype._incrementTimeoutMultipler=function(){var t=Math.max(this._timeoutMultiplier+1,4);return this._partialAppIdDataUpdate({timeoutMultiplier:t})},u.prototype._getTimeoutsForRequest=function(t){return{connect:this._timeouts.connect*this._timeoutMultiplier,complete:this._timeouts[t]*this._timeoutMultiplier}}},function(t,e){t.exports=function(t,e){e(t,0)}},function(t,e,n){var r=n(13),i=n(33),o=n(34);function s(t,e){this.indexName=e,this.as=t,this.typeAheadArgs=null,this.typeAheadValueOption=null,this.cache={}}t.exports=s,s.prototype.clearCache=function(){this.cache={}},s.prototype.search=r("query"),s.prototype.similarSearch=r("similarQuery"),s.prototype.browse=function(t,e,r){var i,o,s=n(35),a=this;0===arguments.length||1===arguments.length&&"function"==typeof arguments[0]?(i=0,r=arguments[0],t=void 0):"number"==typeof arguments[0]?(i=arguments[0],"number"==typeof arguments[1]?o=arguments[1]:"function"==typeof arguments[1]&&(r=arguments[1],o=void 0),t=void 0,e=void 0):"object"==typeof arguments[0]?("function"==typeof arguments[1]&&(r=arguments[1]),e=arguments[0],t=void 0):"string"==typeof arguments[0]&&"function"==typeof arguments[1]&&(r=arguments[1],e=void 0),e=s({},e||{},{page:i,hitsPerPage:o,query:t});var u=this.as._getSearchParams(e,"");return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(a.indexName)+"/browse",body:{params:u},hostType:"read",callback:r})},s.prototype.browseFrom=function(t,e){return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/browse",body:{cursor:t},hostType:"read",callback:e})},s.prototype.searchForFacetValues=function(t,e){var r=n(3),i=n(14);if(void 0===t.facetName||void 0===t.facetQuery)throw new Error("Usage: index.searchForFacetValues({facetName, facetQuery, ...params}[, callback])");var o=t.facetName,s=i(r(t),(function(t){return"facetName"===t})),a=this.as._getSearchParams(s,"");return this.as._jsonRequest({method:"POST",url:"/1/indexes/"+encodeURIComponent(this.indexName)+"/facets/"+encodeURIComponent(o)+"/query",hostType:"read",body:{params:a},callback:e})},s.prototype.searchFacet=i((function(t,e){return this.searchForFacetValues(t,e)}),o("index.searchFacet(params[, callback])","index.searchForFacetValues(params[, callback])")),s.prototype._search=function(t,e,n,r){return this.as._jsonRequest({cache:this.cache,method:"POST",url:e||"/1/indexes/"+encodeURIComponent(this.indexName)+"/query",body:{params:t},hostType:"read",fallback:{method:"GET",url:"/1/indexes/"+encodeURIComponent(this.indexName),body:{params:t}},callback:n,additionalUA:r})},s.prototype.getObject=function(t,e,n){var r=this;1!==arguments.length&&"function"!=typeof e||(n=e,e=void 0);var i="";if(void 0!==e){i="?attributes=";for(var o=0;o<e.length;++o)0!==o&&(i+=","),i+=e[o]}return this.as._jsonRequest({method:"GET",url:"/1/indexes/"+encodeURIComponent(r.indexName)+"/"+encodeURIComponent(t)+i,hostType:"read",callback:n})},s.prototype.getObjects=function(t,e,r){var i=n(6),o=n(7),s="Usage: index.getObjects(arrayOfObjectIDs[, callback])";if(!i(t))throw new Error(s);var a=this;1!==arguments.length&&"function"!=typeof e||(r=e,e=void 0);var u={requests:o(t,(function(t){var n={indexName:a.indexName,objectID:t};return e&&(n.attributesToRetrieve=e.join(",")),n}))};return this.as._jsonRequest({method:"POST",url:"/1/indexes/*/objects",hostType:"read",body:u,callback:r})},s.prototype.as=null,s.prototype.indexName=null,s.prototype.typeAheadArgs=null,s.prototype.typeAheadValueOption=null},function(t,e){t.exports=function(t,e){var n=!1;return function(){return n||(console.warn(e),n=!0),t.apply(this,arguments)}}},function(t,e){t.exports=function(t,e){var n=t.toLowerCase().replace(/[\.\(\)]/g,"");return"algoliasearch: `"+t+"` was replaced by `"+e+"`. Please see https://github.com/algolia/algoliasearch-client-javascript/wiki/Deprecated#"+n}},function(t,e,n){var r=n(2);t.exports=function t(e){var n=Array.prototype.slice.call(arguments);return r(n,(function(n){for(var r in n)n.hasOwnProperty(r)&&("object"==typeof e[r]&&"object"==typeof n[r]?e[r]=t({},e[r],n[r]):void 0!==n[r]&&(e[r]=n[r]))})),e}},function(t,e,n){"use strict";var r=Object.prototype.hasOwnProperty,i=Object.prototype.toString,o=Array.prototype.slice,s=n(37),a=Object.prototype.propertyIsEnumerable,u=!a.call({toString:null},"toString"),c=a.call((function(){}),"prototype"),l=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],h=function(t){var e=t.constructor;return e&&e.prototype===t},f={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},d=function(){if("undefined"==typeof window)return!1;for(var t in window)try{if(!f["$"+t]&&r.call(window,t)&&null!==window[t]&&"object"==typeof window[t])try{h(window[t])}catch(t){return!0}}catch(t){return!0}return!1}(),p=function(t){var e=null!==t&&"object"==typeof t,n="[object Function]"===i.call(t),o=s(t),a=e&&"[object String]"===i.call(t),f=[];if(!e&&!n&&!o)throw new TypeError("Object.keys called on a non-object");var p=c&&n;if(a&&t.length>0&&!r.call(t,0))for(var g=0;g<t.length;++g)f.push(String(g));if(o&&t.length>0)for(var m=0;m<t.length;++m)f.push(String(m));else for(var y in t)p&&"prototype"===y||!r.call(t,y)||f.push(String(y));if(u)for(var v=function(t){if("undefined"==typeof window||!d)return h(t);try{return h(t)}catch(t){return!1}}(t),b=0;b<l.length;++b)v&&"constructor"===l[b]||!r.call(t,l[b])||f.push(l[b]);return f};p.shim=function(){if(Object.keys){if(!function(){return 2===(Object.keys(arguments)||"").length}(1,2)){var t=Object.keys;Object.keys=function(e){return s(e)?t(o.call(e)):t(e)}}}else Object.keys=p;return Object.keys||p},t.exports=p},function(t,e,n){"use strict";var r=Object.prototype.toString;t.exports=function(t){var e=r.call(t),n="[object Arguments]"===e;return n||(n="[object Array]"!==e&&null!==t&&"object"==typeof t&&"number"==typeof t.length&&t.length>=0&&"[object Function]"===r.call(t.callee)),n}},function(t,e,n){(function(e){var r,i=n(8)("algoliasearch:src/hostIndexState.js"),o={state:{},set:function(t,e){return this.state[t]=e,this.state[t]},get:function(t){return this.state[t]||null}},s={set:function(t,n){o.set(t,n);try{var r=JSON.parse(e.localStorage["algoliasearch-client-js"]);return r[t]=n,e.localStorage["algoliasearch-client-js"]=JSON.stringify(r),r[t]}catch(e){return a(t,e)}},get:function(t){try{return JSON.parse(e.localStorage["algoliasearch-client-js"])[t]||null}catch(e){return a(t,e)}}};function a(t,n){return i("localStorage failed with",n),function(){try{e.localStorage.removeItem("algoliasearch-client-js")}catch(t){}}(),(r=o).get(t)}function u(t,e){return 1===arguments.length?r.get(t):r.set(t,e)}function c(){try{return"localStorage"in e&&null!==e.localStorage&&(e.localStorage["algoliasearch-client-js"]||e.localStorage.setItem("algoliasearch-client-js",JSON.stringify({})),!0)}catch(t){return!1}}r=c()?s:o,t.exports={get:u,set:u,supportsLocalStorage:c}}).call(e,n(4))},function(t,e,n){var r;function i(t){function n(){if(n.enabled){var t=n,i=+new Date,o=i-(r||i);t.diff=o,t.prev=r,t.curr=i,r=i;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=e.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O");var u=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,(function(n,r){if("%%"===n)return n;u++;var i=e.formatters[r];if("function"==typeof i){var o=s[u];n=i.call(t,o),s.splice(u,1),u--}return n})),e.formatArgs.call(t,s);var c=n.log||e.log||console.log.bind(console);c.apply(t,s)}}return n.namespace=t,n.enabled=e.enabled(t),n.useColors=e.useColors(),n.color=function(t){var n,r=0;for(n in t)r=(r<<5)-r+t.charCodeAt(n),r|=0;return e.colors[Math.abs(r)%e.colors.length]}(t),"function"==typeof e.init&&e.init(n),n}(e=t.exports=i.debug=i.default=i).coerce=function(t){return t instanceof Error?t.stack||t.message:t},e.disable=function(){e.enable("")},e.enable=function(t){e.save(t),e.names=[],e.skips=[];for(var n=("string"==typeof t?t:"").split(/[\s,]+/),r=n.length,i=0;i<r;i++)n[i]&&("-"===(t=n[i].replace(/\*/g,".*?"))[0]?e.skips.push(new RegExp("^"+t.substr(1)+"$")):e.names.push(new RegExp("^"+t+"$")))},e.enabled=function(t){var n,r;for(n=0,r=e.skips.length;n<r;n++)if(e.skips[n].test(t))return!1;for(n=0,r=e.names.length;n<r;n++)if(e.names[n].test(t))return!0;return!1},e.humanize=n(40),e.names=[],e.skips=[],e.formatters={}},function(t,e){var n=1e3,r=6e4,i=60*r,o=24*i;function s(t,e,n){if(!(t<e))return t<1.5*e?Math.floor(t/e)+" "+n:Math.ceil(t/e)+" "+n+"s"}t.exports=function(t,e){e=e||{};var a,u=typeof t;if("string"===u&&t.length>0)return function(t){if(!((t=String(t)).length>100)){var e=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(t);if(e){var s=parseFloat(e[1]);switch((e[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*s;case"days":case"day":case"d":return s*o;case"hours":case"hour":case"hrs":case"hr":case"h":return s*i;case"minutes":case"minute":case"mins":case"min":case"m":return s*r;case"seconds":case"second":case"secs":case"sec":case"s":return s*n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return}}}}(t);if("number"===u&&!1===isNaN(t))return e.long?s(a=t,o,"day")||s(a,i,"hour")||s(a,r,"minute")||s(a,n,"second")||a+" ms":function(t){return t>=o?Math.round(t/o)+"d":t>=i?Math.round(t/i)+"h":t>=r?Math.round(t/r)+"m":t>=n?Math.round(t/n)+"s":t+"ms"}(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},function(t,e,n){"use strict";var r=n(42),i=r.Promise||n(43).Promise;t.exports=function(t,e){var o=n(12),s=n(5),a=n(44),u=n(46),c=n(47);function l(t,e,r){return(r=n(3)(r||{}))._ua=r._ua||l.ua,new f(t,e,r)}e=e||"",l.version=n(48),l.ua="Algolia for vanilla JavaScript "+e+l.version,l.initPlaces=c(l),r.__algolia={debug:n(8),algoliasearch:l};var h={hasXMLHttpRequest:"XMLHttpRequest"in r,hasXDomainRequest:"XDomainRequest"in r};function f(){t.apply(this,arguments)}return h.hasXMLHttpRequest&&(h.cors="withCredentials"in new XMLHttpRequest),o(f,t),f.prototype._request=function(t,e){return new i((function(n,r){if(h.cors||h.hasXDomainRequest){t=a(t,e.headers);var i,o,u=e.body,c=h.cors?new XMLHttpRequest:new XDomainRequest,l=!1;i=setTimeout(f,e.timeouts.connect),c.onprogress=function(){l||d()},"onreadystatechange"in c&&(c.onreadystatechange=function(){!l&&c.readyState>1&&d()}),c.onload=function(){if(!o){var t;clearTimeout(i);try{t={body:JSON.parse(c.responseText),responseText:c.responseText,statusCode:c.status,headers:c.getAllResponseHeaders&&c.getAllResponseHeaders()||{}}}catch(e){t=new s.UnparsableJSON({more:c.responseText})}t instanceof s.UnparsableJSON?r(t):n(t)}},c.onerror=function(t){o||(clearTimeout(i),r(new s.Network({more:t})))},c instanceof XMLHttpRequest?(c.open(e.method,t,!0),e.forceAuthHeaders&&(c.setRequestHeader("x-algolia-application-id",e.headers["x-algolia-application-id"]),c.setRequestHeader("x-algolia-api-key",e.headers["x-algolia-api-key"]))):c.open(e.method,t),h.cors&&(u&&("POST"===e.method?c.setRequestHeader("content-type","application/x-www-form-urlencoded"):c.setRequestHeader("content-type","application/json")),c.setRequestHeader("accept","application/json")),u?c.send(u):c.send()}else r(new s.Network("CORS not supported"));function f(){o=!0,c.abort(),r(new s.RequestTimeout)}function d(){l=!0,clearTimeout(i),i=setTimeout(f,e.timeouts.complete)}}))},f.prototype._request.fallback=function(t,e){return t=a(t,e.headers),new i((function(n,r){u(t,e,(function(t,e){t?r(t):n(e)}))}))},f.prototype._promise={reject:function(t){return i.reject(t)},resolve:function(t){return i.resolve(t)},delay:function(t){return new i((function(e){setTimeout(e,t)}))},all:function(t){return i.all(t)}},l}},function(t,e,n){(function(e){var n;n="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},t.exports=n}).call(e,n(4))},function(t,e,n){(function(e,n){ /*! @@ -14,4 +14,4 @@ var r;"undefined"!=typeof self&&self,r=function(){return function(t){var e={};fu * @license Licensed under MIT license * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE * @version v4.2.4+314e4831 - */var r;r=function(){"use strict";function t(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},i=0,o=void 0,s=void 0,a=function(t,e){p[i]=t,p[i+1]=e,2===(i+=2)&&(s?s(g):w())},u="undefined"!=typeof window?window:void 0,c=u||{},l=c.MutationObserver||c.WebKitMutationObserver,h="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(g,1)}}var p=new Array(1e3);function g(){for(var t=0;t<i;t+=2)(0,p[t])(p[t+1]),p[t]=void 0,p[t+1]=void 0;i=0}var m,y,v,b,w=void 0;function _(t,e){var n=this,r=new this.constructor(C);void 0===r[S]&&D(r);var i=n._state;if(i){var o=arguments[i-1];a((function(){return R(i,r,o,n._result)}))}else I(n,r,t,e);return r}function x(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(C);return k(e,t),e}h?w=function(){return e.nextTick(g)}:l?(y=0,v=new l(g),b=document.createTextNode(""),v.observe(b,{characterData:!0}),w=function(){b.data=y=++y%2}):f?((m=new MessageChannel).port1.onmessage=g,w=function(){return m.port2.postMessage(0)}):w=void 0===u?function(){try{var t=Function("return this")().require("vertx");return void 0!==(o=t.runOnLoop||t.runOnContext)?function(){o(g)}:d()}catch(t){return d()}}():d();var S=Math.random().toString(36).substring(2);function C(){}var A={error:null};function E(t){try{return t.then}catch(t){return A.error=t,A}}function T(e,n,r){n.constructor===e.constructor&&r===_&&n.constructor.resolve===x?function(t,e){1===e._state?N(t,e._result):2===e._state?j(t,e._result):I(e,void 0,(function(e){return k(t,e)}),(function(e){return j(t,e)}))}(e,n):r===A?(j(e,A.error),A.error=null):void 0===r?N(e,n):t(r)?function(t,e,n){a((function(t){var r=!1,i=function(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}(n,e,(function(n){r||(r=!0,e!==n?k(t,n):N(t,n))}),(function(e){r||(r=!0,j(t,e))}),t._label);!r&&i&&(r=!0,j(t,i))}),t)}(e,n,r):N(e,n)}function k(t,e){var n,r;t===e?j(t,new TypeError("You cannot resolve a promise with itself")):(r=typeof(n=e),null===n||"object"!==r&&"function"!==r?N(t,e):T(t,e,E(e)))}function O(t){t._onerror&&t._onerror(t._result),L(t)}function N(t,e){void 0===t._state&&(t._result=e,t._state=1,0!==t._subscribers.length&&a(L,t))}function j(t,e){void 0===t._state&&(t._state=2,t._result=e,a(O,t))}function I(t,e,n,r){var i=t._subscribers,o=i.length;t._onerror=null,i[o]=e,i[o+1]=n,i[o+2]=r,0===o&&t._state&&a(L,t)}function L(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,i=void 0,o=t._result,s=0;s<e.length;s+=3)r=e[s],i=e[s+n],r?R(n,r,i,o):i(o);t._subscribers.length=0}}function R(e,n,r,i){var o=t(r),s=void 0,a=void 0,u=void 0,c=void 0;if(o){if((s=function(t,e){try{return t(e)}catch(t){return A.error=t,A}}(r,i))===A?(c=!0,a=s.error,s.error=null):u=!0,n===s)return void j(n,new TypeError("A promises callback cannot return that same promise."))}else s=i,u=!0;void 0!==n._state||(o&&u?k(n,s):c?j(n,a):1===e?N(n,s):2===e&&j(n,s))}var P=0;function D(t){t[S]=P++,t._state=void 0,t._result=void 0,t._subscribers=[]}var q=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(C),this.promise[S]||D(this.promise),r(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?N(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&N(this.promise,this._result))):j(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;void 0===this._state&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===x){var i=E(t);if(i===_&&void 0!==t._state)this._settledAt(t._state,e,t._result);else if("function"!=typeof i)this._remaining--,this._result[e]=t;else if(n===$){var o=new n(C);T(o,t,i),this._willSettleAt(o,e)}else this._willSettleAt(new n((function(e){return e(t)})),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;void 0===r._state&&(this._remaining--,2===t?j(r,n):this._result[e]=n),0===this._remaining&&N(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;I(t,void 0,(function(t){return n._settledAt(1,e,t)}),(function(t){return n._settledAt(2,e,t)}))},t}(),$=function(){function t(e){this[S]=P++,this._result=this._state=void 0,this._subscribers=[],C!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){try{e((function(e){k(t,e)}),(function(e){j(t,e)}))}catch(e){j(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){throw n}))}))},t}();return $.prototype.then=_,$.all=function(t){return new q(this,t).promise},$.race=function(t){var e=this;return r(t)?new e((function(n,r){for(var i=t.length,o=0;o<i;o++)e.resolve(t[o]).then(n,r)})):new e((function(t,e){return e(new TypeError("You must pass an array to race."))}))},$.resolve=x,$.reject=function(t){var e=new this(C);return j(e,t),e},$._setScheduler=function(t){s=t},$._setAsap=function(t){a=t},$._asap=a,$.polyfill=function(){var t=void 0;if(void 0!==n)t=n;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===r&&!e.cast)return}t.Promise=$},$.Promise=$,$},t.exports=r()}).call(e,n(9),n(4))},function(t,e,n){"use strict";t.exports=function(t,e){return/\?/.test(t)?t+="&":t+="?",t+r(e)};var r=n(45)},function(t,e,n){"use strict";var r=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,n,a){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?o(s(t),(function(s){var a=encodeURIComponent(r(s))+n;return i(t[s])?o(t[s],(function(t){return a+encodeURIComponent(r(t))})).join(e):a+encodeURIComponent(r(t[s]))})).join(e):a?encodeURIComponent(r(a))+n+encodeURIComponent(r(t)):""};var i=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function o(t,e){if(t.map)return t.map(e);for(var n=[],r=0;r<t.length;r++)n.push(e(t[r],r));return n}var s=Object.keys||function(t){var e=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.push(n);return e}},function(t,e,n){"use strict";t.exports=function(t,e,n){if("GET"===e.method){e.debug("JSONP: start");var o=!1,s=!1;i+=1;var a=document.getElementsByTagName("head")[0],u=document.createElement("script"),c="algoliaJSONP_"+i,l=!1;window[c]=function(t){!function(){try{delete window[c],delete window[c+"_loaded"]}catch(t){window[c]=window[c+"_loaded"]=void 0}}(),s?e.debug("JSONP: Late answer, ignoring"):(o=!0,d(),n(null,{body:t,responseText:JSON.stringify(t)}))},t+="&callback="+c,e.jsonBody&&e.jsonBody.params&&(t+="&"+e.jsonBody.params);var h=setTimeout((function(){e.debug("JSONP: Script timeout"),s=!0,d(),n(new r.RequestTimeout)}),e.timeouts.complete);u.onreadystatechange=function(){"loaded"!==this.readyState&&"complete"!==this.readyState||f()},u.onload=f,u.onerror=function(){e.debug("JSONP: Script error"),l||s||(d(),n(new r.JSONPScriptError))},u.async=!0,u.defer=!0,u.src=t,a.appendChild(u)}else n(new Error("Method "+e.method+" "+t+" is not supported by JSONP."));function f(){e.debug("JSONP: success"),l||s||(l=!0,o||(e.debug("JSONP: Fail. Script loaded but did not call the callback"),d(),n(new r.JSONPScriptFail)))}function d(){clearTimeout(h),u.onload=null,u.onreadystatechange=null,u.onerror=null,a.removeChild(u)}};var r=n(5),i=0},function(t,e,n){t.exports=function(t){return function(e,i,o){var s=n(3);(o=o&&s(o)||{}).hosts=o.hosts||["places-dsn.algolia.net","places-1.algolianet.com","places-2.algolianet.com","places-3.algolianet.com"],0!==arguments.length&&"object"!=typeof e&&void 0!==e||(e="",i="",o._allowEmptyCredentials=!0);var a=t(e,i,o),u=a.initIndex("places");return u.search=r("query","/1/places/query"),u.getObject=function(t,e){return this.as._jsonRequest({method:"GET",url:"/1/places/"+encodeURIComponent(t),hostType:"read",callback:e})},u}};var r=n(13)},function(t,e,n){"use strict";t.exports="3.30.0"},function(t,e,n){"use strict";t.exports=n(50)},function(t,e,n){"use strict";var r=n(15);n(1).element=r;var i=n(0);i.isArray=r.isArray,i.isFunction=r.isFunction,i.isObject=r.isPlainObject,i.bind=r.proxy,i.each=function(t,e){r.each(t,(function(t,n){return e(n,t)}))},i.map=r.map,i.mixin=r.extend,i.Event=r.Event;var o=n(51),s=n(16);function a(t,e,n,a){n=i.isArray(n)?n:[].slice.call(arguments,2);var u=r(t).each((function(t,i){var u=r(i),c=new s({el:u}),l=a||new o({input:u,eventBus:c,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth});u.data("aaAutocomplete",l)}));return u.autocomplete={},i.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){u.autocomplete[t]=function(){var e,n=arguments;return u.each((function(i,o){var s=r(o).data("aaAutocomplete");e=s[t].apply(s,n)})),e}})),u}a.sources=o.sources,a.escapeHighlightedString=i.escapeHighlightedString;var u="autocomplete"in window,c=window.autocomplete;a.noConflict=function(){return u?window.autocomplete=c:delete window.autocomplete,a},t.exports=a},function(t,e,n){"use strict";var r=n(0),i=n(1),o=n(16),s=n(52),a=n(59),u=n(17),c=n(11);function l(t){var e,n;if((t=t||{}).input||r.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=r.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=r.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=r.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",r.getUniqueId()].join("-");var s=function(t){var e,n,o,s;e=i.element(t.input),n=i.element(u.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var a,c=u.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=i.element(c).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(r.templatify(t.templates.dropdownMenu)()),(s=e.clone().css(t.css.hint).css((a=e,{backgroundAttachment:a.css("background-attachment"),backgroundClip:a.css("background-clip"),backgroundColor:a.css("background-color"),backgroundImage:a.css("background-image"),backgroundOrigin:a.css("background-origin"),backgroundPosition:a.css("background-position"),backgroundRepeat:a.css("background-repeat"),backgroundSize:a.css("background-size")}))).val("").addClass(r.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),s.removeData&&s.removeData(),e.data("aaAttrs",{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(r.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(t){}return(n=t.appendTo?n.appendTo(i.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent()).prepend(t.hint?s:null).append(o),{wrapper:n,input:e,hint:s,menu:o}}(t);this.$node=s.wrapper;var a=this.$input=s.input;e=s.menu,n=s.hint,t.dropdownMenuContainer&&i.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),a.on("blur.aa",(function(t){var n=document.activeElement;r.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),r.defer((function(){a.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:a}),this.dropdown=new l.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new l.Input({input:a,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}r.mixin(l.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];r.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),i.element(document).keydown((function(t){var r=t.target||t.srcElement,i=r.tagName;if(!r.isContentEditable&&"INPUT"!==i&&"SELECT"!==i&&"TEXTAREA"!==i){var o=t.which||t.keyCode;-1!==n.indexOf(o)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n)},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),r=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(r),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var r=t.left-e.left;this.$node.css("left",r+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion(),this.debug||(this.autoselectOnBlur&&t?this._select(t):this.autoselectOnBlur&&e?this._select(e):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,r;n=this.dropdown.getDatumForCursor(),r=this.dropdown.getDatumForTopSuggestion(),n?(this._select(n),e.preventDefault()):this.autoselect&&r&&(this._select(r),e.preventDefault())},_onTabKeyed:function(t,e){var n;this.tabAutocomplete?(n=this.dropdown.getDatumForCursor())?(this._select(n),e.preventDefault()):this._autocomplete(!0):this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,o;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=s.normalizeQuery(e),i=r.escapeRegExChars(n),(o=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+o[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,r,i;e=this.input.getHint(),n=this.input.getQuery(),r=t||this.input.isCursorAtEnd(),e&&n!==e&&r&&((i=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(i.value),this.eventBus.trigger("autocompleted",i.raw,i.datasetName))},_select:function(t){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName).isDefaultPrevented()&&(this.dropdown.close(),r.defer(r.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=r.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){var t,e,n;this.input.destroy(),this.dropdown.destroy(),t=this.$node,e=this.cssClasses,n=t.find(r.className(e.prefix,e.input)),r.each(n.data("aaAttrs"),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(r.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData("aaAttrs"),t.remove(),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),l.Dropdown=a,l.Input=s,l.sources=n(61),t.exports=l},function(t,e,n){"use strict";var r;r={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var i=n(0),o=n(1),s=n(10);function a(t){var e,n,s,a,u,c=this;(t=t||{}).input||i.error("input is missing"),e=i.bind(this._onBlur,this),n=i.bind(this._onFocus,this),s=i.bind(this._onKeydown,this),a=i.bind(this._onInput,this),this.$hint=o.element(t.hint),this.$input=o.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",s),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=i.noop),i.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){r[t.which||t.keyCode]||i.defer(i.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,o.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},i.mixin(a.prototype,s,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=r[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,r,i;switch(t){case"tab":r=this.getHint(),i=this.getInputValue(),n=r&&r!==i&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;switch(t){case"tab":n=!u(e);break;default:n=!0}return n},_checkInputValue:function(){var t,e,n,r,i;t=this.getInputValue(),r=t,i=this.query,n=!(!(e=a.normalizeQuery(r)===a.normalizeQuery(i))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,i.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},function(t,e,n){"use strict";var r,i,o,s=[n(54),n(55),n(56),n(57),n(58)],a=-1,u=[],c=!1;function l(){r&&i&&(r=!1,i.length?u=i.concat(u):a=-1,u.length&&h())}function h(){if(!r){c=!1,r=!0;for(var t=u.length,e=setTimeout(l);t;){for(i=u,u=[];i&&++a<t;)i[a].run();a=-1,t=u.length}i=null,a=-1,r=!1,clearTimeout(e)}}for(var f=-1,d=s.length;++f<d;)if(s[f]&&s[f].test&&s[f].test()){o=s[f].install(h);break}function p(t,e){this.fun=t,this.array=e}p.prototype.run=function(){var t=this.fun,e=this.array;switch(e.length){case 0:return t();case 1:return t(e[0]);case 2:return t(e[0],e[1]);case 3:return t(e[0],e[1],e[2]);default:return t.apply(null,e)}},t.exports=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new p(t,e)),c||r||(c=!0,o())}},function(t,e,n){"use strict";(function(t){e.test=function(){return void 0!==t&&!t.browser},e.install=function(e){return function(){t.nextTick(e)}}}).call(e,n(9))},function(t,e,n){"use strict";(function(t){var n=t.MutationObserver||t.WebKitMutationObserver;e.test=function(){return n},e.install=function(e){var r=0,i=new n(e),o=t.document.createTextNode("");return i.observe(o,{characterData:!0}),function(){o.data=r=++r%2}}}).call(e,n(4))},function(t,e,n){"use strict";(function(t){e.test=function(){return!t.setImmediate&&void 0!==t.MessageChannel},e.install=function(e){var n=new t.MessageChannel;return n.port1.onmessage=e,function(){n.port2.postMessage(0)}}}).call(e,n(4))},function(t,e,n){"use strict";(function(t){e.test=function(){return"document"in t&&"onreadystatechange"in t.document.createElement("script")},e.install=function(e){return function(){var n=t.document.createElement("script");return n.onreadystatechange=function(){e(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},t.document.documentElement.appendChild(n),e}}}).call(e,n(4))},function(t,e,n){"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}},function(t,e,n){"use strict";var r=n(0),i=n(1),o=n(10),s=n(60),a=n(11);function u(t){var e,n,o,s=this;(t=t||{}).menu||r.error("menu is required"),r.isArray(t.datasets)||r.isObject(t.datasets)||r.error("1 or more datasets required"),t.datasets||r.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=r.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=r.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=r.bind(this._onSuggestionClick,this),n=r.bind(this._onSuggestionMouseEnter,this),o=r.bind(this._onSuggestionMouseLeave,this);var c=r.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=i.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,o).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=r.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=r.templatify(t.templates.empty),this.$empty=i.element('<div class="'+r.className(this.cssClasses.prefix,this.cssClasses.empty,!0)+'"></div>'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=r.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(r.mixin({$menu:t,cssClasses:n},e))}(s.$menu,e,t.cssClasses)})),r.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&s.$menu.append(e),t.onSync("rendered",s._onRendered,s)})),t.templates&&t.templates.footer&&(this.templates.footer=r.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;i.element(window).resize((function(){l._redraw()}))}r.mixin(u.prototype,o,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",i.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=i.element(t.currentTarget);if(!e.hasClass(r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){t.relatedTarget&&i.element(t.relatedTarget).closest("."+r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0||(this._removeCursor(),this.trigger("cursorRemoved"))},_onRendered:function(t,e){if(this.isEmpty=r.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length<this.minLength)this._hide();else{var n=this.templates.empty({query:this.datasets[0]&&this.datasets[0].query});this.$empty.html(n),this.$empty.show(),this._show()}else r.any(this.datasets,(function(t){return t.templates&&t.templates.empty}))?e.length<this.minLength?this._hide():this._show():this._hide();else this.isOpen&&(this.$empty&&(this.$empty.empty(),this.$empty.hide()),e.length>=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(r.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(r.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,r,i;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!=(r=((r=e.index(n)+t)+1)%(e.length+1)-1)?(r<-1&&(r=e.length-1),this._setCursor(i=e.eq(r),!0),this._ensureVisible(i)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,r,i;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),r=this.$menu.scrollTop(),i=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(r+e):i<n&&this.$menu.scrollTop(r+(n-i))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?this.css.ltr:this.css.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:s.extractDatum(t),value:s.extractValue(t),datasetName:s.extractDatasetName(t)}),e},getCurrentCursor:function(){return this._getCursor().first()},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},cursorTopSuggestion:function(){this._setCursor(this._getSuggestions().first(),!1)},update:function(t){r.each(this.datasets,(function(e){e.update(t)}))},empty:function(){r.each(this.datasets,(function(t){t.clear()})),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){this.$menu.off(".aa"),this.$menu=null,r.each(this.datasets,(function(t){t.destroy()}))}}),u.Dataset=s,t.exports=u},function(t,e,n){"use strict";var r=n(0),i=n(1),o=n(17),s=n(11),a=n(10);function u(t){var e,n,a,u;(t=t||{}).templates=t.templates||{},t.source||r.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&r.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?r.getUniqueId():t.name,this.source=t.source,this.displayFn=(n=(n=t.display||t.displayKey)||"value",r.isFunction(n)?n:function(t){return t[n]}),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=(a=t.templates,u=this.displayFn,{empty:a.empty&&r.templatify(a.empty),header:a.header&&r.templatify(a.header),footer:a.footer&&r.templatify(a.footer),suggestion:a.suggestion||function(t){return"<p>"+u(t)+"</p>"}}),this.css=r.mixin({},s,t.appendTo?s.appendTo:{}),this.cssClasses=t.cssClasses=r.mixin({},s.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var c=r.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(c+"-"+this.name).length>0?i.element(t.$menu.find(c+"-"+this.name)[0]):i.element(o.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}u.extractDatasetName=function(t){return i.element(t).data("aaDataset")},u.extractValue=function(t){return i.element(t).data("aaValue")},u.extractDatum=function(t){var e=i.element(t).data("aaDatum");return"string"==typeof e&&(e=JSON.parse(e)),e},r.mixin(u.prototype,a,{_render:function(t,e){if(this.$el){var n,s=this,a=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(u.apply(this,a)).prepend(s.templates.header?l.apply(this,a):null).append(s.templates.footer?h.apply(this,a):null);else if(n)this.$el.html(c.apply(this,a)).prepend(s.templates.header?l.apply(this,a):null).append(s.templates.footer?h.apply(this,a):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function u(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),s.templates.empty.apply(this,e)}function c(){var t,n,a=[].slice.call(arguments,0),u=this,c=o.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=i.element(c).css(this.css.suggestions),n=r.map(e,l),t.append.apply(t,n),t;function l(t){var e,n=o.suggestion.replace("%PREFIX%",u.cssClasses.prefix).replace("%SUGGESTION%",u.cssClasses.suggestion);return(e=i.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(s.templates.suggestion.apply(this,[t].concat(a)))).data("aaDataset",s.name),e.data("aaValue",s.displayFn(t)||void 0),e.data("aaDatum",JSON.stringify(t)),e.children().each((function(){i.element(this).css(u.css.suggestionChild)})),e}}function l(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),s.templates.header.apply(this,e)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),s.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,r=function(){n.canceled||n.source(t,e.bind(n))};this.debounce?(clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,r()}),this.debounce)):r()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered","")},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=u},function(t,e,n){"use strict";t.exports={hits:n(62),popularIn:n(63)}},function(t,e,n){"use strict";var r=n(0),i=n(18),o=n(19);t.exports=function(t,e){var n=o(t.as._ua);return n&&n[0]>=3&&n[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+i),function(n,i){t.search(n,e,(function(t,e){t?r.error(t.message):i(e.hits,e)}))}}},function(t,e,n){"use strict";var r=n(0),i=n(18),o=n(19);t.exports=function(t,e,n,s){var a=o(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+i),!n.source)return r.error("Missing 'source' key");var u=r.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return r.error("Missing 'index' key");var c=n.index;return s=s||{},function(a,l){t.search(a,e,(function(t,a){if(t)r.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],f=r.mixin({hitsPerPage:0},n);delete f.source,delete f.index;var d=o(c.as._ua);return d&&d[0]>=3&&d[1]>20&&(e.additionalUA="autocomplete.js "+i),void c.search(u(h),f,(function(t,e){if(t)r.error(t.message);else{var n=[];if(s.includeAll){var i=s.allTitle||"All departments";n.push(r.mixin({facet:{value:i,count:e.nbHits}},r.cloneDeep(h)))}r.each(e.facets,(function(t,e){r.each(t,(function(t,i){n.push(r.mixin({facet:{facet:e,value:i,count:t}},r.cloneDeep(h)))}))}));for(var o=1;o<a.hits.length;++o)n.push(a.hits[o]);l(n,a)}}))}l([])}}))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="algolia-docsearch-suggestion",i={suggestion:'\n <a class="'+r+"\n {{#isCategoryHeader}}"+r+"__main{{/isCategoryHeader}}\n {{#isSubCategoryHeader}}"+r+'__secondary{{/isSubCategoryHeader}}\n "\n aria-label="Link to the result"\n href="{{{url}}}"\n >\n <div class="'+r+'--category-header">\n <span class="'+r+'--category-header-lvl0">{{{category}}}</span>\n </div>\n <div class="'+r+'--wrapper">\n <div class="'+r+'--subcategory-column">\n <span class="'+r+'--subcategory-column-text">{{{subcategory}}}</span>\n </div>\n {{#isTextOrSubcategoryNonEmpty}}\n <div class="'+r+'--content">\n <div class="'+r+'--subcategory-inline">{{{subcategory}}}</div>\n <div class="'+r+'--title">{{{title}}}</div>\n {{#text}}<div class="'+r+'--text">{{{text}}}</div>{{/text}}\n </div>\n {{/isTextOrSubcategoryNonEmpty}}\n </div>\n </a>\n ',suggestionSimple:'\n <div class="'+r+"\n {{#isCategoryHeader}}"+r+"__main{{/isCategoryHeader}}\n {{#isSubCategoryHeader}}"+r+'__secondary{{/isSubCategoryHeader}}\n suggestion-layout-simple\n ">\n <div class="'+r+'--category-header">\n {{^isLvl0}}\n <span class="'+r+"--category-header-lvl0 "+r+'--category-header-item">{{{category}}}</span>\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n <span class="'+r+"--category-header-lvl1 "+r+'--category-header-item">\n {{{subcategory}}}\n </span>\n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n <div class="'+r+"--title "+r+'--category-header-item">\n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n </div>\n </div>\n <div class="'+r+'--wrapper">\n {{#text}}\n <div class="'+r+'--content">\n <div class="'+r+'--text">{{{text}}}</div>\n </div>\n {{/text}}\n </div>\n </div>\n ',footer:'\n <div class="algolia-docsearch-footer">\n Search by <a class="algolia-docsearch-footer--logo" href="https://www.algolia.com/docsearch">Algolia</a>\n </div>\n ',empty:'\n <div class="'+r+'">\n <div class="'+r+'--wrapper">\n <div class="'+r+"--content "+r+'--no-results">\n <div class="'+r+'--title">\n <div class="'+r+'--text">\n No results found for query <b>"{{query}}"</b>\n </div>\n </div>\n </div>\n </div>\n </div>\n ',searchBox:'\n <form novalidate="novalidate" onsubmit="return false;" class="searchbox">\n <div role="search" class="searchbox__wrapper">\n <input id="docsearch" type="search" name="search" placeholder="Search the docs" autocomplete="off" required="required" class="searchbox__input"/>\n <button type="submit" title="Submit your search query." class="searchbox__submit" >\n <svg width=12 height=12 role="img" aria-label="Search">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-search-13"></use>\n </svg>\n </button>\n <button type="reset" title="Clear the search query." class="searchbox__reset hide">\n <svg width=12 height=12 role="img" aria-label="Reset">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-clear-3"></use>\n </svg>\n </button>\n </div>\n</form>\n\n<div class="svg-icons" style="height: 0; width: 0; position: absolute; visibility: hidden">\n <svg xmlns="http://www.w3.org/2000/svg">\n <symbol id="sbx-icon-clear-3" viewBox="0 0 40 40"><path d="M16.228 20L1.886 5.657 0 3.772 3.772 0l1.885 1.886L20 16.228 34.343 1.886 36.228 0 40 3.772l-1.886 1.885L23.772 20l14.342 14.343L40 36.228 36.228 40l-1.885-1.886L20 23.772 5.657 38.114 3.772 40 0 36.228l1.886-1.885L16.228 20z" fill-rule="evenodd"></symbol>\n <symbol id="sbx-icon-search-13" viewBox="0 0 40 40"><path d="M26.806 29.012a16.312 16.312 0 0 1-10.427 3.746C7.332 32.758 0 25.425 0 16.378 0 7.334 7.333 0 16.38 0c9.045 0 16.378 7.333 16.378 16.38 0 3.96-1.406 7.593-3.746 10.426L39.547 37.34c.607.608.61 1.59-.004 2.203a1.56 1.56 0 0 1-2.202.004L26.807 29.012zm-10.427.627c7.322 0 13.26-5.938 13.26-13.26 0-7.324-5.938-13.26-13.26-13.26-7.324 0-13.26 5.936-13.26 13.26 0 7.322 5.936 13.26 13.26 13.26z" fill-rule="evenodd"></symbol>\n </svg>\n</div>\n '};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=n(20),s=(r=o)&&r.__esModule?r:{default:r},a={mergeKeyWithParent:function(t,e){if(void 0===t[e])return t;if("object"!==i(t[e]))return t;var n=s.default.extend({},t,t[e]);return delete n[e],n},groupBy:function(t,e){var n={};return s.default.each(t,(function(t,r){if(void 0===r[e])throw new Error("[groupBy]: Object has no key "+e);var i=r[e];"string"==typeof i&&(i=i.toLowerCase()),Object.prototype.hasOwnProperty.call(n,i)||(n[i]=[]),n[i].push(r)})),n},values:function(t){return Object.keys(t).map((function(e){return t[e]}))},flatten:function(t){var e=[];return t.forEach((function(t){Array.isArray(t)?t.forEach((function(t){e.push(t)})):e.push(t)})),e},flattenAndFlagFirst:function(t,e){var n=this.values(t).map((function(t){return t.map((function(t,n){return t[e]=0===n,t}))}));return this.flatten(n)},compact:function(t){var e=[];return t.forEach((function(t){t&&e.push(t)})),e},getHighlightedValue:function(t,e){return t._highlightResult&&t._highlightResult.hierarchy_camel&&t._highlightResult.hierarchy_camel[e]&&t._highlightResult.hierarchy_camel[e].matchLevel&&"none"!==t._highlightResult.hierarchy_camel[e].matchLevel&&t._highlightResult.hierarchy_camel[e].value?t._highlightResult.hierarchy_camel[e].value:t._highlightResult&&t._highlightResult&&t._highlightResult[e]&&t._highlightResult[e].value?t._highlightResult[e].value:t[e]},getSnippetedValue:function(t,e){if(!t._snippetResult||!t._snippetResult[e]||!t._snippetResult[e].value)return t[e];var n=t._snippetResult[e].value;return n[0]!==n[0].toUpperCase()&&(n="…"+n),-1===[".","!","?"].indexOf(n[n.length-1])&&(n+="…"),n},deepClone:function(t){return JSON.parse(JSON.stringify(t))}};e.default=a}])},t.exports=r()},function(t,e,n){n(0),n(10)},function(t,e,n){var r,i,o;!function(s,a){a=a.bind(null,s,s.document),t.exports?a(n(0)):(i=[n(0)],void 0===(o="function"==typeof(r=a)?r.apply(e,i):r)||(t.exports=o))}(window,(function(t,e,n){"use strict";var r,i,o={};function s(t,n,r){if(!o[t]){var i=e.createElement(n?"link":"script"),s=e.getElementsByTagName("script")[0];n?(i.rel="stylesheet",i.href=t):(i.onload=function(){i.onerror=null,i.onload=null,r()},i.onerror=i.onload,i.src=t),o[t]=!0,o[i.src||i.href]=!0,s.parentNode.insertBefore(i,s)}}e.addEventListener&&(i=/\(|\)|\s|'/,r=function(t,n){var r=e.createElement("img");r.onload=function(){r.onload=null,r.onerror=null,r=null,n()},r.onerror=r.onload,r.src=t,r&&r.complete&&r.onload&&r.onload()},addEventListener("lazybeforeunveil",(function(t){var e,o,a;if(t.detail.instance==n&&!t.defaultPrevented){var u=t.target;if("none"==u.preload&&(u.preload=u.getAttribute("data-preload")||"auto"),null!=u.getAttribute("data-autoplay"))if(u.getAttribute("data-expand")&&!u.autoplay)try{u.play()}catch(t){}else requestAnimationFrame((function(){u.setAttribute("data-expand","-10"),n.aC(u,n.cfg.lazyClass)}));(e=u.getAttribute("data-link"))&&s(e,!0),(e=u.getAttribute("data-script"))&&(t.detail.firesLoad=!0,s(e,null,(function(){t.detail.firesLoad=!1,n.fire(u,"_lazyloaded",{},!0,!0)}))),(e=u.getAttribute("data-require"))&&(n.cfg.requireJs?n.cfg.requireJs([e]):s(e)),(o=u.getAttribute("data-bg"))&&(t.detail.firesLoad=!0,r(o,(function(){u.style.backgroundImage="url("+(i.test(o)?JSON.stringify(o):o)+")",t.detail.firesLoad=!1,n.fire(u,"_lazyloaded",{},!0,!0)}))),(a=u.getAttribute("data-poster"))&&(t.detail.firesLoad=!0,r(a,(function(){u.poster=a,t.detail.firesLoad=!1,n.fire(u,"_lazyloaded",{},!0,!0)})))}}),!1))}))},function(t,e){for(var n=document.getElementsByClassName("js-toggle"),r=0;r<n.length;r++)n[r].addEventListener("click",i,!1);function i(){for(var t=this.dataset.target.split(" "),e=document.querySelector(".mobilemenu:not(.dn)"),n=document.querySelector(".desktopmenu:not(.dn)"),r=document.querySelector(".desktopmenu:not(.dn)"),i=0;i<t.length;i++){var o=document.querySelectorAll(t[i]);[].forEach.call(o,(function(t){return t.classList.contains("dn")?t.classList.remove("dn"):t.classList.add("dn"),!1})),e&&e.classList.add("dn"),n&&n.classList.add("dn"),r&&r.classList.remove("db")}}},function(t,e,n){n(13)},function(t,e,n){!function(){"use strict";var t,e,n="data-scrolldir",r="down",i=document.documentElement,o=window,s=document.body,a=Array(32),u=0;function c(){var c=o.scrollY||o.pageYOffset,l=t.timeStamp,h="down"===r?Math.max:Math.min,f=s.scrollHeight-o.innerHeight;if(c=Math.max(0,c),c=Math.min(f,c),a.unshift({y:c,t:l}),a.pop(),c===h(e,c))return u=l,void(e=c);var d=l-512;if(u<d){e=c;for(var p=0;p<32&&a[p]&&!(a[p].t<d);p+=1)e=h(e,a[p].y)}Math.abs(c-e)>64&&(e=c,u=l,r="down"===r?"up":"down",i.setAttribute(n,r))}function l(e){return t=e,o.requestAnimationFrame(c)}e=o.scrollY||o.pageYOffset,i.setAttribute(n,r),o.addEventListener("scroll",l)}()},function(t,e){!function(){"use strict";if("querySelector"in document&&"addEventListener"in window&&Array.prototype.forEach){var t=document.querySelectorAll("#TableOfContents ul li a");[].forEach.call(t,(function(t){t.addEventListener("click",(function(e){e.preventDefault();var n=t.getAttribute("href"),r=document.querySelector(n),i=t.getAttribute("data-speed");r&&function(t,e){var n,r=window.pageYOffset,i=t.offsetTop,o=(i-r)/(e/16);n=o>=0?function(){var t=window.pageYOffset;(t>=i-o||window.innerHeight+t>=document.body.offsetHeight)&&clearInterval(s)}:function(){window.pageYOffset<=(i||0)&&clearInterval(s)};var s=setInterval((function(){window.scrollBy(0,o),n()}),16)}(r,i||500)}),!1)}))}}()},function(t,e){var n,r=document.querySelectorAll("[data-toggle-tab]"),i=document.querySelectorAll("[data-pane]");function o(t){if(t.target){t.preventDefault();var e=t.currentTarget.getAttribute("data-toggle-tab")}else e=t;window.localStorage&&window.localStorage.setItem("configLangPref",e);for(var n=document.querySelectorAll("[data-toggle-tab='"+e+"']"),o=document.querySelectorAll("[data-pane='"+e+"']"),s=0;s<r.length;s++)r[s].classList.remove("active"),i[s].classList.remove("active");for(s=0;s<n.length;s++)n[s].classList.add("active"),o[s].classList.add("active")}for(n=0;n<r.length;n++)r[n].addEventListener("click",o);window.localStorage.getItem("configLangPref")&&o(window.localStorage.getItem("configLangPref"))},function(t,e){document.documentElement.className=document.documentElement.className.replace(/\bno-js\b/,"js")}]);
\ No newline at end of file + */var r;r=function(){"use strict";function t(t){return"function"==typeof t}var r=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},i=0,o=void 0,s=void 0,a=function(t,e){p[i]=t,p[i+1]=e,2===(i+=2)&&(s?s(g):w())},u="undefined"!=typeof window?window:void 0,c=u||{},l=c.MutationObserver||c.WebKitMutationObserver,h="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),f="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel;function d(){var t=setTimeout;return function(){return t(g,1)}}var p=new Array(1e3);function g(){for(var t=0;t<i;t+=2)(0,p[t])(p[t+1]),p[t]=void 0,p[t+1]=void 0;i=0}var m,y,v,b,w=void 0;function _(t,e){var n=this,r=new this.constructor(C);void 0===r[S]&&D(r);var i=n._state;if(i){var o=arguments[i-1];a((function(){return R(i,r,o,n._result)}))}else I(n,r,t,e);return r}function x(t){if(t&&"object"==typeof t&&t.constructor===this)return t;var e=new this(C);return k(e,t),e}h?w=function(){return e.nextTick(g)}:l?(y=0,v=new l(g),b=document.createTextNode(""),v.observe(b,{characterData:!0}),w=function(){b.data=y=++y%2}):f?((m=new MessageChannel).port1.onmessage=g,w=function(){return m.port2.postMessage(0)}):w=void 0===u?function(){try{var t=Function("return this")().require("vertx");return void 0!==(o=t.runOnLoop||t.runOnContext)?function(){o(g)}:d()}catch(t){return d()}}():d();var S=Math.random().toString(36).substring(2);function C(){}var A={error:null};function E(t){try{return t.then}catch(t){return A.error=t,A}}function T(e,n,r){n.constructor===e.constructor&&r===_&&n.constructor.resolve===x?function(t,e){1===e._state?N(t,e._result):2===e._state?j(t,e._result):I(e,void 0,(function(e){return k(t,e)}),(function(e){return j(t,e)}))}(e,n):r===A?(j(e,A.error),A.error=null):void 0===r?N(e,n):t(r)?function(t,e,n){a((function(t){var r=!1,i=function(t,e,n,r){try{t.call(e,n,r)}catch(t){return t}}(n,e,(function(n){r||(r=!0,e!==n?k(t,n):N(t,n))}),(function(e){r||(r=!0,j(t,e))}),t._label);!r&&i&&(r=!0,j(t,i))}),t)}(e,n,r):N(e,n)}function k(t,e){var n,r;t===e?j(t,new TypeError("You cannot resolve a promise with itself")):(r=typeof(n=e),null===n||"object"!==r&&"function"!==r?N(t,e):T(t,e,E(e)))}function O(t){t._onerror&&t._onerror(t._result),L(t)}function N(t,e){void 0===t._state&&(t._result=e,t._state=1,0!==t._subscribers.length&&a(L,t))}function j(t,e){void 0===t._state&&(t._state=2,t._result=e,a(O,t))}function I(t,e,n,r){var i=t._subscribers,o=i.length;t._onerror=null,i[o]=e,i[o+1]=n,i[o+2]=r,0===o&&t._state&&a(L,t)}function L(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,i=void 0,o=t._result,s=0;s<e.length;s+=3)r=e[s],i=e[s+n],r?R(n,r,i,o):i(o);t._subscribers.length=0}}function R(e,n,r,i){var o=t(r),s=void 0,a=void 0,u=void 0,c=void 0;if(o){if((s=function(t,e){try{return t(e)}catch(t){return A.error=t,A}}(r,i))===A?(c=!0,a=s.error,s.error=null):u=!0,n===s)return void j(n,new TypeError("A promises callback cannot return that same promise."))}else s=i,u=!0;void 0!==n._state||(o&&u?k(n,s):c?j(n,a):1===e?N(n,s):2===e&&j(n,s))}var P=0;function D(t){t[S]=P++,t._state=void 0,t._result=void 0,t._subscribers=[]}var q=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(C),this.promise[S]||D(this.promise),r(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?N(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&N(this.promise,this._result))):j(this.promise,new Error("Array Methods must be provided an Array"))}return t.prototype._enumerate=function(t){for(var e=0;void 0===this._state&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===x){var i=E(t);if(i===_&&void 0!==t._state)this._settledAt(t._state,e,t._result);else if("function"!=typeof i)this._remaining--,this._result[e]=t;else if(n===$){var o=new n(C);T(o,t,i),this._willSettleAt(o,e)}else this._willSettleAt(new n((function(e){return e(t)})),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;void 0===r._state&&(this._remaining--,2===t?j(r,n):this._result[e]=n),0===this._remaining&&N(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;I(t,void 0,(function(t){return n._settledAt(1,e,t)}),(function(t){return n._settledAt(2,e,t)}))},t}(),$=function(){function t(e){this[S]=P++,this._result=this._state=void 0,this._subscribers=[],C!==e&&("function"!=typeof e&&function(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}(),this instanceof t?function(t,e){try{e((function(e){k(t,e)}),(function(e){j(t,e)}))}catch(e){j(t,e)}}(this,e):function(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}())}return t.prototype.catch=function(t){return this.then(null,t)},t.prototype.finally=function(t){var e=this.constructor;return this.then((function(n){return e.resolve(t()).then((function(){return n}))}),(function(n){return e.resolve(t()).then((function(){throw n}))}))},t}();return $.prototype.then=_,$.all=function(t){return new q(this,t).promise},$.race=function(t){var e=this;return r(t)?new e((function(n,r){for(var i=t.length,o=0;o<i;o++)e.resolve(t[o]).then(n,r)})):new e((function(t,e){return e(new TypeError("You must pass an array to race."))}))},$.resolve=x,$.reject=function(t){var e=new this(C);return j(e,t),e},$._setScheduler=function(t){s=t},$._setAsap=function(t){a=t},$._asap=a,$.polyfill=function(){var t=void 0;if(void 0!==n)t=n;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var r=null;try{r=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===r&&!e.cast)return}t.Promise=$},$.Promise=$,$},t.exports=r()}).call(e,n(9),n(4))},function(t,e,n){"use strict";t.exports=function(t,e){return/\?/.test(t)?t+="&":t+="?",t+r(e)};var r=n(45)},function(t,e,n){"use strict";var r=function(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}};t.exports=function(t,e,n,a){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?o(s(t),(function(s){var a=encodeURIComponent(r(s))+n;return i(t[s])?o(t[s],(function(t){return a+encodeURIComponent(r(t))})).join(e):a+encodeURIComponent(r(t[s]))})).join(e):a?encodeURIComponent(r(a))+n+encodeURIComponent(r(t)):""};var i=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function o(t,e){if(t.map)return t.map(e);for(var n=[],r=0;r<t.length;r++)n.push(e(t[r],r));return n}var s=Object.keys||function(t){var e=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.push(n);return e}},function(t,e,n){"use strict";t.exports=function(t,e,n){if("GET"===e.method){e.debug("JSONP: start");var o=!1,s=!1;i+=1;var a=document.getElementsByTagName("head")[0],u=document.createElement("script"),c="algoliaJSONP_"+i,l=!1;window[c]=function(t){!function(){try{delete window[c],delete window[c+"_loaded"]}catch(t){window[c]=window[c+"_loaded"]=void 0}}(),s?e.debug("JSONP: Late answer, ignoring"):(o=!0,d(),n(null,{body:t,responseText:JSON.stringify(t)}))},t+="&callback="+c,e.jsonBody&&e.jsonBody.params&&(t+="&"+e.jsonBody.params);var h=setTimeout((function(){e.debug("JSONP: Script timeout"),s=!0,d(),n(new r.RequestTimeout)}),e.timeouts.complete);u.onreadystatechange=function(){"loaded"!==this.readyState&&"complete"!==this.readyState||f()},u.onload=f,u.onerror=function(){e.debug("JSONP: Script error"),l||s||(d(),n(new r.JSONPScriptError))},u.async=!0,u.defer=!0,u.src=t,a.appendChild(u)}else n(new Error("Method "+e.method+" "+t+" is not supported by JSONP."));function f(){e.debug("JSONP: success"),l||s||(l=!0,o||(e.debug("JSONP: Fail. Script loaded but did not call the callback"),d(),n(new r.JSONPScriptFail)))}function d(){clearTimeout(h),u.onload=null,u.onreadystatechange=null,u.onerror=null,a.removeChild(u)}};var r=n(5),i=0},function(t,e,n){t.exports=function(t){return function(e,i,o){var s=n(3);(o=o&&s(o)||{}).hosts=o.hosts||["places-dsn.algolia.net","places-1.algolianet.com","places-2.algolianet.com","places-3.algolianet.com"],0!==arguments.length&&"object"!=typeof e&&void 0!==e||(e="",i="",o._allowEmptyCredentials=!0);var a=t(e,i,o),u=a.initIndex("places");return u.search=r("query","/1/places/query"),u.getObject=function(t,e){return this.as._jsonRequest({method:"GET",url:"/1/places/"+encodeURIComponent(t),hostType:"read",callback:e})},u}};var r=n(13)},function(t,e,n){"use strict";t.exports="3.30.0"},function(t,e,n){"use strict";t.exports=n(50)},function(t,e,n){"use strict";var r=n(15);n(1).element=r;var i=n(0);i.isArray=r.isArray,i.isFunction=r.isFunction,i.isObject=r.isPlainObject,i.bind=r.proxy,i.each=function(t,e){r.each(t,(function(t,n){return e(n,t)}))},i.map=r.map,i.mixin=r.extend,i.Event=r.Event;var o=n(51),s=n(16);function a(t,e,n,a){n=i.isArray(n)?n:[].slice.call(arguments,2);var u=r(t).each((function(t,i){var u=r(i),c=new s({el:u}),l=a||new o({input:u,eventBus:c,dropdownMenuContainer:e.dropdownMenuContainer,hint:void 0===e.hint||!!e.hint,minLength:e.minLength,autoselect:e.autoselect,autoselectOnBlur:e.autoselectOnBlur,tabAutocomplete:e.tabAutocomplete,openOnFocus:e.openOnFocus,templates:e.templates,debug:e.debug,clearOnSelected:e.clearOnSelected,cssClasses:e.cssClasses,datasets:n,keyboardShortcuts:e.keyboardShortcuts,appendTo:e.appendTo,autoWidth:e.autoWidth});u.data("aaAutocomplete",l)}));return u.autocomplete={},i.each(["open","close","getVal","setVal","destroy","getWrapper"],(function(t){u.autocomplete[t]=function(){var e,n=arguments;return u.each((function(i,o){var s=r(o).data("aaAutocomplete");e=s[t].apply(s,n)})),e}})),u}a.sources=o.sources,a.escapeHighlightedString=i.escapeHighlightedString;var u="autocomplete"in window,c=window.autocomplete;a.noConflict=function(){return u?window.autocomplete=c:delete window.autocomplete,a},t.exports=a},function(t,e,n){"use strict";var r=n(0),i=n(1),o=n(16),s=n(52),a=n(59),u=n(17),c=n(11);function l(t){var e,n;if((t=t||{}).input||r.error("missing input"),this.isActivated=!1,this.debug=!!t.debug,this.autoselect=!!t.autoselect,this.autoselectOnBlur=!!t.autoselectOnBlur,this.openOnFocus=!!t.openOnFocus,this.minLength=r.isNumber(t.minLength)?t.minLength:1,this.autoWidth=void 0===t.autoWidth||!!t.autoWidth,this.clearOnSelected=!!t.clearOnSelected,this.tabAutocomplete=void 0===t.tabAutocomplete||!!t.tabAutocomplete,t.hint=!!t.hint,t.hint&&t.appendTo)throw new Error("[autocomplete.js] hint and appendTo options can't be used at the same time");this.css=t.css=r.mixin({},c,t.appendTo?c.appendTo:{}),this.cssClasses=t.cssClasses=r.mixin({},c.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix=r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),this.listboxId=t.listboxId=[this.cssClasses.root,"listbox",r.getUniqueId()].join("-");var s=function(t){var e,n,o,s;e=i.element(t.input),n=i.element(u.wrapper.replace("%ROOT%",t.cssClasses.root)).css(t.css.wrapper),t.appendTo||"block"!==e.css("display")||"table"!==e.parent().css("display")||n.css("display","table-cell");var a,c=u.dropdown.replace("%PREFIX%",t.cssClasses.prefix).replace("%DROPDOWN_MENU%",t.cssClasses.dropdownMenu);o=i.element(c).css(t.css.dropdown).attr({role:"listbox",id:t.listboxId}),t.templates&&t.templates.dropdownMenu&&o.html(r.templatify(t.templates.dropdownMenu)()),(s=e.clone().css(t.css.hint).css((a=e,{backgroundAttachment:a.css("background-attachment"),backgroundClip:a.css("background-clip"),backgroundColor:a.css("background-color"),backgroundImage:a.css("background-image"),backgroundOrigin:a.css("background-origin"),backgroundPosition:a.css("background-position"),backgroundRepeat:a.css("background-repeat"),backgroundSize:a.css("background-size")}))).val("").addClass(r.className(t.cssClasses.prefix,t.cssClasses.hint,!0)).removeAttr("id name placeholder required").prop("readonly",!0).attr({"aria-hidden":"true",autocomplete:"off",spellcheck:"false",tabindex:-1}),s.removeData&&s.removeData(),e.data("aaAttrs",{"aria-autocomplete":e.attr("aria-autocomplete"),"aria-expanded":e.attr("aria-expanded"),"aria-owns":e.attr("aria-owns"),autocomplete:e.attr("autocomplete"),dir:e.attr("dir"),role:e.attr("role"),spellcheck:e.attr("spellcheck"),style:e.attr("style"),type:e.attr("type")}),e.addClass(r.className(t.cssClasses.prefix,t.cssClasses.input,!0)).attr({autocomplete:"off",spellcheck:!1,role:"combobox","aria-autocomplete":t.datasets&&t.datasets[0]&&t.datasets[0].displayKey?"both":"list","aria-expanded":"false","aria-label":t.ariaLabel,"aria-owns":t.listboxId}).css(t.hint?t.css.input:t.css.inputWithNoHint);try{e.attr("dir")||e.attr("dir","auto")}catch(t){}return(n=t.appendTo?n.appendTo(i.element(t.appendTo).eq(0)).eq(0):e.wrap(n).parent()).prepend(t.hint?s:null).append(o),{wrapper:n,input:e,hint:s,menu:o}}(t);this.$node=s.wrapper;var a=this.$input=s.input;e=s.menu,n=s.hint,t.dropdownMenuContainer&&i.element(t.dropdownMenuContainer).css("position","relative").append(e.css("top","0")),a.on("blur.aa",(function(t){var n=document.activeElement;r.isMsie()&&(e[0]===n||e[0].contains(n))&&(t.preventDefault(),t.stopImmediatePropagation(),r.defer((function(){a.focus()})))})),e.on("mousedown.aa",(function(t){t.preventDefault()})),this.eventBus=t.eventBus||new o({el:a}),this.dropdown=new l.Dropdown({appendTo:t.appendTo,wrapper:this.$node,menu:e,datasets:t.datasets,templates:t.templates,cssClasses:t.cssClasses,minLength:this.minLength}).onSync("suggestionClicked",this._onSuggestionClicked,this).onSync("cursorMoved",this._onCursorMoved,this).onSync("cursorRemoved",this._onCursorRemoved,this).onSync("opened",this._onOpened,this).onSync("closed",this._onClosed,this).onSync("shown",this._onShown,this).onSync("empty",this._onEmpty,this).onSync("redrawn",this._onRedrawn,this).onAsync("datasetRendered",this._onDatasetRendered,this),this.input=new l.Input({input:a,hint:n}).onSync("focused",this._onFocused,this).onSync("blurred",this._onBlurred,this).onSync("enterKeyed",this._onEnterKeyed,this).onSync("tabKeyed",this._onTabKeyed,this).onSync("escKeyed",this._onEscKeyed,this).onSync("upKeyed",this._onUpKeyed,this).onSync("downKeyed",this._onDownKeyed,this).onSync("leftKeyed",this._onLeftKeyed,this).onSync("rightKeyed",this._onRightKeyed,this).onSync("queryChanged",this._onQueryChanged,this).onSync("whitespaceChanged",this._onWhitespaceChanged,this),this._bindKeyboardShortcuts(t),this._setLanguageDirection()}r.mixin(l.prototype,{_bindKeyboardShortcuts:function(t){if(t.keyboardShortcuts){var e=this.$input,n=[];r.each(t.keyboardShortcuts,(function(t){"string"==typeof t&&(t=t.toUpperCase().charCodeAt(0)),n.push(t)})),i.element(document).keydown((function(t){var r=t.target||t.srcElement,i=r.tagName;if(!r.isContentEditable&&"INPUT"!==i&&"SELECT"!==i&&"TEXTAREA"!==i){var o=t.which||t.keyCode;-1!==n.indexOf(o)&&(e.focus(),t.stopPropagation(),t.preventDefault())}}))}},_onSuggestionClicked:function(t,e){var n;(n=this.dropdown.getDatumForSuggestion(e))&&this._select(n)},_onCursorMoved:function(t,e){var n=this.dropdown.getDatumForCursor(),r=this.dropdown.getCurrentCursor().attr("id");this.input.setActiveDescendant(r),n&&(e&&this.input.setInputValue(n.value,!0),this.eventBus.trigger("cursorchanged",n.raw,n.datasetName))},_onCursorRemoved:function(){this.input.resetInputValue(),this._updateHint(),this.eventBus.trigger("cursorremoved")},_onDatasetRendered:function(){this._updateHint(),this.eventBus.trigger("updated")},_onOpened:function(){this._updateHint(),this.input.expand(),this.eventBus.trigger("opened")},_onEmpty:function(){this.eventBus.trigger("empty")},_onRedrawn:function(){this.$node.css("top","0px"),this.$node.css("left","0px");var t=this.$input[0].getBoundingClientRect();this.autoWidth&&this.$node.css("width",t.width+"px");var e=this.$node[0].getBoundingClientRect(),n=t.bottom-e.top;this.$node.css("top",n+"px");var r=t.left-e.left;this.$node.css("left",r+"px"),this.eventBus.trigger("redrawn")},_onShown:function(){this.eventBus.trigger("shown"),this.autoselect&&this.dropdown.cursorTopSuggestion()},_onClosed:function(){this.input.clearHint(),this.input.removeActiveDescendant(),this.input.collapse(),this.eventBus.trigger("closed")},_onFocused:function(){if(this.isActivated=!0,this.openOnFocus){var t=this.input.getQuery();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty(),this.dropdown.open()}},_onBlurred:function(){var t,e;t=this.dropdown.getDatumForCursor(),e=this.dropdown.getDatumForTopSuggestion(),this.debug||(this.autoselectOnBlur&&t?this._select(t):this.autoselectOnBlur&&e?this._select(e):(this.isActivated=!1,this.dropdown.empty(),this.dropdown.close()))},_onEnterKeyed:function(t,e){var n,r;n=this.dropdown.getDatumForCursor(),r=this.dropdown.getDatumForTopSuggestion(),n?(this._select(n),e.preventDefault()):this.autoselect&&r&&(this._select(r),e.preventDefault())},_onTabKeyed:function(t,e){var n;this.tabAutocomplete?(n=this.dropdown.getDatumForCursor())?(this._select(n),e.preventDefault()):this._autocomplete(!0):this.dropdown.close()},_onEscKeyed:function(){this.dropdown.close(),this.input.resetInputValue()},_onUpKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorUp(),this.dropdown.open()},_onDownKeyed:function(){var t=this.input.getQuery();this.dropdown.isEmpty&&t.length>=this.minLength?this.dropdown.update(t):this.dropdown.moveCursorDown(),this.dropdown.open()},_onLeftKeyed:function(){"rtl"===this.dir&&this._autocomplete()},_onRightKeyed:function(){"ltr"===this.dir&&this._autocomplete()},_onQueryChanged:function(t,e){this.input.clearHintIfInvalid(),e.length>=this.minLength?this.dropdown.update(e):this.dropdown.empty(),this.dropdown.open(),this._setLanguageDirection()},_onWhitespaceChanged:function(){this._updateHint(),this.dropdown.open()},_setLanguageDirection:function(){var t=this.input.getLanguageDirection();this.dir!==t&&(this.dir=t,this.$node.css("direction",t),this.dropdown.setLanguageDirection(t))},_updateHint:function(){var t,e,n,i,o;(t=this.dropdown.getDatumForTopSuggestion())&&this.dropdown.isVisible()&&!this.input.hasOverflow()?(e=this.input.getInputValue(),n=s.normalizeQuery(e),i=r.escapeRegExChars(n),(o=new RegExp("^(?:"+i+")(.+$)","i").exec(t.value))?this.input.setHint(e+o[1]):this.input.clearHint()):this.input.clearHint()},_autocomplete:function(t){var e,n,r,i;e=this.input.getHint(),n=this.input.getQuery(),r=t||this.input.isCursorAtEnd(),e&&n!==e&&r&&((i=this.dropdown.getDatumForTopSuggestion())&&this.input.setInputValue(i.value),this.eventBus.trigger("autocompleted",i.raw,i.datasetName))},_select:function(t){void 0!==t.value&&this.input.setQuery(t.value),this.clearOnSelected?this.setVal(""):this.input.setInputValue(t.value,!0),this._setLanguageDirection(),!1===this.eventBus.trigger("selected",t.raw,t.datasetName).isDefaultPrevented()&&(this.dropdown.close(),r.defer(r.bind(this.dropdown.empty,this.dropdown)))},open:function(){if(!this.isActivated){var t=this.input.getInputValue();t.length>=this.minLength?this.dropdown.update(t):this.dropdown.empty()}this.dropdown.open()},close:function(){this.dropdown.close()},setVal:function(t){t=r.toStr(t),this.isActivated?this.input.setInputValue(t):(this.input.setQuery(t),this.input.setInputValue(t,!0)),this._setLanguageDirection()},getVal:function(){return this.input.getQuery()},destroy:function(){var t,e,n;this.input.destroy(),this.dropdown.destroy(),t=this.$node,e=this.cssClasses,n=t.find(r.className(e.prefix,e.input)),r.each(n.data("aaAttrs"),(function(t,e){void 0===t?n.removeAttr(e):n.attr(e,t)})),n.detach().removeClass(r.className(e.prefix,e.input,!0)).insertAfter(t),n.removeData&&n.removeData("aaAttrs"),t.remove(),this.$node=null},getWrapper:function(){return this.dropdown.$container[0]}}),l.Dropdown=a,l.Input=s,l.sources=n(61),t.exports=l},function(t,e,n){"use strict";var r;r={9:"tab",27:"esc",37:"left",39:"right",13:"enter",38:"up",40:"down"};var i=n(0),o=n(1),s=n(10);function a(t){var e,n,s,a,u,c=this;(t=t||{}).input||i.error("input is missing"),e=i.bind(this._onBlur,this),n=i.bind(this._onFocus,this),s=i.bind(this._onKeydown,this),a=i.bind(this._onInput,this),this.$hint=o.element(t.hint),this.$input=o.element(t.input).on("blur.aa",e).on("focus.aa",n).on("keydown.aa",s),0===this.$hint.length&&(this.setHint=this.getHint=this.clearHint=this.clearHintIfInvalid=i.noop),i.isMsie()?this.$input.on("keydown.aa keypress.aa cut.aa paste.aa",(function(t){r[t.which||t.keyCode]||i.defer(i.bind(c._onInput,c,t))})):this.$input.on("input.aa",a),this.query=this.$input.val(),this.$overflowHelper=(u=this.$input,o.element('<pre aria-hidden="true"></pre>').css({position:"absolute",visibility:"hidden",whiteSpace:"pre",fontFamily:u.css("font-family"),fontSize:u.css("font-size"),fontStyle:u.css("font-style"),fontVariant:u.css("font-variant"),fontWeight:u.css("font-weight"),wordSpacing:u.css("word-spacing"),letterSpacing:u.css("letter-spacing"),textIndent:u.css("text-indent"),textRendering:u.css("text-rendering"),textTransform:u.css("text-transform")}).insertAfter(u))}function u(t){return t.altKey||t.ctrlKey||t.metaKey||t.shiftKey}a.normalizeQuery=function(t){return(t||"").replace(/^\s*/g,"").replace(/\s{2,}/g," ")},i.mixin(a.prototype,s,{_onBlur:function(){this.resetInputValue(),this.$input.removeAttr("aria-activedescendant"),this.trigger("blurred")},_onFocus:function(){this.trigger("focused")},_onKeydown:function(t){var e=r[t.which||t.keyCode];this._managePreventDefault(e,t),e&&this._shouldTrigger(e,t)&&this.trigger(e+"Keyed",t)},_onInput:function(){this._checkInputValue()},_managePreventDefault:function(t,e){var n,r,i;switch(t){case"tab":r=this.getHint(),i=this.getInputValue(),n=r&&r!==i&&!u(e);break;case"up":case"down":n=!u(e);break;default:n=!1}n&&e.preventDefault()},_shouldTrigger:function(t,e){var n;switch(t){case"tab":n=!u(e);break;default:n=!0}return n},_checkInputValue:function(){var t,e,n,r,i;t=this.getInputValue(),r=t,i=this.query,n=!(!(e=a.normalizeQuery(r)===a.normalizeQuery(i))||!this.query)&&this.query.length!==t.length,this.query=t,e?n&&this.trigger("whitespaceChanged",this.query):this.trigger("queryChanged",this.query)},focus:function(){this.$input.focus()},blur:function(){this.$input.blur()},getQuery:function(){return this.query},setQuery:function(t){this.query=t},getInputValue:function(){return this.$input.val()},setInputValue:function(t,e){void 0===t&&(t=this.query),this.$input.val(t),e?this.clearHint():this._checkInputValue()},expand:function(){this.$input.attr("aria-expanded","true")},collapse:function(){this.$input.attr("aria-expanded","false")},setActiveDescendant:function(t){this.$input.attr("aria-activedescendant",t)},removeActiveDescendant:function(){this.$input.removeAttr("aria-activedescendant")},resetInputValue:function(){this.setInputValue(this.query,!0)},getHint:function(){return this.$hint.val()},setHint:function(t){this.$hint.val(t)},clearHint:function(){this.setHint("")},clearHintIfInvalid:function(){var t,e,n;n=(t=this.getInputValue())!==(e=this.getHint())&&0===e.indexOf(t),""!==t&&n&&!this.hasOverflow()||this.clearHint()},getLanguageDirection:function(){return(this.$input.css("direction")||"ltr").toLowerCase()},hasOverflow:function(){var t=this.$input.width()-2;return this.$overflowHelper.text(this.getInputValue()),this.$overflowHelper.width()>=t},isCursorAtEnd:function(){var t,e,n;return t=this.$input.val().length,e=this.$input[0].selectionStart,i.isNumber(e)?e===t:!document.selection||((n=document.selection.createRange()).moveStart("character",-t),t===n.text.length)},destroy:function(){this.$hint.off(".aa"),this.$input.off(".aa"),this.$hint=this.$input=this.$overflowHelper=null}}),t.exports=a},function(t,e,n){"use strict";var r,i,o,s=[n(54),n(55),n(56),n(57),n(58)],a=-1,u=[],c=!1;function l(){r&&i&&(r=!1,i.length?u=i.concat(u):a=-1,u.length&&h())}function h(){if(!r){c=!1,r=!0;for(var t=u.length,e=setTimeout(l);t;){for(i=u,u=[];i&&++a<t;)i[a].run();a=-1,t=u.length}i=null,a=-1,r=!1,clearTimeout(e)}}for(var f=-1,d=s.length;++f<d;)if(s[f]&&s[f].test&&s[f].test()){o=s[f].install(h);break}function p(t,e){this.fun=t,this.array=e}p.prototype.run=function(){var t=this.fun,e=this.array;switch(e.length){case 0:return t();case 1:return t(e[0]);case 2:return t(e[0],e[1]);case 3:return t(e[0],e[1],e[2]);default:return t.apply(null,e)}},t.exports=function(t){var e=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)e[n-1]=arguments[n];u.push(new p(t,e)),c||r||(c=!0,o())}},function(t,e,n){"use strict";(function(t){e.test=function(){return void 0!==t&&!t.browser},e.install=function(e){return function(){t.nextTick(e)}}}).call(e,n(9))},function(t,e,n){"use strict";(function(t){var n=t.MutationObserver||t.WebKitMutationObserver;e.test=function(){return n},e.install=function(e){var r=0,i=new n(e),o=t.document.createTextNode("");return i.observe(o,{characterData:!0}),function(){o.data=r=++r%2}}}).call(e,n(4))},function(t,e,n){"use strict";(function(t){e.test=function(){return!t.setImmediate&&void 0!==t.MessageChannel},e.install=function(e){var n=new t.MessageChannel;return n.port1.onmessage=e,function(){n.port2.postMessage(0)}}}).call(e,n(4))},function(t,e,n){"use strict";(function(t){e.test=function(){return"document"in t&&"onreadystatechange"in t.document.createElement("script")},e.install=function(e){return function(){var n=t.document.createElement("script");return n.onreadystatechange=function(){e(),n.onreadystatechange=null,n.parentNode.removeChild(n),n=null},t.document.documentElement.appendChild(n),e}}}).call(e,n(4))},function(t,e,n){"use strict";e.test=function(){return!0},e.install=function(t){return function(){setTimeout(t,0)}}},function(t,e,n){"use strict";var r=n(0),i=n(1),o=n(10),s=n(60),a=n(11);function u(t){var e,n,o,s=this;(t=t||{}).menu||r.error("menu is required"),r.isArray(t.datasets)||r.isObject(t.datasets)||r.error("1 or more datasets required"),t.datasets||r.error("datasets is required"),this.isOpen=!1,this.isEmpty=!0,this.minLength=t.minLength||0,this.templates={},this.appendTo=t.appendTo||!1,this.css=r.mixin({},a,t.appendTo?a.appendTo:{}),this.cssClasses=t.cssClasses=r.mixin({},a.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix),e=r.bind(this._onSuggestionClick,this),n=r.bind(this._onSuggestionMouseEnter,this),o=r.bind(this._onSuggestionMouseLeave,this);var c=r.className(this.cssClasses.prefix,this.cssClasses.suggestion);this.$menu=i.element(t.menu).on("mouseenter.aa",c,n).on("mouseleave.aa",c,o).on("click.aa",c,e),this.$container=t.appendTo?t.wrapper:this.$menu,t.templates&&t.templates.header&&(this.templates.header=r.templatify(t.templates.header),this.$menu.prepend(this.templates.header())),t.templates&&t.templates.empty&&(this.templates.empty=r.templatify(t.templates.empty),this.$empty=i.element('<div class="'+r.className(this.cssClasses.prefix,this.cssClasses.empty,!0)+'"></div>'),this.$menu.append(this.$empty),this.$empty.hide()),this.datasets=r.map(t.datasets,(function(e){return function(t,e,n){return new u.Dataset(r.mixin({$menu:t,cssClasses:n},e))}(s.$menu,e,t.cssClasses)})),r.each(this.datasets,(function(t){var e=t.getRoot();e&&0===e.parent().length&&s.$menu.append(e),t.onSync("rendered",s._onRendered,s)})),t.templates&&t.templates.footer&&(this.templates.footer=r.templatify(t.templates.footer),this.$menu.append(this.templates.footer()));var l=this;i.element(window).resize((function(){l._redraw()}))}r.mixin(u.prototype,o,{_onSuggestionClick:function(t){this.trigger("suggestionClicked",i.element(t.currentTarget))},_onSuggestionMouseEnter:function(t){var e=i.element(t.currentTarget);if(!e.hasClass(r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0))){this._removeCursor();var n=this;setTimeout((function(){n._setCursor(e,!1)}),0)}},_onSuggestionMouseLeave:function(t){t.relatedTarget&&i.element(t.relatedTarget).closest("."+r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).length>0||(this._removeCursor(),this.trigger("cursorRemoved"))},_onRendered:function(t,e){if(this.isEmpty=r.every(this.datasets,(function(t){return t.isEmpty()})),this.isEmpty)if(e.length>=this.minLength&&this.trigger("empty"),this.$empty)if(e.length<this.minLength)this._hide();else{var n=this.templates.empty({query:this.datasets[0]&&this.datasets[0].query});this.$empty.html(n),this.$empty.show(),this._show()}else r.any(this.datasets,(function(t){return t.templates&&t.templates.empty}))?e.length<this.minLength?this._hide():this._show():this._hide();else this.isOpen&&(this.$empty&&(this.$empty.empty(),this.$empty.hide()),e.length>=this.minLength?this._show():this._hide());this.trigger("datasetRendered")},_hide:function(){this.$container.hide()},_show:function(){this.$container.css("display","block"),this._redraw(),this.trigger("shown")},_redraw:function(){this.isOpen&&this.appendTo&&this.trigger("redrawn")},_getSuggestions:function(){return this.$menu.find(r.className(this.cssClasses.prefix,this.cssClasses.suggestion))},_getCursor:function(){return this.$menu.find(r.className(this.cssClasses.prefix,this.cssClasses.cursor)).first()},_setCursor:function(t,e){t.first().addClass(r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).attr("aria-selected","true"),this.trigger("cursorMoved",e)},_removeCursor:function(){this._getCursor().removeClass(r.className(this.cssClasses.prefix,this.cssClasses.cursor,!0)).removeAttr("aria-selected")},_moveCursor:function(t){var e,n,r,i;this.isOpen&&(n=this._getCursor(),e=this._getSuggestions(),this._removeCursor(),-1!=(r=((r=e.index(n)+t)+1)%(e.length+1)-1)?(r<-1&&(r=e.length-1),this._setCursor(i=e.eq(r),!0),this._ensureVisible(i)):this.trigger("cursorRemoved"))},_ensureVisible:function(t){var e,n,r,i;n=(e=t.position().top)+t.height()+parseInt(t.css("margin-top"),10)+parseInt(t.css("margin-bottom"),10),r=this.$menu.scrollTop(),i=this.$menu.height()+parseInt(this.$menu.css("padding-top"),10)+parseInt(this.$menu.css("padding-bottom"),10),e<0?this.$menu.scrollTop(r+e):i<n&&this.$menu.scrollTop(r+(n-i))},close:function(){this.isOpen&&(this.isOpen=!1,this._removeCursor(),this._hide(),this.trigger("closed"))},open:function(){this.isOpen||(this.isOpen=!0,this.isEmpty||this._show(),this.trigger("opened"))},setLanguageDirection:function(t){this.$menu.css("ltr"===t?this.css.ltr:this.css.rtl)},moveCursorUp:function(){this._moveCursor(-1)},moveCursorDown:function(){this._moveCursor(1)},getDatumForSuggestion:function(t){var e=null;return t.length&&(e={raw:s.extractDatum(t),value:s.extractValue(t),datasetName:s.extractDatasetName(t)}),e},getCurrentCursor:function(){return this._getCursor().first()},getDatumForCursor:function(){return this.getDatumForSuggestion(this._getCursor().first())},getDatumForTopSuggestion:function(){return this.getDatumForSuggestion(this._getSuggestions().first())},cursorTopSuggestion:function(){this._setCursor(this._getSuggestions().first(),!1)},update:function(t){r.each(this.datasets,(function(e){e.update(t)}))},empty:function(){r.each(this.datasets,(function(t){t.clear()})),this.isEmpty=!0},isVisible:function(){return this.isOpen&&!this.isEmpty},destroy:function(){this.$menu.off(".aa"),this.$menu=null,r.each(this.datasets,(function(t){t.destroy()}))}}),u.Dataset=s,t.exports=u},function(t,e,n){"use strict";var r=n(0),i=n(1),o=n(17),s=n(11),a=n(10);function u(t){var e,n,a,u;(t=t||{}).templates=t.templates||{},t.source||r.error("missing source"),t.name&&(e=t.name,!/^[_a-zA-Z0-9-]+$/.test(e))&&r.error("invalid dataset name: "+t.name),this.query=null,this._isEmpty=!0,this.highlight=!!t.highlight,this.name=void 0===t.name||null===t.name?r.getUniqueId():t.name,this.source=t.source,this.displayFn=(n=(n=t.display||t.displayKey)||"value",r.isFunction(n)?n:function(t){return t[n]}),this.debounce=t.debounce,this.cache=!1!==t.cache,this.templates=(a=t.templates,u=this.displayFn,{empty:a.empty&&r.templatify(a.empty),header:a.header&&r.templatify(a.header),footer:a.footer&&r.templatify(a.footer),suggestion:a.suggestion||function(t){return"<p>"+u(t)+"</p>"}}),this.css=r.mixin({},s,t.appendTo?s.appendTo:{}),this.cssClasses=t.cssClasses=r.mixin({},s.defaultClasses,t.cssClasses||{}),this.cssClasses.prefix=t.cssClasses.formattedPrefix||r.formatPrefix(this.cssClasses.prefix,this.cssClasses.noPrefix);var c=r.className(this.cssClasses.prefix,this.cssClasses.dataset);this.$el=t.$menu&&t.$menu.find(c+"-"+this.name).length>0?i.element(t.$menu.find(c+"-"+this.name)[0]):i.element(o.dataset.replace("%CLASS%",this.name).replace("%PREFIX%",this.cssClasses.prefix).replace("%DATASET%",this.cssClasses.dataset)),this.$menu=t.$menu,this.clearCachedSuggestions()}u.extractDatasetName=function(t){return i.element(t).data("aaDataset")},u.extractValue=function(t){return i.element(t).data("aaValue")},u.extractDatum=function(t){var e=i.element(t).data("aaDatum");return"string"==typeof e&&(e=JSON.parse(e)),e},r.mixin(u.prototype,a,{_render:function(t,e){if(this.$el){var n,s=this,a=[].slice.call(arguments,2);if(this.$el.empty(),n=e&&e.length,this._isEmpty=!n,!n&&this.templates.empty)this.$el.html(u.apply(this,a)).prepend(s.templates.header?l.apply(this,a):null).append(s.templates.footer?h.apply(this,a):null);else if(n)this.$el.html(c.apply(this,a)).prepend(s.templates.header?l.apply(this,a):null).append(s.templates.footer?h.apply(this,a):null);else if(e&&!Array.isArray(e))throw new TypeError("suggestions must be an array");this.$menu&&this.$menu.addClass(this.cssClasses.prefix+(n?"with":"without")+"-"+this.name).removeClass(this.cssClasses.prefix+(n?"without":"with")+"-"+this.name),this.trigger("rendered",t)}function u(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!0}].concat(e),s.templates.empty.apply(this,e)}function c(){var t,n,a=[].slice.call(arguments,0),u=this,c=o.suggestions.replace("%PREFIX%",this.cssClasses.prefix).replace("%SUGGESTIONS%",this.cssClasses.suggestions);return t=i.element(c).css(this.css.suggestions),n=r.map(e,l),t.append.apply(t,n),t;function l(t){var e,n=o.suggestion.replace("%PREFIX%",u.cssClasses.prefix).replace("%SUGGESTION%",u.cssClasses.suggestion);return(e=i.element(n).attr({role:"option",id:["option",Math.floor(1e8*Math.random())].join("-")}).append(s.templates.suggestion.apply(this,[t].concat(a)))).data("aaDataset",s.name),e.data("aaValue",s.displayFn(t)||void 0),e.data("aaDatum",JSON.stringify(t)),e.children().each((function(){i.element(this).css(u.css.suggestionChild)})),e}}function l(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),s.templates.header.apply(this,e)}function h(){var e=[].slice.call(arguments,0);return e=[{query:t,isEmpty:!n}].concat(e),s.templates.footer.apply(this,e)}},getRoot:function(){return this.$el},update:function(t){function e(e){if(!this.canceled&&t===this.query){var n=[].slice.call(arguments,1);this.cacheSuggestions(t,e,n),this._render.apply(this,[t,e].concat(n))}}if(this.query=t,this.canceled=!1,this.shouldFetchFromCache(t))e.apply(this,[this.cachedSuggestions].concat(this.cachedRenderExtraArgs));else{var n=this,r=function(){n.canceled||n.source(t,e.bind(n))};this.debounce?(clearTimeout(this.debounceTimeout),this.debounceTimeout=setTimeout((function(){n.debounceTimeout=null,r()}),this.debounce)):r()}},cacheSuggestions:function(t,e,n){this.cachedQuery=t,this.cachedSuggestions=e,this.cachedRenderExtraArgs=n},shouldFetchFromCache:function(t){return this.cache&&this.cachedQuery===t&&this.cachedSuggestions&&this.cachedSuggestions.length},clearCachedSuggestions:function(){delete this.cachedQuery,delete this.cachedSuggestions,delete this.cachedRenderExtraArgs},cancel:function(){this.canceled=!0},clear:function(){this.cancel(),this.$el.empty(),this.trigger("rendered","")},isEmpty:function(){return this._isEmpty},destroy:function(){this.clearCachedSuggestions(),this.$el=null}}),t.exports=u},function(t,e,n){"use strict";t.exports={hits:n(62),popularIn:n(63)}},function(t,e,n){"use strict";var r=n(0),i=n(18),o=n(19);t.exports=function(t,e){var n=o(t.as._ua);return n&&n[0]>=3&&n[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+i),function(n,i){t.search(n,e,(function(t,e){t?r.error(t.message):i(e.hits,e)}))}}},function(t,e,n){"use strict";var r=n(0),i=n(18),o=n(19);t.exports=function(t,e,n,s){var a=o(t.as._ua);if(a&&a[0]>=3&&a[1]>20&&((e=e||{}).additionalUA="autocomplete.js "+i),!n.source)return r.error("Missing 'source' key");var u=r.isFunction(n.source)?n.source:function(t){return t[n.source]};if(!n.index)return r.error("Missing 'index' key");var c=n.index;return s=s||{},function(a,l){t.search(a,e,(function(t,a){if(t)r.error(t.message);else{if(a.hits.length>0){var h=a.hits[0],f=r.mixin({hitsPerPage:0},n);delete f.source,delete f.index;var d=o(c.as._ua);return d&&d[0]>=3&&d[1]>20&&(e.additionalUA="autocomplete.js "+i),void c.search(u(h),f,(function(t,e){if(t)r.error(t.message);else{var n=[];if(s.includeAll){var i=s.allTitle||"All departments";n.push(r.mixin({facet:{value:i,count:e.nbHits}},r.cloneDeep(h)))}r.each(e.facets,(function(t,e){r.each(t,(function(t,i){n.push(r.mixin({facet:{facet:e,value:i,count:t}},r.cloneDeep(h)))}))}));for(var o=1;o<a.hits.length;++o)n.push(a.hits[o]);l(n,a)}}))}l([])}}))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="algolia-docsearch-suggestion",i={suggestion:'\n <a class="'+r+"\n {{#isCategoryHeader}}"+r+"__main{{/isCategoryHeader}}\n {{#isSubCategoryHeader}}"+r+'__secondary{{/isSubCategoryHeader}}\n "\n aria-label="Link to the result"\n href="{{{url}}}"\n >\n <div class="'+r+'--category-header">\n <span class="'+r+'--category-header-lvl0">{{{category}}}</span>\n </div>\n <div class="'+r+'--wrapper">\n <div class="'+r+'--subcategory-column">\n <span class="'+r+'--subcategory-column-text">{{{subcategory}}}</span>\n </div>\n {{#isTextOrSubcategoryNonEmpty}}\n <div class="'+r+'--content">\n <div class="'+r+'--subcategory-inline">{{{subcategory}}}</div>\n <div class="'+r+'--title">{{{title}}}</div>\n {{#text}}<div class="'+r+'--text">{{{text}}}</div>{{/text}}\n </div>\n {{/isTextOrSubcategoryNonEmpty}}\n </div>\n </a>\n ',suggestionSimple:'\n <div class="'+r+"\n {{#isCategoryHeader}}"+r+"__main{{/isCategoryHeader}}\n {{#isSubCategoryHeader}}"+r+'__secondary{{/isSubCategoryHeader}}\n suggestion-layout-simple\n ">\n <div class="'+r+'--category-header">\n {{^isLvl0}}\n <span class="'+r+"--category-header-lvl0 "+r+'--category-header-item">{{{category}}}</span>\n {{^isLvl1}}\n {{^isLvl1EmptyOrDuplicate}}\n <span class="'+r+"--category-header-lvl1 "+r+'--category-header-item">\n {{{subcategory}}}\n </span>\n {{/isLvl1EmptyOrDuplicate}}\n {{/isLvl1}}\n {{/isLvl0}}\n <div class="'+r+"--title "+r+'--category-header-item">\n {{#isLvl2}}\n {{{title}}}\n {{/isLvl2}}\n {{#isLvl1}}\n {{{subcategory}}}\n {{/isLvl1}}\n {{#isLvl0}}\n {{{category}}}\n {{/isLvl0}}\n </div>\n </div>\n <div class="'+r+'--wrapper">\n {{#text}}\n <div class="'+r+'--content">\n <div class="'+r+'--text">{{{text}}}</div>\n </div>\n {{/text}}\n </div>\n </div>\n ',footer:'\n <div class="algolia-docsearch-footer">\n Search by <a class="algolia-docsearch-footer--logo" href="https://www.algolia.com/docsearch">Algolia</a>\n </div>\n ',empty:'\n <div class="'+r+'">\n <div class="'+r+'--wrapper">\n <div class="'+r+"--content "+r+'--no-results">\n <div class="'+r+'--title">\n <div class="'+r+'--text">\n No results found for query <b>"{{query}}"</b>\n </div>\n </div>\n </div>\n </div>\n </div>\n ',searchBox:'\n <form novalidate="novalidate" onsubmit="return false;" class="searchbox">\n <div role="search" class="searchbox__wrapper">\n <input id="docsearch" type="search" name="search" placeholder="Search the docs" autocomplete="off" required="required" class="searchbox__input"/>\n <button type="submit" title="Submit your search query." class="searchbox__submit" >\n <svg width=12 height=12 role="img" aria-label="Search">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-search-13"></use>\n </svg>\n </button>\n <button type="reset" title="Clear the search query." class="searchbox__reset hide">\n <svg width=12 height=12 role="img" aria-label="Reset">\n <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#sbx-icon-clear-3"></use>\n </svg>\n </button>\n </div>\n</form>\n\n<div class="svg-icons" style="height: 0; width: 0; position: absolute; visibility: hidden">\n <svg xmlns="http://www.w3.org/2000/svg">\n <symbol id="sbx-icon-clear-3" viewBox="0 0 40 40"><path d="M16.228 20L1.886 5.657 0 3.772 3.772 0l1.885 1.886L20 16.228 34.343 1.886 36.228 0 40 3.772l-1.886 1.885L23.772 20l14.342 14.343L40 36.228 36.228 40l-1.885-1.886L20 23.772 5.657 38.114 3.772 40 0 36.228l1.886-1.885L16.228 20z" fill-rule="evenodd"></symbol>\n <symbol id="sbx-icon-search-13" viewBox="0 0 40 40"><path d="M26.806 29.012a16.312 16.312 0 0 1-10.427 3.746C7.332 32.758 0 25.425 0 16.378 0 7.334 7.333 0 16.38 0c9.045 0 16.378 7.333 16.378 16.38 0 3.96-1.406 7.593-3.746 10.426L39.547 37.34c.607.608.61 1.59-.004 2.203a1.56 1.56 0 0 1-2.202.004L26.807 29.012zm-10.427.627c7.322 0 13.26-5.938 13.26-13.26 0-7.324-5.938-13.26-13.26-13.26-7.324 0-13.26 5.936-13.26 13.26 0 7.322 5.936 13.26 13.26 13.26z" fill-rule="evenodd"></symbol>\n </svg>\n</div>\n '};e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o=n(20),s=(r=o)&&r.__esModule?r:{default:r},a={mergeKeyWithParent:function(t,e){if(void 0===t[e])return t;if("object"!==i(t[e]))return t;var n=s.default.extend({},t,t[e]);return delete n[e],n},groupBy:function(t,e){var n={};return s.default.each(t,(function(t,r){if(void 0===r[e])throw new Error("[groupBy]: Object has no key "+e);var i=r[e];"string"==typeof i&&(i=i.toLowerCase()),Object.prototype.hasOwnProperty.call(n,i)||(n[i]=[]),n[i].push(r)})),n},values:function(t){return Object.keys(t).map((function(e){return t[e]}))},flatten:function(t){var e=[];return t.forEach((function(t){Array.isArray(t)?t.forEach((function(t){e.push(t)})):e.push(t)})),e},flattenAndFlagFirst:function(t,e){var n=this.values(t).map((function(t){return t.map((function(t,n){return t[e]=0===n,t}))}));return this.flatten(n)},compact:function(t){var e=[];return t.forEach((function(t){t&&e.push(t)})),e},getHighlightedValue:function(t,e){return t._highlightResult&&t._highlightResult.hierarchy_camel&&t._highlightResult.hierarchy_camel[e]&&t._highlightResult.hierarchy_camel[e].matchLevel&&"none"!==t._highlightResult.hierarchy_camel[e].matchLevel&&t._highlightResult.hierarchy_camel[e].value?t._highlightResult.hierarchy_camel[e].value:t._highlightResult&&t._highlightResult&&t._highlightResult[e]&&t._highlightResult[e].value?t._highlightResult[e].value:t[e]},getSnippetedValue:function(t,e){if(!t._snippetResult||!t._snippetResult[e]||!t._snippetResult[e].value)return t[e];var n=t._snippetResult[e].value;return n[0]!==n[0].toUpperCase()&&(n="…"+n),-1===[".","!","?"].indexOf(n[n.length-1])&&(n+="…"),n},deepClone:function(t){return JSON.parse(JSON.stringify(t))}};e.default=a}])},t.exports=r()},function(t,e,n){n(0),n(9)},function(t,e,n){var r,i,o;!function(s,a){a=a.bind(null,s,s.document),t.exports?a(n(0)):(i=[n(0)],void 0===(o="function"==typeof(r=a)?r.apply(e,i):r)||(t.exports=o))}(window,(function(t,e,n){"use strict";var r,i,o={};function s(t,n,r){if(!o[t]){var i=e.createElement(n?"link":"script"),s=e.getElementsByTagName("script")[0];n?(i.rel="stylesheet",i.href=t):(i.onload=function(){i.onerror=null,i.onload=null,r()},i.onerror=i.onload,i.src=t),o[t]=!0,o[i.src||i.href]=!0,s.parentNode.insertBefore(i,s)}}e.addEventListener&&(i=/\(|\)|\s|'/,r=function(t,n){var r=e.createElement("img");r.onload=function(){r.onload=null,r.onerror=null,r=null,n()},r.onerror=r.onload,r.src=t,r&&r.complete&&r.onload&&r.onload()},addEventListener("lazybeforeunveil",(function(t){var e,o,a;if(t.detail.instance==n&&!t.defaultPrevented){var u=t.target;if("none"==u.preload&&(u.preload=u.getAttribute("data-preload")||"auto"),null!=u.getAttribute("data-autoplay"))if(u.getAttribute("data-expand")&&!u.autoplay)try{u.play()}catch(t){}else requestAnimationFrame((function(){u.setAttribute("data-expand","-10"),n.aC(u,n.cfg.lazyClass)}));(e=u.getAttribute("data-link"))&&s(e,!0),(e=u.getAttribute("data-script"))&&(t.detail.firesLoad=!0,s(e,null,(function(){t.detail.firesLoad=!1,n.fire(u,"_lazyloaded",{},!0,!0)}))),(e=u.getAttribute("data-require"))&&(n.cfg.requireJs?n.cfg.requireJs([e]):s(e)),(o=u.getAttribute("data-bg"))&&(t.detail.firesLoad=!0,r(o,(function(){u.style.backgroundImage="url("+(i.test(o)?JSON.stringify(o):o)+")",t.detail.firesLoad=!1,n.fire(u,"_lazyloaded",{},!0,!0)}))),(a=u.getAttribute("data-poster"))&&(t.detail.firesLoad=!0,r(a,(function(){u.poster=a,t.detail.firesLoad=!1,n.fire(u,"_lazyloaded",{},!0,!0)})))}}),!1))}))},function(t,e){for(var n=document.getElementsByClassName("js-toggle"),r=0;r<n.length;r++)n[r].addEventListener("click",i,!1);function i(){for(var t=this.dataset.target.split(" "),e=document.querySelector(".mobilemenu:not(.dn)"),n=document.querySelector(".desktopmenu:not(.dn)"),r=document.querySelector(".desktopmenu:not(.dn)"),i=0;i<t.length;i++){var o=document.querySelectorAll(t[i]);[].forEach.call(o,(function(t){return t.classList.contains("dn")?t.classList.remove("dn"):t.classList.add("dn"),!1})),e&&e.classList.add("dn"),n&&n.classList.add("dn"),r&&r.classList.remove("db")}}},function(t,e,n){n(12)},function(t,e,n){!function(){"use strict";var t,e,n="data-scrolldir",r="down",i=document.documentElement,o=window,s=document.body,a=Array(32),u=0;function c(){var c=o.scrollY||o.pageYOffset,l=t.timeStamp,h="down"===r?Math.max:Math.min,f=s.scrollHeight-o.innerHeight;if(c=Math.max(0,c),c=Math.min(f,c),a.unshift({y:c,t:l}),a.pop(),c===h(e,c))return u=l,void(e=c);var d=l-512;if(u<d){e=c;for(var p=0;p<32&&a[p]&&!(a[p].t<d);p+=1)e=h(e,a[p].y)}Math.abs(c-e)>64&&(e=c,u=l,r="down"===r?"up":"down",i.setAttribute(n,r))}function l(e){return t=e,o.requestAnimationFrame(c)}e=o.scrollY||o.pageYOffset,i.setAttribute(n,r),o.addEventListener("scroll",l)}()},function(t,e){!function(){"use strict";if("querySelector"in document&&"addEventListener"in window&&Array.prototype.forEach){var t=document.querySelectorAll("#TableOfContents ul li a");[].forEach.call(t,(function(t){t.addEventListener("click",(function(e){e.preventDefault();var n=t.getAttribute("href"),r=document.querySelector(n),i=t.getAttribute("data-speed");r&&function(t,e){var n,r=window.pageYOffset,i=t.offsetTop,o=(i-r)/(e/16);n=o>=0?function(){var t=window.pageYOffset;(t>=i-o||window.innerHeight+t>=document.body.offsetHeight)&&clearInterval(s)}:function(){window.pageYOffset<=(i||0)&&clearInterval(s)};var s=setInterval((function(){window.scrollBy(0,o),n()}),16)}(r,i||500)}),!1)}))}}()},function(t,e){var n,r=document.querySelectorAll("[data-toggle-tab]"),i=document.querySelectorAll("[data-pane]");function o(t){if(t.target){t.preventDefault();var e=t.currentTarget.getAttribute("data-toggle-tab")}else e=t;window.localStorage&&window.localStorage.setItem("configLangPref",e);for(var n=document.querySelectorAll("[data-toggle-tab='"+e+"']"),o=document.querySelectorAll("[data-pane='"+e+"']"),s=0;s<r.length;s++)r[s].classList.remove("active"),i[s].classList.remove("active");for(s=0;s<n.length;s++)n[s].classList.add("active"),o[s].classList.add("active")}for(n=0;n<r.length;n++)r[n].addEventListener("click",o);window.localStorage.getItem("configLangPref")&&o(window.localStorage.getItem("configLangPref"))},function(t,e){document.documentElement.className=document.documentElement.className.replace(/\bno-js\b/,"js")}]);
\ No newline at end of file diff --git a/docs/_vendor/modules.txt b/docs/_vendor/modules.txt index b6aebdf38..787da8ac2 100644 --- a/docs/_vendor/modules.txt +++ b/docs/_vendor/modules.txt @@ -1 +1 @@ -# github.com/gohugoio/gohugoioTheme v0.0.0-20221206093948-1408550ab675 +# github.com/gohugoio/gohugoioTheme v0.0.0-20221217122332-1c1752ad8f14 diff --git a/docs/content/en/about/benefits.md b/docs/content/en/about/benefits.md index e4fec5bb2..925da1732 100644 --- a/docs/content/en/about/benefits.md +++ b/docs/content/en/about/benefits.md @@ -27,11 +27,11 @@ This has many benefits. The most noticeable is performance. HTTP servers are *ve ## More on Static Site Generators -* ["An Introduction to Static Site Generators", David Walsh][] +* ["An Introduction to Static Site Generators", David Walsh] * ["Hugo vs. WordPress page load speed comparison: Hugo leaves WordPress in its dust", GettingThingsTech][hugovwordpress] -* ["Static Site Generators", O'Reilly][] -* [StaticGen: Top Open-Source Static Site Generators (GitHub Stars)][] -* ["Top 10 Static Website Generators", Netlify blog][] +* ["Static Site Generators", O'Reilly] +* [StaticGen: Top Open-Source Static Site Generators (GitHub Stars)] +* ["Top 10 Static Website Generators", Netlify blog] * ["The Resurgence of Static", dotCMS][dotcms] ["An Introduction to Static Site Generators", David Walsh]: https://davidwalsh.name/introduction-static-site-generators diff --git a/docs/content/en/about/features.md b/docs/content/en/about/features.md index 5e94de38c..fc3d5a030 100644 --- a/docs/content/en/about/features.md +++ b/docs/content/en/about/features.md @@ -17,42 +17,42 @@ toc: true ## General -* [Extremely fast][] build times (< 1 ms per page) +* [Extremely fast] build times (< 1 ms per page) * Completely cross platform, with [easy installation][install] on macOS, Linux, Windows, and more -* Renders changes on the fly with [LiveReload][] as you develop -* [Powerful theming][] +* Renders changes on the fly with [LiveReload] as you develop +* [Powerful theming] * [Host your site anywhere][hostanywhere] ## Organization -* Straightforward [organization for your projects][], including website sections -* Customizable [URLs][] -* Support for configurable [taxonomies][], including categories and tags -* [Sort content][] as you desire through powerful template [functions][] -* Automatic [table of contents][] generation -* [Dynamic menu][] creation -* [Pretty URLs][] support -* [Permalink][] pattern support -* Redirects via [aliases][] +* Straightforward [organization for your projects], including website sections +* Customizable [URLs] +* Support for configurable [taxonomies], including categories and tags +* [Sort content] as you desire through powerful template [functions] +* Automatic [table of contents] generation +* [Dynamic menu] creation +* [Pretty URLs] support +* [Permalink] pattern support +* Redirects via [aliases] ## Content -* Native Markdown and Emacs Org-Mode support, as well as other languages via *external helpers* (see [supported formats][]) -* TOML, YAML, and JSON metadata support in [front matter][] -* Customizable [homepage][] -* Multiple [content types][] -* Automatic and user defined [content summaries][] -* [Shortcodes][] to enable rich content inside of Markdown +* Native Markdown and Emacs Org-Mode support, as well as other languages via *external helpers* (see [supported formats]) +* TOML, YAML, and JSON metadata support in [front matter] +* Customizable [homepage] +* Multiple [content types] +* Automatic and user defined [content summaries] +* [Shortcodes] to enable rich content inside of Markdown * ["Minutes to Read"][pagevars] functionality * ["WordCount"][pagevars] functionality ## Additional Features -* Integrated [Disqus][] comment support -* Integrated [Google Analytics][] support -* Automatic [RSS][] creation -* Support for [Go][] HTML templates -* [Syntax highlighting][] powered by [Chroma][] +* Integrated [Disqus] comment support +* Integrated [Google Analytics] support +* Automatic [RSS] creation +* Support for [Go] HTML templates +* [Syntax highlighting] powered by [Chroma] [aliases]: /content-management/urls/#aliases [Chroma]: https://github.com/alecthomas/chroma diff --git a/docs/content/en/about/what-is-hugo.md b/docs/content/en/about/what-is-hugo.md index 01fac90c8..d61f821cd 100644 --- a/docs/content/en/about/what-is-hugo.md +++ b/docs/content/en/about/what-is-hugo.md @@ -17,9 +17,9 @@ aliases: [/overview/introduction/,/about/why-i-built-hugo/] toc: true --- -Hugo is a general-purpose website framework. Technically speaking, Hugo is a [static site generator][]. Unlike systems that dynamically build a page with each visitor request, Hugo builds pages when you create or update your content. Since websites are viewed far more often than they are edited, Hugo is designed to provide an optimal viewing experience for your website's end users and an ideal writing experience for website authors. +Hugo is a general-purpose website framework. Technically speaking, Hugo is a [static site generator]. Unlike systems that dynamically build a page with each visitor request, Hugo builds pages when you create or update your content. Since websites are viewed far more often than they are edited, Hugo is designed to provide an optimal viewing experience for your website's end users and an ideal writing experience for website authors. -Websites built with Hugo are extremely fast and secure. Hugo sites can be hosted anywhere, including [Netlify][], [Heroku][], [GoDaddy][], [DreamHost][], [GitHub Pages][], [GitLab Pages][], [Surge][], [Firebase][], [Google Cloud Storage][], [Amazon S3][], [Rackspace][], [Azure][], and [CloudFront][] and work well with CDNs. Hugo sites run without the need for a database or dependencies on expensive runtimes like Ruby, Python, or PHP. +Websites built with Hugo are extremely fast and secure. Hugo sites can be hosted anywhere, including [Netlify], [Heroku], [GoDaddy], [DreamHost], [GitHub Pages], [GitLab Pages], [Surge], [Firebase], [Google Cloud Storage], [Amazon S3], [Rackspace], [Azure], and [CloudFront] and work well with CDNs. Hugo sites run without the need for a database or dependencies on expensive runtimes like Ruby, Python, or PHP. We think of Hugo as the ideal website creation tool with nearly instant build times, able to rebuild whenever a change is made. diff --git a/docs/content/en/content-management/archetypes.md b/docs/content/en/content-management/archetypes.md index 31e229838..1d2ba3179 100644 --- a/docs/content/en/content-management/archetypes.md +++ b/docs/content/en/content-management/archetypes.md @@ -16,7 +16,7 @@ aliases: [/content/archetypes/] ## What are Archetypes? -**Archetypes** are content template files in the [archetypes directory][] of your project that contain preconfigured [front matter][] and possibly also a content disposition for your website's [content types][]. These will be used when you run `hugo new`. +**Archetypes** are content template files in the [archetypes directory] of your project that contain preconfigured [front matter] and possibly also a content disposition for your website's [content types]. These will be used when you run `hugo new`. The `hugo new` uses the `content-section` to find the most suitable archetype template in your project. If your project does not contain any archetype files, it will also look in the theme. diff --git a/docs/content/en/content-management/comments.md b/docs/content/en/content-management/comments.md index bb6a8d6ce..e49711e7c 100644 --- a/docs/content/en/content-management/comments.md +++ b/docs/content/en/content-management/comments.md @@ -29,7 +29,7 @@ Disqus comments require you set a single value in your [site's configuration fil disqusShortname = "yourDisqusShortname" {{</ code-toggle >}} -For many websites, this is enough configuration. However, you also have the option to set the following in the [front matter][] of a single content file: +For many websites, this is enough configuration. However, you also have the option to set the following in the [front matter] of a single content file: * `disqus_identifier` * `disqus_title` diff --git a/docs/content/en/content-management/front-matter.md b/docs/content/en/content-management/front-matter.md index 71e6e36ea..bf530518f 100644 --- a/docs/content/en/content-management/front-matter.md +++ b/docs/content/en/content-management/front-matter.md @@ -14,7 +14,7 @@ weight: 60 aliases: [/content/front-matter/] --- -**Front matter** allows you to keep metadata attached to an instance of a [content type][]---i.e., embedded inside a content file---and is one of the many features that gives Hugo its strength. +**Front matter** allows you to keep metadata attached to an instance of a [content type]---i.e., embedded inside a content file---and is one of the many features that gives Hugo its strength. {{< youtube Yh2xKRJGff4 >}} @@ -122,7 +122,7 @@ title : the title for the content. type -: the type of the content; this value will be automatically derived from the directory (i.e., the [section][]) if not specified in front matter. +: the type of the content; this value will be automatically derived from the directory (i.e., the [section]) if not specified in front matter. url : the full path to the content from the web root. It makes no assumptions about the path of the content file. See [URL Management](/content-management/urls/#set-url-in-front-matter). @@ -144,7 +144,7 @@ If neither `slug` nor `url` is present and [permalinks are not configured otherw You can add fields to your front matter arbitrarily to meet your needs. These user-defined key-values are placed into a single `.Params` variable for use in your templates. -The following fields can be accessed via `.Params.include_toc` and `.Params.show_comments`, respectively. The [Variables][] section provides more information on using Hugo's page- and site-level variables in your templates. +The following fields can be accessed via `.Params.include_toc` and `.Params.show_comments`, respectively. The [Variables] section provides more information on using Hugo's page- and site-level variables in your templates. {{< code-toggle copy="false" >}} include_toc: true diff --git a/docs/content/en/content-management/multilingual.md b/docs/content/en/content-management/multilingual.md index 4e4eba46e..5eb5506d9 100644 --- a/docs/content/en/content-management/multilingual.md +++ b/docs/content/en/content-management/multilingual.md @@ -220,10 +220,6 @@ slug: "a-propos" At render, Hugo will build both `/about/` and `/fr/a-propos/` while maintaining their translation linking. -{{% note %}} -If using `url`, remember to include the language part as well: `/fr/compagnie/a-propos/`. -{{%/ note %}} - ### Page Bundles To avoid the burden of having to duplicate files, each Page Bundle inherits the resources of its linked translated pages' bundles except for the content files (Markdown files, HTML files etc...). diff --git a/docs/content/en/content-management/organization/index.md b/docs/content/en/content-management/organization/index.md index b677d8c18..94c0cfd5a 100644 --- a/docs/content/en/content-management/organization/index.md +++ b/docs/content/en/content-management/organization/index.md @@ -33,7 +33,7 @@ The bundle documentation is a **work in progress**. We will publish more compreh In Hugo, your content should be organized in a manner that reflects the rendered website. -While Hugo supports content nested at any level, the top levels (i.e. `content/<DIRECTORIES>`) are special in Hugo and are considered the content type used to determine layouts etc. To read more about sections, including how to nest them, see [sections][]. +While Hugo supports content nested at any level, the top levels (i.e. `content/<DIRECTORIES>`) are special in Hugo and are considered the content type used to determine layouts etc. To read more about sections, including how to nest them, see [sections]. Without any additional configuration, the following will automatically work: @@ -59,7 +59,7 @@ The following demonstrates the relationships between your content organization a ### Index Pages: `_index.md` -`_index.md` has a special role in Hugo. It allows you to add front matter and content to your [list templates][lists]. These templates include those for [section templates][], [taxonomy templates][], [taxonomy terms templates][], and your [homepage template][]. +`_index.md` has a special role in Hugo. It allows you to add front matter and content to your [list templates][lists]. These templates include those for [section templates], [taxonomy templates], [taxonomy terms templates], and your [homepage template]. {{% note %}} **Tip:** You can get a reference to the content and metadata in `_index.md` using the [`.Site.GetPage` function](/functions/getpage/). diff --git a/docs/content/en/content-management/sections.md b/docs/content/en/content-management/sections.md index 4335f137d..5ff884610 100644 --- a/docs/content/en/content-management/sections.md +++ b/docs/content/en/content-management/sections.md @@ -86,11 +86,11 @@ Also see [Page Variables](/variables/page/). ## Content Section Lists -Hugo will automatically create a page for each *root section* that lists all the content in that section. See the documentation on [section templates][] for details on customizing the way these pages are rendered. +Hugo will automatically create a page for each *root section* that lists all the content in that section. See the documentation on [section templates] for details on customizing the way these pages are rendered. ## Content *Section* vs Content *Type* -By default, everything created within a section will use the [content `type`][content type] that matches the *root section* name. For example, Hugo will assume that `posts/post-1.md` has a `posts` content `type`. If you are using an [archetype][] for your `posts` section, Hugo will generate front matter according to what it finds in `archetypes/posts.md`. +By default, everything created within a section will use the [content `type`][content type] that matches the *root section* name. For example, Hugo will assume that `posts/post-1.md` has a `posts` content `type`. If you are using an [archetype] for your `posts` section, Hugo will generate front matter according to what it finds in `archetypes/posts.md`. [archetype]: /content-management/archetypes/ [content type]: /content-management/types/ diff --git a/docs/content/en/content-management/shortcodes.md b/docs/content/en/content-management/shortcodes.md index 4bc425ff3..634444684 100644 --- a/docs/content/en/content-management/shortcodes.md +++ b/docs/content/en/content-management/shortcodes.md @@ -214,7 +214,7 @@ To see even more options for adding syntax-highlighted code blocks to your websi ### `instagram` -If you'd like to embed a photo from [Instagram][], you only need the photo's ID. You can discern an Instagram photo ID from the URL: +If you'd like to embed a photo from [Instagram], you only need the photo's ID. You can discern an Instagram photo ID from the URL: ```txt https://www.instagram.com/p/BWNjjyYFxVx/ @@ -329,7 +329,7 @@ Using the preceding `tweet` example, the following simulates the displayed exper ### `vimeo` -Adding a video from [Vimeo][] is equivalent to the [YouTube Input shortcode][]. +Adding a video from [Vimeo] is equivalent to the [YouTube Input shortcode]. ```txt https://vimeo.com/channels/staffpicks/146022717 @@ -367,7 +367,7 @@ Using the preceding `vimeo` example, the following simulates the displayed exper ### `youtube` -The `youtube` shortcode embeds a responsive video player for [YouTube videos][]. Only the ID of the video is required, e.g.: +The `youtube` shortcode embeds a responsive video player for [YouTube videos]. Only the ID of the video is required, e.g.: ```txt https://www.youtube.com/watch?v=w7Ft2ymGmfc @@ -410,11 +410,11 @@ Using the preceding `youtube` example (without `autoplay="true"`), the following ## Privacy Config -To learn how to configure your Hugo site to meet the new EU privacy regulation, see [Hugo and the GDPR][]. +To learn how to configure your Hugo site to meet the new EU privacy regulation, see [Hugo and the GDPR]. ## Create Custom Shortcodes -To learn more about creating custom shortcodes, see the [shortcode template documentation][]. +To learn more about creating custom shortcodes, see the [shortcode template documentation]. [`figure` shortcode]: #figure [contentmanagementsection]: /content-management/formats/ diff --git a/docs/content/en/content-management/static-files.md b/docs/content/en/content-management/static-files.md index 946919f0a..20a1442e6 100644 --- a/docs/content/en/content-management/static-files.md +++ b/docs/content/en/content-management/static-files.md @@ -18,7 +18,7 @@ all **static files** (e.g. stylesheets, JavaScript, images). The static files ar Hugo can be configured to look into a different directory, or even **multiple directories** for such static files by configuring the -`staticDir` parameter in the [site config][]. All the files in all the +`staticDir` parameter in the [site config]. All the files in all the static directories will form a union filesystem. This union filesystem will be served from your site root. So a file @@ -62,7 +62,7 @@ Note 1 can be seen in the Norwegian site case). Note 2 -: The example above is a [multihost setup][]. In a regular setup, all +: The example above is a [multihost setup]. In a regular setup, all the static directories will be available to all sites. [site config]: /getting-started/configuration/#all-configuration-settings diff --git a/docs/content/en/content-management/summaries.md b/docs/content/en/content-management/summaries.md index 010e55dcd..345e2f748 100644 --- a/docs/content/en/content-management/summaries.md +++ b/docs/content/en/content-management/summaries.md @@ -81,7 +81,7 @@ Hugo uses the _first_ of the above steps that returns text. So if, for example, ## Example: First 10 Articles with Summaries -You can show content summaries with the following code. You could use the following snippet, for example, in a [section template][]. +You can show content summaries with the following code. You could use the following snippet, for example, in a [section template]. {{< code file="page-list-with-summaries.html" >}} {{ range first 10 .Pages }} diff --git a/docs/content/en/content-management/taxonomies.md b/docs/content/en/content-management/taxonomies.md index 625347203..f5960367f 100644 --- a/docs/content/en/content-management/taxonomies.md +++ b/docs/content/en/content-management/taxonomies.md @@ -40,7 +40,7 @@ Let's assume you are making a website about movies. You may want to include the * Year * Awards -Then, in each of the movies, you would specify terms for each of these taxonomies (i.e., in the [front matter][] of each of your movie content files). From these terms, Hugo would automatically create pages for each Actor, Director, Studio, Genre, Year, and Award, with each listing all of the Movies that matched that specific Actor, Director, Studio, Genre, Year, and Award. +Then, in each of the movies, you would specify terms for each of these taxonomies (i.e., in the [front matter] of each of your movie content files). From these terms, Hugo would automatically create pages for each Actor, Director, Studio, Genre, Year, and Award, with each listing all of the Movies that matched that specific Actor, Director, Studio, Genre, Year, and Award. ### Movie Taxonomy Organization @@ -99,10 +99,10 @@ disableKinds = ["taxonomy","term"] ### Default Destinations -When taxonomies are used---and [taxonomy templates][] are provided---Hugo will automatically create both a page listing all the taxonomy's terms and individual pages with lists of content associated with each term. For example, a `categories` taxonomy declared in your configuration and used in your content front matter will create the following pages: +When taxonomies are used---and [taxonomy templates] are provided---Hugo will automatically create both a page listing all the taxonomy's terms and individual pages with lists of content associated with each term. For example, a `categories` taxonomy declared in your configuration and used in your content front matter will create the following pages: -* A single page at `example.com/categories/` that lists all the [terms within the taxonomy][] -* [Individual taxonomy list pages][taxonomy templates] (e.g., `/categories/development/`) for each of the terms that shows a listing of all pages marked as part of that taxonomy within any content file's [front matter][] +* A single page at `example.com/categories/` that lists all the [terms within the taxonomy] +* [Individual taxonomy list pages][taxonomy templates] (e.g., `/categories/development/`) for each of the terms that shows a listing of all pages marked as part of that taxonomy within any content file's [front matter] ## Configure Taxonomies @@ -146,9 +146,9 @@ You can now use `.Page.Title` on the relevant taxonomy node to get the original ## Add Taxonomies to Content -Once a taxonomy is defined at the site level, any piece of content can be assigned to it, regardless of [content type][] or [content section][]. +Once a taxonomy is defined at the site level, any piece of content can be assigned to it, regardless of [content type] or [content section]. -Assigning content to a taxonomy is done in the [front matter][]. Simply create a variable with the *plural* name of the taxonomy and assign all terms you want to apply to the instance of the content type. +Assigning content to a taxonomy is done in the [front matter]. Simply create a variable with the *plural* name of the taxonomy and assign all terms you want to apply to the instance of the content type. {{% note %}} If you would like the ability to quickly generate content files with preconfigured taxonomies or terms, read the docs on [Hugo archetypes](/content-management/archetypes/). @@ -167,7 +167,7 @@ project_url = "https://github.com/gohugoio/hugo" ## Order Taxonomies -A content file can assign weight for each of its associate taxonomies. Taxonomic weight can be used for sorting or ordering content in [taxonomy list templates][] and is declared in a content file's [front matter][]. The convention for declaring taxonomic weight is `taxonomyname_weight`. +A content file can assign weight for each of its associate taxonomies. Taxonomic weight can be used for sorting or ordering content in [taxonomy list templates] and is declared in a content file's [front matter]. The convention for declaring taxonomic weight is `taxonomyname_weight`. The following show a piece of content that has a weight of 22, which can be used for ordering purposes when rendering the pages assigned to the "a", "b" and "c" values of the `tags` taxonomy. It has also been assigned the weight of 44 when rendering the "d" category page. diff --git a/docs/content/en/content-management/toc.md b/docs/content/en/content-management/toc.md index 6cb8e55bf..d136972cc 100644 --- a/docs/content/en/content-management/toc.md +++ b/docs/content/en/content-management/toc.md @@ -47,7 +47,7 @@ The built-in `.TableOfContents` variables outputs a `<nav id="TableOfContents">` ## Template Example: Basic TOC -The following is an example of a very basic [single page template][]: +The following is an example of a very basic [single page template]: {{< code file="layout/_default/single.html" download="single.html" >}} {{ define "main" }} @@ -67,7 +67,7 @@ The following is an example of a very basic [single page template][]: ## Template Example: TOC Partial -The following is a [partial template][partials] that adds slightly more logic for page-level control over your table of contents. It assumes you are using a `toc` field in your content's [front matter][] that, unless specifically set to `false`, will add a TOC to any page with a `.WordCount` (see [Page Variables][pagevars]) greater than 400. This example also demonstrates how to use [conditionals][] in your templating: +The following is a [partial template][partials] that adds slightly more logic for page-level control over your table of contents. It assumes you are using a `toc` field in your content's [front matter] that, unless specifically set to `false`, will add a TOC to any page with a `.WordCount` (see [Page Variables][pagevars]) greater than 400. This example also demonstrates how to use [conditionals] in your templating: {{< code file="layouts/partials/toc.html" download="toc.html" >}} {{ if and (gt .WordCount 400 ) (.Params.toc) }} diff --git a/docs/content/en/content-management/urls.md b/docs/content/en/content-management/urls.md index 6b12f3a2e..739c9c390 100644 --- a/docs/content/en/content-management/urls.md +++ b/docs/content/en/content-management/urls.md @@ -23,7 +23,7 @@ The `permalinks` option in your [site configuration][config] allows you to adjus These examples use the default values for `publishDir` and `contentDir`; i.e., `public` and `content`, respectively. You can override the default values in your [site's `config` file](/getting-started/configuration/). {{% /note %}} -For example, if one of your [sections][] is called `posts` and you want to adjust the canonical path to be hierarchical based on the year, month, and post title, you could set up the following configurations in YAML and TOML, respectively. +For example, if one of your [sections] is called `posts` and you want to adjust the canonical path to be hierarchical based on the year, month, and post title, you could set up the following configurations in YAML and TOML, respectively. ### Permalinks Configuration Example @@ -211,7 +211,7 @@ content/posts/post-1.md If you would like to have what are often referred to as "ugly URLs" (e.g., example.com/urls.html), set `uglyurls = true` or `uglyurls: true` in your site's `config.toml` or `config.yaml`, respectively. You can also set the `HUGO_UGLYURLS` environment variable to `true` when running `hugo` or `hugo server`. -If you want a specific piece of content to have an exact URL, you can specify this in the [front matter][] under the `url` key. The following are examples of the same content directory and what the eventual URL structure will be when Hugo runs with its default behavior. +If you want a specific piece of content to have an exact URL, you can specify this in the [front matter] under the `url` key. The following are examples of the same content directory and what the eventual URL structure will be when Hugo runs with its default behavior. See [Content Organization][contentorg] for more details on paths. diff --git a/docs/content/en/contribute/development.md b/docs/content/en/contribute/development.md index dfdf60ddb..b11ef09de 100644 --- a/docs/content/en/contribute/development.md +++ b/docs/content/en/contribute/development.md @@ -18,7 +18,7 @@ toc: true ## Introduction -Hugo is an open-source project and lives by the work of its [contributors][]. There are plenty of [open issues][issues], and we need your help to make Hugo even more awesome. You don't need to be a Go guru to contribute to the project's development. +Hugo is an open-source project and lives by the work of its [contributors]. There are plenty of [open issues][issues], and we need your help to make Hugo even more awesome. You don't need to be a Go guru to contribute to the project's development. ## Assumptions diff --git a/docs/content/en/contribute/documentation.md b/docs/content/en/contribute/documentation.md index 939387384..641f86c81 100644 --- a/docs/content/en/contribute/documentation.md +++ b/docs/content/en/contribute/documentation.md @@ -28,7 +28,7 @@ git checkout -b jon-doe-showcase-addition ## Add New Content -The Hugo docs make heavy use of Hugo's [archetypes][] feature. All content sections in Hugo documentation have an assigned archetype. +The Hugo docs make heavy use of Hugo's [archetypes] feature. All content sections in Hugo documentation have an assigned archetype. Adding new content to the Hugo docs follows the same pattern, regardless of the content section: @@ -79,7 +79,7 @@ Here is a review of the front matter fields automatically generated for you usin : the version of Hugo that will ship with this new function. `relatedfuncs` -: other [templating functions][] you feel are related to your new function to help fellow Hugo users. +: other [templating functions] you feel are related to your new function to help fellow Hugo users. `{{.Content}}` : an extended description of the new function; examples are not only welcomed but encouraged. diff --git a/docs/content/en/functions/GetPage.md b/docs/content/en/functions/GetPage.md index 0c74e628b..6a6262f75 100644 --- a/docs/content/en/functions/GetPage.md +++ b/docs/content/en/functions/GetPage.md @@ -56,7 +56,7 @@ The previous examples have used the full content filename to look up the post. D This code snippet---in the form of a [partial template][partials]---allows you to do the following: -1. Grab the index object of your `tags` [taxonomy][]. +1. Grab the index object of your `tags` [taxonomy]. 2. Assign this object to a variable, `$t` 3. Sort the terms associated with the taxonomy by popularity. 4. Grab the top two most popular terms in the taxonomy (i.e., the two most popular tags assigned to content. diff --git a/docs/content/en/functions/after.md b/docs/content/en/functions/after.md index da93b3e44..1d513e775 100644 --- a/docs/content/en/functions/after.md +++ b/docs/content/en/functions/after.md @@ -29,7 +29,7 @@ The following shows `after` being used in conjunction with the [`slice` function ## Example of `after` with `first`: 2nd–4th Most Recent Articles -You can use `after` in combination with the [`first` function][] and Hugo's [powerful sorting methods][lists]. Let's assume you have a list page at `example.com/articles`. You have 10 articles, but you want your templating for the [list/section page][] to show only two rows: +You can use `after` in combination with the [`first` function] and Hugo's [powerful sorting methods][lists]. Let's assume you have a list page at `example.com/articles`. You have 10 articles, but you want your templating for the [list/section page] to show only two rows: 1. The top row is titled "Featured" and shows only the most recently published article (i.e. by `publishdate` in the content files' front matter). 2. The second row is titled "Recent Articles" and shows only the 2nd- to 4th-most recently published articles. diff --git a/docs/content/en/functions/apply.md b/docs/content/en/functions/apply.md index 7550069a5..983e2fdb9 100644 --- a/docs/content/en/functions/apply.md +++ b/docs/content/en/functions/apply.md @@ -48,7 +48,7 @@ Which will result in the following: "derek-perkins", "joe-bergevin", "tanner-linsley" ``` -This is *roughly* equivalent to using the following with [range][]: +This is *roughly* equivalent to using the following with [range]: ``` {{ range .Params.names }}{{ . | urlize }}{{ end }} @@ -56,7 +56,7 @@ This is *roughly* equivalent to using the following with [range][]: However, it is not possible to provide the output of a range to the [`delimit` function][delimit], so you need to `apply` it. -If you have `post-tag-list.html` and `post-tag-link.html` as [partials][], you *could* use the following snippets, respectively: +If you have `post-tag-list.html` and `post-tag-link.html` as [partials], you *could* use the following snippets, respectively: {{< code file="layouts/partials/post-tag-list.html" copy="false" >}} {{ with .Params.tags }} @@ -96,7 +96,7 @@ This first version of `layouts/partials/post-tag-list.html` separates all of the {{ end }} ``` -Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp][] off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example: +Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp] off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example: {{< code file="layouts/partials/post-tag-list.html" download="post-tag-list.html" >}} {{ with .Params.tags }} diff --git a/docs/content/en/functions/format.md b/docs/content/en/functions/format.md index 4ef806f45..e2f93f1fc 100644 --- a/docs/content/en/functions/format.md +++ b/docs/content/en/functions/format.md @@ -53,7 +53,7 @@ Here is a visual explanation [taken directly from the Go docs][gdex]: The following examples show the layout string followed by the rendered output. -The examples were rendered and tested in [CST][] and all point to the same field in a content file's front matter: +The examples were rendered and tested in [CST] and all point to the same field in a content file's front matter: ``` date: 2017-03-03T14:15:59-06:00 diff --git a/docs/content/en/functions/len.md b/docs/content/en/functions/len.md index 0681583db..9f15d79c7 100644 --- a/docs/content/en/functions/len.md +++ b/docs/content/en/functions/len.md @@ -31,7 +31,7 @@ aliases: [] > > Channel: the number of elements queued (unread) in the channel buffer; if v is nil, len(v) is zero. -`len` is also considered a [fundamental function for Hugo templating][]. +`len` is also considered a [fundamental function for Hugo templating]. ## `len` Example 1: Longer Headings @@ -45,15 +45,15 @@ You may want to append a class to a heading according to the length of the strin ## `len` Example 2: Counting Pages with `where` -The following templating uses [`where`][] in conjunction with `len` to -figure out the total number of content pages in a `posts` [section][]: +The following templating uses [`where`] in conjunction with `len` to +figure out the total number of content pages in a `posts` [section]: {{< code file="how-many-posts.html" >}} {{ $posts := (where .Site.RegularPages "Section" "==" "posts") }} {{ $postCount := len $posts }} {{< /code >}} -Note the use of `.RegularPages`, a [site variable][] that counts all regular content pages but not the `_index.md` pages used to add front matter and content to [list templates][]. +Note the use of `.RegularPages`, a [site variable] that counts all regular content pages but not the `_index.md` pages used to add front matter and content to [list templates]. [fundamental function for Hugo templating]: /templates/introduction/ diff --git a/docs/content/en/functions/markdownify.md b/docs/content/en/functions/markdownify.md index b108ccb94..b42e045e7 100644 --- a/docs/content/en/functions/markdownify.md +++ b/docs/content/en/functions/markdownify.md @@ -23,6 +23,6 @@ aliases: [] {{ .Title | markdownify }} ``` -{{< new-in "0.93.0" >}} **Note**: `markdownify` now supports [Render Hooks][] just like [.RenderString](/functions/renderstring/). +{{< new-in "0.93.0" >}} **Note**: `markdownify` now supports [Render Hooks] just like [.RenderString](/functions/renderstring/). [Render Hooks]: /templates/render-hooks/ diff --git a/docs/content/en/functions/param.md b/docs/content/en/functions/param.md index eb0a87279..5387647d2 100644 --- a/docs/content/en/functions/param.md +++ b/docs/content/en/functions/param.md @@ -19,11 +19,11 @@ draft: false aliases: [] --- -In Hugo, you can declare [site-wide params][sitevars] (i.e. in your [configuration][]), as well as params for [individual pages][pagevars]. +In Hugo, you can declare [site-wide params][sitevars] (i.e. in your [configuration]), as well as params for [individual pages][pagevars]. A common use case is to have a general value for the site and a more specific value for some of the pages (e.g., an image). -You can use the `.Param` method to call these values into your template. The following will first look for an `image` param in a specific content's [front matter][]. If not found, Hugo will look for an `image` param in your site's configuration: +You can use the `.Param` method to call these values into your template. The following will first look for an `image` param in a specific content's [front matter]. If not found, Hugo will look for an `image` param in your site's configuration: ``` $.Param "image" diff --git a/docs/content/en/functions/partialCached.md b/docs/content/en/functions/partialCached.md index a0c317377..2e79bb32f 100644 --- a/docs/content/en/functions/partialCached.md +++ b/docs/content/en/functions/partialCached.md @@ -22,6 +22,8 @@ The `partialCached` template function can offer significant performance gains fo **Note:** Each Site (or language) has its own `partialCached` cache, so each site will execute a partial once. +**Note**: Hugo renders pages in parallel, and will render the partial more than once with concurrent calls to the `partialCached` function. After Hugo caches the rendered partial, new pages entering the build pipeline will use the cached result. + Here is the simplest usage: ``` diff --git a/docs/content/en/functions/render.md b/docs/content/en/functions/render.md index c2347091f..7e4015bf6 100644 --- a/docs/content/en/functions/render.md +++ b/docs/content/en/functions/render.md @@ -19,7 +19,7 @@ aliases: [] The view is an alternative layout and should be a file name that points to a template in one of the locations specified in the documentation for [Content Views](/templates/views). -This function is only available when applied to a single piece of content within a [list context][]. +This function is only available when applied to a single piece of content within a [list context]. This example could render a piece of content using the content view located at `/layouts/_default/summary.html`: diff --git a/docs/content/en/functions/safeURL.md b/docs/content/en/functions/safeURL.md index 959076246..285542ea9 100644 --- a/docs/content/en/functions/safeURL.md +++ b/docs/content/en/functions/safeURL.md @@ -17,7 +17,7 @@ deprecated: false aliases: [] --- -`safeURL` declares the provided string as a "safe" URL or URL substring (see [RFC 3986][]). A URL like `javascript:checkThatFormNotEditedBeforeLeavingPage()` from a trusted source should go in the page, but by default dynamic `javascript:` URLs are filtered out since they are a frequently exploited injection vector. +`safeURL` declares the provided string as a "safe" URL or URL substring (see [RFC 3986]). A URL like `javascript:checkThatFormNotEditedBeforeLeavingPage()` from a trusted source should go in the page, but by default dynamic `javascript:` URLs are filtered out since they are a frequently exploited injection vector. Without `safeURL`, only the URI schemes `http:`, `https:` and `mailto:` are considered safe by Go templates. If any other URI schemes (e.g., `irc:` and `javascript:`) are detected, the whole URL will be replaced with `#ZgotmplZ`. This is to "defang" any potential attack in the URL by rendering it useless. diff --git a/docs/content/en/functions/seq.md b/docs/content/en/functions/seq.md index c0750b4a1..a880ec241 100644 --- a/docs/content/en/functions/seq.md +++ b/docs/content/en/functions/seq.md @@ -19,7 +19,7 @@ draft: false aliases: [] --- -It's named and used in the model of [GNU's seq][]. +It's named and used in the model of [GNU's seq]. ``` 3 → 1, 2, 3 diff --git a/docs/content/en/functions/slice.md b/docs/content/en/functions/slice.md index 24b717128..9b5580d44 100644 --- a/docs/content/en/functions/slice.md +++ b/docs/content/en/functions/slice.md @@ -20,7 +20,7 @@ aliases: [] toc: false --- -One use case is the concatenation of elements in combination with the [`delimit` function][]: +One use case is the concatenation of elements in combination with the [`delimit` function]: {{< code file="slice.html" >}} {{ $sliceOfStrings := slice "foo" "bar" "buzz" }} diff --git a/docs/content/en/functions/time.md b/docs/content/en/functions/time.md index 681c85fd9..175e2dbfe 100644 --- a/docs/content/en/functions/time.md +++ b/docs/content/en/functions/time.md @@ -43,7 +43,7 @@ If no `TIMEZONE` is set, the `timeZone` from site configuration will be used. ## Example: Using `time` to get Month Index -The following example takes a UNIX timestamp---set as `utimestamp: "1489276800"` in a content's front matter---converts the timestamp (string) to an integer using the [`int` function][int], and then uses [`printf`][] to convert the `Month` property of `time` into an index. +The following example takes a UNIX timestamp---set as `utimestamp: "1489276800"` in a content's front matter---converts the timestamp (string) to an integer using the [`int` function][int], and then uses [`printf`] to convert the `Month` property of `time` into an index. The following example may be useful when setting up [multilingual sites][multilingual]: diff --git a/docs/content/en/getting-started/_index.md b/docs/content/en/getting-started/_index.md index bffc2e1b7..f953abb22 100644 --- a/docs/content/en/getting-started/_index.md +++ b/docs/content/en/getting-started/_index.md @@ -15,7 +15,7 @@ aliases: [/overview/introduction/] toc: false --- -If this is your first time using Hugo and you've [already installed Hugo on your machine][installed], we recommend the [quick start][]. You can also use [external learning resources][] to learn Hugo. +If this is your first time using Hugo and you've [already installed Hugo on your machine][installed], we recommend the [quick start]. You can also use [external learning resources] to learn Hugo. [installed]: /installation/ [quick start]: /getting-started/quick-start/ diff --git a/docs/content/en/getting-started/configuration.md b/docs/content/en/getting-started/configuration.md index 5a65dcdfc..39f27453f 100644 --- a/docs/content/en/getting-started/configuration.md +++ b/docs/content/en/getting-started/configuration.md @@ -554,7 +554,7 @@ force = false Setting `force=true` will make a redirect even if there is existing content in the path. Note that before Hugo 0.76 `force` was the default behavior, but this is inline with how Netlify does it. -## 404 Server Error Page +## 404 Server Error Page {#_404-server-error-page} {{< new-in "0.103.0" >}} @@ -567,19 +567,6 @@ Hugo will, by default, render all 404 errors when running `hugo server` with the status = 404 ``` -## 404 Server Error Page - -{{< new-in "0.103.0" >}} - -Hugo will, by default, render all 404 errors when running `hugo server` with the `404.html` template. Note that if you have already added one or more redirects to your [Server Config](#server-config), you need to add the 404 redirect explicitly, e.g: - -```toml -[[redirects]] - from = "/**" - to = "/404.html" - status = 404 -``` - ## Configure Title Case Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. It defaults to [AP Stylebook](https://www.apstylebook.com/) for title casing, but you can also set it to `Chicago` or `Go` (every word starts with a capital letter). @@ -591,7 +578,7 @@ HUGO_NUMWORKERMULTIPLIER ## Configuration Lookup Order -Similar to the template [lookup order][], Hugo has a default set of rules for searching for a configuration file in the root of your website's source directory as a default behavior: +Similar to the template [lookup order], Hugo has a default set of rules for searching for a configuration file in the root of your website's source directory as a default behavior: 1. `./config.toml` 2. `./config.yaml` @@ -602,7 +589,7 @@ In your `config` file, you can direct Hugo as to how you want your website rende ## Example Configuration -The following is a typical example of a configuration file. The values nested under `params:` will populate the [`.Site.Params`][] variable for use in [templates][]: +The following is a typical example of a configuration file. The values nested under `params:` will populate the [`.Site.Params`] variable for use in [templates]: {{< code-toggle file="config">}} baseURL: "https://yoursite.example.com/" @@ -645,6 +632,8 @@ Test and document setting params via JSON env var. ## Ignore Content and Data Files when Rendering +**Note:** This works, but we recommend you use the newer and more powerful [includeFiles and excludeFiles](https://gohugo.io/hugo-modules/configuration/#module-config-mounts) mount options. + To exclude specific files from the `content` and `data` directories when rendering your site, set `ignoreFiles` to one or more regular expressions to match against the absolute file path. To ignore files ending with `.foo` or `.boo`: @@ -721,7 +710,7 @@ The above will try first to extract the value for `.Date` from the filename, the ## Configure Additional Output Formats -Hugo v0.20 introduced the ability to render your content to multiple output formats (e.g., to JSON, AMP html, or CSV). See [Output Formats][] for information on how to add these values to your Hugo project's configuration file. +Hugo v0.20 introduced the ability to render your content to multiple output formats (e.g., to JSON, AMP html, or CSV). See [Output Formats] for information on how to add these values to your Hugo project's configuration file. ## Configure Minify diff --git a/docs/content/en/getting-started/directory-structure.md b/docs/content/en/getting-started/directory-structure.md index d9f163498..b8c22b1df 100644 --- a/docs/content/en/getting-started/directory-structure.md +++ b/docs/content/en/getting-started/directory-structure.md @@ -42,36 +42,36 @@ The following is a high-level overview of each of the directories with links to [`archetypes`](/content-management/archetypes/) : You can create new content files in Hugo using the `hugo new` command. -By default, Hugo will create new content files with at least `date`, `title` (inferred from the filename), and `draft = true`. This saves time and promotes consistency for sites using multiple content types. You can create your own [archetypes][] with custom preconfigured front matter fields as well. +By default, Hugo will create new content files with at least `date`, `title` (inferred from the filename), and `draft = true`. This saves time and promotes consistency for sites using multiple content types. You can create your own [archetypes] with custom preconfigured front matter fields as well. -[`assets`][] +[`assets`] : Stores all the files which need be processed by [Hugo Pipes](/hugo-pipes/). Only the files whose `.Permalink` or `.RelPermalink` are used will be published to the `public` directory. [`config`](/getting-started/configuration/) -: Hugo ships with a large number of [configuration directives][]. +: Hugo ships with a large number of [configuration directives]. The [config directory](/getting-started/configuration/#configuration-directory) is where those directives are stored as JSON, YAML, or TOML files. Every root setting object can stand as its own file and structured by environments. Projects with minimal settings and no need for environment awareness can use a single `config.toml` file at its root. -Many sites may need little to no configuration, but Hugo ships with a large number of [configuration directives][] for more granular directions on how you want Hugo to build your website. Note: config directory is not created by default. +Many sites may need little to no configuration, but Hugo ships with a large number of [configuration directives] for more granular directions on how you want Hugo to build your website. Note: config directory is not created by default. -[`content`][] -: All content for your website will live inside this directory. Each top-level folder in Hugo is considered a [content section][]. For example, if your site has three main sections---`blog`, `articles`, and `tutorials`---you will have three directories at `content/blog`, `content/articles`, and `content/tutorials`. Hugo uses sections to assign default [content types][]. +[`content`] +: All content for your website will live inside this directory. Each top-level folder in Hugo is considered a [content section]. For example, if your site has three main sections---`blog`, `articles`, and `tutorials`---you will have three directories at `content/blog`, `content/articles`, and `content/tutorials`. Hugo uses sections to assign default [content types]. [`data`](/templates/data-templates/) : This directory is used to store configuration files that can be -used by Hugo when generating your website. You can write these files in YAML, JSON, or TOML format. In addition to the files you add to this folder, you can also create [data templates][] that pull from dynamic content. +used by Hugo when generating your website. You can write these files in YAML, JSON, or TOML format. In addition to the files you add to this folder, you can also create [data templates] that pull from dynamic content. -[`layouts`][] -: Stores templates in the form of `.html` files that specify how views of your content will be rendered into a static website. Templates include [list pages][lists], your [homepage][], [taxonomy templates][], [partials][], [single page templates][singles], and more. +[`layouts`] +: Stores templates in the form of `.html` files that specify how views of your content will be rendered into a static website. Templates include [list pages][lists], your [homepage], [taxonomy templates], [partials], [single page templates][singles], and more. -[`static`][] +[`static`] : Stores all the static content: images, CSS, JavaScript, etc. When Hugo builds your site, all assets inside your static directory are copied over as-is. A good example of using the `static` folder is for [verifying site ownership on Google Search Console][searchconsole], where you want Hugo to copy over a complete HTML file without modifying its content. {{% note %}} From **Hugo 0.31** you can have multiple static directories. {{% /note %}} -[`resources`][] +[`resources`] : Caches some files to speed up generation. Can be also used by template authors to distribute built Sass files, so you don't have to have the preprocessor installed. Note: resources directory is not created by default. [archetypes]: /content-management/archetypes/ diff --git a/docs/content/en/getting-started/quick-start.md b/docs/content/en/getting-started/quick-start.md index 829800048..824d6030a 100644 --- a/docs/content/en/getting-started/quick-start.md +++ b/docs/content/en/getting-started/quick-start.md @@ -33,9 +33,13 @@ You must also be comfortable working from the command line. ### Commands -Run these commands[^1] to create a Hugo site with the [Ananke] theme. The next section provides an explanation of each command. +{{% note %}} +If you are a Windows user, you must run these commands with [PowerShell]. You cannot use Windows Powershell, which is a different application, or the Command Prompt. You may also use a Linux shell if available. -[^1]: If you are a Windows user, you must run these commands with [PowerShell]. You cannot use Windows Powershell, which is a different application, or the Command Prompt. +[PowerShell]: https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows +{{% /note %}} + +Run these commands to create a Hugo site with the [Ananke] theme. The next section provides an explanation of each command. ```text hugo new site quickstart @@ -210,7 +214,6 @@ For other resources to help you learn Hugo, including books and video tutorials, [hosting and deployment]: /hosting-and-deployment/ [Install Git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git [Install Hugo]: /installation/ -[PowerShell]: https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows [Requesting Help]: https://discourse.gohugo.io/t/requesting-help/9132 [Requesting Help]: https://discourse.gohugo.io/t/requesting-help/9132 [site configuration]: /getting-started/configuration/ diff --git a/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md b/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md index 1eed59122..803a73e46 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-aws-amplify.md @@ -25,7 +25,7 @@ AWS Amplify is a combination of client library, CLI toolchain, and a Console for * [Sign up for an AWS Account](https://portal.aws.amazon.com/billing/signup?redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation). There are no upfront charges or any term commitments to create an AWS account and signing up gives you immediate access to the AWS Free Tier. * You have an account with GitHub, GitLab, or Bitbucket. -* You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world. +* You have completed the [Quick Start] or have a Hugo website you are ready to deploy and share with the world. ## Hosting diff --git a/docs/content/en/hosting-and-deployment/hosting-on-azure.md b/docs/content/en/hosting-and-deployment/hosting-on-azure.md index f63c0153c..fd48ac9ad 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-azure.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-azure.md @@ -25,7 +25,7 @@ _The following documentation covers how to use GitHub Actions for the deployment 1. You have Git 2.8 or greater [installed on your machine][installgit]. 2. You have a GitHub account. [Signing up][ghsignup] for GitHub is free. 3. You have an Azure account. You can sign up for a [Free Trail][azuretrial]. -4. You have a ready-to-publish Hugo website or have at least completed the [Quick Start][]. +4. You have a ready-to-publish Hugo website or have at least completed the [Quick Start]. ## Deploy Hugo to Azure Static Web Apps diff --git a/docs/content/en/hosting-and-deployment/hosting-on-firebase.md b/docs/content/en/hosting-and-deployment/hosting-on-firebase.md index fe6cca1e1..4e31f1cd0 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-firebase.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-firebase.md @@ -20,7 +20,7 @@ aliases: [] ## Assumptions 1. You have an account with [Firebase][signup]. (If you don't, you can sign up for free using your Google account.) -2. You have completed the [Quick Start][] or have a completed Hugo website ready for deployment. +2. You have completed the [Quick Start] or have a completed Hugo website ready for deployment. ## Initial setup @@ -62,11 +62,11 @@ Here you will be redirected to login in your GitHub account to get permissions. 7. For which GitHub repository would you like to set up a GitHub workflow? (format: user/repository) Include the repository you will use in the format above (Account/Repo) -Firebase script with retrive credentials, create a service account you can later manage in yout github settings. +Firebase script with retrive credentials, create a service account you can later manage in your github settings. 8. Set up the workflow to run a build script before every deploy? -Here is your oportunity to include some commands before you run the deploy. +Here is your opportunity to include some commands before you run the deploy. 9. Set up automatic deployment to your site's live channel when a PR is merged? @@ -78,7 +78,7 @@ After that Firebase has been set in your project with CI/CD. After that run: hugo && firebase deploy ``` -With this you will have the app initialized manualy. After that you can manage and fix your github workflow from: https://github.com/your-account/yout-repo/actions +With this you will have the app initialized manually. After that you can manage and fix your github workflow from: https://github.com/your-account/yout-repo/actions Don't forget to update your static pages before push! diff --git a/docs/content/en/hosting-and-deployment/hosting-on-github.md b/docs/content/en/hosting-and-deployment/hosting-on-github.md index 35550ed99..76de0f3a5 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-github.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-github.md @@ -17,13 +17,13 @@ toc: true aliases: [/tutorials/github-pages-blog/] --- -GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its [GitHub Pages service][] and automating development workflows and build with [GitHub Actions]. +GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its [GitHub Pages service] and automating development workflows and build with [GitHub Actions]. ## Assumptions 1. You have Git 2.8 or greater [installed on your machine][installgit]. 2. You have a GitHub account. [Signing up][ghsignup] for GitHub is free. -3. You have a ready-to-publish Hugo website or have at least completed the [Quick Start][]. +3. You have a ready-to-publish Hugo website or have at least completed the [Quick Start]. ## Types of GitHub Pages diff --git a/docs/content/en/hosting-and-deployment/hosting-on-netlify.md b/docs/content/en/hosting-and-deployment/hosting-on-netlify.md index 526795655..7aa9283f8 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-netlify.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-netlify.md @@ -22,12 +22,12 @@ toc: true ## Assumptions * You have an account with GitHub, GitLab, or Bitbucket. -* You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world. +* You have completed the [Quick Start] or have a Hugo website you are ready to deploy and share with the world. * You do not already have a Netlify account. ## Create a Netlify account -Go to [app.netlify.com][] and select your preferred signup method. This will likely be a hosted Git provider, although you also have the option to sign up with an email address. +Go to [app.netlify.com] and select your preferred signup method. This will likely be a hosted Git provider, although you also have the option to sign up with an email address. The following examples use GitHub, but other git providers will follow a similar process. @@ -55,7 +55,7 @@ Select the repo you want to use for continuous deployment. If you have a large n ![Screenshot of step 1 of create a new site for Netlify: selecting the git provider](/images/hosting-and-deployment/hosting-on-netlify/netlify-create-new-site-step-2.jpg) -Once selected, you'll be brought to a screen for basic setup. Here you can select the branch you want to publish, your [build command][], and your publish (i.e. deploy) directory. The publish directory should mirror that of what you've set in your [site configuration][config], the default of which is `public`. The following steps assume you are publishing from the `master` branch. +Once selected, you'll be brought to a screen for basic setup. Here you can select the branch you want to publish, your [build command], and your publish (i.e. deploy) directory. The publish directory should mirror that of what you've set in your [site configuration][config], the default of which is `public`. The following steps assume you are publishing from the `master` branch. ## Configure Hugo version in Netlify @@ -136,9 +136,9 @@ git submodule update --rebase --remote You now have a live website served over HTTPS, distributed through CDN, and configured for continuous deployment. Dig deeper into the Netlify documentation: -1. [Using a Custom Domain][] +1. [Using a Custom Domain] 2. [Setting up HTTPS on Custom Domains][httpscustom] -3. [Redirects and Rewrite Rules][] +3. [Redirects and Rewrite Rules] [app.netlify.com]: https://app.netlify.com [build command]: /getting-started/usage/#the-hugo-command diff --git a/docs/content/en/hosting-and-deployment/hosting-on-render.md b/docs/content/en/hosting-and-deployment/hosting-on-render.md index 40cb2c32e..f099f2168 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-render.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-render.md @@ -38,7 +38,7 @@ Static sites are **completely free** on Render and include the following: ## Assumptions - You have an account with GitHub or GitLab. -- You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world. +- You have completed the [Quick Start] or have a Hugo website you are ready to deploy and share with the world. - You have a Render account. You can sign up at https://render.com/register. ## Deployment diff --git a/docs/content/en/hosting-and-deployment/hugo-deploy.md b/docs/content/en/hosting-and-deployment/hugo-deploy.md index da7f77c61..02a23fe12 100644 --- a/docs/content/en/hosting-and-deployment/hugo-deploy.md +++ b/docs/content/en/hosting-and-deployment/hugo-deploy.md @@ -23,7 +23,7 @@ You can use the "hugo deploy" command to upload your site directly to a Google C ## Assumptions -* You have completed the [Quick Start][] or have a Hugo website you are ready to deploy and share with the world. +* You have completed the [Quick Start] or have a Hugo website you are ready to deploy and share with the world. * You have an account with the service provider ([Google Cloud](https://cloud.google.com/), [AWS](https://aws.amazon.com), or [Azure](https://azure.microsoft.com)) that you want to deploy to. * You have authenticated. * Google Cloud: [Install the CLI](https://cloud.google.com/sdk) and run [`gcloud auth login`](https://cloud.google.com/sdk/gcloud/reference/auth/login). @@ -140,4 +140,3 @@ See `hugo help deploy` for more command-line options. [Google Cloud]: [https://cloud.google.com] [AWS]: [https://aws.amazon.com] [Azure]: [https://azure.microsoft.com] - diff --git a/docs/content/en/hugo-modules/theme-components.md b/docs/content/en/hugo-modules/theme-components.md index c78b4249b..5b01e98e9 100644 --- a/docs/content/en/hugo-modules/theme-components.md +++ b/docs/content/en/hugo-modules/theme-components.md @@ -29,7 +29,7 @@ You can even nest this, and have the theme component itself include theme compon The theme definition example above in `config.toml` creates a theme with 3 theme components with precedence from left to right. -For any given file, data entry, etc., Hugo will look first in the project and then in `my-shortcode`, `base-theme`, and lastly `hyde`. +For any given file, data entry, etc., Hugo will look first in the project and then in `my-shortcodes`, `base-theme`, and lastly `hyde`. Hugo uses two different algorithms to merge the filesystems, depending on the file type: diff --git a/docs/content/en/hugo-pipes/postcss.md b/docs/content/en/hugo-pipes/postcss.md index b87dc4595..caf575c17 100755 --- a/docs/content/en/hugo-pipes/postcss.md +++ b/docs/content/en/hugo-pipes/postcss.md @@ -1,8 +1,6 @@ --- title: PostCSS description: Hugo Pipes can process CSS files with PostCSS. -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: @@ -10,7 +8,6 @@ menu: parent: "pipes" weight: 40 weight: 40 -sections_weight: 40 --- Any asset file can be processed using `resources.PostCSS` which takes for argument the resource object and a slice of options listed below. @@ -22,11 +19,11 @@ The resource will be processed using the project's or theme's own `postcss.confi {{ $style := $css | resources.PostCSS }} ``` -{{% note %}} -Hugo Pipe's PostCSS requires the `postcss-cli` JavaScript package to be installed in the environment (`npm install -g postcss postcss-cli`) along with any PostCSS plugin(s) used (e.g., `npm install -g autoprefixer`). +You must install the required Node.js packages to use the PostCSS feature. For example, to use the `autoprefixer` package, run these commands from the root of your project: -If you are using the Hugo Snap package, PostCSS and plugin(s) need to be installed locally within your Hugo site directory, e.g., `npm install postcss-cli` without the `-g` flag. -{{% /note %}} +```text +npm install postcss postcss-cli autoprefixer +``` ### Options diff --git a/docs/content/en/installation/bsd.md b/docs/content/en/installation/bsd.md index f17b64085..2728e91cb 100644 --- a/docs/content/en/installation/bsd.md +++ b/docs/content/en/installation/bsd.md @@ -62,18 +62,14 @@ doas pkg_add hugo [OpenBSD]: https://www.openbsd.org/ -{{% readfile file="/installation/common/04-docker.md" %}} - {{% readfile file="/installation/common/05-build-from-source.md" %}} ## Comparison -||Prebuilt binaries|Repository packages|Docker|Build from source -:--|:--:|:--:|:--:|:--: -Easy to install?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| -Easy to upgrade?|:heavy_check_mark:|varies|:heavy_check_mark:|:heavy_check_mark: -Easy to downgrade?|:heavy_check_mark:|varies|:heavy_check_mark:|:heavy_check_mark: -Automatic updates?|:x:|varies|:x: [^1]|:x: -Latest version available?|:heavy_check_mark:|varies|:heavy_check_mark:|:heavy_check_mark: - -[^1]: Possible but requires advanced configuration. +||Prebuilt binaries|Repository packages|Build from source +:--|:--:|:--:|:--: +Easy to install?|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark: +Easy to upgrade?|:heavy_check_mark:|varies|:heavy_check_mark: +Easy to downgrade?|:heavy_check_mark:|varies|:heavy_check_mark: +Automatic updates?|:x:|varies|:x: +Latest version available?|:heavy_check_mark:|varies|:heavy_check_mark: diff --git a/docs/content/en/readfiles/dateformatting.md b/docs/content/en/readfiles/dateformatting.md index 2aeb60438..5e5e454fb 100644 --- a/docs/content/en/readfiles/dateformatting.md +++ b/docs/content/en/readfiles/dateformatting.md @@ -15,7 +15,7 @@ Jan 2 15:04:05 2006 MST Each of the following examples show the reference formatting string followed by the string Hugo will output in your HTML. -Note that the examples were rendered and tested in [CST][] and pull from a single example date you might have in your content's front matter: +Note that the examples were rendered and tested in [CST] and pull from a single example date you might have in your content's front matter: ```yml date: 2017-03-03T14:15:59-06:00 diff --git a/docs/content/en/templates/data-templates.md b/docs/content/en/templates/data-templates.md index 1be4e93eb..1586d3a54 100644 --- a/docs/content/en/templates/data-templates.md +++ b/docs/content/en/templates/data-templates.md @@ -18,23 +18,31 @@ toc: true <!-- begin data files --> -Hugo supports loading data from YAML, JSON, XML, and TOML files located in the `data` directory in the root of your Hugo project. +Hugo supports loading data from YAML, JSON, XML, and TOML files located in the `data` directory at the root of your Hugo project. {{< youtube FyPgSuwIMWQ >}} ## The Data Folder -The `data` folder is where you can store additional data for Hugo to use when generating your site. Data files aren't used to generate standalone pages; rather, they're meant to be supplemental to content files. This feature can extend the content in case your front matter fields grow out of control. Or perhaps you want to show a larger dataset in a template (see example below). In both cases, it's a good idea to outsource the data in their own files. +The `data` folder should store additional data for Hugo to use when generating your site. + +Data files are not for generating standalone pages. They should supplement content files by: + +- extending the content when the front matter fields grow out of control, or +- showing a larger dataset in a template (see the example below). + +In both cases, it's a good idea to outsource the data in their (own) files. These files must be YAML, JSON, XML, or TOML files (using the `.yml`, `.yaml`, `.json`, `.xml`, or `.toml` extension). The data will be accessible as a `map` in the `.Site.Data` variable. -If you wish to access the data using the `.Site.Data.filename` notation, the filename must begin with an underscore or a Unicode letter, followed by zero or more underscores, Unicode letters, or Unicode digits. eg: +To access the data using the `site.Data.filename` notation, the filename must begin with an underscore or a Unicode letter, followed by zero or more underscores, Unicode letters, or Unicode digits. For example: - `123.json` - Invalid - `x123.json` - Valid - `_123.json` - Valid -If you wish to access the data using the [`index`](/functions/index-function/) function, the filename is irrelevant. For example: +To access the data using the [`index`](/functions/index-function/) function, the filename is irrelevant. For example: + Data file|Template code :--|:-- `123.json`|`{{ index .Site.Data "123" }}` @@ -44,11 +52,13 @@ Data file|Template code ## Data Files in Themes -Data Files can also be used in [Hugo themes][themes] but note that theme data files are merged with the project directory taking precedence (i.e., given two files with the same name and relative path, the data in the file in the root project `data` directory will override the data from the file in the `themes/<THEME>/data` directory *for keys that are duplicated*). +Data Files can also be used in [Hugo themes][themes]. + +However, note that the theme data files are merged with the project directory taking precedence. That is, Given two files with the same name and relative path, the data in the file in the root project `data` directory will override the data from the file in the `themes/<THEME>/data` directory *for keys that are duplicated*). -Therefore, theme authors should take care to not include data files that could be easily overwritten by a user who decides to [customize a theme][customize]. For theme-specific data items that shouldn't be overridden, it can be wise to prefix the folder structure with a namespace; e.g. `mytheme/data/<THEME>/somekey/...`. To check if any such duplicate exists, run hugo with the `-v` flag. +Therefore, theme authors should be careful not to include data files that could be easily overwritten by a user who decides to [customize a theme][customize]. For theme-specific data items that shouldn't be overridden, it can be wise to prefix the folder structure with a namespace; e.g. `mytheme/data/<THEME>/somekey/...`. To check if any such duplicate exists, run hugo with the `-v` flag. -The keys in the map created with data templates from data files will be a dot-chained set of `path`, `filename`, and `key` in file (if applicable). +The keys in the map created with data templates from data files will be a dot-chained set of `path`, `filename`, and `key` in the file (if applicable). This is best explained with an example: @@ -213,7 +223,7 @@ If you don't like caching at all, you can fully disable caching with the command ### Authentication When Using REST URLs -Currently, you can only use those authentication methods that can be put into an URL. [OAuth][] and other authentication methods are not implemented. +Currently, you can only use those authentication methods that can be put into an URL. [OAuth] and other authentication methods are not implemented. ## Load Local files @@ -227,7 +237,7 @@ The local CSV files to be loaded using `getCSV` must be located **outside** the ## LiveReload with Data Files -There is no chance to trigger a [LiveReload][] when the content of a URL changes. However, when a *local* file changes (i.e., `data/*` and `themes/<THEME>/data/*`), a LiveReload will be triggered. Symlinks are not supported. Note too that because downloading of data takes a while, Hugo stops processing your Markdown files until the data download has completed. +There is no chance to trigger a [LiveReload] when the content of a URL changes. However, when a *local* file changes (i.e., `data/*` and `themes/<THEME>/data/*`), a LiveReload will be triggered. Symlinks are not supported. Note too that because downloading data takes a while, Hugo stops processing your Markdown files until the data download has been completed. {{% warning "URL Data and LiveReload" %}} If you change any local file and the LiveReload is triggered, Hugo will read the data-driven (URL) content from the cache. If you have disabled the cache (i.e., by running the server with `hugo server --ignoreCache`), Hugo will re-download the content every time LiveReload triggers. This can create *huge* traffic. You may reach API limits quickly. diff --git a/docs/content/en/templates/homepage.md b/docs/content/en/templates/homepage.md index b6ce87f8e..ace3f259b 100644 --- a/docs/content/en/templates/homepage.md +++ b/docs/content/en/templates/homepage.md @@ -38,7 +38,7 @@ See the homepage template below or [Content Organization][contentorg] for more i ## Example Homepage Template -The following is an example of a homepage template that uses [partial][partials], [base][] templates, and a content file at `content/_index.md` to populate the `{{.Title}}` and `{{.Content}}` [page variables][pagevars]. +The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{.Title}}` and `{{.Content}}` [page variables][pagevars]. {{< code file="layouts/index.html" download="index.html" >}} {{ define "main" }} diff --git a/docs/content/en/templates/internal.md b/docs/content/en/templates/internal.md index a92a0f551..05a6c862f 100644 --- a/docs/content/en/templates/internal.md +++ b/docs/content/en/templates/internal.md @@ -29,7 +29,7 @@ While the following internal templates are called similar to partials, they do * Hugo ships with internal templates supporting Google Analytics, both [Google Analytics 4][GA4] (GA4) and Universal Analytics. -**Note:** Universal Analytics are deprecated. For details, see [Universal Analytics will be going away][]. +**Note:** Universal Analytics are deprecated. For details, see [Universal Analytics will be going away]. [GA4]: https://support.google.com/analytics/answer/10089681 [Universal Analytics will be going away]: https://support.google.com/analytics/answer/11583528 diff --git a/docs/content/en/templates/introduction.md b/docs/content/en/templates/introduction.md index 01f448778..87b7cab35 100644 --- a/docs/content/en/templates/introduction.md +++ b/docs/content/en/templates/introduction.md @@ -55,7 +55,7 @@ The following example calls the `add` function with inputs of `1` and `2`: #### Methods and Fields are Accessed via dot Notation -Accessing the Page Parameter `bar` defined in a piece of content's [front matter][]. +Accessing the Page Parameter `bar` defined in a piece of content's [front matter]. ```go-html-template {{ .Params.bar }} @@ -519,11 +519,11 @@ The templating engine will strip the content within the HTML comment, but will f ## Hugo Parameters -Hugo provides the option of passing values to your template layer through your [site configuration][config] (i.e. for site-wide values) or through the metadata of each specific piece of content (i.e. the [front matter][]). You can define any values of any type and use them however you want in your templates, as long as the values are supported by the [front matter format]({{< ref "front-matter.md#front-matter-formats" >}}). +Hugo provides the option of passing values to your template layer through your [site configuration][config] (i.e. for site-wide values) or through the metadata of each specific piece of content (i.e. the [front matter]). You can define any values of any type and use them however you want in your templates, as long as the values are supported by the [front matter format]({{< ref "front-matter.md#front-matter-formats" >}}). ## Use Content (`Page`) Parameters -You can provide variables to be used by templates in individual content's [front matter][]. +You can provide variables to be used by templates in individual content's [front matter]. An example of this is used in the Hugo docs. Most of the pages benefit from having the table of contents provided, but sometimes the table of contents doesn't make a lot of sense. We've defined a `notoc` variable in our front matter that will prevent a table of contents from rendering when specifically set to `true`. diff --git a/docs/content/en/templates/lists.md b/docs/content/en/templates/lists.md index 18f03c6f1..03847707b 100644 --- a/docs/content/en/templates/lists.md +++ b/docs/content/en/templates/lists.md @@ -199,7 +199,7 @@ This list template has been modified slightly from a template originally used in ## Order Content -Hugo lists render the content based on metadata you provide in [front matter][]. In addition to sane defaults, Hugo also ships with multiple methods to make quick work of ordering content inside list templates: +Hugo lists render the content based on metadata you provide in [front matter]. In addition to sane defaults, Hugo also ships with multiple methods to make quick work of ordering content inside list templates: ### Default: Weight > Date > LinkTitle > FilePath @@ -499,7 +499,7 @@ In the above example, you may want `{{.Title}}` to point the `title` field you h ### By Page Parameter in Date Format -The following template takes grouping by `date` a step further and uses Go's layout string. See the [`Format` function][] for more examples of how to use Go's layout string to format dates in Hugo. +The following template takes grouping by `date` a step further and uses Go's layout string. See the [`Format` function] for more examples of how to use Go's layout string to format dates in Hugo. {{< code file="layouts/partials/by-page-param-as-date.html" >}} <!-- Groups content by month according to the "param_key" field in front matter --> diff --git a/docs/content/en/templates/output-formats.md b/docs/content/en/templates/output-formats.md index 81a825493..0498c7e64 100644 --- a/docs/content/en/templates/output-formats.md +++ b/docs/content/en/templates/output-formats.md @@ -22,7 +22,7 @@ This page describes how to properly configure your site with the media types and ## Media Types -A [media type][] (also known as _MIME type_ and _content type_) is a two-part identifier for file formats and format contents transmitted on the internet. +A [media type] (also known as _MIME type_ and _content type_) is a two-part identifier for file formats and format contents transmitted on the internet. This is the full set of built-in media types in Hugo: @@ -228,7 +228,7 @@ A new output format needs a corresponding template in order to render anything u The key distinction for Hugo versions 0.20 and newer is that Hugo looks at an output format's `Name` and MediaType's `Suffixes` when choosing the template used to render a given `Page`. {{% /note %}} -The following table shows examples of different output formats, the suffix used, and Hugo's respective template [lookup order][]. All the examples in the table can: +The following table shows examples of different output formats, the suffix used, and Hugo's respective template [lookup order]. All the examples in the table can: * Use a [base template][base]. * Include [partial templates][partials] diff --git a/docs/content/en/templates/pagination.md b/docs/content/en/templates/pagination.md index dc56c18c4..bdb10d5bb 100644 --- a/docs/content/en/templates/pagination.md +++ b/docs/content/en/templates/pagination.md @@ -16,7 +16,7 @@ aliases: [/extras/pagination,/doc/pagination/] toc: true --- -The real power of Hugo pagination shines when combined with the [`where` function][where] and its SQL-like operators: [`first`][], [`last`][], and [`after`][]. You can even [order the content][lists] the way you've become used to with Hugo. +The real power of Hugo pagination shines when combined with the [`where` function][where] and its SQL-like operators: [`first`], [`last`], and [`after`]. You can even [order the content][lists] the way you've become used to with Hugo. ## Configure Pagination diff --git a/docs/content/en/templates/partials.md b/docs/content/en/templates/partials.md index b3826d56d..1899f87d5 100644 --- a/docs/content/en/templates/partials.md +++ b/docs/content/en/templates/partials.md @@ -22,7 +22,7 @@ toc: true ## Partial Template Lookup Order -Partial templates---like [single page templates][singletemps] and [list page templates][listtemps]---have a specific [lookup order][]. However, partials are simpler in that Hugo will only check in two places: +Partial templates---like [single page templates][singletemps] and [list page templates][listtemps]---have a specific [lookup order]. However, partials are simpler in that Hugo will only check in two places: 1. `layouts/partials/*<PARTIALNAME>.html` 2. `themes/<THEME>/layouts/partials/*<PARTIALNAME>.html` diff --git a/docs/content/en/templates/shortcode-templates.md b/docs/content/en/templates/shortcode-templates.md index 15accbe7a..1c9314bb9 100644 --- a/docs/content/en/templates/shortcode-templates.md +++ b/docs/content/en/templates/shortcode-templates.md @@ -18,7 +18,7 @@ aliases: [] toc: true --- -Shortcodes are a means to consolidate templating into small, reusable snippets that you can embed directly inside your content. In this sense, you can think of shortcodes as the intermediary between [page and list templates][templates] and [basic content files][]. +Shortcodes are a means to consolidate templating into small, reusable snippets that you can embed directly inside your content. In this sense, you can think of shortcodes as the intermediary between [page and list templates][templates] and [basic content files]. {{% note %}} Hugo also ships with built-in shortcodes for common use cases. (See [Content Management: Shortcodes](/content-management/shortcodes/).) @@ -32,7 +32,7 @@ Hugo's built-in shortcodes cover many common, but not all, use cases. Luckily, H ### File Location -To create a shortcode, place an HTML template in the `layouts/shortcodes` directory of your [source organization][]. Consider the file name carefully since the shortcode name will mirror that of the file but without the `.html` extension. For example, `layouts/shortcodes/myshortcode.html` will be called with either `{{</* myshortcode /*/>}}` or `{{%/* myshortcode /*/%}}` depending on the type of parameters you choose. +To create a shortcode, place an HTML template in the `layouts/shortcodes` directory of your [source organization]. Consider the file name carefully since the shortcode name will mirror that of the file but without the `.html` extension. For example, `layouts/shortcodes/myshortcode.html` will be called with either `{{</* myshortcode /*/>}}` or `{{%/* myshortcode /*/%}}` depending on the type of parameters you choose. You can organize your shortcodes in subfolders, e.g. in `layouts/shortcodes/boxes`. These shortcodes would then be accessible with their relative path, e.g: @@ -44,7 +44,7 @@ Note the forward slash. ### Shortcode Template Lookup Order -Shortcode templates have a simple [lookup order][]: +Shortcode templates have a simple [lookup order]: 1. `/layouts/shortcodes/<SHORTCODE>.html` 2. `/themes/<THEME>/layouts/shortcodes/<SHORTCODE>.html` @@ -279,7 +279,7 @@ Would be rendered as: ### Paired Example: `highlight` -The following is taken from `highlight`, which is a [built-in shortcode][] that ships with Hugo. +The following is taken from `highlight`, which is a [built-in shortcode] that ships with Hugo. {{< code file="highlight-example.md" >}} {{</* highlight html */>}} diff --git a/docs/content/en/templates/single-page-templates.md b/docs/content/en/templates/single-page-templates.md index b6d8241c2..2b0cfe0e2 100644 --- a/docs/content/en/templates/single-page-templates.md +++ b/docs/content/en/templates/single-page-templates.md @@ -24,11 +24,11 @@ See [Template Lookup](/templates/lookup-order/). ## Example Single Page Templates -Content pages are of the type `page` and will therefore have all the [page variables][pagevars] and [site variables][] available to use in their templates. +Content pages are of the type `page` and will therefore have all the [page variables][pagevars] and [site variables] available to use in their templates. ### `posts/single.html` -This single page template makes use of Hugo [base templates][], the [`.Format` function][] for dates, the [`.WordCount` page variable][pagevars], and ranges through the single content's specific [taxonomies][pagetaxonomy]. [`with`][] is also used to check whether the taxonomies are set in the front matter. +This single page template makes use of Hugo [base templates], the [`.Format` function] for dates, the [`.WordCount` page variable][pagevars], and ranges through the single content's specific [taxonomies][pagetaxonomy]. [`with`] is also used to check whether the taxonomies are set in the front matter. {{< code file="layouts/posts/single.html" download="single.html" >}} {{ define "main" }} diff --git a/docs/content/en/templates/taxonomy-templates.md b/docs/content/en/templates/taxonomy-templates.md index 9c283dfc3..e9fc80525 100644 --- a/docs/content/en/templates/taxonomy-templates.md +++ b/docs/content/en/templates/taxonomy-templates.md @@ -27,7 +27,7 @@ Hugo provides multiple ways to use taxonomies throughout your project templates: * Order the way content associated with a taxonomy term is displayed in a [taxonomy list template](#taxonomy-list-templates) * Order the way the terms for a taxonomy are displayed in a [taxonomy terms template](#taxonomy-terms-templates) -* List a single content's taxonomy terms within a [single page template][] +* List a single content's taxonomy terms within a [single page template] ## Taxonomy List Templates diff --git a/docs/content/en/templates/template-debugging.md b/docs/content/en/templates/template-debugging.md index ef8e205da..b8938890f 100644 --- a/docs/content/en/templates/template-debugging.md +++ b/docs/content/en/templates/template-debugging.md @@ -40,7 +40,7 @@ This will print out a list of all the variables scoped to the current context {{ printf "%#v" . }} ``` -When developing a [homepage][], what does one of the pages you're looping through look like? +When developing a [homepage], what does one of the pages you're looping through look like? ```go-html-template {{ range .Pages }} diff --git a/docs/content/en/tools/starter-kits.md b/docs/content/en/tools/starter-kits.md index ecb785620..8399e99df 100644 --- a/docs/content/en/tools/starter-kits.md +++ b/docs/content/en/tools/starter-kits.md @@ -23,10 +23,10 @@ Know of a Hugo-related starter kit that isn't mentioned here? [Please add it to The following starter kits are developed by active members of the Hugo community. If you find yourself having issues with any of the projects, it's best to file an issue directly with the project's maintainer(s). {{% /note %}} -* [Wowchemy][]. Wowchemy is the 5,500+ star open source Hugo starter kit and website builder trusted by 750,000+ sites since 2016. Create _any_ kind of site with [50+ templates, widgets, and extensions](https://wowchemy.com/). Translated into 35+ languages and backed by a large, active community of 150+ contributors. +* [Wowchemy]. Wowchemy is the 5,500+ star open source Hugo starter kit and website builder trusted by 750,000+ sites since 2016. Create _any_ kind of site with [50+ templates, widgets, and extensions](https://wowchemy.com/). Translated into 35+ languages and backed by a large, active community of 150+ contributors. * [Hugo Wrapper][hugow]. Hugo Wrapper is a POSIX-style shell script which acts as a wrapper to download and run Hugo binary for your platform. It can be executed in variety of [Operating Systems][hugow-test] and [Command Shells][hugow-test]. -* [GOHUGO AMP][]. GoHugo AMP is a starter theme that aims to make it easy to adopt [Google's AMP Project][amp]. The starter kit comes with 40+ shortcodes and partials plus automatic structured data. The project also includes a [separate site with extensive documentation][gohugodocs]. -* [Hyas][]. Hyas is a Hugo starter helping you build modern websites that are secure, fast, and SEO-ready — by default. It is Netlify-ready (functions, redirects, headers) and comes with [documentation](https://gethyas.com/) to easily make it your own. +* [GOHUGO AMP]. GoHugo AMP is a starter theme that aims to make it easy to adopt [Google's AMP Project][amp]. The starter kit comes with 40+ shortcodes and partials plus automatic structured data. The project also includes a [separate site with extensive documentation][gohugodocs]. +* [Hyas]. Hyas is a Hugo starter helping you build modern websites that are secure, fast, and SEO-ready — by default. It is Netlify-ready (functions, redirects, headers) and comes with [documentation](https://gethyas.com/) to easily make it your own. [Wowchemy]: https://github.com/wowchemy/wowchemy-hugo-modules [addkit]: https://github.com/gohugoio/hugo/edit/master/docs/content/en/tools/starter-kits.md diff --git a/docs/content/en/variables/page.md b/docs/content/en/variables/page.md index 78100a6af..07acc4831 100644 --- a/docs/content/en/variables/page.md +++ b/docs/content/en/variables/page.md @@ -54,7 +54,7 @@ See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables. : the date on which the content is scheduled to expire; `.ExpiryDate` pulls from the `expirydate` field in a content's front matter. See also `.PublishDate`, `.Date`, and `.Lastmod`. .File -: filesystem-related data for this content file. See also [File Variables][]. +: filesystem-related data for this content file. See also [File Variables]. .FuzzyWordCount : the approximate number of words in the content. diff --git a/docs/content/en/variables/site.md b/docs/content/en/variables/site.md index 11f37b369..34239ad44 100644 --- a/docs/content/en/variables/site.md +++ b/docs/content/en/variables/site.md @@ -29,9 +29,6 @@ All the methods below, e.g. `.Site.RegularPages` can also be reached via the glo .Site.AllPages : array of all pages, regardless of their translation. -.Site.Author -: a map of the authors as defined in the site configuration. - .Site.BaseURL : the base URL for the site as defined in the site configuration. diff --git a/docs/content/en/variables/taxonomy.md b/docs/content/en/variables/taxonomy.md index 5bcdffee5..901769b31 100644 --- a/docs/content/en/variables/taxonomy.md +++ b/docs/content/en/variables/taxonomy.md @@ -1,84 +1,140 @@ --- title: Taxonomy Variables linktitle: -description: Taxonomy pages are of type `Page` and have all page-, site-, and list-level variables available to them. However, taxonomy terms templates have additional variables available to their templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 +description: Hugo's taxonomy system exposes variables to taxonomy and term templates. categories: [variables and params] -keywords: [taxonomies,terms] -draft: false +keywords: [taxonomy,term] menu: docs: parent: "variables" weight: 30 +toc: true weight: 30 -sections_weight: 30 aliases: [] -toc: true --- -## Taxonomy Terms Page Variables +## Taxonomy templates -[Taxonomy terms pages][taxonomytemplates] are of the type `Page` and have the following additional variables. +Pages rendered by taxonomy templates have `.Kind` set to `taxonomy` and `.Type` set to the taxonomy name. -For example, the following fields would be available in `layouts/_defaults/terms.html`, depending on how you organize your [taxonomy templates][taxonomytemplates]: +In taxonomy templates you may access `.Site`, `.Page`. `.Section`, and `.File` variables, as well as the following _taxonomy_ variables: .Data.Singular -: The singular name of the taxonomy (e.g., `tags => tag`) +: The singular name of the taxonomy (e.g., `tags => tag`). .Data.Plural -: The plural name of the taxonomy (e.g., `tags => tags`) +: The plural name of the taxonomy (e.g., `tags => tags`). .Data.Pages -: The list of pages in the taxonomy +: The collection of term pages related to this taxonomy. Aliased by `.Pages`. .Data.Terms -: The taxonomy itself +: A map of terms and weighted pages related to this taxonomy. .Data.Terms.Alphabetical -: The taxonomy terms alphabetized +: A map of terms and weighted pages related to this taxonomy, sorted alphabetically in ascending order. Reverse the sort order with`.Data.Terms.Alphabetical.Reverse`. .Data.Terms.ByCount -: The Terms ordered by popularity - -Note that `.Data.Terms.Alphabetical` and `.Data.Terms.ByCount` can also be reversed: - -* `.Data.Terms.Alphabetical.Reverse` -* `.Data.Terms.ByCount.Reverse` +: A map of terms and weighted pages related to this taxonomy, sorted by count in ascending order. Reverse the sort order with`.Data.Terms.ByCount.Reverse`. -## Use `.Site.Taxonomies` Outside of Taxonomy Templates +## Term templates -The `.Site.Taxonomies` variable holds all the taxonomies defined site-wide. `.Site.Taxonomies` is a map of the taxonomy name to a list of its values (e.g., `"tags" -> ["tag1", "tag2", "tag3"]`). Each value, though, is not a string but rather a *Taxonomy variable*. +Pages rendered by term templates have `.Kind` set to `term` and `.Type` set to the taxonomy name. -## The `.Taxonomy` Variable +In term templates you may access `.Site`, `.Page`. `.Section`, and `.File` variables, as well as the following _term_ variables: -The `.Taxonomy` variable, available, for example, as `.Site.Taxonomies.tags`, contains the list of tags (values) and, for each tag, their corresponding content pages. - -### Example Usage of `.Site.Taxonomies` +.Data.Singular +: The singular name of the taxonomy (e.g., `tags => tag`). -The following [partial template][partials] will list all your site's taxonomies, each of their keys, and all the content assigned to each of the keys. For more examples of how to order and render your taxonomies, see [Taxonomy Templates][taxonomytemplates]. +.Data.Plural +: The plural name of the taxonomy (e.g., `tags => tags`). -{{< code file="all-taxonomies-keys-and-pages.html" download="all-taxonomies-keys-and-pages.html" >}} -<section> - <ul> - {{ range $taxonomyname, $taxonomy := .Site.Taxonomies }} - <li><a href="{{ "/" | relLangURL}}{{ $taxonomyname | urlize }}">{{ $taxonomyname }}</a> - <ul> - {{ range $key, $value := $taxonomy }} - <li> {{ $key }} </li> - <ul> - {{ range $value.Pages }} - <li><a href="{{ .Permalink}}"> {{ .LinkTitle }} </a> </li> - {{ end }} - </ul> +.Data.Pages +: The collection of content pages related to this taxonomy. Aliased by `.Pages`. + +.Data.Term +: The term itself (e.g., `tag-one`). + +## Access taxonomy data from any template + +Access the entire taxonomy data structure from any template with `site.Taxonomies`. This returns a map of taxonomies, terms, and a collection of weighted content pages related to each term. For example: + +```json +{ + "categories": { + "news": [ + { + "Weight": 0, + "Page": { + "Title": "Post 1", + "Date": "2022-12-18T15:13:35-08:00" + ... + } + }, + { + "Weight": 0, + "Page": { + "Title": "Post 2", + "Date": "2022-12-18T15:13:46-08:00", + ... + } + } + ] + }, + "tags": { + "international": [ + { + "Weight": 0, + "Page": { + "Title": "Post 1", + "Date": "2021-01-01T00:00:00Z" + ... + } + } + ] + } +} +``` + +Access a subset of the taxonomy data structure by chaining one or more identifiers, or by using the [`index`] function with one or more keys. For example, to access the collection of weighted content pages related to the news category, use either of the following: + +[`index`]: /functions/index-function/ + +```go-html-template +{{ $pages := site.Taxonomies.categories.news }} +{{ $pages := index site.Taxonomies "categories" "news" }} +``` + +For example, to render the entire taxonomy data structure as a nested unordered list: + +```go-html-template +<ul> + {{ range $taxonomy, $terms := site.Taxonomies }} + <li> + {{ with site.GetPage $taxonomy }} + <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a> + {{ end }} + <ul> + {{ range $term, $weightedPages := $terms }} + <li> + {{ with site.GetPage (path.Join $taxonomy $term) }} + <a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a> {{ end }} - </ul> - </li> - {{ end }} - </ul> -</section> -{{< /code >}} - -[partials]: /templates/partials/ -[taxonomytemplates]: /templates/taxonomy-templates/ + </li> + <ul> + {{ range $weightedPages }} + <li> + <a href="{{ .RelPermalink}}"> {{ .LinkTitle }}</a> + </li> + {{ end }} + </ul> + {{ end }} + </ul> + </li> + {{ end }} +</ul> +``` + +See [Taxonomy Templates] for more examples. + +[Taxonomy Templates]: /templates/taxonomy-templates/ diff --git a/docs/content/zh/templates/base.md b/docs/content/zh/templates/base.md index 3a1aa479c..bf0e9165a 100644 --- a/docs/content/zh/templates/base.md +++ b/docs/content/zh/templates/base.md @@ -41,7 +41,7 @@ Variables are denoted by capitalized text set within `<>`. Note that Hugo's defa ### Example Base Template Lookup Order -As an example, let's assume your site is using a theme called "mytheme" when rendering the section list for a `posts` section. Hugo picks `layout/section/posts.html` as the template for [rendering the section][]. The `{{define}}` block in this template tells Hugo that the template is an extension of a base template. +As an example, let's assume your site is using a theme called "mytheme" when rendering the section list for a `posts` section. Hugo picks `layout/section/posts.html` as the template for [rendering the section]. The `{{define}}` block in this template tells Hugo that the template is an extension of a base template. Here is the lookup order for the `posts` base template: diff --git a/docs/go.mod b/docs/go.mod index 9abf1e2bc..6f4856f66 100644 --- a/docs/go.mod +++ b/docs/go.mod @@ -2,4 +2,4 @@ module github.com/gohugoio/hugoDocs go 1.16 -require github.com/gohugoio/gohugoioTheme v0.0.0-20221206093948-1408550ab675 // indirect +require github.com/gohugoio/gohugoioTheme v0.0.0-20221217122332-1c1752ad8f14 // indirect diff --git a/docs/go.sum b/docs/go.sum index fd600d5b0..465e50591 100644 --- a/docs/go.sum +++ b/docs/go.sum @@ -47,3 +47,5 @@ github.com/gohugoio/gohugoioTheme v0.0.0-20221124154621-1451a01f406b h1:TRrIisSY github.com/gohugoio/gohugoioTheme v0.0.0-20221124154621-1451a01f406b/go.mod h1:kpw3SS48xZvLQGEXKu8u5XHgXkPvL8DX3oGa07+z8Bs= github.com/gohugoio/gohugoioTheme v0.0.0-20221206093948-1408550ab675 h1:wjpYa1cTELeceWndBDV7IG2vRxRWICBBO79HObOfTtk= github.com/gohugoio/gohugoioTheme v0.0.0-20221206093948-1408550ab675/go.mod h1:kpw3SS48xZvLQGEXKu8u5XHgXkPvL8DX3oGa07+z8Bs= +github.com/gohugoio/gohugoioTheme v0.0.0-20221217122332-1c1752ad8f14 h1:K6tPFpi7W0zb89QIf+lNdgdTXfDFemU6NKk46MlX9lQ= +github.com/gohugoio/gohugoioTheme v0.0.0-20221217122332-1c1752ad8f14/go.mod h1:kpw3SS48xZvLQGEXKu8u5XHgXkPvL8DX3oGa07+z8Bs= diff --git a/docs/netlify.toml b/docs/netlify.toml index 4dd3bd1c3..51c25ef3c 100644 --- a/docs/netlify.toml +++ b/docs/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo --gc --minify" [context.production.environment] -HUGO_VERSION = "0.107.0" +HUGO_VERSION = "0.108.0" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --gc --minify --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.107.0" +HUGO_VERSION = "0.108.0" HUGO_ENV = "production" [context.deploy-preview] command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.107.0" +HUGO_VERSION = "0.108.0" [context.branch-deploy] command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.107.0" +HUGO_VERSION = "0.108.0" [context.next.environment] HUGO_ENABLEGITINFO = "true" |